// { dg-do assemble } // GROUPS passed miscellaneous // This should not complain about A::f being abstract. struct A { virtual int f() = 0; }; struct B : virtual A { virtual int f() { return 1; } virtual int g() = 0; }; struct C: B { int g() { return 2; } }; C c;