// RUN: %clang_cc1 -fsyntax-only -verify %s class S { public: S (); }; struct D : S { D() : b1(0), // expected-note {{previous initialization is here}} b2(1), b1(0), // expected-error {{multiple initializations given for non-static member 'b1'}} S(), // expected-note {{previous initialization is here}} S() // expected-error {{multiple initializations given for base 'S'}} {} int b1; int b2; }; struct A { struct { int a; int b; }; A(); }; A::A() : a(10), b(20) { } namespace Test1 { template struct A {}; template struct B : A { B() : A(), // expected-note {{previous initialization is here}} A() { } // expected-error {{multiple initializations given for base 'A'}} }; } namespace Test2 { template struct A : T { A() : T(), // expected-note {{previous initialization is here}} T() { } // expected-error {{multiple initializations given for base 'T'}} }; } namespace Test3 { template struct A { T t; A() : t(1), // expected-note {{previous initialization is here}} t(2) { } // expected-error {{multiple initializations given for non-static member 't'}} }; }