2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.law / cvt10.C
blob0ae9e20b436352978df328920cf33f8d07233a51
1 // { dg-do assemble  }
2 // GROUPS passed conversions
3 // cvt file
4 // Message-Id: <CC7oHn.B4F@izf.tno.nl>
5 // From: tom@izfcs.izf.tno.nl (Tom Vijlbrief)
6 // Subject: g++ 2.4.5 has problems with NON virtual shared base classes
7 // Date: Mon, 23 Aug 1993 12:10:34 GMT
10 #include        <stdio.h>
12 #define FAIL
14 class Base {
15 public:
16   Base() { printf("Base::Base\n"); }
17   virtual ~Base() { printf("Base::~Base\n"); }
18   virtual void v() { printf("Base::v\n"); }
21 class Base2 {
22 public:
23   Base2() { printf("Base2::Base2\n"); }
24   virtual ~Base2() { printf("Base2::~Base2\n"); }
25   virtual void v() { printf("Base2::v\n"); }
28 class A: public Base {
29 public:
30   A() { printf("A::A\n"); }
31   ~A() { printf("A::~A\n"); }
32   virtual void va() { printf("A::va\n"); }
35 #ifdef FAIL
36 class B: public Base {
37 #else
38 class B: public Base2 {
39 #endif
40 public:
41   B() { printf("B::B\n"); }
42   ~B() { printf("B::~B\n"); }
43   virtual void vb() { printf("B::vb\n"); }
46 class C: public A, public B {
47 public:
48   C() { printf("C::C\n"); }
49   ~C() { printf("C::~C\n"); }
50   void va() { printf("C::va\n"); }
54 int main()
56   C *cp= new C;
57   cp->va();
58   delete cp;