diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-08-16 20:53:59 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-08-16 20:53:59 +0000 |
commit | 3014572ea2f0beef8eec1a13e1de0fa5e82db191 (patch) | |
tree | 29c6df3494e01d1a374c0b5f0daa18f1a6e65beb /clang/test/SemaCXX/class.cpp | |
parent | 2ade39061c84dce0fd050aa6272e17081e54980f (diff) | |
download | bcm5719-llvm-3014572ea2f0beef8eec1a13e1de0fa5e82db191.tar.gz bcm5719-llvm-3014572ea2f0beef8eec1a13e1de0fa5e82db191.zip |
Move the C++ Sema tests into a separate SemaCXX directory.
llvm-svn: 54853
Diffstat (limited to 'clang/test/SemaCXX/class.cpp')
-rw-r--r-- | clang/test/SemaCXX/class.cpp | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/class.cpp b/clang/test/SemaCXX/class.cpp new file mode 100644 index 00000000000..1fbff69cb58 --- /dev/null +++ b/clang/test/SemaCXX/class.cpp @@ -0,0 +1,70 @@ +// RUN: clang -fsyntax-only -verify %s +class C { +public: + auto int errx; // expected-error {{error: storage class specified for a member declaration}} + register int erry; // expected-error {{error: storage class specified for a member declaration}} + extern int errz; // expected-error {{error: storage class specified for a member declaration}} + + static void sm() { + sx = 0; + this->x = 0; // expected-error {{error: invalid use of 'this' outside of a nonstatic member function}} + x = 0; // expected-error {{error: invalid use of member 'x' in static member function}} + } + + class NestedC { + void m() { + sx = 0; + x = 0; // expected-error {{error: invalid use of nonstatic data member 'x'}} + } + }; + + int b : 1, w : 2; + int : 1, : 2; + typedef int E : 1; // expected-error {{error: cannot declare 'E' to be a bit-field type}} + static int sb : 1; // expected-error {{error: static member 'sb' cannot be a bit-field}} + static int vs; + + typedef int func(); + func tm; + func btm : 1; // expected-error {{error: bit-field 'btm' with non-integral type}} + NestedC bc : 1; // expected-error {{error: bit-field 'bc' with non-integral type}} + + enum E { en1, en2 }; + + 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 vi = 0; + static const E evi = 0; + + void m() { + sx = 0; + this->x = 0; + y = 0; + this = 0; // expected-error {{error: expression is not assignable}} + } + + int f1(int p) { + A z = 6; + return p + x + this->y + z; + } + + typedef int A; + +private: + int x,y; + static int sx; +}; + +class C2 { + void f() { + static int lx; + class LC1 { + int m() { return lx; } + }; + class LC2 { + int m() { return lx; } + }; + } +}; |