This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug debug/49750] New: -gdwarf-4 bug
- From: "tromey at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 14 Jul 2011 18:44:02 +0000
- Subject: [Bug debug/49750] New: -gdwarf-4 bug
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49750
Summary: -gdwarf-4 bug
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: debug
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: tromey@gcc.gnu.org
Compile this program with '-gdwarf-4':
class C { public: C() { } };
namespace X {
typedef struct {
C m;
} t2;
t2 v;
};
The definition of the constructor for t2 is emitted weirdly.
I see:
<1><72>: Abbrev Number: 21 (DW_TAG_structure_type)
<73> DW_AT_declaration : 1
<73> DW_AT_sibling : <0x80>
<2><77>: Abbrev Number: 22 (DW_TAG_subprogram)
<78> DW_AT_name : t2
<7b> DW_AT_artificial : 1
<7b> DW_AT_declaration : 1
<7b> DW_AT_object_pointer: <0x1b5>
... but note that there is no way to associate this with the type 't2'.
If I use plain -g, I see what I would expect: the constructor is a child
of the type 't2':
<1><79>: Abbrev Number: 10 (DW_TAG_structure_type)
<7a> DW_AT_specification: <0x5d>
<7e> DW_AT_byte_size : 1
<7f> DW_AT_decl_file : 1
<80> DW_AT_decl_line : 4
<81> DW_AT_MIPS_linkage_name: (indirect string, offset: 0x2c): N1X2t2E
<85> DW_AT_sibling : <0xa7>
<2><89>: Abbrev Number: 11 (DW_TAG_member)
<8a> DW_AT_name : m
<8c> DW_AT_decl_file : 1
<8d> DW_AT_decl_line : 5
<8e> DW_AT_type : <0x31>
<92> DW_AT_data_member_location: 2 byte block: 23 0
(DW_OP_plus_uconst: 0)
<2><95>: Abbrev Number: 12 (DW_TAG_subprogram)
<96> DW_AT_name : t2
<99> DW_AT_artificial : 1
<9a> DW_AT_declaration : 1
<9b> DW_AT_object_pointer: <0x9f>