OSDN Git Service

de5e4b6962c4ad068f6995d659b9c357caa833a1
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.old-deja / g++.mike / p4736c.C
1 // prms-id: 4736
2
3 int did_fail;
4
5 class Rep {
6 public:
7   virtual ~Rep() { }
8 };
9
10 class Rep_1 : public Rep {
11 };
12
13 class VBaseMain {
14 public:
15   virtual ~VBaseMain() { }
16 };
17
18 class OtherVBase {
19 public:
20   virtual ~OtherVBase() { }
21 };
22
23 class Rep_2 : public Rep {
24 };
25
26 class DVBase : public VBaseMain, public Rep_2, public OtherVBase {
27 public:
28   virtual ~DVBase() { }
29 };
30
31 class Main : public Rep_1, virtual public DVBase {
32 public:
33   virtual ~Main() { did_fail = 0; }
34 };
35
36 main() {
37   Main* m;
38   did_fail = 1;
39   delete new Main;
40   if (did_fail)
41     return 1;
42   did_fail = 1;
43   delete (Rep*)(Rep_1*)new Main;
44   if (did_fail)
45     return 2;
46   did_fail = 1;
47   delete (DVBase*)new Main;
48   if (did_fail)
49     return 3;
50   did_fail = 1;
51   delete (VBaseMain*)(DVBase*)new Main;
52   if (did_fail)
53     return 4;
54   did_fail = 1;
55   delete (Rep*)(Rep_2*)(DVBase*)new Main;
56   if (did_fail)
57     return 5;
58   did_fail = 1;
59   delete (OtherVBase*)(DVBase*)new Main;
60   if (did_fail)
61     return 6;
62 }