// { dg-do run } // Origin: Mark Mitchell #if defined (__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 struct R { virtual void r (); }; struct S { virtual void f (); }; struct T : virtual public S { virtual void g (); }; struct U : public R, virtual public T { virtual void h (); }; struct V : public R, virtual public S, virtual public T { virtual void v (); }; struct U1 { R r; T t; }; int main () { if (sizeof (U) != sizeof (U1)) return 1; if (sizeof (V) != sizeof (U1)) return 2; } #else /* !(defined (__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100) */ int main () { } #endif /* !(defined (__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100) */