https://gcc.gnu.org/g:fd7dabc116b9abc40ee6aa25bcc5d240b8cc516a
commit r15-3068-gfd7dabc116b9abc40ee6aa25bcc5d240b8cc516a Author: Jonathan Wakely <jwak...@redhat.com> Date: Tue Jan 9 16:19:20 2024 +0000 libstdc++: Use strlen for std::char_traits<char8_t>::length [PR102958] libstdc++-v3/ChangeLog: PR tree-optimization/102958 * include/bits/char_traits.h (char_traits<char8_t>::length): Use strlen. Diff: --- libstdc++-v3/include/bits/char_traits.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/libstdc++-v3/include/bits/char_traits.h b/libstdc++-v3/include/bits/char_traits.h index 3074e9bb77e2..ac3e43e34b96 100644 --- a/libstdc++-v3/include/bits/char_traits.h +++ b/libstdc++-v3/include/bits/char_traits.h @@ -651,10 +651,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION if (std::__is_constant_evaluated()) return __gnu_cxx::char_traits<char_type>::length(__s); #endif - size_t __i = 0; - while (!eq(__s[__i], char_type())) - ++__i; - return __i; + return __builtin_strlen((const char*)__s); } static _GLIBCXX17_CONSTEXPR const char_type*