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