+2009-09-06 Paolo Carlini <paolo.carlini@oracle.com>
+
+ PR libstdc++/41267
+ * include/bits/stl_algobase.h (__copy_move::__copy_m,
+ __copy_move_backward::__copy_move_b): Don't call __builtin_memmove
+ with a null third argument.
+
2009-09-04 Benjamin Kosnik <bkoz@redhat.com>
Revert.
static _Tp*
__copy_m(const _Tp* __first, const _Tp* __last, _Tp* __result)
{
- __builtin_memmove(__result, __first,
- sizeof(_Tp) * (__last - __first));
- return __result + (__last - __first);
+ const ptrdiff_t _Num = __last - __first;
+ if (_Num)
+ __builtin_memmove(__result, __first, sizeof(_Tp) * _Num);
+ return __result + _Num;
}
};
__copy_move_b(const _Tp* __first, const _Tp* __last, _Tp* __result)
{
const ptrdiff_t _Num = __last - __first;
- __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num);
+ if (_Num)
+ __builtin_memmove(__result - _Num, __first, sizeof(_Tp) * _Num);
return __result - _Num;
}
};