There was a plan - which Adrian may remember more about - to have some API from 
clang where you could pass in a function signature and have it return dwarf 
expressions for the locations of all the input parameters, and of the return 
value directly on exit.  That would be the handiest form, dwarf expressions 
should be up to the task even for complex return types, and they are a form 
both sides know how to handle.  Then the whole of this "GetReturnValue" on the 
lldb side would be "call this API and and run the dwarf expression to fetch the 
value."  All the knowledge of how where values are returned would then be 
properly in clang/llvm.

I don't know what the status of this design is, however...

Jim


> On May 31, 2019, at 2:41 PM, Saleem Abdulrasool via Phabricator 
> <revi...@reviews.llvm.org> wrote:
> 
> compnerd requested changes to this revision.
> compnerd added a comment.
> This revision now requires changes to proceed.
> 
> Actually, I think that we should extend `CompilerType` and `TypeSystem` to 
> expose Clang's knowledge of whether a type is passed in a register by means 
> of using `clang::RecordDecl::isPassInRegisters`
> 
> 
> Repository:
>  rLLDB LLDB
> 
> CHANGES SINCE LAST ACTION
>  https://reviews.llvm.org/D62702/new/
> 
> https://reviews.llvm.org/D62702
> 
> 
> 

_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to