// { dg-do run  }
// Origin: Mark Mitchell <mark@codesourcery.com>

extern "C" void abort ();

struct B;

struct S 
{
  S (B*);
  ~S ();

  B* b_;
};

struct B 
{
  B () : s (this) { }
      
  virtual void f () { }
  
  S s;
};

S::S (B* b) : b_ (b) { }

S::~S () { b_->f (); }
  
struct D : public B
{
  virtual void f () { abort (); }
};

int main ()
{
  D d;
}
