1 // { dg-do assemble } 2 // Exhaustive test for destructors of simple types. 3 // PRMS Id: 2744, 3308 4 5 template <class T> class A { 6 T q; 7 public: ~A()8 ~A() { 9 q.T::~T(); 10 q.~T(); 11 (&q)->T::~T(); 12 (&q)->~T(); 13 } 14 }; 15 16 typedef char * cp; 17 typedef int I; 18 main()19int main () 20 { 21 A<int> a; 22 A<cp> b; 23 int i; 24 cp c; 25 26 i.~I(); 27 i.I::~I(); 28 (&i)->~I(); 29 (&i)->I::~I(); 30 c.~cp(); 31 c.cp::~cp(); 32 (&c)->~cp(); 33 (&c)->cp::~cp(); 34 } 35