summaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2022-07-07 13:40:20 +0100
committerJonathan Wakely <jwakely@redhat.com>2022-07-07 17:38:14 +0100
commitad6135e261ced29972e5aa33404e45bcdd99440f (patch)
tree20b59fc0ce7dd752b0a70ec0bdc79fe157ac3aa3 /libstdc++-v3
parent9de8fbe1507d8c6e7c9657657a3c05337b8fde23 (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.h9
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