1*b725ae77Skettenis class A { 2*b725ae77Skettenis public: 3*b725ae77Skettenis int a; 4*b725ae77Skettenis int aa; 5*b725ae77Skettenis A()6*b725ae77Skettenis A() 7*b725ae77Skettenis { 8*b725ae77Skettenis a=1; 9*b725ae77Skettenis aa=2; 10*b725ae77Skettenis } 11*b725ae77Skettenis int afoo(); 12*b725ae77Skettenis int foo(); 13*b725ae77Skettenis 14*b725ae77Skettenis }; 15*b725ae77Skettenis 16*b725ae77Skettenis 17*b725ae77Skettenis 18*b725ae77Skettenis class B { 19*b725ae77Skettenis public: 20*b725ae77Skettenis int b; 21*b725ae77Skettenis int bb; 22*b725ae77Skettenis B()23*b725ae77Skettenis B() 24*b725ae77Skettenis { 25*b725ae77Skettenis b=3; 26*b725ae77Skettenis bb=4; 27*b725ae77Skettenis } 28*b725ae77Skettenis int bfoo(); 29*b725ae77Skettenis int foo(); 30*b725ae77Skettenis 31*b725ae77Skettenis }; 32*b725ae77Skettenis 33*b725ae77Skettenis 34*b725ae77Skettenis 35*b725ae77Skettenis class C { 36*b725ae77Skettenis public: 37*b725ae77Skettenis int c; 38*b725ae77Skettenis int cc; 39*b725ae77Skettenis C()40*b725ae77Skettenis C() 41*b725ae77Skettenis { 42*b725ae77Skettenis c=5; 43*b725ae77Skettenis cc=6; 44*b725ae77Skettenis } 45*b725ae77Skettenis int cfoo(); 46*b725ae77Skettenis int foo(); 47*b725ae77Skettenis 48*b725ae77Skettenis }; 49*b725ae77Skettenis 50*b725ae77Skettenis 51*b725ae77Skettenis 52*b725ae77Skettenis class D : private A, public B, protected C { 53*b725ae77Skettenis public: 54*b725ae77Skettenis int d; 55*b725ae77Skettenis int dd; 56*b725ae77Skettenis D()57*b725ae77Skettenis D() 58*b725ae77Skettenis { 59*b725ae77Skettenis d =7; 60*b725ae77Skettenis dd=8; 61*b725ae77Skettenis } 62*b725ae77Skettenis int dfoo(); 63*b725ae77Skettenis int foo(); 64*b725ae77Skettenis 65*b725ae77Skettenis }; 66*b725ae77Skettenis 67*b725ae77Skettenis 68*b725ae77Skettenis class E : public A, B, protected C { 69*b725ae77Skettenis public: 70*b725ae77Skettenis int e; 71*b725ae77Skettenis int ee; 72*b725ae77Skettenis E()73*b725ae77Skettenis E() 74*b725ae77Skettenis { 75*b725ae77Skettenis e =9; 76*b725ae77Skettenis ee=10; 77*b725ae77Skettenis } 78*b725ae77Skettenis int efoo(); 79*b725ae77Skettenis int foo(); 80*b725ae77Skettenis 81*b725ae77Skettenis }; 82*b725ae77Skettenis 83*b725ae77Skettenis 84*b725ae77Skettenis class F : A, public B, C { 85*b725ae77Skettenis public: 86*b725ae77Skettenis int f; 87*b725ae77Skettenis int ff; 88*b725ae77Skettenis F()89*b725ae77Skettenis F() 90*b725ae77Skettenis { 91*b725ae77Skettenis f =11; 92*b725ae77Skettenis ff=12; 93*b725ae77Skettenis } 94*b725ae77Skettenis int ffoo(); 95*b725ae77Skettenis int foo(); 96*b725ae77Skettenis 97*b725ae77Skettenis }; 98*b725ae77Skettenis 99*b725ae77Skettenis class G : private A, public B, protected C { 100*b725ae77Skettenis public: 101*b725ae77Skettenis int g; 102*b725ae77Skettenis int gg; 103*b725ae77Skettenis int a; 104*b725ae77Skettenis int b; 105*b725ae77Skettenis int c; 106*b725ae77Skettenis G()107*b725ae77Skettenis G() 108*b725ae77Skettenis { 109*b725ae77Skettenis g =13; 110*b725ae77Skettenis gg =14; 111*b725ae77Skettenis a=15; 112*b725ae77Skettenis b=16; 113*b725ae77Skettenis c=17; 114*b725ae77Skettenis 115*b725ae77Skettenis } 116*b725ae77Skettenis int gfoo(); 117*b725ae77Skettenis int foo(); 118*b725ae77Skettenis 119*b725ae77Skettenis }; 120*b725ae77Skettenis 121*b725ae77Skettenis 122*b725ae77Skettenis 123*b725ae77Skettenis afoo()124*b725ae77Skettenisint A::afoo() { 125*b725ae77Skettenis return 1; 126*b725ae77Skettenis } 127*b725ae77Skettenis bfoo()128*b725ae77Skettenisint B::bfoo() { 129*b725ae77Skettenis return 2; 130*b725ae77Skettenis } 131*b725ae77Skettenis cfoo()132*b725ae77Skettenisint C::cfoo() { 133*b725ae77Skettenis return 3; 134*b725ae77Skettenis } 135*b725ae77Skettenis dfoo()136*b725ae77Skettenisint D::dfoo() { 137*b725ae77Skettenis return 4; 138*b725ae77Skettenis } 139*b725ae77Skettenis efoo()140*b725ae77Skettenisint E::efoo() { 141*b725ae77Skettenis return 5; 142*b725ae77Skettenis } 143*b725ae77Skettenis ffoo()144*b725ae77Skettenisint F::ffoo() { 145*b725ae77Skettenis return 6; 146*b725ae77Skettenis } 147*b725ae77Skettenis gfoo()148*b725ae77Skettenisint G::gfoo() { 149*b725ae77Skettenis return 77; 150*b725ae77Skettenis } 151*b725ae77Skettenis foo()152*b725ae77Skettenisint A::foo() 153*b725ae77Skettenis { 154*b725ae77Skettenis return 7; 155*b725ae77Skettenis 156*b725ae77Skettenis } 157*b725ae77Skettenis foo()158*b725ae77Skettenisint B::foo() 159*b725ae77Skettenis { 160*b725ae77Skettenis return 8; 161*b725ae77Skettenis 162*b725ae77Skettenis } 163*b725ae77Skettenis foo()164*b725ae77Skettenisint C::foo() 165*b725ae77Skettenis { 166*b725ae77Skettenis return 9; 167*b725ae77Skettenis 168*b725ae77Skettenis } 169*b725ae77Skettenis foo()170*b725ae77Skettenisint D::foo() 171*b725ae77Skettenis { 172*b725ae77Skettenis return 10; 173*b725ae77Skettenis 174*b725ae77Skettenis } 175*b725ae77Skettenis foo()176*b725ae77Skettenisint E::foo() 177*b725ae77Skettenis { 178*b725ae77Skettenis return 11; 179*b725ae77Skettenis 180*b725ae77Skettenis } 181*b725ae77Skettenis foo()182*b725ae77Skettenisint F::foo() 183*b725ae77Skettenis { 184*b725ae77Skettenis return 12; 185*b725ae77Skettenis 186*b725ae77Skettenis } 187*b725ae77Skettenis foo()188*b725ae77Skettenisint G::foo() 189*b725ae77Skettenis { 190*b725ae77Skettenis return 13; 191*b725ae77Skettenis 192*b725ae77Skettenis } 193*b725ae77Skettenis 194*b725ae77Skettenis marker1()195*b725ae77Skettenisvoid marker1() 196*b725ae77Skettenis { 197*b725ae77Skettenis } 198*b725ae77Skettenis 199*b725ae77Skettenis main(void)200*b725ae77Skettenisint main(void) 201*b725ae77Skettenis { 202*b725ae77Skettenis 203*b725ae77Skettenis A a_instance; 204*b725ae77Skettenis B b_instance; 205*b725ae77Skettenis C c_instance; 206*b725ae77Skettenis D d_instance; 207*b725ae77Skettenis E e_instance; 208*b725ae77Skettenis F f_instance; 209*b725ae77Skettenis G g_instance; 210*b725ae77Skettenis 211*b725ae77Skettenis #ifdef usestubs 212*b725ae77Skettenis set_debug_traps(); 213*b725ae77Skettenis breakpoint(); 214*b725ae77Skettenis #endif 215*b725ae77Skettenis 216*b725ae77Skettenis 217*b725ae77Skettenis marker1(); // marker1-returns-here 218*b725ae77Skettenis 219*b725ae77Skettenis a_instance.a = 20; // marker1-returns-here 220*b725ae77Skettenis a_instance.aa = 21; 221*b725ae77Skettenis b_instance.b = 22; 222*b725ae77Skettenis b_instance.bb = 23; 223*b725ae77Skettenis c_instance.c = 24; 224*b725ae77Skettenis c_instance.cc = 25; 225*b725ae77Skettenis d_instance.d = 26; 226*b725ae77Skettenis d_instance.dd = 27; 227*b725ae77Skettenis e_instance.e = 28; 228*b725ae77Skettenis e_instance.ee =29; 229*b725ae77Skettenis f_instance.f =30; 230*b725ae77Skettenis f_instance.ff =31; 231*b725ae77Skettenis 232*b725ae77Skettenis 233*b725ae77Skettenis 234*b725ae77Skettenis 235*b725ae77Skettenis return 0; 236*b725ae77Skettenis 237*b725ae77Skettenis } 238*b725ae77Skettenis 239*b725ae77Skettenis 240*b725ae77Skettenis 241