https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108996

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mark at gcc dot gnu.org

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(In reply to Ulrich Weigand from comment #4)
> (In reply to Jakub Jelinek from comment #3)
> > What is done on other arches?
> 
> That depends on the platform ABI.  On some arches, including x86/x86_64 and

Ah, you're right here, such functions effectively return that invisible return
address pointer on x86.
Though, relying on DW_OP_entry_value is not reliable, if e.g. tail calls are
(or could be) involved, then GDB needs to punt.
So, I wonder if we just shouldn't ask for a DWARF 6 extension here, have some
way for the compiler to specify DW_AT_location for the return value.
Then for -O1+ -g with var-tracking that address could be for PowerPC r3
register in such functions or wherever its initial value is tracked (including
DW_OP_entry_value).
While for -O0, we'd see we've spilled that parameter to stack and would set
DW_AT_location to that place spilled on the stack.

Reply via email to