1 // { dg-do run } 2 // Origin: Mark Mitchell <mark@codesourcery.com> 3 4 #if defined (__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 5 6 struct R 7 { 8 virtual void r (); 9 }; 10 11 struct S 12 { 13 virtual void f (); 14 }; 15 16 struct T : virtual public S 17 { 18 virtual void g (); 19 }; 20 21 struct U : public R, virtual public T 22 { 23 virtual void h (); 24 }; 25 26 struct V : public R, virtual public S, virtual public T 27 { 28 virtual void v (); 29 }; 30 31 struct U1 32 { 33 R r; 34 T t; 35 }; 36 main()37int main () 38 { 39 if (sizeof (U) != sizeof (U1)) 40 return 1; 41 if (sizeof (V) != sizeof (U1)) 42 return 2; 43 } 44 45 #else /* !(defined (__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100) */ 46 main()47int main () 48 { 49 } 50 51 #endif /* !(defined (__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100) */ 52 53