// RUN: clang-cc -fsyntax-only -verify %s template struct A { void f() { } struct N { }; // expected-note{{target of using declaration}} }; template struct B : A { using A::f; using A::N; // expected-error{{dependent using declaration resolved to type without 'typename'}} using A::foo; // expected-error{{no member named 'foo'}} using A::f; // expected-error{{using declaration refers into 'A::', which is not a base class of 'B'}} }; B a; // expected-note{{in instantiation of template class 'struct B' requested here}} template struct C : A { using A::f; void f() { }; }; template struct D : A { using A::f; void f(); }; template void D::f() { } template struct E : A { using A::f; void g() { f(); } };