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()37 int 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()47 int main ()
48 {
49 }
50 
51 #endif /* !(defined (__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100) */
52 
53