/* APPLE LOCAL file KEXT indirect-virtual-calls --sts */ /* Radar 3008388: Negative C++ test case. */ /* Origin: Matt Austern <austern@apple.com> */ /* { dg-do compile } */ /* { dg-options "-fapple-kext" } */ struct B1 { virtual ~B1(); virtual void f(); }; /* ok */ struct D1 : B1 { }; /* ok */ struct D2 { }; /* ok */ struct X1 : D1, D2 { }; /* ok */ struct X2 : virtual D1 { }; /* ok */ struct Y1 : X1 { virtual void f(); }; /* ok */ struct Y2 : X2 { virtual void f(); }; /* ok */ void Y1::f() { X1::f(); } /* { dg-error "indirect virtual" } */ void Y2::f() { X2::f(); } /* { dg-error "indirect virtual" } */