forked from OSchip/llvm-project
Remove 'new' from virt-specifier since it's going to be removed in the next C++0x draft
llvm-svn: 128271
This commit is contained in:
parent
5343a406f8
commit
debd3ec14d
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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}}
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -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'}}
|
||||
};
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in New Issue