Fix FileCheck: substr() expect the length of the string as 2nd arg
authorMehdi Amini <mehdi.amini@apple.com>
Thu, 12 Mar 2015 00:07:29 +0000 (00:07 +0000)
committerMehdi Amini <mehdi.amini@apple.com>
Thu, 12 Mar 2015 00:07:29 +0000 (00:07 +0000)
The code assumed that substr() was taking start,end while it takes
start,length.

From: Mehdi Amini <mehdi.amini@apple.com>

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

utils/FileCheck/FileCheck.cpp

index 146b5121ac55c647e71b487fbda5c239ce17c8aa..f7c0524a22161947436f5219d49dee05c0f6e395 100644 (file)
@@ -1053,7 +1053,6 @@ size_t CheckString::Check(const SourceMgr &SM, StringRef Buffer,
     PrintCheckFailed(SM, *this, MatchBuffer, VariableTable);
     return StringRef::npos;
   }
-  MatchPos += LastPos;
 
   // Similar to the above, in "label-scan mode" we can't yet handle CHECK-NEXT
   // or CHECK-NOT
@@ -1076,7 +1075,7 @@ size_t CheckString::Check(const SourceMgr &SM, StringRef Buffer,
       return StringRef::npos;
   }
 
-  return MatchPos;
+  return LastPos + MatchPos;
 }
 
 bool CheckString::CheckNext(const SourceMgr &SM, StringRef Buffer) const {