diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2024-04-02 20:53:11 +0100 |
---|---|---|
committer | Jonathan Wakely <jwakely@redhat.com> | 2024-04-08 17:44:18 +0100 |
commit | cd77e152875d3bc9c8966fc20241d73aa47532b3 (patch) | |
tree | f37b96f6a5e8b70a6bcddeccd50756dfe2c6cb13 | |
parent | 87bc20676ce606b0f75f12a35b24206df05a9f0a (diff) | |
download | gcc-cd77e152875d3bc9c8966fc20241d73aa47532b3.zip gcc-cd77e152875d3bc9c8966fc20241d73aa47532b3.tar.gz gcc-cd77e152875d3bc9c8966fc20241d73aa47532b3.tar.bz2 |
libstdc++: Fix tests that fail with -fno-char8_t
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.
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 06cfd6e..7290e9e 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 b5f03b7..cb60bfe 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 676a03b..d5ff52c 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 a6b071a..bf50abe 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 ce8f3b5..f15acb9 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 4bc9bfe..2d08662 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 06cfd6e..7290e9e 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 1ef4871..8cd603d 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> diff --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 1964803..71c62e9 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 e57bda8..95f4aeb 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 89b5604..5203dd6 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 ffa5997..48827ea 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 diff --git a/libstdc++-v3/testsuite/27_io/headers/iosfwd/synopsis.cc b/libstdc++-v3/testsuite/27_io/headers/iosfwd/synopsis.cc index 12f47ae..8d9501f 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 3552691..b3d2f92 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>(); diff --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 0da206a..c3aebb2 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" } |