This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug debug/37941] Too many DW_TAG_Subprogram tags generated



------- 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]