1// { dg-do assemble  }
2// Origin: Mark Mitchell <mark@codesourcery.com>
3
4template <class X, class Y>
5struct S{};
6
7template <class X>
8struct S<int, X> {
9  template <class W>
10  struct I {};
11};
12
13template <class T>
14void f() {
15  typename S<T, T>::template I<T> si;
16}
17
18template void f<int>();
19