diff options
Diffstat (limited to 'llvm/lib/FileCheck/FileCheck.cpp')
-rw-r--r-- | llvm/lib/FileCheck/FileCheck.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/llvm/lib/FileCheck/FileCheck.cpp b/llvm/lib/FileCheck/FileCheck.cpp index 49fda8f..bef6dd6 100644 --- a/llvm/lib/FileCheck/FileCheck.cpp +++ b/llvm/lib/FileCheck/FileCheck.cpp @@ -832,12 +832,16 @@ bool Pattern::parsePattern(StringRef PatternStr, StringRef Prefix, // capturing the result for any purpose. This is required in case the // expression contains an alternation like: CHECK: abc{{x|z}}def. We // want this to turn into: "abc(x|z)def" not "abcx|zdef". - RegExStr += '('; - ++CurParen; + bool HasAlternation = PatternStr.contains('|'); + if (HasAlternation) { + RegExStr += '('; + ++CurParen; + } if (AddRegExToRegEx(PatternStr.substr(2, End - 2), CurParen, SM)) return true; - RegExStr += ')'; + if (HasAlternation) + RegExStr += ')'; PatternStr = PatternStr.substr(End + 2); continue; |