| // { dg-do assemble } | |
| template<class T> | |
| struct A { | |
| typedef T T1; | |
| }; | |
| template<class T> | |
| struct B { | |
| typedef T T2; | |
| }; | |
| template<class T> | |
| struct C { | |
| }; | |
| template<class E> | |
| C<typename E::T2::T1> | |
| foo (E) | |
| { | |
| return C<typename E::T2::T1>(); | |
| } | |
| void test() | |
| { | |
| foo(B<A<int> >()); | |
| } |