[Bug debug/53927] wrong value for DW_AT_static_link

jason at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Jan 31 19:23:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53927

Jason Merrill <jason at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |WAITING
                 CC|                            |jason at gcc dot gnu.org

--- Comment #3 from Jason Merrill <jason at gcc dot gnu.org> 2013-01-31 19:23:02 UTC ---
I don't see the problem.  On both i686 and x86_64 'p self_call' prints 1, which
matches the value returned by the function, so debugging seems to be working
fine.

On i686 the DW_AT_static_link points to $eax because that's where the static
chain lives during (part of) the function.

As Eric says, the value of the static chain pointer is not the same as the CFA;
it points to a struct in the stack frame of the caller.

What's the bug?



More information about the Gcc-bugs mailing list