diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2024-03-28 21:29:17 +0000 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2024-04-02 20:55:32 +0100 |
commit | 21aa57e73b820395b7b01843d61ef5b84cd20d02 (patch) | |
tree | a64abf38c16a7b2fcaf12fa1734231629ab390e8 | |
parent | ca2f7c84927f85b95f0f48f82b93f1460c372db4 (diff) | |
download | gcc-21aa57e73b820395b7b01843d61ef5b84cd20d02.zip gcc-21aa57e73b820395b7b01843d61ef5b84cd20d02.tar.gz gcc-21aa57e73b820395b7b01843d61ef5b84cd20d02.tar.bz2 |
libstdc++: Guard uses of char8_t with __cpp_char8_t [PR114519]
libstdc++-v3/ChangeLog:
PR libstdc++/114519
* include/bits/unicode.h (_Utf8_view): Guard with check for
char8_t being enabled.
(__literal_encoding_is_unicode): Guard use of char8_t with check
for it being enabled.
* testsuite/std/format/functions/114519.cc: New test.
-rw-r--r-- | libstdc++-v3/include/bits/unicode.h | 10 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/std/format/functions/114519.cc | 3 |
2 files changed, 10 insertions, 3 deletions
diff --git a/libstdc++-v3/include/bits/unicode.h b/libstdc++-v3/include/bits/unicode.h index 51bf02e..0e95c86 100644 --- a/libstdc++-v3/include/bits/unicode.h +++ b/libstdc++-v3/include/bits/unicode.h @@ -578,8 +578,10 @@ namespace __unicode constexpr bool empty() const { return ranges::empty(_M_base); } }; +#ifdef __cpp_char8_t template<typename _View> using _Utf8_view = _Utf_view<char8_t, _View>; +#endif template<typename _View> using _Utf16_view = _Utf_view<char16_t, _View>; template<typename _View> @@ -991,12 +993,14 @@ inline namespace __v15_1_0 consteval bool __literal_encoding_is_unicode() { - if constexpr (is_same_v<_CharT, char8_t>) - return true; - else if constexpr (is_same_v<_CharT, char16_t>) + if constexpr (is_same_v<_CharT, char16_t>) return true; else if constexpr (is_same_v<_CharT, char32_t>) return true; +#ifdef __cpp_char8_t + else if constexpr (is_same_v<_CharT, char8_t>) + return true; +#endif const char* __enc = ""; diff --git a/libstdc++-v3/testsuite/std/format/functions/114519.cc b/libstdc++-v3/testsuite/std/format/functions/114519.cc new file mode 100644 index 0000000..25a112a --- /dev/null +++ b/libstdc++-v3/testsuite/std/format/functions/114519.cc @@ -0,0 +1,3 @@ +// { dg-do compile { target c++20 } } +// { dg-options "-fno-char8_t" } +#include <format> |