aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/FileCheck/FileCheck.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/FileCheck/FileCheck.cpp')
-rw-r--r--llvm/lib/FileCheck/FileCheck.cpp10
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;