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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-debug
                 CC|                            |rguenth at gcc dot gnu.org
          Component|c                           |middle-end

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
must really be latent before/after the revs.  I see

        .value  0xf     # Location expression size
        .byte   0x3     # DW_OP_addr
        .long   .LC0
        .byte   0x72    # DW_OP_breg2
        .sleb128 0
        .byte   0x1c    # DW_OP_minus
        .byte   0x3     # DW_OP_addr
        .long   -2-.LC0@gotoff
        .byte   0x22    # DW_OP_plus
        .byte   0x9f    # DW_OP_stack_value

in debug_loc.  To me looks like a missed expression simplification and
failure to reject this "constant".  Note that

        .long   .LC0@gotoff+2

works, so doing that and DW_OP_negate (if exists) might work.  Of course
the @gotoff looks odd to me given the non-@gotoff reference to .LC0 above.

Reply via email to