+++ /dev/null
-extern "C" void abort();
-
-int ic;
-
-struct X
-{
- X() { ++ic; }
- X( const X & ) { ++ic; }
- ~X() { if (--ic < 0) abort(); }
-};
-
-struct V
-{
- virtual ~V() {}
-};
-
-struct A : public virtual V
-{
-};
-
-struct B : public virtual V
-{
- virtual void foo( X ) = 0;
-};
-
-struct D : public A, public virtual B
-{
- virtual void foo( X ) {}
-};
-
-int main()
-{
- B *b = new D;
- b->foo( X() );
-}