[PATCH] D39562: [CodeGen][ObjC] Fix an assertion failure caused by copy elision
John McCall via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Dec 12 12:41:59 PST 2017
rjmccall added a comment.
Hmm. The OVE-ing of the RHS of a property assignment is just there to make the original source structure clearer. Maybe the right solution here is to set a flag in the OVE that says that it's a unique semantic reference to its source expression, and then change IRGen to just recurse through OVEs with that flag set (and not pre-bind it).
You should make sure that we don't get this assertion with mandatory copy-elision and ?:, which does actually use its LHS multiple times semantically (and which cannot safely perform mandatory copy-elision on it).
More information about the cfe-commits