[CodeView] Mark our lines as statements, not expressions
authorDavid Majnemer <david.majnemer@gmail.com>
Wed, 13 Jan 2016 01:05:23 +0000 (01:05 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Wed, 13 Jan 2016 01:05:23 +0000 (01:05 +0000)
The line tables for CodeView make a distinction between expressions and
statements.  As it turns out, MSVC always emits them as statements and
we always emit them as expressions.  Let's switch to statements to match
the CodeView that they emit.

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

lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp
test/DebugInfo/COFF/asm.ll
test/DebugInfo/COFF/multifile.ll
test/DebugInfo/COFF/multifunction.ll
test/DebugInfo/COFF/simple.ll
test/DebugInfo/COFF/tail-call-without-lexical-scopes.ll

index 52116ce1e22bca2c4cdac27c6d3677d318e07ea2..1e2f55b71151d4956fd44de40361e1ffa9fb0583 100644 (file)
@@ -82,13 +82,24 @@ void WinCodeViewLineTables::maybeRecordLocation(DebugLoc DL,
   const MDNode *Scope = DL.getScope();
   if (!Scope)
     return;
+  unsigned LineNumber = DL.getLine();
+  // Skip this line if it is longer than the maximum we can record.
+  if (LineNumber > COFF::CVL_MaxLineNumber)
+    return;
+
+  unsigned ColumnNumber = DL.getCol();
+  // Truncate the column number if it is longer than the maximum we can record.
+  if (ColumnNumber > COFF::CVL_MaxColumnNumber)
+    ColumnNumber = 0;
+
   StringRef Filename = getFullFilepath(Scope);
 
   // Skip this instruction if it has the same file:line as the previous one.
   assert(CurFn);
   if (!CurFn->Instrs.empty()) {
     const InstrInfoTy &LastInstr = InstrInfo[CurFn->Instrs.back()];
-    if (LastInstr.Filename == Filename && LastInstr.LineNumber == DL.getLine())
+    if (LastInstr.Filename == Filename && LastInstr.LineNumber == LineNumber &&
+        LastInstr.ColumnNumber == ColumnNumber)
       return;
   }
   FileNameRegistry.add(Filename);
@@ -96,7 +107,7 @@ void WinCodeViewLineTables::maybeRecordLocation(DebugLoc DL,
   MCSymbol *MCL = Asm->MMI->getContext().createTempSymbol();
   Asm->OutStreamer->EmitLabel(MCL);
   CurFn->Instrs.push_back(MCL);
-  InstrInfo[MCL] = InstrInfoTy(Filename, DL.getLine(), DL.getCol());
+  InstrInfo[MCL] = InstrInfoTy(Filename, LineNumber, ColumnNumber);
 }
 
 WinCodeViewLineTables::WinCodeViewLineTables(AsmPrinter *AP)
@@ -282,6 +293,7 @@ void WinCodeViewLineTables::emitDebugInfoForFunction(const Function *GV) {
                 ColSegEnd = ColSegI + FilenameSegmentLengths[LastSegmentStart];
          ColSegI != ColSegEnd; ++ColSegI) {
       unsigned ColumnNumber = InstrInfo[FI.Instrs[ColSegI]].ColumnNumber;
+      assert(ColumnNumber <= COFF::CVL_MaxColumnNumber);
       Asm->EmitInt16(ColumnNumber); // Start column
       Asm->EmitInt16(0);            // End column
     }
@@ -320,7 +332,10 @@ void WinCodeViewLineTables::emitDebugInfoForFunction(const Function *GV) {
 
     // The first PC with the given linenumber and the linenumber itself.
     EmitLabelDiff(*Asm->OutStreamer, Fn, Instr);
-    Asm->EmitInt32(InstrInfo[Instr].LineNumber);
+    uint32_t LineNumber = InstrInfo[Instr].LineNumber;
+    assert(LineNumber <= COFF::CVL_MaxLineNumber);
+    uint32_t LineData = LineNumber | COFF::CVL_IsStatement;
+    Asm->EmitInt32(LineData);
   }
 
   FinishPreviousChunk();
index fed296fa3ad9326d9f0c2eb88c8054891c3ac620..1baeb7eddb7561f20c8a823457b4dcbbafd52f82 100644 (file)
 ; X86-NEXT: .long   3
 ; X86-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
 ; X86-NEXT: .long [[ASM_LINE]]-_f
-; X86-NEXT: .long   4
+; X86-NEXT: .long   -2147483644
 ; X86-NEXT: .long [[CALL_LINE]]-_f
-; X86-NEXT: .long   5
+; X86-NEXT: .long   -2147483643
 ; X86-NEXT: .long [[RETURN_STMT]]-_f
-; X86-NEXT: .long   6
+; X86-NEXT: .long   -2147483642
 ; X86-NEXT: .short  0
 ; X86-NEXT: .short  0
 ; X86-NEXT: .short  0
 ; OBJ32-NEXT:   +0x0 [
 ; OBJ32-NEXT:     LineNumberStart: 4
 ; OBJ32-NEXT:     LineNumberEndDelta: 0
-; OBJ32-NEXT:     IsStatement: No
+; OBJ32-NEXT:     IsStatement: Yes
 ; OBJ32-NEXT:     ColStart: 0
 ; OBJ32-NEXT:     ColEnd: 0
 ; OBJ32-NEXT:   ]
 ; OBJ32-NEXT:   +0x0 [
 ; OBJ32-NEXT:     LineNumberStart: 5
 ; OBJ32-NEXT:     LineNumberEndDelta: 0
-; OBJ32-NEXT:     IsStatement: No
+; OBJ32-NEXT:     IsStatement: Yes
 ; OBJ32-NEXT:     ColStart: 0
 ; OBJ32-NEXT:     ColEnd: 0
 ; OBJ32-NEXT:   ]
 ; OBJ32-NEXT:   +0x5 [
 ; OBJ32-NEXT:     LineNumberStart: 6
 ; OBJ32-NEXT:     LineNumberEndDelta: 0
-; OBJ32-NEXT:     IsStatement: No
+; OBJ32-NEXT:     IsStatement: Yes
 ; OBJ32-NEXT:     ColStart: 0
 ; OBJ32-NEXT:     ColEnd: 0
 ; OBJ32-NEXT:   ]
 ; X64-NEXT: .long   4
 ; X64-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
 ; X64-NEXT: .long [[START]]-f
-; X64-NEXT: .long   3
+; X64-NEXT: .long   -2147483645
 ; X64-NEXT: .long [[ASM_LINE]]-f
-; X64-NEXT: .long   4
+; X64-NEXT: .long   -2147483644
 ; X64-NEXT: .long [[CALL_LINE]]-f
-; X64-NEXT: .long   5
+; X64-NEXT: .long   -2147483643
 ; X64-NEXT: .long [[EPILOG_AND_RET]]-f
-; X64-NEXT: .long   6
+; X64-NEXT: .long   -2147483642
 ; X64-NEXT: .short  0
 ; X64-NEXT: .short  0
 ; X64-NEXT: .short  0
 ; OBJ64-NEXT:     +0x0 [
 ; OBJ64-NEXT:       LineNumberStart: 3
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 0
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
 ; OBJ64-NEXT:     +0x4 [
 ; OBJ64-NEXT:       LineNumberStart: 4
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 0
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
 ; OBJ64-NEXT:     +0x4 [
 ; OBJ64-NEXT:       LineNumberStart: 5
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 0
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
 ; OBJ64-NEXT:     +0x9 [
 ; OBJ64-NEXT:       LineNumberStart: 6
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 0
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
index 90a15914e2f7dac5ca58822b0269b6991bfdfd39..6758718e2fcc2b937cf9d291527977bb31ac1b53 100644 (file)
@@ -65,7 +65,7 @@
 ; X86-NEXT: .long   1
 ; X86-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
 ; X86-NEXT: .long [[CALL_LINE_1]]-_f
-; X86-NEXT: .long   1
+; X86-NEXT: .long   -2147483647
 ; X86-NEXT: .short  0
 ; X86-NEXT: .short  0
 ; X86-NEXT: [[FILE_SEGMENT_END]]:
@@ -75,7 +75,7 @@
 ; X86-NEXT: .long   1
 ; X86-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
 ; X86-NEXT: .long [[CALL_LINE_2]]-_f
-; X86-NEXT: .long   2
+; X86-NEXT: .long   -2147483646
 ; X86-NEXT: .short  0
 ; X86-NEXT: .short  0
 ; X86-NEXT: [[FILE_SEGMENT_END]]:
@@ -85,9 +85,9 @@
 ; X86-NEXT: .long   2
 ; X86-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
 ; X86-NEXT: .long [[CALL_LINE_3]]-_f
-; X86-NEXT: .long   7
+; X86-NEXT: .long   -2147483641
 ; X86-NEXT: .long [[RETURN_STMT]]-_f
-; X86-NEXT: .long   8
+; X86-NEXT: .long   -2147483640
 ; X86-NEXT: .short  0
 ; X86-NEXT: .short  0
 ; X86-NEXT: .short  0
 ; OBJ32-NEXT:     +0x0 [
 ; OBJ32-NEXT:       LineNumberStart: 1
 ; OBJ32-NEXT:       LineNumberEndDelta: 0
-; OBJ32-NEXT:       IsStatement: No
+; OBJ32-NEXT:       IsStatement: Yes
 ; OBJ32-NEXT:       ColStart: 0
 ; OBJ32-NEXT:       ColEnd: 0
 ; OBJ32-NEXT:     ]
 ; OBJ32-NEXT:     +0x5 [
 ; OBJ32-NEXT:       LineNumberStart: 2
 ; OBJ32-NEXT:       LineNumberEndDelta: 0
-; OBJ32-NEXT:       IsStatement: No
+; OBJ32-NEXT:       IsStatement: Yes
 ; OBJ32-NEXT:       ColStart: 0
 ; OBJ32-NEXT:       ColEnd: 0
 ; OBJ32-NEXT:     ]
 ; OBJ32-NEXT:     +0xA [
 ; OBJ32-NEXT:       LineNumberStart: 7
 ; OBJ32-NEXT:       LineNumberEndDelta: 0
-; OBJ32-NEXT:       IsStatement: No
+; OBJ32-NEXT:       IsStatement: Yes
 ; OBJ32-NEXT:       ColStart: 0
 ; OBJ32-NEXT:       ColEnd: 0
 ; OBJ32-NEXT:     ]
 ; OBJ32-NEXT:     +0xF [
 ; OBJ32-NEXT:       LineNumberStart: 8
 ; OBJ32-NEXT:       LineNumberEndDelta: 0
-; OBJ32-NEXT:       IsStatement: No
+; OBJ32-NEXT:       IsStatement: Yes
 ; OBJ32-NEXT:       ColStart: 0
 ; OBJ32-NEXT:       ColEnd: 0
 ; OBJ32-NEXT:     ]
 ; X64-NEXT: .long   1
 ; X64-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
 ; X64-NEXT: .long [[START]]-f
-; X64-NEXT: .long   3
+; X64-NEXT: .long   -2147483645
 ; X64-NEXT: .short  0
 ; X64-NEXT: .short  0
 ; X64-NEXT: [[FILE_SEGMENT_END]]:
 ; X64-NEXT: .long   1
 ; X64-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
 ; X64-NEXT: .long [[CALL_LINE_1]]-f
-; X64-NEXT: .long   1
+; X64-NEXT: .long   -2147483647
 ; X64-NEXT: .short  0
 ; X64-NEXT: .short  0
 ; X64-NEXT: [[FILE_SEGMENT_END]]:
 ; X64-NEXT: .long   1
 ; X64-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
 ; X64-NEXT: .long [[CALL_LINE_2]]-f
-; X64-NEXT: .long   2
+; X64-NEXT: .long   -2147483646
 ; X64-NEXT: .short  0
 ; X64-NEXT: .short  0
 ; X64-NEXT: [[FILE_SEGMENT_END]]:
 ; X64-NEXT: .long   2
 ; X64-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
 ; X64-NEXT: .long [[CALL_LINE_3]]-f
-; X64-NEXT: .long   7
+; X64-NEXT: .long   -2147483641
 ; X64-NEXT: .long [[EPILOG_AND_RET]]-f
-; X64-NEXT: .long   8
+; X64-NEXT: .long   -2147483640
 ; X64-NEXT: .short  0
 ; X64-NEXT: .short  0
 ; X64-NEXT: .short  0
 ; OBJ64-NEXT:     +0x0 [
 ; OBJ64-NEXT:       LineNumberStart: 3
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 0
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
 ; OBJ64-NEXT:     +0x4 [
 ; OBJ64-NEXT:       LineNumberStart: 1
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 0
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
 ; OBJ64-NEXT:     +0x9 [
 ; OBJ64-NEXT:       LineNumberStart: 2
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 0
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
 ; OBJ64-NEXT:     +0xE [
 ; OBJ64-NEXT:       LineNumberStart: 7
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 0
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
 ; OBJ64-NEXT:     +0x13 [
 ; OBJ64-NEXT:       LineNumberStart: 8
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 0
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
index 832a67f99b2b948bc4ca9904be5f7d70c38c5ec7..a292af3585d1d3fd6cbc2420137eebccd21e9d7d 100644 (file)
@@ -86,9 +86,9 @@
 ; X86-NEXT: .long   2
 ; X86-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
 ; X86-NEXT: .long [[X_CALL]]-_x
-; X86-NEXT: .long   4
+; X86-NEXT: .long   -2147483644
 ; X86-NEXT: .long [[X_RETURN]]-_x
-; X86-NEXT: .long   5
+; X86-NEXT: .long   -2147483643
 ; X86-NEXT: .short 42
 ; X86-NEXT: .short 0
 ; X86-NEXT: .short 43
 ; X86-NEXT: .long   2
 ; X86-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
 ; X86-NEXT: .long [[Y_CALL]]-_y
-; X86-NEXT: .long   8
+; X86-NEXT: .long   -2147483640
 ; X86-NEXT: .long [[Y_RETURN]]-_y
-; X86-NEXT: .long   9
+; X86-NEXT: .long   -2147483639
 ; X86-NEXT: .short 52
 ; X86-NEXT: .short 0
 ; X86-NEXT: .short 53
 ; X86-NEXT: .long   4
 ; X86-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
 ; X86-NEXT: .long [[F_CALLS_X]]-_f
-; X86-NEXT: .long   12
+; X86-NEXT: .long   -2147483636
 ; X86-NEXT: .long [[F_CALLS_Y]]-_f
-; X86-NEXT: .long   13
+; X86-NEXT: .long   -2147483635
 ; X86-NEXT: .long [[F_CALLS_Z]]-_f
-; X86-NEXT: .long   14
+; X86-NEXT: .long   -2147483634
 ; X86-NEXT: .long [[F_RETURN]]-_f
-; X86-NEXT: .long   15
+; X86-NEXT: .long   -2147483633
 ; X86-NEXT: .short 62
 ; X86-NEXT: .short 0
 ; X86-NEXT: .short 63
 ; OBJ32-NEXT:     +0x0 [
 ; OBJ32-NEXT:       LineNumberStart: 4
 ; OBJ32-NEXT:       LineNumberEndDelta: 0
-; OBJ32-NEXT:       IsStatement: No
+; OBJ32-NEXT:       IsStatement: Yes
 ; OBJ32-NEXT:       ColStart: 42
 ; OBJ32-NEXT:       ColEnd: 0
 ; OBJ32-NEXT:     ]
 ; OBJ32-NEXT:     +0x5 [
 ; OBJ32-NEXT:       LineNumberStart: 5
 ; OBJ32-NEXT:       LineNumberEndDelta: 0
-; OBJ32-NEXT:       IsStatement: No
+; OBJ32-NEXT:       IsStatement: Yes
 ; OBJ32-NEXT:       ColStart: 43
 ; OBJ32-NEXT:       ColEnd: 0
 ; OBJ32-NEXT:     ]
 ; OBJ32-NEXT:     +0x0 [
 ; OBJ32-NEXT:       LineNumberStart: 8
 ; OBJ32-NEXT:       LineNumberEndDelta: 0
-; OBJ32-NEXT:       IsStatement: No
+; OBJ32-NEXT:       IsStatement: Yes
 ; OBJ32-NEXT:       ColStart: 52
 ; OBJ32-NEXT:       ColEnd: 0
 ; OBJ32-NEXT:     ]
 ; OBJ32-NEXT:     +0x5 [
 ; OBJ32-NEXT:       LineNumberStart: 9
 ; OBJ32-NEXT:       LineNumberEndDelta: 0
-; OBJ32-NEXT:       IsStatement: No
+; OBJ32-NEXT:       IsStatement: Yes
 ; OBJ32-NEXT:       ColStart: 53
 ; OBJ32-NEXT:       ColEnd: 0
 ; OBJ32-NEXT:     ]
 ; OBJ32-NEXT:     +0x0 [
 ; OBJ32-NEXT:       LineNumberStart: 12
 ; OBJ32-NEXT:       LineNumberEndDelta: 0
-; OBJ32-NEXT:       IsStatement: No
+; OBJ32-NEXT:       IsStatement: Yes
 ; OBJ32-NEXT:       ColStart: 62
 ; OBJ32-NEXT:       ColEnd: 0
 ; OBJ32-NEXT:     ]
 ; OBJ32-NEXT:     +0x5 [
 ; OBJ32-NEXT:       LineNumberStart: 13
 ; OBJ32-NEXT:       LineNumberEndDelta: 0
-; OBJ32-NEXT:       IsStatement: No
+; OBJ32-NEXT:       IsStatement: Yes
 ; OBJ32-NEXT:       ColStart: 63
 ; OBJ32-NEXT:       ColEnd: 0
 ; OBJ32-NEXT:     ]
 ; OBJ32-NEXT:     +0xA [
 ; OBJ32-NEXT:       LineNumberStart: 14
 ; OBJ32-NEXT:       LineNumberEndDelta: 0
-; OBJ32-NEXT:       IsStatement: No
+; OBJ32-NEXT:       IsStatement: Yes
 ; OBJ32-NEXT:       ColStart: 72
 ; OBJ32-NEXT:       ColEnd: 0
 ; OBJ32-NEXT:     ]
 ; OBJ32-NEXT:     +0xF [
 ; OBJ32-NEXT:       LineNumberStart: 15
 ; OBJ32-NEXT:       LineNumberEndDelta: 0
-; OBJ32-NEXT:       IsStatement: No
+; OBJ32-NEXT:       IsStatement: Yes
 ; OBJ32-NEXT:       ColStart: 73
 ; OBJ32-NEXT:       ColEnd: 0
 ; OBJ32-NEXT:     ]
 ; X64-NEXT: .long   3
 ; X64-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
 ; X64-NEXT: .long [[X_START]]-x
-; X64-NEXT: .long   3
+; X64-NEXT: .long   -2147483645
 ; X64-NEXT: .long [[X_CALL_LINE]]-x
-; X64-NEXT: .long   4
+; X64-NEXT: .long   -2147483644
 ; X64-NEXT: .long [[X_EPILOG_AND_RET]]-x
-; X64-NEXT: .long   5
+; X64-NEXT: .long   -2147483643
 ; X64-NEXT: .short 0
 ; X64-NEXT: .short 0
 ; X64-NEXT: .short 42
 ; X64-NEXT: .long   3
 ; X64-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
 ; X64-NEXT: .long [[Y_START]]-y
-; X64-NEXT: .long   7
+; X64-NEXT: .long   -2147483641
 ; X64-NEXT: .long [[Y_CALL_LINE]]-y
-; X64-NEXT: .long   8
+; X64-NEXT: .long   -2147483640
 ; X64-NEXT: .long [[Y_EPILOG_AND_RET]]-y
-; X64-NEXT: .long   9
+; X64-NEXT: .long   -2147483639
 ; X64-NEXT: .short 0
 ; X64-NEXT: .short 0
 ; X64-NEXT: .short 52
 ; X64-NEXT: .long   5
 ; X64-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
 ; X64-NEXT: .long [[F_START]]-f
-; X64-NEXT: .long   11
+; X64-NEXT: .long   -2147483637
 ; X64-NEXT: .long [[F_CALLS_X]]-f
-; X64-NEXT: .long   12
+; X64-NEXT: .long   -2147483636
 ; X64-NEXT: .long [[F_CALLS_Y]]-f
-; X64-NEXT: .long   13
+; X64-NEXT: .long   -2147483635
 ; X64-NEXT: .long [[F_CALLS_Z]]-f
-; X64-NEXT: .long   14
+; X64-NEXT: .long   -2147483634
 ; X64-NEXT: .long [[F_EPILOG_AND_RET]]-f
-; X64-NEXT: .long   15
+; X64-NEXT: .long   -2147483633
 ; X64-NEXT: .short 0
 ; X64-NEXT: .short 0
 ; X64-NEXT: .short 62
 ; OBJ64-NEXT:     +0x0 [
 ; OBJ64-NEXT:       LineNumberStart: 3
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 0
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
 ; OBJ64-NEXT:     +0x4 [
 ; OBJ64-NEXT:       LineNumberStart: 4
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 42
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
 ; OBJ64-NEXT:     +0x9 [
 ; OBJ64-NEXT:       LineNumberStart: 5
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 43
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
 ; OBJ64-NEXT:     +0x0 [
 ; OBJ64-NEXT:       LineNumberStart: 7
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 0
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
 ; OBJ64-NEXT:     +0x4 [
 ; OBJ64-NEXT:       LineNumberStart: 8
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 52
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
 ; OBJ64-NEXT:     +0x9 [
 ; OBJ64-NEXT:       LineNumberStart: 9
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 53
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
 ; OBJ64-NEXT:     +0x0 [
 ; OBJ64-NEXT:       LineNumberStart: 11
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 0
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
 ; OBJ64-NEXT:     +0x4 [
 ; OBJ64-NEXT:       LineNumberStart: 12
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 62
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
 ; OBJ64-NEXT:     +0x9 [
 ; OBJ64-NEXT:       LineNumberStart: 13
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 63
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
 ; OBJ64-NEXT:     +0xE [
 ; OBJ64-NEXT:       LineNumberStart: 14
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 72
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
 ; OBJ64-NEXT:     +0x13 [
 ; OBJ64-NEXT:       LineNumberStart: 15
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 73
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
index 3e62b2b7e4d9b32fe7df36bcf0318589aec41817..128b9efba545bedaf37f7ef4b7341a9c77cbf042 100644 (file)
@@ -55,9 +55,9 @@
 ; X86-NEXT: .long   2
 ; X86-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
 ; X86-NEXT: .long [[CALL_LINE]]-_f
-; X86-NEXT: .long   4
+; X86-NEXT: .long   -2147483644
 ; X86-NEXT: .long [[RETURN_STMT]]-_f
-; X86-NEXT: .long   5
+; X86-NEXT: .long   -2147483643
 ; X86-NEXT: .short  0
 ; X86-NEXT: .short  0
 ; X86-NEXT: .short  0
 ; OBJ32-NEXT:     +0x0 [
 ; OBJ32-NEXT:       LineNumberStart: 4
 ; OBJ32-NEXT:       LineNumberEndDelta: 0
-; OBJ32-NEXT:       IsStatement: No
+; OBJ32-NEXT:       IsStatement: Yes
 ; OBJ32-NEXT:       ColStart: 0
 ; OBJ32-NEXT:       ColEnd: 0
 ; OBJ32-NEXT:     ]
 ; OBJ32-NEXT:     +0x5 [
 ; OBJ32-NEXT:       LineNumberStart: 5
 ; OBJ32-NEXT:       LineNumberEndDelta: 0
-; OBJ32-NEXT:       IsStatement: No
+; OBJ32-NEXT:       IsStatement: Yes
 ; OBJ32-NEXT:       ColStart: 0
 ; OBJ32-NEXT:       ColEnd: 0
 ; OBJ32-NEXT:     ]
 ; X64-NEXT: .long   3
 ; X64-NEXT: .long [[FILE_SEGMENT_END:.*]]-[[FILE_SEGMENT_START]]
 ; X64-NEXT: .long [[START]]-f
-; X64-NEXT: .long   3
+; X64-NEXT: .long   -2147483645
 ; X64-NEXT: .long [[CALL_LINE]]-f
-; X64-NEXT: .long   4
+; X64-NEXT: .long   -2147483644
 ; X64-NEXT: .long [[EPILOG_AND_RET]]-f
-; X64-NEXT: .long   5
+; X64-NEXT: .long   -2147483643
 ; X64-NEXT: .short  0
 ; X64-NEXT: .short  0
 ; X64-NEXT: .short  0
 ; OBJ64-NEXT:     +0x0 [
 ; OBJ64-NEXT:       LineNumberStart: 3
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 0
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
 ; OBJ64-NEXT:     +0x4 [
 ; OBJ64-NEXT:       LineNumberStart: 4
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 0
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
 ; OBJ64-NEXT:     +0x9 [
 ; OBJ64-NEXT:       LineNumberStart: 5
 ; OBJ64-NEXT:       LineNumberEndDelta: 0
-; OBJ64-NEXT:       IsStatement: No
+; OBJ64-NEXT:       IsStatement: Yes
 ; OBJ64-NEXT:       ColStart: 0
 ; OBJ64-NEXT:       ColEnd: 0
 ; OBJ64-NEXT:     ]
index 28b8d2859efa20fc6d50c9a395025b973f08d2b2..a21c8bb0d973a83c80502f8148e19fe76c489e4a 100644 (file)
@@ -30,7 +30,7 @@
 ; X86-NEXT:  .long   1
 ; X86-NEXT:  .long {{.*}}
 ; X86-NEXT:  .long [[JMP_LINE]]-"?bar@@YAXHZZ"
-; X86-NEXT:  .long   4
+; X86-NEXT:  .long   -2147483644
 
 ; X86-LABEL: .long   244