1// { dg-do assemble  }
2// Exhaustive test for destructors of simple types.
3// PRMS Id: 2744, 3308
4
5template <class T> class A {
6  T q;
7public:
8  ~A() {
9    q.T::~T();
10    q.~T();
11    (&q)->T::~T();
12    (&q)->~T();
13  }
14};
15
16typedef char * cp;
17typedef int I;
18
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