This should either have two parameters (`in`, `out`) or use a temporary value, and `MCValueAssign()` that temporary value to the `in/out` parameter to avoid losing references to it.