1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
// { dg-do assemble } template <class T> struct S { template <class U> struct I { }; S(); S(S& s); S(I<T>); template <class U> operator I<U>(); }; S<int> f(); void g(S<int>); void h() { g(f()); }