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*

Reply via email to