1 
2 void marker1()
3 {
4   return;
5 }
6 
7 class A1 {
8 public:
9   int x;
10   int y;
11 };
12 
13 class A2 {
14 public:
15   int x;
16   int y;
17 };
18 
19 class A3 {
20 public:
21   int x;
22   int y;
23 };
24 
25 class X : public A1, public A2 {
26 public:
27   int z;
28 };
29 
30 class L : public A1 {
31 public:
32   int z;
33 };
34 
35 class LV : public virtual A1 {
36 public:
37   int z;
38 };
39 
40 class M : public A2 {
41 public:
42   int w;
43 };
44 
45 class N : public L, public M {
46 public:
47   int r;
48 };
49 
50 class K : public A1 {
51 public:
52   int i;
53 };
54 
55 class KV : public virtual A1 {
56 public:
57   int i;
58 };
59 
60 class J : public K, public L {
61 public:
62   int j;
63 };
64 
65 class JV : public KV, public LV {
66 public:
67   int jv;
68 };
69 
70 class JVA1 : public KV, public LV, public A1 {
71 public:
72   int jva1;
73 };
74 
75 class JVA2 : public KV, public LV, public A2 {
76 public:
77   int jva2;
78 };
79 
80 class JVA1V : public KV, public LV, public virtual A1 {
81 public:
82   int jva1v;
83 };
84 
85 int main()
86 {
87   A1 a1;
88   A2 a2;
89   A3 a3;
90   X x;
91   L l;
92   M m;
93   N n;
94   K k;
95   J j;
96   JV jv;
97   JVA1 jva1;
98   JVA2 jva2;
99   JVA1V jva1v;
100 
101   int i;
102 
103   i += k.i + m.w + a1.x + a2.x + a3.x + x.z + l.z + n.r + j.j;
104 
105   marker1();
106 
107 }
108 
109 
110 
111