// RUN: clang-cc -fsyntax-only -verify %s template struct A {}; template struct B : A { B() : A() {} }; B x; template struct B1 : A { typedef A Base; B1() : Base() {} }; B1 x1; template struct Tmpl { }; template struct TmplB { }; struct TmplC : Tmpl { TmplC() : Tmpl(), TmplB() { } // expected-error {{type 'TmplB' is not a direct or virtual base of 'TmplC'}} }; struct TmplD : Tmpl, TmplB { TmplD(): Tmpl(), // expected-error {{type 'Tmpl' is not a direct or virtual base of 'TmplD'}} TmplB() {} };