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