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