diff options
Diffstat (limited to 'clang/lib/Parse/ParseDeclCXX.cpp')
-rw-r--r-- | clang/lib/Parse/ParseDeclCXX.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/clang/lib/Parse/ParseDeclCXX.cpp b/clang/lib/Parse/ParseDeclCXX.cpp index 176cb35889d..c0df8a59f7e 100644 --- a/clang/lib/Parse/ParseDeclCXX.cpp +++ b/clang/lib/Parse/ParseDeclCXX.cpp @@ -410,10 +410,11 @@ void Parser::ParseDecltypeSpecifier(DeclSpec &DS) { return; const char *PrevSpec = 0; + unsigned DiagID; // Check for duplicate type specifiers (e.g. "int decltype(a)"). if (DS.SetTypeSpecType(DeclSpec::TST_decltype, StartLoc, PrevSpec, - Result.release())) - Diag(StartLoc, diag::err_invalid_decl_spec_combination) << PrevSpec; + DiagID, Result.release())) + Diag(StartLoc, DiagID) << PrevSpec; } /// ParseClassName - Parse a C++ class-name, which names a class. Note @@ -716,15 +717,16 @@ void Parser::ParseClassSpecifier(tok::TokenKind TagTokKind, Diag(Tok, diag::err_expected_lbrace); } - const char *PrevSpec = 0; if (TagOrTempResult.isInvalid()) { DS.SetTypeSpecError(); return; } - if (DS.SetTypeSpecType(TagType, StartLoc, PrevSpec, + const char *PrevSpec = 0; + unsigned DiagID; + if (DS.SetTypeSpecType(TagType, StartLoc, PrevSpec, DiagID, TagOrTempResult.get().getAs<void>(), Owned)) - Diag(StartLoc, diag::err_invalid_decl_spec_combination) << PrevSpec; + Diag(StartLoc, DiagID) << PrevSpec; if (DS.isFriendSpecified()) Actions.ActOnFriendDecl(CurScope, DS.getFriendSpecLoc(), |