diff options
| author | Jim Ingham <jingham@apple.com> | 2011-12-22 19:12:40 +0000 |
|---|---|---|
| committer | Jim Ingham <jingham@apple.com> | 2011-12-22 19:12:40 +0000 |
| commit | ef651600167a47060e4b19bdb788a0d1649671b8 (patch) | |
| tree | aabe5d4cfbeb06df5596ec5731c1d5e5f1485760 /lldb/source/Expression | |
| parent | 6901c0de675f3c264d496cdd75ac08fd21109305 (diff) | |
| download | bcm5719-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.cpp | 4 |
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) |

