gcc/libstdc++-v3/testsuite/20_util
Jonathan Wakely 22f1f4c790 PR libstdc++/85951 for make_signed/make_unsigned for character types
Because the wide character types are neither signed integer types nor
unsigned integer types they need to be transformed to an integral type
of the correct size and the lowest rank (which is not necessarily the
underlying type). Reuse the helpers for enumeration types to select the
correct integer.

The refactoring of __make_unsigned_selector and __make_signed_selector
slightly reduces the number of template instantiations and so reduces
memory usage.

	PR libstdc++/85951
	* include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define
	uint_least16_t and uint_least32_t.
	(__make_unsigned<wchar_t>): Define unconditionally.
	(__make_unsigned_selector<_Tp, true, false>): Remove intermediate
	typedefs.
	(__make_unsigned_selector_base): New type to provide helper templates.
	(__make_unsigned_selector<_Tp, false, true>): Reimplement using
	__make_unsigned_selector_base helpers.
	(__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define.
	(__make_signed_selector<_Tp, true, false>): Remove intermediate
	typedefs.
	(__make_signed<wchar_t>, __make_signed<char16_t>)
	(__make_signed<char32_t>)): Define unconditionally.
	* testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check
	wchar_t, char16_t and char32_t are transformed correctly.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
	dg-error lineno.
	* testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check
	wchar_t, char16_t and char32_t are transformed correctly.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
	dg-error lineno.

From-SVN: r261023
2018-05-31 13:18:19 +01:00
..
add_const Update copyright years. 2018-01-03 11:03:58 +01:00
add_cv Update copyright years. 2018-01-03 11:03:58 +01:00
add_lvalue_reference Update copyright years. 2018-01-03 11:03:58 +01:00
add_pointer Update copyright years. 2018-01-03 11:03:58 +01:00
add_rvalue_reference Update copyright years. 2018-01-03 11:03:58 +01:00
add_volatile Update copyright years. 2018-01-03 11:03:58 +01:00
addressof Update copyright years. 2018-01-03 11:03:58 +01:00
align Update copyright years. 2018-01-03 11:03:58 +01:00
aligned_storage Update copyright years. 2018-01-03 11:03:58 +01:00
aligned_union Update copyright years. 2018-01-03 11:03:58 +01:00
alignment_of Update copyright years. 2018-01-03 11:03:58 +01:00
allocator Update copyright years. 2018-01-03 11:03:58 +01:00
allocator_traits Update copyright years. 2018-01-03 11:03:58 +01:00
any Implement the missing bits of LWG 2769 2018-02-27 13:33:30 +02:00
as_const Update copyright years. 2018-01-03 11:03:58 +01:00
auto_ptr Update copyright years. 2018-01-03 11:03:58 +01:00
bad_function_call Update copyright years. 2018-01-03 11:03:58 +01:00
bind Update copyright years. 2018-01-03 11:03:58 +01:00
bool_constant Update copyright years. 2018-01-03 11:03:58 +01:00
common_type/requirements Update copyright years. 2018-01-03 11:03:58 +01:00
conditional/requirements Update copyright years. 2018-01-03 11:03:58 +01:00
decay/requirements Update copyright years. 2018-01-03 11:03:58 +01:00
declval/requirements Update copyright years. 2018-01-03 11:03:58 +01:00
default_delete Update copyright years. 2018-01-03 11:03:58 +01:00
duration PR libstdc++/84671 handle digit separators in duration literals 2018-03-02 20:38:50 +00:00
duration_cast Update copyright years. 2018-01-03 11:03:58 +01:00
enable_if/requirements Update copyright years. 2018-01-03 11:03:58 +01:00
enable_shared_from_this Update copyright years. 2018-01-03 11:03:58 +01:00
endian Update copyright years. 2018-01-03 11:03:58 +01:00
exchange Update copyright years. 2018-01-03 11:03:58 +01:00
extent Update copyright years. 2018-01-03 11:03:58 +01:00
forward Update copyright years. 2018-01-03 11:03:58 +01:00
from_chars Update copyright years. 2018-01-03 11:03:58 +01:00
function Make std::function tolerate semantically non-CopyConstructible objects 2018-05-09 14:28:11 +01:00
function_objects PR libstdc++/85040 fix std::less<void> etc. ambiguities 2018-03-22 14:23:27 +00:00
has_unique_object_representations PR libstdc++/83830 Define std::has_unique_object_representations_v 2018-01-15 15:02:01 +00:00
has_virtual_destructor Update copyright years. 2018-01-03 11:03:58 +01:00
hash Fix some libstdc++ testsuite failures 2018-03-21 12:32:14 +00:00
headers Update copyright years. 2018-01-03 11:03:58 +01:00
in_place Update copyright years. 2018-01-03 11:03:58 +01:00
integer_sequence Update copyright years. 2018-01-03 11:03:58 +01:00
integral_constant Update copyright years. 2018-01-03 11:03:58 +01:00
is_abstract Update copyright years. 2018-01-03 11:03:58 +01:00
is_aggregate Update copyright years. 2018-01-03 11:03:58 +01:00
is_arithmetic Update copyright years. 2018-01-03 11:03:58 +01:00
is_array Update copyright years. 2018-01-03 11:03:58 +01:00
is_assignable Update copyright years. 2018-01-03 11:03:58 +01:00
is_base_of Update copyright years. 2018-01-03 11:03:58 +01:00
is_class Update copyright years. 2018-01-03 11:03:58 +01:00
is_compound Update copyright years. 2018-01-03 11:03:58 +01:00
is_const Update copyright years. 2018-01-03 11:03:58 +01:00
is_constructible Update copyright years. 2018-01-03 11:03:58 +01:00
is_convertible Update copyright years. 2018-01-03 11:03:58 +01:00
is_copy_assignable Update copyright years. 2018-01-03 11:03:58 +01:00
is_copy_constructible Update copyright years. 2018-01-03 11:03:58 +01:00
is_default_constructible Update copyright years. 2018-01-03 11:03:58 +01:00
is_destructible Update copyright years. 2018-01-03 11:03:58 +01:00
is_empty Update copyright years. 2018-01-03 11:03:58 +01:00
is_enum Update copyright years. 2018-01-03 11:03:58 +01:00
is_final Update copyright years. 2018-01-03 11:03:58 +01:00
is_floating_point Update copyright years. 2018-01-03 11:03:58 +01:00
is_function Update copyright years. 2018-01-03 11:03:58 +01:00
is_fundamental Update copyright years. 2018-01-03 11:03:58 +01:00
is_implicitly_default_constructible Update copyright years. 2018-01-03 11:03:58 +01:00
is_integral Update copyright years. 2018-01-03 11:03:58 +01:00
is_invocable Update copyright years. 2018-01-03 11:03:58 +01:00
is_literal_type Update copyright years. 2018-01-03 11:03:58 +01:00
is_lvalue_reference Update copyright years. 2018-01-03 11:03:58 +01:00
is_member_function_pointer Update copyright years. 2018-01-03 11:03:58 +01:00
is_member_object_pointer Update copyright years. 2018-01-03 11:03:58 +01:00
is_member_pointer Update copyright years. 2018-01-03 11:03:58 +01:00
is_move_assignable Update copyright years. 2018-01-03 11:03:58 +01:00
is_move_constructible Update copyright years. 2018-01-03 11:03:58 +01:00
is_nothrow_assignable Update copyright years. 2018-01-03 11:03:58 +01:00
is_nothrow_constructible Update copyright years. 2018-01-03 11:03:58 +01:00
is_nothrow_copy_assignable Update copyright years. 2018-01-03 11:03:58 +01:00
is_nothrow_copy_constructible Update copyright years. 2018-01-03 11:03:58 +01:00
is_nothrow_default_constructible Update copyright years. 2018-01-03 11:03:58 +01:00
is_nothrow_destructible Update copyright years. 2018-01-03 11:03:58 +01:00
is_nothrow_invocable Update copyright years. 2018-01-03 11:03:58 +01:00
is_nothrow_move_assignable Update copyright years. 2018-01-03 11:03:58 +01:00
is_nothrow_move_constructible Update copyright years. 2018-01-03 11:03:58 +01:00
is_nothrow_swappable Update copyright years. 2018-01-03 11:03:58 +01:00
is_nothrow_swappable_with Update copyright years. 2018-01-03 11:03:58 +01:00
is_null_pointer Update copyright years. 2018-01-03 11:03:58 +01:00
is_object Update copyright years. 2018-01-03 11:03:58 +01:00
is_pod Update copyright years. 2018-01-03 11:03:58 +01:00
is_pointer Update copyright years. 2018-01-03 11:03:58 +01:00
is_polymorphic Update copyright years. 2018-01-03 11:03:58 +01:00
is_reference Update copyright years. 2018-01-03 11:03:58 +01:00
is_rvalue_reference Update copyright years. 2018-01-03 11:03:58 +01:00
is_same Update copyright years. 2018-01-03 11:03:58 +01:00
is_scalar Update copyright years. 2018-01-03 11:03:58 +01:00
is_signed Update copyright years. 2018-01-03 11:03:58 +01:00
is_standard_layout Update copyright years. 2018-01-03 11:03:58 +01:00
is_swappable Update copyright years. 2018-01-03 11:03:58 +01:00
is_swappable_with Update copyright years. 2018-01-03 11:03:58 +01:00
is_trivial Update copyright years. 2018-01-03 11:03:58 +01:00
is_trivially_assignable Update copyright years. 2018-01-03 11:03:58 +01:00
is_trivially_constructible Update copyright years. 2018-01-03 11:03:58 +01:00
is_trivially_copy_assignable Update copyright years. 2018-01-03 11:03:58 +01:00
is_trivially_copy_constructible Update copyright years. 2018-01-03 11:03:58 +01:00
is_trivially_copyable Update copyright years. 2018-01-03 11:03:58 +01:00
is_trivially_default_constructible Update copyright years. 2018-01-03 11:03:58 +01:00
is_trivially_destructible Update copyright years. 2018-01-03 11:03:58 +01:00
is_trivially_move_assignable Update copyright years. 2018-01-03 11:03:58 +01:00
is_trivially_move_constructible Update copyright years. 2018-01-03 11:03:58 +01:00
is_union Update copyright years. 2018-01-03 11:03:58 +01:00
is_unsigned Update copyright years. 2018-01-03 11:03:58 +01:00
is_void Update copyright years. 2018-01-03 11:03:58 +01:00
is_volatile Update copyright years. 2018-01-03 11:03:58 +01:00
logical_traits Update copyright years. 2018-01-03 11:03:58 +01:00
make_signed/requirements PR libstdc++/85951 for make_signed/make_unsigned for character types 2018-05-31 13:18:19 +01:00
make_unsigned/requirements PR libstdc++/85951 for make_signed/make_unsigned for character types 2018-05-31 13:18:19 +01:00
move Update copyright years. 2018-01-03 11:03:58 +01:00
move_if_noexcept Update copyright years. 2018-01-03 11:03:58 +01:00
optional PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>> 2018-05-04 09:57:23 +01:00
owner_less Update copyright years. 2018-01-03 11:03:58 +01:00
pair Update copyright years. 2018-01-03 11:03:58 +01:00
pointer_safety Update copyright years. 2018-01-03 11:03:58 +01:00
pointer_traits Update copyright years. 2018-01-03 11:03:58 +01:00
rank Update copyright years. 2018-01-03 11:03:58 +01:00
ratio Update copyright years. 2018-01-03 11:03:58 +01:00
raw_storage_iterator Update copyright years. 2018-01-03 11:03:58 +01:00
reference_wrapper Update copyright years. 2018-01-03 11:03:58 +01:00
remove_all_extents Update copyright years. 2018-01-03 11:03:58 +01:00
remove_const Update copyright years. 2018-01-03 11:03:58 +01:00
remove_cv Update copyright years. 2018-01-03 11:03:58 +01:00
remove_cvref Add tests for std::remove_cvref 2018-05-03 16:12:19 +01:00
remove_extent Update copyright years. 2018-01-03 11:03:58 +01:00
remove_pointer Update copyright years. 2018-01-03 11:03:58 +01:00
remove_reference Update copyright years. 2018-01-03 11:03:58 +01:00
remove_volatile Update copyright years. 2018-01-03 11:03:58 +01:00
result_of Update copyright years. 2018-01-03 11:03:58 +01:00
scoped_allocator Update copyright years. 2018-01-03 11:03:58 +01:00
shared_ptr Update copyright years. 2018-01-03 11:03:58 +01:00
specialized_algorithms Update copyright years. 2018-01-03 11:03:58 +01:00
steady_clock Update copyright years. 2018-01-03 11:03:58 +01:00
system_clock Update copyright years. 2018-01-03 11:03:58 +01:00
time_point Update copyright years. 2018-01-03 11:03:58 +01:00
time_point_cast Update copyright years. 2018-01-03 11:03:58 +01:00
to_address Update copyright years. 2018-01-03 11:03:58 +01:00
to_chars Update copyright years. 2018-01-03 11:03:58 +01:00
tuple Update copyright years. 2018-01-03 11:03:58 +01:00
typeindex Update copyright years. 2018-01-03 11:03:58 +01:00
underlying_type/requirements Update copyright years. 2018-01-03 11:03:58 +01:00
unique_ptr Update copyright years. 2018-01-03 11:03:58 +01:00
uses_allocator Update copyright years. 2018-01-03 11:03:58 +01:00
variant re PR libstdc++/80165 (Constexpr tuple of variant doesn't work) 2018-05-13 13:36:12 +03:00
void_t Update copyright years. 2018-01-03 11:03:58 +01:00
weak_ptr Update copyright years. 2018-01-03 11:03:58 +01:00
rel_ops.cc Update copyright years. 2018-01-03 11:03:58 +01:00
temporary_buffer.cc Update copyright years. 2018-01-03 11:03:58 +01:00
variable_templates_for_traits.cc Update copyright years. 2018-01-03 11:03:58 +01:00