1*c87b03e5Sespie // Build don't link: 2*c87b03e5Sespie // GROUPS passed visibility 3*c87b03e5Sespie extern "C" int printf( const char *, ...); 4*c87b03e5Sespie 5*c87b03e5Sespie class B { 6*c87b03e5Sespie public: B()7*c87b03e5Sespie B() { }; ~B()8*c87b03e5Sespie virtual ~B() { printf( "B::~B\n"); }; 9*c87b03e5Sespie }; 10*c87b03e5Sespie 11*c87b03e5Sespie class D : public B { 12*c87b03e5Sespie public: ~D()13*c87b03e5Sespie virtual ~D() { printf( "D::~D\n"); }; 14*c87b03e5Sespie void operator = ( int i) { this->~B(); }// ERROR - D has no ~B part to it 15*c87b03e5Sespie }; 16*c87b03e5Sespie 17*c87b03e5Sespie int main()18*c87b03e5Sespiemain() 19*c87b03e5Sespie { 20*c87b03e5Sespie D * pd = new D; 21*c87b03e5Sespie B * pb = pd; 22*c87b03e5Sespie delete pb; 23*c87b03e5Sespie return 0; 24*c87b03e5Sespie }; 25