FileCheck: Fix off-by-one bug that made CHECK-NOT: ignore the next character after the colon.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164165 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Benjamin Kramer 2012-09-18 20:51:39 +00:00
parent 51ca601977
commit 30ce40e3f7
3 changed files with 12 additions and 3 deletions

View File

@ -0,0 +1,9 @@
RUN: printf "a\nb" | FileCheck %s -check-prefix=TEST1
RUN: echo oo | FileCheck %s -check-prefix=TEST2
Check that CHECK-NEXT without a space after the colon works.
TEST1:a
TEST1-NEXT:b
Check that CHECK-NOT without a space after the colon works.
TEST2-NOT:foo

View File

@ -1 +1 @@
config.suffixes = ['.ll', '.c', '.cpp']
config.suffixes = ['.ll', '.c', '.cpp', '.txt']

View File

@ -537,11 +537,11 @@ static bool ReadCheckFile(SourceMgr &SM,
Buffer = Buffer.substr(CheckPrefix.size()+1);
} else if (Buffer.size() > CheckPrefix.size()+6 &&
memcmp(Buffer.data()+CheckPrefix.size(), "-NEXT:", 6) == 0) {
Buffer = Buffer.substr(CheckPrefix.size()+7);
Buffer = Buffer.substr(CheckPrefix.size()+6);
IsCheckNext = true;
} else if (Buffer.size() > CheckPrefix.size()+5 &&
memcmp(Buffer.data()+CheckPrefix.size(), "-NOT:", 5) == 0) {
Buffer = Buffer.substr(CheckPrefix.size()+6);
Buffer = Buffer.substr(CheckPrefix.size()+5);
IsCheckNot = true;
} else {
Buffer = Buffer.substr(1);