diff options
Diffstat (limited to 'lib/Parse/ParseTentative.cpp')
-rw-r--r-- | lib/Parse/ParseTentative.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/Parse/ParseTentative.cpp b/lib/Parse/ParseTentative.cpp index 28c5e8b673..b5251a6177 100644 --- a/lib/Parse/ParseTentative.cpp +++ b/lib/Parse/ParseTentative.cpp @@ -931,8 +931,12 @@ Parser::isCXXDeclarationSpecifier(Parser::TPResult BracedCastResult) { // recurse to handle whatever we get. if (TryAnnotateTypeOrScopeToken()) return TPResult::Error(); - if (Tok.is(tok::identifier)) - return TPResult::False(); + if (Tok.is(tok::identifier)) { + const Token &Next = NextToken(); + bool NotObjC = !(getLangOpts().ObjC1 || getLangOpts().ObjC2); + return (NotObjC && Next.is(tok::identifier)) ? + TPResult::True() : TPResult::False(); + } return isCXXDeclarationSpecifier(BracedCastResult); case tok::coloncolon: { // ::foo::bar |