mirror of
https://github.com/intel/llvm.git
synced 2026-01-20 10:58:11 +08:00
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
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user