PR libstdc++/87787 fix UBsan error in std::vector

PR libstdc++/87787
	* include/bits/stl_uninitialized.h (__relocate_a_1): Do not call
	memmove when there's nothing to copy (and pointers could be null).

From-SVN: r265984
This commit is contained in:
Jonathan Wakely 2018-11-09 20:14:07 +00:00 committed by Jonathan Wakely
parent fcc499722b
commit 213fd71709
2 changed files with 8 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2018-11-09 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/87787
* include/bits/stl_uninitialized.h (__relocate_a_1): Do not call
memmove when there's nothing to copy (and pointers could be null).
2018-11-07 Hafiz Abid Qadeer <abidh@codesourcery.com>
* configure: Regenerated.

View File

@ -904,7 +904,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_Tp* __result, allocator<_Up>& __alloc)
{
ptrdiff_t __count = __last - __first;
__builtin_memmove(__result, __first, __count * sizeof(_Tp));
if (__count > 0)
__builtin_memmove(__result, __first, __count * sizeof(_Tp));
return __result + __count;
}