------- Comment #9 from dodji at gcc dot gnu dot org 2010-03-17 21:15 ------- The situation has change quite a lot since gcc 4.3.0. Now a DW_TAG_member is emitted for the static member variable, and only one DW_TAG_variable is emitted to represent the variable definition.
So I guess the bug can be closed now? With 4.5 I get this: <0><b>: Abbrev Number: 1 (DW_TAG_compile_unit) < c> DW_AT_producer : (indirect string, offset: 0x62): GNU C++ 4.5.0 20100301 (experimental) <10> DW_AT_language : 4 (C++) <11> DW_AT_name : (indirect string, offset: 0x0): class.c <15> DW_AT_comp_dir : (indirect string, offset: 0x19): /home/dodji/devel/git/gcc-branches.git/gcc-PR37982.git/prtests <19> DW_AT_low_pc : 0x4004b4 <21> DW_AT_high_pc : 0x4004c0 <29> DW_AT_stmt_list : 0x0 <1><2d>: Abbrev Number: 2 (DW_TAG_structure_type) <2e> DW_AT_name : A <30> DW_AT_byte_size : 1 <31> DW_AT_decl_file : 2 <32> DW_AT_decl_line : 2 <33> DW_AT_sibling : <0x49> <2><37>: Abbrev Number: 3 (DW_TAG_member) <38> DW_AT_name : (indirect string, offset: 0x58): elsewhere <3c> DW_AT_decl_file : 2 <3d> DW_AT_decl_line : 3 <3e> DW_AT_MIPS_linkage_name: (indirect string, offset: 0x8): _ZN1A9elsewhereE <42> DW_AT_type : <0x49> <46> DW_AT_external : 1 <47> DW_AT_declaration : 1 [...] <0><a0>: Abbrev Number: 1 (DW_TAG_compile_unit) <a1> DW_AT_producer : (indirect string, offset: 0x62): GNU C++ 4.5.0 20100301 (experimental) <a5> DW_AT_language : 4 (C++) <a6> DW_AT_name : (indirect string, offset: 0x8d): class2.c <aa> DW_AT_comp_dir : (indirect string, offset: 0x19): /home/dodji/devel/git/gcc-branches.git/gcc-PR37982.git/prtests <ae> DW_AT_low_pc : 0x4004c0 <b6> DW_AT_high_pc : 0x4004c0 <be> DW_AT_stmt_list : 0x46 <1><c2>: Abbrev Number: 2 (DW_TAG_structure_type) <c3> DW_AT_name : A <c5> DW_AT_byte_size : 1 <c6> DW_AT_decl_file : 1 <c7> DW_AT_decl_line : 2 <c8> DW_AT_sibling : <0xde> <2><cc>: Abbrev Number: 3 (DW_TAG_member) <cd> DW_AT_name : (indirect string, offset: 0x58): elsewhere <d1> DW_AT_decl_file : 1 <d2> DW_AT_decl_line : 3 <d3> DW_AT_MIPS_linkage_name: (indirect string, offset: 0x8): _ZN1A9elsewhereE <d7> DW_AT_type : <0xde> <db> DW_AT_external : 1 <dc> DW_AT_declaration : 1 [...] <1><ea>: Abbrev Number: 6 (DW_TAG_variable) <eb> DW_AT_specification: <0xcc> <ef> DW_AT_decl_file : 2 <f0> DW_AT_decl_line : 2 <f1> DW_AT_location : 9 byte block: 3 ac 5 40 0 0 0 0 0 (DW_OP_addr: 4005ac) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37982