This might be related: the following code compiled with gcc version 4.3.0 20080428 (Red Hat 4.3.0-8):
namespace A{ int x = 1; } int main() { namespace B = A; return 0; } producdes the following debuginfo: ... <1><4f>: Abbrev Number: 5 (DW_TAG_subprogram) <50> DW_AT_external : 1 <51> DW_AT_name : (indirect string, offset: 0x9): main <55> DW_AT_decl_file : 1 <56> DW_AT_decl_line : 6 <57> DW_AT_type : <0x6f> <5b> DW_AT_low_pc : 0x40055c <63> DW_AT_high_pc : 0x400567 <6b> DW_AT_frame_base : 0x0 (location list) <1><6f>: Abbrev Number: 6 (DW_TAG_base_type) <70> DW_AT_byte_size : 4 <71> DW_AT_encoding : 5 (signed) <72> DW_AT_name : int <1><76>: Abbrev Number: 4 (DW_TAG_imported_declaration) <77> DW_AT_name : B <79> DW_AT_decl_file : 1 <7a> DW_AT_decl_line : 8 <7b> DW_AT_import : <0x2d> [Abbrev Number: 2 (DW_TAG_namespace)] ... the the above die 0x76 should be a child of 0x4f not sibling. Similar nesting is expected for lexical scopes of course. -- Summary: Incorrect nesting for DW_TAG_imported_declaration Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: swagiaal at redhat dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37890