// { dg-do run } extern "C" void abort (); struct B { B() {} B(const B& b) { abort (); } }; struct D : public B { D() {} D(const D& d) : B() {} }; D d; B b; D f() { return d; } int main () { b = (true ? f() : b); }