1// { dg-do run } 2// prms-id: 3068 3 4extern "C" int printf(const char *, ...); 5extern "C" void exit(int); 6 7class LB { 8public: 9 virtual int test() { return 0; } 10 virtual ~LB() { } 11protected: 12 LB() { } 13}; 14 15class RRB { 16public: 17 virtual ~RRB() { } 18 virtual void test2(int a) { } 19}; 20 21class RR : public RRB { 22public: 23 virtual ~RR() { } 24}; 25 26class RL { 27public: 28 virtual void real(int a) { 29 printf("RL::real\n"); 30 } 31}; 32 33 34class R : public RL, public RR { 35public: 36 virtual void test3(int a) { } 37 virtual void test2(int a) { } 38}; 39 40class L : public LB { 41}; 42 43class C : public L, public R { 44public: 45 C() { } 46 virtual ~C() { 47 printf("C::~C\n"); 48 exit(1); 49 } 50 virtual void real(int a) { 51 printf("RL::real\n"); 52 } 53}; 54 55int main() { 56 C& bb = *new C; 57 R& mv = bb; 58 bb.real(0); 59 mv.real(0); 60 return 0; 61} 62