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
7extern "C" void abort();
8
9struct A {
10  virtual ~A () {}
11};
12
13struct B : private A {
14  B* a2b (A* objp)
15  {
16    return dynamic_cast<B*> (objp);
17  }
18};
19
20int
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