// { dg-do assemble } template struct S1 { template struct S2 { S2(U); void g() { S2 s2u (u); } U& u; }; template void f(U u) { S2 s2u(u); s2u.g(); } }; void g() { S1 s1; s1.f(3.0); }