2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.robertl / eb46.C
blob0a233d358f029090b10aa45abb1c65da8ec310c7
1 // { dg-do run  }
2 #include <iostream>
4 class A1 {
5         friend class B;
6  public:
7         virtual void foo() {};
8 };
10 class A2 : public virtual A1 {friend class B;};
12 class A3 : public virtual A1, private A2 {friend class B;};
14 class B
16  public:
17         B(A1* a) : itsA(dynamic_cast<A2*>(a)) {};
18         A2* itsA;
21 int main()
23         A1* a=new A3;
24         B b(a);
26         if (b.itsA) 
27           std::cout << "cast ok" << std::endl; 
28         else 
29           std::cout << "cast failed" << std::endl;
30         return 0;