Commit | Line | Data |
---|---|---|
edf3d5f3 TT |
1 | // This first batch of classes are for PR 11226. |
2 | namespace mc { | |
3 | class Base { | |
4 | protected: | |
5 | int x; | |
6 | ||
7 | public: | |
8 | Base(void) { x = 2; }; | |
9 | }; | |
10 | } | |
11 | ||
12 | namespace ph { | |
13 | class Middle: public virtual mc::Base { | |
14 | protected: | |
15 | int y; | |
16 | ||
17 | public: | |
18 | Middle(void): mc::Base() { y = 3; }; | |
19 | ||
20 | int get_y(void) | |
21 | { | |
22 | return y; // breakpoint 1 | |
23 | }; | |
24 | }; | |
25 | ||
26 | class Derived: public virtual Middle { | |
27 | protected: | |
28 | int z; | |
29 | ||
30 | public: | |
31 | Derived(void): Middle() { z = 4; }; | |
32 | ||
33 | int get_z(void) | |
34 | { | |
35 | return z; // breakpoint 2 | |
36 | }; | |
37 | }; | |
38 | } | |
39 | ||
40 | // These classes are for PR 9629. | |
41 | struct A {}; | |
42 | struct B : virtual A {}; | |
43 | ||
44 | struct C {int v; C() {v=11;};}; | |
45 | struct D:virtual C{}; | |
46 | ||
47 | class E:B,D{}; | |
48 | ||
49 | int main() { | |
50 | ph::Derived tst; | |
51 | tst.get_y(); | |
52 | tst.get_z(); | |
53 | ||
54 | E *e = new E; | |
55 | ||
56 | return 0; // breakpoint 3 | |
57 | } |