From 222a88109a74767391502810def760d2623dbcd7 Mon Sep 17 00:00:00 2001 From: David Majnemer Date: Wed, 13 Jan 2016 01:05:23 +0000 Subject: [PATCH] [CodeView] Mark our lines as statements, not expressions 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 --- .../AsmPrinter/WinCodeViewLineTables.cpp | 21 ++++- test/DebugInfo/COFF/asm.ll | 28 +++---- test/DebugInfo/COFF/multifile.ll | 36 ++++----- test/DebugInfo/COFF/multifunction.ll | 76 +++++++++---------- test/DebugInfo/COFF/simple.ll | 20 ++--- .../COFF/tail-call-without-lexical-scopes.ll | 2 +- 6 files changed, 99 insertions(+), 84 deletions(-) diff --git a/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp b/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp index 52116ce1e22..1e2f55b7115 100644 --- a/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp +++ b/lib/CodeGen/AsmPrinter/WinCodeViewLineTables.cpp @@ -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(); diff --git a/test/DebugInfo/COFF/asm.ll b/test/DebugInfo/COFF/asm.ll index fed296fa3ad..1baeb7eddb7 100644 --- a/test/DebugInfo/COFF/asm.ll +++ b/test/DebugInfo/COFF/asm.ll @@ -57,11 +57,11 @@ ; 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 @@ -117,21 +117,21 @@ ; 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: ] @@ -186,13 +186,13 @@ ; 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 @@ -248,28 +248,28 @@ ; 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: ] diff --git a/test/DebugInfo/COFF/multifile.ll b/test/DebugInfo/COFF/multifile.ll index 90a15914e2f..6758718e2fc 100644 --- a/test/DebugInfo/COFF/multifile.ll +++ b/test/DebugInfo/COFF/multifile.ll @@ -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 @@ -140,7 +140,7 @@ ; 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: ] @@ -150,7 +150,7 @@ ; 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: ] @@ -160,14 +160,14 @@ ; 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: ] @@ -227,7 +227,7 @@ ; 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]]: @@ -237,7 +237,7 @@ ; 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]]: @@ -247,7 +247,7 @@ ; 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]]: @@ -257,9 +257,9 @@ ; 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 @@ -316,7 +316,7 @@ ; 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: ] @@ -326,7 +326,7 @@ ; 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: ] @@ -336,7 +336,7 @@ ; 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: ] @@ -346,14 +346,14 @@ ; 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: ] diff --git a/test/DebugInfo/COFF/multifunction.ll b/test/DebugInfo/COFF/multifunction.ll index 832a67f99b2..a292af3585d 100644 --- a/test/DebugInfo/COFF/multifunction.ll +++ b/test/DebugInfo/COFF/multifunction.ll @@ -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 @@ -129,9 +129,9 @@ ; 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 @@ -172,13 +172,13 @@ ; 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 @@ -268,14 +268,14 @@ ; 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: ] @@ -290,14 +290,14 @@ ; 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: ] @@ -312,28 +312,28 @@ ; 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: ] @@ -417,11 +417,11 @@ ; 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 @@ -464,11 +464,11 @@ ; 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 @@ -511,15 +511,15 @@ ; 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 @@ -611,21 +611,21 @@ ; 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: ] @@ -640,21 +640,21 @@ ; 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: ] @@ -669,35 +669,35 @@ ; 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: ] diff --git a/test/DebugInfo/COFF/simple.ll b/test/DebugInfo/COFF/simple.ll index 3e62b2b7e4d..128b9efba54 100644 --- a/test/DebugInfo/COFF/simple.ll +++ b/test/DebugInfo/COFF/simple.ll @@ -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 @@ -107,14 +107,14 @@ ; 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: ] @@ -169,11 +169,11 @@ ; 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 @@ -225,21 +225,21 @@ ; 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: ] diff --git a/test/DebugInfo/COFF/tail-call-without-lexical-scopes.ll b/test/DebugInfo/COFF/tail-call-without-lexical-scopes.ll index 28b8d2859ef..a21c8bb0d97 100644 --- a/test/DebugInfo/COFF/tail-call-without-lexical-scopes.ll +++ b/test/DebugInfo/COFF/tail-call-without-lexical-scopes.ll @@ -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 -- 2.34.1