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