1// { dg-do run } 2// PR c++/11750 3 4struct A 5{ 6 virtual void f() const { __builtin_abort(); } 7 virtual void g() {} 8}; 9 10struct B : virtual A 11{ 12 virtual void f() const {} 13 virtual void g() { __builtin_abort(); } 14}; 15 16struct C : B, virtual A 17{ 18 using A::f; 19 using A::g; 20}; 21 22int main() 23{ 24 C c; 25 c.f(); // call B::f 26 27 C c2; 28 c2.C::g(); // call A::g 29 30 C* c3 = &c; 31 c3->f(); // call B::f 32 33 C& c4 = c; 34 c4.f(); // call B::f 35 36 C const* c5 = &c; 37 c5->f(); // call B::f 38 39 C** c6 = &c3; 40 (*c6)->f(); // call B::f 41 42 C const& c7 = c; 43 c7.f(); // call B::f 44} 45