diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2022-07-07 13:40:20 +0100 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2022-07-07 17:38:14 +0100 |
commit | ad6135e261ced29972e5aa33404e45bcdd99440f (patch) | |
tree | 20b59fc0ce7dd752b0a70ec0bdc79fe157ac3aa3 /libstdc++-v3 | |
parent | 9de8fbe1507d8c6e7c9657657a3c05337b8fde23 (diff) |
libstdc++: Remove workaround in __gnu_cxx::char_traits::move [PR89074]
The front-end bug that prevented this constexpr loop from working has
been fixed since GCC 12.1 so we can remove the workaround.
libstdc++-v3/ChangeLog:
PR c++/89074
* include/bits/char_traits.h (__gnu_cxx::char_traits::move):
Remove workaround for front-end bug.
Diffstat (limited to 'libstdc++-v3')
-rw-r--r-- | libstdc++-v3/include/bits/char_traits.h | 9 |
1 files changed, 0 insertions, 9 deletions
diff --git a/libstdc++-v3/include/bits/char_traits.h b/libstdc++-v3/include/bits/char_traits.h index b856b1da320..965ff29b75c 100644 --- a/libstdc++-v3/include/bits/char_traits.h +++ b/libstdc++-v3/include/bits/char_traits.h @@ -215,14 +215,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { if (__s1 == __s2) // unlikely, but saves a lot of work return __s1; -#if __cpp_constexpr_dynamic_alloc - // The overlap detection below fails due to PR c++/89074, - // so use a temporary buffer instead. - char_type* __tmp = new char_type[__n]; - copy(__tmp, __s2, __n); - copy(__s1, __tmp, __n); - delete[] __tmp; -#else const auto __end = __s2 + __n - 1; bool __overlap = false; for (std::size_t __i = 0; __i < __n - 1; ++__i) @@ -244,7 +236,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } else copy(__s1, __s2, __n); -#endif return __s1; } #endif |