From e546343799d1b7914024b62f6c188f5c0d66f7b3 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Fri, 29 Jan 2010 21:53:18 +0000 Subject: [PATCH] Fix the position of the caret in the FileCheck error message. Before: test/CodeGen/X86/lsr-reuse.ll:52:34: error: expected string not found in input ; CHECK: movsd -2048(%rsi), %xmm0 ^ After: test/CodeGen/X86/lsr-reuse.ll:52:10: error: expected string not found in input ; CHECK: movsd -2048(%rsi), %xmm0 ^ git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94846 91177308-0d34-0410-b5e6-96231b3b80d8 --- utils/FileCheck/FileCheck.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/utils/FileCheck/FileCheck.cpp b/utils/FileCheck/FileCheck.cpp index 440d7d741ba..5b158fed8d3 100644 --- a/utils/FileCheck/FileCheck.cpp +++ b/utils/FileCheck/FileCheck.cpp @@ -524,6 +524,9 @@ static bool ReadCheckFile(SourceMgr &SM, // Scan ahead to the end of line. size_t EOL = Buffer.find_first_of("\n\r"); + // Remember the location of the start of the pattern, for diagnostics. + SMLoc PatternLoc = SMLoc::getFromPointer(Buffer.data()); + // Parse the pattern. Pattern P; if (P.ParsePattern(Buffer.substr(0, EOL), SM)) @@ -550,7 +553,7 @@ static bool ReadCheckFile(SourceMgr &SM, // Okay, add the string we captured to the output vector and move on. CheckStrings.push_back(CheckString(P, - SMLoc::getFromPointer(Buffer.data()), + PatternLoc, IsCheckNext)); std::swap(NotMatches, CheckStrings.back().NotStrings); }