// { dg-do run } template class C; template struct S { template void f(U u1, U u2) {} template void f(U u) { C ct; ct.i = 3; } }; template class C { template friend void S::f(U); int i; }; int main() { S si; si.f(3.0); }