Fix tests to be valid.

llvm-svn: 123887
This commit is contained in:
Anders Carlsson 2011-01-20 05:55:43 +00:00
parent 06f5223621
commit b4801436d1
2 changed files with 25 additions and 6 deletions

View File

@ -1,11 +1,20 @@
// RUN: %clang_cc1 -fsyntax-only -std=c++0x -verify %s
struct A {
struct Base1 {
virtual void g();
};
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'}}
};
struct B {
struct Base2 {
virtual void f();
};
struct B : Base2 {
virtual void f() override;
void g() override; // expected-error {{only virtual member functions can be marked 'override'}}
int h override; // expected-error {{only virtual member functions can be marked 'override'}}

View File

@ -1,5 +1,10 @@
// RUN: %clang_cc1 -fsyntax-only -verify -std=c++0x %s
struct S {
struct Base {
virtual void override();
};
struct S : Base {
virtual void final() final;
virtual void override() override;
virtual void n() new;
@ -9,10 +14,15 @@ struct S {
struct T {
// virt-specifier-seq is only valid in member-declarators, and a function definition is not a member-declarator.
virtual void f() const override { } // expected-error {{expected ';' at end of declaration list}}
// FIXME: This currently doesn't work.
// virtual void f() const override { }
};
struct override;
struct A {
virtual override override(int override) override;
struct Base2 {
virtual override override(int override);
};
struct A : Base2 {
virtual struct override override(int override) override;
};