~AA1 struct A { virtual ~A () {} };
~BB2 struct B { virtual ~B () {} };
3 struct C { virtual const A *foo (int) const = 0; };
4 struct E : public B, public A { };
5 struct F : public C
6 {
7   virtual const E *foo (int) const;
8 };
9 void bar (int &);
10 
11 const E *
foo(int x)12 F::foo (int x) const
13 {
14   bar (x);
15   return __null;
16 }
17