This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug debug/37941] Too many DW_TAG_Subprogram tags generated
- From: "jan dot kratochvil at redhat dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 24 Nov 2008 20:08:27 -0000
- Subject: [Bug debug/37941] Too many DW_TAG_Subprogram tags generated
- References: <bug-37941-11288@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #1 from jan dot kratochvil at redhat dot com 2008-11-24 20:08 -------
The excessive item <53> is really still present in Fedora
gcc-c++-4.3.2-7.x86_64 but not in HEAD - 4.4.0 20081124:
<1><2d>: Abbrev Number: 2 (DW_TAG_namespace)
<2e> DW_AT_name : D
<30> DW_AT_decl_file : 1
<31> DW_AT_decl_line : 7
<32> DW_AT_sibling : <0x48>
<2><36>: Abbrev Number: 3 (DW_TAG_subprogram)
<37> DW_AT_external : 1
<38> DW_AT_name : foo
<3c> DW_AT_decl_file : 1
<3d> DW_AT_decl_line : 8
<3e> DW_AT_MIPS_linkage_name: (indirect string, offset: 0x3c):
_ZN1D3fooEv
<42> DW_AT_type : <0x48>
<46> DW_AT_declaration : 1
[...]
<1><4f>: Abbrev Number: 5 (DW_TAG_subprogram)
<50> DW_AT_specification: <0x36>
<54> DW_AT_low_pc : 0x0
<5c> DW_AT_high_pc : 0x17
<64> DW_AT_frame_base : 0x0 (location list)
As D::foo() has no extra declaration as it is defined in the class definition
<36> and <4f> could be merged but it is only a minor optimization now as for
common separate declaration and definition two DIEs still have to exist to have
distinct DW_AT_decl_line.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37941