// Contributed by Dodji Seketeli // Origin PR c++/39754 // { dg-do compile } template struct A ; template > struct B { } ; template struct D { typedef W X ; typedef X (FP) (); A a ; } ; template < class Y > struct E { typedef Y (FP) (); B b ; } ; E < int > e ;