1// { dg-do assemble  }
2// { dg-options "" }
3// Origin: Mark Mitchell <mark@codesourcery.com>
4
5void X();
6
7template <class T>
8struct J {
9  typedef T X;
10};
11
12template <class T>
13struct S {
14  typedef T X;
15
16  struct I : public J<X> {
17    static X* f();
18  };
19};
20
21S<int> si;
22