// { 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"); this->g(u); }
};

int main()
{
  T<char*> t;
  t.f(3);
  t.f("adf");
}
