![]() Currently, unary expressions involving valarray will create a temporary. This leads to dangling references in expressions like `-a * b`, because `-a` is a temporary and the resulting expression will refer to it. This patch fixes the problem by creating a lazy expression to perform the unary operation instead of eagerly creating a temporary valarray. This is permitted by the Standard, which does not specify the exact type of most expressions involving valarrays. This is technically an ABI break, however I believe the actual potential for breakage is very low. rdar://90152242 Differential Revision: https://reviews.llvm.org/D125019 |
||
---|---|---|
.. | ||
class.gslice | ||
class.slice | ||
template.gslice.array | ||
template.indirect.array | ||
template.mask.array | ||
template.slice.array | ||
template.valarray | ||
valarray.nonmembers | ||
valarray.range | ||
valarray.syn |