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