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()21 main ()
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