1// { dg-do assemble  }
2
3template <class T>
4struct S1
5{
6  template <class U>
7  struct S2 {};
8
9  template <class X, class Y, class Z>
10  void f(X, Y, Z)
11    {
12      S2<Z> s2z;
13    }
14
15  template <class X, class Z>
16  void g(X, Z)
17    {
18      S2<Z> s2z;
19    }
20};
21
22
23void h()
24{
25  S1<int> si;
26  si.g(3, 4);
27}
28