// 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(); | |
} |