1 // PR c++/37563
2 
3 struct A {};
4 
5 template<int> struct Traits
6 {
7   typedef void X;
8 };
9 
10 template<> struct Traits<0>
11 {
12   typedef A X;
13 };
14 
15 template<int N> struct B
16 {
17   typedef typename Traits<N>::X Y;
18 
19   void foo(Y y)
20   {
21     y.Y::A::~A();
22   }
23 };
24