On Sat, May 13, 2017 at 03:05:24PM -0400, Random832 wrote: > On Sat, May 13, 2017, at 08:20, Michael Kjörling wrote: > > Correct me if I am wrong, but _pass by value_ as opposed to _pass by > > reference_ requires making a copy, no? That's the whole point, to > > allow the callee to poke at the value it is given at will. > > If that were the issue, the callee could simply automatically make the > copy if-and-only-if it needs it. I recall reading a proposed ABI for C on MIPS which would have done something similar for passing structs by value, namely pass a pointer but allocate local storage space in the callee. If the callee ever assigned to the passed struct, it was to copy the actual values, then update its pointer. I don't think that ABI was ever implemented. DF