From debd3ec14d6d65331bd8fd53294d67ddfddc7024 Mon Sep 17 00:00:00 2001 From: Anders Carlsson Date: Fri, 25 Mar 2011 11:19:41 +0000 Subject: [PATCH] Remove 'new' from virt-specifier since it's going to be removed in the next C++0x draft llvm-svn: 128271 --- clang/include/clang/Sema/DeclSpec.h | 8 ++------ clang/lib/Parse/ParseCXXInlineMethods.cpp | 2 -- clang/lib/Parse/ParseDeclCXX.cpp | 4 ---- clang/lib/Sema/DeclSpec.cpp | 2 -- clang/test/CXX/class/class.mem/p8-0x-pedantic.cpp | 1 - clang/test/CXX/class/class.mem/p8-0x.cpp | 2 -- clang/test/Parser/cxx0x-override-control-keywords.cpp | 3 --- 7 files changed, 2 insertions(+), 20 deletions(-) diff --git a/clang/include/clang/Sema/DeclSpec.h b/clang/include/clang/Sema/DeclSpec.h index 23a054a43c10..60f5ea185626 100644 --- a/clang/include/clang/Sema/DeclSpec.h +++ b/clang/include/clang/Sema/DeclSpec.h @@ -1704,8 +1704,7 @@ public: enum Specifier { VS_None = 0, VS_Override = 1, - VS_Final = 2, - VS_New = 4 + VS_Final = 2 }; VirtSpecifiers() : Specifiers(0) { } @@ -1719,9 +1718,6 @@ public: bool isFinalSpecified() const { return Specifiers & VS_Final; } SourceLocation getFinalLoc() const { return VS_finalLoc; } - bool isNewSpecified() const { return Specifiers & VS_New; } - SourceLocation getNewLoc() const { return VS_newLoc; } - void clear() { Specifiers = 0; } static const char *getSpecifierName(Specifier VS); @@ -1731,7 +1727,7 @@ public: private: unsigned Specifiers; - SourceLocation VS_overrideLoc, VS_finalLoc, VS_newLoc; + SourceLocation VS_overrideLoc, VS_finalLoc; SourceLocation LastLocation; }; diff --git a/clang/lib/Parse/ParseCXXInlineMethods.cpp b/clang/lib/Parse/ParseCXXInlineMethods.cpp index baa038ea98da..47b3ff9ec5a9 100644 --- a/clang/lib/Parse/ParseCXXInlineMethods.cpp +++ b/clang/lib/Parse/ParseCXXInlineMethods.cpp @@ -41,8 +41,6 @@ Decl *Parser::ParseCXXInlineMethodDef(AccessSpecifier AS, ParsingDeclarator &D, Diag(VS.getOverrideLoc(), diag::ext_override_inline) << "override"; if (VS.isFinalSpecified()) Diag(VS.getFinalLoc(), diag::ext_override_inline) << "final"; - if (VS.isNewSpecified()) - Diag(VS.getNewLoc(), diag::ext_override_inline) << "new"; FnD = Actions.ActOnCXXMemberDeclarator(getCurScope(), AS, D, move(TemplateParams), 0, diff --git a/clang/lib/Parse/ParseDeclCXX.cpp b/clang/lib/Parse/ParseDeclCXX.cpp index 4d454313d8d2..c50ff4c9dbf9 100644 --- a/clang/lib/Parse/ParseDeclCXX.cpp +++ b/clang/lib/Parse/ParseDeclCXX.cpp @@ -1269,14 +1269,10 @@ void Parser::HandleMemberFunctionDefaultArgs(Declarator& DeclaratorInfo, /// virt-specifier: /// override /// final -/// new VirtSpecifiers::Specifier Parser::isCXX0XVirtSpecifier() const { if (!getLang().CPlusPlus) return VirtSpecifiers::VS_None; - if (Tok.is(tok::kw_new)) - return VirtSpecifiers::VS_New; - if (Tok.is(tok::identifier)) { IdentifierInfo *II = Tok.getIdentifierInfo(); diff --git a/clang/lib/Sema/DeclSpec.cpp b/clang/lib/Sema/DeclSpec.cpp index 9bbeef7cb062..8f3f3a5820fb 100644 --- a/clang/lib/Sema/DeclSpec.cpp +++ b/clang/lib/Sema/DeclSpec.cpp @@ -829,7 +829,6 @@ bool VirtSpecifiers::SetSpecifier(Specifier VS, SourceLocation Loc, default: assert(0 && "Unknown specifier!"); case VS_Override: VS_overrideLoc = Loc; break; case VS_Final: VS_finalLoc = Loc; break; - case VS_New: VS_newLoc = Loc; break; } return false; @@ -840,7 +839,6 @@ const char *VirtSpecifiers::getSpecifierName(Specifier VS) { default: assert(0 && "Unknown specifier"); case VS_Override: return "override"; case VS_Final: return "final"; - case VS_New: return "new"; } } diff --git a/clang/test/CXX/class/class.mem/p8-0x-pedantic.cpp b/clang/test/CXX/class/class.mem/p8-0x-pedantic.cpp index a4b775c191d8..78153739ce6b 100644 --- a/clang/test/CXX/class/class.mem/p8-0x-pedantic.cpp +++ b/clang/test/CXX/class/class.mem/p8-0x-pedantic.cpp @@ -8,7 +8,6 @@ namespace inline_extension { struct B : Base1 { virtual void f() override {} // expected-warning {{'override' keyword only allowed in declarations, allowed as an extension}} virtual void g() final {} // expected-warning {{'final' keyword only allowed in declarations, allowed as an extension}} - virtual void h() new {} // expected-warning {{'new' keyword only allowed in declarations, allowed as an extension}} }; } diff --git a/clang/test/CXX/class/class.mem/p8-0x.cpp b/clang/test/CXX/class/class.mem/p8-0x.cpp index bf1b4c177bf8..836ebad48ee1 100644 --- a/clang/test/CXX/class/class.mem/p8-0x.cpp +++ b/clang/test/CXX/class/class.mem/p8-0x.cpp @@ -5,7 +5,6 @@ struct Base1 { }; struct A : Base1 { - virtual void f() new new; // expected-error {{class member already marked 'new'}} virtual void g() override override; // expected-error {{class member already marked 'override'}} virtual void h() final final; // expected-error {{class member already marked 'final'}} }; @@ -34,7 +33,6 @@ namespace inline_extension { }; struct A : Base1 { - virtual void f() new new {} // expected-error {{class member already marked 'new'}} virtual void g() override override {} // expected-error {{class member already marked 'override'}} virtual void h() final final {} // expected-error {{class member already marked 'final'}} }; diff --git a/clang/test/Parser/cxx0x-override-control-keywords.cpp b/clang/test/Parser/cxx0x-override-control-keywords.cpp index f959f7a9952c..91d5132febe8 100644 --- a/clang/test/Parser/cxx0x-override-control-keywords.cpp +++ b/clang/test/Parser/cxx0x-override-control-keywords.cpp @@ -7,9 +7,6 @@ struct Base { struct S : Base { virtual void final() final; virtual void override() override; - virtual void n() new; - int i : 3 new; - int j new; }; struct T {