From: David Blaikie Date: Tue, 7 May 2013 17:57:13 +0000 (+0000) Subject: Debug Info: Fix for break due to r181271 X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=498c91e341ff8cff835b053c25a76fe7c21b06a9;p=oota-llvm.git Debug Info: Fix for break due to r181271 Apparently we didn't keep an association of Compile Unit metadata nodes to DIEs so looking up that parental context failed & thus caused no DW_TAG_imported_modules to be emitted at the CU scope. Fix this by adding the mapping & sure up the test case to verify this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181339 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index aeaa63f2af5..90dceacb798 100644 --- a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -685,6 +685,7 @@ CompileUnit *DwarfDebug::constructCompileUnit(const MDNode *N) { CompileUnit *NewCU = new CompileUnit(GlobalCUIndexCount++, DIUnit.getLanguage(), Die, Asm, this, &InfoHolder); + NewCU->insertDIE(N, Die); FileIDCUMap[NewCU->getUniqueID()] = 0; // Call this to emit a .file directive if it wasn't emitted for the source diff --git a/test/DebugInfo/namespace.ll b/test/DebugInfo/namespace.ll index a7dcf7c6150..3d2a6110185 100644 --- a/test/DebugInfo/namespace.ll +++ b/test/DebugInfo/namespace.ll @@ -23,6 +23,8 @@ ; CHECK-NEXT: DW_AT_decl_file{{.*}}(0x0[[F1]]) ; CHECK-NEXT: DW_AT_decl_line{{.*}}(0x04) ; CHECK-NEXT: DW_AT_import{{.*}}=> {[[NS2]]}) +; CHECK: NULL +; CHECK-NOT: NULL ; CHECK: DW_TAG_subprogram ; CHECK-NEXT: DW_AT_MIPS_linkage_name @@ -39,6 +41,15 @@ ; CHECK-NEXT: DW_AT_decl_file{{.*}}(0x0[[F2]]) ; CHECK-NEXT: DW_AT_decl_line{{.*}}(0x0b) ; CHECK-NEXT: DW_AT_import{{.*}}=> {[[NS2]]}) +; CHECK: NULL +; CHECK: NULL +; CHECK-NOT: NULL + +; CHECK: DW_TAG_imported_module +; Same bug as above, this should be F2, not F1 +; CHECK-NEXT: DW_AT_decl_file{{.*}}(0x0[[F1]]) +; CHECK-NEXT: DW_AT_decl_line{{.*}}(0x07) +; CHECK-NEXT: DW_AT_import{{.*}}=> {[[NS1]]}) ; CHECK: file_names[ [[F1]]]{{.*}}debug-info-namespace.cpp ; CHECK: file_names[ [[F2]]]{{.*}}foo.cpp