RISC-V: Fix rtl checking enabled failure with -msave-restore.
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.mike / p16146.C
blob991a793e5ea7341abc1c6d0b55f48a3883df931b
1 // { dg-do run  }
2 // prms-id: 16146
4 extern "C" int printf (const char *, ...);
6 class myFoundation {
7 protected:
8   myFoundation () { count = 0; }
9   virtual ~myFoundation () {}
11 public:
12   void addRef () { ++count; }
13   void removeRef () { if (count > 0) --count; }
15 private:
16   long count;
20 class firstIntermediate :virtual public myFoundation {
21 public:
22   firstIntermediate () {}
23   ~firstIntermediate () {}
25   void bar () { printf ("Bar\n"); }
29 class firstBase :  public firstIntermediate {
30 public:
31   firstBase () {}
32   ~firstBase () {}
34   virtual void g () {}
38 class secondIntermediate : virtual public myFoundation {
39 public:
40   secondIntermediate () {}
41   ~secondIntermediate () {}
43   virtual void h () {}
47 class secondBase : public secondIntermediate {
48 public:
49   secondBase () {}
50   ~secondBase () {}
52   virtual void h () {}
56 class typeInterface : virtual public firstBase {
57 public:
58   typeInterface () {}
59   ~typeInterface () {}
61   virtual void i () {}
64 class classServices : virtual public firstBase,
65                       public secondBase {
66 public:
67   classServices () {}
68   ~classServices () {}
70   virtual void j () {}
73 class classImplementation : public typeInterface,
74                             public classServices {
75 public:
76   classImplementation () {}
77   ~classImplementation () {}
79   void g () {}
80   void h () {}
81   void i () {}
82   void j () {}
85 int main () {
86   firstBase* fbp = new classImplementation;
87   classImplementation* cip = dynamic_cast <classImplementation*> (fbp);
88   cip->addRef();
89   myFoundation* mfp = cip;