diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Parse/ParseExpr.cpp | 1 | ||||
-rw-r--r-- | lib/Parse/ParseExprCXX.cpp | 5 | ||||
-rw-r--r-- | lib/Parse/ParseTentative.cpp | 5 |
3 files changed, 6 insertions, 5 deletions
diff --git a/lib/Parse/ParseExpr.cpp b/lib/Parse/ParseExpr.cpp index bdebb5e6b9..606c108d7d 100644 --- a/lib/Parse/ParseExpr.cpp +++ b/lib/Parse/ParseExpr.cpp @@ -914,6 +914,7 @@ ExprResult Parser::ParseCastExpression(bool isUnaryExpression, } // Fall through + case tok::annot_decltype: case tok::kw_char: case tok::kw_wchar_t: case tok::kw_char16_t: diff --git a/lib/Parse/ParseExprCXX.cpp b/lib/Parse/ParseExprCXX.cpp index 8046f6b88c..37d9b5b2b9 100644 --- a/lib/Parse/ParseExprCXX.cpp +++ b/lib/Parse/ParseExprCXX.cpp @@ -1418,8 +1418,11 @@ void Parser::ParseCXXSimpleTypeSpecifier(DeclSpec &DS) { case tok::kw_bool: DS.SetTypeSpecType(DeclSpec::TST_bool, Loc, PrevSpec, DiagID); break; + case tok::annot_decltype: + case tok::kw_decltype: + DS.SetRangeEnd(ParseDecltypeSpecifier(DS)); + return DS.Finish(Diags, PP); - // FIXME: C++0x decltype support. // GNU typeof support. case tok::kw_typeof: ParseTypeofSpecifier(DS); diff --git a/lib/Parse/ParseTentative.cpp b/lib/Parse/ParseTentative.cpp index fe46456040..4f80da2dc9 100644 --- a/lib/Parse/ParseTentative.cpp +++ b/lib/Parse/ParseTentative.cpp @@ -1009,6 +1009,7 @@ Parser::TPResult Parser::isCXXDeclarationSpecifier() { case tok::kw_float: case tok::kw_double: case tok::kw_void: + case tok::annot_decltype: if (NextToken().is(tok::l_paren)) return TPResult::Ambiguous(); @@ -1038,10 +1039,6 @@ Parser::TPResult Parser::isCXXDeclarationSpecifier() { return TPResult::True(); } - // C++0x decltype support. - case tok::annot_decltype: - return TPResult::True(); - // C++0x type traits support case tok::kw___underlying_type: return TPResult::True(); |