From: Jan Hubicka Date: Fri, 24 Nov 2023 16:59:44 +0000 (+0100) Subject: Use memcpy instead of memmove in __relocate_a_1 X-Git-Tag: basepoints/gcc-15~4307 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c2dcfb6ba6e9a84a16e63ae73a822ae2a843170c;p=thirdparty%2Fgcc.git Use memcpy instead of memmove in __relocate_a_1 __relocate_a_1 is used to copy data after vector reizing. This can be done by memcpy rather than memmove. libstdc++-v3/ChangeLog: PR middle-end/109849 * include/bits/stl_uninitialized.h (__relocate_a_1): Use memcpy instead of memmove. --- diff --git a/libstdc++-v3/include/bits/stl_uninitialized.h b/libstdc++-v3/include/bits/stl_uninitialized.h index 1282af3bc43f..a9b802774c66 100644 --- a/libstdc++-v3/include/bits/stl_uninitialized.h +++ b/libstdc++-v3/include/bits/stl_uninitialized.h @@ -1119,14 +1119,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #ifdef __cpp_lib_is_constant_evaluated if (std::is_constant_evaluated()) { - // Can't use memmove. Wrap the pointer so that __relocate_a_1 + // Can't use memcpu. Wrap the pointer so that __relocate_a_1 // resolves to the non-trivial overload above. __gnu_cxx::__normal_iterator<_Tp*, void> __out(__result); __out = std::__relocate_a_1(__first, __last, __out, __alloc); return __out.base(); } #endif - __builtin_memmove(__result, __first, __count * sizeof(_Tp)); + __builtin_memcpy(__result, __first, __count * sizeof(_Tp)); } return __result + __count; }