aboutsummaryrefslogtreecommitdiff
path: root/test/SemaCXX/nested-name-spec.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-03-11 23:52:16 +0000
committerDouglas Gregor <dgregor@apple.com>2009-03-11 23:52:16 +0000
commit656de633acefb7ced01a4b573dbd4f70b4300097 (patch)
tree5970f406f2b7e57b1e365d4b1d667bb16a33bcc4 /test/SemaCXX/nested-name-spec.cpp
parentd3ad531dd43ddf11fdb32deb112e0f116296c693 (diff)
Fix various problems with matching out-of-line definitions of static
class members to the corresponding in-class declaration. Diagnose the erroneous use of 'static' on out-of-line definitions of class members. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66740 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaCXX/nested-name-spec.cpp')
-rw-r--r--test/SemaCXX/nested-name-spec.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/SemaCXX/nested-name-spec.cpp b/test/SemaCXX/nested-name-spec.cpp
index f75b279a44..eaca56c725 100644
--- a/test/SemaCXX/nested-name-spec.cpp
+++ b/test/SemaCXX/nested-name-spec.cpp
@@ -2,6 +2,11 @@
namespace A {
struct C {
static int cx;
+
+ static int cx2;
+
+ static int Ag1();
+ static int Ag2();
};
int ax;
void Af();
@@ -11,6 +16,15 @@ A:: ; // expected-error {{expected unqualified-id}}
::A::ax::undef ex3; // expected-error {{expected a class or namespace}} expected-error {{invalid token after top level declarator}}
A::undef1::undef2 ex4; // expected-error {{no member named 'undef1'}} expected-error {{invalid token after top level declarator}}
+int A::C::Ag1() { return 0; }
+
+static int A::C::Ag2() { return 0; } // expected-error{{'static' can not be specified on an out-of-line static member}}
+
+int A::C::cx = 17;
+
+
+static int A::C::cx2 = 17; // expected-error{{'static' can not be specified on an out-of-line static member}}
+
class C2 {
void m(); // expected-note{{member declaration nearly matches}}