// { dg-do run } // prms-id: 3068 extern "C" int printf(const char *, ...); extern "C" void exit(int); class LB { public: virtual int test() { return 0; } virtual ~LB() { } protected: LB() { } }; class RRB { public: virtual ~RRB() { } virtual void test2(int a) { } }; class RR : public RRB { public: virtual ~RR() { } }; class RL { public: virtual void real(int a) { printf("RL::real\n"); } }; class R : public RL, public RR { public: virtual void test3(int a) { } virtual void test2(int a) { } }; class L : public LB { }; class C : public L, public R { public: C() { } virtual ~C() { printf("C::~C\n"); exit(1); } virtual void real(int a) { printf("RL::real\n"); } }; int main() { C& bb = *new C; R& mv = bb; bb.real(0); mv.real(0); return 0; }