1185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant//===------------------------- dynamic_cast3.cpp --------------------------===// 2185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant// 3185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant// The LLVM Compiler Infrastructure 4185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant// 5185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant// This file is dual licensed under the MIT and the University of Illinois Open 6185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant// Source Licenses. See LICENSE.TXT for details. 7185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant// 8185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant//===----------------------------------------------------------------------===// 9185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 10185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant#include <cassert> 11e571c0cb34dbc3799349cf2166fb422ff9d2c08dDan Albert#include "support/timer.hpp" 12185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 13185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant/* 14185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 15185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward HinnantA1 A2 A3 16185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 17185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant*/ 18185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 19185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t1 20185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 21185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 22185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 23185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 24185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 259a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 26185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 27185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 28185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 29185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 30185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 31185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 32185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 339a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 34185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 35185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 36185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 37185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 38185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 39185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 40185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 419a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 42185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 43185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 44185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 45185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 46185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 47185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 48185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 49185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 50185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 51185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 52185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == 0); 53185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA3()) == 0); 54185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 55185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 56185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == 0); 57185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 58185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 59185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 60185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 61185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 62185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t1 63185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 64185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant/* 65185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 66185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward HinnantA1 A2 67185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant| 68185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward HinnantA3 69185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 70185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant*/ 71185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 72185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t2 73185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 74185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 75185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 76185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 77185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 789a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 79185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 80185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 81185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 82185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 83185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 84185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 85185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 869a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 87185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 88185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 89185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 90185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 91185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 92185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public A1 93185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 94185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 959a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 96185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 97185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 98185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 99185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 100185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 101185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 102185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 103185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 104185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 105185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 106185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == 0); 107185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 108185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA3()) == a3.getA1()); 109185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 110185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 111185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 112185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == 0); 113185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == 0); 114185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 115185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 116185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 117185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == a3.getA3()); 118185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 119185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 120185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 121185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t2 122185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 123185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t3 124185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 125185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 126185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 127185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 128185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 1299a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 130185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 131185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 132185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 133185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 134185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 135185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 136185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 1379a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 138185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 139185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 140185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 141185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 142185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 143185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public virtual A1 144185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 145185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 1469a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 147185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 148185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 149185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 150185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 151185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 152185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 153185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 154185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 155185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 156185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 157185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == 0); 158185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 159185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA3()) == a3.getA1()); 160185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 161185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 162185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 163185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == 0); 164185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == 0); 165185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 166185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 167185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 168185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == a3.getA3()); 169185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 170185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 171185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 172185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t3 173185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 174185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t4 175185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 176185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 177185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 178185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 179185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 1809a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 181185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 182185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 183185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 184185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 185185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 186185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 187185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 1889a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 189185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 190185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 191185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 192185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 193185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 194185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private A1 195185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 196185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 1979a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 198185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 199185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 200185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 201185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 202185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 203185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 204185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 205185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 206185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 207185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 208185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 209185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == 0); 210185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 211185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 212185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 213185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 214185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == 0); 215185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == 0); 216185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 217185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 218185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 219185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == 0); 220185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 221185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 222185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 223185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t4 224185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 225185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t5 226185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 227185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 228185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 229185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 230185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 2319a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 232185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 233185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 234185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 235185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 236185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 237185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 238185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 2399a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 240185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 241185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 242185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 243185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 244185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 245185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private virtual A1 246185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 247185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 2489a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 249185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 250185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 251185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 252185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 253185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 254185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 255185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 256185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 257185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 258185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 259185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 260185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == 0); 261185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 262185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 263185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 264185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 265185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == 0); 266185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == 0); 267185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 268185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 269185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 270185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == 0); 271185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 272185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 273185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 274185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t5 275185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 276185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant/* 277185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 278185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward HinnantA1 A2 279185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant \ / 280185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 281185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 282185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant*/ 283185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 284185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t6 285185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 286185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 287185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 288185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 289185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 2909a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 291185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 292185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 293185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 294185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 295185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 296185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 297185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 2989a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 299185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 300185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 301185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 302185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 303185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 304185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public A1, 305185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant public A2 306185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 307185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 3089a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 309185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 310185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 311185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 312185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 313185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 314185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 315185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 316185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 317185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 318185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 319185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 320185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 321185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == 0); 322185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 323185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA2()) == a3.getA1()); 324185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA3()) == a3.getA1()); 325185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 326185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 327185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 328185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == a3.getA2()); 329185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 330185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == a3.getA2()); 331185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 332185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 333185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 334185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == a3.getA3()); 335185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 336185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 337185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 338185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 339185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t6 340185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 341185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t7 342185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 343185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 344185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 345185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 346185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 3479a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 348185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 349185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 350185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 351185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 352185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 353185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 354185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 3559a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 356185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 357185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 358185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 359185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 360185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 361185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public virtual A1, 362185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant public A2 363185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 364185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 3659a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 366185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 367185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 368185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 369185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 370185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 371185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 372185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 373185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 374185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 375185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 376185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 377185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 378185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == 0); 379185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 380185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA2()) == a3.getA1()); 381185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA3()) == a3.getA1()); 382185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 383185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 384185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 385185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == a3.getA2()); 386185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 387185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == a3.getA2()); 388185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 389185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 390185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 391185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == a3.getA3()); 392185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 393185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 394185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 395185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 396185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t7 397185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 398185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t8 399185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 400185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 401185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 402185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 403185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 4049a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 405185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 406185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 407185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 408185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 409185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 410185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 411185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 4129a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 413185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 414185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 415185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 416185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 417185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 418185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private A1, 419185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant public A2 420185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 421185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 4229a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 423185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 424185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 425185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 426185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 427185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 428185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 429185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 430185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 431185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 432185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 433185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 434185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 435185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == 0); 436185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 437185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA2()) == 0); 438185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 439185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 440185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 441185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == 0); 442185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 443185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == a3.getA2()); 444185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 445185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 446185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 447185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == 0); 448185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 449185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 450185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 451185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 452185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t8 453185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 454185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t9 455185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 456185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 457185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 458185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 459185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 4609a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 461185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 462185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 463185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 464185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 465185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 466185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 467185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 4689a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 469185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 470185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 471185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 472185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 473185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 474185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private virtual A1, 475185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant public A2 476185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 477185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 4789a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 479185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 480185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 481185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 482185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 483185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 484185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 485185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 486185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 487185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 488185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 489185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 490185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 491185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == 0); 492185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 493185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA2()) == 0); 494185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 495185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 496185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 497185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == 0); 498185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 499185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == a3.getA2()); 500185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 501185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 502185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 503185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == 0); 504185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 505185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 506185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 507185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 508185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t9 509185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 510185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t10 511185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 512185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 513185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 514185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 515185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 5169a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 517185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 518185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 519185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 520185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 521185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 522185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 523185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 5249a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 525185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 526185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 527185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 528185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 529185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 530185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public virtual A1, 531185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant public virtual A2 532185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 533185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 5349a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 535185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 536185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 537185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 538185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 539185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 540185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 541185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 542185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 543185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 544185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 545185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 546185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 547185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == 0); 548185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 549185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA2()) == a3.getA1()); 550185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA3()) == a3.getA1()); 551185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 552185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 553185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 554185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == a3.getA2()); 555185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 556185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == a3.getA2()); 557185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 558185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 559185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 560185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == a3.getA3()); 561185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 562185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 563185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 564185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 565185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t10 566185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 567185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t11 568185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 569185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 570185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 571185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 572185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 5739a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 574185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 575185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 576185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 577185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 578185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 579185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 580185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 5819a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 582185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 583185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 584185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 585185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 586185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 587185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private A1, 588185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant public virtual A2 589185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 590185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 5919a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 592185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 593185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 594185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 595185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 596185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 597185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 598185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 599185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 600185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 601185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 602185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 603185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 604185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == 0); 605185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 606185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA2()) == 0); 607185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 608185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 609185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 610185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == 0); 611185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 612185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == a3.getA2()); 613185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 614185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 615185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 616185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == 0); 617185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 618185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 619185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 620185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 621185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t11 622185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 623185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t12 624185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 625185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 626185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 627185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 628185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 6299a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 630185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 631185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 632185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 633185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 634185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 635185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 636185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 6379a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 638185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 639185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 640185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 641185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 642185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 643185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private virtual A1, 644185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant public virtual A2 645185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 646185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 6479a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 648185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 649185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 650185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 651185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 652185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 653185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 654185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 655185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 656185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 657185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 658185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 659185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 660185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == 0); 661185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 662185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA2()) == 0); 663185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 664185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 665185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 666185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == 0); 667185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 668185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == a3.getA2()); 669185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 670185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 671185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 672185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == 0); 673185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 674185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 675185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 676185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 677185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t12 678185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 679185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t13 680185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 681185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 682185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 683185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 684185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 6859a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 686185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 687185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 688185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 689185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 690185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 691185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 692185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 6939a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 694185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 695185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 696185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 697185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 698185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 699185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private A1, 700185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant private A2 701185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 702185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 7039a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 704185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 705185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 706185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 707185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 708185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 709185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 710185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 711185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 712185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 713185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 714185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 715185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 716185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == 0); 717185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 718185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA2()) == 0); 719185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 720185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 721185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 722185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == 0); 723185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 724185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 725185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 726185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 727185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == 0); 728185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == 0); 729185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 730185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 731185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 732185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t13 733185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 734185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t14 735185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 736185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 737185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 738185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 739185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 7409a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 741185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 742185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 743185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 744185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 745185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 746185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 747185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 7489a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 749185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 750185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 751185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 752185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 753185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 754185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private virtual A1, 755185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant private A2 756185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 757185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 7589a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 759185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 760185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 761185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 762185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 763185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 764185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 765185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 766185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 767185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 768185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 769185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 770185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 771185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == 0); 772185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 773185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA2()) == 0); 774185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 775185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 776185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 777185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == 0); 778185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 779185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 780185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 781185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 782185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == 0); 783185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == 0); 784185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 785185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 786185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 787185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t14 788185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 789185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t15 790185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 791185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 792185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 793185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 794185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 7959a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 796185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 797185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 798185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 799185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 800185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 801185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 802185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 8039a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 804185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 805185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 806185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 807185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 808185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 809185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private virtual A1, 810185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant private virtual A2 811185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 812185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 8139a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 814185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 815185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 816185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 817185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 818185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 819185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 820185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 821185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 822185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 823185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 824185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 825185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 826185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == 0); 827185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 828185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA2()) == 0); 829185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 830185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 831185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 832185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == 0); 833185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 834185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 835185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 836185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 837185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == 0); 838185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == 0); 839185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 840185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 841185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 842185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t15 843185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 844185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant/* 845185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 846185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward HinnantA1 847185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant| 848185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward HinnantA2 849185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant| 850185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward HinnantA3 851185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 852185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant*/ 853185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 854185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t16 855185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 856185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 857185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 858185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 859185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 8609a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 861185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 862185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 863185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 864185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 865185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 866185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public A1 867185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 868185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 8699a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 870185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 871185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 872185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 873185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 874185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 875185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 876185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public A2 877185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 878185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 8799a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 880185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 881185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 882185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 883185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 884185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 885185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 886185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 887185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 888185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 889185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 890185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 891185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 892185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 893185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == a2.getA1()); 894185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 895185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA2()) == a3.getA1()); 896185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA3()) == a3.getA1()); 897185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 898185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 899185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == a2.getA2()); 900185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 901185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == a3.getA2()); 902185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 903185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == a3.getA2()); 904185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 905185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 906185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 907185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 908185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == a3.getA3()); 909185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 910185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 911185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 912185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 913185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t16 914185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 915185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t17 916185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 917185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 918185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 919185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 920185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 9219a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 922185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 923185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 924185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 925185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 926185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 927185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public virtual A1 928185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 929185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 9309a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 931185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 932185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 933185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 934185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 935185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 936185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 937185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public A2 938185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 939185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 9409a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 941185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 942185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 943185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 944185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 945185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 946185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 947185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 948185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 949185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 950185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 951185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 952185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 953185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 954185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == a2.getA1()); 955185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 956185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA2()) == a3.getA1()); 957185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA3()) == a3.getA1()); 958185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 959185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 960185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == a2.getA2()); 961185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 962185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == a3.getA2()); 963185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 964185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == a3.getA2()); 965185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 966185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 967185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 968185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 969185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == a3.getA3()); 970185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 971185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 972185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 973185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 974185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t17 975185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 976185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t18 977185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 978185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 979185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 980185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 981185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 9829a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 983185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 984185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 985185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 986185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 987185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 988185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private A1 989185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 990185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 9919a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 992185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 993185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 994185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 995185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 996185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 997185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 998185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public A2 999185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1000185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 10019a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 1002185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1003185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1004185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 1005185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1006185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1007185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 1008185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1009185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 1010185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 1011185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 1012185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 1013185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 1014185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 1015185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1016185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 1017185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == 0); 1018185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 1019185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == 0); 1020185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 1021185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == a3.getA2()); 1022185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1023185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 1024185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 1025185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 1026185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == 0); 1027185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 1028185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 1029185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 1030185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1031185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t18 1032185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1033185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t19 1034185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1035185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1036185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 1037185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1038185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 10399a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 1040185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1041185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1042185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1043185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1044185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 104541458a0681f60e9b6778dbb799cbb5647db628ebHoward Hinnant : protected virtual A1 1046185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1047185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 10489a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 1049185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1050185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1051185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1052185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1053185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1054185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 1055185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public A2 1056185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1057185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 10589a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 1059185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1060185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1061185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 1062185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1063185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1064185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 1065185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1066185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 1067185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 1068185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 1069185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 1070185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 1071185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 1072185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1073185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 1074185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == 0); 1075185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 1076185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == 0); 1077185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 1078185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == a3.getA2()); 1079185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1080185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 1081185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 1082185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 1083185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == 0); 1084185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 1085185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 1086185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 1087185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1088185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t19 1089185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1090185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t20 1091185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1092185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1093185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 1094185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1095185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 10969a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 1097185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1098185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1099185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1100185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1101185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 1102185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public virtual A1 1103185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1104185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 11059a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 1106185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1107185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1108185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1109185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1110185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1111185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 1112185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public virtual A2 1113185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1114185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 11159a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 1116185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1117185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1118185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1119185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 1120185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1121185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1122185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 1123185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1124185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 1125185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 1126185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 1127185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 1128185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 1129185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == a2.getA1()); 1130185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 1131185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA2()) == a3.getA1()); 1132185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA3()) == a3.getA1()); 1133185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1134185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 1135185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == a2.getA2()); 1136185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 1137185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == a3.getA2()); 1138185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 1139185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == a3.getA2()); 1140185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1141185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 1142185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 1143185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 1144185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == a3.getA3()); 1145185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 1146185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 1147185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 1148185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1149185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t20 1150185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1151185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t21 1152185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1153185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1154185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 1155185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1156185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 11579a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 1158185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1159185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1160185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1161185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1162185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 1163185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private A1 1164185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1165185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 11669a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 1167185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1168185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1169185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1170185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1171185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1172185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 1173185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public virtual A2 1174185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1175185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 11769a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 1177185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1178185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1179185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 1180185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1181185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1182185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 1183185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1184185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 1185185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 1186185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 1187185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 1188185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 1189185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 1190185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1191185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 1192185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == 0); 1193185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 1194185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == 0); 1195185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 1196185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == a3.getA2()); 1197185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1198185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 1199185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 1200185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 1201185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == 0); 1202185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 1203185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 1204185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 1205185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1206185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t21 1207185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1208185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t22 1209185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1210185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1211185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 1212185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1213185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 12149a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 1215185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1216185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1217185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1218185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1219185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 122041458a0681f60e9b6778dbb799cbb5647db628ebHoward Hinnant : protected virtual A1 1221185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1222185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 12239a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 1224185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1225185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1226185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1227185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1228185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1229185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 1230185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public virtual A2 1231185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1232185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 12339a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 1234185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1235185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1236185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 1237185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1238185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1239185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 1240185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1241185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 1242185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 1243185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 1244185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 1245185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 1246185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 1247185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1248185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 1249185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == 0); 1250185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 1251185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == 0); 1252185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 1253185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == a3.getA2()); 1254185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1255185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 1256185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 1257185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 1258185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == 0); 1259185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 1260185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 1261185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 1262185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1263185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t22 1264185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1265185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t23 1266185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1267185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1268185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 1269185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1270185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 12719a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 1272185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1273185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1274185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1275185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1276185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 1277185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private A1 1278185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1279185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 12809a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 1281185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1282185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1283185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1284185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1285185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1286185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 1287185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private A2 1288185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1289185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 12909a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 1291185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1292185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t23::A1* getA1() {return A2::getA1();} 1293185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1294185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 1295185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1296185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1297185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 1298185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1299185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 1300185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 1301185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 1302185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 1303185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 1304185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 1305185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1306185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 1307185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == 0); 1308185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 1309185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == 0); 1310185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 1311185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1312185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 1313185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 1314185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 1315185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == 0); 1316185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == 0); 1317185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 1318185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 1319185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1320185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t23 1321185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1322185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t24 1323185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1324185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1325185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 1326185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1327185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 13289a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 1329185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1330185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1331185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1332185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1333185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 133441458a0681f60e9b6778dbb799cbb5647db628ebHoward Hinnant : protected virtual A1 1335185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1336185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 13379a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 1338185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1339185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1340185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1341185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1342185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1343185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 1344185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private A2 1345185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1346185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 13479a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 1348185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1349185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t24::A1* getA1() {return A2::getA1();} 1350185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1351185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 1352185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1353185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1354185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 1355185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1356185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 1357185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 1358185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 1359185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 1360185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 1361185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 1362185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1363185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 1364185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == 0); 1365185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 1366185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == 0); 1367185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 1368185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1369185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 1370185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 1371185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 1372185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == 0); 1373185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == 0); 1374185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 1375185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 1376185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1377185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t24 1378185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1379185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t25 1380185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1381185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1382185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 1383185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1384185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 13859a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 1386185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1387185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1388185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1389185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1390185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 139141458a0681f60e9b6778dbb799cbb5647db628ebHoward Hinnant : protected virtual A1 1392185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1393185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 13949a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 1395185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1396185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1397185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1398185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1399185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1400185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 1401185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private virtual A2 1402185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1403185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 14049a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 1405185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1406185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t25::A1* getA1() {return A2::getA1();} 1407185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1408185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 1409185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1410185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1411185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 1412185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1413185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 1414185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 1415185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 1416185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 1417185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 1418185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 1419185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1420185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 1421185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == 0); 1422185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 1423185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == 0); 1424185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 1425185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1426185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 1427185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 1428185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 1429185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == 0); 1430185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == 0); 1431185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 1432185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 1433185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1434185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t25 1435185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1436185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant/* 1437185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1438185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward HinnantA1 A1 1439185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant| | 1440185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward HinnantA2 | 1441185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant \ | 1442185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 1443185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1444185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant*/ 1445185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1446185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t26 1447185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1448185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1449185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 1450185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1451185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 14529a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 1453185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1454185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1455185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1456185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1457185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 1458185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public A1 1459185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1460185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 14619a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 1462185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1463185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1464185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1465185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1466185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1467185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 1468185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public A1, 1469185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant public A2 1470185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1471185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 14729a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 1473185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1474185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA12() {return A2::getA1();} 1475185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1476185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 1477185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1478185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1479185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 1480185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1481185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 1482185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 1483185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 1484185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 1485185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 1486185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == a2.getA1()); 1487185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA12()) == a3.getA12()); 1488185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA2()) == a3.getA12()); 1489185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1490185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 1491185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == a2.getA2()); 1492185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 1493185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA12()) == a3.getA2()); 1494185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 1495185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == a3.getA2()); 1496185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1497185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 1498185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 1499185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 1500185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA12()) == a3.getA3()); 1501185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 1502185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 1503185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 1504185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1505185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t26 1506185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1507185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t27 1508185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1509185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1510185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 1511185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1512185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 15139a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 1514185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1515185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1516185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1517185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1518185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 1519185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private A1 1520185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1521185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 15229a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 1523185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1524185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1525185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1526185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1527185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1528185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 1529185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public A1, 1530185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant public A2 1531185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1532185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 15339a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 1534185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1535185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA12() {return A2::getA1();} 1536185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1537185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 1538185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1539185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1540185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 1541185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1542185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 1543185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 1544185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 1545185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 1546185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 1547185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA12()) == a3.getA12()); 1548185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1549185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 1550185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == 0); 1551185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 1552185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA12()) == 0); 1553185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 1554185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == a3.getA2()); 1555185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1556185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 1557185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 1558185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 1559185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA12()) == 0); 1560185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 1561185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 1562185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 1563185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1564185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t27 1565185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1566185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t28 1567185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1568185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1569185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 1570185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1571185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 15729a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 1573185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1574185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1575185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1576185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1577185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 1578185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public A1 1579185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1580185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 15819a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 1582185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1583185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1584185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1585185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1586185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1587185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 1588185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private A1, 1589185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant public A2 1590185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1591185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 15929a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 1593185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1594185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA12() {return A2::getA1();} 1595185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1596185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 1597185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1598185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1599185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 1600185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1601185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 1602185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 1603185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 1604185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 1605185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 1606185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == a2.getA1()); 1607185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA2()) == a3.getA12()); 1608185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1609185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 1610185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == a2.getA2()); 1611185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 1612185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA12()) == a3.getA2()); 1613185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 1614185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == a3.getA2()); 1615185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1616185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 1617185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 1618185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 1619185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA12()) == a3.getA3()); 1620185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 1621185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 1622185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 1623185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1624185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t28 1625185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1626185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t29 1627185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1628185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1629185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 1630185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1631185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 16329a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 1633185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1634185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1635185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1636185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1637185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 1638185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public A1 1639185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1640185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 16419a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 1642185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1643185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1644185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1645185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1646185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1647185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 1648185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public A1, 1649185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant private A2 1650185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1651185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 16529a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 1653185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1654185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA12() {return A2::getA1();} 1655185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1656185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 1657185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1658185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1659185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 1660185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1661185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 1662185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 1663185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 1664185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 1665185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 1666185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == a2.getA1()); 1667185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA2()) == a3.getA12()); 1668185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1669185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 1670185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == a2.getA2()); 1671185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 1672185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA12()) == a3.getA2()); 1673185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 1674185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1675185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 1676185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 1677185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 1678185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA12()) == 0); 1679185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == 0); 1680185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 1681185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 1682185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1683185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t29 1684185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1685185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t30 1686185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1687185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1688185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 1689185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1690185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 16919a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 1692185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1693185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1694185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1695185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1696185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 1697185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public A1 1698185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1699185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 17009a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 1701185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1702185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1703185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1704185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1705185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1706185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 1707185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private A1, 1708185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant private A2 1709185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1710185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 17119a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 1712185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1713185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA12() {return A2::getA1();} 1714185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1715185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 1716185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1717185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1718185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 1719185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1720185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 1721185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 1722185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 1723185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 1724185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 1725185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == a2.getA1()); 1726185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA12()) == a3.getA12()); 1727185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA2()) == a3.getA12()); 1728185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1729185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 1730185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == a2.getA2()); 1731185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 1732185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA12()) == a3.getA2()); 1733185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 1734185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1735185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 1736185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 1737185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 1738185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA12()) == 0); 1739185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == 0); 1740185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 1741185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 1742185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1743185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t30 1744185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1745185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t31 1746185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1747185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1748185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 1749185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1750185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 17519a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 1752185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1753185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1754185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1755185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1756185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 1757185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private A1 1758185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1759185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 17609a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 1761185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1762185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1763185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1764185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1765185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1766185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 1767185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public A1, 1768185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant private A2 1769185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1770185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 17719a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 1772185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1773185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA12() {return A2::getA1();} 1774185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1775185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 1776185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1777185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1778185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 1779185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1780185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 1781185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 1782185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 1783185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 1784185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 1785185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA12()) == a3.getA12()); 1786185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1787185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 1788185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == 0); 1789185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 1790185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA12()) == 0); 1791185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 1792185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1793185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 1794185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 1795185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 1796185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA12()) == 0); 1797185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == 0); 1798185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 1799185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 1800185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1801185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t31 1802185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1803185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t32 1804185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1805185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1806185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 1807185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1808185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 18099a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 1810185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1811185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1812185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1813185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1814185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 1815185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private A1 1816185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1817185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 18189a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 1819185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1820185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1821185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1822185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1823185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1824185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 1825185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private A1, 1826185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant public A2 1827185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1828185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 18299a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 1830185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1831185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA12() {return A2::getA1();} 1832185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1833185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 1834185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1835185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1836185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 1837185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1838185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 1839185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 1840185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 1841185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 1842185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 1843185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA12()) == a3.getA12()); 1844185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1845185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 1846185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == 0); 1847185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 1848185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA12()) == 0); 1849185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 1850185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1851185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 1852185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 1853185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 1854185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA12()) == 0); 1855185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 1856185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 1857185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 1858185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1859185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t32 1860185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1861185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t33 1862185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1863185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1864185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 1865185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1866185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 18679a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 1868185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1869185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1870185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1871185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1872185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 1873185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private A1 1874185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1875185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 18769a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 1877185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1878185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1879185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1880185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1881185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1882185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 1883185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private A1, 1884185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant private A2 1885185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1886185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 18879a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 1888185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1889185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA12() {return A2::getA1();} 1890185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1891185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 1892185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1893185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1894185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 1895185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1896185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 1897185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 1898185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 1899185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 1900185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 1901185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA12()) == a3.getA12()); 1902185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1903185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 1904185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == 0); 1905185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 1906185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA12()) == 0); 1907185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 1908185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1909185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 1910185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 1911185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 1912185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA12()) == 0); 1913185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == 0); 1914185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 1915185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 1916185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1917185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t33 1918185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1919185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant/* 1920185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1921185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward HinnantA1 1922185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant| \ 1923185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward HinnantA2 \ 1924185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant \ | 1925185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 1926185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1927185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant*/ 1928185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1929185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t34 1930185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1931185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1932185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 1933185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1934185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 19359a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 1936185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1937185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1938185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1939185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1940185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 1941185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public virtual A1 1942185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1943185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 19449a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 1945185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1946185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 1947185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1948185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1949185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1950185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 1951185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public virtual A1, 1952185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant public A2 1953185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1954185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 19559a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 1956185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1957185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return A1::getA1();} 1958185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 1959185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 1960185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 1961185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1962185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 1963185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1964185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 1965185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 1966185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 1967185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 1968185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 1969185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == a2.getA1()); 1970185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 1971185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA2()) == a3.getA1()); 1972185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA3()) == a3.getA1()); 1973185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1974185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 1975185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == a2.getA2()); 1976185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 1977185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == a3.getA2()); 1978185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 1979185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == a3.getA2()); 1980185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1981185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 1982185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 1983185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 1984185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == a3.getA3()); 1985185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 1986185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 1987185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 1988185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1989185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t34 1990185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1991185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t35 1992185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1993185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1994185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 1995185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 1996185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 19979a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 1998185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 1999185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 2000185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 2001185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2002185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 2003185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private virtual A1 2004185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2005185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 20069a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 2007185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2008185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 2009185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 2010185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 2011185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2012185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 2013185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public virtual A1, 2014185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant public A2 2015185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2016185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 20179a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 2018185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2019185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return A1::getA1();} 2020185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 2021185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 2022185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 2023185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2024185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 2025185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2026185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 2027185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 2028185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 2029185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 2030185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 2031185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 2032185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA3()) == a3.getA1()); 2033185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2034185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 2035185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == 0); 2036185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 2037185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == a3.getA2()); 2038185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 2039185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == a3.getA2()); 2040185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2041185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 2042185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 2043185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 2044185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == a3.getA3()); 2045185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 2046185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 2047185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 2048185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2049185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t35 2050185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2051185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t36 2052185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2053185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2054185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 2055185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2056185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 20579a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 2058185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2059185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 2060185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 2061185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2062185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 2063185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public virtual A1 2064185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2065185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 20669a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 2067185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2068185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 2069185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 2070185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 2071185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2072185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 2073185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private virtual A1, 2074185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant public A2 2075185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2076185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 20779a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 2078185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2079185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return A1::getA1();} 2080185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 2081185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 2082185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 2083185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2084185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 2085185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2086185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 2087185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 2088185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 2089185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 2090185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 2091185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == a2.getA1()); 2092185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 2093185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA2()) == a3.getA1()); 2094185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA3()) == a3.getA1()); 2095185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2096185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 2097185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == a2.getA2()); 2098185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 2099185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == a3.getA2()); 2100185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 2101185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == a3.getA2()); 2102185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2103185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 2104185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 2105185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 2106185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == a3.getA3()); 2107185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 2108185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 2109185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 2110185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2111185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t36 2112185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2113185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t37 2114185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2115185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2116185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 2117185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2118185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 21199a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 2120185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2121185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 2122185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 2123185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2124185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 2125185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public virtual A1 2126185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2127185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 21289a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 2129185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2130185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 2131185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 2132185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 2133185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2134185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 2135185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public virtual A1, 2136185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant private A2 2137185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2138185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 21399a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 2140185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2141185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return A1::getA1();} 2142185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 2143185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 2144185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 2145185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2146185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 2147185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2148185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 2149185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 2150185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 2151185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 2152185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 2153185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == a2.getA1()); 2154185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 2155185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA2()) == a3.getA1()); 2156185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA3()) == a3.getA1()); 2157185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2158185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 2159185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == a2.getA2()); 2160185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 2161185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == a3.getA2()); 2162185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 2163185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2164185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 2165185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 2166185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 2167185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == a3.getA3()); 2168185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == 0); 2169185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 2170185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 2171185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2172185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t37 2173185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2174185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t38 2175185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2176185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2177185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 2178185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2179185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 21809a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 2181185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2182185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 2183185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 2184185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2185185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 2186185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public virtual A1 2187185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2188185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 21899a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 2190185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2191185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 2192185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 2193185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 2194185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2195185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 2196185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private virtual A1, 2197185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant private A2 2198185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2199185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 22009a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 2201185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2202185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return A1::getA1();} 2203185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 2204185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 2205185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 2206185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2207185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 2208185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2209185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 2210185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 2211185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 2212185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 2213185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 2214185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA2()) == a2.getA1()); 2215185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 2216185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA2()) == a3.getA1()); 2217185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2218185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 2219185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == a2.getA2()); 2220185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 2221185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == a3.getA2()); 2222185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 2223185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2224185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 2225185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 2226185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 2227185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == 0); 2228185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == 0); 2229185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 2230185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 2231185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2232185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t38 2233185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2234185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t39 2235185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2236185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2237185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 2238185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2239185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 22409a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 2241185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2242185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 2243185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 2244185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2245185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 2246185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private virtual A1 2247185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2248185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 22499a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 2250185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2251185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 2252185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 2253185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 2254185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2255185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 2256185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : public virtual A1, 2257185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant private A2 2258185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2259185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 22609a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 2261185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2262185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return A1::getA1();} 2263185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 2264185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 2265185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 2266185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2267185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 2268185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2269185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 2270185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 2271185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 2272185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 2273185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 2274185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 2275185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA3()) == a3.getA1()); 2276185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2277185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 2278185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == 0); 2279185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 2280185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == 0); 2281185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 2282185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2283185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 2284185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 2285185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 2286185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == a3.getA3()); 2287185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == 0); 2288185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 2289185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 2290185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2291185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t39 2292185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2293185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t40 2294185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2295185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2296185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 2297185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2298185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 22999a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 2300185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2301185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 2302185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 2303185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2304185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 2305185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private virtual A1 2306185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2307185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 23089a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 2309185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2310185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 2311185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 2312185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 2313185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2314185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 2315185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private virtual A1, 2316185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant public A2 2317185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2318185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 23199a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 2320185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2321185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return A1::getA1();} 2322185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 2323185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 2324185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 2325185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2326185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 2327185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2328185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 2329185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 2330185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 2331185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 2332185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 2333185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 2334185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2335185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 2336185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == 0); 2337185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 2338185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == 0); 2339185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 2340185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA3()) == a3.getA2()); 2341185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2342185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 2343185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 2344185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 2345185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == 0); 2346185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == a3.getA3()); 2347185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 2348185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 2349185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2350185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t40 2351185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2352185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantnamespace t41 2353185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2354185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2355185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A1 2356185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2357185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[43981]; 23589a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A1() {} 2359185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2360185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 2361185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 2362185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2363185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A2 2364185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private virtual A1 2365185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2366185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[34981]; 23679a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A2() {} 2368185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2369185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return this;} 2370185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 2371185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 2372185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2373185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantstruct A3 2374185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant : private virtual A1, 2375185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant private A2 2376185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2377185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant char _[93481]; 23789a1aad5a7ffe86b7d30157e72cd5a51d2a4f1649Howard Hinnant virtual ~A3() {} 2379185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2380185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1* getA1() {return A1::getA1();} 2381185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2* getA2() {return this;} 2382185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3* getA3() {return this;} 2383185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant}; 2384185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2385185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantvoid test() 2386185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2387185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A1 a1; 2388185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A2 a2; 2389185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant A3 a3; 2390185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a1.getA1()) == a1.getA1()); 2391185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a2.getA1()) == a2.getA1()); 2392185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A1*>(a3.getA1()) == a3.getA1()); 2393185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2394185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a1.getA1()) == 0); 2395185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA1()) == 0); 2396185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a2.getA2()) == a2.getA2()); 2397185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA1()) == 0); 2398185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A2*>(a3.getA2()) == a3.getA2()); 2399185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2400185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a1.getA1()) == 0); 2401185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA1()) == 0); 2402185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a2.getA2()) == 0); 2403185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA1()) == 0); 2404185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA2()) == 0); 2405185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant assert(dynamic_cast<A3*>(a3.getA3()) == a3.getA3()); 2406185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 2407185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2408185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} // t41 2409185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant 2410185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnantint main() 2411185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant{ 2412e571c0cb34dbc3799349cf2166fb422ff9d2c08dDan Albert timer t; 2413185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t1::test(); 2414185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t2::test(); 2415185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t3::test(); 2416185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t4::test(); 2417185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t5::test(); 2418185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t6::test(); 2419185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t7::test(); 2420185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t8::test(); 2421185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t9::test(); 2422185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t10::test(); 2423185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t11::test(); 2424185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t12::test(); 2425185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t13::test(); 2426185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t14::test(); 2427185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t15::test(); 2428185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t16::test(); 2429185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t17::test(); 2430185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t18::test(); 2431185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t19::test(); 2432185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t20::test(); 2433185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t21::test(); 2434185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t22::test(); 2435185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t23::test(); 2436185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t24::test(); 2437185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t25::test(); 2438185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t26::test(); 2439185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t27::test(); 2440185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t28::test(); 2441185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t29::test(); 2442185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t30::test(); 2443185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t31::test(); 2444185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t32::test(); 2445185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t33::test(); 2446185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t34::test(); 2447185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t35::test(); 2448185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t36::test(); 2449185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t37::test(); 2450185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t38::test(); 2451185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t39::test(); 2452185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t40::test(); 2453185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant t41::test(); 2454185dc7d61ff4e58909f043f3a0c0d7d1d87ba7daHoward Hinnant} 2455