diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2009-06-30 23:26:25 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2009-06-30 23:26:25 +0000 |
commit | 302bb6661f9b74dc2e29cbd4746b8348cf255339 (patch) | |
tree | 53fa63bf31c8385f53fc50edfe668c2bda3b66d6 /clang/test/SemaCXX/constructor-initializer.cpp | |
parent | cfcdf5c1ac81180a0f6777cb695090bbe99e7e31 (diff) | |
download | bcm5719-llvm-302bb6661f9b74dc2e29cbd4746b8348cf255339.tar.gz bcm5719-llvm-302bb6661f9b74dc2e29cbd4746b8348cf255339.zip |
Patch to support optional nested-name-specifier in in ctor-initializer
list.
llvm-svn: 74571
Diffstat (limited to 'clang/test/SemaCXX/constructor-initializer.cpp')
-rw-r--r-- | clang/test/SemaCXX/constructor-initializer.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/constructor-initializer.cpp b/clang/test/SemaCXX/constructor-initializer.cpp index 7fd748b8d34..a180d907f1b 100644 --- a/clang/test/SemaCXX/constructor-initializer.cpp +++ b/clang/test/SemaCXX/constructor-initializer.cpp @@ -1,6 +1,7 @@ // RUN: clang-cc -fsyntax-only -verify %s class A { int m; + A() : A::m(17) { } // expected-error {{member initializer 'm' does not name a non-static data member or base class}} }; class B : public A { @@ -74,3 +75,21 @@ class U { // expected-note {{previous initialization is here}} }; +struct V {}; +struct Base {}; +struct Base1 {}; + +struct Derived : Base, Base1, virtual V { + Derived (); +}; + +struct Current : Derived { + int Derived; + Current() : Derived(1), ::Derived(), + ::Derived::Base(), // expected-error {{type '::Derived::Base' is not a direct or virtual base of 'Current'}} + Derived::Base1(), // expected-error {{type 'Derived::Base1' is not a direct or virtual base of 'Current'}} + Derived::V(), + ::NonExisting(), // expected-error {{member initializer 'NonExisting' does not name a non-static data member or}} + INT::NonExisting() {} // expected-error {{expected a class or namespace}} \ + // expected-error {{member initializer 'NonExisting' does not name a non-static data member or}} +}; |