1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
// { 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;