1 //===------------------------- dynamic_cast14.cpp -------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8
9 #include <cassert>
10 #include "support/timer.h"
11
12 namespace t1
13 {
14
15 struct A1
16 {
17 char _[43981];
~A1t1::A118 virtual ~A1() {}
19
getA1t1::A120 A1* getA1() {return this;}
21 };
22
23 struct A2
24 {
25 char _[34981];
~A2t1::A226 virtual ~A2() {}
27
getA2t1::A228 A2* getA2() {return this;}
29 };
30
31 struct A3
32 : public A1,
33 public virtual A2
34 {
35 char _[93481];
~A3t1::A336 virtual ~A3() {}
37
getA1_3t1::A338 A1* getA1_3() {return A1::getA1();}
getA2t1::A339 A2* getA2() {return A2::getA2();}
getA3t1::A340 A3* getA3() {return this;}
41 };
42
43 struct A4
44 : public virtual A2,
45 public A1
46 {
47 char _[13489];
~A4t1::A448 virtual ~A4() {}
49
getA1_4t1::A450 A1* getA1_4() {return A1::getA1();}
getA2t1::A451 A2* getA2() {return A2::getA2();}
getA4t1::A452 A4* getA4() {return this;}
53 };
54
55 struct A5
56 : public A3,
57 public A4
58 {
59 char _[13489];
~A5t1::A560 virtual ~A5() {}
61
getA1_3t1::A562 A1* getA1_3() {return A3::getA1();}
getA1_4t1::A563 A1* getA1_4() {return A4::getA1();}
getA2t1::A564 A2* getA2() {return A3::getA2();}
getA3t1::A565 A3* getA3() {return A3::getA3();}
getA4t1::A566 A4* getA4() {return A4::getA4();}
getA5t1::A567 A5* getA5() {return this;}
68 };
69
70 struct A6
71 : public A1
72 {
73 char _[81349];
~A6t1::A674 virtual ~A6() {}
75
getA1_6t1::A676 A1* getA1_6() {return A1::getA1();}
getA6t1::A677 A6* getA6() {return this;}
78 };
79
80 struct A7
81 : public A5,
82 public A6
83 {
84 char _[34819];
~A7t1::A785 virtual ~A7() {}
86
getA1_3t1::A787 A1* getA1_3() {return A5::getA1_3();}
getA1_4t1::A788 A1* getA1_4() {return A5::getA1_4();}
getA1_6t1::A789 A1* getA1_6() {return A6::getA1_6();}
getA2t1::A790 A2* getA2() {return A5::getA2();}
getA3t1::A791 A3* getA3() {return A5::getA3();}
getA4t1::A792 A4* getA4() {return A5::getA4();}
getA5t1::A793 A5* getA5() {return A5::getA5();}
getA6t1::A794 A6* getA6() {return A6::getA6();}
getA7t1::A795 A7* getA7() {return this;}
96 };
97
98 struct A8
99 : public A7
100 {
101 char _[3489];
~A8t1::A8102 virtual ~A8() {}
103
getA1_3t1::A8104 A1* getA1_3() {return A7::getA1_3();}
getA1_4t1::A8105 A1* getA1_4() {return A7::getA1_4();}
getA1_6t1::A8106 A1* getA1_6() {return A7::getA1_6();}
getA2t1::A8107 A2* getA2() {return A7::getA2();}
getA3t1::A8108 A3* getA3() {return A7::getA3();}
getA4t1::A8109 A4* getA4() {return A7::getA4();}
getA5t1::A8110 A5* getA5() {return A7::getA5();}
getA6t1::A8111 A6* getA6() {return A7::getA6();}
getA7t1::A8112 A7* getA7() {return A7::getA7();}
getA8t1::A8113 A8* getA8() {return this;}
114 };
115
116 struct A9
117 : public A1
118 {
119 char _[3481];
~A9t1::A9120 virtual ~A9() {}
121
getA1_9t1::A9122 A1* getA1_9() {return A1::getA1();}
getA9t1::A9123 A9* getA9() {return this;}
124 };
125
126 struct A10
127 : public virtual A8
128 {
129 char _[4831];
~A10t1::A10130 virtual ~A10() {}
131
getA1_3t1::A10132 A1* getA1_3() {return A8::getA1_3();}
getA1_4t1::A10133 A1* getA1_4() {return A8::getA1_4();}
getA1_6t1::A10134 A1* getA1_6() {return A8::getA1_6();}
getA2t1::A10135 A2* getA2() {return A8::getA2();}
getA3t1::A10136 A3* getA3() {return A8::getA3();}
getA4t1::A10137 A4* getA4() {return A8::getA4();}
getA5t1::A10138 A5* getA5() {return A8::getA5();}
getA6t1::A10139 A6* getA6() {return A8::getA6();}
getA7t1::A10140 A7* getA7() {return A8::getA7();}
getA8t1::A10141 A8* getA8() {return A8::getA8();}
getA10t1::A10142 A10* getA10() {return this;}
143 };
144
145 struct A11
146 : public virtual A8,
147 public A9
148 {
149 char _[6483];
~A11t1::A11150 virtual ~A11() {}
151
getA1_3t1::A11152 A1* getA1_3() {return A8::getA1_3();}
getA1_4t1::A11153 A1* getA1_4() {return A8::getA1_4();}
getA1_6t1::A11154 A1* getA1_6() {return A8::getA1_6();}
getA1_9t1::A11155 A1* getA1_9() {return A9::getA1_9();}
getA2t1::A11156 A2* getA2() {return A8::getA2();}
getA3t1::A11157 A3* getA3() {return A8::getA3();}
getA4t1::A11158 A4* getA4() {return A8::getA4();}
getA5t1::A11159 A5* getA5() {return A8::getA5();}
getA6t1::A11160 A6* getA6() {return A8::getA6();}
getA7t1::A11161 A7* getA7() {return A8::getA7();}
getA8t1::A11162 A8* getA8() {return A8::getA8();}
getA9t1::A11163 A9* getA9() {return A9::getA9();}
getA11t1::A11164 A11* getA11() {return this;}
165 };
166
167 struct A12
168 : public A10,
169 public A11
170 {
171 char _[2283];
~A12t1::A12172 virtual ~A12() {}
173
getA1_3t1::A12174 A1* getA1_3() {return A10::getA1_3();}
getA1_4t1::A12175 A1* getA1_4() {return A10::getA1_4();}
getA1_6t1::A12176 A1* getA1_6() {return A10::getA1_6();}
getA1_9t1::A12177 A1* getA1_9() {return A11::getA1_9();}
getA2t1::A12178 A2* getA2() {return A10::getA2();}
getA3t1::A12179 A3* getA3() {return A10::getA3();}
getA4t1::A12180 A4* getA4() {return A10::getA4();}
getA5t1::A12181 A5* getA5() {return A10::getA5();}
getA6t1::A12182 A6* getA6() {return A10::getA6();}
getA7t1::A12183 A7* getA7() {return A10::getA7();}
getA8t1::A12184 A8* getA8() {return A10::getA8();}
getA9t1::A12185 A9* getA9() {return A11::getA9();}
getA10t1::A12186 A10* getA10() {return A10::getA10();}
getA11t1::A12187 A11* getA11() {return A11::getA11();}
getA12t1::A12188 A12* getA12() {return this;}
189 };
190
191 struct A13
192 : public A12
193 {
194 char _[1283];
~A13t1::A13195 virtual ~A13() {}
196
getA1_3t1::A13197 A1* getA1_3() {return A12::getA1_3();}
getA1_4t1::A13198 A1* getA1_4() {return A12::getA1_4();}
getA1_6t1::A13199 A1* getA1_6() {return A12::getA1_6();}
getA1_9t1::A13200 A1* getA1_9() {return A12::getA1_9();}
getA2t1::A13201 A2* getA2() {return A12::getA2();}
getA3t1::A13202 A3* getA3() {return A12::getA3();}
getA4t1::A13203 A4* getA4() {return A12::getA4();}
getA5t1::A13204 A5* getA5() {return A12::getA5();}
getA6t1::A13205 A6* getA6() {return A12::getA6();}
getA7t1::A13206 A7* getA7() {return A12::getA7();}
getA8t1::A13207 A8* getA8() {return A12::getA8();}
getA9t1::A13208 A9* getA9() {return A12::getA9();}
getA10t1::A13209 A10* getA10() {return A12::getA10();}
getA11t1::A13210 A11* getA11() {return A12::getA11();}
getA12t1::A13211 A12* getA12() {return A12::getA12();}
getA13t1::A13212 A13* getA13() {return this;}
213 };
214
215 A3 a3;
216 A4 a4;
217 A5 a5;
218 A6 a6;
219 A7 a7;
220 A8 a8;
221 A9 a9;
222 A10 a10;
223 A11 a11;
224 A12 a12;
225 A13 a13;
226
test()227 void test()
228 {
229 assert(dynamic_cast<A3*>(a3.getA1_3()) == a3.getA3());
230 assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3());
231
232 assert(dynamic_cast<A3*>(a4.getA1_4()) == 0);
233 assert(dynamic_cast<A3*>(a4.getA2()) == 0);
234 assert(dynamic_cast<A4*>(a4.getA1_4()) == a4.getA4());
235 assert(dynamic_cast<A4*>(a4.getA2()) == a4.getA4());
236
237 assert(dynamic_cast<A3*>(a5.getA1_3()) == a5.getA3());
238 assert(dynamic_cast<A3*>(a5.getA2()) == a5.getA3());
239
240 assert(dynamic_cast<A4*>(a5.getA1_3()) == a5.getA4());
241 assert(dynamic_cast<A4*>(a5.getA1_4()) == a5.getA4());
242 assert(dynamic_cast<A4*>(a5.getA3()) == a5.getA4());
243 assert(dynamic_cast<A4*>(a5.getA3()) == a5.getA4());
244
245 assert(dynamic_cast<A5*>(a5.getA1_3()) == a5.getA5());
246 assert(dynamic_cast<A5*>(a5.getA1_4()) == a5.getA5());
247 assert(dynamic_cast<A5*>(a5.getA3()) == a5.getA5());
248 assert(dynamic_cast<A5*>(a5.getA3()) == a5.getA5());
249 assert(dynamic_cast<A5*>(a5.getA3()) == a5.getA5());
250 assert(dynamic_cast<A5*>(a5.getA4()) == a5.getA5());
251
252 assert(dynamic_cast<A3*>(a6.getA1_6()) == 0);
253
254 assert(dynamic_cast<A4*>(a6.getA1_6()) == 0);
255
256 assert(dynamic_cast<A5*>(a6.getA1_6()) == 0);
257
258 assert(dynamic_cast<A6*>(a6.getA1_6()) == a6.getA6());
259
260 assert(dynamic_cast<A3*>(a7.getA1_3()) == a7.getA3());
261 assert(dynamic_cast<A3*>(a7.getA1_4()) == a7.getA3());
262 assert(dynamic_cast<A3*>(a7.getA2()) == a7.getA3());
263
264 assert(dynamic_cast<A4*>(a7.getA1_3()) == a7.getA4());
265 assert(dynamic_cast<A4*>(a7.getA1_4()) == a7.getA4());
266 assert(dynamic_cast<A4*>(a7.getA2()) == a7.getA4());
267 assert(dynamic_cast<A4*>(a7.getA3()) == a7.getA4());
268
269 assert(dynamic_cast<A5*>(a7.getA1_3()) == a7.getA5());
270 assert(dynamic_cast<A5*>(a7.getA1_4()) == a7.getA5());
271 assert(dynamic_cast<A5*>(a7.getA2()) == a7.getA5());
272 assert(dynamic_cast<A5*>(a7.getA3()) == a7.getA5());
273 assert(dynamic_cast<A5*>(a7.getA4()) == a7.getA5());
274
275 assert(dynamic_cast<A6*>(a7.getA1_3()) == a7.getA6());
276 assert(dynamic_cast<A6*>(a7.getA1_4()) == a7.getA6());
277 assert(dynamic_cast<A6*>(a7.getA1_6()) == a7.getA6());
278 assert(dynamic_cast<A6*>(a7.getA2()) == a7.getA6());
279 assert(dynamic_cast<A6*>(a7.getA3()) == a7.getA6());
280 assert(dynamic_cast<A6*>(a7.getA4()) == a7.getA6());
281 assert(dynamic_cast<A6*>(a7.getA5()) == a7.getA6());
282
283 assert(dynamic_cast<A7*>(a7.getA1_3()) == a7.getA7());
284 assert(dynamic_cast<A7*>(a7.getA1_4()) == a7.getA7());
285 assert(dynamic_cast<A7*>(a7.getA1_6()) == a7.getA7());
286 assert(dynamic_cast<A7*>(a7.getA2()) == a7.getA7());
287 assert(dynamic_cast<A7*>(a7.getA3()) == a7.getA7());
288 assert(dynamic_cast<A7*>(a7.getA4()) == a7.getA7());
289 assert(dynamic_cast<A7*>(a7.getA5()) == a7.getA7());
290 assert(dynamic_cast<A7*>(a7.getA6()) == a7.getA7());
291
292 assert(dynamic_cast<A3*>(a8.getA1_3()) == a8.getA3());
293 assert(dynamic_cast<A3*>(a8.getA1_4()) == a8.getA3());
294 assert(dynamic_cast<A3*>(a8.getA2()) == a8.getA3());
295
296 assert(dynamic_cast<A4*>(a8.getA1_3()) == a8.getA4());
297 assert(dynamic_cast<A4*>(a8.getA1_4()) == a8.getA4());
298 assert(dynamic_cast<A4*>(a8.getA2()) == a8.getA4());
299 assert(dynamic_cast<A4*>(a8.getA3()) == a8.getA4());
300
301 assert(dynamic_cast<A5*>(a8.getA1_3()) == a8.getA5());
302 assert(dynamic_cast<A5*>(a8.getA1_4()) == a8.getA5());
303 assert(dynamic_cast<A5*>(a8.getA2()) == a8.getA5());
304 assert(dynamic_cast<A5*>(a8.getA3()) == a8.getA5());
305 assert(dynamic_cast<A5*>(a8.getA4()) == a8.getA5());
306
307 assert(dynamic_cast<A6*>(a8.getA1_3()) == a8.getA6());
308 assert(dynamic_cast<A6*>(a8.getA1_4()) == a8.getA6());
309 assert(dynamic_cast<A6*>(a8.getA1_6()) == a8.getA6());
310 assert(dynamic_cast<A6*>(a8.getA2()) == a8.getA6());
311 assert(dynamic_cast<A6*>(a8.getA3()) == a8.getA6());
312 assert(dynamic_cast<A6*>(a8.getA4()) == a8.getA6());
313 assert(dynamic_cast<A6*>(a8.getA5()) == a8.getA6());
314
315 assert(dynamic_cast<A7*>(a8.getA1_3()) == a8.getA7());
316 assert(dynamic_cast<A7*>(a8.getA1_4()) == a8.getA7());
317 assert(dynamic_cast<A7*>(a8.getA1_6()) == a8.getA7());
318 assert(dynamic_cast<A7*>(a8.getA2()) == a8.getA7());
319 assert(dynamic_cast<A7*>(a8.getA3()) == a8.getA7());
320 assert(dynamic_cast<A7*>(a8.getA4()) == a8.getA7());
321 assert(dynamic_cast<A7*>(a8.getA5()) == a8.getA7());
322 assert(dynamic_cast<A7*>(a8.getA6()) == a8.getA7());
323
324 assert(dynamic_cast<A8*>(a8.getA1_3()) == a8.getA8());
325 assert(dynamic_cast<A8*>(a8.getA1_4()) == a8.getA8());
326 assert(dynamic_cast<A8*>(a8.getA1_6()) == a8.getA8());
327 assert(dynamic_cast<A8*>(a8.getA2()) == a8.getA8());
328 assert(dynamic_cast<A8*>(a8.getA3()) == a8.getA8());
329 assert(dynamic_cast<A8*>(a8.getA4()) == a8.getA8());
330 assert(dynamic_cast<A8*>(a8.getA5()) == a8.getA8());
331 assert(dynamic_cast<A8*>(a8.getA6()) == a8.getA8());
332 assert(dynamic_cast<A8*>(a8.getA7()) == a8.getA8());
333
334 assert(dynamic_cast<A3*>(a9.getA1_9()) == 0);
335
336 assert(dynamic_cast<A4*>(a9.getA1_9()) == 0);
337
338 assert(dynamic_cast<A5*>(a9.getA1_9()) == 0);
339
340 assert(dynamic_cast<A6*>(a9.getA1_9()) == 0);
341
342 assert(dynamic_cast<A7*>(a9.getA1_9()) == 0);
343
344 assert(dynamic_cast<A8*>(a9.getA1_9()) == 0);
345
346 assert(dynamic_cast<A9*>(a9.getA1_9()) == a9.getA9());
347
348 assert(dynamic_cast<A3*>(a10.getA1_3()) == a10.getA3());
349 assert(dynamic_cast<A3*>(a10.getA1_4()) == a10.getA3());
350 assert(dynamic_cast<A3*>(a10.getA1_6()) == a10.getA3());
351 assert(dynamic_cast<A3*>(a10.getA2()) == a10.getA3());
352
353 assert(dynamic_cast<A4*>(a10.getA1_3()) == a10.getA4());
354 assert(dynamic_cast<A4*>(a10.getA1_4()) == a10.getA4());
355 assert(dynamic_cast<A4*>(a10.getA1_6()) == a10.getA4());
356 assert(dynamic_cast<A4*>(a10.getA2()) == a10.getA4());
357 assert(dynamic_cast<A4*>(a10.getA3()) == a10.getA4());
358
359 assert(dynamic_cast<A5*>(a10.getA1_3()) == a10.getA5());
360 assert(dynamic_cast<A5*>(a10.getA1_4()) == a10.getA5());
361 assert(dynamic_cast<A5*>(a10.getA1_6()) == a10.getA5());
362 assert(dynamic_cast<A5*>(a10.getA2()) == a10.getA5());
363 assert(dynamic_cast<A5*>(a10.getA3()) == a10.getA5());
364 assert(dynamic_cast<A5*>(a10.getA4()) == a10.getA5());
365
366 assert(dynamic_cast<A6*>(a10.getA1_3()) == a10.getA6());
367 assert(dynamic_cast<A6*>(a10.getA1_4()) == a10.getA6());
368 assert(dynamic_cast<A6*>(a10.getA1_6()) == a10.getA6());
369 assert(dynamic_cast<A6*>(a10.getA2()) == a10.getA6());
370 assert(dynamic_cast<A6*>(a10.getA3()) == a10.getA6());
371 assert(dynamic_cast<A6*>(a10.getA4()) == a10.getA6());
372 assert(dynamic_cast<A6*>(a10.getA5()) == a10.getA6());
373
374 assert(dynamic_cast<A7*>(a10.getA1_3()) == a10.getA7());
375 assert(dynamic_cast<A7*>(a10.getA1_4()) == a10.getA7());
376 assert(dynamic_cast<A7*>(a10.getA1_6()) == a10.getA7());
377 assert(dynamic_cast<A7*>(a10.getA2()) == a10.getA7());
378 assert(dynamic_cast<A7*>(a10.getA3()) == a10.getA7());
379 assert(dynamic_cast<A7*>(a10.getA4()) == a10.getA7());
380 assert(dynamic_cast<A7*>(a10.getA5()) == a10.getA7());
381 assert(dynamic_cast<A7*>(a10.getA6()) == a10.getA7());
382
383 assert(dynamic_cast<A8*>(a10.getA1_3()) == a10.getA8());
384 assert(dynamic_cast<A8*>(a10.getA1_4()) == a10.getA8());
385 assert(dynamic_cast<A8*>(a10.getA1_6()) == a10.getA8());
386 assert(dynamic_cast<A8*>(a10.getA2()) == a10.getA8());
387 assert(dynamic_cast<A8*>(a10.getA3()) == a10.getA8());
388 assert(dynamic_cast<A8*>(a10.getA4()) == a10.getA8());
389 assert(dynamic_cast<A8*>(a10.getA5()) == a10.getA8());
390 assert(dynamic_cast<A8*>(a10.getA6()) == a10.getA8());
391 assert(dynamic_cast<A8*>(a10.getA7()) == a10.getA8());
392
393 assert(dynamic_cast<A9*>(a10.getA1_3()) == 0);
394 assert(dynamic_cast<A9*>(a10.getA1_4()) == 0);
395 assert(dynamic_cast<A9*>(a10.getA1_6()) == 0);
396 assert(dynamic_cast<A9*>(a10.getA2()) == 0);
397 assert(dynamic_cast<A9*>(a10.getA3()) == 0);
398 assert(dynamic_cast<A9*>(a10.getA4()) == 0);
399 assert(dynamic_cast<A9*>(a10.getA5()) == 0);
400 assert(dynamic_cast<A9*>(a10.getA6()) == 0);
401 assert(dynamic_cast<A9*>(a10.getA7()) == 0);
402 assert(dynamic_cast<A9*>(a10.getA8()) == 0);
403
404 assert(dynamic_cast<A10*>(a10.getA1_3()) == a10.getA10());
405 assert(dynamic_cast<A10*>(a10.getA1_4()) == a10.getA10());
406 assert(dynamic_cast<A10*>(a10.getA1_6()) == a10.getA10());
407 assert(dynamic_cast<A10*>(a10.getA2()) == a10.getA10());
408 assert(dynamic_cast<A10*>(a10.getA3()) == a10.getA10());
409 assert(dynamic_cast<A10*>(a10.getA4()) == a10.getA10());
410 assert(dynamic_cast<A10*>(a10.getA5()) == a10.getA10());
411 assert(dynamic_cast<A10*>(a10.getA6()) == a10.getA10());
412 assert(dynamic_cast<A10*>(a10.getA7()) == a10.getA10());
413 assert(dynamic_cast<A10*>(a10.getA8()) == a10.getA10());
414
415 assert(dynamic_cast<A3*>(a11.getA1_3()) == a11.getA3());
416 assert(dynamic_cast<A3*>(a11.getA1_4()) == a11.getA3());
417 assert(dynamic_cast<A3*>(a11.getA1_6()) == a11.getA3());
418 assert(dynamic_cast<A3*>(a11.getA1_9()) == a11.getA3());
419 assert(dynamic_cast<A3*>(a11.getA2()) == a11.getA3());
420
421 assert(dynamic_cast<A4*>(a11.getA1_3()) == a11.getA4());
422 assert(dynamic_cast<A4*>(a11.getA1_4()) == a11.getA4());
423 assert(dynamic_cast<A4*>(a11.getA1_6()) == a11.getA4());
424 assert(dynamic_cast<A4*>(a11.getA1_9()) == a11.getA4());
425 assert(dynamic_cast<A4*>(a11.getA2()) == a11.getA4());
426 assert(dynamic_cast<A4*>(a11.getA3()) == a11.getA4());
427
428 assert(dynamic_cast<A5*>(a11.getA1_3()) == a11.getA5());
429 assert(dynamic_cast<A5*>(a11.getA1_4()) == a11.getA5());
430 assert(dynamic_cast<A5*>(a11.getA1_6()) == a11.getA5());
431 assert(dynamic_cast<A5*>(a11.getA1_9()) == a11.getA5());
432 assert(dynamic_cast<A5*>(a11.getA2()) == a11.getA5());
433 assert(dynamic_cast<A5*>(a11.getA3()) == a11.getA5());
434 assert(dynamic_cast<A5*>(a11.getA4()) == a11.getA5());
435
436 assert(dynamic_cast<A6*>(a11.getA1_3()) == a11.getA6());
437 assert(dynamic_cast<A6*>(a11.getA1_4()) == a11.getA6());
438 assert(dynamic_cast<A6*>(a11.getA1_6()) == a11.getA6());
439 assert(dynamic_cast<A6*>(a11.getA1_9()) == a11.getA6());
440 assert(dynamic_cast<A6*>(a11.getA2()) == a11.getA6());
441 assert(dynamic_cast<A6*>(a11.getA3()) == a11.getA6());
442 assert(dynamic_cast<A6*>(a11.getA4()) == a11.getA6());
443 assert(dynamic_cast<A6*>(a11.getA5()) == a11.getA6());
444
445 assert(dynamic_cast<A7*>(a11.getA1_3()) == a11.getA7());
446 assert(dynamic_cast<A7*>(a11.getA1_4()) == a11.getA7());
447 assert(dynamic_cast<A7*>(a11.getA1_6()) == a11.getA7());
448 assert(dynamic_cast<A7*>(a11.getA1_9()) == a11.getA7());
449 assert(dynamic_cast<A7*>(a11.getA2()) == a11.getA7());
450 assert(dynamic_cast<A7*>(a11.getA3()) == a11.getA7());
451 assert(dynamic_cast<A7*>(a11.getA4()) == a11.getA7());
452 assert(dynamic_cast<A7*>(a11.getA5()) == a11.getA7());
453 assert(dynamic_cast<A7*>(a11.getA6()) == a11.getA7());
454
455 assert(dynamic_cast<A8*>(a11.getA1_3()) == a11.getA8());
456 assert(dynamic_cast<A8*>(a11.getA1_4()) == a11.getA8());
457 assert(dynamic_cast<A8*>(a11.getA1_6()) == a11.getA8());
458 assert(dynamic_cast<A8*>(a11.getA1_9()) == a11.getA8());
459 assert(dynamic_cast<A8*>(a11.getA2()) == a11.getA8());
460 assert(dynamic_cast<A8*>(a11.getA3()) == a11.getA8());
461 assert(dynamic_cast<A8*>(a11.getA4()) == a11.getA8());
462 assert(dynamic_cast<A8*>(a11.getA5()) == a11.getA8());
463 assert(dynamic_cast<A8*>(a11.getA6()) == a11.getA8());
464 assert(dynamic_cast<A8*>(a11.getA7()) == a11.getA8());
465
466 assert(dynamic_cast<A9*>(a11.getA1_3()) == a11.getA9());
467 assert(dynamic_cast<A9*>(a11.getA1_4()) == a11.getA9());
468 assert(dynamic_cast<A9*>(a11.getA1_6()) == a11.getA9());
469 assert(dynamic_cast<A9*>(a11.getA1_9()) == a11.getA9());
470 assert(dynamic_cast<A9*>(a11.getA2()) == a11.getA9());
471 assert(dynamic_cast<A9*>(a11.getA3()) == a11.getA9());
472 assert(dynamic_cast<A9*>(a11.getA4()) == a11.getA9());
473 assert(dynamic_cast<A9*>(a11.getA5()) == a11.getA9());
474 assert(dynamic_cast<A9*>(a11.getA6()) == a11.getA9());
475 assert(dynamic_cast<A9*>(a11.getA7()) == a11.getA9());
476 assert(dynamic_cast<A9*>(a11.getA8()) == a11.getA9());
477
478 assert(dynamic_cast<A10*>(a11.getA1_3()) == 0);
479 assert(dynamic_cast<A10*>(a11.getA1_4()) == 0);
480 assert(dynamic_cast<A10*>(a11.getA1_6()) == 0);
481 assert(dynamic_cast<A10*>(a11.getA1_9()) == 0);
482 assert(dynamic_cast<A10*>(a11.getA2()) == 0);
483 assert(dynamic_cast<A10*>(a11.getA3()) == 0);
484 assert(dynamic_cast<A10*>(a11.getA4()) == 0);
485 assert(dynamic_cast<A10*>(a11.getA5()) == 0);
486 assert(dynamic_cast<A10*>(a11.getA6()) == 0);
487 assert(dynamic_cast<A10*>(a11.getA7()) == 0);
488 assert(dynamic_cast<A10*>(a11.getA8()) == 0);
489 assert(dynamic_cast<A10*>(a11.getA9()) == 0);
490
491 assert(dynamic_cast<A11*>(a11.getA1_3()) == a11.getA11());
492 assert(dynamic_cast<A11*>(a11.getA1_4()) == a11.getA11());
493 assert(dynamic_cast<A11*>(a11.getA1_6()) == a11.getA11());
494 assert(dynamic_cast<A11*>(a11.getA1_9()) == a11.getA11());
495 assert(dynamic_cast<A11*>(a11.getA2()) == a11.getA11());
496 assert(dynamic_cast<A11*>(a11.getA3()) == a11.getA11());
497 assert(dynamic_cast<A11*>(a11.getA4()) == a11.getA11());
498 assert(dynamic_cast<A11*>(a11.getA5()) == a11.getA11());
499 assert(dynamic_cast<A11*>(a11.getA6()) == a11.getA11());
500 assert(dynamic_cast<A11*>(a11.getA7()) == a11.getA11());
501 assert(dynamic_cast<A11*>(a11.getA8()) == a11.getA11());
502 assert(dynamic_cast<A11*>(a11.getA9()) == a11.getA11());
503
504 assert(dynamic_cast<A3*>(a12.getA1_3()) == a12.getA3());
505 assert(dynamic_cast<A3*>(a12.getA1_4()) == a12.getA3());
506 assert(dynamic_cast<A3*>(a12.getA1_6()) == a12.getA3());
507 assert(dynamic_cast<A3*>(a12.getA1_9()) == a12.getA3());
508 assert(dynamic_cast<A3*>(a12.getA2()) == a12.getA3());
509
510 assert(dynamic_cast<A4*>(a12.getA1_3()) == a12.getA4());
511 assert(dynamic_cast<A4*>(a12.getA1_4()) == a12.getA4());
512 assert(dynamic_cast<A4*>(a12.getA1_6()) == a12.getA4());
513 assert(dynamic_cast<A4*>(a12.getA1_9()) == a12.getA4());
514 assert(dynamic_cast<A4*>(a12.getA2()) == a12.getA4());
515 assert(dynamic_cast<A4*>(a12.getA3()) == a12.getA4());
516
517 assert(dynamic_cast<A5*>(a12.getA1_3()) == a12.getA5());
518 assert(dynamic_cast<A5*>(a12.getA1_4()) == a12.getA5());
519 assert(dynamic_cast<A5*>(a12.getA1_6()) == a12.getA5());
520 assert(dynamic_cast<A5*>(a12.getA1_9()) == a12.getA5());
521 assert(dynamic_cast<A5*>(a12.getA2()) == a12.getA5());
522 assert(dynamic_cast<A5*>(a12.getA3()) == a12.getA5());
523 assert(dynamic_cast<A5*>(a12.getA4()) == a12.getA5());
524
525 assert(dynamic_cast<A6*>(a12.getA1_3()) == a12.getA6());
526 assert(dynamic_cast<A6*>(a12.getA1_4()) == a12.getA6());
527 assert(dynamic_cast<A6*>(a12.getA1_6()) == a12.getA6());
528 assert(dynamic_cast<A6*>(a12.getA1_9()) == a12.getA6());
529 assert(dynamic_cast<A6*>(a12.getA2()) == a12.getA6());
530 assert(dynamic_cast<A6*>(a12.getA3()) == a12.getA6());
531 assert(dynamic_cast<A6*>(a12.getA4()) == a12.getA6());
532 assert(dynamic_cast<A6*>(a12.getA5()) == a12.getA6());
533
534 assert(dynamic_cast<A7*>(a12.getA1_3()) == a12.getA7());
535 assert(dynamic_cast<A7*>(a12.getA1_4()) == a12.getA7());
536 assert(dynamic_cast<A7*>(a12.getA1_6()) == a12.getA7());
537 assert(dynamic_cast<A7*>(a12.getA1_9()) == a12.getA7());
538 assert(dynamic_cast<A7*>(a12.getA2()) == a12.getA7());
539 assert(dynamic_cast<A7*>(a12.getA3()) == a12.getA7());
540 assert(dynamic_cast<A7*>(a12.getA4()) == a12.getA7());
541 assert(dynamic_cast<A7*>(a12.getA5()) == a12.getA7());
542 assert(dynamic_cast<A7*>(a12.getA6()) == a12.getA7());
543
544 assert(dynamic_cast<A8*>(a12.getA1_3()) == a12.getA8());
545 assert(dynamic_cast<A8*>(a12.getA1_4()) == a12.getA8());
546 assert(dynamic_cast<A8*>(a12.getA1_6()) == a12.getA8());
547 assert(dynamic_cast<A8*>(a12.getA1_9()) == a12.getA8());
548 assert(dynamic_cast<A8*>(a12.getA2()) == a12.getA8());
549 assert(dynamic_cast<A8*>(a12.getA3()) == a12.getA8());
550 assert(dynamic_cast<A8*>(a12.getA4()) == a12.getA8());
551 assert(dynamic_cast<A8*>(a12.getA5()) == a12.getA8());
552 assert(dynamic_cast<A8*>(a12.getA6()) == a12.getA8());
553 assert(dynamic_cast<A8*>(a12.getA7()) == a12.getA8());
554
555 assert(dynamic_cast<A9*>(a12.getA1_3()) == a12.getA9());
556 assert(dynamic_cast<A9*>(a12.getA1_4()) == a12.getA9());
557 assert(dynamic_cast<A9*>(a12.getA1_6()) == a12.getA9());
558 assert(dynamic_cast<A9*>(a12.getA1_9()) == a12.getA9());
559 assert(dynamic_cast<A9*>(a12.getA2()) == a12.getA9());
560 assert(dynamic_cast<A9*>(a12.getA3()) == a12.getA9());
561 assert(dynamic_cast<A9*>(a12.getA4()) == a12.getA9());
562 assert(dynamic_cast<A9*>(a12.getA5()) == a12.getA9());
563 assert(dynamic_cast<A9*>(a12.getA6()) == a12.getA9());
564 assert(dynamic_cast<A9*>(a12.getA7()) == a12.getA9());
565 assert(dynamic_cast<A9*>(a12.getA8()) == a12.getA9());
566
567 assert(dynamic_cast<A10*>(a12.getA1_3()) == a12.getA10());
568 assert(dynamic_cast<A10*>(a12.getA1_4()) == a12.getA10());
569 assert(dynamic_cast<A10*>(a12.getA1_6()) == a12.getA10());
570 assert(dynamic_cast<A10*>(a12.getA1_9()) == a12.getA10());
571 assert(dynamic_cast<A10*>(a12.getA2()) == a12.getA10());
572 assert(dynamic_cast<A10*>(a12.getA3()) == a12.getA10());
573 assert(dynamic_cast<A10*>(a12.getA4()) == a12.getA10());
574 assert(dynamic_cast<A10*>(a12.getA5()) == a12.getA10());
575 assert(dynamic_cast<A10*>(a12.getA6()) == a12.getA10());
576 assert(dynamic_cast<A10*>(a12.getA7()) == a12.getA10());
577 assert(dynamic_cast<A10*>(a12.getA8()) == a12.getA10());
578 assert(dynamic_cast<A10*>(a12.getA9()) == a12.getA10());
579
580 assert(dynamic_cast<A11*>(a12.getA1_3()) == a12.getA11());
581 assert(dynamic_cast<A11*>(a12.getA1_4()) == a12.getA11());
582 assert(dynamic_cast<A11*>(a12.getA1_6()) == a12.getA11());
583 assert(dynamic_cast<A11*>(a12.getA1_9()) == a12.getA11());
584 assert(dynamic_cast<A11*>(a12.getA2()) == a12.getA11());
585 assert(dynamic_cast<A11*>(a12.getA3()) == a12.getA11());
586 assert(dynamic_cast<A11*>(a12.getA4()) == a12.getA11());
587 assert(dynamic_cast<A11*>(a12.getA5()) == a12.getA11());
588 assert(dynamic_cast<A11*>(a12.getA6()) == a12.getA11());
589 assert(dynamic_cast<A11*>(a12.getA7()) == a12.getA11());
590 assert(dynamic_cast<A11*>(a12.getA8()) == a12.getA11());
591 assert(dynamic_cast<A11*>(a12.getA9()) == a12.getA11());
592 assert(dynamic_cast<A11*>(a12.getA10()) == a12.getA11());
593
594 assert(dynamic_cast<A12*>(a12.getA1_3()) == a12.getA12());
595 assert(dynamic_cast<A12*>(a12.getA1_4()) == a12.getA12());
596 assert(dynamic_cast<A12*>(a12.getA1_6()) == a12.getA12());
597 assert(dynamic_cast<A12*>(a12.getA1_9()) == a12.getA12());
598 assert(dynamic_cast<A12*>(a12.getA2()) == a12.getA12());
599 assert(dynamic_cast<A12*>(a12.getA3()) == a12.getA12());
600 assert(dynamic_cast<A12*>(a12.getA4()) == a12.getA12());
601 assert(dynamic_cast<A12*>(a12.getA5()) == a12.getA12());
602 assert(dynamic_cast<A12*>(a12.getA6()) == a12.getA12());
603 assert(dynamic_cast<A12*>(a12.getA7()) == a12.getA12());
604 assert(dynamic_cast<A12*>(a12.getA8()) == a12.getA12());
605 assert(dynamic_cast<A12*>(a12.getA9()) == a12.getA12());
606 assert(dynamic_cast<A12*>(a12.getA10()) == a12.getA12());
607 assert(dynamic_cast<A12*>(a12.getA11()) == a12.getA12());
608
609 assert(dynamic_cast<A3*>(a13.getA1_3()) == a13.getA3());
610 assert(dynamic_cast<A3*>(a13.getA1_4()) == a13.getA3());
611 assert(dynamic_cast<A3*>(a13.getA1_6()) == a13.getA3());
612 assert(dynamic_cast<A3*>(a13.getA1_9()) == a13.getA3());
613 assert(dynamic_cast<A3*>(a13.getA2()) == a13.getA3());
614
615 assert(dynamic_cast<A4*>(a13.getA1_3()) == a13.getA4());
616 assert(dynamic_cast<A4*>(a13.getA1_4()) == a13.getA4());
617 assert(dynamic_cast<A4*>(a13.getA1_6()) == a13.getA4());
618 assert(dynamic_cast<A4*>(a13.getA1_9()) == a13.getA4());
619 assert(dynamic_cast<A4*>(a13.getA2()) == a13.getA4());
620 assert(dynamic_cast<A4*>(a13.getA3()) == a13.getA4());
621
622 assert(dynamic_cast<A5*>(a13.getA1_3()) == a13.getA5());
623 assert(dynamic_cast<A5*>(a13.getA1_4()) == a13.getA5());
624 assert(dynamic_cast<A5*>(a13.getA1_6()) == a13.getA5());
625 assert(dynamic_cast<A5*>(a13.getA1_9()) == a13.getA5());
626 assert(dynamic_cast<A5*>(a13.getA2()) == a13.getA5());
627 assert(dynamic_cast<A5*>(a13.getA3()) == a13.getA5());
628 assert(dynamic_cast<A5*>(a13.getA4()) == a13.getA5());
629
630 assert(dynamic_cast<A6*>(a13.getA1_3()) == a13.getA6());
631 assert(dynamic_cast<A6*>(a13.getA1_4()) == a13.getA6());
632 assert(dynamic_cast<A6*>(a13.getA1_6()) == a13.getA6());
633 assert(dynamic_cast<A6*>(a13.getA1_9()) == a13.getA6());
634 assert(dynamic_cast<A6*>(a13.getA2()) == a13.getA6());
635 assert(dynamic_cast<A6*>(a13.getA3()) == a13.getA6());
636 assert(dynamic_cast<A6*>(a13.getA4()) == a13.getA6());
637 assert(dynamic_cast<A6*>(a13.getA5()) == a13.getA6());
638
639 assert(dynamic_cast<A7*>(a13.getA1_3()) == a13.getA7());
640 assert(dynamic_cast<A7*>(a13.getA1_4()) == a13.getA7());
641 assert(dynamic_cast<A7*>(a13.getA1_6()) == a13.getA7());
642 assert(dynamic_cast<A7*>(a13.getA1_9()) == a13.getA7());
643 assert(dynamic_cast<A7*>(a13.getA2()) == a13.getA7());
644 assert(dynamic_cast<A7*>(a13.getA3()) == a13.getA7());
645 assert(dynamic_cast<A7*>(a13.getA4()) == a13.getA7());
646 assert(dynamic_cast<A7*>(a13.getA5()) == a13.getA7());
647 assert(dynamic_cast<A7*>(a13.getA6()) == a13.getA7());
648
649 assert(dynamic_cast<A8*>(a13.getA1_3()) == a13.getA8());
650 assert(dynamic_cast<A8*>(a13.getA1_4()) == a13.getA8());
651 assert(dynamic_cast<A8*>(a13.getA1_6()) == a13.getA8());
652 assert(dynamic_cast<A8*>(a13.getA1_9()) == a13.getA8());
653 assert(dynamic_cast<A8*>(a13.getA2()) == a13.getA8());
654 assert(dynamic_cast<A8*>(a13.getA3()) == a13.getA8());
655 assert(dynamic_cast<A8*>(a13.getA4()) == a13.getA8());
656 assert(dynamic_cast<A8*>(a13.getA5()) == a13.getA8());
657 assert(dynamic_cast<A8*>(a13.getA6()) == a13.getA8());
658 assert(dynamic_cast<A8*>(a13.getA7()) == a13.getA8());
659
660 assert(dynamic_cast<A9*>(a13.getA1_3()) == a13.getA9());
661 assert(dynamic_cast<A9*>(a13.getA1_4()) == a13.getA9());
662 assert(dynamic_cast<A9*>(a13.getA1_6()) == a13.getA9());
663 assert(dynamic_cast<A9*>(a13.getA1_9()) == a13.getA9());
664 assert(dynamic_cast<A9*>(a13.getA2()) == a13.getA9());
665 assert(dynamic_cast<A9*>(a13.getA3()) == a13.getA9());
666 assert(dynamic_cast<A9*>(a13.getA4()) == a13.getA9());
667 assert(dynamic_cast<A9*>(a13.getA5()) == a13.getA9());
668 assert(dynamic_cast<A9*>(a13.getA6()) == a13.getA9());
669 assert(dynamic_cast<A9*>(a13.getA7()) == a13.getA9());
670 assert(dynamic_cast<A9*>(a13.getA8()) == a13.getA9());
671
672 assert(dynamic_cast<A10*>(a13.getA1_3()) == a13.getA10());
673 assert(dynamic_cast<A10*>(a13.getA1_4()) == a13.getA10());
674 assert(dynamic_cast<A10*>(a13.getA1_6()) == a13.getA10());
675 assert(dynamic_cast<A10*>(a13.getA1_9()) == a13.getA10());
676 assert(dynamic_cast<A10*>(a13.getA2()) == a13.getA10());
677 assert(dynamic_cast<A10*>(a13.getA3()) == a13.getA10());
678 assert(dynamic_cast<A10*>(a13.getA4()) == a13.getA10());
679 assert(dynamic_cast<A10*>(a13.getA5()) == a13.getA10());
680 assert(dynamic_cast<A10*>(a13.getA6()) == a13.getA10());
681 assert(dynamic_cast<A10*>(a13.getA7()) == a13.getA10());
682 assert(dynamic_cast<A10*>(a13.getA8()) == a13.getA10());
683 assert(dynamic_cast<A10*>(a13.getA9()) == a13.getA10());
684
685 assert(dynamic_cast<A11*>(a13.getA1_3()) == a13.getA11());
686 assert(dynamic_cast<A11*>(a13.getA1_4()) == a13.getA11());
687 assert(dynamic_cast<A11*>(a13.getA1_6()) == a13.getA11());
688 assert(dynamic_cast<A11*>(a13.getA1_9()) == a13.getA11());
689 assert(dynamic_cast<A11*>(a13.getA2()) == a13.getA11());
690 assert(dynamic_cast<A11*>(a13.getA3()) == a13.getA11());
691 assert(dynamic_cast<A11*>(a13.getA4()) == a13.getA11());
692 assert(dynamic_cast<A11*>(a13.getA5()) == a13.getA11());
693 assert(dynamic_cast<A11*>(a13.getA6()) == a13.getA11());
694 assert(dynamic_cast<A11*>(a13.getA7()) == a13.getA11());
695 assert(dynamic_cast<A11*>(a13.getA8()) == a13.getA11());
696 assert(dynamic_cast<A11*>(a13.getA9()) == a13.getA11());
697 assert(dynamic_cast<A11*>(a13.getA10()) == a13.getA11());
698
699 assert(dynamic_cast<A12*>(a13.getA1_3()) == a13.getA12());
700 assert(dynamic_cast<A12*>(a13.getA1_4()) == a13.getA12());
701 assert(dynamic_cast<A12*>(a13.getA1_6()) == a13.getA12());
702 assert(dynamic_cast<A12*>(a13.getA1_9()) == a13.getA12());
703 assert(dynamic_cast<A12*>(a13.getA2()) == a13.getA12());
704 assert(dynamic_cast<A12*>(a13.getA3()) == a13.getA12());
705 assert(dynamic_cast<A12*>(a13.getA4()) == a13.getA12());
706 assert(dynamic_cast<A12*>(a13.getA5()) == a13.getA12());
707 assert(dynamic_cast<A12*>(a13.getA6()) == a13.getA12());
708 assert(dynamic_cast<A12*>(a13.getA7()) == a13.getA12());
709 assert(dynamic_cast<A12*>(a13.getA8()) == a13.getA12());
710 assert(dynamic_cast<A12*>(a13.getA9()) == a13.getA12());
711 assert(dynamic_cast<A12*>(a13.getA10()) == a13.getA12());
712 assert(dynamic_cast<A12*>(a13.getA11()) == a13.getA12());
713
714 assert(dynamic_cast<A13*>(a13.getA1_3()) == a13.getA13());
715 assert(dynamic_cast<A13*>(a13.getA1_4()) == a13.getA13());
716 assert(dynamic_cast<A13*>(a13.getA1_6()) == a13.getA13());
717 assert(dynamic_cast<A13*>(a13.getA1_9()) == a13.getA13());
718 assert(dynamic_cast<A13*>(a13.getA2()) == a13.getA13());
719 assert(dynamic_cast<A13*>(a13.getA3()) == a13.getA13());
720 assert(dynamic_cast<A13*>(a13.getA4()) == a13.getA13());
721 assert(dynamic_cast<A13*>(a13.getA5()) == a13.getA13());
722 assert(dynamic_cast<A13*>(a13.getA6()) == a13.getA13());
723 assert(dynamic_cast<A13*>(a13.getA7()) == a13.getA13());
724 assert(dynamic_cast<A13*>(a13.getA8()) == a13.getA13());
725 assert(dynamic_cast<A13*>(a13.getA9()) == a13.getA13());
726 assert(dynamic_cast<A13*>(a13.getA10()) == a13.getA13());
727 assert(dynamic_cast<A13*>(a13.getA11()) == a13.getA13());
728 assert(dynamic_cast<A13*>(a13.getA12()) == a13.getA13());
729 }
730
731 } // t1
732
733 namespace t2
734 {
735
736 struct A1
737 {
738 char _[43981];
~A1t2::A1739 virtual ~A1() {}
740
getA1t2::A1741 A1* getA1() {return this;}
742 };
743
744 struct A2
745 {
746 char _[34981];
~A2t2::A2747 virtual ~A2() {}
748
getA2t2::A2749 A2* getA2() {return this;}
750 };
751
752 struct A3
753 : protected A1,
754 public virtual A2
755 {
756 char _[93481];
~A3t2::A3757 virtual ~A3() {}
758
getA1_3t2::A3759 A1* getA1_3() {return A1::getA1();}
getA2t2::A3760 A2* getA2() {return A2::getA2();}
getA3t2::A3761 A3* getA3() {return this;}
762 };
763
764 struct A4
765 : public virtual A2,
766 public A1
767 {
768 char _[13489];
~A4t2::A4769 virtual ~A4() {}
770
getA1_4t2::A4771 A1* getA1_4() {return A1::getA1();}
getA2t2::A4772 A2* getA2() {return A2::getA2();}
getA4t2::A4773 A4* getA4() {return this;}
774 };
775
776 struct A5
777 : public A3,
778 public A4
779 {
780 char _[13489];
~A5t2::A5781 virtual ~A5() {}
782
getA1_3t2::A5783 A1* getA1_3() {return A3::getA1();}
getA1_4t2::A5784 A1* getA1_4() {return A4::getA1();}
getA2t2::A5785 A2* getA2() {return A3::getA2();}
getA3t2::A5786 A3* getA3() {return A3::getA3();}
getA4t2::A5787 A4* getA4() {return A4::getA4();}
getA5t2::A5788 A5* getA5() {return this;}
789 };
790
791 struct A6
792 : public A1
793 {
794 char _[81349];
~A6t2::A6795 virtual ~A6() {}
796
getA1_6t2::A6797 A1* getA1_6() {return A1::getA1();}
getA6t2::A6798 A6* getA6() {return this;}
799 };
800
801 struct A7
802 : public A5,
803 public A6
804 {
805 char _[34819];
~A7t2::A7806 virtual ~A7() {}
807
getA1_3t2::A7808 A1* getA1_3() {return A5::getA1_3();}
getA1_4t2::A7809 A1* getA1_4() {return A5::getA1_4();}
getA1_6t2::A7810 A1* getA1_6() {return A6::getA1_6();}
getA2t2::A7811 A2* getA2() {return A5::getA2();}
getA3t2::A7812 A3* getA3() {return A5::getA3();}
getA4t2::A7813 A4* getA4() {return A5::getA4();}
getA5t2::A7814 A5* getA5() {return A5::getA5();}
getA6t2::A7815 A6* getA6() {return A6::getA6();}
getA7t2::A7816 A7* getA7() {return this;}
817 };
818
819 struct A8
820 : public A7
821 {
822 char _[3489];
~A8t2::A8823 virtual ~A8() {}
824
getA1_3t2::A8825 A1* getA1_3() {return A7::getA1_3();}
getA1_4t2::A8826 A1* getA1_4() {return A7::getA1_4();}
getA1_6t2::A8827 A1* getA1_6() {return A7::getA1_6();}
getA2t2::A8828 A2* getA2() {return A7::getA2();}
getA3t2::A8829 A3* getA3() {return A7::getA3();}
getA4t2::A8830 A4* getA4() {return A7::getA4();}
getA5t2::A8831 A5* getA5() {return A7::getA5();}
getA6t2::A8832 A6* getA6() {return A7::getA6();}
getA7t2::A8833 A7* getA7() {return A7::getA7();}
getA8t2::A8834 A8* getA8() {return this;}
835 };
836
837 struct A9
838 : public A1
839 {
840 char _[3481];
~A9t2::A9841 virtual ~A9() {}
842
getA1_9t2::A9843 A1* getA1_9() {return A1::getA1();}
getA9t2::A9844 A9* getA9() {return this;}
845 };
846
847 struct A10
848 : public virtual A8
849 {
850 char _[4831];
~A10t2::A10851 virtual ~A10() {}
852
getA1_3t2::A10853 A1* getA1_3() {return A8::getA1_3();}
getA1_4t2::A10854 A1* getA1_4() {return A8::getA1_4();}
getA1_6t2::A10855 A1* getA1_6() {return A8::getA1_6();}
getA2t2::A10856 A2* getA2() {return A8::getA2();}
getA3t2::A10857 A3* getA3() {return A8::getA3();}
getA4t2::A10858 A4* getA4() {return A8::getA4();}
getA5t2::A10859 A5* getA5() {return A8::getA5();}
getA6t2::A10860 A6* getA6() {return A8::getA6();}
getA7t2::A10861 A7* getA7() {return A8::getA7();}
getA8t2::A10862 A8* getA8() {return A8::getA8();}
getA10t2::A10863 A10* getA10() {return this;}
864 };
865
866 struct A11
867 : public virtual A8,
868 public A9
869 {
870 char _[6483];
~A11t2::A11871 virtual ~A11() {}
872
getA1_3t2::A11873 A1* getA1_3() {return A8::getA1_3();}
getA1_4t2::A11874 A1* getA1_4() {return A8::getA1_4();}
getA1_6t2::A11875 A1* getA1_6() {return A8::getA1_6();}
getA1_9t2::A11876 A1* getA1_9() {return A9::getA1_9();}
getA2t2::A11877 A2* getA2() {return A8::getA2();}
getA3t2::A11878 A3* getA3() {return A8::getA3();}
getA4t2::A11879 A4* getA4() {return A8::getA4();}
getA5t2::A11880 A5* getA5() {return A8::getA5();}
getA6t2::A11881 A6* getA6() {return A8::getA6();}
getA7t2::A11882 A7* getA7() {return A8::getA7();}
getA8t2::A11883 A8* getA8() {return A8::getA8();}
getA9t2::A11884 A9* getA9() {return A9::getA9();}
getA11t2::A11885 A11* getA11() {return this;}
886 };
887
888 struct A12
889 : public A10,
890 public A11
891 {
892 char _[2283];
~A12t2::A12893 virtual ~A12() {}
894
getA1_3t2::A12895 A1* getA1_3() {return A10::getA1_3();}
getA1_4t2::A12896 A1* getA1_4() {return A10::getA1_4();}
getA1_6t2::A12897 A1* getA1_6() {return A10::getA1_6();}
getA1_9t2::A12898 A1* getA1_9() {return A11::getA1_9();}
getA2t2::A12899 A2* getA2() {return A10::getA2();}
getA3t2::A12900 A3* getA3() {return A10::getA3();}
getA4t2::A12901 A4* getA4() {return A10::getA4();}
getA5t2::A12902 A5* getA5() {return A10::getA5();}
getA6t2::A12903 A6* getA6() {return A10::getA6();}
getA7t2::A12904 A7* getA7() {return A10::getA7();}
getA8t2::A12905 A8* getA8() {return A10::getA8();}
getA9t2::A12906 A9* getA9() {return A11::getA9();}
getA10t2::A12907 A10* getA10() {return A10::getA10();}
getA11t2::A12908 A11* getA11() {return A11::getA11();}
getA12t2::A12909 A12* getA12() {return this;}
910 };
911
912 struct A13
913 : public A12
914 {
915 char _[1283];
~A13t2::A13916 virtual ~A13() {}
917
getA1_3t2::A13918 A1* getA1_3() {return A12::getA1_3();}
getA1_4t2::A13919 A1* getA1_4() {return A12::getA1_4();}
getA1_6t2::A13920 A1* getA1_6() {return A12::getA1_6();}
getA1_9t2::A13921 A1* getA1_9() {return A12::getA1_9();}
getA2t2::A13922 A2* getA2() {return A12::getA2();}
getA3t2::A13923 A3* getA3() {return A12::getA3();}
getA4t2::A13924 A4* getA4() {return A12::getA4();}
getA5t2::A13925 A5* getA5() {return A12::getA5();}
getA6t2::A13926 A6* getA6() {return A12::getA6();}
getA7t2::A13927 A7* getA7() {return A12::getA7();}
getA8t2::A13928 A8* getA8() {return A12::getA8();}
getA9t2::A13929 A9* getA9() {return A12::getA9();}
getA10t2::A13930 A10* getA10() {return A12::getA10();}
getA11t2::A13931 A11* getA11() {return A12::getA11();}
getA12t2::A13932 A12* getA12() {return A12::getA12();}
getA13t2::A13933 A13* getA13() {return this;}
934 };
935
936 A3 a3;
937 A4 a4;
938 A5 a5;
939 A6 a6;
940 A7 a7;
941 A8 a8;
942 A9 a9;
943 A10 a10;
944 A11 a11;
945 A12 a12;
946 A13 a13;
947
test()948 void test()
949 {
950 assert(dynamic_cast<A3*>(a3.getA1_3()) == 0);
951 assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3());
952
953 assert(dynamic_cast<A3*>(a4.getA1_4()) == 0);
954 assert(dynamic_cast<A3*>(a4.getA2()) == 0);
955 assert(dynamic_cast<A4*>(a4.getA1_4()) == a4.getA4());
956 assert(dynamic_cast<A4*>(a4.getA2()) == a4.getA4());
957
958 assert(dynamic_cast<A3*>(a5.getA1_3()) == 0);
959 assert(dynamic_cast<A3*>(a5.getA2()) == a5.getA3());
960
961 assert(dynamic_cast<A4*>(a5.getA1_3()) == 0);
962 assert(dynamic_cast<A4*>(a5.getA1_4()) == a5.getA4());
963 assert(dynamic_cast<A4*>(a5.getA3()) == a5.getA4());
964 assert(dynamic_cast<A4*>(a5.getA3()) == a5.getA4());
965
966 assert(dynamic_cast<A5*>(a5.getA1_3()) == 0);
967 assert(dynamic_cast<A5*>(a5.getA1_4()) == a5.getA5());
968 assert(dynamic_cast<A5*>(a5.getA3()) == a5.getA5());
969 assert(dynamic_cast<A5*>(a5.getA3()) == a5.getA5());
970 assert(dynamic_cast<A5*>(a5.getA3()) == a5.getA5());
971 assert(dynamic_cast<A5*>(a5.getA4()) == a5.getA5());
972
973 assert(dynamic_cast<A3*>(a6.getA1_6()) == 0);
974
975 assert(dynamic_cast<A4*>(a6.getA1_6()) == 0);
976
977 assert(dynamic_cast<A5*>(a6.getA1_6()) == 0);
978
979 assert(dynamic_cast<A6*>(a6.getA1_6()) == a6.getA6());
980
981 assert(dynamic_cast<A3*>(a7.getA1_3()) == 0);
982 assert(dynamic_cast<A3*>(a7.getA1_4()) == a7.getA3());
983 assert(dynamic_cast<A3*>(a7.getA2()) == a7.getA3());
984
985 assert(dynamic_cast<A4*>(a7.getA1_3()) == 0);
986 assert(dynamic_cast<A4*>(a7.getA1_4()) == a7.getA4());
987 assert(dynamic_cast<A4*>(a7.getA2()) == a7.getA4());
988 assert(dynamic_cast<A4*>(a7.getA3()) == a7.getA4());
989
990 assert(dynamic_cast<A5*>(a7.getA1_3()) == 0);
991 assert(dynamic_cast<A5*>(a7.getA1_4()) == a7.getA5());
992 assert(dynamic_cast<A5*>(a7.getA2()) == a7.getA5());
993 assert(dynamic_cast<A5*>(a7.getA3()) == a7.getA5());
994 assert(dynamic_cast<A5*>(a7.getA4()) == a7.getA5());
995
996 assert(dynamic_cast<A6*>(a7.getA1_3()) == 0);
997 assert(dynamic_cast<A6*>(a7.getA1_4()) == a7.getA6());
998 assert(dynamic_cast<A6*>(a7.getA1_6()) == a7.getA6());
999 assert(dynamic_cast<A6*>(a7.getA2()) == a7.getA6());
1000 assert(dynamic_cast<A6*>(a7.getA3()) == a7.getA6());
1001 assert(dynamic_cast<A6*>(a7.getA4()) == a7.getA6());
1002 assert(dynamic_cast<A6*>(a7.getA5()) == a7.getA6());
1003
1004 assert(dynamic_cast<A7*>(a7.getA1_3()) == 0);
1005 assert(dynamic_cast<A7*>(a7.getA1_4()) == a7.getA7());
1006 assert(dynamic_cast<A7*>(a7.getA1_6()) == a7.getA7());
1007 assert(dynamic_cast<A7*>(a7.getA2()) == a7.getA7());
1008 assert(dynamic_cast<A7*>(a7.getA3()) == a7.getA7());
1009 assert(dynamic_cast<A7*>(a7.getA4()) == a7.getA7());
1010 assert(dynamic_cast<A7*>(a7.getA5()) == a7.getA7());
1011 assert(dynamic_cast<A7*>(a7.getA6()) == a7.getA7());
1012
1013 assert(dynamic_cast<A3*>(a8.getA1_3()) == 0);
1014 assert(dynamic_cast<A3*>(a8.getA1_4()) == a8.getA3());
1015 assert(dynamic_cast<A3*>(a8.getA2()) == a8.getA3());
1016
1017 assert(dynamic_cast<A4*>(a8.getA1_3()) == 0);
1018 assert(dynamic_cast<A4*>(a8.getA1_4()) == a8.getA4());
1019 assert(dynamic_cast<A4*>(a8.getA2()) == a8.getA4());
1020 assert(dynamic_cast<A4*>(a8.getA3()) == a8.getA4());
1021
1022 assert(dynamic_cast<A5*>(a8.getA1_3()) == 0);
1023 assert(dynamic_cast<A5*>(a8.getA1_4()) == a8.getA5());
1024 assert(dynamic_cast<A5*>(a8.getA2()) == a8.getA5());
1025 assert(dynamic_cast<A5*>(a8.getA3()) == a8.getA5());
1026 assert(dynamic_cast<A5*>(a8.getA4()) == a8.getA5());
1027
1028 assert(dynamic_cast<A6*>(a8.getA1_3()) == 0);
1029 assert(dynamic_cast<A6*>(a8.getA1_4()) == a8.getA6());
1030 assert(dynamic_cast<A6*>(a8.getA1_6()) == a8.getA6());
1031 assert(dynamic_cast<A6*>(a8.getA2()) == a8.getA6());
1032 assert(dynamic_cast<A6*>(a8.getA3()) == a8.getA6());
1033 assert(dynamic_cast<A6*>(a8.getA4()) == a8.getA6());
1034 assert(dynamic_cast<A6*>(a8.getA5()) == a8.getA6());
1035
1036 assert(dynamic_cast<A7*>(a8.getA1_3()) == 0);
1037 assert(dynamic_cast<A7*>(a8.getA1_4()) == a8.getA7());
1038 assert(dynamic_cast<A7*>(a8.getA1_6()) == a8.getA7());
1039 assert(dynamic_cast<A7*>(a8.getA2()) == a8.getA7());
1040 assert(dynamic_cast<A7*>(a8.getA3()) == a8.getA7());
1041 assert(dynamic_cast<A7*>(a8.getA4()) == a8.getA7());
1042 assert(dynamic_cast<A7*>(a8.getA5()) == a8.getA7());
1043 assert(dynamic_cast<A7*>(a8.getA6()) == a8.getA7());
1044
1045 assert(dynamic_cast<A8*>(a8.getA1_3()) == 0);
1046 assert(dynamic_cast<A8*>(a8.getA1_4()) == a8.getA8());
1047 assert(dynamic_cast<A8*>(a8.getA1_6()) == a8.getA8());
1048 assert(dynamic_cast<A8*>(a8.getA2()) == a8.getA8());
1049 assert(dynamic_cast<A8*>(a8.getA3()) == a8.getA8());
1050 assert(dynamic_cast<A8*>(a8.getA4()) == a8.getA8());
1051 assert(dynamic_cast<A8*>(a8.getA5()) == a8.getA8());
1052 assert(dynamic_cast<A8*>(a8.getA6()) == a8.getA8());
1053 assert(dynamic_cast<A8*>(a8.getA7()) == a8.getA8());
1054
1055 assert(dynamic_cast<A3*>(a9.getA1_9()) == 0);
1056
1057 assert(dynamic_cast<A4*>(a9.getA1_9()) == 0);
1058
1059 assert(dynamic_cast<A5*>(a9.getA1_9()) == 0);
1060
1061 assert(dynamic_cast<A6*>(a9.getA1_9()) == 0);
1062
1063 assert(dynamic_cast<A7*>(a9.getA1_9()) == 0);
1064
1065 assert(dynamic_cast<A8*>(a9.getA1_9()) == 0);
1066
1067 assert(dynamic_cast<A9*>(a9.getA1_9()) == a9.getA9());
1068
1069 assert(dynamic_cast<A3*>(a10.getA1_3()) == 0);
1070 assert(dynamic_cast<A3*>(a10.getA1_4()) == a10.getA3());
1071 assert(dynamic_cast<A3*>(a10.getA1_6()) == a10.getA3());
1072 assert(dynamic_cast<A3*>(a10.getA2()) == a10.getA3());
1073
1074 assert(dynamic_cast<A4*>(a10.getA1_3()) == 0);
1075 assert(dynamic_cast<A4*>(a10.getA1_4()) == a10.getA4());
1076 assert(dynamic_cast<A4*>(a10.getA1_6()) == a10.getA4());
1077 assert(dynamic_cast<A4*>(a10.getA2()) == a10.getA4());
1078 assert(dynamic_cast<A4*>(a10.getA3()) == a10.getA4());
1079
1080 assert(dynamic_cast<A5*>(a10.getA1_3()) == 0);
1081 assert(dynamic_cast<A5*>(a10.getA1_4()) == a10.getA5());
1082 assert(dynamic_cast<A5*>(a10.getA1_6()) == a10.getA5());
1083 assert(dynamic_cast<A5*>(a10.getA2()) == a10.getA5());
1084 assert(dynamic_cast<A5*>(a10.getA3()) == a10.getA5());
1085 assert(dynamic_cast<A5*>(a10.getA4()) == a10.getA5());
1086
1087 assert(dynamic_cast<A6*>(a10.getA1_3()) == 0);
1088 assert(dynamic_cast<A6*>(a10.getA1_4()) == a10.getA6());
1089 assert(dynamic_cast<A6*>(a10.getA1_6()) == a10.getA6());
1090 assert(dynamic_cast<A6*>(a10.getA2()) == a10.getA6());
1091 assert(dynamic_cast<A6*>(a10.getA3()) == a10.getA6());
1092 assert(dynamic_cast<A6*>(a10.getA4()) == a10.getA6());
1093 assert(dynamic_cast<A6*>(a10.getA5()) == a10.getA6());
1094
1095 assert(dynamic_cast<A7*>(a10.getA1_3()) == 0);
1096 assert(dynamic_cast<A7*>(a10.getA1_4()) == a10.getA7());
1097 assert(dynamic_cast<A7*>(a10.getA1_6()) == a10.getA7());
1098 assert(dynamic_cast<A7*>(a10.getA2()) == a10.getA7());
1099 assert(dynamic_cast<A7*>(a10.getA3()) == a10.getA7());
1100 assert(dynamic_cast<A7*>(a10.getA4()) == a10.getA7());
1101 assert(dynamic_cast<A7*>(a10.getA5()) == a10.getA7());
1102 assert(dynamic_cast<A7*>(a10.getA6()) == a10.getA7());
1103
1104 assert(dynamic_cast<A8*>(a10.getA1_3()) == 0);
1105 assert(dynamic_cast<A8*>(a10.getA1_4()) == a10.getA8());
1106 assert(dynamic_cast<A8*>(a10.getA1_6()) == a10.getA8());
1107 assert(dynamic_cast<A8*>(a10.getA2()) == a10.getA8());
1108 assert(dynamic_cast<A8*>(a10.getA3()) == a10.getA8());
1109 assert(dynamic_cast<A8*>(a10.getA4()) == a10.getA8());
1110 assert(dynamic_cast<A8*>(a10.getA5()) == a10.getA8());
1111 assert(dynamic_cast<A8*>(a10.getA6()) == a10.getA8());
1112 assert(dynamic_cast<A8*>(a10.getA7()) == a10.getA8());
1113
1114 assert(dynamic_cast<A9*>(a10.getA1_3()) == 0);
1115 assert(dynamic_cast<A9*>(a10.getA1_4()) == 0);
1116 assert(dynamic_cast<A9*>(a10.getA1_6()) == 0);
1117 assert(dynamic_cast<A9*>(a10.getA2()) == 0);
1118 assert(dynamic_cast<A9*>(a10.getA3()) == 0);
1119 assert(dynamic_cast<A9*>(a10.getA4()) == 0);
1120 assert(dynamic_cast<A9*>(a10.getA5()) == 0);
1121 assert(dynamic_cast<A9*>(a10.getA6()) == 0);
1122 assert(dynamic_cast<A9*>(a10.getA7()) == 0);
1123 assert(dynamic_cast<A9*>(a10.getA8()) == 0);
1124
1125 assert(dynamic_cast<A10*>(a10.getA1_3()) == 0);
1126 assert(dynamic_cast<A10*>(a10.getA1_4()) == a10.getA10());
1127 assert(dynamic_cast<A10*>(a10.getA1_6()) == a10.getA10());
1128 assert(dynamic_cast<A10*>(a10.getA2()) == a10.getA10());
1129 assert(dynamic_cast<A10*>(a10.getA3()) == a10.getA10());
1130 assert(dynamic_cast<A10*>(a10.getA4()) == a10.getA10());
1131 assert(dynamic_cast<A10*>(a10.getA5()) == a10.getA10());
1132 assert(dynamic_cast<A10*>(a10.getA6()) == a10.getA10());
1133 assert(dynamic_cast<A10*>(a10.getA7()) == a10.getA10());
1134 assert(dynamic_cast<A10*>(a10.getA8()) == a10.getA10());
1135
1136 assert(dynamic_cast<A3*>(a11.getA1_3()) == 0);
1137 assert(dynamic_cast<A3*>(a11.getA1_4()) == a11.getA3());
1138 assert(dynamic_cast<A3*>(a11.getA1_6()) == a11.getA3());
1139 assert(dynamic_cast<A3*>(a11.getA1_9()) == a11.getA3());
1140 assert(dynamic_cast<A3*>(a11.getA2()) == a11.getA3());
1141
1142 assert(dynamic_cast<A4*>(a11.getA1_3()) == 0);
1143 assert(dynamic_cast<A4*>(a11.getA1_4()) == a11.getA4());
1144 assert(dynamic_cast<A4*>(a11.getA1_6()) == a11.getA4());
1145 assert(dynamic_cast<A4*>(a11.getA1_9()) == a11.getA4());
1146 assert(dynamic_cast<A4*>(a11.getA2()) == a11.getA4());
1147 assert(dynamic_cast<A4*>(a11.getA3()) == a11.getA4());
1148
1149 assert(dynamic_cast<A5*>(a11.getA1_3()) == 0);
1150 assert(dynamic_cast<A5*>(a11.getA1_4()) == a11.getA5());
1151 assert(dynamic_cast<A5*>(a11.getA1_6()) == a11.getA5());
1152 assert(dynamic_cast<A5*>(a11.getA1_9()) == a11.getA5());
1153 assert(dynamic_cast<A5*>(a11.getA2()) == a11.getA5());
1154 assert(dynamic_cast<A5*>(a11.getA3()) == a11.getA5());
1155 assert(dynamic_cast<A5*>(a11.getA4()) == a11.getA5());
1156
1157 assert(dynamic_cast<A6*>(a11.getA1_3()) == 0);
1158 assert(dynamic_cast<A6*>(a11.getA1_4()) == a11.getA6());
1159 assert(dynamic_cast<A6*>(a11.getA1_6()) == a11.getA6());
1160 assert(dynamic_cast<A6*>(a11.getA1_9()) == a11.getA6());
1161 assert(dynamic_cast<A6*>(a11.getA2()) == a11.getA6());
1162 assert(dynamic_cast<A6*>(a11.getA3()) == a11.getA6());
1163 assert(dynamic_cast<A6*>(a11.getA4()) == a11.getA6());
1164 assert(dynamic_cast<A6*>(a11.getA5()) == a11.getA6());
1165
1166 assert(dynamic_cast<A7*>(a11.getA1_3()) == 0);
1167 assert(dynamic_cast<A7*>(a11.getA1_4()) == a11.getA7());
1168 assert(dynamic_cast<A7*>(a11.getA1_6()) == a11.getA7());
1169 assert(dynamic_cast<A7*>(a11.getA1_9()) == a11.getA7());
1170 assert(dynamic_cast<A7*>(a11.getA2()) == a11.getA7());
1171 assert(dynamic_cast<A7*>(a11.getA3()) == a11.getA7());
1172 assert(dynamic_cast<A7*>(a11.getA4()) == a11.getA7());
1173 assert(dynamic_cast<A7*>(a11.getA5()) == a11.getA7());
1174 assert(dynamic_cast<A7*>(a11.getA6()) == a11.getA7());
1175
1176 assert(dynamic_cast<A8*>(a11.getA1_3()) == 0);
1177 assert(dynamic_cast<A8*>(a11.getA1_4()) == a11.getA8());
1178 assert(dynamic_cast<A8*>(a11.getA1_6()) == a11.getA8());
1179 assert(dynamic_cast<A8*>(a11.getA1_9()) == a11.getA8());
1180 assert(dynamic_cast<A8*>(a11.getA2()) == a11.getA8());
1181 assert(dynamic_cast<A8*>(a11.getA3()) == a11.getA8());
1182 assert(dynamic_cast<A8*>(a11.getA4()) == a11.getA8());
1183 assert(dynamic_cast<A8*>(a11.getA5()) == a11.getA8());
1184 assert(dynamic_cast<A8*>(a11.getA6()) == a11.getA8());
1185 assert(dynamic_cast<A8*>(a11.getA7()) == a11.getA8());
1186
1187 assert(dynamic_cast<A9*>(a11.getA1_3()) == 0);
1188 assert(dynamic_cast<A9*>(a11.getA1_4()) == a11.getA9());
1189 assert(dynamic_cast<A9*>(a11.getA1_6()) == a11.getA9());
1190 assert(dynamic_cast<A9*>(a11.getA1_9()) == a11.getA9());
1191 assert(dynamic_cast<A9*>(a11.getA2()) == a11.getA9());
1192 assert(dynamic_cast<A9*>(a11.getA3()) == a11.getA9());
1193 assert(dynamic_cast<A9*>(a11.getA4()) == a11.getA9());
1194 assert(dynamic_cast<A9*>(a11.getA5()) == a11.getA9());
1195 assert(dynamic_cast<A9*>(a11.getA6()) == a11.getA9());
1196 assert(dynamic_cast<A9*>(a11.getA7()) == a11.getA9());
1197 assert(dynamic_cast<A9*>(a11.getA8()) == a11.getA9());
1198
1199 assert(dynamic_cast<A10*>(a11.getA1_3()) == 0);
1200 assert(dynamic_cast<A10*>(a11.getA1_4()) == 0);
1201 assert(dynamic_cast<A10*>(a11.getA1_6()) == 0);
1202 assert(dynamic_cast<A10*>(a11.getA1_9()) == 0);
1203 assert(dynamic_cast<A10*>(a11.getA2()) == 0);
1204 assert(dynamic_cast<A10*>(a11.getA3()) == 0);
1205 assert(dynamic_cast<A10*>(a11.getA4()) == 0);
1206 assert(dynamic_cast<A10*>(a11.getA5()) == 0);
1207 assert(dynamic_cast<A10*>(a11.getA6()) == 0);
1208 assert(dynamic_cast<A10*>(a11.getA7()) == 0);
1209 assert(dynamic_cast<A10*>(a11.getA8()) == 0);
1210 assert(dynamic_cast<A10*>(a11.getA9()) == 0);
1211
1212 assert(dynamic_cast<A11*>(a11.getA1_3()) == 0);
1213 assert(dynamic_cast<A11*>(a11.getA1_4()) == a11.getA11());
1214 assert(dynamic_cast<A11*>(a11.getA1_6()) == a11.getA11());
1215 assert(dynamic_cast<A11*>(a11.getA1_9()) == a11.getA11());
1216 assert(dynamic_cast<A11*>(a11.getA2()) == a11.getA11());
1217 assert(dynamic_cast<A11*>(a11.getA3()) == a11.getA11());
1218 assert(dynamic_cast<A11*>(a11.getA4()) == a11.getA11());
1219 assert(dynamic_cast<A11*>(a11.getA5()) == a11.getA11());
1220 assert(dynamic_cast<A11*>(a11.getA6()) == a11.getA11());
1221 assert(dynamic_cast<A11*>(a11.getA7()) == a11.getA11());
1222 assert(dynamic_cast<A11*>(a11.getA8()) == a11.getA11());
1223 assert(dynamic_cast<A11*>(a11.getA9()) == a11.getA11());
1224
1225 assert(dynamic_cast<A3*>(a12.getA1_3()) == 0);
1226 assert(dynamic_cast<A3*>(a12.getA1_4()) == a12.getA3());
1227 assert(dynamic_cast<A3*>(a12.getA1_6()) == a12.getA3());
1228 assert(dynamic_cast<A3*>(a12.getA1_9()) == a12.getA3());
1229 assert(dynamic_cast<A3*>(a12.getA2()) == a12.getA3());
1230
1231 assert(dynamic_cast<A4*>(a12.getA1_3()) == 0);
1232 assert(dynamic_cast<A4*>(a12.getA1_4()) == a12.getA4());
1233 assert(dynamic_cast<A4*>(a12.getA1_6()) == a12.getA4());
1234 assert(dynamic_cast<A4*>(a12.getA1_9()) == a12.getA4());
1235 assert(dynamic_cast<A4*>(a12.getA2()) == a12.getA4());
1236 assert(dynamic_cast<A4*>(a12.getA3()) == a12.getA4());
1237
1238 assert(dynamic_cast<A5*>(a12.getA1_3()) == 0);
1239 assert(dynamic_cast<A5*>(a12.getA1_4()) == a12.getA5());
1240 assert(dynamic_cast<A5*>(a12.getA1_6()) == a12.getA5());
1241 assert(dynamic_cast<A5*>(a12.getA1_9()) == a12.getA5());
1242 assert(dynamic_cast<A5*>(a12.getA2()) == a12.getA5());
1243 assert(dynamic_cast<A5*>(a12.getA3()) == a12.getA5());
1244 assert(dynamic_cast<A5*>(a12.getA4()) == a12.getA5());
1245
1246 assert(dynamic_cast<A6*>(a12.getA1_3()) == 0);
1247 assert(dynamic_cast<A6*>(a12.getA1_4()) == a12.getA6());
1248 assert(dynamic_cast<A6*>(a12.getA1_6()) == a12.getA6());
1249 assert(dynamic_cast<A6*>(a12.getA1_9()) == a12.getA6());
1250 assert(dynamic_cast<A6*>(a12.getA2()) == a12.getA6());
1251 assert(dynamic_cast<A6*>(a12.getA3()) == a12.getA6());
1252 assert(dynamic_cast<A6*>(a12.getA4()) == a12.getA6());
1253 assert(dynamic_cast<A6*>(a12.getA5()) == a12.getA6());
1254
1255 assert(dynamic_cast<A7*>(a12.getA1_3()) == 0);
1256 assert(dynamic_cast<A7*>(a12.getA1_4()) == a12.getA7());
1257 assert(dynamic_cast<A7*>(a12.getA1_6()) == a12.getA7());
1258 assert(dynamic_cast<A7*>(a12.getA1_9()) == a12.getA7());
1259 assert(dynamic_cast<A7*>(a12.getA2()) == a12.getA7());
1260 assert(dynamic_cast<A7*>(a12.getA3()) == a12.getA7());
1261 assert(dynamic_cast<A7*>(a12.getA4()) == a12.getA7());
1262 assert(dynamic_cast<A7*>(a12.getA5()) == a12.getA7());
1263 assert(dynamic_cast<A7*>(a12.getA6()) == a12.getA7());
1264
1265 assert(dynamic_cast<A8*>(a12.getA1_3()) == 0);
1266 assert(dynamic_cast<A8*>(a12.getA1_4()) == a12.getA8());
1267 assert(dynamic_cast<A8*>(a12.getA1_6()) == a12.getA8());
1268 assert(dynamic_cast<A8*>(a12.getA1_9()) == a12.getA8());
1269 assert(dynamic_cast<A8*>(a12.getA2()) == a12.getA8());
1270 assert(dynamic_cast<A8*>(a12.getA3()) == a12.getA8());
1271 assert(dynamic_cast<A8*>(a12.getA4()) == a12.getA8());
1272 assert(dynamic_cast<A8*>(a12.getA5()) == a12.getA8());
1273 assert(dynamic_cast<A8*>(a12.getA6()) == a12.getA8());
1274 assert(dynamic_cast<A8*>(a12.getA7()) == a12.getA8());
1275
1276 assert(dynamic_cast<A9*>(a12.getA1_3()) == 0);
1277 assert(dynamic_cast<A9*>(a12.getA1_4()) == a12.getA9());
1278 assert(dynamic_cast<A9*>(a12.getA1_6()) == a12.getA9());
1279 assert(dynamic_cast<A9*>(a12.getA1_9()) == a12.getA9());
1280 assert(dynamic_cast<A9*>(a12.getA2()) == a12.getA9());
1281 assert(dynamic_cast<A9*>(a12.getA3()) == a12.getA9());
1282 assert(dynamic_cast<A9*>(a12.getA4()) == a12.getA9());
1283 assert(dynamic_cast<A9*>(a12.getA5()) == a12.getA9());
1284 assert(dynamic_cast<A9*>(a12.getA6()) == a12.getA9());
1285 assert(dynamic_cast<A9*>(a12.getA7()) == a12.getA9());
1286 assert(dynamic_cast<A9*>(a12.getA8()) == a12.getA9());
1287
1288 assert(dynamic_cast<A10*>(a12.getA1_3()) == 0);
1289 assert(dynamic_cast<A10*>(a12.getA1_4()) == a12.getA10());
1290 assert(dynamic_cast<A10*>(a12.getA1_6()) == a12.getA10());
1291 assert(dynamic_cast<A10*>(a12.getA1_9()) == a12.getA10());
1292 assert(dynamic_cast<A10*>(a12.getA2()) == a12.getA10());
1293 assert(dynamic_cast<A10*>(a12.getA3()) == a12.getA10());
1294 assert(dynamic_cast<A10*>(a12.getA4()) == a12.getA10());
1295 assert(dynamic_cast<A10*>(a12.getA5()) == a12.getA10());
1296 assert(dynamic_cast<A10*>(a12.getA6()) == a12.getA10());
1297 assert(dynamic_cast<A10*>(a12.getA7()) == a12.getA10());
1298 assert(dynamic_cast<A10*>(a12.getA8()) == a12.getA10());
1299 assert(dynamic_cast<A10*>(a12.getA9()) == a12.getA10());
1300
1301 assert(dynamic_cast<A11*>(a12.getA1_3()) == 0);
1302 assert(dynamic_cast<A11*>(a12.getA1_4()) == a12.getA11());
1303 assert(dynamic_cast<A11*>(a12.getA1_6()) == a12.getA11());
1304 assert(dynamic_cast<A11*>(a12.getA1_9()) == a12.getA11());
1305 assert(dynamic_cast<A11*>(a12.getA2()) == a12.getA11());
1306 assert(dynamic_cast<A11*>(a12.getA3()) == a12.getA11());
1307 assert(dynamic_cast<A11*>(a12.getA4()) == a12.getA11());
1308 assert(dynamic_cast<A11*>(a12.getA5()) == a12.getA11());
1309 assert(dynamic_cast<A11*>(a12.getA6()) == a12.getA11());
1310 assert(dynamic_cast<A11*>(a12.getA7()) == a12.getA11());
1311 assert(dynamic_cast<A11*>(a12.getA8()) == a12.getA11());
1312 assert(dynamic_cast<A11*>(a12.getA9()) == a12.getA11());
1313 assert(dynamic_cast<A11*>(a12.getA10()) == a12.getA11());
1314
1315 assert(dynamic_cast<A12*>(a12.getA1_3()) == 0);
1316 assert(dynamic_cast<A12*>(a12.getA1_4()) == a12.getA12());
1317 assert(dynamic_cast<A12*>(a12.getA1_6()) == a12.getA12());
1318 assert(dynamic_cast<A12*>(a12.getA1_9()) == a12.getA12());
1319 assert(dynamic_cast<A12*>(a12.getA2()) == a12.getA12());
1320 assert(dynamic_cast<A12*>(a12.getA3()) == a12.getA12());
1321 assert(dynamic_cast<A12*>(a12.getA4()) == a12.getA12());
1322 assert(dynamic_cast<A12*>(a12.getA5()) == a12.getA12());
1323 assert(dynamic_cast<A12*>(a12.getA6()) == a12.getA12());
1324 assert(dynamic_cast<A12*>(a12.getA7()) == a12.getA12());
1325 assert(dynamic_cast<A12*>(a12.getA8()) == a12.getA12());
1326 assert(dynamic_cast<A12*>(a12.getA9()) == a12.getA12());
1327 assert(dynamic_cast<A12*>(a12.getA10()) == a12.getA12());
1328 assert(dynamic_cast<A12*>(a12.getA11()) == a12.getA12());
1329
1330 assert(dynamic_cast<A3*>(a13.getA1_3()) == 0);
1331 assert(dynamic_cast<A3*>(a13.getA1_4()) == a13.getA3());
1332 assert(dynamic_cast<A3*>(a13.getA1_6()) == a13.getA3());
1333 assert(dynamic_cast<A3*>(a13.getA1_9()) == a13.getA3());
1334 assert(dynamic_cast<A3*>(a13.getA2()) == a13.getA3());
1335
1336 assert(dynamic_cast<A4*>(a13.getA1_3()) == 0);
1337 assert(dynamic_cast<A4*>(a13.getA1_4()) == a13.getA4());
1338 assert(dynamic_cast<A4*>(a13.getA1_6()) == a13.getA4());
1339 assert(dynamic_cast<A4*>(a13.getA1_9()) == a13.getA4());
1340 assert(dynamic_cast<A4*>(a13.getA2()) == a13.getA4());
1341 assert(dynamic_cast<A4*>(a13.getA3()) == a13.getA4());
1342
1343 assert(dynamic_cast<A5*>(a13.getA1_3()) == 0);
1344 assert(dynamic_cast<A5*>(a13.getA1_4()) == a13.getA5());
1345 assert(dynamic_cast<A5*>(a13.getA1_6()) == a13.getA5());
1346 assert(dynamic_cast<A5*>(a13.getA1_9()) == a13.getA5());
1347 assert(dynamic_cast<A5*>(a13.getA2()) == a13.getA5());
1348 assert(dynamic_cast<A5*>(a13.getA3()) == a13.getA5());
1349 assert(dynamic_cast<A5*>(a13.getA4()) == a13.getA5());
1350
1351 assert(dynamic_cast<A6*>(a13.getA1_3()) == 0);
1352 assert(dynamic_cast<A6*>(a13.getA1_4()) == a13.getA6());
1353 assert(dynamic_cast<A6*>(a13.getA1_6()) == a13.getA6());
1354 assert(dynamic_cast<A6*>(a13.getA1_9()) == a13.getA6());
1355 assert(dynamic_cast<A6*>(a13.getA2()) == a13.getA6());
1356 assert(dynamic_cast<A6*>(a13.getA3()) == a13.getA6());
1357 assert(dynamic_cast<A6*>(a13.getA4()) == a13.getA6());
1358 assert(dynamic_cast<A6*>(a13.getA5()) == a13.getA6());
1359
1360 assert(dynamic_cast<A7*>(a13.getA1_3()) == 0);
1361 assert(dynamic_cast<A7*>(a13.getA1_4()) == a13.getA7());
1362 assert(dynamic_cast<A7*>(a13.getA1_6()) == a13.getA7());
1363 assert(dynamic_cast<A7*>(a13.getA1_9()) == a13.getA7());
1364 assert(dynamic_cast<A7*>(a13.getA2()) == a13.getA7());
1365 assert(dynamic_cast<A7*>(a13.getA3()) == a13.getA7());
1366 assert(dynamic_cast<A7*>(a13.getA4()) == a13.getA7());
1367 assert(dynamic_cast<A7*>(a13.getA5()) == a13.getA7());
1368 assert(dynamic_cast<A7*>(a13.getA6()) == a13.getA7());
1369
1370 assert(dynamic_cast<A8*>(a13.getA1_3()) == 0);
1371 assert(dynamic_cast<A8*>(a13.getA1_4()) == a13.getA8());
1372 assert(dynamic_cast<A8*>(a13.getA1_6()) == a13.getA8());
1373 assert(dynamic_cast<A8*>(a13.getA1_9()) == a13.getA8());
1374 assert(dynamic_cast<A8*>(a13.getA2()) == a13.getA8());
1375 assert(dynamic_cast<A8*>(a13.getA3()) == a13.getA8());
1376 assert(dynamic_cast<A8*>(a13.getA4()) == a13.getA8());
1377 assert(dynamic_cast<A8*>(a13.getA5()) == a13.getA8());
1378 assert(dynamic_cast<A8*>(a13.getA6()) == a13.getA8());
1379 assert(dynamic_cast<A8*>(a13.getA7()) == a13.getA8());
1380
1381 assert(dynamic_cast<A9*>(a13.getA1_3()) == 0);
1382 assert(dynamic_cast<A9*>(a13.getA1_4()) == a13.getA9());
1383 assert(dynamic_cast<A9*>(a13.getA1_6()) == a13.getA9());
1384 assert(dynamic_cast<A9*>(a13.getA1_9()) == a13.getA9());
1385 assert(dynamic_cast<A9*>(a13.getA2()) == a13.getA9());
1386 assert(dynamic_cast<A9*>(a13.getA3()) == a13.getA9());
1387 assert(dynamic_cast<A9*>(a13.getA4()) == a13.getA9());
1388 assert(dynamic_cast<A9*>(a13.getA5()) == a13.getA9());
1389 assert(dynamic_cast<A9*>(a13.getA6()) == a13.getA9());
1390 assert(dynamic_cast<A9*>(a13.getA7()) == a13.getA9());
1391 assert(dynamic_cast<A9*>(a13.getA8()) == a13.getA9());
1392
1393 assert(dynamic_cast<A10*>(a13.getA1_3()) == 0);
1394 assert(dynamic_cast<A10*>(a13.getA1_4()) == a13.getA10());
1395 assert(dynamic_cast<A10*>(a13.getA1_6()) == a13.getA10());
1396 assert(dynamic_cast<A10*>(a13.getA1_9()) == a13.getA10());
1397 assert(dynamic_cast<A10*>(a13.getA2()) == a13.getA10());
1398 assert(dynamic_cast<A10*>(a13.getA3()) == a13.getA10());
1399 assert(dynamic_cast<A10*>(a13.getA4()) == a13.getA10());
1400 assert(dynamic_cast<A10*>(a13.getA5()) == a13.getA10());
1401 assert(dynamic_cast<A10*>(a13.getA6()) == a13.getA10());
1402 assert(dynamic_cast<A10*>(a13.getA7()) == a13.getA10());
1403 assert(dynamic_cast<A10*>(a13.getA8()) == a13.getA10());
1404 assert(dynamic_cast<A10*>(a13.getA9()) == a13.getA10());
1405
1406 assert(dynamic_cast<A11*>(a13.getA1_3()) == 0);
1407 assert(dynamic_cast<A11*>(a13.getA1_4()) == a13.getA11());
1408 assert(dynamic_cast<A11*>(a13.getA1_6()) == a13.getA11());
1409 assert(dynamic_cast<A11*>(a13.getA1_9()) == a13.getA11());
1410 assert(dynamic_cast<A11*>(a13.getA2()) == a13.getA11());
1411 assert(dynamic_cast<A11*>(a13.getA3()) == a13.getA11());
1412 assert(dynamic_cast<A11*>(a13.getA4()) == a13.getA11());
1413 assert(dynamic_cast<A11*>(a13.getA5()) == a13.getA11());
1414 assert(dynamic_cast<A11*>(a13.getA6()) == a13.getA11());
1415 assert(dynamic_cast<A11*>(a13.getA7()) == a13.getA11());
1416 assert(dynamic_cast<A11*>(a13.getA8()) == a13.getA11());
1417 assert(dynamic_cast<A11*>(a13.getA9()) == a13.getA11());
1418 assert(dynamic_cast<A11*>(a13.getA10()) == a13.getA11());
1419
1420 assert(dynamic_cast<A12*>(a13.getA1_3()) == 0);
1421 assert(dynamic_cast<A12*>(a13.getA1_4()) == a13.getA12());
1422 assert(dynamic_cast<A12*>(a13.getA1_6()) == a13.getA12());
1423 assert(dynamic_cast<A12*>(a13.getA1_9()) == a13.getA12());
1424 assert(dynamic_cast<A12*>(a13.getA2()) == a13.getA12());
1425 assert(dynamic_cast<A12*>(a13.getA3()) == a13.getA12());
1426 assert(dynamic_cast<A12*>(a13.getA4()) == a13.getA12());
1427 assert(dynamic_cast<A12*>(a13.getA5()) == a13.getA12());
1428 assert(dynamic_cast<A12*>(a13.getA6()) == a13.getA12());
1429 assert(dynamic_cast<A12*>(a13.getA7()) == a13.getA12());
1430 assert(dynamic_cast<A12*>(a13.getA8()) == a13.getA12());
1431 assert(dynamic_cast<A12*>(a13.getA9()) == a13.getA12());
1432 assert(dynamic_cast<A12*>(a13.getA10()) == a13.getA12());
1433 assert(dynamic_cast<A12*>(a13.getA11()) == a13.getA12());
1434
1435 assert(dynamic_cast<A13*>(a13.getA1_3()) == 0);
1436 assert(dynamic_cast<A13*>(a13.getA1_4()) == a13.getA13());
1437 assert(dynamic_cast<A13*>(a13.getA1_6()) == a13.getA13());
1438 assert(dynamic_cast<A13*>(a13.getA1_9()) == a13.getA13());
1439 assert(dynamic_cast<A13*>(a13.getA2()) == a13.getA13());
1440 assert(dynamic_cast<A13*>(a13.getA3()) == a13.getA13());
1441 assert(dynamic_cast<A13*>(a13.getA4()) == a13.getA13());
1442 assert(dynamic_cast<A13*>(a13.getA5()) == a13.getA13());
1443 assert(dynamic_cast<A13*>(a13.getA6()) == a13.getA13());
1444 assert(dynamic_cast<A13*>(a13.getA7()) == a13.getA13());
1445 assert(dynamic_cast<A13*>(a13.getA8()) == a13.getA13());
1446 assert(dynamic_cast<A13*>(a13.getA9()) == a13.getA13());
1447 assert(dynamic_cast<A13*>(a13.getA10()) == a13.getA13());
1448 assert(dynamic_cast<A13*>(a13.getA11()) == a13.getA13());
1449 assert(dynamic_cast<A13*>(a13.getA12()) == a13.getA13());
1450 }
1451
1452 } // t2
1453
1454 namespace t3
1455 {
1456
1457 struct A1
1458 {
1459 char _[43981];
~A1t3::A11460 virtual ~A1() {}
1461
getA1t3::A11462 A1* getA1() {return this;}
1463 };
1464
1465 struct A2
1466 {
1467 char _[34981];
~A2t3::A21468 virtual ~A2() {}
1469
getA2t3::A21470 A2* getA2() {return this;}
1471 };
1472
1473 struct A3
1474 : public A1,
1475 protected virtual A2
1476 {
1477 char _[93481];
~A3t3::A31478 virtual ~A3() {}
1479
getA1_3t3::A31480 A1* getA1_3() {return A1::getA1();}
getA2t3::A31481 A2* getA2() {return A2::getA2();}
getA3t3::A31482 A3* getA3() {return this;}
1483 };
1484
1485 struct A4
1486 : public virtual A2,
1487 public A1
1488 {
1489 char _[13489];
~A4t3::A41490 virtual ~A4() {}
1491
getA1_4t3::A41492 A1* getA1_4() {return A1::getA1();}
getA2t3::A41493 A2* getA2() {return A2::getA2();}
getA4t3::A41494 A4* getA4() {return this;}
1495 };
1496
1497 struct A5
1498 : public A3,
1499 public A4
1500 {
1501 char _[13489];
~A5t3::A51502 virtual ~A5() {}
1503
getA1_3t3::A51504 A1* getA1_3() {return A3::getA1();}
getA1_4t3::A51505 A1* getA1_4() {return A4::getA1();}
getA2t3::A51506 A2* getA2() {return A3::getA2();}
getA3t3::A51507 A3* getA3() {return A3::getA3();}
getA4t3::A51508 A4* getA4() {return A4::getA4();}
getA5t3::A51509 A5* getA5() {return this;}
1510 };
1511
1512 struct A6
1513 : public A1
1514 {
1515 char _[81349];
~A6t3::A61516 virtual ~A6() {}
1517
getA1_6t3::A61518 A1* getA1_6() {return A1::getA1();}
getA6t3::A61519 A6* getA6() {return this;}
1520 };
1521
1522 struct A7
1523 : public A5,
1524 public A6
1525 {
1526 char _[34819];
~A7t3::A71527 virtual ~A7() {}
1528
getA1_3t3::A71529 A1* getA1_3() {return A5::getA1_3();}
getA1_4t3::A71530 A1* getA1_4() {return A5::getA1_4();}
getA1_6t3::A71531 A1* getA1_6() {return A6::getA1_6();}
getA2t3::A71532 A2* getA2() {return A5::getA2();}
getA3t3::A71533 A3* getA3() {return A5::getA3();}
getA4t3::A71534 A4* getA4() {return A5::getA4();}
getA5t3::A71535 A5* getA5() {return A5::getA5();}
getA6t3::A71536 A6* getA6() {return A6::getA6();}
getA7t3::A71537 A7* getA7() {return this;}
1538 };
1539
1540 struct A8
1541 : public A7
1542 {
1543 char _[3489];
~A8t3::A81544 virtual ~A8() {}
1545
getA1_3t3::A81546 A1* getA1_3() {return A7::getA1_3();}
getA1_4t3::A81547 A1* getA1_4() {return A7::getA1_4();}
getA1_6t3::A81548 A1* getA1_6() {return A7::getA1_6();}
getA2t3::A81549 A2* getA2() {return A7::getA2();}
getA3t3::A81550 A3* getA3() {return A7::getA3();}
getA4t3::A81551 A4* getA4() {return A7::getA4();}
getA5t3::A81552 A5* getA5() {return A7::getA5();}
getA6t3::A81553 A6* getA6() {return A7::getA6();}
getA7t3::A81554 A7* getA7() {return A7::getA7();}
getA8t3::A81555 A8* getA8() {return this;}
1556 };
1557
1558 struct A9
1559 : public A1
1560 {
1561 char _[3481];
~A9t3::A91562 virtual ~A9() {}
1563
getA1_9t3::A91564 A1* getA1_9() {return A1::getA1();}
getA9t3::A91565 A9* getA9() {return this;}
1566 };
1567
1568 struct A10
1569 : public virtual A8
1570 {
1571 char _[4831];
~A10t3::A101572 virtual ~A10() {}
1573
getA1_3t3::A101574 A1* getA1_3() {return A8::getA1_3();}
getA1_4t3::A101575 A1* getA1_4() {return A8::getA1_4();}
getA1_6t3::A101576 A1* getA1_6() {return A8::getA1_6();}
getA2t3::A101577 A2* getA2() {return A8::getA2();}
getA3t3::A101578 A3* getA3() {return A8::getA3();}
getA4t3::A101579 A4* getA4() {return A8::getA4();}
getA5t3::A101580 A5* getA5() {return A8::getA5();}
getA6t3::A101581 A6* getA6() {return A8::getA6();}
getA7t3::A101582 A7* getA7() {return A8::getA7();}
getA8t3::A101583 A8* getA8() {return A8::getA8();}
getA10t3::A101584 A10* getA10() {return this;}
1585 };
1586
1587 struct A11
1588 : public virtual A8,
1589 public A9
1590 {
1591 char _[6483];
~A11t3::A111592 virtual ~A11() {}
1593
getA1_3t3::A111594 A1* getA1_3() {return A8::getA1_3();}
getA1_4t3::A111595 A1* getA1_4() {return A8::getA1_4();}
getA1_6t3::A111596 A1* getA1_6() {return A8::getA1_6();}
getA1_9t3::A111597 A1* getA1_9() {return A9::getA1_9();}
getA2t3::A111598 A2* getA2() {return A8::getA2();}
getA3t3::A111599 A3* getA3() {return A8::getA3();}
getA4t3::A111600 A4* getA4() {return A8::getA4();}
getA5t3::A111601 A5* getA5() {return A8::getA5();}
getA6t3::A111602 A6* getA6() {return A8::getA6();}
getA7t3::A111603 A7* getA7() {return A8::getA7();}
getA8t3::A111604 A8* getA8() {return A8::getA8();}
getA9t3::A111605 A9* getA9() {return A9::getA9();}
getA11t3::A111606 A11* getA11() {return this;}
1607 };
1608
1609 struct A12
1610 : public A10,
1611 public A11
1612 {
1613 char _[2283];
~A12t3::A121614 virtual ~A12() {}
1615
getA1_3t3::A121616 A1* getA1_3() {return A10::getA1_3();}
getA1_4t3::A121617 A1* getA1_4() {return A10::getA1_4();}
getA1_6t3::A121618 A1* getA1_6() {return A10::getA1_6();}
getA1_9t3::A121619 A1* getA1_9() {return A11::getA1_9();}
getA2t3::A121620 A2* getA2() {return A10::getA2();}
getA3t3::A121621 A3* getA3() {return A10::getA3();}
getA4t3::A121622 A4* getA4() {return A10::getA4();}
getA5t3::A121623 A5* getA5() {return A10::getA5();}
getA6t3::A121624 A6* getA6() {return A10::getA6();}
getA7t3::A121625 A7* getA7() {return A10::getA7();}
getA8t3::A121626 A8* getA8() {return A10::getA8();}
getA9t3::A121627 A9* getA9() {return A11::getA9();}
getA10t3::A121628 A10* getA10() {return A10::getA10();}
getA11t3::A121629 A11* getA11() {return A11::getA11();}
getA12t3::A121630 A12* getA12() {return this;}
1631 };
1632
1633 struct A13
1634 : public A12
1635 {
1636 char _[1283];
~A13t3::A131637 virtual ~A13() {}
1638
getA1_3t3::A131639 A1* getA1_3() {return A12::getA1_3();}
getA1_4t3::A131640 A1* getA1_4() {return A12::getA1_4();}
getA1_6t3::A131641 A1* getA1_6() {return A12::getA1_6();}
getA1_9t3::A131642 A1* getA1_9() {return A12::getA1_9();}
getA2t3::A131643 A2* getA2() {return A12::getA2();}
getA3t3::A131644 A3* getA3() {return A12::getA3();}
getA4t3::A131645 A4* getA4() {return A12::getA4();}
getA5t3::A131646 A5* getA5() {return A12::getA5();}
getA6t3::A131647 A6* getA6() {return A12::getA6();}
getA7t3::A131648 A7* getA7() {return A12::getA7();}
getA8t3::A131649 A8* getA8() {return A12::getA8();}
getA9t3::A131650 A9* getA9() {return A12::getA9();}
getA10t3::A131651 A10* getA10() {return A12::getA10();}
getA11t3::A131652 A11* getA11() {return A12::getA11();}
getA12t3::A131653 A12* getA12() {return A12::getA12();}
getA13t3::A131654 A13* getA13() {return this;}
1655 };
1656
1657 A3 a3;
1658 A4 a4;
1659 A5 a5;
1660 A6 a6;
1661 A7 a7;
1662 A8 a8;
1663 A9 a9;
1664 A10 a10;
1665 A11 a11;
1666 A12 a12;
1667 A13 a13;
1668
test()1669 void test()
1670 {
1671 assert(dynamic_cast<A3*>(a3.getA1_3()) == a3.getA3());
1672 assert(dynamic_cast<A3*>(a3.getA2()) == 0);
1673
1674 assert(dynamic_cast<A3*>(a4.getA1_4()) == 0);
1675 assert(dynamic_cast<A3*>(a4.getA2()) == 0);
1676 assert(dynamic_cast<A4*>(a4.getA1_4()) == a4.getA4());
1677 assert(dynamic_cast<A4*>(a4.getA2()) == a4.getA4());
1678
1679 assert(dynamic_cast<A3*>(a5.getA1_3()) == a5.getA3());
1680 assert(dynamic_cast<A3*>(a5.getA2()) == a5.getA3());
1681
1682 assert(dynamic_cast<A4*>(a5.getA1_3()) == a5.getA4());
1683 assert(dynamic_cast<A4*>(a5.getA1_4()) == a5.getA4());
1684 assert(dynamic_cast<A4*>(a5.getA3()) == a5.getA4());
1685 assert(dynamic_cast<A4*>(a5.getA3()) == a5.getA4());
1686
1687 assert(dynamic_cast<A5*>(a5.getA1_3()) == a5.getA5());
1688 assert(dynamic_cast<A5*>(a5.getA1_4()) == a5.getA5());
1689 assert(dynamic_cast<A5*>(a5.getA3()) == a5.getA5());
1690 assert(dynamic_cast<A5*>(a5.getA3()) == a5.getA5());
1691 assert(dynamic_cast<A5*>(a5.getA3()) == a5.getA5());
1692 assert(dynamic_cast<A5*>(a5.getA4()) == a5.getA5());
1693
1694 assert(dynamic_cast<A3*>(a6.getA1_6()) == 0);
1695
1696 assert(dynamic_cast<A4*>(a6.getA1_6()) == 0);
1697
1698 assert(dynamic_cast<A5*>(a6.getA1_6()) == 0);
1699
1700 assert(dynamic_cast<A6*>(a6.getA1_6()) == a6.getA6());
1701
1702 assert(dynamic_cast<A3*>(a7.getA1_3()) == a7.getA3());
1703 assert(dynamic_cast<A3*>(a7.getA1_4()) == a7.getA3());
1704 assert(dynamic_cast<A3*>(a7.getA2()) == a7.getA3());
1705
1706 assert(dynamic_cast<A4*>(a7.getA1_3()) == a7.getA4());
1707 assert(dynamic_cast<A4*>(a7.getA1_4()) == a7.getA4());
1708 assert(dynamic_cast<A4*>(a7.getA2()) == a7.getA4());
1709 assert(dynamic_cast<A4*>(a7.getA3()) == a7.getA4());
1710
1711 assert(dynamic_cast<A5*>(a7.getA1_3()) == a7.getA5());
1712 assert(dynamic_cast<A5*>(a7.getA1_4()) == a7.getA5());
1713 assert(dynamic_cast<A5*>(a7.getA2()) == a7.getA5());
1714 assert(dynamic_cast<A5*>(a7.getA3()) == a7.getA5());
1715 assert(dynamic_cast<A5*>(a7.getA4()) == a7.getA5());
1716
1717 assert(dynamic_cast<A6*>(a7.getA1_3()) == a7.getA6());
1718 assert(dynamic_cast<A6*>(a7.getA1_4()) == a7.getA6());
1719 assert(dynamic_cast<A6*>(a7.getA1_6()) == a7.getA6());
1720 assert(dynamic_cast<A6*>(a7.getA2()) == a7.getA6());
1721 assert(dynamic_cast<A6*>(a7.getA3()) == a7.getA6());
1722 assert(dynamic_cast<A6*>(a7.getA4()) == a7.getA6());
1723 assert(dynamic_cast<A6*>(a7.getA5()) == a7.getA6());
1724
1725 assert(dynamic_cast<A7*>(a7.getA1_3()) == a7.getA7());
1726 assert(dynamic_cast<A7*>(a7.getA1_4()) == a7.getA7());
1727 assert(dynamic_cast<A7*>(a7.getA1_6()) == a7.getA7());
1728 assert(dynamic_cast<A7*>(a7.getA2()) == a7.getA7());
1729 assert(dynamic_cast<A7*>(a7.getA3()) == a7.getA7());
1730 assert(dynamic_cast<A7*>(a7.getA4()) == a7.getA7());
1731 assert(dynamic_cast<A7*>(a7.getA5()) == a7.getA7());
1732 assert(dynamic_cast<A7*>(a7.getA6()) == a7.getA7());
1733
1734 assert(dynamic_cast<A3*>(a8.getA1_3()) == a8.getA3());
1735 assert(dynamic_cast<A3*>(a8.getA1_4()) == a8.getA3());
1736 assert(dynamic_cast<A3*>(a8.getA2()) == a8.getA3());
1737
1738 assert(dynamic_cast<A4*>(a8.getA1_3()) == a8.getA4());
1739 assert(dynamic_cast<A4*>(a8.getA1_4()) == a8.getA4());
1740 assert(dynamic_cast<A4*>(a8.getA2()) == a8.getA4());
1741 assert(dynamic_cast<A4*>(a8.getA3()) == a8.getA4());
1742
1743 assert(dynamic_cast<A5*>(a8.getA1_3()) == a8.getA5());
1744 assert(dynamic_cast<A5*>(a8.getA1_4()) == a8.getA5());
1745 assert(dynamic_cast<A5*>(a8.getA2()) == a8.getA5());
1746 assert(dynamic_cast<A5*>(a8.getA3()) == a8.getA5());
1747 assert(dynamic_cast<A5*>(a8.getA4()) == a8.getA5());
1748
1749 assert(dynamic_cast<A6*>(a8.getA1_3()) == a8.getA6());
1750 assert(dynamic_cast<A6*>(a8.getA1_4()) == a8.getA6());
1751 assert(dynamic_cast<A6*>(a8.getA1_6()) == a8.getA6());
1752 assert(dynamic_cast<A6*>(a8.getA2()) == a8.getA6());
1753 assert(dynamic_cast<A6*>(a8.getA3()) == a8.getA6());
1754 assert(dynamic_cast<A6*>(a8.getA4()) == a8.getA6());
1755 assert(dynamic_cast<A6*>(a8.getA5()) == a8.getA6());
1756
1757 assert(dynamic_cast<A7*>(a8.getA1_3()) == a8.getA7());
1758 assert(dynamic_cast<A7*>(a8.getA1_4()) == a8.getA7());
1759 assert(dynamic_cast<A7*>(a8.getA1_6()) == a8.getA7());
1760 assert(dynamic_cast<A7*>(a8.getA2()) == a8.getA7());
1761 assert(dynamic_cast<A7*>(a8.getA3()) == a8.getA7());
1762 assert(dynamic_cast<A7*>(a8.getA4()) == a8.getA7());
1763 assert(dynamic_cast<A7*>(a8.getA5()) == a8.getA7());
1764 assert(dynamic_cast<A7*>(a8.getA6()) == a8.getA7());
1765
1766 assert(dynamic_cast<A8*>(a8.getA1_3()) == a8.getA8());
1767 assert(dynamic_cast<A8*>(a8.getA1_4()) == a8.getA8());
1768 assert(dynamic_cast<A8*>(a8.getA1_6()) == a8.getA8());
1769 assert(dynamic_cast<A8*>(a8.getA2()) == a8.getA8());
1770 assert(dynamic_cast<A8*>(a8.getA3()) == a8.getA8());
1771 assert(dynamic_cast<A8*>(a8.getA4()) == a8.getA8());
1772 assert(dynamic_cast<A8*>(a8.getA5()) == a8.getA8());
1773 assert(dynamic_cast<A8*>(a8.getA6()) == a8.getA8());
1774 assert(dynamic_cast<A8*>(a8.getA7()) == a8.getA8());
1775
1776 assert(dynamic_cast<A3*>(a9.getA1_9()) == 0);
1777
1778 assert(dynamic_cast<A4*>(a9.getA1_9()) == 0);
1779
1780 assert(dynamic_cast<A5*>(a9.getA1_9()) == 0);
1781
1782 assert(dynamic_cast<A6*>(a9.getA1_9()) == 0);
1783
1784 assert(dynamic_cast<A7*>(a9.getA1_9()) == 0);
1785
1786 assert(dynamic_cast<A8*>(a9.getA1_9()) == 0);
1787
1788 assert(dynamic_cast<A9*>(a9.getA1_9()) == a9.getA9());
1789
1790 assert(dynamic_cast<A3*>(a10.getA1_3()) == a10.getA3());
1791 assert(dynamic_cast<A3*>(a10.getA1_4()) == a10.getA3());
1792 assert(dynamic_cast<A3*>(a10.getA1_6()) == a10.getA3());
1793 assert(dynamic_cast<A3*>(a10.getA2()) == a10.getA3());
1794
1795 assert(dynamic_cast<A4*>(a10.getA1_3()) == a10.getA4());
1796 assert(dynamic_cast<A4*>(a10.getA1_4()) == a10.getA4());
1797 assert(dynamic_cast<A4*>(a10.getA1_6()) == a10.getA4());
1798 assert(dynamic_cast<A4*>(a10.getA2()) == a10.getA4());
1799 assert(dynamic_cast<A4*>(a10.getA3()) == a10.getA4());
1800
1801 assert(dynamic_cast<A5*>(a10.getA1_3()) == a10.getA5());
1802 assert(dynamic_cast<A5*>(a10.getA1_4()) == a10.getA5());
1803 assert(dynamic_cast<A5*>(a10.getA1_6()) == a10.getA5());
1804 assert(dynamic_cast<A5*>(a10.getA2()) == a10.getA5());
1805 assert(dynamic_cast<A5*>(a10.getA3()) == a10.getA5());
1806 assert(dynamic_cast<A5*>(a10.getA4()) == a10.getA5());
1807
1808 assert(dynamic_cast<A6*>(a10.getA1_3()) == a10.getA6());
1809 assert(dynamic_cast<A6*>(a10.getA1_4()) == a10.getA6());
1810 assert(dynamic_cast<A6*>(a10.getA1_6()) == a10.getA6());
1811 assert(dynamic_cast<A6*>(a10.getA2()) == a10.getA6());
1812 assert(dynamic_cast<A6*>(a10.getA3()) == a10.getA6());
1813 assert(dynamic_cast<A6*>(a10.getA4()) == a10.getA6());
1814 assert(dynamic_cast<A6*>(a10.getA5()) == a10.getA6());
1815
1816 assert(dynamic_cast<A7*>(a10.getA1_3()) == a10.getA7());
1817 assert(dynamic_cast<A7*>(a10.getA1_4()) == a10.getA7());
1818 assert(dynamic_cast<A7*>(a10.getA1_6()) == a10.getA7());
1819 assert(dynamic_cast<A7*>(a10.getA2()) == a10.getA7());
1820 assert(dynamic_cast<A7*>(a10.getA3()) == a10.getA7());
1821 assert(dynamic_cast<A7*>(a10.getA4()) == a10.getA7());
1822 assert(dynamic_cast<A7*>(a10.getA5()) == a10.getA7());
1823 assert(dynamic_cast<A7*>(a10.getA6()) == a10.getA7());
1824
1825 assert(dynamic_cast<A8*>(a10.getA1_3()) == a10.getA8());
1826 assert(dynamic_cast<A8*>(a10.getA1_4()) == a10.getA8());
1827 assert(dynamic_cast<A8*>(a10.getA1_6()) == a10.getA8());
1828 assert(dynamic_cast<A8*>(a10.getA2()) == a10.getA8());
1829 assert(dynamic_cast<A8*>(a10.getA3()) == a10.getA8());
1830 assert(dynamic_cast<A8*>(a10.getA4()) == a10.getA8());
1831 assert(dynamic_cast<A8*>(a10.getA5()) == a10.getA8());
1832 assert(dynamic_cast<A8*>(a10.getA6()) == a10.getA8());
1833 assert(dynamic_cast<A8*>(a10.getA7()) == a10.getA8());
1834
1835 assert(dynamic_cast<A9*>(a10.getA1_3()) == 0);
1836 assert(dynamic_cast<A9*>(a10.getA1_4()) == 0);
1837 assert(dynamic_cast<A9*>(a10.getA1_6()) == 0);
1838 assert(dynamic_cast<A9*>(a10.getA2()) == 0);
1839 assert(dynamic_cast<A9*>(a10.getA3()) == 0);
1840 assert(dynamic_cast<A9*>(a10.getA4()) == 0);
1841 assert(dynamic_cast<A9*>(a10.getA5()) == 0);
1842 assert(dynamic_cast<A9*>(a10.getA6()) == 0);
1843 assert(dynamic_cast<A9*>(a10.getA7()) == 0);
1844 assert(dynamic_cast<A9*>(a10.getA8()) == 0);
1845
1846 assert(dynamic_cast<A10*>(a10.getA1_3()) == a10.getA10());
1847 assert(dynamic_cast<A10*>(a10.getA1_4()) == a10.getA10());
1848 assert(dynamic_cast<A10*>(a10.getA1_6()) == a10.getA10());
1849 assert(dynamic_cast<A10*>(a10.getA2()) == a10.getA10());
1850 assert(dynamic_cast<A10*>(a10.getA3()) == a10.getA10());
1851 assert(dynamic_cast<A10*>(a10.getA4()) == a10.getA10());
1852 assert(dynamic_cast<A10*>(a10.getA5()) == a10.getA10());
1853 assert(dynamic_cast<A10*>(a10.getA6()) == a10.getA10());
1854 assert(dynamic_cast<A10*>(a10.getA7()) == a10.getA10());
1855 assert(dynamic_cast<A10*>(a10.getA8()) == a10.getA10());
1856
1857 assert(dynamic_cast<A3*>(a11.getA1_3()) == a11.getA3());
1858 assert(dynamic_cast<A3*>(a11.getA1_4()) == a11.getA3());
1859 assert(dynamic_cast<A3*>(a11.getA1_6()) == a11.getA3());
1860 assert(dynamic_cast<A3*>(a11.getA1_9()) == a11.getA3());
1861 assert(dynamic_cast<A3*>(a11.getA2()) == a11.getA3());
1862
1863 assert(dynamic_cast<A4*>(a11.getA1_3()) == a11.getA4());
1864 assert(dynamic_cast<A4*>(a11.getA1_4()) == a11.getA4());
1865 assert(dynamic_cast<A4*>(a11.getA1_6()) == a11.getA4());
1866 assert(dynamic_cast<A4*>(a11.getA1_9()) == a11.getA4());
1867 assert(dynamic_cast<A4*>(a11.getA2()) == a11.getA4());
1868 assert(dynamic_cast<A4*>(a11.getA3()) == a11.getA4());
1869
1870 assert(dynamic_cast<A5*>(a11.getA1_3()) == a11.getA5());
1871 assert(dynamic_cast<A5*>(a11.getA1_4()) == a11.getA5());
1872 assert(dynamic_cast<A5*>(a11.getA1_6()) == a11.getA5());
1873 assert(dynamic_cast<A5*>(a11.getA1_9()) == a11.getA5());
1874 assert(dynamic_cast<A5*>(a11.getA2()) == a11.getA5());
1875 assert(dynamic_cast<A5*>(a11.getA3()) == a11.getA5());
1876 assert(dynamic_cast<A5*>(a11.getA4()) == a11.getA5());
1877
1878 assert(dynamic_cast<A6*>(a11.getA1_3()) == a11.getA6());
1879 assert(dynamic_cast<A6*>(a11.getA1_4()) == a11.getA6());
1880 assert(dynamic_cast<A6*>(a11.getA1_6()) == a11.getA6());
1881 assert(dynamic_cast<A6*>(a11.getA1_9()) == a11.getA6());
1882 assert(dynamic_cast<A6*>(a11.getA2()) == a11.getA6());
1883 assert(dynamic_cast<A6*>(a11.getA3()) == a11.getA6());
1884 assert(dynamic_cast<A6*>(a11.getA4()) == a11.getA6());
1885 assert(dynamic_cast<A6*>(a11.getA5()) == a11.getA6());
1886
1887 assert(dynamic_cast<A7*>(a11.getA1_3()) == a11.getA7());
1888 assert(dynamic_cast<A7*>(a11.getA1_4()) == a11.getA7());
1889 assert(dynamic_cast<A7*>(a11.getA1_6()) == a11.getA7());
1890 assert(dynamic_cast<A7*>(a11.getA1_9()) == a11.getA7());
1891 assert(dynamic_cast<A7*>(a11.getA2()) == a11.getA7());
1892 assert(dynamic_cast<A7*>(a11.getA3()) == a11.getA7());
1893 assert(dynamic_cast<A7*>(a11.getA4()) == a11.getA7());
1894 assert(dynamic_cast<A7*>(a11.getA5()) == a11.getA7());
1895 assert(dynamic_cast<A7*>(a11.getA6()) == a11.getA7());
1896
1897 assert(dynamic_cast<A8*>(a11.getA1_3()) == a11.getA8());
1898 assert(dynamic_cast<A8*>(a11.getA1_4()) == a11.getA8());
1899 assert(dynamic_cast<A8*>(a11.getA1_6()) == a11.getA8());
1900 assert(dynamic_cast<A8*>(a11.getA1_9()) == a11.getA8());
1901 assert(dynamic_cast<A8*>(a11.getA2()) == a11.getA8());
1902 assert(dynamic_cast<A8*>(a11.getA3()) == a11.getA8());
1903 assert(dynamic_cast<A8*>(a11.getA4()) == a11.getA8());
1904 assert(dynamic_cast<A8*>(a11.getA5()) == a11.getA8());
1905 assert(dynamic_cast<A8*>(a11.getA6()) == a11.getA8());
1906 assert(dynamic_cast<A8*>(a11.getA7()) == a11.getA8());
1907
1908 assert(dynamic_cast<A9*>(a11.getA1_3()) == a11.getA9());
1909 assert(dynamic_cast<A9*>(a11.getA1_4()) == a11.getA9());
1910 assert(dynamic_cast<A9*>(a11.getA1_6()) == a11.getA9());
1911 assert(dynamic_cast<A9*>(a11.getA1_9()) == a11.getA9());
1912 assert(dynamic_cast<A9*>(a11.getA2()) == a11.getA9());
1913 assert(dynamic_cast<A9*>(a11.getA3()) == a11.getA9());
1914 assert(dynamic_cast<A9*>(a11.getA4()) == a11.getA9());
1915 assert(dynamic_cast<A9*>(a11.getA5()) == a11.getA9());
1916 assert(dynamic_cast<A9*>(a11.getA6()) == a11.getA9());
1917 assert(dynamic_cast<A9*>(a11.getA7()) == a11.getA9());
1918 assert(dynamic_cast<A9*>(a11.getA8()) == a11.getA9());
1919
1920 assert(dynamic_cast<A10*>(a11.getA1_3()) == 0);
1921 assert(dynamic_cast<A10*>(a11.getA1_4()) == 0);
1922 assert(dynamic_cast<A10*>(a11.getA1_6()) == 0);
1923 assert(dynamic_cast<A10*>(a11.getA1_9()) == 0);
1924 assert(dynamic_cast<A10*>(a11.getA2()) == 0);
1925 assert(dynamic_cast<A10*>(a11.getA3()) == 0);
1926 assert(dynamic_cast<A10*>(a11.getA4()) == 0);
1927 assert(dynamic_cast<A10*>(a11.getA5()) == 0);
1928 assert(dynamic_cast<A10*>(a11.getA6()) == 0);
1929 assert(dynamic_cast<A10*>(a11.getA7()) == 0);
1930 assert(dynamic_cast<A10*>(a11.getA8()) == 0);
1931 assert(dynamic_cast<A10*>(a11.getA9()) == 0);
1932
1933 assert(dynamic_cast<A11*>(a11.getA1_3()) == a11.getA11());
1934 assert(dynamic_cast<A11*>(a11.getA1_4()) == a11.getA11());
1935 assert(dynamic_cast<A11*>(a11.getA1_6()) == a11.getA11());
1936 assert(dynamic_cast<A11*>(a11.getA1_9()) == a11.getA11());
1937 assert(dynamic_cast<A11*>(a11.getA2()) == a11.getA11());
1938 assert(dynamic_cast<A11*>(a11.getA3()) == a11.getA11());
1939 assert(dynamic_cast<A11*>(a11.getA4()) == a11.getA11());
1940 assert(dynamic_cast<A11*>(a11.getA5()) == a11.getA11());
1941 assert(dynamic_cast<A11*>(a11.getA6()) == a11.getA11());
1942 assert(dynamic_cast<A11*>(a11.getA7()) == a11.getA11());
1943 assert(dynamic_cast<A11*>(a11.getA8()) == a11.getA11());
1944 assert(dynamic_cast<A11*>(a11.getA9()) == a11.getA11());
1945
1946 assert(dynamic_cast<A3*>(a12.getA1_3()) == a12.getA3());
1947 assert(dynamic_cast<A3*>(a12.getA1_4()) == a12.getA3());
1948 assert(dynamic_cast<A3*>(a12.getA1_6()) == a12.getA3());
1949 assert(dynamic_cast<A3*>(a12.getA1_9()) == a12.getA3());
1950 assert(dynamic_cast<A3*>(a12.getA2()) == a12.getA3());
1951
1952 assert(dynamic_cast<A4*>(a12.getA1_3()) == a12.getA4());
1953 assert(dynamic_cast<A4*>(a12.getA1_4()) == a12.getA4());
1954 assert(dynamic_cast<A4*>(a12.getA1_6()) == a12.getA4());
1955 assert(dynamic_cast<A4*>(a12.getA1_9()) == a12.getA4());
1956 assert(dynamic_cast<A4*>(a12.getA2()) == a12.getA4());
1957 assert(dynamic_cast<A4*>(a12.getA3()) == a12.getA4());
1958
1959 assert(dynamic_cast<A5*>(a12.getA1_3()) == a12.getA5());
1960 assert(dynamic_cast<A5*>(a12.getA1_4()) == a12.getA5());
1961 assert(dynamic_cast<A5*>(a12.getA1_6()) == a12.getA5());
1962 assert(dynamic_cast<A5*>(a12.getA1_9()) == a12.getA5());
1963 assert(dynamic_cast<A5*>(a12.getA2()) == a12.getA5());
1964 assert(dynamic_cast<A5*>(a12.getA3()) == a12.getA5());
1965 assert(dynamic_cast<A5*>(a12.getA4()) == a12.getA5());
1966
1967 assert(dynamic_cast<A6*>(a12.getA1_3()) == a12.getA6());
1968 assert(dynamic_cast<A6*>(a12.getA1_4()) == a12.getA6());
1969 assert(dynamic_cast<A6*>(a12.getA1_6()) == a12.getA6());
1970 assert(dynamic_cast<A6*>(a12.getA1_9()) == a12.getA6());
1971 assert(dynamic_cast<A6*>(a12.getA2()) == a12.getA6());
1972 assert(dynamic_cast<A6*>(a12.getA3()) == a12.getA6());
1973 assert(dynamic_cast<A6*>(a12.getA4()) == a12.getA6());
1974 assert(dynamic_cast<A6*>(a12.getA5()) == a12.getA6());
1975
1976 assert(dynamic_cast<A7*>(a12.getA1_3()) == a12.getA7());
1977 assert(dynamic_cast<A7*>(a12.getA1_4()) == a12.getA7());
1978 assert(dynamic_cast<A7*>(a12.getA1_6()) == a12.getA7());
1979 assert(dynamic_cast<A7*>(a12.getA1_9()) == a12.getA7());
1980 assert(dynamic_cast<A7*>(a12.getA2()) == a12.getA7());
1981 assert(dynamic_cast<A7*>(a12.getA3()) == a12.getA7());
1982 assert(dynamic_cast<A7*>(a12.getA4()) == a12.getA7());
1983 assert(dynamic_cast<A7*>(a12.getA5()) == a12.getA7());
1984 assert(dynamic_cast<A7*>(a12.getA6()) == a12.getA7());
1985
1986 assert(dynamic_cast<A8*>(a12.getA1_3()) == a12.getA8());
1987 assert(dynamic_cast<A8*>(a12.getA1_4()) == a12.getA8());
1988 assert(dynamic_cast<A8*>(a12.getA1_6()) == a12.getA8());
1989 assert(dynamic_cast<A8*>(a12.getA1_9()) == a12.getA8());
1990 assert(dynamic_cast<A8*>(a12.getA2()) == a12.getA8());
1991 assert(dynamic_cast<A8*>(a12.getA3()) == a12.getA8());
1992 assert(dynamic_cast<A8*>(a12.getA4()) == a12.getA8());
1993 assert(dynamic_cast<A8*>(a12.getA5()) == a12.getA8());
1994 assert(dynamic_cast<A8*>(a12.getA6()) == a12.getA8());
1995 assert(dynamic_cast<A8*>(a12.getA7()) == a12.getA8());
1996
1997 assert(dynamic_cast<A9*>(a12.getA1_3()) == a12.getA9());
1998 assert(dynamic_cast<A9*>(a12.getA1_4()) == a12.getA9());
1999 assert(dynamic_cast<A9*>(a12.getA1_6()) == a12.getA9());
2000 assert(dynamic_cast<A9*>(a12.getA1_9()) == a12.getA9());
2001 assert(dynamic_cast<A9*>(a12.getA2()) == a12.getA9());
2002 assert(dynamic_cast<A9*>(a12.getA3()) == a12.getA9());
2003 assert(dynamic_cast<A9*>(a12.getA4()) == a12.getA9());
2004 assert(dynamic_cast<A9*>(a12.getA5()) == a12.getA9());
2005 assert(dynamic_cast<A9*>(a12.getA6()) == a12.getA9());
2006 assert(dynamic_cast<A9*>(a12.getA7()) == a12.getA9());
2007 assert(dynamic_cast<A9*>(a12.getA8()) == a12.getA9());
2008
2009 assert(dynamic_cast<A10*>(a12.getA1_3()) == a12.getA10());
2010 assert(dynamic_cast<A10*>(a12.getA1_4()) == a12.getA10());
2011 assert(dynamic_cast<A10*>(a12.getA1_6()) == a12.getA10());
2012 assert(dynamic_cast<A10*>(a12.getA1_9()) == a12.getA10());
2013 assert(dynamic_cast<A10*>(a12.getA2()) == a12.getA10());
2014 assert(dynamic_cast<A10*>(a12.getA3()) == a12.getA10());
2015 assert(dynamic_cast<A10*>(a12.getA4()) == a12.getA10());
2016 assert(dynamic_cast<A10*>(a12.getA5()) == a12.getA10());
2017 assert(dynamic_cast<A10*>(a12.getA6()) == a12.getA10());
2018 assert(dynamic_cast<A10*>(a12.getA7()) == a12.getA10());
2019 assert(dynamic_cast<A10*>(a12.getA8()) == a12.getA10());
2020 assert(dynamic_cast<A10*>(a12.getA9()) == a12.getA10());
2021
2022 assert(dynamic_cast<A11*>(a12.getA1_3()) == a12.getA11());
2023 assert(dynamic_cast<A11*>(a12.getA1_4()) == a12.getA11());
2024 assert(dynamic_cast<A11*>(a12.getA1_6()) == a12.getA11());
2025 assert(dynamic_cast<A11*>(a12.getA1_9()) == a12.getA11());
2026 assert(dynamic_cast<A11*>(a12.getA2()) == a12.getA11());
2027 assert(dynamic_cast<A11*>(a12.getA3()) == a12.getA11());
2028 assert(dynamic_cast<A11*>(a12.getA4()) == a12.getA11());
2029 assert(dynamic_cast<A11*>(a12.getA5()) == a12.getA11());
2030 assert(dynamic_cast<A11*>(a12.getA6()) == a12.getA11());
2031 assert(dynamic_cast<A11*>(a12.getA7()) == a12.getA11());
2032 assert(dynamic_cast<A11*>(a12.getA8()) == a12.getA11());
2033 assert(dynamic_cast<A11*>(a12.getA9()) == a12.getA11());
2034 assert(dynamic_cast<A11*>(a12.getA10()) == a12.getA11());
2035
2036 assert(dynamic_cast<A12*>(a12.getA1_3()) == a12.getA12());
2037 assert(dynamic_cast<A12*>(a12.getA1_4()) == a12.getA12());
2038 assert(dynamic_cast<A12*>(a12.getA1_6()) == a12.getA12());
2039 assert(dynamic_cast<A12*>(a12.getA1_9()) == a12.getA12());
2040 assert(dynamic_cast<A12*>(a12.getA2()) == a12.getA12());
2041 assert(dynamic_cast<A12*>(a12.getA3()) == a12.getA12());
2042 assert(dynamic_cast<A12*>(a12.getA4()) == a12.getA12());
2043 assert(dynamic_cast<A12*>(a12.getA5()) == a12.getA12());
2044 assert(dynamic_cast<A12*>(a12.getA6()) == a12.getA12());
2045 assert(dynamic_cast<A12*>(a12.getA7()) == a12.getA12());
2046 assert(dynamic_cast<A12*>(a12.getA8()) == a12.getA12());
2047 assert(dynamic_cast<A12*>(a12.getA9()) == a12.getA12());
2048 assert(dynamic_cast<A12*>(a12.getA10()) == a12.getA12());
2049 assert(dynamic_cast<A12*>(a12.getA11()) == a12.getA12());
2050
2051 assert(dynamic_cast<A3*>(a13.getA1_3()) == a13.getA3());
2052 assert(dynamic_cast<A3*>(a13.getA1_4()) == a13.getA3());
2053 assert(dynamic_cast<A3*>(a13.getA1_6()) == a13.getA3());
2054 assert(dynamic_cast<A3*>(a13.getA1_9()) == a13.getA3());
2055 assert(dynamic_cast<A3*>(a13.getA2()) == a13.getA3());
2056
2057 assert(dynamic_cast<A4*>(a13.getA1_3()) == a13.getA4());
2058 assert(dynamic_cast<A4*>(a13.getA1_4()) == a13.getA4());
2059 assert(dynamic_cast<A4*>(a13.getA1_6()) == a13.getA4());
2060 assert(dynamic_cast<A4*>(a13.getA1_9()) == a13.getA4());
2061 assert(dynamic_cast<A4*>(a13.getA2()) == a13.getA4());
2062 assert(dynamic_cast<A4*>(a13.getA3()) == a13.getA4());
2063
2064 assert(dynamic_cast<A5*>(a13.getA1_3()) == a13.getA5());
2065 assert(dynamic_cast<A5*>(a13.getA1_4()) == a13.getA5());
2066 assert(dynamic_cast<A5*>(a13.getA1_6()) == a13.getA5());
2067 assert(dynamic_cast<A5*>(a13.getA1_9()) == a13.getA5());
2068 assert(dynamic_cast<A5*>(a13.getA2()) == a13.getA5());
2069 assert(dynamic_cast<A5*>(a13.getA3()) == a13.getA5());
2070 assert(dynamic_cast<A5*>(a13.getA4()) == a13.getA5());
2071
2072 assert(dynamic_cast<A6*>(a13.getA1_3()) == a13.getA6());
2073 assert(dynamic_cast<A6*>(a13.getA1_4()) == a13.getA6());
2074 assert(dynamic_cast<A6*>(a13.getA1_6()) == a13.getA6());
2075 assert(dynamic_cast<A6*>(a13.getA1_9()) == a13.getA6());
2076 assert(dynamic_cast<A6*>(a13.getA2()) == a13.getA6());
2077 assert(dynamic_cast<A6*>(a13.getA3()) == a13.getA6());
2078 assert(dynamic_cast<A6*>(a13.getA4()) == a13.getA6());
2079 assert(dynamic_cast<A6*>(a13.getA5()) == a13.getA6());
2080
2081 assert(dynamic_cast<A7*>(a13.getA1_3()) == a13.getA7());
2082 assert(dynamic_cast<A7*>(a13.getA1_4()) == a13.getA7());
2083 assert(dynamic_cast<A7*>(a13.getA1_6()) == a13.getA7());
2084 assert(dynamic_cast<A7*>(a13.getA1_9()) == a13.getA7());
2085 assert(dynamic_cast<A7*>(a13.getA2()) == a13.getA7());
2086 assert(dynamic_cast<A7*>(a13.getA3()) == a13.getA7());
2087 assert(dynamic_cast<A7*>(a13.getA4()) == a13.getA7());
2088 assert(dynamic_cast<A7*>(a13.getA5()) == a13.getA7());
2089 assert(dynamic_cast<A7*>(a13.getA6()) == a13.getA7());
2090
2091 assert(dynamic_cast<A8*>(a13.getA1_3()) == a13.getA8());
2092 assert(dynamic_cast<A8*>(a13.getA1_4()) == a13.getA8());
2093 assert(dynamic_cast<A8*>(a13.getA1_6()) == a13.getA8());
2094 assert(dynamic_cast<A8*>(a13.getA1_9()) == a13.getA8());
2095 assert(dynamic_cast<A8*>(a13.getA2()) == a13.getA8());
2096 assert(dynamic_cast<A8*>(a13.getA3()) == a13.getA8());
2097 assert(dynamic_cast<A8*>(a13.getA4()) == a13.getA8());
2098 assert(dynamic_cast<A8*>(a13.getA5()) == a13.getA8());
2099 assert(dynamic_cast<A8*>(a13.getA6()) == a13.getA8());
2100 assert(dynamic_cast<A8*>(a13.getA7()) == a13.getA8());
2101
2102 assert(dynamic_cast<A9*>(a13.getA1_3()) == a13.getA9());
2103 assert(dynamic_cast<A9*>(a13.getA1_4()) == a13.getA9());
2104 assert(dynamic_cast<A9*>(a13.getA1_6()) == a13.getA9());
2105 assert(dynamic_cast<A9*>(a13.getA1_9()) == a13.getA9());
2106 assert(dynamic_cast<A9*>(a13.getA2()) == a13.getA9());
2107 assert(dynamic_cast<A9*>(a13.getA3()) == a13.getA9());
2108 assert(dynamic_cast<A9*>(a13.getA4()) == a13.getA9());
2109 assert(dynamic_cast<A9*>(a13.getA5()) == a13.getA9());
2110 assert(dynamic_cast<A9*>(a13.getA6()) == a13.getA9());
2111 assert(dynamic_cast<A9*>(a13.getA7()) == a13.getA9());
2112 assert(dynamic_cast<A9*>(a13.getA8()) == a13.getA9());
2113
2114 assert(dynamic_cast<A10*>(a13.getA1_3()) == a13.getA10());
2115 assert(dynamic_cast<A10*>(a13.getA1_4()) == a13.getA10());
2116 assert(dynamic_cast<A10*>(a13.getA1_6()) == a13.getA10());
2117 assert(dynamic_cast<A10*>(a13.getA1_9()) == a13.getA10());
2118 assert(dynamic_cast<A10*>(a13.getA2()) == a13.getA10());
2119 assert(dynamic_cast<A10*>(a13.getA3()) == a13.getA10());
2120 assert(dynamic_cast<A10*>(a13.getA4()) == a13.getA10());
2121 assert(dynamic_cast<A10*>(a13.getA5()) == a13.getA10());
2122 assert(dynamic_cast<A10*>(a13.getA6()) == a13.getA10());
2123 assert(dynamic_cast<A10*>(a13.getA7()) == a13.getA10());
2124 assert(dynamic_cast<A10*>(a13.getA8()) == a13.getA10());
2125 assert(dynamic_cast<A10*>(a13.getA9()) == a13.getA10());
2126
2127 assert(dynamic_cast<A11*>(a13.getA1_3()) == a13.getA11());
2128 assert(dynamic_cast<A11*>(a13.getA1_4()) == a13.getA11());
2129 assert(dynamic_cast<A11*>(a13.getA1_6()) == a13.getA11());
2130 assert(dynamic_cast<A11*>(a13.getA1_9()) == a13.getA11());
2131 assert(dynamic_cast<A11*>(a13.getA2()) == a13.getA11());
2132 assert(dynamic_cast<A11*>(a13.getA3()) == a13.getA11());
2133 assert(dynamic_cast<A11*>(a13.getA4()) == a13.getA11());
2134 assert(dynamic_cast<A11*>(a13.getA5()) == a13.getA11());
2135 assert(dynamic_cast<A11*>(a13.getA6()) == a13.getA11());
2136 assert(dynamic_cast<A11*>(a13.getA7()) == a13.getA11());
2137 assert(dynamic_cast<A11*>(a13.getA8()) == a13.getA11());
2138 assert(dynamic_cast<A11*>(a13.getA9()) == a13.getA11());
2139 assert(dynamic_cast<A11*>(a13.getA10()) == a13.getA11());
2140
2141 assert(dynamic_cast<A12*>(a13.getA1_3()) == a13.getA12());
2142 assert(dynamic_cast<A12*>(a13.getA1_4()) == a13.getA12());
2143 assert(dynamic_cast<A12*>(a13.getA1_6()) == a13.getA12());
2144 assert(dynamic_cast<A12*>(a13.getA1_9()) == a13.getA12());
2145 assert(dynamic_cast<A12*>(a13.getA2()) == a13.getA12());
2146 assert(dynamic_cast<A12*>(a13.getA3()) == a13.getA12());
2147 assert(dynamic_cast<A12*>(a13.getA4()) == a13.getA12());
2148 assert(dynamic_cast<A12*>(a13.getA5()) == a13.getA12());
2149 assert(dynamic_cast<A12*>(a13.getA6()) == a13.getA12());
2150 assert(dynamic_cast<A12*>(a13.getA7()) == a13.getA12());
2151 assert(dynamic_cast<A12*>(a13.getA8()) == a13.getA12());
2152 assert(dynamic_cast<A12*>(a13.getA9()) == a13.getA12());
2153 assert(dynamic_cast<A12*>(a13.getA10()) == a13.getA12());
2154 assert(dynamic_cast<A12*>(a13.getA11()) == a13.getA12());
2155
2156 assert(dynamic_cast<A13*>(a13.getA1_3()) == a13.getA13());
2157 assert(dynamic_cast<A13*>(a13.getA1_4()) == a13.getA13());
2158 assert(dynamic_cast<A13*>(a13.getA1_6()) == a13.getA13());
2159 assert(dynamic_cast<A13*>(a13.getA1_9()) == a13.getA13());
2160 assert(dynamic_cast<A13*>(a13.getA2()) == a13.getA13());
2161 assert(dynamic_cast<A13*>(a13.getA3()) == a13.getA13());
2162 assert(dynamic_cast<A13*>(a13.getA4()) == a13.getA13());
2163 assert(dynamic_cast<A13*>(a13.getA5()) == a13.getA13());
2164 assert(dynamic_cast<A13*>(a13.getA6()) == a13.getA13());
2165 assert(dynamic_cast<A13*>(a13.getA7()) == a13.getA13());
2166 assert(dynamic_cast<A13*>(a13.getA8()) == a13.getA13());
2167 assert(dynamic_cast<A13*>(a13.getA9()) == a13.getA13());
2168 assert(dynamic_cast<A13*>(a13.getA10()) == a13.getA13());
2169 assert(dynamic_cast<A13*>(a13.getA11()) == a13.getA13());
2170 assert(dynamic_cast<A13*>(a13.getA12()) == a13.getA13());
2171 }
2172
2173 } // t3
2174
main(int,char **)2175 int main(int, char**)
2176 {
2177 timer t;
2178 t1::test();
2179 t2::test();
2180 t3::test();
2181
2182 return 0;
2183 }
2184