1// { dg-do assemble  }
2
3template <class T1,class T2>
4struct X
5{
6  T1 a;
7
8  struct Y
9  {
10    T2 x;
11    Y (T2 _x) { x=_x; }
12  };
13
14};
15
16template <class T1>
17struct X<T1,int>
18{
19  T1 a;
20
21  struct Y
22  {
23    int x;
24    Y (int _x) { x=_x; }
25  };
26
27};
28
29template <>
30struct X<int,int>
31{
32  int a;
33
34  struct Y
35  {
36    int x;
37    Y (int _x) { x=_x; }
38  };
39
40};
41
42void f ()
43{
44  X<char,char> t1;
45  X<char,int> t2;
46  X<int,int> t3;
47}
48