[Bug debug/55059] New: DWARF missing concrete class definition
tromey at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Oct 24 15:52:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55059
Bug #: 55059
Summary: DWARF missing concrete class definition
Classification: Unclassified
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: debug
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: tromey@gcc.gnu.org
Created attachment 28519
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28519
test program
This comes from http://sourceware.org/bugzilla/show_bug.cgi?id=14760
I think GCC master from today generates invalid, or at least
questionable, DWARF for the attached test case.
This causes gdb test suite failures.
The bug is in the DWARF for the instantiation of Base.
Current GCC emits:
<1><f1>: Abbrev Number: 15 (DW_TAG_structure_type)
<f2> DW_AT_name : (indirect string, offset: 0x191): Base<long int,
47, (& a_global), &S::f>
<f6> DW_AT_byte_size : 1
<f7> DW_AT_decl_file : 1
<f8> DW_AT_decl_line : 30
<f9> DW_AT_declaration : 1
<f9> DW_AT_sibling : <0x155>
This has DW_AT_declaration -- but there is no concrete instance of the type.
Previous versions of GCC omitted this attribute. For example, Fedora 16
GCC:
<1><f1>: Abbrev Number: 10 (DW_TAG_structure_type)
<f2> DW_AT_name : (indirect string, offset: 0x135): Base<long int,
47, (& a_global), &S::f>
<f6> DW_AT_byte_size : 1
<f7> DW_AT_decl_file : 1
<f8> DW_AT_decl_line : 30
<f9> DW_AT_sibling : <0x155>
I think the previous approach is preferable.
More information about the Gcc-bugs
mailing list