[Bug debug/90717] New: wrong stmt location for breakpoint, XFAIL gcc.dg/guality/pr90716.c -flto -fuse-linker-plugin
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Jun 3 08:01:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90717
Bug ID: 90717
Summary: wrong stmt location for breakpoint, XFAIL
gcc.dg/guality/pr90716.c -flto -fuse-linker-plugin
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: debug
Assignee: unassigned at gcc dot gnu.org
Reporter: rguenth at gcc dot gnu.org
Target Milestone: ---
The gcc.dg/guality/pr90716.c testcase fails with -O2 -fwhole-program,
expanding from
main ()
{
<bb 2> [local count: 17041817]:
[t.c:12:3] # DEBUG BEGIN_STMT
[t.c:13:3] # DEBUG BEGIN_STMT
[t.c:13:5] # DEBUG b => 0
[t.c:14:3] # DEBUG BEGIN_STMT
# DEBUG b => 0
[t.c:14:10] # DEBUG BEGIN_STMT
# DEBUG j => 0
[t.c:16:14] # DEBUG BEGIN_STMT
... unrolled loop ...
[t.c:16:14] # DEBUG BEGIN_STMT
[t.c:17:2] # DEBUG BEGIN_STMT
[t.c:16:21] # DEBUG BEGIN_STMT
# DEBUG j => 8
[t.c:16:14] # DEBUG BEGIN_STMT
[t.c:14:17] # DEBUG BEGIN_STMT
# DEBUG b => 7
[t.c:14:10] # DEBUG BEGIN_STMT
[t.c:23:3] # DEBUG BEGIN_STMT
[t.c:23:3] optimize_me_not ();
[t.c:24:3] # DEBUG BEGIN_STMT
return 0;
gdb puts the breakpoint at
Breakpoint 1, main ()
at
/space/rguenther/src/svn/trunk2/gcc/testsuite/gcc.dg/guality/pr90716.c:23
23 optimize_me_not(); /* { dg-final { gdb-test . "j + 1" "9" } } */
(gdb) disassemble
Dump of assembler code for function main:
=> 0x00000000004003e0 <+0>: xor %eax,%eax
0x00000000004003e2 <+2>: callq 0x4004d0 <optimize_me_not>
0x00000000004003e7 <+7>: xor %eax,%eax
0x00000000004003e9 <+9>: retq
where
(gdb) p j
$1 = 0
but at the "correct" location the correct value is displayed.
(gdb) si
0x00000000004003e2 23 optimize_me_not(); /* { dg-final { gdb-test .
"j + 1" "9" } } */
(gdb) p j
$2 = 8
Somehow things must go wrong on the RTL / debuginfo creation level putting
the location views for 'j' on a assembler stmt associated with line 23.
More information about the Gcc-bugs
mailing list