diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-03-11 23:00:04 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-03-11 23:00:04 +0000 |
commit | 0c88030abdc2b7aad69c899b0bc981c14f21d81d (patch) | |
tree | 838ef92384a0230e203cd73d6dcd7818e2eb21fe /clang/test | |
parent | d9065c4e29fc40728a0842803d7f53d1703994e1 (diff) | |
download | bcm5719-llvm-0c88030abdc2b7aad69c899b0bc981c14f21d81d.tar.gz bcm5719-llvm-0c88030abdc2b7aad69c899b0bc981c14f21d81d.zip |
Move most of the checking from ActOnCXXMemberDeclarator to other, more general routines. This is a step toward separating the checking logic from Declarators, which in turn is required for template instantiation.
llvm-svn: 66734
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/SemaCXX/class.cpp | 4 | ||||
-rw-r--r-- | clang/test/SemaCXX/virtuals.cpp | 5 |
2 files changed, 7 insertions, 2 deletions
diff --git a/clang/test/SemaCXX/class.cpp b/clang/test/SemaCXX/class.cpp index 776fb091da0..628253b4953 100644 --- a/clang/test/SemaCXX/class.cpp +++ b/clang/test/SemaCXX/class.cpp @@ -35,7 +35,7 @@ public: int i = 0; // expected-error {{error: 'i' can only be initialized if it is a static const integral data member}} static int si = 0; // expected-error {{error: 'si' can only be initialized if it is a static const integral data member}} static const NestedC ci = 0; // expected-error {{error: 'ci' can only be initialized if it is a static const integral data member}} - static const int nci = vs; // expected-error {{error: initializer element is not a compile-time constant}} + static const int nci = vs; // expected-error {{in-class initializer is not an integral constant expression}} static const int vi = 0; static const E evi = 0; @@ -53,7 +53,7 @@ public: typedef int A; - virtual int viv; // expected-error {{error: 'virtual' can only appear on non-static member functions}} + virtual int viv; // expected-error {{'virtual' can only appear on non-static member functions}} virtual static int vsif(); // expected-error {{error: 'virtual' can only appear on non-static member functions}} virtual int vif(); diff --git a/clang/test/SemaCXX/virtuals.cpp b/clang/test/SemaCXX/virtuals.cpp index 6cbf3ef15f3..ad82edd5d8b 100644 --- a/clang/test/SemaCXX/virtuals.cpp +++ b/clang/test/SemaCXX/virtuals.cpp @@ -8,10 +8,15 @@ class A { void i() = 1; // expected-error {{initializer on function does not look like a pure-specifier}} void j() = 0u; // expected-error {{initializer on function does not look like a pure-specifier}} + + void k(); + public: A(int); }; +virtual void A::k() { } // expected-error{{'virtual' can only be specified inside the class definition}} + class B : public A { // Needs to recognize that overridden function is virtual. //void g() = 0; |