[llvm] r355928 - [FileCheck]Remove assertions that prevent matching an empty string at file start before CHECK-NEXT/SAME
James Henderson via llvm-commits
llvm-commits at lists.llvm.org
Tue Mar 12 08:37:34 PDT 2019
Author: jhenderson
Date: Tue Mar 12 08:37:34 2019
New Revision: 355928
URL: http://llvm.org/viewvc/llvm-project?rev=355928&view=rev
Log:
[FileCheck]Remove assertions that prevent matching an empty string at file start before CHECK-NEXT/SAME
This patch removes two assertions that were preventing writing of a test
that checked an empty line followed by some text. For example:
CHECK: {{^$}}
CHECK-NEXT: foo()
The assertion was because the current location the CHECK-NEXT was
scanning from was the start of the buffer. A similar issue occurred with
CHECK-SAME. These assertions don't protect against anything, as there is
already an error check that checks that CHECK-NEXT/EMPTY/SAME don't
appear first in the checks, and the following code works fine if the
pointer is at the start of the input.
Reviewed by: probinson, thopre, jdenny
Differential Revision: https://reviews.llvm.org/D58784
Added:
llvm/trunk/test/FileCheck/empty-regex-match-at-start.txt
Modified:
llvm/trunk/lib/Support/FileCheck.cpp
Modified: llvm/trunk/lib/Support/FileCheck.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/FileCheck.cpp?rev=355928&r1=355927&r2=355928&view=diff
==============================================================================
--- llvm/trunk/lib/Support/FileCheck.cpp (original)
+++ llvm/trunk/lib/Support/FileCheck.cpp Tue Mar 12 08:37:34 2019
@@ -1114,12 +1114,6 @@ bool FileCheckString::CheckNext(const So
Twine(Pat.getCheckTy() == Check::CheckEmpty ? "-EMPTY" : "-NEXT");
// Count the number of newlines between the previous match and this one.
- assert(Buffer.data() !=
- SM.getMemoryBuffer(SM.FindBufferContainingLoc(
- SMLoc::getFromPointer(Buffer.data())))
- ->getBufferStart() &&
- "CHECK-NEXT and CHECK-EMPTY can't be the first check in a file");
-
const char *FirstNewLine = nullptr;
unsigned NumNewLines = CountNumNewlinesBetween(Buffer, FirstNewLine);
@@ -1155,12 +1149,6 @@ bool FileCheckString::CheckSame(const So
return false;
// Count the number of newlines between the previous match and this one.
- assert(Buffer.data() !=
- SM.getMemoryBuffer(SM.FindBufferContainingLoc(
- SMLoc::getFromPointer(Buffer.data())))
- ->getBufferStart() &&
- "CHECK-SAME can't be the first check in a file");
-
const char *FirstNewLine = nullptr;
unsigned NumNewLines = CountNumNewlinesBetween(Buffer, FirstNewLine);
Added: llvm/trunk/test/FileCheck/empty-regex-match-at-start.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/FileCheck/empty-regex-match-at-start.txt?rev=355928&view=auto
==============================================================================
--- llvm/trunk/test/FileCheck/empty-regex-match-at-start.txt (added)
+++ llvm/trunk/test/FileCheck/empty-regex-match-at-start.txt Tue Mar 12 08:37:34 2019
@@ -0,0 +1,16 @@
+some text
+more text
+
+RUN: FileCheck %s --check-prefix=NEXT --input-file=%s
+NEXT: {{^}}
+NEXT-NEXT: more text
+
+RUN: FileCheck %s --check-prefix=SAME --input-file=%s
+SAME: {{^}}
+SAME-SAME: some text
+
+RUN: echo "" > %t
+RUN: echo "" >> %t
+RUN: FileCheck %s --check-prefix=EMPTY --input-file=%t
+EMPTY: {{^}}
+EMPTY-EMPTY:
More information about the llvm-commits
mailing list