// { dg-do assemble } template struct S { template struct I { }; S(); S(S& s); S(I); template operator I(); }; S f(); void g(S); void h() { g(f()); }