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