diff options
author | David Blaikie <dblaikie@gmail.com> | 2013-05-07 17:57:13 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2013-05-07 17:57:13 +0000 |
commit | 498c91e341ff8cff835b053c25a76fe7c21b06a9 (patch) | |
tree | 25acdbf5f282f8d51fa852465aa98c18988f156c | |
parent | 8a88cadaedcfa3bb020df1d100d67cecaf638f35 (diff) |
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
-rw-r--r-- | lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 1 | ||||
-rw-r--r-- | test/DebugInfo/namespace.ll | 11 |
2 files changed, 12 insertions, 0 deletions
diff --git a/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index aeaa63f2af..90dceacb79 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 a7dcf7c615..3d2a611018 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 |