1//===----------------------------------------------------------------------===//
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
12namespace t1
13{
14
15struct A1
16{
17 char _[43981];
18 virtual ~A1() {}
19
20 A1* getA1() {return this;}
21};
22
23struct A2
24{
25 char _[34981];
26 virtual ~A2() {}
27
28 A2* getA2() {return this;}
29};
30
31struct A3
32 : public A1,
33 public virtual A2
34{
35 char _[93481];
36 virtual ~A3() {}
37
38 A1* getA1_3() {return A1::getA1();}
39 A2* getA2() {return A2::getA2();}
40 A3* getA3() {return this;}
41};
42
43struct A4
44 : public virtual A2,
45 public A1
46{
47 char _[13489];
48 virtual ~A4() {}
49
50 A1* getA1_4() {return A1::getA1();}
51 A2* getA2() {return A2::getA2();}
52 A4* getA4() {return this;}
53};
54
55struct A5
56 : public A3,
57 public A4
58{
59 char _[13489];
60 virtual ~A5() {}
61
62 A1* getA1_3() {return A3::getA1();}
63 A1* getA1_4() {return A4::getA1();}
64 A2* getA2() {return A3::getA2();}
65 A3* getA3() {return A3::getA3();}
66 A4* getA4() {return A4::getA4();}
67 A5* getA5() {return this;}
68};
69
70struct A6
71 : public A1
72{
73 char _[81349];
74 virtual ~A6() {}
75
76 A1* getA1_6() {return A1::getA1();}
77 A6* getA6() {return this;}
78};
79
80struct A7
81 : public A5,
82 public A6
83{
84 char _[34819];
85 virtual ~A7() {}
86
87 A1* getA1_3() {return A5::getA1_3();}
88 A1* getA1_4() {return A5::getA1_4();}
89 A1* getA1_6() {return A6::getA1_6();}
90 A2* getA2() {return A5::getA2();}
91 A3* getA3() {return A5::getA3();}
92 A4* getA4() {return A5::getA4();}
93 A5* getA5() {return A5::getA5();}
94 A6* getA6() {return A6::getA6();}
95 A7* getA7() {return this;}
96};
97
98struct A8
99 : public A7
100{
101 char _[3489];
102 virtual ~A8() {}
103
104 A1* getA1_3() {return A7::getA1_3();}
105 A1* getA1_4() {return A7::getA1_4();}
106 A1* getA1_6() {return A7::getA1_6();}
107 A2* getA2() {return A7::getA2();}
108 A3* getA3() {return A7::getA3();}
109 A4* getA4() {return A7::getA4();}
110 A5* getA5() {return A7::getA5();}
111 A6* getA6() {return A7::getA6();}
112 A7* getA7() {return A7::getA7();}
113 A8* getA8() {return this;}
114};
115
116struct A9
117 : public A1
118{
119 char _[3481];
120 virtual ~A9() {}
121
122 A1* getA1_9() {return A1::getA1();}
123 A9* getA9() {return this;}
124};
125
126struct A10
127 : public virtual A8
128{
129 char _[4831];
130 virtual ~A10() {}
131
132 A1* getA1_3() {return A8::getA1_3();}
133 A1* getA1_4() {return A8::getA1_4();}
134 A1* getA1_6() {return A8::getA1_6();}
135 A2* getA2() {return A8::getA2();}
136 A3* getA3() {return A8::getA3();}
137 A4* getA4() {return A8::getA4();}
138 A5* getA5() {return A8::getA5();}
139 A6* getA6() {return A8::getA6();}
140 A7* getA7() {return A8::getA7();}
141 A8* getA8() {return A8::getA8();}
142 A10* getA10() {return this;}
143};
144
145struct A11
146 : public virtual A8,
147 public A9
148{
149 char _[6483];
150 virtual ~A11() {}
151
152 A1* getA1_3() {return A8::getA1_3();}
153 A1* getA1_4() {return A8::getA1_4();}
154 A1* getA1_6() {return A8::getA1_6();}
155 A1* getA1_9() {return A9::getA1_9();}
156 A2* getA2() {return A8::getA2();}
157 A3* getA3() {return A8::getA3();}
158 A4* getA4() {return A8::getA4();}
159 A5* getA5() {return A8::getA5();}
160 A6* getA6() {return A8::getA6();}
161 A7* getA7() {return A8::getA7();}
162 A8* getA8() {return A8::getA8();}
163 A9* getA9() {return A9::getA9();}
164 A11* getA11() {return this;}
165};
166
167struct A12
168 : public A10,
169 public A11
170{
171 char _[2283];
172 virtual ~A12() {}
173
174 A1* getA1_3() {return A10::getA1_3();}
175 A1* getA1_4() {return A10::getA1_4();}
176 A1* getA1_6() {return A10::getA1_6();}
177 A1* getA1_9() {return A11::getA1_9();}
178 A2* getA2() {return A10::getA2();}
179 A3* getA3() {return A10::getA3();}
180 A4* getA4() {return A10::getA4();}
181 A5* getA5() {return A10::getA5();}
182 A6* getA6() {return A10::getA6();}
183 A7* getA7() {return A10::getA7();}
184 A8* getA8() {return A10::getA8();}
185 A9* getA9() {return A11::getA9();}
186 A10* getA10() {return A10::getA10();}
187 A11* getA11() {return A11::getA11();}
188 A12* getA12() {return this;}
189};
190
191struct A13
192 : public A12
193{
194 char _[1283];
195 virtual ~A13() {}
196
197 A1* getA1_3() {return A12::getA1_3();}
198 A1* getA1_4() {return A12::getA1_4();}
199 A1* getA1_6() {return A12::getA1_6();}
200 A1* getA1_9() {return A12::getA1_9();}
201 A2* getA2() {return A12::getA2();}
202 A3* getA3() {return A12::getA3();}
203 A4* getA4() {return A12::getA4();}
204 A5* getA5() {return A12::getA5();}
205 A6* getA6() {return A12::getA6();}
206 A7* getA7() {return A12::getA7();}
207 A8* getA8() {return A12::getA8();}
208 A9* getA9() {return A12::getA9();}
209 A10* getA10() {return A12::getA10();}
210 A11* getA11() {return A12::getA11();}
211 A12* getA12() {return A12::getA12();}
212 A13* getA13() {return this;}
213};
214
215A3 a3;
216A4 a4;
217A5 a5;
218A6 a6;
219A7 a7;
220A8 a8;
221A9 a9;
222A10 a10;
223A11 a11;
224A12 a12;
225A13 a13;
226
227void 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
733namespace t2
734{
735
736struct A1
737{
738 char _[43981];
739 virtual ~A1() {}
740
741 A1* getA1() {return this;}
742};
743
744struct A2
745{
746 char _[34981];
747 virtual ~A2() {}
748
749 A2* getA2() {return this;}
750};
751
752struct A3
753 : protected A1,
754 public virtual A2
755{
756 char _[93481];
757 virtual ~A3() {}
758
759 A1* getA1_3() {return A1::getA1();}
760 A2* getA2() {return A2::getA2();}
761 A3* getA3() {return this;}
762};
763
764struct A4
765 : public virtual A2,
766 public A1
767{
768 char _[13489];
769 virtual ~A4() {}
770
771 A1* getA1_4() {return A1::getA1();}
772 A2* getA2() {return A2::getA2();}
773 A4* getA4() {return this;}
774};
775
776struct A5
777 : public A3,
778 public A4
779{
780 char _[13489];
781 virtual ~A5() {}
782
783 A1* getA1_3() {return A3::getA1();}
784 A1* getA1_4() {return A4::getA1();}
785 A2* getA2() {return A3::getA2();}
786 A3* getA3() {return A3::getA3();}
787 A4* getA4() {return A4::getA4();}
788 A5* getA5() {return this;}
789};
790
791struct A6
792 : public A1
793{
794 char _[81349];
795 virtual ~A6() {}
796
797 A1* getA1_6() {return A1::getA1();}
798 A6* getA6() {return this;}
799};
800
801struct A7
802 : public A5,
803 public A6
804{
805 char _[34819];
806 virtual ~A7() {}
807
808 A1* getA1_3() {return A5::getA1_3();}
809 A1* getA1_4() {return A5::getA1_4();}
810 A1* getA1_6() {return A6::getA1_6();}
811 A2* getA2() {return A5::getA2();}
812 A3* getA3() {return A5::getA3();}
813 A4* getA4() {return A5::getA4();}
814 A5* getA5() {return A5::getA5();}
815 A6* getA6() {return A6::getA6();}
816 A7* getA7() {return this;}
817};
818
819struct A8
820 : public A7
821{
822 char _[3489];
823 virtual ~A8() {}
824
825 A1* getA1_3() {return A7::getA1_3();}
826 A1* getA1_4() {return A7::getA1_4();}
827 A1* getA1_6() {return A7::getA1_6();}
828 A2* getA2() {return A7::getA2();}
829 A3* getA3() {return A7::getA3();}
830 A4* getA4() {return A7::getA4();}
831 A5* getA5() {return A7::getA5();}
832 A6* getA6() {return A7::getA6();}
833 A7* getA7() {return A7::getA7();}
834 A8* getA8() {return this;}
835};
836
837struct A9
838 : public A1
839{
840 char _[3481];
841 virtual ~A9() {}
842
843 A1* getA1_9() {return A1::getA1();}
844 A9* getA9() {return this;}
845};
846
847struct A10
848 : public virtual A8
849{
850 char _[4831];
851 virtual ~A10() {}
852
853 A1* getA1_3() {return A8::getA1_3();}
854 A1* getA1_4() {return A8::getA1_4();}
855 A1* getA1_6() {return A8::getA1_6();}
856 A2* getA2() {return A8::getA2();}
857 A3* getA3() {return A8::getA3();}
858 A4* getA4() {return A8::getA4();}
859 A5* getA5() {return A8::getA5();}
860 A6* getA6() {return A8::getA6();}
861 A7* getA7() {return A8::getA7();}
862 A8* getA8() {return A8::getA8();}
863 A10* getA10() {return this;}
864};
865
866struct A11
867 : public virtual A8,
868 public A9
869{
870 char _[6483];
871 virtual ~A11() {}
872
873 A1* getA1_3() {return A8::getA1_3();}
874 A1* getA1_4() {return A8::getA1_4();}
875 A1* getA1_6() {return A8::getA1_6();}
876 A1* getA1_9() {return A9::getA1_9();}
877 A2* getA2() {return A8::getA2();}
878 A3* getA3() {return A8::getA3();}
879 A4* getA4() {return A8::getA4();}
880 A5* getA5() {return A8::getA5();}
881 A6* getA6() {return A8::getA6();}
882 A7* getA7() {return A8::getA7();}
883 A8* getA8() {return A8::getA8();}
884 A9* getA9() {return A9::getA9();}
885 A11* getA11() {return this;}
886};
887
888struct A12
889 : public A10,
890 public A11
891{
892 char _[2283];
893 virtual ~A12() {}
894
895 A1* getA1_3() {return A10::getA1_3();}
896 A1* getA1_4() {return A10::getA1_4();}
897 A1* getA1_6() {return A10::getA1_6();}
898 A1* getA1_9() {return A11::getA1_9();}
899 A2* getA2() {return A10::getA2();}
900 A3* getA3() {return A10::getA3();}
901 A4* getA4() {return A10::getA4();}
902 A5* getA5() {return A10::getA5();}
903 A6* getA6() {return A10::getA6();}
904 A7* getA7() {return A10::getA7();}
905 A8* getA8() {return A10::getA8();}
906 A9* getA9() {return A11::getA9();}
907 A10* getA10() {return A10::getA10();}
908 A11* getA11() {return A11::getA11();}
909 A12* getA12() {return this;}
910};
911
912struct A13
913 : public A12
914{
915 char _[1283];
916 virtual ~A13() {}
917
918 A1* getA1_3() {return A12::getA1_3();}
919 A1* getA1_4() {return A12::getA1_4();}
920 A1* getA1_6() {return A12::getA1_6();}
921 A1* getA1_9() {return A12::getA1_9();}
922 A2* getA2() {return A12::getA2();}
923 A3* getA3() {return A12::getA3();}
924 A4* getA4() {return A12::getA4();}
925 A5* getA5() {return A12::getA5();}
926 A6* getA6() {return A12::getA6();}
927 A7* getA7() {return A12::getA7();}
928 A8* getA8() {return A12::getA8();}
929 A9* getA9() {return A12::getA9();}
930 A10* getA10() {return A12::getA10();}
931 A11* getA11() {return A12::getA11();}
932 A12* getA12() {return A12::getA12();}
933 A13* getA13() {return this;}
934};
935
936A3 a3;
937A4 a4;
938A5 a5;
939A6 a6;
940A7 a7;
941A8 a8;
942A9 a9;
943A10 a10;
944A11 a11;
945A12 a12;
946A13 a13;
947
948void 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
1454namespace t3
1455{
1456
1457struct A1
1458{
1459 char _[43981];
1460 virtual ~A1() {}
1461
1462 A1* getA1() {return this;}
1463};
1464
1465struct A2
1466{
1467 char _[34981];
1468 virtual ~A2() {}
1469
1470 A2* getA2() {return this;}
1471};
1472
1473struct A3
1474 : public A1,
1475 protected virtual A2
1476{
1477 char _[93481];
1478 virtual ~A3() {}
1479
1480 A1* getA1_3() {return A1::getA1();}
1481 A2* getA2() {return A2::getA2();}
1482 A3* getA3() {return this;}
1483};
1484
1485struct A4
1486 : public virtual A2,
1487 public A1
1488{
1489 char _[13489];
1490 virtual ~A4() {}
1491
1492 A1* getA1_4() {return A1::getA1();}
1493 A2* getA2() {return A2::getA2();}
1494 A4* getA4() {return this;}
1495};
1496
1497struct A5
1498 : public A3,
1499 public A4
1500{
1501 char _[13489];
1502 virtual ~A5() {}
1503
1504 A1* getA1_3() {return A3::getA1();}
1505 A1* getA1_4() {return A4::getA1();}
1506 A2* getA2() {return A3::getA2();}
1507 A3* getA3() {return A3::getA3();}
1508 A4* getA4() {return A4::getA4();}
1509 A5* getA5() {return this;}
1510};
1511
1512struct A6
1513 : public A1
1514{
1515 char _[81349];
1516 virtual ~A6() {}
1517
1518 A1* getA1_6() {return A1::getA1();}
1519 A6* getA6() {return this;}
1520};
1521
1522struct A7
1523 : public A5,
1524 public A6
1525{
1526 char _[34819];
1527 virtual ~A7() {}
1528
1529 A1* getA1_3() {return A5::getA1_3();}
1530 A1* getA1_4() {return A5::getA1_4();}
1531 A1* getA1_6() {return A6::getA1_6();}
1532 A2* getA2() {return A5::getA2();}
1533 A3* getA3() {return A5::getA3();}
1534 A4* getA4() {return A5::getA4();}
1535 A5* getA5() {return A5::getA5();}
1536 A6* getA6() {return A6::getA6();}
1537 A7* getA7() {return this;}
1538};
1539
1540struct A8
1541 : public A7
1542{
1543 char _[3489];
1544 virtual ~A8() {}
1545
1546 A1* getA1_3() {return A7::getA1_3();}
1547 A1* getA1_4() {return A7::getA1_4();}
1548 A1* getA1_6() {return A7::getA1_6();}
1549 A2* getA2() {return A7::getA2();}
1550 A3* getA3() {return A7::getA3();}
1551 A4* getA4() {return A7::getA4();}
1552 A5* getA5() {return A7::getA5();}
1553 A6* getA6() {return A7::getA6();}
1554 A7* getA7() {return A7::getA7();}
1555 A8* getA8() {return this;}
1556};
1557
1558struct A9
1559 : public A1
1560{
1561 char _[3481];
1562 virtual ~A9() {}
1563
1564 A1* getA1_9() {return A1::getA1();}
1565 A9* getA9() {return this;}
1566};
1567
1568struct A10
1569 : public virtual A8
1570{
1571 char _[4831];
1572 virtual ~A10() {}
1573
1574 A1* getA1_3() {return A8::getA1_3();}
1575 A1* getA1_4() {return A8::getA1_4();}
1576 A1* getA1_6() {return A8::getA1_6();}
1577 A2* getA2() {return A8::getA2();}
1578 A3* getA3() {return A8::getA3();}
1579 A4* getA4() {return A8::getA4();}
1580 A5* getA5() {return A8::getA5();}
1581 A6* getA6() {return A8::getA6();}
1582 A7* getA7() {return A8::getA7();}
1583 A8* getA8() {return A8::getA8();}
1584 A10* getA10() {return this;}
1585};
1586
1587struct A11
1588 : public virtual A8,
1589 public A9
1590{
1591 char _[6483];
1592 virtual ~A11() {}
1593
1594 A1* getA1_3() {return A8::getA1_3();}
1595 A1* getA1_4() {return A8::getA1_4();}
1596 A1* getA1_6() {return A8::getA1_6();}
1597 A1* getA1_9() {return A9::getA1_9();}
1598 A2* getA2() {return A8::getA2();}
1599 A3* getA3() {return A8::getA3();}
1600 A4* getA4() {return A8::getA4();}
1601 A5* getA5() {return A8::getA5();}
1602 A6* getA6() {return A8::getA6();}
1603 A7* getA7() {return A8::getA7();}
1604 A8* getA8() {return A8::getA8();}
1605 A9* getA9() {return A9::getA9();}
1606 A11* getA11() {return this;}
1607};
1608
1609struct A12
1610 : public A10,
1611 public A11
1612{
1613 char _[2283];
1614 virtual ~A12() {}
1615
1616 A1* getA1_3() {return A10::getA1_3();}
1617 A1* getA1_4() {return A10::getA1_4();}
1618 A1* getA1_6() {return A10::getA1_6();}
1619 A1* getA1_9() {return A11::getA1_9();}
1620 A2* getA2() {return A10::getA2();}
1621 A3* getA3() {return A10::getA3();}
1622 A4* getA4() {return A10::getA4();}
1623 A5* getA5() {return A10::getA5();}
1624 A6* getA6() {return A10::getA6();}
1625 A7* getA7() {return A10::getA7();}
1626 A8* getA8() {return A10::getA8();}
1627 A9* getA9() {return A11::getA9();}
1628 A10* getA10() {return A10::getA10();}
1629 A11* getA11() {return A11::getA11();}
1630 A12* getA12() {return this;}
1631};
1632
1633struct A13
1634 : public A12
1635{
1636 char _[1283];
1637 virtual ~A13() {}
1638
1639 A1* getA1_3() {return A12::getA1_3();}
1640 A1* getA1_4() {return A12::getA1_4();}
1641 A1* getA1_6() {return A12::getA1_6();}
1642 A1* getA1_9() {return A12::getA1_9();}
1643 A2* getA2() {return A12::getA2();}
1644 A3* getA3() {return A12::getA3();}
1645 A4* getA4() {return A12::getA4();}
1646 A5* getA5() {return A12::getA5();}
1647 A6* getA6() {return A12::getA6();}
1648 A7* getA7() {return A12::getA7();}
1649 A8* getA8() {return A12::getA8();}
1650 A9* getA9() {return A12::getA9();}
1651 A10* getA10() {return A12::getA10();}
1652 A11* getA11() {return A12::getA11();}
1653 A12* getA12() {return A12::getA12();}
1654 A13* getA13() {return this;}
1655};
1656
1657A3 a3;
1658A4 a4;
1659A5 a5;
1660A6 a6;
1661A7 a7;
1662A8 a8;
1663A9 a9;
1664A10 a10;
1665A11 a11;
1666A12 a12;
1667A13 a13;
1668
1669void 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
2175int main(int, char**)
2176{
2177 timer t;
2178 t1::test();
2179 t2::test();
2180 t3::test();
2181
2182 return 0;
2183}
2184

source code of libcxxabi/test/dynamic_cast14.pass.cpp