// Build don't link:
// 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;