2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.mike / p4736c.C
blobd260b3afeb592ed5e7520f7a6b1e33838cc5d2a5
1 // { dg-do run  }
2 // prms-id: 4736
4 int did_fail;
6 class Rep {
7 public:
8   virtual ~Rep() { }
9 };
11 class Rep_1 : public Rep {
14 class VBaseMain {
15 public:
16   virtual ~VBaseMain() { }
19 class OtherVBase {
20 public:
21   virtual ~OtherVBase() { }
24 class Rep_2 : public Rep {
27 class DVBase : public VBaseMain, public Rep_2, public OtherVBase {
28 public:
29   virtual ~DVBase() { }
32 class Main : public Rep_1, virtual public DVBase {
33 public:
34   virtual ~Main() { did_fail = 0; }
37 int main() {
38   Main* m;
39   did_fail = 1;
40   delete new Main;
41   if (did_fail)
42     return 1;
43   did_fail = 1;
44   delete (Rep*)(Rep_1*)new Main;
45   if (did_fail)
46     return 2;
47   did_fail = 1;
48   delete (DVBase*)new Main;
49   if (did_fail)
50     return 3;
51   did_fail = 1;
52   delete (VBaseMain*)(DVBase*)new Main;
53   if (did_fail)
54     return 4;
55   did_fail = 1;
56   delete (Rep*)(Rep_2*)(DVBase*)new Main;
57   if (did_fail)
58     return 5;
59   did_fail = 1;
60   delete (OtherVBase*)(DVBase*)new Main;
61   if (did_fail)
62     return 6;