* [committed] libstdc++: Fix tests that fail with -fno-char8_t
@ 2024-04-08 16:45 Jonathan Wakely
0 siblings, 0 replies; only message in thread
From: Jonathan Wakely @ 2024-04-08 16:45 UTC (permalink / raw)
To: libstdc++, gcc-patches
Tested x86_64-linux and aarch64-linux. Pushed to trunk.
-- >8 --
Adjust expected errors or skip tests as UNSUPPORTED if -fno-char8_t is
used in the test flags.
libstdc++-v3/ChangeLog:
* testsuite/20_util/integer_comparisons/equal_neg.cc: Use
no-opts selector for errors that depend on -fchar8_t.
* testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
Likewise.
* testsuite/20_util/integer_comparisons/greater_neg.cc:
Likewise.
* testsuite/20_util/integer_comparisons/in_range_neg.cc:
Likewise.
* testsuite/20_util/integer_comparisons/less_equal_neg.cc:
Likewise.
* testsuite/20_util/integer_comparisons/less_neg.cc: Likewise.
* testsuite/20_util/integer_comparisons/not_equal_neg.cc:
Likewise.
* testsuite/21_strings/basic_string/hash/hash_char8_t.cc: Skip
if -fno-char8_t is used.
* testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
Likewise.
* testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc:
Likewise.
* testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc:
Likewise.
* testsuite/27_io/filesystem/path/factory/u8path-depr.cc: Use
char for u8 literal if char8_t is not available.
* testsuite/27_io/headers/iosfwd/synopsis.cc: Check
__cpp_char8_t.
* testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
* testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc:
Remove check for _GLIBCXX_USE_CHAR8_T.
---
.../testsuite/20_util/integer_comparisons/equal_neg.cc | 4 ++--
.../20_util/integer_comparisons/greater_equal_neg.cc | 4 ++--
.../testsuite/20_util/integer_comparisons/greater_neg.cc | 4 ++--
.../testsuite/20_util/integer_comparisons/in_range_neg.cc | 6 ++++--
.../testsuite/20_util/integer_comparisons/less_equal_neg.cc | 4 ++--
.../testsuite/20_util/integer_comparisons/less_neg.cc | 4 ++--
.../testsuite/20_util/integer_comparisons/not_equal_neg.cc | 4 ++--
.../testsuite/21_strings/basic_string/hash/hash_char8_t.cc | 1 +
| 1 +
.../27_io/basic_ostream/inserters_character/char/deleted.cc | 1 +
.../basic_ostream/inserters_character/wchar_t/deleted.cc | 1 +
.../testsuite/27_io/filesystem/path/factory/u8path-depr.cc | 4 +++-
| 2 +-
.../testsuite/29_atomics/atomic_integral/wait_notify.cc | 2 ++
| 2 --
15 files changed, 26 insertions(+), 18 deletions(-)
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/equal_neg.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/equal_neg.cc
index 06cfd6ee8f4..7290e9e2417 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/equal_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/equal_neg.cc
@@ -25,8 +25,8 @@ bool c = std::cmp_equal(2, L'2'); // { dg-error "here" }
bool d = std::cmp_equal(L'2', 2); // { dg-error "here" }
bool e = std::cmp_equal(true, 1); // { dg-error "here" }
bool f = std::cmp_equal(0, false); // { dg-error "here" }
-bool g = std::cmp_equal(97, u8'a'); // { dg-error "here" }
-bool h = std::cmp_equal(u8'a', 97); // { dg-error "here" }
+bool g = std::cmp_equal(97, u8'a'); // { dg-error "here" "" { target { no-opts "-fno-char8_t" } } }
+bool h = std::cmp_equal(u8'a', 97); // { dg-error "here" "" { target { no-opts "-fno-char8_t" } } }
bool i = std::cmp_equal(97, u'a'); // { dg-error "here" }
bool j = std::cmp_equal(u'a', 97); // { dg-error "here" }
bool k = std::cmp_equal(97, U'a'); // { dg-error "here" }
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal_neg.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal_neg.cc
index b5f03b70733..cb60bfe9d07 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal_neg.cc
@@ -25,8 +25,8 @@ bool c = std::cmp_greater_equal(2, L'2'); // { dg-error "constexpr" }
bool d = std::cmp_greater_equal(L'2', 2); // { dg-error "constexpr" }
bool e = std::cmp_greater_equal(true, 1); // { dg-error "constexpr" }
bool f = std::cmp_greater_equal(0, false); // { dg-error "constexpr" }
-bool g = std::cmp_greater_equal(97, u8'a'); // { dg-error "constexpr" }
-bool h = std::cmp_greater_equal(u8'a', 97); // { dg-error "constexpr" }
+bool g = std::cmp_greater_equal(97, u8'a'); // { dg-error "constexpr" "" { target { no-opts "-fno-char8_t" } } }
+bool h = std::cmp_greater_equal(u8'a', 97); // { dg-error "constexpr" "" { target { no-opts "-fno-char8_t" } } }
bool i = std::cmp_greater_equal(97, u'a'); // { dg-error "constexpr" }
bool j = std::cmp_greater_equal(u'a', 97); // { dg-error "constexpr" }
bool k = std::cmp_greater_equal(97, U'a'); // { dg-error "constexpr" }
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_neg.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_neg.cc
index 676a03b47fd..d5ff52cee54 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_neg.cc
@@ -25,8 +25,8 @@ bool c = std::cmp_greater(2, L'2'); // { dg-error "constexpr" }
bool d = std::cmp_greater(L'2', 2); // { dg-error "constexpr" }
bool e = std::cmp_greater(true, 1); // { dg-error "constexpr" }
bool f = std::cmp_greater(0, false); // { dg-error "constexpr" }
-bool g = std::cmp_greater(97, u8'a'); // { dg-error "constexpr" }
-bool h = std::cmp_greater(u8'a', 97); // { dg-error "constexpr" }
+bool g = std::cmp_greater(97, u8'a'); // { dg-error "constexpr" "" { target { no-opts "-fno-char8_t" } } }
+bool h = std::cmp_greater(u8'a', 97); // { dg-error "constexpr" "" { target { no-opts "-fno-char8_t" } } }
bool i = std::cmp_greater(97, u'a'); // { dg-error "constexpr" }
bool j = std::cmp_greater(u'a', 97); // { dg-error "constexpr" }
bool k = std::cmp_greater(97, U'a'); // { dg-error "constexpr" }
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/in_range_neg.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/in_range_neg.cc
index a6b071aed77..bf50abe356a 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/in_range_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/in_range_neg.cc
@@ -25,8 +25,10 @@ bool c = std::in_range<int>(L'2'); // { dg-error "here" }
bool d = std::in_range<wchar_t>(2); // { dg-error "here" }
bool e = std::in_range<int>(true); // { dg-error "here" }
bool f = std::in_range<bool>(0); // { dg-error "here" }
-bool g = std::in_range<int>(u8'a'); // { dg-error "here" }
-bool h = std::in_range<char8_t>(97); // { dg-error "here" }
+bool g = std::in_range<int>(u8'a'); // { dg-error "here" "" { target { no-opts "-fno-char8_t" } } }
+#ifdef __cpp_char8_t
+bool h = std::in_range<char8_t>(97); // { dg-error "here" "" { target { no-opts "-fno-char8_t" } } }
+#endif
bool i = std::in_range<int>(u'a'); // { dg-error "here" }
bool j = std::in_range<char16_t>(97); // { dg-error "here" }
bool k = std::in_range<int>(U'a'); // { dg-error "here" }
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal_neg.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal_neg.cc
index ce8f3b5d9ce..f15acb9ec3d 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal_neg.cc
@@ -25,8 +25,8 @@ bool c = std::cmp_less_equal(2, L'2'); // { dg-error "constexpr" }
bool d = std::cmp_less_equal(L'2', 2); // { dg-error "constexpr" }
bool e = std::cmp_less_equal(true, 1); // { dg-error "constexpr" }
bool f = std::cmp_less_equal(0, false); // { dg-error "constexpr" }
-bool g = std::cmp_less_equal(97, u8'a'); // { dg-error "constexpr" }
-bool h = std::cmp_less_equal(u8'a', 97); // { dg-error "constexpr" }
+bool g = std::cmp_less_equal(97, u8'a'); // { dg-error "constexpr" "" { target { no-opts "-fno-char8_t" } } }
+bool h = std::cmp_less_equal(u8'a', 97); // { dg-error "constexpr" "" { target { no-opts "-fno-char8_t" } } }
bool i = std::cmp_less_equal(97, u'a'); // { dg-error "constexpr" }
bool j = std::cmp_less_equal(u'a', 97); // { dg-error "constexpr" }
bool k = std::cmp_less_equal(97, U'a'); // { dg-error "constexpr" }
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/less_neg.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/less_neg.cc
index 4bc9bfe0af2..2d08662f8d8 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/less_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/less_neg.cc
@@ -25,8 +25,8 @@ bool c = std::cmp_less(2, L'2'); // { dg-error "here" }
bool d = std::cmp_less(L'2', 2); // { dg-error "here" }
bool e = std::cmp_less(true, 1); // { dg-error "here" }
bool f = std::cmp_less(0, false); // { dg-error "here" }
-bool g = std::cmp_less(97, u8'a'); // { dg-error "here" }
-bool h = std::cmp_less(u8'a', 97); // { dg-error "here" }
+bool g = std::cmp_less(97, u8'a'); // { dg-error "here" "" { target { no-opts "-fno-char8_t" } } }
+bool h = std::cmp_less(u8'a', 97); // { dg-error "here" "" { target { no-opts "-fno-char8_t" } } }
bool i = std::cmp_less(97, u'a'); // { dg-error "here" }
bool j = std::cmp_less(u'a', 97); // { dg-error "here" }
bool k = std::cmp_less(97, U'a'); // { dg-error "here" }
diff --git a/libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal_neg.cc b/libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal_neg.cc
index 06cfd6ee8f4..7290e9e2417 100644
--- a/libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal_neg.cc
+++ b/libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal_neg.cc
@@ -25,8 +25,8 @@ bool c = std::cmp_equal(2, L'2'); // { dg-error "here" }
bool d = std::cmp_equal(L'2', 2); // { dg-error "here" }
bool e = std::cmp_equal(true, 1); // { dg-error "here" }
bool f = std::cmp_equal(0, false); // { dg-error "here" }
-bool g = std::cmp_equal(97, u8'a'); // { dg-error "here" }
-bool h = std::cmp_equal(u8'a', 97); // { dg-error "here" }
+bool g = std::cmp_equal(97, u8'a'); // { dg-error "here" "" { target { no-opts "-fno-char8_t" } } }
+bool h = std::cmp_equal(u8'a', 97); // { dg-error "here" "" { target { no-opts "-fno-char8_t" } } }
bool i = std::cmp_equal(97, u'a'); // { dg-error "here" }
bool j = std::cmp_equal(u'a', 97); // { dg-error "here" }
bool k = std::cmp_equal(97, U'a'); // { dg-error "here" }
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/hash/hash_char8_t.cc b/libstdc++-v3/testsuite/21_strings/basic_string/hash/hash_char8_t.cc
index 1ef48718721..8cd603da17f 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/hash/hash_char8_t.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/hash/hash_char8_t.cc
@@ -16,6 +16,7 @@
// <http://www.gnu.org/licenses/>.
// { dg-do run { target c++20 } }
+// { dg-skip-if "" { *-*-* } { "-fno-char8_t" } }
#include <string>
#include <memory_resource>
--git a/libstdc++-v3/testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc b/libstdc++-v3/testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc
index 1964803cbd1..71c62e98203 100644
--- a/libstdc++-v3/testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc
+++ b/libstdc++-v3/testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc
@@ -1,4 +1,5 @@
// { dg-do compile { target c++20 } }
+// { dg-skip-if "" { *-*-* } { "-fno-char8_t" } }
#include <cuchar>
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc
index e57bda8ecc1..95f4aeb010e 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc
@@ -20,6 +20,7 @@
// Test character inserters defined as deleted by P1423.
// { dg-do compile { target c++20 } }
+// { dg-skip-if "" { *-*-* } { "-fno-char8_t" } }
#include <ostream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc
index 89b560418a1..5203dd6e1ce 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc
@@ -20,6 +20,7 @@
// Test wide character inserters defined as deleted by P1423.
// { dg-do compile { target c++20 } }
+// { dg-skip-if "" { *-*-* } { "-fno-char8_t" } }
#include <ostream>
diff --git a/libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path-depr.cc b/libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path-depr.cc
index ffa59979ec9..48827ea44cf 100644
--- a/libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path-depr.cc
+++ b/libstdc++-v3/testsuite/27_io/filesystem/path/factory/u8path-depr.cc
@@ -10,6 +10,8 @@ auto p2 = fs::u8path(s, s); // { dg-warning "deprecated" }
#if __cpp_lib_char8_t
const char8_t* u = u8"";
+#else
+const char* u = u8"";
+#endif
auto p3 = fs::u8path(u); // { dg-warning "deprecated" }
auto p4 = fs::u8path(u, u); // { dg-warning "deprecated" }
-#endif
--git a/libstdc++-v3/testsuite/27_io/headers/iosfwd/synopsis.cc b/libstdc++-v3/testsuite/27_io/headers/iosfwd/synopsis.cc
index 12f47ae8133..8d9501f42ef 100644
--- a/libstdc++-v3/testsuite/27_io/headers/iosfwd/synopsis.cc
+++ b/libstdc++-v3/testsuite/27_io/headers/iosfwd/synopsis.cc
@@ -9,7 +9,7 @@ namespace std
template<class charT> struct char_traits;
template<> struct char_traits<char>;
-#if __cplusplus >= 202002L
+#if __cplusplus >= 202002L && defined __cpp_char8_t
template<> struct char_traits<char8_t>;
#endif
#if __cplusplus >= 201103L
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_integral/wait_notify.cc b/libstdc++-v3/testsuite/29_atomics/atomic_integral/wait_notify.cc
index 355269118a6..b3d2f928ad5 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_integral/wait_notify.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_integral/wait_notify.cc
@@ -59,7 +59,9 @@ main ()
check<unsigned long long>();
check<wchar_t>();
+#if __cpp_char8_t
check<char8_t>();
+#endif
check<char16_t>();
check<char32_t>();
--git a/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc b/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc
index 0da206a5b00..c3aebb2c5d9 100644
--- a/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc
+++ b/libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc
@@ -47,9 +47,7 @@ void test01()
using atomic_llong; // { dg-error "expected nested-name-specifier" }
using atomic_ullong; // { dg-error "expected nested-name-specifier" }
using atomic_wchar_t; // { dg-error "expected nested-name-specifier" }
-#ifdef _GLIBCXX_USE_CHAR8_T
using atomic_char8_t; // { dg-error "expected nested-name-specifier" }
-#endif
using atomic_char16_t; // { dg-error "expected nested-name-specifier" }
using atomic_char32_t; // { dg-error "expected nested-name-specifier" }
--
2.44.0
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-04-08 16:45 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-08 16:45 [committed] libstdc++: Fix tests that fail with -fno-char8_t Jonathan Wakely
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).