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

--- Comment #16 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> (gdb) bt
> #0  0x000000e6d45f7b10 in
> _Z20notice_global_symbolP9tree_node+0xfffffffffd0084fc@plt ()
> Backtrace stopped: previous frame identical to this frame (corrupt stack?)
> (gdb) disassemble 
> Dump of assembler code for function
> _Z20notice_global_symbolP9tree_node+0xfffffffffd0084fc@plt:
>    0x000000e6d45f7b00 <+0>:     mov  %o7, %g5
>    0x000000e6d45f7b04 <+4>:     call  0xe6d45f7b0c
> <_Z20notice_global_symbolP9tree_node+0xfffffffffd0084fc@plt+12>
>    0x000000e6d45f7b08 <+8>:     nop 
>    0x000000e6d45f7b0c <+12>:    ldx  [ %o7 + 0x2c ], %g1
> => 0x000000e6d45f7b10 <+16>:    jmpl  %o7 + %g1, %g1
>    0x000000e6d45f7b14 <+20>:    mov  %g5, %o7
> End of assembler dump.
> (gdb) x/gx $o7 + 0x2c
> 0xe6d45f7b30 <_z20notice_global_symbolp9tree_n...@got.plt>:    
> 0xfb8ee10cffeffffc
> (gdb) p/x $o7 + 0x2c
> $1 = 0xe6d45f7b30
> (gdb) p/x $g1
> $2 = 0xfb8ee10cffeffffc

So the problematic instruction is the jmpl instead of the ldx and %o7 + %g1
points to nowhere?  If so, this means that the GOT slot contains garbage.

Reply via email to