[Bug debug/98946] GCC generating incorrect relocation R_386_GOTOFF in .debug-info for x86 (32)

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Feb 3 07:49:05 GMT 2021


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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
      Known to fail|                            |10.2.1, 11.0, 9.3.1
           Keywords|                            |wrong-debug
   Last reconfirmed|                            |2021-02-03
     Ever confirmed|0                           |1

--- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed with -O2 -g -fPIE.  GCC 7 produces

        .uleb128 0x42   # (DIE (0x5789) DW_TAG_GNU_call_site_parameter)
        .uleb128 0x2    # DW_AT_location
        .byte   0x74    # DW_OP_breg4
        .sleb128 0
        .uleb128 0xf    # DW_AT_GNU_call_site_value
        .byte   0x91    # DW_OP_fbreg
        .sleb128 -60
        .byte   0x6     # DW_OP_deref
        .byte   0x3     # DW_OP_addr
        .long   _GLOBAL_OFFSET_TABLE_
        .byte   0x1c    # DW_OP_minus
        .byte   0x3     # DW_OP_addr
        .long   .LC3
        .byte   0x22    # DW_OP_plus
        .byte   0       # end of children of DIE 0x5780
        .byte   0       # end of children of DIE 0x4f2c

not sure if that's any better ...

GCC 10 variant:

        .uleb128 0x35   # (DIE (0x2aeb) DW_TAG_GNU_call_site_parameter)
        .uleb128 0x2    # DW_AT_location
        .byte   0x74    # DW_OP_breg4
        .sleb128 0
        .uleb128 0x9    # DW_AT_GNU_call_site_value
        .byte   0x91    # DW_OP_fbreg
        .sleb128 -60
        .byte   0x6     # DW_OP_deref
        .byte   0x3     # DW_OP_addr
        .long   .LC3@gotoff
        .byte   0x22    # DW_OP_plus
        .byte   0       # end of children of DIE 0x2ade


More information about the Gcc-bugs mailing list