3:02 PM
1. An operation taking the address of a variable is allowed to replace the reference held by that variable. The fact that is_unique will not actually replace it is opaque to the optimizer. 2. If the refcount is 1 when the reference is replaced, the referent is deallocated. 3. A different source-level variable pointing at the same referent must not be changed/invalidated by such a call. 4. If such a variable exists, the compiler must guarantee the refcount is > 1 going into the call.