https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84456
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P3 |P1 Status|UNCONFIRMED |NEW Last reconfirmed| |2018-03-08 CC| |jakub at gcc dot gnu.org Component|testsuite |debug Ever confirmed|0 |1 --- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- In gcc 7 as well as with -gvariable-location-views in trunk, the 6 problematic tests are UNSUPPORTED, due to: Breakpoint 1, f (p=p@entry=0x7fffffffd844) at /usr/src/gcc-7/gcc/testsuite/gcc.dg/guality/pr49888.c:18 18 v = 0; /* { dg-final { gdb-test 18 "!c" "1" } } */ pr49888.gdb:3: Error in sourced command file: value has been optimized out UNSUPPORTED: gcc.dg/guality/pr49888.c -O1 line 18 !c == 1 etc. On the trunk without location views, it is a FAIL instead: Breakpoint 1, f (p=p@entry=0x7fffffffd7d4) at /usr/src/gcc/gcc/testsuite/gcc.dg/guality/pr49888.c:18 18 v = 0; /* { dg-final { gdb-test 18 "!c" "1" } } */ $1 = 0 $2 = 1 A debugging session is active. Inferior 1 [process 11689] will be killed. 0 != 1 FAIL: gcc.dg/guality/pr49888.c -O1 line 18 !c == 1 The *.final dump is still correct, on the trunk: 1: NOTE_INSN_DELETED 25: NOTE_INSN_VAR_LOCATION{loc di:DI} ! p var 4: NOTE_INSN_BASIC_BLOCK 2 17: NOTE_INSN_PROLOGUE_END 3: NOTE_INSN_FUNCTION_BEG 21: NOTE_INSN_BEGIN_STMT 26: NOTE_INSN_VAR_LOCATION{loc [di:DI]} ! c var 22: NOTE_INSN_BEGIN_STMT 23: NOTE_INSN_BEGIN_STMT 11: [di:DI]=0x1 REG_DEAD di:DI 27: NOTE_INSN_VAR_LOCATION{loc (nil)} ! c var 24: NOTE_INSN_BEGIN_STMT 13: [`v']=0 18: NOTE_INSN_EPILOGUE_BEG 19: simple_return 20: barrier 16: NOTE_INSN_DELETED and in 7.3 similarly with the NOTE_INSN_BEGIN_STMT deleted. 1: NOTE_INSN_DELETED 17: NOTE_INSN_VAR_LOCATION{loc di:DI} ! p var 4: NOTE_INSN_BASIC_BLOCK 2 13: NOTE_INSN_PROLOGUE_END 3: NOTE_INSN_FUNCTION_BEG 18: NOTE_INSN_VAR_LOCATION{loc [di:DI]} ! c var 8: [di:DI]=0x1 REG_DEAD di:DI 19: NOTE_INSN_VAR_LOCATION{loc (nil)} 9: [`v']=0 14: NOTE_INSN_EPILOGUE_BEG 15: simple_return 16: barrier 12: NOTE_INSN_DELETED The bug is that the trunk without -gvariable-location-views makes: .uleb128 0x2 # (DIE (0xb4) DW_TAG_variable) .ascii "c\0" # DW_AT_name .byte 0x1 # DW_AT_decl_file (pr49888.c) .byte 0xa # DW_AT_decl_line .byte 0x7 # DW_AT_decl_column .long 0x41 # DW_AT_type .uleb128 0x2 # DW_AT_location .byte 0x75 # DW_OP_breg5 .sleb128 0 out of it rather than the expected: .uleb128 0x9 # (DIE (0xaf) DW_TAG_variable) .ascii "c\0" # DW_AT_name .byte 0x1 # DW_AT_decl_file (pr49888.c) .byte 0xa # DW_AT_decl_line .long 0x40 # DW_AT_type .long .LLST0 # DW_AT_location that e.g. GCC 7 emits.