OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [g++.old-deja/] [g++.mike/] [p16146.C] - Blame information for rev 338

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 305 jeremybenn
// { dg-do run  }
2
// prms-id: 16146
3
 
4
extern "C" int printf (const char *, ...);
5
 
6
class myFoundation {
7
protected:
8
  myFoundation () { count = 0; }
9
  virtual ~myFoundation () {}
10
 
11
public:
12
  void addRef () { ++count; }
13
  void removeRef () { if (count > 0) --count; }
14
 
15
private:
16
  long count;
17
};
18
 
19
 
20
class firstIntermediate :virtual public myFoundation {
21
public:
22
  firstIntermediate () {}
23
  ~firstIntermediate () {}
24
 
25
  void bar () { printf ("Bar\n"); }
26
};
27
 
28
 
29
class firstBase :  public firstIntermediate {
30
public:
31
  firstBase () {}
32
  ~firstBase () {}
33
 
34
  virtual void g () {}
35
};
36
 
37
 
38
class secondIntermediate : virtual public myFoundation {
39
public:
40
  secondIntermediate () {}
41
  ~secondIntermediate () {}
42
 
43
  virtual void h () {}
44
};
45
 
46
 
47
class secondBase : public secondIntermediate {
48
public:
49
  secondBase () {}
50
  ~secondBase () {}
51
 
52
  virtual void h () {}
53
};
54
 
55
 
56
class typeInterface : virtual public firstBase {
57
public:
58
  typeInterface () {}
59
  ~typeInterface () {}
60
 
61
  virtual void i () {}
62
};
63
 
64
class classServices : virtual public firstBase,
65
                      public secondBase {
66
public:
67
  classServices () {}
68
  ~classServices () {}
69
 
70
  virtual void j () {}
71
};
72
 
73
class classImplementation : public typeInterface,
74
                            public classServices {
75
public:
76
  classImplementation () {}
77
  ~classImplementation () {}
78
 
79
  void g () {}
80
  void h () {}
81
  void i () {}
82
  void j () {}
83
};
84
 
85
int main () {
86
  firstBase* fbp = new classImplementation;
87
  classImplementation* cip = dynamic_cast  (fbp);
88
  cip->addRef();
89
  myFoundation* mfp = cip;
90
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.