| // PR c++/52746 | |
| // { dg-do run } | |
| extern "C" int printf(const char*,...); | |
| extern "C" void abort(); | |
| bool db; | |
| struct A | |
| { | |
| virtual ~A() {} | |
| }; | |
| struct B : public A | |
| { | |
| virtual ~B() { db = true; } | |
| }; | |
| template<int> void test() | |
| { | |
| B * b = new B; | |
| A * a = b; | |
| a->~A(); | |
| ::operator delete(b); | |
| } | |
| int main() | |
| { | |
| test<0>(); | |
| if (!db) | |
| abort(); | |
| } |