From 30ce40e3f77d1432903c24caf816c54bb260d833 Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Tue, 18 Sep 2012 20:51:39 +0000 Subject: [PATCH] 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 --- test/Other/FileCheck-space.txt | 9 +++++++++ test/Other/lit.local.cfg | 2 +- utils/FileCheck/FileCheck.cpp | 4 ++-- 3 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 test/Other/FileCheck-space.txt diff --git a/test/Other/FileCheck-space.txt b/test/Other/FileCheck-space.txt new file mode 100644 index 000000000000..6bbe5bc05ba7 --- /dev/null +++ b/test/Other/FileCheck-space.txt @@ -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 diff --git a/test/Other/lit.local.cfg b/test/Other/lit.local.cfg index 19eebc0ac7ac..269307724232 100644 --- a/test/Other/lit.local.cfg +++ b/test/Other/lit.local.cfg @@ -1 +1 @@ -config.suffixes = ['.ll', '.c', '.cpp'] +config.suffixes = ['.ll', '.c', '.cpp', '.txt'] diff --git a/utils/FileCheck/FileCheck.cpp b/utils/FileCheck/FileCheck.cpp index 33f04ce64779..afbce35af5b0 100644 --- a/utils/FileCheck/FileCheck.cpp +++ b/utils/FileCheck/FileCheck.cpp @@ -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);