[gcc r15-3068] libstdc++: Use strlen for std::char_traits<char8_t>::length [PR102958]

Jonathan Wakely redi@gcc.gnu.org
Wed Aug 21 10:59:54 GMT 2024


https://gcc.gnu.org/g:fd7dabc116b9abc40ee6aa25bcc5d240b8cc516a

commit r15-3068-gfd7dabc116b9abc40ee6aa25bcc5d240b8cc516a
Author: Jonathan Wakely <jwakely@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*


More information about the Libstdc++-cvs mailing list