// { dg-do assemble } template struct X { T1 a; struct Y { T2 x; Y (T2 _x) { x=_x; } }; }; template struct X { T1 a; struct Y { int x; Y (int _x) { x=_x; } }; }; template <> struct X { int a; struct Y { int x; Y (int _x) { x=_x; } }; }; void f () { X t1; X t2; X t3; }