![]() 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 |
||
---|---|---|
.. | ||
valarray.access | ||
valarray.assign | ||
valarray.cassign | ||
valarray.cons | ||
valarray.members | ||
valarray.sub | ||
valarray.unary | ||
types.pass.cpp |