summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-08-15 18:00:42 +0000
committerChris Lattner <sabre@nondot.org>2009-08-15 18:00:42 +0000
commitd7e250527c38297c900db43a9e2f1e56b235b3cc (patch)
treeae448314123d93b4b97352653bc0e41f58bb5324 /utils
parent7bee3271e883acf2d07b48f3796a7cdc158112db (diff)
downloadllvm-d7e250527c38297c900db43a9e2f1e56b235b3cc.tar.gz
llvm-d7e250527c38297c900db43a9e2f1e56b235b3cc.tar.bz2
llvm-d7e250527c38297c900db43a9e2f1e56b235b3cc.tar.xz
simplify some code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79121 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils')
-rw-r--r--utils/FileCheck/FileCheck.cpp21
1 files changed, 13 insertions, 8 deletions
diff --git a/utils/FileCheck/FileCheck.cpp b/utils/FileCheck/FileCheck.cpp
index 6af70f338b..986c7838a0 100644
--- a/utils/FileCheck/FileCheck.cpp
+++ b/utils/FileCheck/FileCheck.cpp
@@ -95,23 +95,27 @@ static bool ReadCheckFile(SourceMgr &SM,
}
SM.AddNewSourceBuffer(F, SMLoc());
- // Find all instances of CheckPrefix followed by : in the file. The
- // MemoryBuffer is guaranteed to be nul terminated, but may have nul's
- // embedded into it. We don't support check strings with embedded nuls.
- std::string Prefix = CheckPrefix + ":";
+ // Find all instances of CheckPrefix followed by : in the file.
const char *CurPtr = F->getBufferStart(), *BufferEnd = F->getBufferEnd();
while (1) {
// See if Prefix occurs in the memory buffer.
- const char *Ptr = FindFixedStringInBuffer(Prefix, CurPtr, *F);
+ const char *Ptr = FindFixedStringInBuffer(CheckPrefix, CurPtr, *F);
// If we didn't find a match, we're done.
if (Ptr == BufferEnd)
break;
+ // Verify that the : is present after the prefix.
+ if (Ptr[CheckPrefix.size()] != ':') {
+ CurPtr = Ptr+1;
+ continue;
+ }
+
// Okay, we found the prefix, yay. Remember the rest of the line, but
// ignore leading and trailing whitespace.
- Ptr += Prefix.size();
+ Ptr += CheckPrefix.size()+1;
+
while (*Ptr == ' ' || *Ptr == '\t')
++Ptr;
@@ -127,7 +131,7 @@ static bool ReadCheckFile(SourceMgr &SM,
// Check that there is something on the line.
if (Ptr >= CurPtr) {
SM.PrintMessage(SMLoc::getFromPointer(CurPtr),
- "found empty check string with prefix '"+Prefix+"'",
+ "found empty check string with prefix '"+CheckPrefix+":'",
"error");
return true;
}
@@ -138,7 +142,8 @@ static bool ReadCheckFile(SourceMgr &SM,
}
if (CheckStrings.empty()) {
- errs() << "error: no check strings found with prefix '" << Prefix << "'\n";
+ errs() << "error: no check strings found with prefix '" << CheckPrefix
+ << ":'\n";
return true;
}