// { dg-do run  }
struct B
{
  virtual int f() volatile
    { return 0; }
};


struct D : public B 
{
  virtual int f()
    { return 1; }
};

int main()
{
  volatile D d;
  volatile B& b = d;
  return b.f();
}
