]> granicus.if.org Git - llvm/commitdiff
[FileCheck] Fix --strict-whitespace --match-full-lines
authorTom de Vries <vries@codesourcery.com>
Sun, 18 Dec 2016 20:45:59 +0000 (20:45 +0000)
committerTom de Vries <vries@codesourcery.com>
Sun, 18 Dec 2016 20:45:59 +0000 (20:45 +0000)
Make sure FileCheck --strict-whitespace --match-full-lines translates
'CHECK: bla ' into pattern '^ bla $' instead of pattern '^bla$'.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@290069 91177308-0d34-0410-b5e6-96231b3b80d8

utils/FileCheck/FileCheck.cpp

index 2d9747757aa75dcdc01f89851103053d53d6b3ef..9e177574625f6ea163e2617e1ecd004a69ee7410 100644 (file)
@@ -168,10 +168,11 @@ bool Pattern::ParsePattern(StringRef PatternStr, StringRef Prefix,
   this->LineNumber = LineNumber;
   PatternLoc = SMLoc::getFromPointer(PatternStr.data());
 
-  // Ignore trailing whitespace.
-  while (!PatternStr.empty() &&
-         (PatternStr.back() == ' ' || PatternStr.back() == '\t'))
-    PatternStr = PatternStr.substr(0, PatternStr.size() - 1);
+  if (!(NoCanonicalizeWhiteSpace && MatchFullLines))
+    // Ignore trailing whitespace.
+    while (!PatternStr.empty() &&
+           (PatternStr.back() == ' ' || PatternStr.back() == '\t'))
+      PatternStr = PatternStr.substr(0, PatternStr.size() - 1);
 
   // Check that there is something on the line.
   if (PatternStr.empty()) {
@@ -866,7 +867,8 @@ static bool ReadCheckFile(SourceMgr &SM, StringRef Buffer, Regex &PrefixRE,
 
     // Okay, we found the prefix, yay. Remember the rest of the line, but ignore
     // leading whitespace.
-    Buffer = Buffer.substr(Buffer.find_first_not_of(" \t"));
+    if (!(NoCanonicalizeWhiteSpace && MatchFullLines))
+      Buffer = Buffer.substr(Buffer.find_first_not_of(" \t"));
 
     // Scan ahead to the end of line.
     size_t EOL = Buffer.find_first_of("\n\r");