1 // Contributed by Dodji Seketeli <dodji@redhat.com>
2 // Origin PR c++/39754
3 // { dg-do compile }
4 
5 struct Foo {};
6 template<typename> struct A ;
7 template<typename T ,typename = A<T> > struct B { } ;
8 
9 template<class W, class>
10 struct D
11 {
12   typedef W X ;
13   A<X Foo::*> a ;
14 } ;
15 
16 template<class Y>
17 struct E
18 {
19   B<Y Foo::*> b ;
20 } ;
21 E < int > e ;
22 
23