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