https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108236
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> --- --- a/libstdc++-v3/include/pstl/numeric_impl.h +++ b/libstdc++-v3/include/pstl/numeric_impl.h @@ -160,9 +160,10 @@ __brick_transform_scan(_ForwardIterator __first, _ForwardIterator __last, _Outpu { for (; __first != __last; ++__first, ++__result) { - *__result = __init; + auto __v = __init; _PSTL_PRAGMA_FORCEINLINE __init = __binary_op(__init, __unary_op(*__first)); + *__result = std::move(__v); } return std::make_pair(__result, __init); }