]> granicus.if.org Git - llvm/commitdiff
Allow "line 0" to be the first explicit debug location in a function.
authorPaul Robinson <paul.robinson@sony.com>
Fri, 16 Dec 2016 23:54:33 +0000 (23:54 +0000)
committerPaul Robinson <paul.robinson@sony.com>
Fri, 16 Dec 2016 23:54:33 +0000 (23:54 +0000)
Feedback on r289468 from Adrian Prantl.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@290012 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/AsmPrinter/DwarfDebug.cpp
test/DebugInfo/X86/dbg-prolog-end.ll

index f83a340219d28b3fff9f322d3c4d94ec6e86a924..a8d46c22681c4be196f629335eee08666b078a1c 100644 (file)
@@ -1063,7 +1063,7 @@ void DwarfDebug::beginInstruction(const MachineInstr *MI) {
   // We have an explicit location, different from the previous location.
   // Don't repeat a line-0 record, but otherwise emit the new location.
   // (The new location might be an explicit line 0, which we do emit.)
-  if (DL.getLine() == 0 && LastAsmLine == 0)
+  if (PrevInstLoc && DL.getLine() == 0 && LastAsmLine == 0)
     return;
   unsigned Flags = 0;
   if (DL == PrologEndLoc) {
index a3e9db96c8f26d7ec738cc4f311e452f9fc89124..c7ea9c93c778722a5ef8e55f160d5e957cfc268c 100644 (file)
@@ -2,6 +2,7 @@
 target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"
 target triple = "x86_64-apple-macosx10.6.7"
 
+;CHECK-LABEL: foo:
 ;CHECK: .loc   1 2 11 prologue_end
 define i32 @foo(i32 %i) nounwind ssp !dbg !1 {
 entry:
@@ -24,10 +25,13 @@ entry:
 
 declare void @llvm.dbg.declare(metadata, metadata, metadata) nounwind readnone
 
+;CHECK-LABEL: main:
+;CHECK: .loc 1 0 0 prologue_end
+
 define i32 @main() nounwind ssp !dbg !6 {
 entry:
   %retval = alloca i32, align 4
-  store i32 0, i32* %retval
+  store i32 0, i32* %retval, !dbg !22
   %call = call i32 @foo(i32 21), !dbg !16
   ret i32 %call, !dbg !16
 }
@@ -57,3 +61,4 @@ entry:
 !19 = !DIFile(filename: "/tmp/a.c", directory: "/private/tmp")
 !20 = !{}
 !21 = !{i32 1, !"Debug Info Version", i32 3}
+!22 = !DILocation(line: 0, column: 0, scope: !17)