summaryrefslogtreecommitdiffstats
path: root/clang/test
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-03-11 23:00:04 +0000
committerDouglas Gregor <dgregor@apple.com>2009-03-11 23:00:04 +0000
commit0c88030abdc2b7aad69c899b0bc981c14f21d81d (patch)
tree838ef92384a0230e203cd73d6dcd7818e2eb21fe /clang/test
parentd9065c4e29fc40728a0842803d7f53d1703994e1 (diff)
downloadbcm5719-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.cpp4
-rw-r--r--clang/test/SemaCXX/virtuals.cpp5
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;
OpenPOWER on IntegriCloud