class empty { }; class A1 { public: int x; int y; }; class A2 { public: int x; int y; }; class A3 { public: int x; int y; }; #if !defined (__GNUC__) || __GNUC__ > 7 # define NO_UNIQUE_ADDRESS [[no_unique_address]] #else # define NO_UNIQUE_ADDRESS #endif class A4 { public: NO_UNIQUE_ADDRESS empty x; }; class X : public A1, public A2 { public: int z; }; class L : public A1 { public: int z; }; class LV : public virtual A1 { public: int z; }; class M : public A2 { public: int w; }; class N : public L, public M { public: int r; }; class K : public A1 { public: int i; }; class KV : public virtual A1 { public: int i; }; class J : public K, public L { public: int j; }; class JV : public KV, public LV { public: int jv; }; class JVA1 : public KV, public LV, public A1 { public: int jva1; }; class JVA2 : public KV, public LV, public A2 { public: int jva2; }; class JVA1V : public KV, public LV, public virtual A1 { public: int jva1v; }; class JE : public A1, public A4 { public: }; int main() { A1 a1; A2 a2; A3 a3; X x; L l; M m; N n; K k; J j; JV jv; JVA1 jva1; JVA2 jva2; JVA1V jva1v; JE je; int i; i += k.i + m.w + a1.x + a2.x + a3.x + x.z + l.z + n.r + j.j; /* Initialize all the fields. Keep the order the same as in the .exp file. */ a1.x = 1; a1.y = 2; a2.x = 1; a2.y = 2; a3.x = 1; a3.y = 2; x.A1::x = 1; x.A1::y = 2; x.A2::x = 3; x.A2::y = 4; x.z = 5; l.x = 1; l.y = 2; l.z = 3; m.x = 1; m.y = 2; m.w = 3; n.A1::x = 1; n.A1::y = 2; n.A2::x = 3; n.A2::y = 4; n.w = 5; n.r = 6; n.z = 7; k.x = 1; k.y = 2; k.i = 3; j.K::x = 1; j.K::y = 2; j.L::x = 3; j.L::y = 4; j.i = 5; j.z = 6; j.j = 7; jv.x = 1; jv.y = 2; jv.i = 3; jv.z = 4; jv.jv = 5; jva1.KV::x = 1; jva1.KV::y = 2; jva1.LV::x = 3; jva1.LV::y = 4; jva1.z = 5; jva1.i = 6; jva1.jva1 = 7; jva2.KV::x = 1; jva2.KV::y = 2; jva2.LV::x = 3; jva2.LV::y = 4; jva2.A2::x = 5; jva2.A2::y = 6; jva2.z = 7; jva2.i = 8; jva2.jva2 = 9; jva1v.x = 1; jva1v.y = 2; jva1v.z = 3; jva1v.i = 4; jva1v.jva1v = 5; je.A1::x = 1; return 0; /* set breakpoint here */ }