1// GROUPS passed
2extern "C" int printf (const char *, ...);
3extern "C" void exit(int);
4
5class A {
6public:
7  virtual ~A() {
8    printf("FAIL\n");
9    exit (1);
10  }
11};
12
13class B : public A {
14public:
15  virtual ~B() {
16    printf("PASS\n");
17    exit (0);
18  }
19};
20
21int main() {
22  B b;
23  A *ap = &b;
24  ap->~A();  // This should call the destructor virtually.
25  printf("FAIL\n");
26  return 1;
27}
28