]> granicus.if.org Git - clang/commitdiff
Remove 'new' from virt-specifier since it's going to be removed in the next C++0x...
authorAnders Carlsson <andersca@mac.com>
Fri, 25 Mar 2011 11:19:41 +0000 (11:19 +0000)
committerAnders Carlsson <andersca@mac.com>
Fri, 25 Mar 2011 11:19:41 +0000 (11:19 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128271 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Sema/DeclSpec.h
lib/Parse/ParseCXXInlineMethods.cpp
lib/Parse/ParseDeclCXX.cpp
lib/Sema/DeclSpec.cpp
test/CXX/class/class.mem/p8-0x-pedantic.cpp
test/CXX/class/class.mem/p8-0x.cpp
test/Parser/cxx0x-override-control-keywords.cpp

index 23a054a43c10dbfbaf1223262064e45cebc7d684..60f5ea185626bd0e5e6dd871381ba04aeb81d1ca 100644 (file)
@@ -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;
 };
 
index baa038ea98da66dd19fb00690dc0574001bb535e..47b3ff9ec5a908fa35da5b38c82401369c2f4834 100644 (file)
@@ -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, 
index 4d454313d8d28d923ac1fbf1acbc82c9a8bd8055..c50ff4c9dbf9eb7b0e70d34f3d66c19ef0fd04bf 100644 (file)
@@ -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();
 
index 9bbeef7cb06289020f95f42e175a1dc3576543fd..8f3f3a5820fbe87257c056299cb3d117d1ff1fe8 100644 (file)
@@ -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";
   }
 }
 
index a4b775c191d8807a9447d7e22d1452d381cf8d10..78153739ce6be07d1e76ba1d387756dcbbe564be 100644 (file)
@@ -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}}
   };
 }
 
index bf1b4c177bf87b2a929da79034fead1f62f17133..836ebad48ee15c58d6bfb178a49acecb495a9d1e 100644 (file)
@@ -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'}}
   };
index f959f7a9952ca48539c12d7ea52d868fb4de66a6..91d5132febe8101799f1c392f7035d299d74e599 100644 (file)
@@ -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 {