summaryrefslogtreecommitdiffstats
path: root/clang/lib/ASTMatchers/Dynamic/Parser.cpp
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2013-10-21 22:26:36 +0000
committerReid Kleckner <reid@kleckner.net>2013-10-21 22:26:36 +0000
commit9171f02528f4b8047f9ddd2fb0fdd1473063f5d4 (patch)
tree53d0b72c5bd5f400f92f14ed9c1150f3a98f9a32 /clang/lib/ASTMatchers/Dynamic/Parser.cpp
parent1e375f55d5df08fa706f49cc510e743c253b476e (diff)
downloadbcm5719-llvm-9171f02528f4b8047f9ddd2fb0fdd1473063f5d4.tar.gz
bcm5719-llvm-9171f02528f4b8047f9ddd2fb0fdd1473063f5d4.zip
Revert "Refactor DynTypedMatcher into a value type class, just like Matcher<T>."
This reverts commit r193100. It was failing to compile with MSVC 2012 while instantiating llvm::Optional<DynTypedMatcher>. llvm-svn: 193123
Diffstat (limited to 'clang/lib/ASTMatchers/Dynamic/Parser.cpp')
-rw-r--r--clang/lib/ASTMatchers/Dynamic/Parser.cpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/clang/lib/ASTMatchers/Dynamic/Parser.cpp b/clang/lib/ASTMatchers/Dynamic/Parser.cpp
index df9596e9b93..37e6c10478c 100644
--- a/clang/lib/ASTMatchers/Dynamic/Parser.cpp
+++ b/clang/lib/ASTMatchers/Dynamic/Parser.cpp
@@ -390,29 +390,29 @@ bool Parser::parseExpression(StringRef Code, Sema *S,
return true;
}
-llvm::Optional<DynTypedMatcher>
-Parser::parseMatcherExpression(StringRef Code, Diagnostics *Error) {
+DynTypedMatcher *Parser::parseMatcherExpression(StringRef Code,
+ Diagnostics *Error) {
RegistrySema S;
return parseMatcherExpression(Code, &S, Error);
}
-llvm::Optional<DynTypedMatcher>
-Parser::parseMatcherExpression(StringRef Code, Parser::Sema *S,
- Diagnostics *Error) {
+DynTypedMatcher *Parser::parseMatcherExpression(StringRef Code,
+ Parser::Sema *S,
+ Diagnostics *Error) {
VariantValue Value;
if (!parseExpression(Code, S, &Value, Error))
- return llvm::Optional<DynTypedMatcher>();
+ return NULL;
if (!Value.isMatcher()) {
Error->addError(SourceRange(), Error->ET_ParserNotAMatcher);
- return llvm::Optional<DynTypedMatcher>();
+ return NULL;
}
- llvm::Optional<DynTypedMatcher> Result =
- Value.getMatcher().getSingleMatcher();
- if (!Result.hasValue()) {
+ const DynTypedMatcher *Result;
+ if (!Value.getMatcher().getSingleMatcher(Result)) {
Error->addError(SourceRange(), Error->ET_ParserOverloadedType)
<< Value.getTypeAsString();
+ return NULL;
}
- return Result;
+ return Result->clone();
}
} // namespace dynamic
OpenPOWER on IntegriCloud