[Bug libstdc++/105995] QoI: constexpr basic_string variable must use all of its SSO buffer

redi at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Jun 16 11:14:19 GMT 2022


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105995

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2022-06-16
           Severity|normal                      |enhancement

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
This makes it work:

--- a/libstdc++-v3/include/bits/basic_string.h
+++ b/libstdc++-v3/include/bits/basic_string.h
@@ -352,7 +352,8 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11
       {
 #if __cpp_lib_is_constant_evaluated
        if (std::is_constant_evaluated())
-         _M_local_buf[0] = _CharT();
+         for (_CharT& __c : _M_local_buf)
+           __c = _CharT();
 #endif
        return _M_local_data();
       }


More information about the Gcc-bugs mailing list