]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libstdc++: Fix some test failures with -fno-char8_t
authorJonathan Wakely <jwakely@redhat.com>
Wed, 9 Oct 2024 13:24:19 +0000 (14:24 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Fri, 11 Oct 2024 06:52:36 +0000 (07:52 +0100)
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.

libstdc++-v3/testsuite/20_util/duration/io.cc
libstdc++-v3/testsuite/std/format/parse_ctx_neg.cc

index 383fb60afe2abff51575d296aa3263bf95b07dba..0117673dbdc003877c41ddf16a41ccf29c11630a 100644 (file)
@@ -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
 }
 
index d6a4366d7d0bae23429c8ddc6b497d98be96a97a..f19107c886fc91ab4ef0d3e502436c24bef31fe5 100644 (file)
@@ -1,4 +1,5 @@
 // { dg-do compile { target c++26 } }
+// { dg-skip-if "" { *-*-* } { "-fno-char8_t" } }
 
 #include <format>