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.