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