1 // { dg-do run } 2 // Author: Alfred Miniarik <a8601248@unet.univie.ac.at> 3 4 // Even in a derived class, a private base cannot be dynamically downcasted 5 // from. 6 7 extern "C" void abort(); 8 9 struct A { ~AA10 virtual ~A () {} 11 }; 12 13 struct B : private A { a2bB14 B* a2b (A* objp) 15 { 16 return dynamic_cast<B*> (objp); 17 } 18 }; 19 20 int main()21main () 22 { 23 B b; 24 A* aptr = (A*) &b; 25 if (dynamic_cast <B*> (aptr)) abort (); 26 if (b.a2b (aptr)) abort(); 27 return 0; 28 } 29