This revision was automatically updated to reflect the committed changes. Closed by commit rL329735: [Parser] Fix assertion-on-invalid for unexpected typename. (authored by vsapsai, committed by ). Herald added a subscriber: llvm-commits.
Changed prior to commit: https://reviews.llvm.org/D44449?vs=141448&id=141885#toc Repository: rL LLVM https://reviews.llvm.org/D44449 Files: cfe/trunk/lib/Parse/ParseDecl.cpp cfe/trunk/test/Parser/cxx-decl.cpp Index: cfe/trunk/test/Parser/cxx-decl.cpp =================================================================== --- cfe/trunk/test/Parser/cxx-decl.cpp +++ cfe/trunk/test/Parser/cxx-decl.cpp @@ -298,6 +298,11 @@ } } +namespace rdar37099386 { + class A typename A; // expected-error {{expected a qualified name after 'typename'}} + // expected-error@-1 {{cannot combine with previous 'class' declaration specifier}} +} + // PR8380 extern "" // expected-error {{unknown linkage language}} test6a { ;// expected-error {{C++ requires a type specifier for all declarations}} Index: cfe/trunk/lib/Parse/ParseDecl.cpp =================================================================== --- cfe/trunk/lib/Parse/ParseDecl.cpp +++ cfe/trunk/lib/Parse/ParseDecl.cpp @@ -3804,7 +3804,8 @@ DS.SetRangeEnd(Tok.getLocation()); if (DiagID != diag::err_bool_redeclaration) - ConsumeToken(); + // After an error the next token can be an annotation token. + ConsumeAnyToken(); AttrsLastTime = false; }
Index: cfe/trunk/test/Parser/cxx-decl.cpp =================================================================== --- cfe/trunk/test/Parser/cxx-decl.cpp +++ cfe/trunk/test/Parser/cxx-decl.cpp @@ -298,6 +298,11 @@ } } +namespace rdar37099386 { + class A typename A; // expected-error {{expected a qualified name after 'typename'}} + // expected-error@-1 {{cannot combine with previous 'class' declaration specifier}} +} + // PR8380 extern "" // expected-error {{unknown linkage language}} test6a { ;// expected-error {{C++ requires a type specifier for all declarations}} Index: cfe/trunk/lib/Parse/ParseDecl.cpp =================================================================== --- cfe/trunk/lib/Parse/ParseDecl.cpp +++ cfe/trunk/lib/Parse/ParseDecl.cpp @@ -3804,7 +3804,8 @@ DS.SetRangeEnd(Tok.getLocation()); if (DiagID != diag::err_bool_redeclaration) - ConsumeToken(); + // After an error the next token can be an annotation token. + ConsumeAnyToken(); AttrsLastTime = false; }
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits