]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libstdc++: Do not assume existence of char8_t codecvt facet
authorJoseph Faulls <Joseph.Faulls@imgtec.com>
Fri, 2 Jun 2023 15:44:48 +0000 (15:44 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Tue, 6 Jun 2023 11:43:47 +0000 (12:43 +0100)
It is not required that codecvt<char8_t, char, mbstate_t> facet be
supported by the locale, nor is it added as part of the default locale.
This can lead to dangerous behaviour when static_cast.

libstdc++-v3/ChangeLog:

* include/bits/locale_classes.tcc: Remove check for
codecvt<char8_t, char, mbstate_t> facet.

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

index 94838cd7796e27b41397676a434d7493771b1e9d..2351dd5bcfb316310340276aaf2a0dc388b51e3b 100644 (file)
@@ -129,9 +129,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       _GLIBCXX_STD_FACET(time_put<wchar_t>);
       _GLIBCXX_STD_FACET(messages<wchar_t>);
 #endif
-#ifdef _GLIBCXX_USE_CHAR8_T
-      _GLIBCXX_STD_FACET(codecvt<char8_t, char, mbstate_t>);
-#endif
 #if __cplusplus >= 201103L
       _GLIBCXX_STD_FACET(codecvt<char16_t, char, mbstate_t>);
       _GLIBCXX_STD_FACET(codecvt<char32_t, char, mbstate_t>);