
The testsuite will automatically select C++20 for these tests now, and removing the hardcoded -std option allows them to be tested for C++23 and C++26 as well. libstdc++-v3/ChangeLog: * testsuite/20_util/allocator/105975.cc: Remove dg-options -std=gnu++2a. * testsuite/20_util/allocator/rebind_c++20.cc: Likewise. * testsuite/20_util/allocator/requirements/constexpr.cc: Likewise. * testsuite/20_util/allocator/requirements/typedefs_c++20.cc: Likewise. * testsuite/20_util/allocator_traits/header-2.cc: Likewise. * testsuite/20_util/allocator_traits/header.cc: Likewise. * testsuite/20_util/allocator_traits/members/92878_92947.cc: Likewise. * testsuite/20_util/any/assign/92878_92947.cc: Likewise. * testsuite/20_util/any/cons/92878_92947.cc: Likewise. * testsuite/20_util/assume_aligned/1.cc: Likewise. * testsuite/20_util/assume_aligned/2_neg.cc: Likewise. * testsuite/20_util/assume_aligned/3.cc: Likewise. * testsuite/20_util/assume_aligned/97132.cc: Likewise. * testsuite/20_util/bind/constexpr.cc: Likewise. * testsuite/20_util/bitset/operations/96303.cc: Likewise. * testsuite/20_util/common_reference/100894.cc: Likewise. * testsuite/20_util/common_reference/requirements/alias_decl.cc: Likewise. * testsuite/20_util/common_reference/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/common_reference/requirements/typedefs.cc: Likewise. * testsuite/20_util/duration/comparison_operators/three_way.cc: Likewise. * testsuite/20_util/exchange/constexpr.cc: Likewise. * testsuite/20_util/exchange/noexcept.cc: Likewise. * testsuite/20_util/from_chars/1_c++20_neg.cc: Likewise. * testsuite/20_util/from_chars/compare.cc: Likewise. * testsuite/20_util/function_objects/bind_front/1.cc: Likewise. * testsuite/20_util/function_objects/bind_front/107784.cc: Likewise. * testsuite/20_util/function_objects/bind_front/111327.cc: Likewise. * testsuite/20_util/function_objects/bind_front/2.cc: Likewise. * testsuite/20_util/function_objects/bind_front/97101.cc: Likewise. * testsuite/20_util/function_objects/bind_front/constexpr.cc: Likewise. * testsuite/20_util/function_objects/constexpr_searcher.cc: Likewise. * testsuite/20_util/function_objects/identity/1.cc: Likewise. * testsuite/20_util/function_objects/invoke/constexpr.cc: Likewise. * testsuite/20_util/function_objects/mem_fn/constexpr.cc: Likewise. * testsuite/20_util/function_objects/not_fn/constexpr.cc: Likewise. * testsuite/20_util/integer_comparisons/1.cc: Likewise. * testsuite/20_util/integer_comparisons/2.cc: Likewise. * testsuite/20_util/integer_comparisons/equal.cc: Likewise. * testsuite/20_util/integer_comparisons/equal_neg.cc: Likewise. * testsuite/20_util/integer_comparisons/greater.cc: Likewise. * testsuite/20_util/integer_comparisons/greater_equal.cc: Likewise. * 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.cc: Likewise. * testsuite/20_util/integer_comparisons/in_range_neg.cc: Likewise. * testsuite/20_util/integer_comparisons/less.cc: Likewise. * testsuite/20_util/integer_comparisons/less_equal.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.cc: Likewise. * testsuite/20_util/integer_comparisons/not_equal_neg.cc: Likewise. * testsuite/20_util/is_bounded_array/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/is_bounded_array/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_bounded_array/value.cc: Likewise. * testsuite/20_util/is_constant_evaluated/1.cc: Likewise. * testsuite/20_util/is_constant_evaluated/noexcept.cc: Likewise. * testsuite/20_util/is_constructible/92878_92947.cc: Likewise. * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc: Likewise. * testsuite/20_util/is_layout_compatible/value.cc: Likewise. * testsuite/20_util/is_layout_compatible/version.cc: Likewise. * testsuite/20_util/is_nothrow_constructible/value_c++20.cc: Likewise. * testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_nothrow_convertible/value.cc: Likewise. * testsuite/20_util/is_pod/deprecated-2a.cc: Likewise. * testsuite/20_util/is_pointer_interconvertible/value.cc: Likewise. * testsuite/20_util/is_pointer_interconvertible/version.cc: Likewise. * testsuite/20_util/is_pointer_interconvertible/with_class.cc: Likewise. * testsuite/20_util/is_unbounded_array/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/is_unbounded_array/requirements/typedefs.cc: Likewise. * testsuite/20_util/is_unbounded_array/value.cc: Likewise. * testsuite/20_util/optional/assignment/92878_92947.cc: Likewise. * testsuite/20_util/optional/cons/92878_92947.cc: Likewise. * testsuite/20_util/optional/constexpr/assign.cc: Likewise. * testsuite/20_util/optional/constexpr/cons/conv.cc: Likewise. * testsuite/20_util/optional/constexpr/modifiers.cc: Likewise. * testsuite/20_util/optional/constexpr/swap.cc: Likewise. * testsuite/20_util/optional/relops/96269.cc: Likewise. * testsuite/20_util/optional/relops/three_way.cc: Likewise. * testsuite/20_util/pair/comparison_operators/constexpr_c++20.cc: Likewise. * testsuite/20_util/pair/cons/92878_92947.cc: Likewise. * testsuite/20_util/pair/constexpr_assign.cc: Likewise. * testsuite/20_util/pair/constexpr_swap.cc: Likewise. * testsuite/20_util/pair/requirements/structural.cc: Likewise. * testsuite/20_util/pointer_traits/pointer_to_constexpr.cc: Likewise. * testsuite/20_util/polymorphic_allocator/allocate_object.cc: Likewise. * testsuite/20_util/polymorphic_allocator/construct_c++2a.cc: Likewise. * testsuite/20_util/polymorphic_allocator/lwg3237.cc: Likewise. * testsuite/20_util/reference_wrapper/constexpr.cc: Likewise. * testsuite/20_util/reference_wrapper/incomplete.cc: Likewise. * testsuite/20_util/remove_cvref/requirements/alias_decl.cc: Likewise. * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/remove_cvref/value.cc: Likewise. * testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc: Likewise. * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: Likewise. * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise. * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc: Likewise. * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Likewise. * testsuite/20_util/shared_ptr/creation/92878_92947.cc: Likewise. * testsuite/20_util/shared_ptr/creation/array.cc: Likewise. * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise. * testsuite/20_util/shared_ptr/creation/version.cc: Likewise. * testsuite/20_util/time_point/4.cc: Likewise. * testsuite/20_util/time_point/comparison_operators/three_way.cc: Likewise. * testsuite/20_util/to_address/1.cc: Likewise. * testsuite/20_util/to_address/1_neg.cc: Likewise. * testsuite/20_util/to_address/debug.cc: Likewise. * testsuite/20_util/to_address/lwg3545.cc: Likewise. * testsuite/20_util/to_chars/compare.cc: Likewise. * testsuite/20_util/tuple/comparison_operators/three_way.cc: Likewise. * testsuite/20_util/tuple/cons/102270.cc: Likewise. * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc: Likewise. * testsuite/20_util/tuple/constexpr_swap.cc: Likewise. * testsuite/20_util/type_identity/requirements/alias_decl.cc: Likewise. * testsuite/20_util/type_identity/requirements/explicit_instantiation.cc: Likewise. * testsuite/20_util/type_identity/requirements/typedefs.cc: Likewise. * testsuite/20_util/typeindex/comparison_operators_c++20.cc: Likewise. * testsuite/20_util/unique_ptr/comparison/compare_c++20.cc: Likewise. * testsuite/20_util/unique_ptr/creation/92878_92947.cc: Likewise. * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Likewise. * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc: Likewise. * testsuite/20_util/unique_ptr/io/lwg2948.cc: Likewise. * testsuite/20_util/unwrap_reference/1.cc: Likewise. * testsuite/20_util/unwrap_reference/2.cc: Likewise. * testsuite/20_util/unwrap_reference/3.cc: Likewise. * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise. * testsuite/20_util/uses_allocator/lwg3527.cc: Likewise. * testsuite/20_util/uses_allocator/make_obj.cc: Likewise. * testsuite/20_util/uses_allocator/uninitialized_construct.cc: Likewise. * testsuite/20_util/variant/92878_92947.cc: Likewise. * testsuite/20_util/variant/95915.cc: Likewise. * testsuite/20_util/variant/constexpr.cc: Likewise. * testsuite/20_util/variant/relops/three_way.cc: Likewise. * testsuite/20_util/variant/visit_neg.cc: Likewise. * testsuite/20_util/variant/visit_r.cc: Likewise. * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
60 lines
1.2 KiB
C++
60 lines
1.2 KiB
C++
// { dg-do run { target c++20 } }
|
|
|
|
#include <utility>
|
|
#include <limits>
|
|
#include <testsuite_hooks.h>
|
|
|
|
void
|
|
test01()
|
|
{
|
|
unsigned int u = std::numeric_limits<unsigned int>::max();
|
|
int s = -1;
|
|
VERIFY( !std::cmp_greater(s, u) );
|
|
VERIFY( std::cmp_greater(u, s) );
|
|
u = (unsigned) std::numeric_limits<int>::max() + 1U;
|
|
VERIFY( !std::cmp_greater(s, u) );
|
|
VERIFY( std::cmp_greater(u, s) );
|
|
}
|
|
|
|
constexpr bool
|
|
test02()
|
|
{
|
|
unsigned int u = std::numeric_limits<unsigned int>::max();
|
|
int s = -1;
|
|
if (std::cmp_greater(s, u))
|
|
throw 1;
|
|
if (!std::cmp_greater(u, s))
|
|
throw 2;
|
|
return true;
|
|
}
|
|
|
|
void
|
|
test03()
|
|
{
|
|
short ss = -1;
|
|
int s = -1;
|
|
VERIFY( !std::cmp_greater(s, ss) );
|
|
VERIFY( !std::cmp_greater(ss, s) );
|
|
|
|
unsigned int u = (unsigned int) -1;
|
|
VERIFY( !std::cmp_greater(s, u) );
|
|
VERIFY( std::cmp_greater(u, s) );
|
|
VERIFY( !std::cmp_greater(ss, u) );
|
|
VERIFY( std::cmp_greater(u, ss) );
|
|
|
|
unsigned long long ul = (unsigned long long) -1;
|
|
VERIFY( !std::cmp_greater(s, ul) );
|
|
VERIFY( std::cmp_greater(ul, s) );
|
|
VERIFY( !std::cmp_greater(ss, ul) );
|
|
VERIFY( std::cmp_greater(ul, ss) );
|
|
VERIFY( !std::cmp_greater(u, ul) );
|
|
VERIFY( std::cmp_greater(ul, u) );
|
|
}
|
|
|
|
int
|
|
main()
|
|
{
|
|
test01();
|
|
static_assert( test02() );
|
|
test03();
|
|
}
|