// RUN: %clang_cc1 -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() {} }; namespace PR7259 { class Base { public: Base() {} }; template class Derived : public ParentClass { public: Derived() : Base() {} }; class Final : public Derived { }; int main (void) { Final final; return 0; } }