// { dg-do assemble  }
// Origin: Frank Pilhofer <fp@fpx.de>

struct A {
virtual void f ();
};

struct B : virtual public A {
void f ();
};

struct C : virtual public A {
void f ();
};

struct D : virtual public B, virtual public C {
void f ();
};

struct Di : virtual public B, virtual public C, virtual public D {};
