diff options
author | Reid Kleckner <reid@kleckner.net> | 2013-10-21 22:26:36 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2013-10-21 22:26:36 +0000 |
commit | 9171f02528f4b8047f9ddd2fb0fdd1473063f5d4 (patch) | |
tree | 53d0b72c5bd5f400f92f14ed9c1150f3a98f9a32 /clang/lib/ASTMatchers/Dynamic/Parser.cpp | |
parent | 1e375f55d5df08fa706f49cc510e743c253b476e (diff) | |
download | bcm5719-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.cpp | 22 |
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 |