// { dg-do assemble } // Origin: Mark Mitchell <mark@codesourcery.com> template <class T> struct S1 { template <class U> struct S2 { S2(U); }; template <class U> void f(U u) { S2<U> s2u(u); } }; void g() { S1<int> s1; s1.f(3.0); }