public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug debug/51410] New: duplicate variable DIE
@ 2011-12-04 16:35 mark at gcc dot gnu.org
2011-12-05 9:35 ` [Bug debug/51410] [4.5/4.6/4.7 Regression] " rguenth at gcc dot gnu.org
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: mark at gcc dot gnu.org @ 2011-12-04 16:35 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51410
Bug #: 51410
Summary: duplicate variable DIE
Classification: Unclassified
Product: gcc
Version: 4.6.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: debug
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: mark@gcc.gnu.org
CC: tromey@redhat.com
This used to confuse systemtap, it has been fixed by searching the symbol table
to find the address of a variable if no location description is available if
the var DIE is marked external. It can certainly be argued that systemtap
should just search harder and find the other var DIE that does contain a
location description. But it sure is confusing IMHO.
Given the following source code:
int x;
int main(int argc, char **argv)
{
return x;
}
compiled with gcc (GCC) 4.6.1 20110908 (Red Hat 4.6.1-9)
$ gcc -g -O2 -o /tmp/x x.c
produces the following .debug_info:
DWARF section [28] '.debug_info' at offset 0x6a5:
[Offset]
Compilation unit at offset 0:
Version: 3, Abbreviation section offset: 0, Address size: 4, Offset size: 4
[ b] compile_unit
producer (strp) "GNU C 4.6.1 20110908 (Red Hat 4.6.1-9)"
language (data1) ISO C89 (1)
name (string) "x.c"
comp_dir (strp) "/home/mark/src/tests"
ranges (data4) range list [ 0]
low_pc (addr) 0000000000
entry_pc (addr) 0000000000
stmt_list (data4) 0
[ 29] subprogram
external (flag) Yes
name (strp) "main"
decl_file (data1) 1
decl_line (data1) 3
prototyped (flag) Yes
type (ref4) [ 61]
low_pc (addr) 0x080482e0 <main>
high_pc (addr) 0x080482e6
frame_base (block1) [ 0] call_frame_cfa
sibling (ref4) [ 61]
[ 44] formal_parameter
name (strp) "argc"
decl_file (data1) 1
decl_line (data1) 3
type (ref4) [ 61]
location (block1) [ 0] fbreg 0
[ 52] formal_parameter
name (strp) "argv"
decl_file (data1) 1
decl_line (data1) 3
type (ref4) [ 68]
location (block1) [ 0] fbreg 4
[ 61] base_type
byte_size (data1) 4
encoding (data1) signed (5)
name (string) "int"
[ 68] pointer_type
byte_size (data1) 4
type (ref4) [ 6e]
[ 6e] pointer_type
byte_size (data1) 4
type (ref4) [ 74]
[ 74] base_type
byte_size (data1) 1
encoding (data1) signed_char (6)
name (strp) "char"
[ 7b] variable
name (string) "x"
decl_file (data1) 1
decl_line (data1) 1
type (ref4) [ 61]
external (flag) Yes
declaration (flag) Yes
[ 86] variable
name (string) "x"
decl_file (data1) 1
decl_line (data1) 1
type (ref4) [ 61]
external (flag) Yes
location (block1) [ 0] addr 0x8049634
<x>
Note that there are two variable DIEs for x, 7b and 86, neither of which is
references in the rest of the CU. Since 86 doesn't refer to 7b, it isn't clear
to me how a consumer can know this is the same variable. In any case it seems
redundant to have both, even if the consumer is supposed to discard the one
marked as declaration.
This isn't an issue for static variables, which will have only one var DIE. It
is also a regression compared to gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-51)
which would produce only one variable DIE for x.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug debug/51410] [4.5/4.6/4.7 Regression] duplicate variable DIE
2011-12-04 16:35 [Bug debug/51410] New: duplicate variable DIE mark at gcc dot gnu.org
@ 2011-12-05 9:35 ` rguenth at gcc dot gnu.org
2011-12-05 17:13 ` jakub at gcc dot gnu.org
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-12-05 9:35 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51410
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |wrong-debug
Status|UNCONFIRMED |NEW
Last reconfirmed| |2011-12-05
Known to work| |4.3.6, 4.4.6
Target Milestone|--- |4.5.4
Summary|duplicate variable DIE |[4.5/4.6/4.7 Regression]
| |duplicate variable DIE
Ever Confirmed|0 |1
--- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-12-05 09:34:29 UTC ---
Confirmed. Fails since 4.5.0.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug debug/51410] [4.5/4.6/4.7 Regression] duplicate variable DIE
2011-12-04 16:35 [Bug debug/51410] New: duplicate variable DIE mark at gcc dot gnu.org
2011-12-05 9:35 ` [Bug debug/51410] [4.5/4.6/4.7 Regression] " rguenth at gcc dot gnu.org
@ 2011-12-05 17:13 ` jakub at gcc dot gnu.org
2011-12-05 20:51 ` jakub at gcc dot gnu.org
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-12-05 17:13 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51410
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
AssignedTo|unassigned at gcc dot |jakub at gcc dot gnu.org
|gnu.org |
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-12-05 17:13:10 UTC ---
Created attachment 25994
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=25994
gcc47-pr51410.patch
Untested fix.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug debug/51410] [4.5/4.6/4.7 Regression] duplicate variable DIE
2011-12-04 16:35 [Bug debug/51410] New: duplicate variable DIE mark at gcc dot gnu.org
2011-12-05 9:35 ` [Bug debug/51410] [4.5/4.6/4.7 Regression] " rguenth at gcc dot gnu.org
2011-12-05 17:13 ` jakub at gcc dot gnu.org
@ 2011-12-05 20:51 ` jakub at gcc dot gnu.org
2011-12-05 21:03 ` [Bug debug/51410] [4.5/4.6 " jakub at gcc dot gnu.org
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-12-05 20:51 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51410
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-12-05 20:51:10 UTC ---
Author: jakub
Date: Mon Dec 5 20:51:07 2011
New Revision: 182027
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=182027
Log:
PR debug/51410
* c-decl.c (pop_scope): Don't add DECL_EXTERNAL decls
for debug info if scope is file_scope.
* gcc.dg/debug/dwarf2/pr51410.c: New test.
Added:
trunk/gcc/testsuite/gcc.dg/debug/dwarf2/pr51410.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-decl.c
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug debug/51410] [4.5/4.6 Regression] duplicate variable DIE
2011-12-04 16:35 [Bug debug/51410] New: duplicate variable DIE mark at gcc dot gnu.org
` (2 preceding siblings ...)
2011-12-05 20:51 ` jakub at gcc dot gnu.org
@ 2011-12-05 21:03 ` jakub at gcc dot gnu.org
2011-12-08 13:42 ` jakub at gcc dot gnu.org
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-12-05 21:03 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51410
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|[4.5/4.6/4.7 Regression] |[4.5/4.6 Regression]
|duplicate variable DIE |duplicate variable DIE
--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-12-05 21:02:58 UTC ---
Fixed on the trunk so far.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug debug/51410] [4.5/4.6 Regression] duplicate variable DIE
2011-12-04 16:35 [Bug debug/51410] New: duplicate variable DIE mark at gcc dot gnu.org
` (3 preceding siblings ...)
2011-12-05 21:03 ` [Bug debug/51410] [4.5/4.6 " jakub at gcc dot gnu.org
@ 2011-12-08 13:42 ` jakub at gcc dot gnu.org
2012-06-20 13:10 ` [Bug debug/51410] [4.5 " rguenth at gcc dot gnu.org
2012-07-02 10:18 ` rguenth at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-12-08 13:42 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51410
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-12-08 13:39:38 UTC ---
Author: jakub
Date: Thu Dec 8 13:39:34 2011
New Revision: 182114
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=182114
Log:
Backport from mainline
2011-12-05 Jakub Jelinek <jakub@redhat.com>
PR debug/51410
* c-decl.c (pop_scope): Don't add DECL_EXTERNAL decls
for debug info if scope is file_scope.
* gcc.dg/debug/dwarf2/pr51410.c: New test.
Added:
branches/gcc-4_6-branch/gcc/testsuite/gcc.dg/debug/dwarf2/pr51410.c
Modified:
branches/gcc-4_6-branch/gcc/ChangeLog
branches/gcc-4_6-branch/gcc/c-decl.c
branches/gcc-4_6-branch/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug debug/51410] [4.5 Regression] duplicate variable DIE
2011-12-04 16:35 [Bug debug/51410] New: duplicate variable DIE mark at gcc dot gnu.org
` (4 preceding siblings ...)
2011-12-08 13:42 ` jakub at gcc dot gnu.org
@ 2012-06-20 13:10 ` rguenth at gcc dot gnu.org
2012-07-02 10:18 ` rguenth at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-06-20 13:10 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51410
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P2
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug debug/51410] [4.5 Regression] duplicate variable DIE
2011-12-04 16:35 [Bug debug/51410] New: duplicate variable DIE mark at gcc dot gnu.org
` (5 preceding siblings ...)
2012-06-20 13:10 ` [Bug debug/51410] [4.5 " rguenth at gcc dot gnu.org
@ 2012-07-02 10:18 ` rguenth at gcc dot gnu.org
6 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-07-02 10:18 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51410
Richard Guenther <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
Target Milestone|4.5.4 |4.6.3
--- Comment #6 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-07-02 10:18:20 UTC ---
Fixed in 4.6.3.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2012-07-02 10:18 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-12-04 16:35 [Bug debug/51410] New: duplicate variable DIE mark at gcc dot gnu.org
2011-12-05 9:35 ` [Bug debug/51410] [4.5/4.6/4.7 Regression] " rguenth at gcc dot gnu.org
2011-12-05 17:13 ` jakub at gcc dot gnu.org
2011-12-05 20:51 ` jakub at gcc dot gnu.org
2011-12-05 21:03 ` [Bug debug/51410] [4.5/4.6 " jakub at gcc dot gnu.org
2011-12-08 13:42 ` jakub at gcc dot gnu.org
2012-06-20 13:10 ` [Bug debug/51410] [4.5 " rguenth at gcc dot gnu.org
2012-07-02 10:18 ` rguenth at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).