1 1.7 christos class empty { }; 2 1.1 christos 3 1.1 christos class A1 { 4 1.1 christos public: 5 1.1 christos int x; 6 1.1 christos int y; 7 1.1 christos }; 8 1.1 christos 9 1.1 christos class A2 { 10 1.1 christos public: 11 1.1 christos int x; 12 1.1 christos int y; 13 1.1 christos }; 14 1.1 christos 15 1.1 christos class A3 { 16 1.1 christos public: 17 1.1 christos int x; 18 1.1 christos int y; 19 1.1 christos }; 20 1.1 christos 21 1.7 christos #if !defined (__GNUC__) || __GNUC__ > 7 22 1.7 christos # define NO_UNIQUE_ADDRESS [[no_unique_address]] 23 1.7 christos #else 24 1.7 christos # define NO_UNIQUE_ADDRESS 25 1.7 christos #endif 26 1.7 christos 27 1.7 christos class A4 { 28 1.7 christos public: 29 1.7 christos NO_UNIQUE_ADDRESS empty x; 30 1.7 christos }; 31 1.7 christos 32 1.1 christos class X : public A1, public A2 { 33 1.1 christos public: 34 1.1 christos int z; 35 1.1 christos }; 36 1.1 christos 37 1.1 christos class L : public A1 { 38 1.1 christos public: 39 1.1 christos int z; 40 1.1 christos }; 41 1.1 christos 42 1.1 christos class LV : public virtual A1 { 43 1.1 christos public: 44 1.1 christos int z; 45 1.1 christos }; 46 1.1 christos 47 1.1 christos class M : public A2 { 48 1.1 christos public: 49 1.1 christos int w; 50 1.1 christos }; 51 1.1 christos 52 1.1 christos class N : public L, public M { 53 1.1 christos public: 54 1.1 christos int r; 55 1.1 christos }; 56 1.1 christos 57 1.1 christos class K : public A1 { 58 1.1 christos public: 59 1.1 christos int i; 60 1.1 christos }; 61 1.1 christos 62 1.1 christos class KV : public virtual A1 { 63 1.1 christos public: 64 1.1 christos int i; 65 1.1 christos }; 66 1.1 christos 67 1.1 christos class J : public K, public L { 68 1.1 christos public: 69 1.1 christos int j; 70 1.1 christos }; 71 1.1 christos 72 1.1 christos class JV : public KV, public LV { 73 1.1 christos public: 74 1.1 christos int jv; 75 1.1 christos }; 76 1.1 christos 77 1.1 christos class JVA1 : public KV, public LV, public A1 { 78 1.1 christos public: 79 1.1 christos int jva1; 80 1.1 christos }; 81 1.1 christos 82 1.1 christos class JVA2 : public KV, public LV, public A2 { 83 1.1 christos public: 84 1.1 christos int jva2; 85 1.1 christos }; 86 1.1 christos 87 1.1 christos class JVA1V : public KV, public LV, public virtual A1 { 88 1.1 christos public: 89 1.1 christos int jva1v; 90 1.1 christos }; 91 1.1 christos 92 1.7 christos class JE : public A1, public A4 { 93 1.7 christos public: 94 1.7 christos }; 95 1.7 christos 96 1.1 christos int main() 97 1.1 christos { 98 1.1 christos A1 a1; 99 1.1 christos A2 a2; 100 1.1 christos A3 a3; 101 1.1 christos X x; 102 1.1 christos L l; 103 1.1 christos M m; 104 1.1 christos N n; 105 1.1 christos K k; 106 1.1 christos J j; 107 1.1 christos JV jv; 108 1.1 christos JVA1 jva1; 109 1.1 christos JVA2 jva2; 110 1.1 christos JVA1V jva1v; 111 1.7 christos JE je; 112 1.1 christos 113 1.1 christos int i; 114 1.1 christos 115 1.1 christos i += k.i + m.w + a1.x + a2.x + a3.x + x.z + l.z + n.r + j.j; 116 1.1 christos 117 1.7 christos /* Initialize all the fields. Keep the order the same as in the 118 1.7 christos .exp file. */ 119 1.7 christos 120 1.7 christos a1.x = 1; 121 1.7 christos a1.y = 2; 122 1.7 christos 123 1.7 christos a2.x = 1; 124 1.7 christos a2.y = 2; 125 1.7 christos 126 1.7 christos a3.x = 1; 127 1.7 christos a3.y = 2; 128 1.7 christos 129 1.7 christos x.A1::x = 1; 130 1.7 christos x.A1::y = 2; 131 1.7 christos x.A2::x = 3; 132 1.7 christos x.A2::y = 4; 133 1.7 christos x.z = 5; 134 1.7 christos 135 1.7 christos l.x = 1; 136 1.7 christos l.y = 2; 137 1.7 christos l.z = 3; 138 1.7 christos 139 1.7 christos m.x = 1; 140 1.7 christos m.y = 2; 141 1.7 christos m.w = 3; 142 1.7 christos 143 1.7 christos n.A1::x = 1; 144 1.7 christos n.A1::y = 2; 145 1.7 christos n.A2::x = 3; 146 1.7 christos n.A2::y = 4; 147 1.7 christos n.w = 5; 148 1.7 christos n.r = 6; 149 1.7 christos n.z = 7; 150 1.7 christos 151 1.7 christos k.x = 1; 152 1.7 christos k.y = 2; 153 1.7 christos k.i = 3; 154 1.7 christos 155 1.7 christos j.K::x = 1; 156 1.7 christos j.K::y = 2; 157 1.7 christos j.L::x = 3; 158 1.7 christos j.L::y = 4; 159 1.7 christos j.i = 5; 160 1.7 christos j.z = 6; 161 1.7 christos j.j = 7; 162 1.7 christos 163 1.7 christos jv.x = 1; 164 1.7 christos jv.y = 2; 165 1.7 christos jv.i = 3; 166 1.7 christos jv.z = 4; 167 1.7 christos jv.jv = 5; 168 1.7 christos 169 1.7 christos jva1.KV::x = 1; 170 1.7 christos jva1.KV::y = 2; 171 1.7 christos jva1.LV::x = 3; 172 1.7 christos jva1.LV::y = 4; 173 1.7 christos jva1.z = 5; 174 1.7 christos jva1.i = 6; 175 1.7 christos jva1.jva1 = 7; 176 1.7 christos 177 1.7 christos jva2.KV::x = 1; 178 1.7 christos jva2.KV::y = 2; 179 1.7 christos jva2.LV::x = 3; 180 1.7 christos jva2.LV::y = 4; 181 1.7 christos jva2.A2::x = 5; 182 1.7 christos jva2.A2::y = 6; 183 1.7 christos jva2.z = 7; 184 1.7 christos jva2.i = 8; 185 1.7 christos jva2.jva2 = 9; 186 1.7 christos 187 1.7 christos jva1v.x = 1; 188 1.7 christos jva1v.y = 2; 189 1.7 christos jva1v.z = 3; 190 1.7 christos jva1v.i = 4; 191 1.7 christos jva1v.jva1v = 5; 192 1.7 christos 193 1.7 christos je.A1::x = 1; 194 1.6 christos 195 1.7 christos return 0; /* set breakpoint here */ 196 1.1 christos } 197