1 // { dg-do assemble  }
2 // GROUPS passed templates destructors
3 // Example of PR 3308 workaround
4 
5 template <class T>
6 class A
7 {
8   T q;
9 public:
~A()10   ~A() { (&q)->T::~T(); }
11 };
12 
13 typedef unsigned int ui;
14 
main()15 int main()
16 {
17   A<ui> *ap = new A<ui>;
18 
19   delete ap;
20 }
21