// { dg-do assemble } // { dg-options "" } // Origin: Mark Mitchell template struct S1 { typedef T X; }; template struct B { typedef T I; }; template struct S2 : public B { struct I {}; typedef typename S1::X IX; void f(IX); }; template void S2::f(IX) {}