summaryrefslogtreecommitdiffstats
path: root/lldb/source/Expression
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2011-12-22 19:12:40 +0000
committerJim Ingham <jingham@apple.com>2011-12-22 19:12:40 +0000
commitef651600167a47060e4b19bdb788a0d1649671b8 (patch)
treeaabe5d4cfbeb06df5596ec5731c1d5e5f1485760 /lldb/source/Expression
parent6901c0de675f3c264d496cdd75ac08fd21109305 (diff)
downloadbcm5719-llvm-ef651600167a47060e4b19bdb788a0d1649671b8.tar.gz
bcm5719-llvm-ef651600167a47060e4b19bdb788a0d1649671b8.zip
Improve the x86_64 return value decoder to handle most structure returns.
Switch from GetReturnValue, which was hardly ever used, to GetReturnValueObject which is much more convenient. Return the "return value object" as a persistent variable if requested. llvm-svn: 147157
Diffstat (limited to 'lldb/source/Expression')
-rw-r--r--lldb/source/Expression/ClangFunction.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/lldb/source/Expression/ClangFunction.cpp b/lldb/source/Expression/ClangFunction.cpp
index ceebe38e055..c583da90d3e 100644
--- a/lldb/source/Expression/ClangFunction.cpp
+++ b/lldb/source/Expression/ClangFunction.cpp
@@ -405,6 +405,7 @@ ClangFunction::GetThreadPlanToCallFunction (ExecutionContext &exe_ctx,
Address wrapper_address (NULL, func_addr);
ThreadPlan *new_plan = new ThreadPlanCallFunction (*thread,
wrapper_address,
+ ClangASTType(),
args_addr,
stop_others,
discard_on_error,
@@ -418,7 +419,8 @@ ClangFunction::FetchFunctionResults (ExecutionContext &exe_ctx, lldb::addr_t arg
{
// Read the return value - it is the last field in the struct:
// FIXME: How does clang tell us there's no return value? We need to handle that case.
-
+ // FIXME: Create our ThreadPlanCallFunction with the return ClangASTType, and then use GetReturnValueObject
+ // to fetch the value. That way we can fetch any values we need.
Process *process = exe_ctx.GetProcessPtr();
if (process == NULL)
OpenPOWER on IntegriCloud