// { dg-additional-options "--param early-inlining-insns=3 --param ipa-cp-eval-threshold=100" }
struct A {
int a;
};
struct B {
int b;
};
struct C : B, A {};
struct RA {
virtual A *operator-();
};
struct RC : RA {
C *operator-() {
C *x = new C();
return x;
}
};
void fop(RC *x) { -static_cast<RA &>(*x); }