gcc/libstdc++-v3/testsuite/20_util
Jonathan Wakely ce6c4d3b4d libstdc++: Implement C++20 std::chrono::parse [PR104167]
This adds the missing C++20 features to <chrono>.

I've implemented my proposed resolutions to LWG issues 3960, 3961, and
3962. There are some unimplemented flags such as %OI which I think are
not implementable in general. It might be possible to use na_llanginfo
with ALT_DIGITS, but that isn't available on all targets. I intend to
file another LWG issue about that.

libstdc++-v3/ChangeLog:

	PR libstdc++/104167
	* include/bits/chrono_io.h (operator|=, operator|): Add noexcept
	to _ChronoParts operators.
	(from_stream, parse): Define new functions.
	(__detail::_Parse, __detail::_Parser): New class templates.
	* include/std/chrono (__cpp_lib_chrono): Define to 201907L for
	C++20.
	* include/std/version (__cpp_lib_chrono): Likewise.
	* testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
	Adjust expected value of feature test macro.
	* testsuite/20_util/duration/io.cc: Test parsing.
	* testsuite/std/time/clock/file/io.cc: Likewise.
	* testsuite/std/time/clock/gps/io.cc: Likewise.
	* testsuite/std/time/clock/system/io.cc: Likewise.
	* testsuite/std/time/clock/tai/io.cc: Likewise.
	* testsuite/std/time/clock/utc/io.cc: Likewise.
	* testsuite/std/time/day/io.cc: Likewise.
	* testsuite/std/time/month/io.cc: Likewise.
	* testsuite/std/time/month_day/io.cc: Likewise.
	* testsuite/std/time/weekday/io.cc: Likewise.
	* testsuite/std/time/year/io.cc: Likewise.
	* testsuite/std/time/year_month/io.cc: Likewise.
	* testsuite/std/time/year_month_day/io.cc: Likewise.
	* testsuite/std/time/syn_c++20.cc: Check value of macro and for
	the existence of parse and from_stream in namespace chrono.
	* testsuite/std/time/clock/local/io.cc: New test.
	* testsuite/std/time/parse.cc: New test.
2023-08-11 19:58:06 +01:00
..
add_const Update copyright years. 2023-01-16 11:52:17 +01:00
add_cv Update copyright years. 2023-01-16 11:52:17 +01:00
add_lvalue_reference Update copyright years. 2023-01-16 11:52:17 +01:00
add_pointer Update copyright years. 2023-01-16 11:52:17 +01:00
add_rvalue_reference Update copyright years. 2023-01-16 11:52:17 +01:00
add_volatile Update copyright years. 2023-01-16 11:52:17 +01:00
addressof Update copyright years. 2023-01-16 11:52:17 +01:00
align Update copyright years. 2023-01-16 11:52:17 +01:00
aligned_storage libstdc++: Fix testsuite warnings about new C++23 deprecations 2023-02-06 14:23:47 +00:00
aligned_union libstdc++: Fix testsuite warnings about new C++23 deprecations 2023-02-06 14:23:47 +00:00
alignment_of Update copyright years. 2023-01-16 11:52:17 +01:00
allocator Update copyright years. 2023-01-16 11:52:17 +01:00
allocator_traits Update copyright years. 2023-01-16 11:52:17 +01:00
any Update copyright years. 2023-01-16 11:52:17 +01:00
as_const Update copyright years. 2023-01-16 11:52:17 +01:00
assume_aligned Update copyright years. 2023-01-16 11:52:17 +01:00
auto_ptr Update copyright years. 2023-01-16 11:52:17 +01:00
bad_function_call Update copyright years. 2023-01-16 11:52:17 +01:00
bind Update copyright years. 2023-01-16 11:52:17 +01:00
bitset Update copyright years. 2023-01-16 11:52:17 +01:00
bool_constant Update copyright years. 2023-01-16 11:52:17 +01:00
common_reference Update copyright years. 2023-01-16 11:52:17 +01:00
common_type/requirements Update copyright years. 2023-01-16 11:52:17 +01:00
conditional/requirements Update copyright years. 2023-01-16 11:52:17 +01:00
decay/requirements Update copyright years. 2023-01-16 11:52:17 +01:00
declval/requirements Update copyright years. 2023-01-16 11:52:17 +01:00
default_delete Update copyright years. 2023-01-16 11:52:17 +01:00
duration libstdc++: Implement C++20 std::chrono::parse [PR104167] 2023-08-11 19:58:06 +01:00
duration_cast Update copyright years. 2023-01-16 11:52:17 +01:00
enable_if/requirements Update copyright years. 2023-01-16 11:52:17 +01:00
enable_shared_from_this Update copyright years. 2023-01-16 11:52:17 +01:00
exchange libstdc++: Define __cpp_lib_constexpr_algorithms in <utility> (LWG 3792) 2023-03-22 17:48:20 +00:00
expected libstdc++: Do not use std::expected::value() in monadic ops (LWG 3938) 2023-06-01 16:06:15 +01:00
extent Update copyright years. 2023-01-16 11:52:17 +01:00
forward Update copyright years. 2023-01-16 11:52:17 +01:00
from_chars [libstdc++] [testsuite] xfail dbl from_chars for aarch64 rtems ldbl 2023-06-16 03:41:27 -03:00
function Update copyright years. 2023-01-16 11:52:17 +01:00
function_objects Update copyright years. 2023-01-16 11:52:17 +01:00
has_unique_object_representations Update copyright years. 2023-01-16 11:52:17 +01:00
has_virtual_destructor Update copyright years. 2023-01-16 11:52:17 +01:00
hash Update copyright years. 2023-01-16 11:52:17 +01:00
headers Update copyright years. 2023-01-16 11:52:17 +01:00
in_place Update copyright years. 2023-01-16 11:52:17 +01:00
integer_comparisons Update copyright years. 2023-01-16 11:52:17 +01:00
integer_sequence Update copyright years. 2023-01-16 11:52:17 +01:00
integral_constant Update copyright years. 2023-01-16 11:52:17 +01:00
invoke_result Update copyright years. 2023-01-16 11:52:17 +01:00
is_abstract Update copyright years. 2023-01-16 11:52:17 +01:00
is_aggregate Update copyright years. 2023-01-16 11:52:17 +01:00
is_arithmetic Update copyright years. 2023-01-16 11:52:17 +01:00
is_array Update copyright years. 2023-01-16 11:52:17 +01:00
is_assignable Update copyright years. 2023-01-16 11:52:17 +01:00
is_base_of Update copyright years. 2023-01-16 11:52:17 +01:00
is_bounded_array Update copyright years. 2023-01-16 11:52:17 +01:00
is_class Update copyright years. 2023-01-16 11:52:17 +01:00
is_complete_or_unbounded Update copyright years. 2023-01-16 11:52:17 +01:00
is_compound Update copyright years. 2023-01-16 11:52:17 +01:00
is_const Update copyright years. 2023-01-16 11:52:17 +01:00
is_constant_evaluated Update copyright years. 2023-01-16 11:52:17 +01:00
is_constructible Update copyright years. 2023-01-16 11:52:17 +01:00
is_convertible Update copyright years. 2023-01-16 11:52:17 +01:00
is_copy_assignable Update copyright years. 2023-01-16 11:52:17 +01:00
is_copy_constructible Update copyright years. 2023-01-16 11:52:17 +01:00
is_default_constructible Update copyright years. 2023-01-16 11:52:17 +01:00
is_destructible Update copyright years. 2023-01-16 11:52:17 +01:00
is_empty Update copyright years. 2023-01-16 11:52:17 +01:00
is_enum Update copyright years. 2023-01-16 11:52:17 +01:00
is_final Update copyright years. 2023-01-16 11:52:17 +01:00
is_floating_point Update copyright years. 2023-01-16 11:52:17 +01:00
is_function Update copyright years. 2023-01-16 11:52:17 +01:00
is_fundamental Update copyright years. 2023-01-16 11:52:17 +01:00
is_implicitly_default_constructible Update copyright years. 2023-01-16 11:52:17 +01:00
is_integral Update copyright years. 2023-01-16 11:52:17 +01:00
is_invocable Update copyright years. 2023-01-16 11:52:17 +01:00
is_layout_compatible libstdc++: Fix test for feature test macro 2021-10-14 09:08:01 +01:00
is_literal_type Update copyright years. 2023-01-16 11:52:17 +01:00
is_lvalue_reference Update copyright years. 2023-01-16 11:52:17 +01:00
is_member_function_pointer Update copyright years. 2023-01-16 11:52:17 +01:00
is_member_object_pointer Update copyright years. 2023-01-16 11:52:17 +01:00
is_member_pointer Update copyright years. 2023-01-16 11:52:17 +01:00
is_move_assignable Update copyright years. 2023-01-16 11:52:17 +01:00
is_move_constructible Update copyright years. 2023-01-16 11:52:17 +01:00
is_nothrow_assignable Update copyright years. 2023-01-16 11:52:17 +01:00
is_nothrow_constructible Update copyright years. 2023-01-16 11:52:17 +01:00
is_nothrow_convertible Update copyright years. 2023-01-16 11:52:17 +01:00
is_nothrow_copy_assignable Update copyright years. 2023-01-16 11:52:17 +01:00
is_nothrow_copy_constructible Update copyright years. 2023-01-16 11:52:17 +01:00
is_nothrow_default_constructible Update copyright years. 2023-01-16 11:52:17 +01:00
is_nothrow_destructible Update copyright years. 2023-01-16 11:52:17 +01:00
is_nothrow_invocable Update copyright years. 2023-01-16 11:52:17 +01:00
is_nothrow_move_assignable Update copyright years. 2023-01-16 11:52:17 +01:00
is_nothrow_move_constructible Update copyright years. 2023-01-16 11:52:17 +01:00
is_nothrow_swappable Update copyright years. 2023-01-16 11:52:17 +01:00
is_nothrow_swappable_with Update copyright years. 2023-01-16 11:52:17 +01:00
is_null_pointer Update copyright years. 2023-01-16 11:52:17 +01:00
is_object Update copyright years. 2023-01-16 11:52:17 +01:00
is_pod Update copyright years. 2023-01-16 11:52:17 +01:00
is_pointer Update copyright years. 2023-01-16 11:52:17 +01:00
is_pointer_interconvertible libstdc++: Add std::is_layout_compatible trait for C++20 2021-08-24 16:12:44 +01:00
is_polymorphic Update copyright years. 2023-01-16 11:52:17 +01:00
is_reference Update copyright years. 2023-01-16 11:52:17 +01:00
is_rvalue_reference Update copyright years. 2023-01-16 11:52:17 +01:00
is_same Update copyright years. 2023-01-16 11:52:17 +01:00
is_scalar Update copyright years. 2023-01-16 11:52:17 +01:00
is_scoped_enum Update copyright years. 2023-01-16 11:52:17 +01:00
is_signed Update copyright years. 2023-01-16 11:52:17 +01:00
is_standard_layout Update copyright years. 2023-01-16 11:52:17 +01:00
is_swappable Update copyright years. 2023-01-16 11:52:17 +01:00
is_swappable_with Update copyright years. 2023-01-16 11:52:17 +01:00
is_trivial Update copyright years. 2023-01-16 11:52:17 +01:00
is_trivially_assignable Update copyright years. 2023-01-16 11:52:17 +01:00
is_trivially_constructible Update copyright years. 2023-01-16 11:52:17 +01:00
is_trivially_copy_assignable Update copyright years. 2023-01-16 11:52:17 +01:00
is_trivially_copy_constructible Update copyright years. 2023-01-16 11:52:17 +01:00
is_trivially_copyable Update copyright years. 2023-01-16 11:52:17 +01:00
is_trivially_default_constructible Update copyright years. 2023-01-16 11:52:17 +01:00
is_trivially_destructible Update copyright years. 2023-01-16 11:52:17 +01:00
is_trivially_move_assignable Update copyright years. 2023-01-16 11:52:17 +01:00
is_trivially_move_constructible Update copyright years. 2023-01-16 11:52:17 +01:00
is_unbounded_array Update copyright years. 2023-01-16 11:52:17 +01:00
is_union Update copyright years. 2023-01-16 11:52:17 +01:00
is_unsigned Update copyright years. 2023-01-16 11:52:17 +01:00
is_void Update copyright years. 2023-01-16 11:52:17 +01:00
is_volatile Update copyright years. 2023-01-16 11:52:17 +01:00
logical_traits Update copyright years. 2023-01-16 11:52:17 +01:00
make_signed/requirements Update copyright years. 2023-01-16 11:52:17 +01:00
make_unsigned/requirements Update copyright years. 2023-01-16 11:52:17 +01:00
memory_resource Update copyright years. 2023-01-16 11:52:17 +01:00
monotonic_buffer_resource Update copyright years. 2023-01-16 11:52:17 +01:00
move Update copyright years. 2023-01-16 11:52:17 +01:00
move_if_noexcept Update copyright years. 2023-01-16 11:52:17 +01:00
move_only_function libstdc++: Fix std::move_only_function for incomplete parameter types 2022-10-21 10:40:40 +01:00
nonesuch Update copyright years. 2023-01-16 11:52:17 +01:00
optional libstdc++: Fix filename of new test [PR109242] 2023-03-30 00:42:11 +01:00
owner_less Update copyright years. 2023-01-16 11:52:17 +01:00
pair c++: explicit ctor and list-initialization [PR109159] 2023-03-20 16:54:11 -04:00
pointer_safety Update copyright years. 2023-01-16 11:52:17 +01:00
pointer_traits Update copyright years. 2023-01-16 11:52:17 +01:00
polymorphic_allocator Update copyright years. 2023-01-16 11:52:17 +01:00
rank Update copyright years. 2023-01-16 11:52:17 +01:00
ratio libstdc++: Check for std::ratio in arithmetic and comparisons [PR110593] 2023-07-19 23:42:56 +01:00
raw_storage_iterator Update copyright years. 2023-01-16 11:52:17 +01:00
reference_from_temporary Update copyright years. 2023-01-16 11:52:17 +01:00
reference_wrapper Update copyright years. 2023-01-16 11:52:17 +01:00
remove_all_extents Update copyright years. 2023-01-16 11:52:17 +01:00
remove_const Update copyright years. 2023-01-16 11:52:17 +01:00
remove_cv Update copyright years. 2023-01-16 11:52:17 +01:00
remove_cvref Update copyright years. 2023-01-16 11:52:17 +01:00
remove_extent Update copyright years. 2023-01-16 11:52:17 +01:00
remove_pointer Update copyright years. 2023-01-16 11:52:17 +01:00
remove_reference Update copyright years. 2023-01-16 11:52:17 +01:00
remove_volatile Update copyright years. 2023-01-16 11:52:17 +01:00
result_of Update copyright years. 2023-01-16 11:52:17 +01:00
scoped_allocator libstdc++: Add missing noexcept to std::scoped_allocator_adaptor 2023-05-31 13:17:45 +01:00
shared_ptr libstdc++: Fix assigning nullptr to std::atomic<shared_ptr<T>> (LWG 3893) 2023-03-22 23:13:40 +00:00
specialized_algorithms libstdc++: Synchronize PSTL with upstream 2023-06-26 11:34:43 -07:00
steady_clock Update copyright years. 2023-01-16 11:52:17 +01:00
synchronized_pool_resource Update copyright years. 2023-01-16 11:52:17 +01:00
system_clock Update copyright years. 2023-01-16 11:52:17 +01:00
time_point Update copyright years. 2023-01-16 11:52:17 +01:00
time_point_cast Update copyright years. 2023-01-16 11:52:17 +01:00
to_address Update copyright years. 2023-01-16 11:52:17 +01:00
to_chars libstdc++: Fix up 20_util/to_chars/double.cc test for excess precision [PR110145] 2023-06-07 19:27:35 +02:00
to_underlying Update copyright years. 2023-01-16 11:52:17 +01:00
tuple c++: Define built-in for std::tuple_element [PR100157] 2023-04-19 15:36:34 -04:00
type_identity/requirements Update copyright years. 2023-01-16 11:52:17 +01:00
typeindex Update copyright years. 2023-01-16 11:52:17 +01:00
underlying_type/requirements Update copyright years. 2023-01-16 11:52:17 +01:00
unique_ptr Update copyright years. 2023-01-16 11:52:17 +01:00
unreachable libstdc++: Implement std::unreachable() for C++23 (P0627R6) 2022-04-01 13:17:18 +01:00
unsynchronized_pool_resource Update copyright years. 2023-01-16 11:52:17 +01:00
unwrap_reference Update copyright years. 2023-01-16 11:52:17 +01:00
uses_allocator libstdc++: Fix some freestanding test failures 2023-04-05 18:45:15 +02:00
variant libstdc++: Fix some tests that fail with -fexcess-precision=standard 2023-06-07 16:51:59 +01:00
void_t Update copyright years. 2023-01-16 11:52:17 +01:00
weak_ptr Update copyright years. 2023-01-16 11:52:17 +01:00
rel_ops.cc Update copyright years. 2023-01-16 11:52:17 +01:00
temporary_buffer.cc Update copyright years. 2023-01-16 11:52:17 +01:00
variable_templates_for_traits.cc Update copyright years. 2023-01-16 11:52:17 +01:00