2 // Origin: Giovanni Bajo <giovannibajo at gcc dot gnu dot org>
3 // DR185: "Named" temporaries and copy elision
5 extern "C" void abort(void);
9 explicit A(int i) : value(i) {}
10 void mutate(int i) const { value = i; }
15 A n(t); // can this copy be elided? NO!
17 return n.value; // can this return 2? NO!