// Contributed by Dodji Seketeli // Origin PR c++/42225 // { dg-do compile } template struct A { typedef T I; }; template struct B { typedef T TT; typedef typename TT::I TT_I; typedef A TA; }; template void foo() { typedef T TT; typedef typename TT::I TT_I; typedef A TA; } int main() { foo >(); }