summaryrefslogtreecommitdiffstats
path: root/clang/lib/Parse/ParseExpr.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2013-04-26 16:15:35 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2013-04-26 16:15:35 +0000
commit74aeef50a0cc0547f387a38d32b77a2592ccc823 (patch)
treefe9ab0af5b819e3903258ff5c2ab860573a7f66c /clang/lib/Parse/ParseExpr.cpp
parentaf7e8c367f25d6e6cbc6ab50f56ad41d42617f7d (diff)
downloadbcm5719-llvm-74aeef50a0cc0547f387a38d32b77a2592ccc823.tar.gz
bcm5719-llvm-74aeef50a0cc0547f387a38d32b77a2592ccc823.zip
Implement C++1y decltype(auto).
llvm-svn: 180610
Diffstat (limited to 'clang/lib/Parse/ParseExpr.cpp')
-rw-r--r--clang/lib/Parse/ParseExpr.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/clang/lib/Parse/ParseExpr.cpp b/clang/lib/Parse/ParseExpr.cpp
index 956ba36d3c8..326056daf44 100644
--- a/clang/lib/Parse/ParseExpr.cpp
+++ b/clang/lib/Parse/ParseExpr.cpp
@@ -691,8 +691,14 @@ ExprResult Parser::ParseCastExpression(bool isUnaryExpression,
Res = getExprAnnotation(Tok);
ConsumeToken();
break;
-
+
case tok::kw_decltype:
+ // Annotate the token and tail recurse.
+ if (TryAnnotateTypeOrScopeToken())
+ return ExprError();
+ assert(Tok.isNot(tok::kw_decltype));
+ return ParseCastExpression(isUnaryExpression, isAddressOfOperand);
+
case tok::identifier: { // primary-expression: identifier
// unqualified-id: identifier
// constant: enumeration-constant
OpenPOWER on IntegriCloud