// RUN: %clang_cc1 -fsyntax-only -verify %s // PR5061 namespace a { template class C {}; } namespace b { template void f0(a::C &a0) { } } namespace test1 { int a = 0; template class Base { }; template class Derived : public Base { int foo() { return test1::a; } }; } namespace test2 { class Impl { public: int foo(); }; template class Magic : public Impl { int foo() { return Impl::foo(); } }; } namespace PR6063 { template void f(T, T); namespace detail { using PR6063::f; } template void g(T a, T b) { detail::f(a, b); } } namespace PR12291 { template class Outer2 { template template class Outer2::Inner; // expected-error{{nested name specifier 'Outer2::' for declaration does not refer into a class, class template or class template partial specialization}} }; }