1// { dg-do run  }
2// prms-id: 4623
3
4class base {
5public:
6  int b_data;
7  base( int i=0 ) { b_data = i; }
8  void b_print() { }
9};
10
11class base1: virtual public base {
12public:
13  int b1_data;
14  base1( int i = 0 ) { b1_data = i; b_data++; }
15  void b1_print() { }
16};
17
18class base2: virtual public base {
19public:
20  int b2_data;
21  base2( int i = 0 ) { b2_data = i; b_data++; }
22  void b2_print() { }
23};
24
25class base3: public base {};
26
27class derived: public base3, public base1, public base2 {
28public:
29  int d_data;
30  derived( int i ) { d_data = i; ((base3 *)this)->b_data++; }
31  void d_print() { }
32};
33
34int main() {
35  derived d(1); d.d_print(); return 0;
36}
37