1 // { dg-do compile }
2 
3 template < typename = void >
4 struct X { } ;
5 struct Y
6 {
7   Y () ;
8 } ;
9 template < typename = X < > >
10 struct T
11 {
fT12   void f ()
13     {
14       f () ;
15     }
16 } ;
17 struct S
18 {
19   S ( X < > = X < > ()) ;
~SS20   ~S ()
21     {
22       T < > () . f () ;
23     }
24 } ;
25 struct Z
26 {
27   S s ;
28   Y y ;
29 } a ;
30 
31