1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
// PR c++/23287 template <class T> struct A { int i; ~A(); }; template <class T> void f(A<T> *ap) { ap->~A(); } template <class T> void g(A<T> *ap) { ap->~B(); // { dg-error "destructor name" } } int main() { f(new A<int>); g(new A<int>); }