[llvm-commits] [llvm] r86771 - in /llvm/trunk: lib/CodeGen/AsmPrinter/DwarfDebug.cpp test/DebugInfo/2009-11-10-CurrentFn.ll

Devang Patel dpatel at apple.com
Tue Nov 10 16:31:36 PST 2009


Author: dpatel
Date: Tue Nov 10 18:31:36 2009
New Revision: 86771

URL: http://llvm.org/viewvc/llvm-project?rev=86771&view=rev
Log:
Do not assume first function scope seen represents current function. 

Added:
    llvm/trunk/test/DebugInfo/2009-11-10-CurrentFn.ll
Modified:
    llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp

Modified: llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp?rev=86771&r1=86770&r2=86771&view=diff

==============================================================================
--- llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (original)
+++ llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp Tue Nov 10 18:31:36 2009
@@ -1347,8 +1347,9 @@
   NScope->setFirstInsn(MI);
 
   if (!Parent && !InlinedAt) {
-    assert (!CurrentFnDbgScope && "Unexpected function scope!");
-    CurrentFnDbgScope = NScope;
+    StringRef SPName = DISubprogram(N).getLinkageName();
+    if (SPName == MF->getFunction()->getName())
+      CurrentFnDbgScope = NScope;
   }
 
   if (GetConcreteScope) {

Added: llvm/trunk/test/DebugInfo/2009-11-10-CurrentFn.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/2009-11-10-CurrentFn.ll?rev=86771&view=auto

==============================================================================
--- llvm/trunk/test/DebugInfo/2009-11-10-CurrentFn.ll (added)
+++ llvm/trunk/test/DebugInfo/2009-11-10-CurrentFn.ll Tue Nov 10 18:31:36 2009
@@ -0,0 +1,19 @@
+
+declare void @foo()
+
+define void @bar(i32 %i) nounwind ssp {
+entry:
+  tail call void @foo() nounwind, !dbg !0
+  ret void, !dbg !6
+}
+
+!0 = metadata !{i32 9, i32 0, metadata !1, null}
+!1 = metadata !{i32 458798, i32 0, metadata !2, metadata !"baz", metadata !"baz", metadata !"baz", metadata !2, i32 8, metadata !3, i1 true, i1 true}; [DW_TAG_subprogram ]
+!2 = metadata !{i32 458769, i32 0, i32 1, metadata !"2007-12-VarArrayDebug.c", metadata !"/Volumes/Data/ddunbar/llvm/test/FrontendC", metadata !"4.2.1 (Based on Apple Inc. build 5653) (LLVM build)", i1 true, i1 true, metadata !"", i32 0}; [DW_TAG_compile_unit ]
+!3 = metadata !{i32 458773, metadata !2, metadata !"", metadata !2, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !4, i32 0}; [DW_TAG_subroutine_type ]
+!4 = metadata !{null, metadata !5}
+!5 = metadata !{i32 458788, metadata !2, metadata !"int", metadata !2, i32 0, i64 32, i64 32, i64 0, i32 0, i32 5}; [DW_TAG_base_type ]
+!6 = metadata !{i32 18, i32 0, metadata !7, null}
+!7 = metadata !{i32 458798, i32 0, metadata !2, metadata !"bar", metadata !"bar", metadata !"bar", metadata !2, i32 16, metadata !8, i1 false, i1 true}; [DW_TAG_subprogram ]
+!8 = metadata !{i32 458773, metadata !2, metadata !"", metadata !2, i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !9, i32 0}; [DW_TAG_subroutine_type ]
+!9 = metadata !{null}





More information about the llvm-commits mailing list