// RUN: %clang_cc1 -fsyntax-only -Wall -verify %s template struct A { A() : a(1) { } // expected-error{{cannot initialize a member subobject of type 'void *' with an rvalue of type 'int'}} T a; }; A a0; A a1; // expected-note{{in instantiation of member function 'A::A' requested here}} template struct B { B() : b(1), // expected-warning {{field 'b' will be initialized after field 'a'}} a(2) { } int a; int b; }; B b0; // expected-note {{in instantiation of member function 'B::B' requested here}} template struct AA { AA(int); }; template class BB : public AA { public: BB() : AA(1) {} }; BB x; struct X { X(); }; template struct Y { Y() : x() {} X x; }; Y y; template struct Array { int a[3]; Array() : a() {} }; Array s;