1// { dg-do assemble  }
2// { dg-options "" }
3// Origin: Mark Mitchell <mark@codesourcery.com>
4
5template <class T>
6struct S1 {
7  typedef T X;
8};
9
10template <class T>
11struct B {
12  typedef T I;
13};
14
15template <class T>
16struct S2 : public B<T> {
17  struct I {};
18
19  typedef typename S1<I>::X IX;
20
21  void f(IX);
22};
23
24template <class T>
25void S2<T>::f(IX) {}
26