summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2015-01-13 02:24:58 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2015-01-13 02:24:58 +0000
commitb1c217e4922589dcdd01a53ecbe1710ae4fb64cd (patch)
tree5c92e4a2f60a0be0330d806d9c16de1fcb5e5c53 /clang/lib
parent5dc76a5d34a1054bae2fd5bf6a9b8e44e2daecee (diff)
downloadbcm5719-llvm-b1c217e4922589dcdd01a53ecbe1710ae4fb64cd.tar.gz
bcm5719-llvm-b1c217e4922589dcdd01a53ecbe1710ae4fb64cd.zip
If we don't find a matching ) for a ( in an exception specification, keep the tokens around so we can diagnose an error rather than silently discarding them.
llvm-svn: 225755
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Parse/ParseDeclCXX.cpp13
1 files changed, 4 insertions, 9 deletions
diff --git a/clang/lib/Parse/ParseDeclCXX.cpp b/clang/lib/Parse/ParseDeclCXX.cpp
index 09239f467ea..062b63e7fda 100644
--- a/clang/lib/Parse/ParseDeclCXX.cpp
+++ b/clang/lib/Parse/ParseDeclCXX.cpp
@@ -3149,15 +3149,10 @@ Parser::tryParseExceptionSpecification(bool Delayed,
ExceptionSpecTokens->push_back(StartTok); // 'throw' or 'noexcept'
ExceptionSpecTokens->push_back(Tok); // '('
SpecificationRange.setEnd(ConsumeParen()); // '('
-
- if (!ConsumeAndStoreUntil(tok::r_paren, *ExceptionSpecTokens,
- /*StopAtSemi=*/true,
- /*ConsumeFinalToken=*/true)) {
- NoexceptExpr = 0;
- delete ExceptionSpecTokens;
- ExceptionSpecTokens = 0;
- return IsNoexcept? EST_BasicNoexcept : EST_DynamicNone;
- }
+
+ ConsumeAndStoreUntil(tok::r_paren, *ExceptionSpecTokens,
+ /*StopAtSemi=*/true,
+ /*ConsumeFinalToken=*/true);
SpecificationRange.setEnd(Tok.getLocation());
// Add the 'stop' token.
OpenPOWER on IntegriCloud