IR: Always print MDLocation line
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Wed, 14 Jan 2015 22:14:26 +0000 (22:14 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Wed, 14 Jan 2015 22:14:26 +0000 (22:14 +0000)
Print `MDLocation`'s `line` field even when it's 0.

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

lib/IR/AsmWriter.cpp
test/Assembler/mdlocation.ll

index 215332b82562f271935e936f1547554e3734613b..c494d6ce3f0f725c1008f9ee8ad3c42f842a39e2 100644 (file)
@@ -1291,8 +1291,8 @@ static void writeMDLocation(raw_ostream &Out, const MDLocation *DL,
                             const Module *Context) {
   Out << "!MDLocation(";
   FieldSeparator FS;
-  if (DL->getLine())
-    Out << FS << "line: " << DL->getLine();
+  // Always output the line, since 0 is a relevant and important value for it.
+  Out << FS << "line: " << DL->getLine();
   if (DL->getColumn())
     Out << FS << "column: " << DL->getColumn();
   Out << FS << "scope: ";
index e1216fa27508f9e290f2b0e96b1560bbc5a72f8b..c1815ff50e09082e9c351a39c6e3bd901982838b 100644 (file)
@@ -15,6 +15,6 @@
 !3 = !MDLocation(scope: !0, inlinedAt: !1, column: 7, line: 3)
 !4 = !MDLocation(column: 7, line: 3, scope: !0, inlinedAt: !1)
 
-; CHECK-NEXT: !3 = !MDLocation(scope: !0)
+; CHECK-NEXT: !3 = !MDLocation(line: 0, scope: !0)
 !5 = !MDLocation(scope: !0)
 !6 = !MDLocation(scope: !0, column: 0, line: 0)