https://gcc.gnu.org/g:cb0988a659cef6324887018b9066c5f81b558832
commit r15-4247-gcb0988a659cef6324887018b9066c5f81b558832 Author: Jonathan Wakely <jwak...@redhat.com> Date: Wed Oct 9 14:24:19 2024 +0100 libstdc++: Fix some test failures with -fno-char8_t libstdc++-v3/ChangeLog: * testsuite/20_util/duration/io.cc [!__cpp_lib_char8_t]: Define char8_t as a typedef for unsigned char. * testsuite/std/format/parse_ctx_neg.cc: Skip for -fno-char8_t. Diff: --- libstdc++-v3/testsuite/20_util/duration/io.cc | 10 ++++++++-- libstdc++-v3/testsuite/std/format/parse_ctx_neg.cc | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/libstdc++-v3/testsuite/20_util/duration/io.cc b/libstdc++-v3/testsuite/20_util/duration/io.cc index 383fb60afe2a..0117673dbdc0 100644 --- a/libstdc++-v3/testsuite/20_util/duration/io.cc +++ b/libstdc++-v3/testsuite/20_util/duration/io.cc @@ -5,6 +5,10 @@ #include <sstream> #include <testsuite_hooks.h> +#ifndef __cpp_lib_char8_t +using char8_t = unsigned char; // Prevent errors if -fno-char8_t is used. +#endif + void test01() { @@ -173,12 +177,14 @@ test_format() #if __cplusplus > 202002L static_assert( ! std::formattable<std::chrono::duration<wchar_t>, char> ); - static_assert( ! std::formattable<std::chrono::duration<char8_t>, char> ); static_assert( ! std::formattable<std::chrono::duration<char16_t>, char> ); static_assert( ! std::formattable<std::chrono::duration<char32_t>, char> ); - static_assert( ! std::formattable<std::chrono::duration<char8_t>, wchar_t> ); static_assert( ! std::formattable<std::chrono::duration<char16_t>, wchar_t> ); static_assert( ! std::formattable<std::chrono::duration<char32_t>, wchar_t> ); +#ifdef __cpp_lib_char8_t + static_assert( ! std::formattable<std::chrono::duration<char8_t>, char> ); + static_assert( ! std::formattable<std::chrono::duration<char8_t>, wchar_t> ); +#endif #endif } diff --git a/libstdc++-v3/testsuite/std/format/parse_ctx_neg.cc b/libstdc++-v3/testsuite/std/format/parse_ctx_neg.cc index d6a4366d7d0b..f19107c886fc 100644 --- a/libstdc++-v3/testsuite/std/format/parse_ctx_neg.cc +++ b/libstdc++-v3/testsuite/std/format/parse_ctx_neg.cc @@ -1,4 +1,5 @@ // { dg-do compile { target c++26 } } +// { dg-skip-if "" { *-*-* } { "-fno-char8_t" } } #include <format>