// { dg-do assemble } // Bug: g++ uses the same binfo for the a subobject of c and the a subobject // of b, so basetype_paths get bashed improperly. class a { protected: virtual void foo() { } // { dg-bogus "" } }; class b : public virtual a {}; class c : public b { public: void bar() { b::foo(); } // { dg-bogus "" } }; int main() { c test; test.bar(); }