mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-04 09:54:09 +00:00
FileCheck: Print a nice error message for missing closing ']' in regex vars.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198449 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
077b7b1472
commit
609ad7ec44
@ -154,7 +154,7 @@ private:
|
||||
/// (right after the opening sequence).
|
||||
/// \return offset of the closing sequence within Str, or npos if it was not
|
||||
/// found.
|
||||
size_t FindRegexVarEnd(StringRef Str);
|
||||
size_t FindRegexVarEnd(StringRef Str, SourceMgr &SM);
|
||||
};
|
||||
|
||||
|
||||
@ -227,7 +227,7 @@ bool Pattern::ParsePattern(StringRef PatternStr,
|
||||
if (PatternStr.startswith("[[")) {
|
||||
// Find the closing bracket pair ending the match. End is going to be an
|
||||
// offset relative to the beginning of the match string.
|
||||
size_t End = FindRegexVarEnd(PatternStr.substr(2));
|
||||
size_t End = FindRegexVarEnd(PatternStr.substr(2), SM);
|
||||
|
||||
if (End == StringRef::npos) {
|
||||
SM.PrintMessage(SMLoc::getFromPointer(PatternStr.data()),
|
||||
@ -532,7 +532,7 @@ void Pattern::PrintFailureInfo(const SourceMgr &SM, StringRef Buffer,
|
||||
}
|
||||
}
|
||||
|
||||
size_t Pattern::FindRegexVarEnd(StringRef Str) {
|
||||
size_t Pattern::FindRegexVarEnd(StringRef Str, SourceMgr &SM) {
|
||||
// Offset keeps track of the current offset within the input Str
|
||||
size_t Offset = 0;
|
||||
// [...] Nesting depth
|
||||
@ -553,7 +553,12 @@ size_t Pattern::FindRegexVarEnd(StringRef Str) {
|
||||
BracketDepth++;
|
||||
break;
|
||||
case ']':
|
||||
assert(BracketDepth > 0 && "Invalid regex");
|
||||
if (BracketDepth == 0) {
|
||||
SM.PrintMessage(SMLoc::getFromPointer(Str.data()),
|
||||
SourceMgr::DK_Error,
|
||||
"missing closing \"]\" for regex variable");
|
||||
exit(1);
|
||||
}
|
||||
BracketDepth--;
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user