libstdc++: One more change for Clang to support constexpr std::string [PR103295]
authorJonathan Wakely <jwakely@redhat.com>
Fri, 19 Nov 2021 18:27:59 +0000 (18:27 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Fri, 19 Nov 2021 20:17:52 +0000 (20:17 +0000)
All writes into the allocated buffer need to be via traits_type::assign
to begin lifetimes.

libstdc++-v3/ChangeLog:

PR libstdc++/103295
* include/bits/basic_string.tcc (_M_construct): Use the
traits assign member to write into allcoated memory.

libstdc++-v3/include/bits/basic_string.tcc

index 374406c..6f619a0 100644 (file)
@@ -201,7 +201,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
                _M_data(__another);
                _M_capacity(__capacity);
              }
-           _M_data()[__len++] = *__beg;
+           traits_type::assign(_M_data()[__len++], *__beg);
            ++__beg;
          }