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.
rdar://90152242
Add _LIBCPP_HIDE_FROM_ABI?