// { dg-do run } | |
// GROUPS passed | |
extern "C" int printf (const char *, ...); | |
extern "C" void exit(int); | |
class A { | |
public: | |
virtual ~A() { | |
printf("FAIL\n"); | |
exit (1); | |
} | |
}; | |
class B : public A { | |
public: | |
virtual ~B() { | |
printf("PASS\n"); | |
exit (0); | |
} | |
}; | |
int main() { | |
B b; | |
A *ap = &b; | |
ap->~A(); // This should call the destructor virtually. | |
printf("FAIL\n"); | |
return 1; | |
} |