1// { dg-do assemble } 2 3template<class T> 4struct A { 5 typedef T T1; 6}; 7 8template<class T> 9struct B { 10 typedef T T2; 11}; 12 13template<class T> 14struct C { 15}; 16 17template<class E> 18C<typename E::T2::T1> 19foo (E) 20{ 21 return C<typename E::T2::T1>(); 22} 23 24void test() 25{ 26 foo(B<A<int> >()); 27} 28