// { dg-do link } // GROUPS passed templates membertemplates extern "C" int printf(const char*, ...); template <class X> struct S { template <class U> void g(U u) { printf ("In S::g(U)\n"); } int c[16]; }; template <class X> struct T : public S<X> { template <class U> void f(U u) { printf ("In T::f(U)\n"); g(u); } }; int main() { T<char*> t; t.f(3); t.f("adf"); }