]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
20fcd90bc0b59da3f52d968a9c0d5a706f1363d2
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2023-08-23 François Dumont <fdumont@gcc.gnu.org>
2
3 * testsuite/util/replacement_memory_operators.h
4 (counter::scope): New, capture and reset counter count at construction and
5 restore it at destruction.
6 (counter::check_new): Add scope instantiation.
7 * testsuite/23_containers/unordered_map/96088.cc (main):
8 Add counter::scope instantiation.
9 * testsuite/23_containers/unordered_multimap/96088.cc (main): Likewise.
10 * testsuite/23_containers/unordered_multiset/96088.cc (main): Likewise.
11 * testsuite/23_containers/unordered_set/96088.cc (main): Likewise.
12 * testsuite/ext/malloc_allocator/deallocate_local.cc (main): Likewise.
13 * testsuite/ext/new_allocator/deallocate_local.cc (main): Likewise.
14 * testsuite/ext/throw_allocator/deallocate_local.cc (main): Likewise.
15 * testsuite/ext/pool_allocator/allocate_chunk.cc (started): New global.
16 (operator new(size_t)): Check started.
17 (main): Set/Unset started.
18 * testsuite/17_intro/no_library_allocation.cc: New test case.
19
20 2023-08-21 Jonathan Wakely <jwakely@redhat.com>
21
22 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
23 Call std::set_terminate before throwing the nested exception.
24
25 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
26
27 PR target/111060
28 * include/std/format (formatter): Only define specializations
29 for 16-bit floating-point types for C++23.
30 * include/std/limits (numeric_limits): Likewise.
31
32 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
33
34 * include/bits/chrono_io.h (operator<<): Make uses of wide
35 strings with streams and std::format type-dependent on _CharT.
36 * include/std/format [!_GLIBCXX_USE_WCHAR_T] Do not use
37 __to_wstring_numeric.
38
39 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
40
41 * include/bits/chrono_io.h (operator<<): Use __format_context.
42 * include/std/format (__format::__format_context): New alias
43 template.
44 [!_GLIBCXX_USE_WCHAR_T] (wformat_args, make_wformat_arg):
45 Disable.
46
47 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
48
49 Revert:
50 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
51
52 * config/locale/generic/c_locale.cc (__convert_to_v): Reuse
53 double overload for long double if possible.
54
55 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
56
57 * src/c++20/tzdb.cc (tzdata_file, leaps_file): Change type to
58 std::string_view.
59
60 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
61
62 * config/locale/generic/c_locale.cc (__convert_to_v): Reuse
63 double overload for long double if possible.
64
65 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
66
67 * src/c++98/localename.cc (is_C_locale): New function.
68 (locale::locale(const char*)): Use is_C_locale.
69
70 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
71
72 PR libstdc++/110945
73 * include/bits/basic_string.h (basic_string::assign(Iter, Iter)):
74 Dispatch to _M_replace or move assignment from a temporary,
75 based on the iterator type.
76
77 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
78
79 * include/std/format (formatter): Add partial specializations
80 for extended floating-point types.
81 * testsuite/std/format/functions/format.cc: Move test_float128()
82 to ...
83 * testsuite/std/format/formatter/ext_float.cc: New test.
84
85 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
86
87 * include/bits/c++config (__gnu_cxx::__bfloat16_t): Define
88 whenever __BFLT16_DIG__ is defined, not only for C++23.
89 * include/std/limits (numeric_limits<bfloat16_t>): Likewise.
90 (numeric_limits<_Float16>, numeric_limits<_Float32>)
91 (numeric_limits<_Float64>): Likewise for other extended
92 floating-point types.
93
94 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
95
96 * include/experimental/internet (address_v4::to_string): Remove
97 unused parameter name.
98
99 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
100
101 * libsupc++/compare (__cmp_cat::__unseq): Make ctor consteval.
102 * testsuite/18_support/comparisons/categories/zero_neg.cc: Prune
103 excess errors caused by invalid consteval calls.
104
105 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
106
107 * include/bits/chrono_io.h (__units_suffix_misc): Remove.
108 (__units_suffix): Return a known suffix as string view, do not
109 write unknown suffixes to a buffer.
110 (__fmt_units_suffix): New function that formats the suffix using
111 std::format_to.
112 (operator<<, __chrono_formatter::_M_q): Use __fmt_units_suffix.
113 (__chrono_formatter::_M_Z): Correct lifetime of wstring.
114
115 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
116
117 * include/std/format [_GLIBCXX_USE_WCHAR_T]: Guard all wide
118 string formatters with this macro.
119 (__formatter_int::_M_format_int, __formatter_fp::format)
120 (formatter<const void*, C>::format): Use __to_wstring_numeric
121 instead of std::ctype::widen.
122 (__formatter_fp::_M_localize): Use hardcoded wchar_t values
123 instead of std::ctype::widen.
124 * testsuite/std/format/functions/format.cc: Add more checks for
125 wstring formatting of arithmetic types.
126
127 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
128
129 * include/bits/basic_string.h (to_string(floating-point-type)):
130 Implement using std::to_chars for C++26.
131 * include/bits/version.def (__cpp_lib_to_string): Define.
132 * include/bits/version.h: Regenerate.
133 * testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc:
134 Adjust expected result in C++26 mode.
135 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string.cc:
136 Likewise.
137 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/dr1261.cc:
138 Likewise.
139 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring.cc:
140 Likewise.
141 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc:
142 New test.
143 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring_float.cc:
144 New test.
145 * testsuite/21_strings/basic_string/numeric_conversions/version.cc:
146 New test.
147
148 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
149
150 * include/bits/basic_string.h (to_string(integral-type)): Use
151 resize_and_overwrite when available.
152 (__to_wstring_numeric): New helper functions.
153 (to_wstring): Use std::to_string then __to_wstring_numeric.
154 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_int.cc:
155 Remove check for no excess capacity.
156
157 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
158
159 * include/bits/basic_string.h (__resize_and_overwrite): New
160 function.
161 * include/bits/basic_string.tcc (__resize_and_overwrite): New
162 function.
163 (resize_and_overwrite): Simplify by using reserve instead of
164 growing the string manually. Adjust for C++11 compatibility.
165 * include/bits/cow_string.h (resize_and_overwrite): New
166 function.
167 (__resize_and_overwrite): New function.
168 * include/bits/version.def (__cpp_lib_string_resize_and_overwrite):
169 Do not depend on cxx11abi.
170 * include/bits/version.h: Regenerate.
171 * include/std/format (__formatter_fp::_S_resize_and_overwrite):
172 Remove.
173 (__formatter_fp::format, __formatter_fp::_M_localize): Use
174 __resize_and_overwrite instead of _S_resize_and_overwrite.
175 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
176 Adjust for C++11 compatibility when included by ...
177 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite_ext.cc:
178 New test.
179
180 2023-08-17 Patrick Palka <ppalka@redhat.com>
181
182 * include/bits/regex.h (regex_iterator::iterator_concept):
183 Define for C++20 as per P2770R0.
184 (regex_token_iterator::iterator_concept): Likewise.
185 * include/std/ranges (__detail::__as_lvalue): Define.
186 (join_view::_Iterator): Befriend join_view.
187 (join_view::_Iterator::_M_satisfy): Use _M_get_outer
188 instead of _M_outer.
189 (join_view::_Iterator::_M_get_outer): Define.
190 (join_view::_Iterator::_Iterator): Split constructor taking
191 _Parent argument into two as per P2770R0. Remove constraint on
192 default constructor.
193 (join_view::_Iterator::_M_outer): Make this data member present
194 only when the underlying range is forward.
195 (join_view::_Iterator::operator++): Use _M_get_outer instead of
196 _M_outer.
197 (join_view::_Iterator::operator--): Use __as_lvalue helper.
198 (join_view::_Iterator::operator==): Adjust constraints as per
199 P2770R0.
200 (join_view::_Sentinel::__equal): Use _M_get_outer instead of
201 _M_outer.
202 (join_view::_M_outer): New data member when the underlying range
203 is non-forward.
204 (join_view::begin): Adjust definition as per P2770R0.
205 (join_view::end): Likewise.
206 (join_with_view::_M_outer_it): New data member when the
207 underlying range is non-forward.
208 (join_with_view::begin): Adjust definition as per P2770R0.
209 (join_with_view::end): Likewise.
210 (join_with_view::_Iterator::_M_outer_it): Make this data member
211 present only when the underlying range is forward.
212 (join_with_view::_Iterator::_M_get_outer): Define.
213 (join_with_view::_Iterator::_Iterator): Split constructor
214 taking _Parent argument into two as per P2770R0. Remove
215 constraint on default constructor.
216 (join_with_view::_Iterator::_M_update_inner): Adjust definition
217 as per P2770R0.
218 (join_with_view::_Iterator::_M_get_inner): Likewise.
219 (join_with_view::_Iterator::_M_satisfy): Adjust calls to
220 _M_get_inner. Use _M_get_outer instead of _M_outer_it.
221 (join_with_view::_Iterator::operator==): Adjust constraints
222 as per P2770R0.
223 (join_with_view::_Sentinel::operator==): Use _M_get_outer
224 instead of _M_outer_it.
225 * testsuite/std/ranges/adaptors/p2770r0.cc: New test.
226
227 2023-08-17 Patrick Palka <ppalka@redhat.com>
228
229 PR libstdc++/108827
230 * include/std/ranges (__adaptor::_RangeAdaptorClosure):
231 Convert into a CRTP class template. Move hidden operator|
232 friends into namespace scope and adjust their constraints.
233 (__closure::__is_range_adaptor_closure_fn): Define.
234 (__closure::__is_range_adaptor_closure): Define.
235 (__adaptor::_Partial): Adjust use of _RangeAdaptorClosure.
236 (__adaptor::_Pipe): Likewise.
237 (views::_All): Likewise.
238 (views::_Join): Likewise.
239 (views::_Common): Likewise.
240 (views::_Reverse): Likewise.
241 (views::_Elements): Likewise.
242 (views::_Adjacent): Likewise.
243 (views::_AsRvalue): Likewise.
244 (views::_Enumerate): Likewise.
245 (views::_AsConst): Likewise.
246 * testsuite/std/ranges/adaptors/all.cc: Reinstate assertion
247 expecting that adding empty range adaptor closure objects to a
248 pipeline doesn't increase the size of a pipeline.
249
250 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
251
252 * include/std/format (__format::_Pres_type): Add _Pres_F.
253 (__formatter_fp::parse): Use _Pres_F for 'F'.
254 (__formatter_fp::format): Set __upper for _Pres_F.
255 * testsuite/std/format/functions/format.cc: Check formatting of
256 infinity and NaN for each presentation type.
257
258 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
259
260 * include/Makefile.in: Regenerate.
261
262 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
263
264 * testsuite/24_iterators/move_iterator/p2520r0.cc: Add no_pch.
265 * testsuite/std/format/functions/format.cc: Likewise.
266 * testsuite/std/format/functions/format_c++23.cc: Likewise.
267
268 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
269
270 * testsuite/lib/dg-options.exp (add_options_for_no_pch): Remove
271 any "-include bits/stdc++.h" from options and add the macro to
272 the existing options instead of replacing them.
273
274 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
275
276 * include/bits/basic_string.tcc (resize_and_overwrite): Invoke
277 the callable with the same size as resize_and_overwrite was
278 called with.
279 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
280 Check with small values for the new size.
281 * testsuite/std/format/functions/format.cc: Check wide
282 formatting of double values that produce small strings.
283 * testsuite/std/format/functions/format_c++23.cc: New test.
284
285 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
286
287 * include/bits/version.def (stds): Update value for C++23.
288 * include/bits/version.h: Regenerate.
289
290 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
291
292 * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
293 Fix name of upstream file this was derived from.
294 * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
295 Likewise.
296 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
297 Likewise.
298 * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
299 Likewise.
300 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h: Likewise.
301
302 2023-08-16 Arsen Arsenović <arsen@aarsen.me>
303
304 * libsupc++/typeinfo: Switch to bits/version.h for
305 __cpp_lib_constexpr_typeinfo.
306 * libsupc++/new: Switch to bits/version.h for
307 __cpp_lib_{launder,hardware_interference_size,destroying_delete}.
308 (launder): Guard behind __cpp_lib_launder.
309 (hardware_destructive_interference_size)
310 (hardware_constructive_interference_size): Guard behind
311 __cpp_lib_hardware_interference_size.
312 * libsupc++/exception: Switch to bits/version.h for
313 __cpp_lib_uncaught_exceptions.
314 (uncaught_exceptions): Guard behind __cpp_lib_uncaught_exceptions.
315 * libsupc++/compare: Switch to bits/version.h for
316 __cpp_lib_three_way_comparison.
317 (three_way_comparable, three_way_comparable_with)
318 (compare_three_way, weak_order, strong_order, partial_order):
319 Guard behind __cpp_lib_three_way_comparison >= 201907L.
320 * include/std/chrono: Drop __cpp_lib_chrono definition.
321 * include/std/vector: Switch to bits/version.h for
322 __cpp_lib_erase_if.
323 (erase, erase_if): Guard behind __cpp_lib_erase_if.
324 * include/std/variant: Switch to bits/version.h for
325 __cpp_lib_variant. Guard whole header behind that FTM.
326 * include/std/utility: Switch to bits/version.h for
327 __cpp_lib_{exchange_function,constexpr_algorithms,as_const},
328 __cpp_lib_{integer_comparison_functions,to_underlying}, and
329 __cpp_lib_unreachable.
330 (exchange): Guard behind __cpp_lib_exchange_function.
331 (cmp_equal, cmp_not_equal, cmp_less, cmp_greater, cmp_less_equal)
332 (cmp_greater_equal, in_range): Guard behind
333 __cpp_lib_integer_comparison_functions.
334 (to_underlying): Guard behind __cpp_lib_to_underlying.
335 (unreachable): Guard behind __cpp_lib_unreachable.
336 * include/std/type_traits: Switch to bits/version.h for
337 __cpp_lib_is_{null_pointer,final,nothrow_convertible,aggregate},
338 __cpp_lib_is_{constant_evaluated,invocable,layout_compatible},
339 __cpp_lib_is_{pointer_interconvertible,scoped_enum,swappable},
340 __cpp_lib_{logical_traits,reference_from_temporary,remove_cvref},
341 __cpp_lib_{result_of_sfinae,transformation_trait_aliases},
342 __cpp_lib_{type_identity,type_trait_variable_templates},
343 __cpp_lib_{unwrap_ref,void_t,integral_constant_callable},
344 __cpp_lib_{bool_constant,bounded_array_traits}, and
345 __cpp_lib_has_unique_object_representations.
346 (integral_constant::operator()): Guard behind
347 __cpp_lib_integral_constant_callable.
348 (bool_constant): Guard behind __cpp_lib_bool_constant.
349 (conjunction, disjunction, negation, conjunction_v, disjunction_v)
350 (negation_v): Guard behind __cpp_lib_logical_traits.
351 (is_null_pointer): Guard behind __cpp_lib_is_null_pointer.
352 (is_final): Guard behind __cpp_lib_is_final.
353 (is_nothrow_convertible, is_nothrow_convertible_v): Guard behind
354 __cpp_lib_is_nothrow_convertible.
355 (remove_const_t, remove_volatile_t, remove_cv_t)
356 (add_const_t, add_volatile_t, add_cv_t): Guard behind
357 __cpp_lib_transformation_trait_aliases.
358 (void_t): Guard behind __cpp_lib_void_t.
359 (is_swappable_with_v, is_nothrow_swappable_with_v)
360 (is_swappable_with, is_nothrow_swappable_with): Guard behind
361 __cpp_lib_is_swappable.
362 (is_nothrow_invocable_r, is_invocable_r, invoke_result)
363 (is_invocable, invoke_result_t): Guard behind
364 __cpp_lib_is_invocable.
365 (alignment_of_v, extent_v, has_virtual_destructor_v)
366 (is_abstract_v, is_arithmetic_v, is_array_v)
367 (is_assignable_v, is_base_of_v, is_class_v, is_compound_v)
368 (is_constructible_v, is_const_v, is_convertible_v)
369 (is_copy_assignable_v, is_copy_constructible_v)
370 (is_default_constructible_v, is_destructible_v)
371 (is_empty_v, is_enum_v, is_final_v, is_floating_point_v)
372 (is_function_v, is_fundamental_v, is_integral_v)
373 (is_invocable_r_v, is_invocable_v, is_literal_type_v)
374 (is_lvalue_reference_v, is_member_function_pointer_v)
375 (is_member_object_pointer_v, is_member_pointer_v)
376 (is_move_assignable_v, is_move_constructible_v)
377 (is_nothrow_assignable_v, is_nothrow_constructible_v)
378 (is_nothrow_copy_assignable_v, is_nothrow_copy_constructible_v)
379 (is_nothrow_default_constructible_v, is_nothrow_destructible_v)
380 (is_nothrow_invocable_r_v, is_nothrow_invocable_v)
381 (is_nothrow_move_assignable_v, is_nothrow_move_constructible_v)
382 (is_null_pointer_v, is_object_v, is_pod_v, is_pointer_v)
383 (is_polymorphic_v, is_reference_v, is_rvalue_reference_v)
384 (is_same_v, is_scalar_v, is_signed_v, is_standard_layout_v)
385 (is_trivially_assignable_v, is_trivially_constructible_v)
386 (is_trivially_copyable_v, is_trivially_copy_assignable_v)
387 (is_trivially_copy_constructible_v)
388 (is_trivially_default_constructible_v)
389 (is_trivially_destructible_v, is_trivially_move_assignable_v)
390 (is_trivially_move_constructible_v, is_trivial_v, is_union_v)
391 (is_unsigned_v, is_void_v, is_volatile_v, rank_v, as variadic):
392 Guard behind __cpp_lib_type_trait_variable_templates.
393 (has_unique_object_representations)
394 (has_unique_object_representations_v): Guard behind
395 __cpp_lib_has_unique_object_representation.
396 (is_aggregate): Guard behind __cpp_lib_is_aggregate.
397 (remove_cvref, remove_cvref_t): Guard behind
398 __cpp_lib_remove_cvref.
399 (type_identity, type_identity_t): Guard behind
400 __cpp_lib_type_identity.
401 (unwrap_reference, unwrap_reference_t, unwrap_ref_decay)
402 (unwrap_ref_decay_t): Guard behind __cpp_lib_unwrap_ref.
403 (is_bounded_array_v, is_unbounded_array_v, is_bounded_array)
404 (is_unbounded_array): Guard behind __cpp_lib_bounded_array_traits.
405 (is_scoped_enum, is_scoped_enum_v): Guard behind
406 __cpp_lib_is_scoped_enum.
407 (reference_constructs_from_temporary)
408 (reference_constructs_from_temporary_v): Guard behind
409 __cpp_lib_reference_from_temporary.
410 * include/std/tuple: Switch to bits/version.h for
411 __cpp_lib_{constexpr_tuple,tuple_by_type,apply_make_from_tuple}.
412 (get<T>): Guard behind __cpp_lib_tuple_by_type.
413 (apply): Guard behind __cpp_lib_apply.
414 (make_from_tuple): Guard behind __cpp_lib_make_from_tuple.
415 * include/std/syncstream: Switch to bits/version.h for
416 __cpp_lib_syncbuf. Guard header behind that FTM.
417 * include/std/string_view: Switch to bits/version.h for
418 __cpp_lib_{string_{view,contains},constexpr_string_view} and
419 __cpp_lib_starts_ends_with.
420 (basic_string_view::starts_with, basic_string_view::ends_with):
421 Guard behind __cpp_lib_starts_ends_with.
422 [C++23 && _GLIBCXX_HOSTED && !defined(__cpp_lib_string_contains)]:
423 Assert as impossible ithout a bug in C++23.
424 * include/std/string: Switch to bits/version.h for
425 __cpp_lib_erase_if.
426 (erase, erase_if): Guard behind __cpp_lib_erase_if.
427 * include/std/thread: Switch to bits/version.h for
428 __cpp_lib_jthread.
429 * include/std/stop_token: Switch to bits/version.h for
430 __cpp_lib_jthread.
431 * include/std/spanstream: Switch to bits/version.h for
432 __cpp_lib_spanstream. Guard header behind that FTM.
433 * include/std/span: Switch to bits/version.h for __cpp_lib_span.
434 Guard header behind that FTM.
435 * include/std/source_location: Switch to bits/version.h for
436 __cpp_lib_source_location. Guard header with that FTM.
437 * include/std/shared_mutex: Switch to bits/version.h for
438 __cpp_lib_shared{,_timed}_mutex.
439 (shared_mutex): Guard behind __cpp_lib_shared_mutex.
440 * include/std/semaphore: Switch to bits/version.h for
441 __cpp_lib_semaphore. Guard header behind that FTM.
442 * include/std/ranges: Switch to bits/version.h for
443 __cpp_lib_ranges_{zip,chunk{,_by},slide,join_with},
444 __cpp_lib_ranges_{repeat_stride,cartesian_product,as_rvalue},
445 and __cpp_lib_ranges_{as_const,enumerate,iota}.
446 (ranges::zip et al, ranges::chunk et al, ranges::slide et al)
447 (ranges::chunk_by et al, ranges::join_with et al)
448 (ranges::stride et al, ranges::cartesian_product et al)
449 (ranges::as_rvalue et al, ranges::as_const et al)
450 (ranges::enumerate et al): Guard behind appropriate FTM.
451 * include/std/optional: Switch to bits/version.h for
452 __cpp_lib_optional. Guard header behind that FTM.
453 * include/std/numeric: Switch to bits/version.h for
454 __cpp_lib_{gcd{,_lcm},lcm,constexpr_numeric,interpolate}
455 and __cpp_lib_parallel_algorithm.
456 (gcd, lcm): Guard behind __cpp_lib_gcd_lcm.
457 (midpoint): Guard behind __cpp_lib_interpolate.
458 * include/std/numbers: Switch to bits/version.h for
459 __cpp_lib_math_constants. Guard header behind that FTM.
460 * include/std/mutex: Switch to bits/version.h for
461 __cpp_lib_scoped_lock.
462 (scoped_Lock): Guard behind __cpp_lib_scoped_lock.
463 * include/std/memory_resource: Switch to bits/version.h for
464 __cpp_lib_{polymorphic_allocator,memory_resource}.
465 (synchronized_pool_resource): Guard behind
466 __cpp_lib_memory_resource >= 201603L.
467 (polymorphic_allocator): Guard behind
468 __cpp_lib_polymorphic_allocator.
469 * include/std/memory: Switch to bits/version.h for
470 __cpp_lib_{parallel_algorithm,atomic_value_initialization}.
471 * include/std/list: Switch to bits/version.h for
472 __cpp_lib_erase_if.
473 (erase, erase_if): Guard behind __cpp_lib_erase_if.
474 * include/std/latch: Switch to bits/version.h for __cpp_lib_latch.
475 Guard header behind that FTM.
476 * include/std/iterator: Switch to bits/version.h for
477 __cpp_lib_null_iterators.
478 * include/std/iomanip: Switch to bits/version.h for
479 __cpp_lib_quoted_string_io.
480 (quoted): Guard behind __cpp_lib_quoted_string_io.
481 * include/std/functional: Switch to bits/version.h for
482 __cpp_lib_{invoke{,_r},constexpr_functional,bind_front} and
483 __cpp_lib_{not_fn,booyer_moore_searcher}.
484 (invoke): Guard behind __cpp_lib_invoke.
485 (invoke_r): Guard behind __cpp_lib_invoke_r.
486 (bind_front): Guard behind __cpp_lib_bind_front.
487 (not_fn): Guard behind __cpp_lib_not_fn.
488 (boyer_moore_searcher, boyer_moore_horspool_searcher): Guard
489 definition behind __cpp_lib_boyer_moore_searcher.
490 * include/std/forward_list: Switch to bits/version.h for
491 __cpp_lib_erase_if.
492 (erase, erase_if): Guard behind __cpp_lib_erase_if.
493 * include/std/format: Switch to bits/version.h for
494 __cpp_lib_format. Guard header behind that FTM.
495 * include/std/filesystem: Switch to bits/version.h for
496 __cpp_lib_filesystem. Guard header behind that FTM.
497 * include/std/expected: Switch to bits/version.h for
498 __cpp_lib_expected. Guard header behind it.
499 * include/std/execution: Switch to bits/version.h for
500 __cpp_lib_{execution,parallel_algorithm}. Guard header behind
501 either.
502 * include/std/deque: Switch to bits/version.h for
503 __cpp_lib_erase_if.
504 (erase, erase_if): Guard behind __cpp_lib_erase_if.
505 * include/std/coroutine: Switch to bits/version.h for
506 __cpp_lib_coroutine. Guard header behind that FTM.
507 * include/std/concepts: Switch to bits/version.h for
508 __cpp_lib_concepts. Guard header behind that FTM.
509 * include/std/complex: Switch to bits/version.h for
510 __cpp_lib_{complex_udls,constexpr_complex}.
511 (operator""if, operator""i, operator""il): Guard behind
512 __cpp_lib_complex_udls.
513 * include/std/charconv: Swtich to bits/version.h for
514 __cpp_lib_{to_chars,constexpr_charconv}.
515 * include/std/bitset: Switch to bits/version.h for
516 __cpp_lib_constexpr_bitset.
517 * include/std/bit: Switch to bits/version.h for
518 __cpp_lib_{bit_cast,byteswap,bitops,int_pow2,endian}.
519 (bit_cast): Guard behind __cpp_lib_bit_cast.
520 (byteswap): Guard behind __cpp_lib_byteswap.
521 (rotl, rotr, countl_zero, countl_one, countr_zero, countr_one)
522 (popcount): Guard behind __cpp_lib_bitops.
523 (has_single_bit, bit_ceil, bit_floor, bit_width): Guard behind
524 __cpp_lib_int_pow2.
525 (endian): Guard behind __cpp_lib_endian.
526 * include/std/barrier: Switch to bits/version.h for
527 __cpp_lib_barrier. Guard header behind that FTM.
528 * include/std/atomic: Switch to bits/version.h for
529 __cpp_lib_atomic_{is_always_lock_free,float,ref}
530 and __cpp_lib_lock_free_type_aliases.
531 (*::is_always_lock_free): Guard behind
532 __cpp_lib_atomic_is_always_lock_free.
533 (atomic<float>): Guard behind __cpp_lib_atomic_float.
534 (atomic_ref): Guard behind __cpp_lib_atomic_ref.
535 (atomic_signed_lock_free, atomic_unsigned_lock_free): Guard behind
536 __cpp_lib_atomic_lock_free_type_aliases.
537 * include/std/array: Switch to bits/version.h for
538 __cpp_lib_to_array.
539 (to_array): Guard behind __cpp_lib_to_array.
540 * include/std/any: Switch to bits/version.h for __cpp_lib_any.
541 Guard header behind that FTM.
542 * include/std/algorithm: Switch to bits/version.h for
543 __cpp_lib_parallel_algorithm.
544 * include/c_global/cstddef: Switch to bits/version.h for
545 __cpp_lib_byte.
546 (byte): Guard behind __cpp_lib_byte.
547 * include/c_global/cmath: Switch to bits/version.h for
548 __cpp_lib_{hypot,interpolate}.
549 (hypot3): Guard behind __cpp_lib_hypot.
550 (lerp): Guard behind __cpp_lib_interpolate.
551 * include/c_compatibility/stdatomic.h: Switch to
552 bits/stl_version.h for __cpp_lib_atomic. Guard header behind that
553 FTM.
554 * include/bits/utility.h: Switch to bits/version.h for
555 __cpp_lib_{tuple_element_t,integer_sequence,ranges_zip}.
556 (tuple_element_t): Guard behind __cpp_lib_tuple_element_t.
557 (integer_sequence et al): Guard behind __cpp_lib_integer_sequence.
558 * include/bits/uses_allocator_args.h: Switch to bits/version.h for
559 __cpp_lib_make_obj_using_allocator. Guard header behind that FTM.
560 * include/bits/unordered_map.h: Switch to bits/version.h for
561 __cpp_lib_unordered_map_try_emplace.
562 (try_emplace): Guard behind __cpp_lib_unordered_map_try_emplace.
563 * include/bits/unique_ptr.h: Switch to bits/version.h for
564 __cpp_lib_{constexpr_memory,make_unique}.
565 (make_unique): Guard behind __cpp_lib_make_unique.
566 * include/bits/stl_vector.h: Switch to bits/version.h for
567 __cpp_lib_constexpr_vector.
568 * include/bits/stl_uninitialized.h: Switch to bits/version.h for
569 __cpp_lib_raw_memory_algorithms.
570 (uninitialized_default_construct)
571 (uninitialized_default_construct_n, uninitialized_move)
572 (uninitialized_move_n, uninitialized_value_construct)
573 (uninitialized_value_construct_n): Guard behind
574 __cpp_lib_raw_memory_algorithms.
575 * include/bits/stl_tree.h: Switch to bits/version.h for
576 __cpp_lib_generic_associative_lookup.
577 * include/bits/stl_stack.h: Switch to bits/version.h for
578 __cpp_lib_adaptor_iterator_pair_constructor.
579 (stack): Guard iterator-pair constructor behind
580 __cpp_lib_adaptor_iterator_pair_constructor.
581 * include/bits/stl_queue.h: Switch to bits/version.h for
582 __cpp_lib_adaptor_iterator_pair_constructor.
583 (queue): Guard iterator-pair constructor behind
584 __cpp_lib_adaptor_iterator_pair_constructor.
585 * include/bits/stl_pair.h: Switch to bits/version.h for
586 __cpp_lib_{concepts,tuples_by_type}.
587 (get): Guard type-getting overloads behind
588 __cpp_lib_tuples_by_type.
589 * include/bits/stl_map.h: Switch to bits/version.h for
590 __cpp_lib_map_try_emplace.
591 (map<>::try_emplace): Guard behind __cpp_lib_map_try_emplace.
592 * include/bits/stl_list.h: Switch to bits/version.h for
593 __cpp_lib_list_remove_return_type.
594 (__remove_return_type, _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG)
595 [C++20]: guard behind __cpp_lib_list_remove_return_type instead.
596 * include/bits/stl_iterator.h: Switch to bits/version.h for
597 __cpp_lib_{constexpr_iterator,array_constexpr} and
598 __cpp_lib_{make_reverse_iterator,move_iterator_concept}.
599 (make_reverse_iterator): Guard behind
600 __cpp_lib_make_reverse_iterator.
601 (iterator_concept et al): Guard __cpp_lib_move_iterator_concept
602 changes behind that FTM.
603 * include/bits/stl_function.h: Switch to bits/version.h for
604 __cpp_lib_transparent_operators.
605 (equal_to, not_equal_to, greater, less, greater_equal)
606 (less_equal, bit_and, bit_or, bit_xor, bit_not, logical_and)
607 (logical_or, logical_not, plus, minus, multiplies, divides)
608 (modulus, negate): Guard '= void' fwdecls behind
609 __cpp_lib_transparent_operators.
610 (plus<void>, minus<void>, multiplies<void>, divides<void>)
611 (modulus<void>, negate<void>, logical_and<void>, logical_or<void>)
612 (logical_not<void>, bit_and<void>, bit_or<void>, bit_xor<void>)
613 (equal_to<void>, not_equal_to<void>, greater<void>, less<void>)
614 (greater_equal<void>, less_equal<void>, bit_not<void>)
615 (__has_is_transparent): Guard behind
616 __cpp_lib_transparent_operators.
617 * include/bits/stl_algobase.h: Switch to bits/version.h for
618 __cpp_lib_robust_nonmodifying_seq_ops.
619 (robust equal, mismatch): Guard behind
620 __cpp_lib_nonmember_container_access.
621 * include/bits/stl_algo.h: Swtich to bits/version.h for
622 __cpp_lib_{clamp,sample}.
623 (clamp): Guard behind __cpp_lib_clamp.
624 (sample): Guard behind __cpp_lib_sample.
625 * include/bits/specfun.h: Switch to bits/version.h for
626 __cpp_lib_math_special_functions and __STDCPP_MATH_SPEC_FUNCS__.
627 * include/bits/shared_ptr_base.h: Switch to bits/version.h for
628 __cpp_lib_{smart_ptr_for_overwrite,shared_ptr_arrays}.
629 (_Sp_overwrite_tag): Guard behind
630 __cpp_lib_smart_ptr_for_overwrite.
631 * include/bits/shared_ptr_atomic.h: Switch to bits/version.h for
632 __cpp_lib_atomic_shared_ptr.
633 * include/bits/shared_ptr.h: Switch to bits/version.h for
634 __cpp_lib_{enable_shared_from_this,shared_ptr_weak_type}.
635 (shared_ptr<T>::weak_type): Guard behind
636 __cpp_lib_shared_ptr_weak_type.
637 (enable_shared_from_this<T>::weak_from_this): Guard behind
638 __cpp_lib_enable_shared_from_this.
639 * include/bits/ranges_cmp.h: Switch to bits/version.h for
640 __cpp_lib_ranges.
641 * include/bits/ranges_algo.h: Switch to bits/version.h for
642 __cpp_lib_{shift,ranges_{contains,find_last,fold,iota}}.
643 * include/bits/range_access.h: Switch to bits/version.h for
644 __cpp_lib_nonmember_container_access
645 (size, empty, data): Guard behind
646 __cpp_lib_nonmember_container_access.
647 (ssize): Guard behind __cpp_lib_ssize.
648 * include/bits/ptr_traits.h: Switch to bits/version.h. for
649 __cpp_lib_{constexpr_memory,to_address}.
650 (to_address): Guard behind __cpp_lib_to_address.
651 * include/bits/node_handle.h: Switch to bits/version.h for
652 __cpp_lib_node_extract. Guard header behind that FTM.
653 * include/bits/move_only_function.h: Switch to bits/version.h for
654 __cpp_lib_move_only_function. Guard header behind that FTM.
655 * include/bits/move.h: Switch to bits/version.h for
656 __cpp_lib_addressof_constexpr.
657 * include/bits/ios_base.h: Switch to bits/version.h for
658 __cpp_lib_ios_noreplace.
659 (noreplace): Guard with __cpp_lib_ios_noreplace.
660 * include/bits/hashtable.h: Switch to bits/version.h for
661 __cpp_lib_generic_unordered_lookup.
662 (_M_equal_range_tr, _M_count_tr, _M_find_tr): Guard behind
663 __cpp_lib_generic_unordered_lookup.
664 * include/bits/forward_list.h: Switch to bits/version.h for
665 __cpp_lib_list_remove_return_type.
666 (__remove_return_type): Guard behind
667 __cpp_lib_list_remove_return_type.
668 * include/bits/erase_if.h: Switch to bits/version.h for
669 __cpp_lib_erase_if.
670 * include/bits/cow_string.h: Switch to bits/version.h for
671 __cpp_lib_constexpr_string.
672 * include/bits/chrono.h: Swtich to bits/version.h for
673 __cpp_lib_chrono{,_udls}.
674 (ceil): Guard behind __cpp_lib_chrono.
675 (operator""ns et al): Guard behind __cpp_lib_chrono_udls.
676 * include/bits/char_traits.h: Switch to bits/version.h for
677 __cpp_lib_constexpr_char_traits.
678 * include/bits/basic_string.h: Switch to bits/version.h for
679 __cpp_lib_{constexpr_string,string_{resize_and_overwrite,udls}}.
680 (resize_and_overwrite): Guard behind
681 __cpp_lib_string_resize_and_overwrite.
682 (operator""s): Guard behind __cpp_lib_string_udls.
683 * include/bits/atomic_wait.h: Switch to bits/version.h for
684 __cpp_lib_atomic_wait. Guard header behind that FTM.
685 * include/bits/atomic_base.h: Switch to bits/version.h for
686 __cpp_lib_atomic_value_initialization and
687 __cpp_lib_atomic_flag_test.
688 (atomic_flag::test): Guard behind __cpp_lib_atomic_flag_test,
689 rather than C++20.
690 * include/bits/allocator.h: Switch to bits/version.h for
691 __cpp_lib_incomplete_container_elements.
692 * include/bits/alloc_traits.h: Switch to using bits/version.h for
693 __cpp_lib_constexpr_dynamic_alloc and
694 __cpp_lib_allocator_traits_is_always_equal.
695 * include/bits/align.h: Switch to bits/version.h for defining
696 __cpp_lib_assume_aligned.
697 (assume_aligned): Guard with __cpp_lib_assume_aligned.
698 * include/bits/algorithmfwd.h: Switch to bits/version.h for
699 defining __cpp_lib_constexpr_algorithms.
700 * include/std/stacktrace: Switch to bits/version.h for
701 __cpp_lib_stacktrace. Guard header behind that FTM.
702 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
703 Update line numbers.
704
705 2023-08-16 Arsen Arsenović <arsen@aarsen.me>
706
707 * include/Makefile.am (bits_freestanding): Add version.h.
708 (allcreated): Add version.h.
709 (${bits_srcdir}/version.h): New rule. Regenerates
710 version.h out of version.{def,tpl}.
711 * include/Makefile.in: Regenerate.
712 * include/bits/version.def: New file. Declares a list of
713 all feature test macros, their values and their preconditions.
714 * include/bits/version.tpl: New file. Turns version.def
715 into a sequence of #if blocks.
716 * include/bits/version.h: New file. Generated from
717 version.def.
718 * include/std/version: Replace with a __glibcxx_want_all define
719 and bits/version.h include.
720
721 2023-08-14 Paul Dreik <gccpatches@pauldreik.se>
722
723 PR libstdc++/110860
724 * include/std/format (__formatter_fp::format): Use frexp instead
725 of log10.
726
727 2023-08-12 Ken Matsui <kmatsui@gcc.gnu.org>
728
729 * include/std/type_traits (true_type): Use __bool_constant
730 instead.
731 (false_type): Likewise.
732 (bool_constant): Likewise.
733
734 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
735
736 PR libstdc++/110990
737 * include/std/format (_Seq_sink::get): Only call _M_overflow if
738 its precondition is met.
739 (_Iter_sink::_M_finish): Likewise.
740 (_Iter_sink<C, ContigIter>::_M_overflow): Only switch to the
741 internal buffer after running out of space.
742 (_Iter_sink<C, ContigIter>::_M_finish): Do not use _M_overflow.
743 (_Counting_sink::count): Likewise.
744 * testsuite/std/format/functions/format_to_n.cc: Check cases
745 where the output fits into the buffer.
746
747 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
748
749 PR libstdc++/104167
750 * include/bits/chrono_io.h (operator|=, operator|): Add noexcept
751 to _ChronoParts operators.
752 (from_stream, parse): Define new functions.
753 (__detail::_Parse, __detail::_Parser): New class templates.
754 * include/std/chrono (__cpp_lib_chrono): Define to 201907L for
755 C++20.
756 * include/std/version (__cpp_lib_chrono): Likewise.
757 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
758 Adjust expected value of feature test macro.
759 * testsuite/20_util/duration/io.cc: Test parsing.
760 * testsuite/std/time/clock/file/io.cc: Likewise.
761 * testsuite/std/time/clock/gps/io.cc: Likewise.
762 * testsuite/std/time/clock/system/io.cc: Likewise.
763 * testsuite/std/time/clock/tai/io.cc: Likewise.
764 * testsuite/std/time/clock/utc/io.cc: Likewise.
765 * testsuite/std/time/day/io.cc: Likewise.
766 * testsuite/std/time/month/io.cc: Likewise.
767 * testsuite/std/time/month_day/io.cc: Likewise.
768 * testsuite/std/time/weekday/io.cc: Likewise.
769 * testsuite/std/time/year/io.cc: Likewise.
770 * testsuite/std/time/year_month/io.cc: Likewise.
771 * testsuite/std/time/year_month_day/io.cc: Likewise.
772 * testsuite/std/time/syn_c++20.cc: Check value of macro and for
773 the existence of parse and from_stream in namespace chrono.
774 * testsuite/std/time/clock/local/io.cc: New test.
775 * testsuite/std/time/parse.cc: New test.
776
777 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
778
779 PR libstdc++/110860
780 * include/std/format (__formatter_fp::format): Do not call log10
781 with zero values.
782
783 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
784
785 * python/libstdcxx/v6/printers.py (StdChronoCalendarPrinter):
786 Check for out-of-range month an weekday indices.
787 * testsuite/libstdc++-prettyprinters/chrono.cc: Check invalid
788 month and weekday values.
789
790 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
791
792 * include/bits/stl_iterator.h (__clamped_iter_cat_t): Remove.
793
794 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
795
796 PR libstdc++/110974
797 * include/std/format (_Spec::_S_parse_width_or_precision): Check
798 for empty range before dereferencing iterator.
799 * testsuite/std/format/string.cc: Check for expected exception.
800 Fix expected exception message in test_pr110862() and actually
801 call it.
802
803 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
804
805 PR libstdc++/110968
806 * include/std/format (__formatter_fp::format): Check return
807 value of _M_localize.
808 * testsuite/std/format/functions/format.cc: Check classic
809 locale.
810
811 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
812
813 PR libstdc++/110970
814 * include/bits/stl_iterator.h (__detail::__move_iter_cat): Use
815 __iter_category_t.
816 (iterator_traits<common_iterator<I, S>>::_S_iter_cat): Likewise.
817 (__detail::__basic_const_iterator_iter_cat): Likewise.
818 * include/bits/stl_iterator_base_types.h (__iterator_category_t):
819 Rename to __iter_category_t.
820
821 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
822
823 * include/bits/chrono.h (duration_cast): Do not use braces
824 around statements for C++11 constexpr rules.
825 * include/bits/stl_algobase.h (__lg): Rewrite as a single
826 statement for C++11 constexpr rules.
827 * include/experimental/bits/fs_path.h (path::string): Use
828 _GLIBCXX17_CONSTEXPR not _GLIBCXX_CONSTEXPR for 'if constexpr'.
829 * include/std/charconv (__to_chars_8): Initialize variable for
830 C++17 constexpr rules.
831
832 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
833
834 * include/bits/list.tcc (list::sort(Cmp)): Fix -Wsign-compare
835 warning for loop condition.
836
837 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
838
839 * include/std/complex: Add diagnostic pragma for clang.
840
841 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
842
843 * include/bits/shared_ptr_atomic.h (atomic): Change class-head
844 to struct.
845 * include/bits/stl_tree.h (_Rb_tree_merge_helper): Change
846 class-head to struct in friend declaration.
847 * include/std/chrono (tzdb_list::_Node): Likewise.
848 * include/std/future (_Task_state_base, _Task_state): Likewise.
849 * include/std/scoped_allocator (__inner_type_impl): Likewise.
850 * include/std/valarray (_BinClos, _SClos, _GClos, _IClos)
851 (_ValFunClos, _RefFunClos): Change class-head to struct.
852
853 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
854
855 * include/bits/alloc_traits.h (allocate): Add [[maybe_unused]]
856 attribute.
857 * include/bits/regex_executor.tcc: Remove name of unused
858 parameter.
859 * include/bits/shared_ptr_atomic.h (atomic_is_lock_free):
860 Likewise.
861 * include/bits/stl_uninitialized.h: Likewise.
862 * include/bits/streambuf_iterator.h (operator==): Likewise.
863 * include/bits/uses_allocator.h: Likewise.
864 * include/c_global/cmath (isfinite, isinf, isnan): Likewise.
865 * include/std/chrono (zoned_time): Likewise.
866 * include/std/future (__future_base::_S_allocate_result):
867 Likewise.
868 (packaged_task): Likewise.
869 * include/std/optional (_Optional_payload_base): Likewise.
870 * include/std/scoped_allocator (__inner_type_impl): Likewise.
871 * include/std/tuple (_Tuple_impl): Likewise.
872
873 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
874
875 * include/bits/new_allocator.h (__new_allocator): Define copy
876 assignment operator as defaulted.
877 * include/std/complex (complex<float>, complex<double>)
878 (complex<long double>): Define copy constructor as defaulted.
879
880 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
881
882 * include/std/format: Fix some warnings.
883 (__format::__write(Ctx&, basic_string_view<CharT>)): Remove
884 unused function template.
885
886 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
887
888 PR libstdc++/110860
889 * include/std/format (__formatter_fp::format): Do not use
890 __builtin_abs and __builtin_log10 with arbitrary floating-point
891 types.
892
893 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
894
895 PR libstdc++/110917
896 * include/std/format (__format::_Iter_sink<CharT, OutIter>):
897 Constrain partial specialization for contiguous iterators to
898 require the value type to be CharT.
899 * testsuite/std/format/functions/format_to.cc: New test.
900
901 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
902
903 PR libstdc++/110862
904 * include/std/format (_Scanner::_M_on_replacement_field):
905 Check for expected '}' before incrementing iterator.
906 * testsuite/std/format/string.cc: Check "{0:{0}" format string.
907
908 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
909
910 * configure: Regenerate.
911
912 2023-08-07 Alan Modra <amodra@gmail.com>
913
914 * configure: Regenerate.
915
916 2023-08-07 Alexander von Gluck IV <kallisti5@unixzen.com>
917
918 * configure: Regenerate.
919
920 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
921
922 * configure: Regenerate.
923
924 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
925
926 * configure: Regenerate.
927
928 2023-08-07 H.J. Lu <hjl.tools@gmail.com>
929
930 * configure: Regenerate.
931
932 2023-08-07 H.J. Lu <hjl.tools@gmail.com>
933
934 * configure: Regenerate.
935
936 2023-08-06 François Dumont <fdumont@gcc.gnu.org>
937
938 * config/abi/pre/gnu-versioned-namespace.ver: Add __cxa_call_terminate
939 symbol export.
940
941 2023-07-30 François Dumont <fdumont@gcc.gnu.org>
942
943 * src/c++11/compatibility-ldbl-facets-aliases.h: Replace #define with
944 proper #error.
945 * src/c++11/locale-inst-monetary.h: Likewise.
946 * src/c++11/locale-inst-numeric.h: Likewise.
947
948 2023-07-27 Jonathan Wakely <jwakely@redhat.com>
949
950 PR libstdc++/108046
951 * include/std/format (__formatter_fp::format): Ensure __expc is
952 always set for all presentation types. Set __z correctly for
953 zero precision.
954 * testsuite/std/format/functions/format.cc: Check problem cases.
955
956 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
957
958 PR libstdc++/110807
959 * testsuite/23_containers/vector/bool/110807.cc: Require c++11.
960
961 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
962
963 PR libstdc++/110807
964 * include/bits/stl_bvector.h (vector(const vector&)): Access
965 iterators before allocating.
966 * include/bits/vector.tcc (vector<bool>::_M_insert_range):
967 Likewise.
968 * testsuite/23_containers/vector/bool/110807.cc: New test.
969
970 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
971
972 * include/bits/algorithmfwd.h (random_shuffle): Add deprecated
973 attribute.
974 * include/bits/stl_algo.h (random_shuffle): Correct comments.
975 * testsuite/25_algorithms/random_shuffle/1.cc: Disable
976 deprecated warnings.
977 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
978 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
979 * testsuite/25_algorithms/random_shuffle/deprecated.cc: New
980 test.
981
982 2023-07-26 Nathaniel Shead <nathanieloshead@gmail.com>
983
984 * testsuite/25_algorithms/equal/constexpr_neg.cc: Update diagnostic
985 locations.
986 * testsuite/26_numerics/gcd/105844.cc: Likewise.
987 * testsuite/26_numerics/lcm/105844.cc: Likewise.
988
989 2023-07-24 Deev Patel <pateldeev@nevada.unr.edu>
990
991 * include/std/format (_Formatting_scanner::_M_on_chars): Add
992 missing constexpr specifier.
993 (_Formatting_scanner::_M_format_arg): Likewise.
994
995 2023-07-24 Jonathan Wakely <jwakely@redhat.com>
996
997 PR libstdc++/110653
998 * include/bits/basic_string.h [!HAVE_STOF] (stof): Do not
999 throw an exception for zero result.
1000 [HAVE_BROKEN_STRTOLD] (stold): Do not use strtold.
1001
1002 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1003
1004 PR libstdc++/110077
1005 * src/c++17/floating_from_chars.cc (from_chars): Only define
1006 _Float128 overload when using __strfromf128.
1007
1008 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1009
1010 PR libstdc++/110593
1011 * include/bits/chrono.h (duration): Improve static assert
1012 messages.
1013 (__is_ratio): Move to ...
1014 * include/std/ratio (__is_ratio): ... here.
1015 (__is_ratio_v): New variable template and partial
1016 specialization.
1017 (__are_both_ratios): New function template.
1018 (__ratio_multiply, ratio_equal, ratio_less, __ratio_add):
1019 Add static assertion.
1020 * testsuite/20_util/ratio/requirements/type_constraints.cc:
1021 New test.
1022 * testsuite/20_util/duration/requirements/typedefs_neg1.cc:
1023 Adjust expected error.
1024 * testsuite/20_util/duration/requirements/typedefs_neg2.cc:
1025 Likewise.
1026
1027 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1028
1029 * include/bits/chrono_io.h (__formatter_chrono::_M_format):
1030 Do not set __is_neg for hh_mm_ss before calling
1031 _M_format_to_ostream. Change __print_sign lambda to only check
1032 __is_neg for durations and hh_mm_ss types.
1033 (__formatter_chrono::_M_format_to_ostream): Only check __is_neg
1034 for duration types.
1035 * testsuite/std/time/hh_mm_ss/io.cc: Check negative values.
1036
1037 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1038
1039 PR libstdc++/110719
1040 * include/bits/chrono_io.h (__formatter_chrono::_S_floor_seconds):
1041 Handle duration and hh_mm_ss.
1042 * testsuite/20_util/duration/io.cc: Check locale-specific
1043 formats.
1044 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
1045
1046 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1047
1048 * include/std/format (__write_padded): Initialize first element
1049 of array to avoid a -Wmaybe-uninitialized warning.
1050
1051 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1052
1053 PR libstdc++/110719
1054 * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Fix
1055 allowed modifiers for %z and %Z. Fix -Wparentheses and
1056 -Wnarrowing warnings.
1057 (__formatter_chrono::_M_format): Call new functions for %d, %e,
1058 %H, %I, %m and %M.
1059 (__formatter_chrono::_M_c): Use _S_floor_seconds to remove
1060 subsecond precision.
1061 (__formatter_chrono::_M_C_y_Y): Use _M_locale_fmt to handle
1062 modifiers.
1063 (__formatter_chrono::_M_e): Replace with _M_d_e and use
1064 _M_locale_fmt.
1065 (__formatter_chrono::_M_I): Replace with _M_H_I and use
1066 _M_locale_fmt.
1067 (__formatter_chrono::_M_m): New function.
1068 (__formatter_chrono::_M_M): New function.
1069 (__formatter_chrono::_M_r): Use _M_locale_fmt.
1070 (__formatter_chrono::_M_S): Likewise.
1071 (__formatter_chrono::_M_u_w): Likewise.
1072 (__formatter_chrono::_M_U_V_W): Likewise.
1073 (__formatter_chrono::_M_X): Use _S_floor_seconds.
1074 (__formatter_chrono::_M_Z): Fix untested branch for wchar_t.
1075 (__formatter_chrono::_S_altnum): Remove function.
1076 (__formatter_chrono::_S_dd_zero_fill): Remove function.
1077 (__formatter_chrono::_S_floor_seconds): New function.
1078 (__formatter_chrono::_M_locale_fmt): New function.
1079 * testsuite/std/time/clock/system/io.cc: Adjust expected output
1080 for locale-specific formats and check modified formats.
1081 * testsuite/std/time/clock/utc/io.cc: Likewise.
1082 * testsuite/std/time/zoned_time/io.cc: New test.
1083
1084 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1085
1086 PR libstdc++/110708
1087 * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Only
1088 allow a single modifier.
1089 * testsuite/std/time/format.cc: Check multiple modifiers.
1090
1091 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1092
1093 PR libstdc++/110653
1094 * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
1095 Remove dg-require-string-conversions.
1096 * testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
1097 Likewise.
1098 * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
1099 Likewise.
1100 * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
1101 Likewise.
1102 * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
1103 Likewise.
1104
1105 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1106
1107 PR libstdc++/110653
1108 * include/bits/basic_string.h [!_GLIBCXX_HAVE_STRTOF] (stof):
1109 Define in terms of std::stod.
1110
1111 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
1112
1113 PR libstdc++/110653
1114 * include/bits/basic_string.h [_GLIBCXX_HAVE_STRTOF] (stof):
1115 Define.
1116 [_GLIBCXX_HAVE_STRTOLD] (stold): Define.
1117 * include/c_global/cstdlib [_GLIBCXX_HAVE_STRTOF] (strtof):
1118 Declare in namespace std.
1119 [_GLIBCXX_HAVE_STRTOLD] (strtold): Likewise.
1120
1121 2023-07-13 Jonathan Wakely <jwakely@redhat.com>
1122
1123 PR libstdc++/110653
1124 * include/bits/basic_string.h (stoi, stol, stoul, stod): Do not
1125 depend on _GLIBCXX_USE_C99_STDLIB.
1126 [__LONG_WIDTH__ == __LONG_LONG_WIDTH__] (stoll, stoull): Define
1127 in terms of stol and stoul respectively.
1128 [__DBL_MANT_DIG__ == __LDBL_MANT_DIG__] (stold): Define in terms
1129 of stod.
1130
1131 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
1132
1133 PR libstdc++/95048
1134 * testsuite/27_io/filesystem/path/construct/95048.cc: Check
1135 conversions to wide strings.
1136 * testsuite/experimental/filesystem/path/construct/95048.cc:
1137 Likewise.
1138
1139 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
1140
1141 * config/io/basic_file_stdio.cc: Define LFS macros.
1142 (__basic_file<char>::open): Use fopen unconditionally.
1143 (get_file_offset): Use lseek unconditionally.
1144 (__basic_file<char>::seekoff): Likewise.
1145 (__basic_file<char>::showmanyc): Use fstat unconditionally.
1146
1147 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
1148
1149 PR libstdc++/110574
1150 * acinclude.m4 (GLIBCXX_CHECK_LFS): Check for fseeko and ftello
1151 and define _GLIBCXX_USE_FSEEKO_FTELLO.
1152 * config.h.in: Regenerate.
1153 * configure: Regenerate.
1154 * config/io/basic_file_stdio.cc (xwrite) [_GLIBCXX_USE_STDIO_PURE]:
1155 Check for fwrite error correctly.
1156 (__basic_file<char>::xsgetn) [_GLIBCXX_USE_STDIO_PURE]: Check for
1157 fread error correctly.
1158 (get_file_offset): New function.
1159 (__basic_file<char>::seekoff) [_GLIBCXX_USE_STDIO_PURE]: Use
1160 fseeko if available. Use get_file_offset instead of return value
1161 of fseek.
1162 (__basic_file<char>::showmanyc): Use get_file_offset.
1163
1164 2023-07-12 Ken Matsui <kmatsui@gcc.gnu.org>
1165
1166 * include/std/type_traits (__make_unsigned_selector): Use
1167 __is_enum built-in trait.
1168 (__make_signed_selector): Likewise.
1169 (__underlying_type_impl): Likewise.
1170
1171 2023-07-06 Tianqiang Shuai <1101282468@qq.com>
1172
1173 * config/io/basic_file_stdio.cc (xwrite) [USE_STDIO_PURE]: Fix
1174 first argument.
1175
1176 2023-07-06 Jonathan Wakely <jwakely@redhat.com>
1177
1178 PR libstdc++/110574
1179 * doc/xml/manual/configure.xml: Describe stdio_pure argument to
1180 --enable-cstdio.
1181 * doc/html/manual/configure.html: Regenerate.
1182
1183 2023-07-05 Thomas Rodgers <trodgers@redhat.com>
1184
1185 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Delete
1186 file.
1187 * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
1188 New file.
1189 * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
1190 Likewise.
1191 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
1192 Likewise.
1193 * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
1194 Likewise.
1195 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
1196 Likewise.
1197
1198 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
1199
1200 * testsuite/23_containers/forward_list/debug/iterator1_neg.cc:
1201 Skip as UNSUPPORTED for C++98 mode.
1202 * testsuite/23_containers/forward_list/debug/iterator3_neg.cc:
1203 Likewise.
1204
1205 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
1206
1207 PR libstdc++/110542
1208 * include/bits/stl_uninitialized.h (__uninitialized_default_n):
1209 Do not use std::fill_n during constant evaluation.
1210
1211 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
1212
1213 * include/bits/vector.tcc (_M_default_append): Replace try-block
1214 with RAII types.
1215
1216 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
1217
1218 * include/bits/iterator_concepts.h (projected): Add typename.
1219
1220 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
1221
1222 * testsuite/27_io/headers/iosfwd/synopsis.cc: Make wsyncbuf and
1223 wosyncstream depend on _GLIBCXX_USE_CXX11_ABI.
1224
1225 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
1226
1227 * include/pstl/pstl_config.h (_PSTL_PRAGMA_SIMD_SCAN,
1228 _PSTL_PRAGMA_SIMD_INCLUSIVE_SCAN, _PSTL_PRAGMA_SIMD_EXCLUSIVE_SCAN):
1229 Define to OpenMP 5.0 pragmas even for GCC 10.0+.
1230 (_PSTL_UDS_PRESENT): Define to 1 for GCC 10.0+.
1231
1232 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
1233
1234 * include/bits/alloc_traits.h (_Destroy): Qualify call.
1235 * include/bits/stl_construct.h (_Destroy, _Destroy_n): Likewise.
1236 * testsuite/23_containers/vector/cons/destroy-adl.cc: New test.
1237
1238 2023-07-03 Iain Sandoe <iain@sandoe.co.uk>
1239
1240 * testsuite/lib/libstdc++.exp: Remove additional flag handled
1241 by Darwin specs.
1242
1243 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
1244
1245 PR libstdc++/110432
1246 * acinclude.m4 (GLIBCXX_CHECK_INIT_PRIORITY): New.
1247 * config.h.in: Regenerate.
1248 * configure: Regenerate.
1249 * configure.ac: Use GLIBCXX_CHECK_INIT_PRIORITY.
1250 * include/std/iostream: Use new autoconf macro as well as
1251 __has_attribute.
1252 * src/c++98/ios_base_init.h: Use new autoconf macro instead of
1253 __has_attribute.
1254
1255 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
1256
1257 * src/c++11/random.cc (random_device::_M_init): Add maybe_unused
1258 attribute.
1259
1260 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
1261
1262 PR libstdc++/105081
1263 * src/c++11/random.cc (random_device::_M_init): Throw
1264 std::system_error when the requested device is a valid token but
1265 not available at runtime.
1266
1267 2023-06-30 Hans-Peter Nilsson <hp@axis.com>
1268
1269 PR libstdc++/108672
1270 * include/pstl/unseq_backend_simd.h (__simd_or): Re-apply using
1271 __INT32_TYPE__ instead of int32_t.
1272
1273 2023-06-29 Jonathan Wakely <jwakely@redhat.com>
1274
1275 * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define consistently
1276 with USE_ATOMIC_LIST_HEAD.
1277 (list_mutex): Replace global object with function. Use local
1278 static object when std::mutex constructor isn't constexpr.
1279
1280 2023-06-29 Jonathan Wakely <jwakely@redhat.com>
1281
1282 PR libstdc++/110462
1283 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check that
1284 copy_file_range can be called with loff_t* arguments.
1285 * configure: Regenerate.
1286 * src/filesystem/ops-common.h (copy_file_copy_file_range):
1287 Use loff_t for offsets.
1288
1289 2023-06-29 Tom Tromey <tromey@adacore.com>
1290
1291 * testsuite/lib/gdb-test.exp (gdb-test): Relax type-printer
1292 regexp.
1293
1294 2023-06-28 Jan Hubicka <jh@suse.cz>
1295
1296 PR middle-end/109849
1297 * include/bits/c++config (std::__terminate): Mark cold.
1298 * include/bits/functexcept.h: Mark everything as cold.
1299 * libsupc++/exception: Mark terminate and unexpected as cold.
1300
1301 2023-06-26 Thomas Rodgers <trodgers@redhat.com>
1302
1303 * include/pstl/algorithm_fwd.h: Synchronize with upstream.
1304 * include/pstl/algorithm_impl.h: Likewise.
1305 * include/pstl/execution_defs.h: Likewise.
1306 * include/pstl/execution_impl.h: Likewise.
1307 * include/pstl/glue_algorithm_impl.h: Likewise.
1308 * include/pstl/glue_execution_defs.h: Likewise.
1309 * include/pstl/glue_memory_impl.h: Likewise.
1310 * include/pstl/glue_numeric_impl.h: Likewise.
1311 * include/pstl/memory_impl.h: Likewise.
1312 * include/pstl/numeric_fwd.h: Likewise.
1313 * include/pstl/numeric_impl.h: Likewise.
1314 * include/pstl/parallel_backend.h: Likewise.
1315 * include/pstl/parallel_backend_serial.h: Likewise.
1316 * include/pstl/parallel_backend_tbb.h: Likewise.
1317 * include/pstl/parallel_impl.h: Likewise.
1318 * include/pstl/pstl_config.h: Likewise.
1319 * include/pstl/unseq_backend_simd.h: Likewise.
1320 * include/pstl/utils.h: Likewise.
1321 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
1322 Likewise.
1323 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
1324 Likewise.
1325 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
1326 Likewise.
1327 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
1328 Likewise.
1329 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
1330 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
1331 Likewise.
1332 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
1333 Likewise.
1334 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
1335 Likewise.
1336 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
1337 Likewise.
1338 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
1339 Likewise.
1340 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
1341 Likewise.
1342 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
1343 Likewise.
1344 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
1345 Likewise.
1346 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
1347 Likewise.
1348 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
1349 Likewise.
1350 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
1351 Likewise.
1352 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
1353 Likewise.
1354 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
1355 Likewise.
1356 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
1357 Likewise.
1358 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
1359 Likewise.
1360 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
1361 Likewise.
1362 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
1363 Likewise.
1364 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
1365 Likewise.
1366 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
1367 Likewise.
1368 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
1369 Likewise.
1370 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
1371 Likewise.
1372 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
1373 Likewise.
1374 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
1375 Likewise.
1376 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
1377 Likewise.
1378 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
1379 Likewise.
1380 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
1381 Likewise.
1382 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
1383 Likewise.
1384 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
1385 Likewise.
1386 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
1387 Likewise.
1388 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
1389 Likewise.
1390 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
1391 Likewise.
1392 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
1393 Likewise.
1394 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
1395 Likewise.
1396 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
1397 Likewise.
1398 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
1399 Likewise.
1400 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc:
1401 Likewise.
1402 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
1403 Likewise.
1404 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
1405 Likewise.
1406 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
1407 Likewise.
1408 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
1409 Likewise.
1410 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
1411 Likewise.
1412 * testsuite/25_algorithms/pstl/alg_sorting/set.cc:
1413 Likewise.
1414 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc:
1415 Likewise.
1416 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
1417 Likewise.
1418 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc:
1419 Likewise.
1420 * testsuite/26_numerics/pstl/numeric_ops/scan.cc:
1421 Likewise.
1422 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
1423 Likewise.
1424 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
1425 Likewise.
1426 * testsuite/util/pstl/test_utils.h:
1427 Likewise.
1428
1429 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
1430
1431 PR libstdc++/110239
1432 * include/std/format (__format::__parse_integer): Fix buffer
1433 overflow for wide chars.
1434 (formatter<const void*, C>::format): Cast to uintptr_t instead
1435 of uint64_t.
1436 * testsuite/std/format/string.cc: Test too-large widths.
1437
1438 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
1439
1440 * include/bits/iterator_concepts.h (projected): Replace class
1441 template with alias template denoting an ADL-proofed helper.
1442 (incremental_traits<projected<Iter, Proj>>): Remove.
1443 * testsuite/24_iterators/indirect_callable/projected-adl.cc:
1444 New test.
1445
1446 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
1447
1448 * include/debug/helper_functions.h (__get_distance)
1449 (__check_singular, __valid_range_aux, __valid_range): Qualify
1450 calls to disable ADL.
1451 (__check_singular_aux(const _Safe_iterator_base*)): Declare
1452 overload that was previously found via ADL.
1453
1454 2023-06-23 Jonathan Wakely <jwakely@redhat.com>
1455
1456 * include/bits/vector.tcc (_M_realloc_insert): Replace try-block
1457 with RAII types.
1458
1459 2023-06-20 Jonathan Wakely <jwakely@redhat.com>
1460
1461 * include/std/array (to_array(T(&)[N])): Remove redundant
1462 condition.
1463 (to_array(T(&&)[N])): Remove redundant std::move.
1464
1465 2023-06-16 Alexandre Oliva <oliva@adacore.com>
1466
1467 * testsuite/20_util/from_chars/4.cc: Skip long double on
1468 aarch64-rtems.
1469
1470 2023-06-16 Joel Brobecker <brobecker@adacore.com>
1471
1472 * configure.ac ["x${with_newlib}" = "xyes"]: Define
1473 HAVE_HYPOTF. Add compile-checks for various long double
1474 math functions as well.
1475 * configure: Regenerate.
1476
1477 2023-06-14 Jonny Grant <jg@jguk.org>
1478
1479 * doc/xml/manual/extensions.xml: Remove demangle exception
1480 description and include.
1481 * doc/html/manual/ext_demangling.html: Regenerate.
1482
1483 2023-06-10 Hans-Peter Nilsson <hp@axis.com>
1484
1485 * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc (main)
1486 [! SIMULATOR_TEST]: Also exclude running test05.
1487 * testsuite/27_io/basic_istream/ignore/char/94749.cc: Ditto.
1488
1489 2023-06-09 Ken Matsui <kmatsui@cs.washington.edu>
1490
1491 * include/std/type_traits: Use using instead of typedef
1492
1493 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1494
1495 PR libstdc++/110077
1496 * src/c++17/floating_from_chars.cc (from_chars) <_Float128>:
1497 Only define if _Float128 and long double have different
1498 representations.
1499
1500 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1501
1502 PR libstdc++/100285
1503 * include/experimental/internet [IPPROTO_TCP || IPPROTO_UDP]
1504 (basic_endpoint, basic_resolver_entry, resolver_base)
1505 (basic_resolver_results, basic_resolver): Only define if the tcp
1506 or udp protocols will be defined.
1507
1508 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1509
1510 * acinclude.m4 (libtool_VERSION): Update to 6.0.33.
1511 * configure: Regenerate.
1512 * doc/xml/manual/abi.xml: Add libstdc++.so.6.0.33.
1513 * doc/html/manual/abi.html: Regenerate.
1514
1515 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1516
1517 PR libstdc++/110149
1518 * include/std/format (formatter<const void*, charT>::parse):
1519 Only alow 0 and P for C++26 and non-strict modes.
1520 (formatter<const void*, charT>::format): Use toupper for P
1521 type, and insert zero-fill characters for 0 option.
1522 * testsuite/std/format/functions/format.cc: Check pointer
1523 formatting. Only check P2510R3 extensions conditionally.
1524 * testsuite/std/format/parse_ctx.cc: Only check P2510R3
1525 extensions conditionally.
1526
1527 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1528
1529 PR libstdc++/110167
1530 * include/std/array (to_array): Initialize arrays of trivial
1531 types using memcpy. For non-trivial types, use lambda
1532 expressions instead of a separate helper function.
1533 (__to_array): Remove.
1534 * testsuite/23_containers/array/creation/110167.cc: New test.
1535
1536 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1537
1538 * testsuite/23_containers/deque/modifiers/emplace/52799.cc:
1539 Removed.
1540 * testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc:
1541 Removed.
1542 * testsuite/23_containers/list/modifiers/emplace/52799.cc:
1543 Removed.
1544 * testsuite/23_containers/list/modifiers/emplace/const_iterator.cc:
1545 Removed.
1546 * testsuite/23_containers/vector/modifiers/emplace/52799.cc:
1547 Removed.
1548 * testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc:
1549 Removed.
1550 * testsuite/23_containers/deque/modifiers/emplace/1.cc: New
1551 test.
1552 * testsuite/23_containers/list/modifiers/emplace/1.cc: New
1553 test.
1554 * testsuite/23_containers/vector/modifiers/emplace/1.cc: New
1555 test.
1556
1557 2023-06-07 Jakub Jelinek <jakub@redhat.com>
1558
1559 PR libstdc++/110145
1560 * testsuite/20_util/to_chars/double.cc: Include <cfloat>.
1561 (double_to_chars_test_cases,
1562 double_scientific_precision_to_chars_test_cases_2,
1563 double_fixed_precision_to_chars_test_cases_2): #if out 1e126, 4.91e-6
1564 and 5.547e-6 tests if FLT_EVAL_METHOD is negative or larger than 1.
1565 Add unconditional tests with corresponding double constants
1566 0x1.7a2ecc414a03fp+418, 0x1.4981285e98e79p-18 and
1567 0x1.7440bbff418b9p-18.
1568
1569 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
1570
1571 * testsuite/util/testsuite_abi.cc (check_version): Re-add
1572 CXXABI_1.3.14.
1573
1574 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
1575
1576 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
1577 Require effective target exceptions_enabled instead of using
1578 dg-skip-if.
1579 * testsuite/23_containers/vector/capacity/constexpr.cc: Expect
1580 shrink_to_fit() to be a no-op without exceptions enabled.
1581 * testsuite/23_containers/vector/capacity/shrink_to_fit.cc:
1582 Likewise.
1583 * testsuite/ext/bitmap_allocator/check_allocate_max_size.cc:
1584 Require effective target exceptions_enabled.
1585 * testsuite/ext/malloc_allocator/check_allocate_max_size.cc:
1586 Likewise.
1587 * testsuite/ext/mt_allocator/check_allocate_max_size.cc:
1588 Likewise.
1589 * testsuite/ext/new_allocator/check_allocate_max_size.cc:
1590 Likewise.
1591 * testsuite/ext/pool_allocator/check_allocate_max_size.cc:
1592 Likewise.
1593 * testsuite/ext/throw_allocator/check_allocate_max_size.cc:
1594 Likewise.
1595
1596 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
1597
1598 * testsuite/20_util/duration/cons/2.cc: Use values that aren't
1599 affected by rounding.
1600 * testsuite/20_util/from_chars/5.cc: Cast arithmetic result to
1601 double before comparing for equality.
1602 * testsuite/20_util/from_chars/6.cc: Likewise.
1603 * testsuite/20_util/variant/86874.cc: Use values that aren't
1604 affected by rounding.
1605 * testsuite/25_algorithms/lower_bound/partitioned.cc: Compare to
1606 original value instead of to floating-point-literal.
1607 * testsuite/26_numerics/random/discrete_distribution/cons/range.cc:
1608 Cast arithmetic result to double before comparing for equality.
1609 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc:
1610 Likewise.
1611 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc:
1612 Likewise.
1613 * testsuite/26_numerics/valarray/transcend.cc (eq): Check that
1614 the absolute difference is less than 0.01 instead of comparing
1615 to two decimal places.
1616 * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
1617 Cast arithmetic result to double before comparing for equality.
1618 * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
1619 Likewise.
1620 * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
1621 Likewise.
1622 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc:
1623 Likewise.
1624 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc:
1625 Likewise.
1626 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc:
1627 Likewise.
1628 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
1629
1630 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
1631
1632 Revert:
1633 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1634
1635 * configure.ac: Use AS_IF.
1636 * configure: Regenerate.
1637
1638 2023-06-07 Thomas Schwinge <thomas@codesourcery.com>
1639
1640 * testsuite/lib/prune.exp (libstdc++-dg-prune): Support
1641 'UNSUPPORTED: [...]: exception handling disabled'.
1642
1643 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1644
1645 * testsuite/util/testsuite_abi.cc (check_version): Add
1646 CXXABI_1.3.15 symver and make it the latestp. Remove
1647 GLIBCXX_IEEE128_3.4.31 and GLIBCXX_LDBL_3.4.31 from latestp.
1648
1649 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1650 Jakub Jelinek <jakub@redhat.com>
1651
1652 PR libstdc++/104772
1653 * include/std/limits: (numeric_limits<__float128>): Define
1654 for __STRICT_ANSI__ as well.
1655 * testsuite/18_support/numeric_limits/128bit.cc: Remove
1656 check for __STRICT_ANSI__.
1657
1658 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1659
1660 * configure.ac: Use AS_IF.
1661 * configure: Regenerate.
1662
1663 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
1664
1665 PR libstdc++/109822
1666 * include/experimental/bits/simd_builtin.h (_S_store): Rewrite
1667 to avoid casts to other vector types. Implement store as
1668 succession of power-of-2 sized memcpy to avoid PR90424.
1669
1670 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
1671
1672 PR libstdc++/110054
1673 * include/experimental/bits/simd_builtin.h (_S_masked_store):
1674 Call into deduced ABI's SimdImpl after conversion.
1675 * include/experimental/bits/simd_x86.h (_S_masked_store_nocvt):
1676 Don't use _mm_maskmoveu_si128. Use the generic fall-back
1677 implementation. Also fix masked stores without SSE2, which
1678 were not doing anything before.
1679
1680 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
1681
1682 * include/experimental/bits/simd.h (__bit_cast): Use
1683 __gnu__::__vector_size__ instead of gnu::vector_size.
1684
1685 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1686
1687 PR libstdc++/110139
1688 * include/std/array (__array_traits<T, 0>::operator T*()): Make
1689 conversion operator explicit.
1690 (array::front): Use size_type as subscript operand.
1691 (array::data): Use static_cast to make conversion explicit.
1692 * testsuite/23_containers/array/element_access/110139.cc: New
1693 test.
1694
1695 2023-06-06 Joseph Faulls <Joseph.Faulls@imgtec.com>
1696
1697 * include/bits/locale_classes.tcc: Remove check for
1698 codecvt<char8_t, char, mbstate_t> facet.
1699
1700 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1701
1702 * src/filesystem/ops-common.h (do_copy_file) [O_CLOEXEC]: Set
1703 close-on-exec flag on file descriptors.
1704
1705 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1706
1707 PR libstdc++/108178
1708 * src/filesystem/ops-common.h (do_copy_file): Check for empty
1709 files by trying to read a character.
1710 * testsuite/27_io/filesystem/operations/copy_file_108178.cc:
1711 New test.
1712
1713 2023-06-06 Jannik Glückert <jannik.glueckert@gmail.com>
1714
1715 * acinclude.m4 (_GLIBCXX_USE_COPY_FILE_RANGE): Define.
1716 * config.h.in: Regenerate.
1717 * configure: Regenerate.
1718 * src/filesystem/ops-common.h (copy_file_copy_file_range):
1719 Define new function.
1720 (do_copy_file): Use it.
1721
1722 2023-06-06 Jannik Glückert <jannik.glueckert@gmail.com>
1723
1724 * acinclude.m4 (_GLIBCXX_HAVE_LSEEK): Define.
1725 * config.h.in: Regenerate.
1726 * configure: Regenerate.
1727 * src/filesystem/ops-common.h (copy_file_sendfile): Define new
1728 function for sendfile logic. Loop to support large files. Skip
1729 zero-length files.
1730 (do_copy_file): Use it.
1731
1732 2023-06-04 Jason Merrill <jason@redhat.com>
1733
1734 PR c++/97720
1735 * libsupc++/eh_call.cc (__cxa_call_terminate): Take void*.
1736 * config/abi/pre/gnu.ver: Add it.
1737
1738 2023-06-02 François Dumont <fdumont@gcc.gnu.org>
1739
1740 * include/parallel/algobase.h: Include <parallel/search.h>.
1741
1742 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
1743
1744 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
1745 Add const to equality operator.
1746
1747 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
1748
1749 * include/std/expected (expected::and_then, expected::or_else)
1750 (expected::transform_error): Use _M_val and _M_unex instead of
1751 calling value() and error(), as per LWG 3938.
1752 (expected::transform): Likewise. Remove incorrect std::move
1753 calls from lvalue overloads.
1754 (expected<void, E>::and_then, expected<void, E>::or_else)
1755 (expected<void, E>::transform): Use _M_unex instead of calling
1756 error().
1757 * testsuite/20_util/expected/lwg3877.cc: Add checks for and_then
1758 and transform, and for std::expected<void, E>.
1759 * testsuite/20_util/expected/lwg3938.cc: New test.
1760
1761 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
1762
1763 PR libstdc++/110060
1764 * include/bits/stl_vector.h (_Vector_base::_M_invariant):
1765 Remove.
1766 (vector::size, vector::capacity): Remove calls to _M_invariant.
1767 * include/bits/vector.tcc (vector::_M_fill_assign): Add
1768 optimization hint to reallocating path.
1769 (vector::_M_assign_aux(FwdIter, FwdIter, forward_iterator_tag)):
1770 Likewise.
1771 * testsuite/23_containers/vector/capacity/invariant.cc: Moved
1772 to...
1773 * testsuite/23_containers/vector/modifiers/assign/no_realloc.cc:
1774 ...here. Check assign(FwdIter, FwdIter) too.
1775 * testsuite/23_containers/vector/types/1.cc: Revert addition
1776 of -Wno-stringop-overread option.
1777
1778 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
1779
1780 * doc/xml/manual/evolution.xml: Document removal of implicit
1781 allocator rebinding extensions in strict mode and for C++20.
1782 * doc/html/*: Regenerate.
1783
1784 2023-06-01 Jason Merrill <jason@redhat.com>
1785
1786 * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Don't check
1787 handlers in the cleanup phase.
1788
1789 2023-06-01 Matthias Kretz <m.kretz@gsi.de>
1790
1791 PR libstdc++/110050
1792 * include/experimental/bits/simd.h (__vectorized_sizeof): With
1793 __have_neon_a32 only single-precision float works (in addition
1794 to integers).
1795
1796 2023-06-01 François Dumont <fdumont@gcc.gnu.org>
1797
1798 * include/bits/stl_algo.h
1799 (std::__search, std::search(_FwdIt1, _FwdIt1, _FwdIt2, _FwdIt2, _BinPred)): Move...
1800 * include/bits/stl_algobase.h: ...here.
1801 * include/std/functional: Replace <stl_algo.h> include by <stl_algobase.h>.
1802 * include/parallel/algo.h (std::__parallel::search<_FIt1, _FIt2, _BinaryPred>)
1803 (std::__parallel::__search_switch<_FIt1, _FIt2, _BinaryPred, _ItTag1, _ItTag2>):
1804 Move...
1805 * include/parallel/algobase.h: ...here.
1806 * include/experimental/functional: Remove <bits/stl_algo.h> and <parallel/algorithm>
1807 includes. Include <bits/stl_algobase.h>.
1808
1809 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1810
1811 PR libstdc++/109818
1812 * acinclude.m4 (GLIBCXX_ENABLE_C99): Add separate check for
1813 float_t and double_t and define HAVE_C99_FLT_EVAL_TYPES.
1814 * config.h.in: Regenerate.
1815 * configure: Regenerate.
1816 * include/c_global/cmath (float_t, double_t): Guard using new
1817 _GLIBCXX_HAVE_C99_FLT_EVAL_TYPES macro.
1818
1819 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1820
1821 * acinclude.m4 (GLIBCXX_ENABLE_C99): Add checks for C99 math
1822 functions and define _GLIBCXX_USE_C99_MATH_FUNCS. Move checks
1823 for C99 rounding functions to here.
1824 (GLIBCXX_CHECK_C99_TR1): Remove checks for C99 rounding
1825 functions from here.
1826 * config.h.in: Regenerate.
1827 * configure: Regenerate.
1828 * include/bits/random.h: Use _GLIBCXX_USE_C99_MATH_FUNCS instead
1829 of _GLIBCXX_USE_C99_MATH_TR1.
1830 * include/bits/random.tcc: Likewise.
1831 * include/c_compatibility/math.h: Likewise.
1832 * include/c_global/cmath: Likewise.
1833 * include/ext/random: Likewise.
1834 * include/ext/random.tcc: Likewise.
1835 * include/std/complex: Likewise.
1836 * testsuite/20_util/from_chars/4.cc: Likewise.
1837 * testsuite/20_util/from_chars/8.cc: Likewise.
1838 * testsuite/26_numerics/complex/proj.cc: Likewise.
1839 * testsuite/26_numerics/headers/cmath/60401.cc: Likewise.
1840 * testsuite/26_numerics/headers/cmath/types_std_c++0x.cc:
1841 Likewise.
1842 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
1843 Likewise.
1844 * testsuite/util/testsuite_random.h: Likewise.
1845
1846 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1847
1848 * include/bits/stl_vector.h (_Vector_base::_M_invariant()): New
1849 function.
1850 (vector::size(), vector::capacity()): Call _M_invariant().
1851 * testsuite/23_containers/vector/capacity/invariant.cc: New test.
1852 * testsuite/23_containers/vector/types/1.cc: Add suppression for
1853 false positive warning (PR110060).
1854
1855 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1856
1857 PR libstdc++/109921
1858 * src/c++17/floating_from_chars.cc: Check __FLT128_MANT_DIG__ is
1859 defined before trying to use _Float128.
1860
1861 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1862
1863 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Fix for 32-bit pointers
1864 to check __INT_PTR_WIDTH__ instead of sizeof(void*).
1865 * configure: Regenerate.
1866
1867 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1868
1869 * include/bits/unique_lock.h: Include <bits/error_constants.h>
1870 here for std::errc constants.
1871 * include/std/mutex: Do not include <bits/error_constants.h> and
1872 <exception> here.
1873
1874 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1875
1876 * configure.ac: Replace use of -o operator for test.
1877 * configure: Regenerate.
1878
1879 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1880
1881 * include/std/scoped_allocator (scoped_allocator_adaptor): Add
1882 noexcept to all constructors except the default constructor.
1883 (scoped_allocator_adaptor::inner_allocator): Add noexcept.
1884 (scoped_allocator_adaptor::outer_allocator): Likewise.
1885 * testsuite/20_util/scoped_allocator/noexcept.cc: New test.
1886
1887 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1888
1889 PR libstdc++/104772
1890 * include/std/limits (numeric_limits<__float128>): Define.
1891 * testsuite/18_support/numeric_limits/128bit.cc: New test.
1892
1893 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1894
1895 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Extend logic for avr and
1896 msp430 to all 16-bit targets.
1897 * configure: Regenerate.
1898
1899 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1900
1901 PR libstdc++/109921
1902 * src/c++17/floating_from_chars.cc (USE_STRTOF128_FOR_FROM_CHARS):
1903 Only define when USE_STRTOD_FOR_FROM_CHARS is also defined.
1904 (USE_STRTOD_FOR_FROM_CHARS): Do not undefine when long double is
1905 binary64.
1906 (from_chars(const char*, const char*, double&, chars_format)):
1907 Check __LDBL_MANT_DIG__ == __DBL_MANT_DIG__ here.
1908 (from_chars(const char*, const char*, _Float128&, chars_format))
1909 Only use from_chars_strtod when USE_STRTOD_FOR_FROM_CHARS is
1910 defined, otherwise parse a long double and convert to _Float128.
1911
1912 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1913
1914 PR libstdc++/109922
1915 * include/std/iomanip (operator>>(basic_istream&, _Setfill)):
1916 Add deprecated attribute to non-standard overload.
1917 * doc/xml/manual/evolution.xml: Document deprecation.
1918 * doc/html/*: Regenerate.
1919 * testsuite/27_io/manipulators/standard/char/1.cc: Add
1920 dg-warning for expected deprecated warning.
1921 * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
1922 * testsuite/27_io/manipulators/standard/wchar_t/1.cc: Likewise.
1923 * testsuite/27_io/manipulators/standard/wchar_t/2.cc: Likewise.
1924
1925 2023-05-30 Alexandre Oliva <oliva@adacore.com>
1926
1927 * testsuite/20_util/from_chars/4.cc: Skip long double test06
1928 on x86_64-vxworks.
1929 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
1930 x86_64-vxworks.
1931
1932 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
1933
1934 PR libstdc++/109822
1935 * include/experimental/bits/simd.h (to_native): Use int NTTP
1936 as specified in PTS2.
1937 (to_compatible): Likewise. Add missing tag to call mask
1938 generator ctor.
1939 * testsuite/experimental/simd/pr109822_cast_functions.cc: New
1940 test.
1941
1942 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
1943
1944 * testsuite/experimental/simd/tests/integer_operators.cc:
1945 Compute expected value differently to avoid getting turned into
1946 a vector shift.
1947
1948 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
1949
1950 * testsuite/experimental/simd/tests/operator_cvt.cc: Make long
1951 double <-> (u)long conversion tests conditional on sizeof(long
1952 double) and sizeof(long).
1953
1954 2023-05-26 Matthias Kretz <m.kretz@gsi.de>
1955
1956 * include/experimental/bits/simd_ppc.h (_S_bit_shift_left):
1957 Negative __y is UB, so prefer signed compare.
1958
1959 2023-05-25 Jonathan Wakely <jwakely@redhat.com>
1960
1961 * testsuite/util/testsuite_allocator.h (PointerBase): Add
1962 relational operators.
1963
1964 2023-05-25 Alexandre Oliva <oliva@adacore.com>
1965
1966 * testsuite/20_util/to_chars/long_double.cc: Expect execution
1967 fail on x86-vxworks.
1968
1969 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
1970
1971 PR libstdc++/109949
1972 * include/experimental/bits/simd.h (__intrinsic_type): If
1973 __ALTIVEC__ is defined, map gnu::vector_size types to their
1974 corresponding __vector T types without losing unsignedness of
1975 integer types. Also prefer long long over long.
1976 * include/experimental/bits/simd_ppc.h (_S_popcount): Cast mask
1977 object to the expected unsigned vector type.
1978
1979 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
1980
1981 PR libstdc++/109261
1982 * include/experimental/bits/simd.h (__intrinsic_type):
1983 Specialize __intrinsic_type<double, 8> and
1984 __intrinsic_type<double, 16> in any case, but provide the member
1985 type only with __aarch64__.
1986
1987 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
1988
1989 PR libstdc++/109261
1990 * include/experimental/bits/simd_neon.h (_S_reduce): Add
1991 constexpr and make NEON implementation conditional on
1992 not __builtin_is_constant_evaluated.
1993
1994 2023-05-23 Matthias Kretz <m.kretz@gsi.de>
1995
1996 PR libstdc++/109261
1997 * include/experimental/bits/simd.h (_SimdWrapper::_M_set):
1998 Avoid vector builtin subscripting in constant expressions.
1999 (resizing_simd_cast): Avoid memcpy if constant_evaluated.
2000 (const_where_expression, where_expression, where)
2001 (__extract_part, simd_mask, _SimdIntOperators, simd): Add either
2002 _GLIBCXX_SIMD_CONSTEXPR (on public APIs), or constexpr (on
2003 internal APIs).
2004 * include/experimental/bits/simd_builtin.h (__vector_permute)
2005 (__vector_shuffle, __extract_part, _GnuTraits::_SimdCastType1)
2006 (_GnuTraits::_SimdCastType2, _SimdImplBuiltin)
2007 (_MaskImplBuiltin::_S_store): Add constexpr.
2008 (_CommonImplBuiltin::_S_store_bool_array)
2009 (_SimdImplBuiltin::_S_load, _SimdImplBuiltin::_S_store)
2010 (_SimdImplBuiltin::_S_reduce, _MaskImplBuiltin::_S_load): Add
2011 constant_evaluated case.
2012 * include/experimental/bits/simd_fixed_size.h
2013 (_S_masked_load): Reword comment.
2014 (__tuple_element_meta, __make_meta, _SimdTuple::_M_apply_r)
2015 (_SimdTuple::_M_subscript_read, _SimdTuple::_M_subscript_write)
2016 (__make_simd_tuple, __optimize_simd_tuple, __extract_part)
2017 (__autocvt_to_simd, _Fixed::__traits::_SimdBase)
2018 (_Fixed::__traits::_SimdCastType, _SimdImplFixedSize): Add
2019 constexpr.
2020 (_SimdTuple::operator[], _M_set): Add constexpr and add
2021 constant_evaluated case.
2022 (_MaskImplFixedSize::_S_load): Add constant_evaluated case.
2023 * include/experimental/bits/simd_scalar.h: Add constexpr.
2024 * include/experimental/bits/simd_x86.h (_CommonImplX86): Add
2025 constexpr and add constant_evaluated case.
2026 (_SimdImplX86::_S_equal_to, _S_not_equal_to, _S_less)
2027 (_S_less_equal): Value-initialize to satisfy constexpr
2028 evaluation.
2029 (_MaskImplX86::_S_load): Add constant_evaluated case.
2030 (_MaskImplX86::_S_store): Add constexpr and constant_evaluated
2031 case. Value-initialize local variables.
2032 (_MaskImplX86::_S_logical_and, _S_logical_or, _S_bit_not)
2033 (_S_bit_and, _S_bit_or, _S_bit_xor): Add constant_evaluated
2034 case.
2035 * testsuite/experimental/simd/pr109261_constexpr_simd.cc: New
2036 test.
2037
2038 2023-05-22 Matthias Kretz <m.kretz@gsi.de>
2039
2040 * include/experimental/bits/simd_builtin.h (_S_fpclassify): Move
2041 __infn into #ifdef'ed block.
2042 * testsuite/experimental/simd/tests/fpclassify.cc: Declare
2043 constants only when used.
2044 * testsuite/experimental/simd/tests/frexp.cc: Likewise.
2045 * testsuite/experimental/simd/tests/logarithm.cc: Likewise.
2046 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc:
2047 Likewise.
2048 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
2049 Move totest and expect1 into #ifdef'ed block.
2050
2051 2023-05-19 Gerald Pfeifer <gerald@pfeifer.com>
2052
2053 * doc/xml/manual/strings.xml: Move lafstern.org reference to https.
2054 * doc/html/manual/strings.html: Regenerate.
2055
2056 2023-05-17 Jakub Jelinek <jakub@redhat.com>
2057
2058 PR libstdc++/109883
2059 * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc: New test.
2060
2061 2023-05-17 Jakub Jelinek <jakub@redhat.com>
2062
2063 PR libstdc++/109883
2064 * include/c_global/cmath (atan2, fmod, pow): Move
2065 __gnu_cxx::__promote_2 using templates after _Float{16,32,64,128} and
2066 __gnu_cxx::__bfloat16_t overloads.
2067 (copysign, fdim, fmax, fmin, hypot, nextafter, remainder, remquo):
2068 Likewise.
2069 (fma): Move __gnu_cxx::__promote_3 using template after
2070 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads.
2071
2072 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
2073
2074 * testsuite/18_support/headers/limits/synopsis.cc: Uncomment
2075 checks for float_round_style and float_denorm_style.
2076
2077 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
2078
2079 * include/bits/c++config: Add system_header pragma.
2080
2081 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
2082
2083 * include/std/expected (expected::and_then, expected::or_else)
2084 (expected::transform, expected::transform_error): Fix exception
2085 specifications as per LWG 3877.
2086 (expected<void, E>::and_then, expected<void, E>::transform):
2087 Likewise.
2088 * testsuite/20_util/expected/lwg3877.cc: New test.
2089
2090 2023-05-17 Ken Matsui <kmatsui@cs.washington.edu>
2091
2092 * include/std/type_traits: Use __bool_constant instead of
2093 integral_constant.
2094
2095 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
2096
2097 * configure: Regenerate.
2098
2099 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
2100
2101 PR libstdc++/109741
2102 * acinclude.m4 (GLIBCXX_CHECK_ALIGNAS_CACHELINE): Define.
2103 * config.h.in: Regenerate.
2104 * configure: Regenerate.
2105 * configure.ac: Use GLIBCXX_CHECK_ALIGNAS_CACHELINE.
2106 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex): Do not
2107 align lock table if not supported. use __GCC_DESTRUCTIVE_SIZE
2108 instead of hardcoded 64.
2109
2110 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
2111
2112 * acinclude.m4 (GLIBCXX_USE_C99): Check for isblank in C++11
2113 mode and define _GLIBCXX_USE_C99_CTYPE. Check for <fenv.h>
2114 functions in C++11 mode and define _GLIBCXX_USE_C99_FENV.
2115 * config.h.in: Regenerate.
2116 * configure: Regenerate.
2117 * include/c_compatibility/fenv.h: Check _GLIBCXX_USE_C99_FENV
2118 instead of _GLIBCXX_USE_C99_FENV_TR1.
2119 * include/c_global/cfenv: Likewise.
2120 * include/c_global/cctype: Check _GLIBCXX_USE_C99_CTYPE instead
2121 of _GLIBCXX_USE_C99_CTYPE_TR1.
2122
2123 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
2124
2125 * acinclude.m4 (GLIBCXX_USE_C99): Check for <stdint.h> types in
2126 C++11 mode and define _GLIBCXX_USE_C99_STDINT. Check for
2127 <inttypes.h> features in C++11 mode and define
2128 _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T.
2129 * config.h.in: Regenerate.
2130 * configure: Regenerate.
2131 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
2132 * include/bits/chrono.h: Check _GLIBCXX_USE_C99_STDINT instead
2133 of _GLIBCXX_USE_C99_STDINT_TR1.
2134 * include/c_compatibility/inttypes.h: Check
2135 _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T
2136 instead of _GLIBCXX_USE_C99_INTTYPES_TR1 and
2137 _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
2138 * include/c_compatibility/stdatomic.h: Check
2139 _GLIBCXX_USE_C99_STDINT instead of _GLIBCXX_USE_C99_STDINT_TR1.
2140 * include/c_compatibility/stdint.h: Likewise.
2141 * include/c_global/cinttypes: Check _GLIBCXX_USE_C99_INTTYPES
2142 and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T instead of
2143 _GLIBCXX_USE_C99_INTTYPES_TR1 and
2144 _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
2145 * include/c_global/cstdint: Check _GLIBCXX_USE_C99_STDINT
2146 instead of _GLIBCXX_USE_C99_STDINT_TR1.
2147 * include/std/atomic: Likewise.
2148 * src/c++11/cow-stdexcept.cc: Likewise.
2149 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
2150 Likewise.
2151 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
2152 Likewise.
2153
2154 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
2155
2156 * acinclude.m4 (GLIBCXX_USE_C99): Check for complex inverse trig
2157 functions in C++11 mode and define _GLIBCXX_USE_C99_COMPLEX_ARC.
2158 * config.h.in: Regenerate.
2159 * configure: Regenerate.
2160 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macro.
2161 * include/std/complex: Check _GLIBCXX_USE_C99_COMPLEX_ARC
2162 instead of _GLIBCXX_USE_C99_COMPLEX_TR1.
2163
2164 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
2165
2166 * testsuite/ext/debug_allocator/check_deallocate_null.cc: Add
2167 assertion to ensure expected exception is throw.
2168
2169 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
2170
2171 * testsuite/libstdc++-prettyprinters/chrono.cc: Only test
2172 printer for chrono::zoned_time for cx11 ABI and tzdb effective
2173 target.
2174
2175 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
2176
2177 * acinclude.m4 (GLIBCXX_CHECK_PTHREAD_MUTEX_CLOCKLOCK): Define
2178 _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK in terms of _GLIBCXX_TSAN.
2179 * configure: Regenerate.
2180
2181 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
2182
2183 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Use a non-null pointer
2184 to check for nan, nanf, and nanl.
2185 * configure: Regenerate.
2186
2187 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
2188
2189 * include/bits/char_traits.h (char_traits<char16_t>): Do not
2190 depend on _GLIBCXX_USE_C99_STDINT_TR1.
2191 (char_traits<char32_t>): Likewise.
2192 * include/experimental/source_location: Likewise.
2193
2194 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
2195
2196 * include/std/atomic (atomic_int_least8_t, atomic_uint_least8_t)
2197 (atomic_int_least16_t, atomic_uint_least16_t)
2198 (atomic_int_least32_t, atomic_uint_least32_t)
2199 (atomic_int_least64_t, atomic_uint_least64_t)
2200 (atomic_int_fast16_t, atomic_uint_fast16_t)
2201 (atomic_int_fast32_t, atomic_uint_fast32_t)
2202 (atomic_int_fast64_t, atomic_uint_fast64_t)
2203 (atomic_intmax_t, atomic_uintmax_t): Define unconditionally.
2204 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Adjust.
2205
2206 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
2207
2208 * include/bits/algorithmfwd.h (shuffle): Do not depend on
2209 _GLIBCXX_USE_C99_STDINT_TR1.
2210 * include/bits/ranges_algo.h (shuffle): Likewise.
2211 * include/bits/stl_algo.h (shuffle): Likewise.
2212 * include/ext/random: Likewise.
2213 * include/ext/throw_allocator.h (random_condition): Likewise.
2214 * include/std/random: Likewise.
2215 * src/c++11/cow-string-inst.cc: Likewise.
2216 * src/c++11/random.cc: Likewise.
2217
2218 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
2219
2220 * testsuite/experimental/feat-cxx14.cc: Remove dependency on
2221 _GLIBCXX_USE_C99_STDINT_TR1.
2222
2223 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
2224
2225 * testsuite/22_locale/locale/cons/unicode.cc: Remove dependency
2226 on _GLIBCXX_USE_C99_STDINT_TR1.
2227
2228 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
2229
2230 * testsuite/21_strings/basic_string_view/typedefs.cc: Remove
2231 dependency on _GLIBCXX_USE_C99_STDINT_TR1.
2232 * testsuite/experimental/string_view/typedefs.cc: Likewise.
2233
2234 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
2235
2236 * src/c++17/floating_from_chars.cc [USE_STRTOD_FOR_FROM_CHARS]
2237 (auto_locale, auto_ferounding): New class types.
2238 (from_chars_impl): Use auto_locale and auto_ferounding.
2239
2240 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
2241
2242 PR libstdc++/109772
2243 * include/std/chrono (hh_mm_ss::__fits): Remove variable
2244 template.
2245 (hh_mm_ss::__subseconds): Remove __fits from constraints.
2246 * testsuite/std/time/hh_mm_ss/109772.cc: New test.
2247 * testsuite/std/time/hh_mm_ss/1.cc: Adjust expected size for
2248 hh_mm_ss<duration<int, std::pico>>.
2249
2250 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
2251
2252 * config/abi/pre/gnu.ver: Export basic_string::_S_allocate.
2253 * include/bits/basic_ios.h: Add static assertion checking
2254 traits_type::value_type.
2255 * include/bits/basic_string.h: Likewise. Do not rebind
2256 allocator, and add static assertion checking its value_type.
2257 (basic_string::_Alloc_traits_impl): Remove class template.
2258 (basic_string::_S_allocate): New static member function.
2259 (basic_string::assign): Use _S_allocate.
2260 * include/bits/basic_string.tcc (basic_string::_M_create)
2261 (basic_string::reserve, basic_string::_M_replace): Likewise.
2262 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc:
2263 Disable for C++20 and later.
2264 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
2265 Likweise.
2266
2267 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
2268
2269 PR libstdc++/109758
2270 * include/bits/std_abs.h (abs(__float128)): Handle negative NaN
2271 and negative zero correctly.
2272 * testsuite/26_numerics/headers/cmath/109758.cc: New test.
2273
2274 2023-05-10 François Dumont <fdumont@gcc.gnu.org>
2275
2276 * include/bits/hashtable_policy.h
2277 (_NodeBuilder<>::_S_build): Use __node_ptr.
2278 (_ReuseOrAllocNode<>): Use __node_ptr in place of __node_type*.
2279 (_AllocNode<>): Likewise.
2280 (_Equality<>::_M_equal): Remove const_iterator usages. Only preserved
2281 to call std::is_permutation in the non-unique key implementation.
2282 * include/bits/hashtable.h (_Hashtable<>::_M_update_begin()): Capture
2283 _M_begin() once.
2284 (_Hashtable<>::_M_bucket_begin(size_type)): Implement implicitly inline.
2285 (_Hashtable<>::_M_insert_bucket_begin): Likewise.
2286 (_Hashtable<>::_M_remove_bucket_begin): Likewise.
2287 (_Hashtable<>::_M_compute_hash_code): Use __node_ptr rather than
2288 const_iterator.
2289 (_Hashtable<>::find): Likewise.
2290 (_Hashtable<>::_M_emplace): Likewise.
2291 (_Hashtable<>::_M_insert_unique): Likewise.
2292
2293 2023-05-09 Jonathan Wakely <jwakely@redhat.com>
2294
2295 * python/libstdcxx/v6/printers.py (StdChronoDurationPrinter):
2296 Print floating-point durations correctly.
2297 (StdChronoTimePointPrinter): Support printing only the value,
2298 not the type name. Uncomment handling for known clocks.
2299 (StdChronoZonedTimePrinter): Remove type names from output.
2300 (StdChronoCalendarPrinter): Fix hh_mm_ss member access.
2301 (StdChronoTimeZonePrinter): Add equals sign to output.
2302 * testsuite/libstdc++-prettyprinters/chrono.cc: New test.
2303
2304 2023-05-05 Alexandre Oliva <oliva@adacore.com>
2305
2306 * testsuite/20_util/from_chars/4.cc: Skip long double test06
2307 on aarch64-vxworks.
2308 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
2309 aarch64-vxworks.
2310
2311 2023-05-04 Jonathan Wakely <jwakely@redhat.com>
2312
2313 * doc/xml/manual/abi.xml (abi.versioning.history): Document
2314 libstdc++.so.6.0.32 and GLIBCXX_3.4.32 version.
2315 * doc/html/manual/abi.html: Regenerate.
2316
2317 2023-05-04 Florian Weimer <fweimer@redhat.com>
2318
2319 * doc/xml/manual/abi.xml (abi.versioning.history): Add
2320 GCC_7.0.0, GCC_9.0.0, GCC_11.0, GCC_12.0.0, GCC_13.0.0 for
2321 libgcc_s.
2322
2323 2023-05-03 Jakub Jelinek <jakub@redhat.com>
2324
2325 * src/c++17/floating_from_chars.cc
2326 (_ZSt10from_charsPKcS0_RDF128_St12chars_format): New alias to
2327 _ZSt10from_charsPKcS0_Ru9__ieee128St12chars_format.
2328 * src/c++17/floating_to_chars.cc (_ZSt8to_charsPcS_DF128_): New alias to
2329 _ZSt8to_charsPcS_u9__ieee128.
2330 (_ZSt8to_charsPcS_DF128_St12chars_format): New alias to
2331 _ZSt8to_charsPcS_u9__ieee128St12chars_format.
2332 (_ZSt8to_charsPcS_DF128_St12chars_formati): New alias to
2333 _ZSt8to_charsPcS_u9__ieee128St12chars_formati.
2334 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Updated.
2335
2336 2023-05-03 Jakub Jelinek <jakub@redhat.com>
2337
2338 * configure.host (abi_baseline_pair): Use powerpc64le-linux-gnu
2339 rather than powerpc64-linux-gnu for powerpc64le*-linux*.
2340 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Remove
2341 _ZTI*DF128_, _ZTI*DF64x symbols and symbols in
2342 GLIBCXX_IEEE128_3.4.{29,30,31} and CXXABI_IEEE128_1.3.13 symbol
2343 versions.
2344 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: New
2345 file.
2346
2347 2023-05-03 Kefu Chai <kefu.chai@scylladb.com>
2348 Jonathan Wakely <jwakely@redhat.com>
2349
2350 PR libstdc++/109703
2351 * include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)):
2352 Initialize _M_string_length.
2353
2354 2023-05-02 Jakub Jelinek <jakub@redhat.com>
2355
2356 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2357 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
2358 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2359 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2360 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
2361 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
2362 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
2363 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2364
2365 2023-05-02 Jakub Jelinek <jakub@redhat.com>
2366
2367 PR libstdc++/109694
2368 * src/c++98/ios_init.cc: Add #pragma GCC diagnostic ignored for
2369 -Wattribute-alias.
2370
2371 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
2372
2373 * include/bits/random.h (gamma_distribution): Add to the right
2374 doxygen group.
2375 (discrete_distribution, piecewise_constant_distribution)
2376 (piecewise_linear_distribution): Create a new doxygen group and
2377 fix the incomplete doxygen comments.
2378 * include/bits/uniform_int_dist.h (uniform_int_distribution):
2379 Add to doxygen group.
2380
2381 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
2382
2383 * include/bits/uses_allocator.h: Add missing @file comment.
2384 * include/bits/regex.tcc: Remove stray doxygen comments.
2385 * include/experimental/memory_resource: Likewise.
2386 * include/std/bit: Tweak doxygen @cond comments.
2387 * include/std/expected: Likewise.
2388 * include/std/numbers: Likewise.
2389
2390 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
2391
2392 * doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
2393 from header paths.
2394
2395 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
2396
2397 * include/bits/move.h: Simplify opening/closing namespace std.
2398
2399 2023-04-28 Jakub Jelinek <jakub@redhat.com>
2400
2401 PR libstdc++/108969
2402 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export
2403 _ZSt21ios_base_library_initv.
2404 * testsuite/util/testsuite_abi.cc (check_version): Add GLIBCXX_3.4.32
2405 symver and make it the latestp.
2406 * src/c++98/ios_init.cc (ios_base_library_init): New alias.
2407 * acinclude.m4 (libtool_VERSION): Change to 6:32:0.
2408 * include/std/iostream: If init_priority attribute is supported
2409 and _GLIBCXX_SYMVER_GNU, force undefined _ZSt21ios_base_library_initv
2410 symbol into the object.
2411 * configure: Regenerated.
2412
2413 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2414
2415 * include/bits/mofunc_impl.h: Fix typo in doxygen comment.
2416 * include/std/format: Likewise.
2417
2418 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2419
2420 * doc/doxygen/user.cfg.in (FORMULA_TRANSPARENT, DOT_FONTNAME)
2421 (DOT_FONTSIZE, DOT_TRANSPARENT): Remove obsolete options.
2422
2423 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2424
2425 * doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
2426 HTML docs.
2427 * include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
2428 from doxygen docs.
2429 * include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
2430 Likewise.
2431 * include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
2432 Likewise.
2433 * include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
2434 Likewise.
2435 * include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
2436 (_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
2437 (_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
2438 (_DEFINE_BINARY_OPERATOR): Likewise.
2439
2440 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2441
2442 * include/bits/memory_resource.h: Improve doxygen comments.
2443 * include/std/memory_resource: Likewise.
2444
2445 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2446
2447 PR libstdc++/40380
2448 * include/bits/basic_string.h: Improve doxygen comments.
2449 * include/bits/cow_string.h: Likewise.
2450 * include/bits/forward_list.h: Likewise.
2451 * include/bits/fs_dir.h: Likewise.
2452 * include/bits/fs_path.h: Likewise.
2453 * include/bits/quoted_string.h: Likewise.
2454 * include/bits/stl_bvector.h: Likewise.
2455 * include/bits/stl_map.h: Likewise.
2456 * include/bits/stl_multimap.h: Likewise.
2457 * include/bits/stl_multiset.h: Likewise.
2458 * include/bits/stl_set.h: Likewise.
2459 * include/bits/stl_vector.h: Likewise.
2460 * include/bits/unordered_map.h: Likewise.
2461 * include/bits/unordered_set.h: Likewise.
2462 * include/std/filesystem: Likewise.
2463 * include/std/iomanip: Likewise.
2464
2465 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2466
2467 PR libstdc++/105081
2468 * src/c++11/random.cc (__throw_syserr): New function.
2469 (random_device::_M_init, random_device::_M_init_pretr1): Use new
2470 function for bad tokens.
2471 (random_device::_M_getval): Use new function for read errors.
2472 * testsuite/util/testsuite_random.h (random_device_available):
2473 Change catch handler to use std::system_error.
2474
2475 2023-04-24 Patrick Palka <ppalka@redhat.com>
2476
2477 * include/bits/max_size_type.h (__max_diff_type::operator>>=):
2478 Fix propagation of sign bit.
2479 * testsuite/std/ranges/iota/max_size_type.cc: Avoid using the
2480 non-standard 'signed typedef-name'. Add some compile-time tests
2481 for right-shifting a negative __max_diff_type value by more than
2482 one.
2483
2484 2023-04-19 Patrick Palka <ppalka@redhat.com>
2485 Jonathan Wakely <jwakely@redhat.com>
2486
2487 PR c++/100157
2488 * include/bits/utility.h (_Nth_type): Conditionally define in
2489 terms of __type_pack_element if available.
2490 * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
2491 additional errors from the new built-in.
2492
2493 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
2494
2495 Revert:
2496 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2497
2498 PR libstdc++/108969
2499 * src/Makefile.am: Move globals_io.cc to here.
2500 * src/Makefile.in: Regenerate.
2501 * src/c++98/Makefile.am: Remove globals_io.cc from here.
2502 * src/c++98/Makefile.in: Regenerate.
2503 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
2504 symbol name and then export with GLIBCXX_3.4.31 symver.
2505 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
2506 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
2507 Regenerate.
2508 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
2509 Regenerate.
2510 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
2511 Regenerate.
2512 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
2513 Regenerate.
2514 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
2515 Regenerate.
2516 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
2517 Regenerate.
2518 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
2519 Regenerate.
2520 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
2521 Regenerate.
2522 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
2523
2524 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
2525
2526 Revert:
2527 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2528
2529 PR libstdc++/108969
2530 * config/abi/pre/gnu.ver: Fix preprocessor condition.
2531
2532 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2533
2534 * doc/xml/manual/extensions.xml: Fix example to declare and
2535 qualify std::free, and use NULL instead of 0.
2536 * doc/html/manual/ext_demangling.html: Regenerate.
2537 * libsupc++/cxxabi.h: Adjust doxygen comments.
2538
2539 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2540
2541 PR libstdc++/108969
2542 * config/abi/pre/gnu.ver: Fix preprocessor condition.
2543
2544 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2545
2546 PR libstdc++/108969
2547 * src/Makefile.am: Move globals_io.cc to here.
2548 * src/Makefile.in: Regenerate.
2549 * src/c++98/Makefile.am: Remove globals_io.cc from here.
2550 * src/c++98/Makefile.in: Regenerate.
2551 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
2552 symbol name and then export with GLIBCXX_3.4.31 symver.
2553 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
2554 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
2555 Regenerate.
2556 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
2557 Regenerate.
2558 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
2559 Regenerate.
2560 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
2561 Regenerate.
2562 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
2563 Regenerate.
2564 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
2565 Regenerate.
2566 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
2567 Regenerate.
2568 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
2569 Regenerate.
2570 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
2571
2572 2023-04-18 Patrick Palka <ppalka@redhat.com>
2573
2574 PR libstdc++/108827
2575 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Bump value
2576 for C++23.
2577 * include/std/ranges (range_adaptor_closure): Define for C++23.
2578 * include/std/version (__cpp_lib_ranges): Bump value for
2579 C++23.
2580 * testsuite/std/ranges/version_c++23.cc: Bump expected value
2581 of __cpp_lib_ranges.
2582 * testsuite/std/ranges/range_adaptor_closure.cc: New test.
2583
2584 2023-04-18 Patrick Palka <ppalka@redhat.com>
2585
2586 * include/bits/ranges_algo.h (__cpp_lib_ranges_contains):
2587 Define for C++23.
2588 (__cpp_lib_ranges_iota): Likewise.
2589 (__cpp_lib_ranges_find_last): Likewise.
2590 (__cpp_lib_fold): Rename to ...
2591 (__cpp_lib_ranges_fold): ... this.
2592 * include/std/version: As above.
2593 * testsuite/25_algorithms/fold_left/1.cc: Adjust after
2594 renaming __cpp_lib_fold.
2595 * testsuite/std/ranges/version_c++23.cc: Verify values
2596 of the above feature-test macros.
2597
2598 2023-04-18 Patrick Palka <ppalka@redhat.com>
2599
2600 PR libstdc++/109525
2601 * include/std/ranges (views::_AsConst::operator()): Add
2602 missing const to constant_range test.
2603 * testsuite/std/ranges/adaptors/as_const/1.cc (test02):
2604 Improve formatting. Adjust expected type of v2.
2605 (test03): New test.
2606
2607 2023-04-14 Patrick Palka <ppalka@redhat.com>
2608
2609 * include/bits/ranges_base.h (const_iterator_t): Define for C++23.
2610 (const_sentinel_t): Likewise.
2611 (range_const_reference_t): Likewise.
2612 (constant_range): Likewise.
2613 (__cust_access::__possibly_const_range): Likewise, replacing ...
2614 (__cust_access::__as_const): ... this.
2615 (__cust_access::_CBegin::operator()): Redefine for C++23 as per P2278R4.
2616 (__cust_access::_CEnd::operator()): Likewise.
2617 (__cust_access::_CRBegin::operator()): Likewise.
2618 (__cust_access::_CREnd::operator()): Likewise.
2619 (__cust_access::_CData::operator()): Likewise.
2620 * include/bits/ranges_util.h (ranges::__detail::__different_from):
2621 Make it an alias of std::__detail::__different_from.
2622 (view_interface::cbegin): Define for C++23.
2623 (view_interface::cend): Likewise.
2624 * include/bits/stl_iterator.h (__detail::__different_from): Define.
2625 (iter_const_reference_t): Define for C++23.
2626 (__detail::__constant_iterator): Likewise.
2627 (__detail::__is_const_iterator): Likewise.
2628 (__detail::__not_a_const_iterator): Likewise.
2629 (__detail::__iter_const_rvalue_reference_t): Likewise.
2630 (__detail::__basic_const_iter_cat):: Likewise.
2631 (const_iterator): Likewise.
2632 (__detail::__const_sentinel): Likewise.
2633 (const_sentinel): Likewise.
2634 (basic_const_iterator): Likewise.
2635 (common_type<basic_const_iterator<_Tp>, _Up>): Likewise.
2636 (common_type<_Up, basic_const_iterator<_Tp>>): Likewise.
2637 (common_type<basic_const_iterator<_Tp>, basic_const_iterator<Up>>):
2638 Likewise.
2639 (make_const_iterator): Define for C++23.
2640 (make_const_sentinel): Likewise.
2641 * include/std/ranges (__cpp_lib_ranges_as_const): Likewise.
2642 (as_const_view): Likewise.
2643 (enable_borrowed_range<as_const_view>): Likewise.
2644 (views::__detail::__is_ref_view): Likewise.
2645 (views::__detail::__can_is_const_view): Likewise.
2646 (views::_AsConst, views::as_const): Likewise.
2647 * include/std/span (span::const_iterator): Likewise.
2648 (span::const_reverse_iterator): Likewise.
2649 (span::cbegin): Likewise.
2650 (span::cend): Likewise.
2651 (span::crbegin): Likewise.
2652 (span::crend): Likewise.
2653 * include/std/version (__cpp_lib_ranges_as_const): Likewise.
2654 * testsuite/std/ranges/adaptors/join.cc (test06): Adjust to
2655 behave independently of C++20 vs C++23.
2656 * testsuite/std/ranges/version_c++23.cc: Verify value of
2657 __cpp_lib_ranges_as_const macro.
2658 * testsuite/24_iterators/const_iterator/1.cc: New test.
2659 * testsuite/std/ranges/adaptors/as_const/1.cc: New test.
2660
2661 2023-04-14 Patrick Palka <ppalka@redhat.com>
2662
2663 * include/bits/ranges_base.h (__cust_access::__as_const)
2664 (__cust_access::_CBegin, __cust::cbegin)
2665 (__cust_access::_CEnd, __cust::cend)
2666 (__cust_access::_CRBegin, __cust::crbegin)
2667 (__cust_access::_CREnd, __cust::crend)
2668 (__cust_access::_CData, __cust::cdata): Move down definitions to
2669 shortly after the definition of input_range.
2670
2671 2023-04-14 Patrick Palka <ppalka@redhat.com>
2672
2673 * include/bits/ranges_algo.h: Include <optional> for C++23.
2674 (__cpp_lib_fold): Define for C++23.
2675 (in_value_result): Likewise.
2676 (__detail::__flipped): Likewise.
2677 (__detail::__indirectly_binary_left_foldable_impl): Likewise.
2678 (__detail::__indirectly_binary_left_foldable): Likewise.
2679 (___detail:__indirectly_binary_right_foldable): Likewise.
2680 (fold_left_with_iter_result): Likewise.
2681 (__fold_left_with_iter_fn, fold_left_with_iter): Likewise.
2682 (__fold_left_fn, fold_left): Likewise.
2683 (__fold_left_first_with_iter_fn, fold_left_first_with_iter):
2684 Likewise.
2685 (__fold_left_first_fn, fold_left_first): Likewise.
2686 (__fold_right_fn, fold_right): Likewise.
2687 (__fold_right_last_fn, fold_right_last): Likewise.
2688 * include/std/version (__cpp_lib_fold): Likewise.
2689 * testsuite/25_algorithms/fold_left/1.cc: New test.
2690 * testsuite/25_algorithms/fold_right/1.cc: New test.
2691
2692 2023-04-14 Jonathan Wakely <jwakely@redhat.com>
2693
2694 * include/std/format (formatter): Add comment to deleted default
2695 constructor of primary template.
2696 (_Checking_scanner): Add static_assert.
2697
2698 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
2699
2700 * doc/xml/manual/using.xml: Document libstdc++exp.a library.
2701 * doc/html/*: Regenerate.
2702
2703 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
2704
2705 * testsuite/17_intro/names.cc [_AIX]: Do not define policy.
2706 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Rename
2707 namespace to avoid clashing with libc struct.
2708 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
2709 Likewise.
2710 * testsuite/23_containers/unordered_map/96088.cc: Skip on AIX.
2711 * testsuite/23_containers/unordered_multimap/96088.cc: Likewise.
2712 * testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
2713 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2714 * testsuite/experimental/synchronized_value.cc: Require gthreads
2715 and add missing option for pthreads targets.
2716
2717 2023-04-12 Patrick Palka <ppalka@redhat.com>
2718
2719 * include/std/ranges (__cpp_lib_ranges_enumerate): Define
2720 for C++23.
2721 (__detail::__range_with_movable_reference): Likewise.
2722 (enumerate_view): Likewise.
2723 (enumerate_view::_Iterator): Likewise.
2724 (enumerate_view::_Sentinel): Likewise.
2725 (views::__detail::__can_enumerate_view): Likewise.
2726 (views::_Enumerate, views::enumerate): Likewise.
2727 * include/std/version (__cpp_lib_ranges_enumerate): Likewise.
2728 * testsuite/std/ranges/version_c++23.cc: Verify value of
2729 __cpp_lib_ranges_enumerate.
2730 * testsuite/std/ranges/adaptors/enumerate/1.cc: New test.
2731
2732 2023-04-12 Patrick Palka <ppalka@redhat.com>
2733
2734 * include/std/ranges (lazy_split_view::_OuterIter::_OuterIter):
2735 Propagate _M_trailing_empty in the const-converting constructor
2736 as per LWG 3904.
2737 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): Correct
2738 assertion.
2739 * testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test.
2740
2741 2023-04-12 Patrick Palka <ppalka@redhat.com>
2742
2743 * src/c++17/floating_from_chars.cc: Include <algorithm>,
2744 <iterator>, <limits> and <cstdint>.
2745
2746 2023-04-12 Patrick Palka <ppalka@redhat.com>
2747
2748 PR libstdc++/108291
2749 * include/std/ranges (chunk_by_view::_M_find_next): Generalize
2750 parameter types of the lambda wrapper passed to adjacent_find.
2751 (chunk_by_view::_M_find_prev): Likewise.
2752 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test04, test05):
2753 New tests.
2754
2755 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
2756
2757 PR libstdc++/109482
2758 * include/experimental/internet (basic_endpoint::basic_endpoint()):
2759 Ensure that the required union members are active. Only define
2760 as constexpr for C++20 and later.
2761 (basic_endpoint::basic_endpoint(const protocol_type&, port_type)):
2762 Likewise.
2763 * testsuite/experimental/net/internet/endpoint/cons.cc: Only
2764 check constexpr default constructor for C++20 and later.
2765 * testsuite/experimental/net/internet/endpoint/extensible.cc:
2766 Likewise.
2767
2768 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
2769
2770 * src/c++20/tzdata.zi: Import new file from 2023c release.
2771
2772 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
2773
2774 * include/precompiled/stdc++.h (C++17): Don't double-include
2775 <charconv>, once with wrong conditions.
2776 * testsuite/18_support/96817.cc: Require hosted.
2777 * testsuite/18_support/bad_exception/59392.cc: Ditto.
2778 * testsuite/20_util/scoped_allocator/108952.cc: Ditto.
2779 * testsuite/20_util/uses_allocator/lwg3527.cc: Ditto.
2780 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
2781 Ditto.
2782
2783 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
2784
2785 * include/bits/c++config: When __STDC_HOSTED__ is zero,
2786 disable _GLIBCXX_DEBUG and, if it was set, enable
2787 _GLIBCXX_ASSERTIONS.
2788 * testsuite/lib/libstdc++.exp (check_v3_target_debug_mode):
2789 Include <bits/c++config.h> when determining whether debug is
2790 set, in order to inherit the logic from above
2791
2792 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
2793
2794 * testsuite/17_intro/versionconflict.cc: New test.
2795 * include/std/version: Allow disabling the system_header pragma
2796 via _GLIBCXX_TESTING_SYSHDR.
2797
2798 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
2799
2800 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
2801 Synchronize the definition block with...
2802 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory):
2803 ... this one here. Also define the 202202L value, rather than
2804 leaving it up to purely unique_ptr.h, so that the value is
2805 synchronized across all headers.
2806 (__gnu_debug::_Safe_iterator_base): Move into new conditional
2807 block.
2808 * include/std/memory (__cpp_lib_atomic_value_initialization):
2809 Define on freestanding under the same conditions as in
2810 atomic_base.h.
2811 * include/std/version (__cpp_lib_robust_nonmodifying_seq_ops):
2812 Also define on freestanding.
2813 (__cpp_lib_to_chars): Ditto.
2814 (__cpp_lib_gcd): Ditto.
2815 (__cpp_lib_gcd_lcm): Ditto.
2816 (__cpp_lib_raw_memory_algorithms): Ditto.
2817 (__cpp_lib_array_constexpr): Ditto.
2818 (__cpp_lib_nonmember_container_access): Ditto.
2819 (__cpp_lib_clamp): Ditto.
2820 (__cpp_lib_constexpr_char_traits): Ditto.
2821 (__cpp_lib_constexpr_string): Ditto.
2822 (__cpp_lib_sample): Ditto.
2823 (__cpp_lib_lcm): Ditto.
2824 (__cpp_lib_constexpr_iterator): Ditto.
2825 (__cpp_lib_constexpr_char_traits): Ditto.
2826 (__cpp_lib_interpolate): Ditto.
2827 (__cpp_lib_constexpr_utility): Ditto.
2828 (__cpp_lib_shift): Ditto.
2829 (__cpp_lib_ranges): Ditto.
2830 (__cpp_lib_move_iterator_concept): Ditto.
2831 (__cpp_lib_constexpr_numeric): Ditto.
2832 (__cpp_lib_constexpr_functional): Ditto.
2833 (__cpp_lib_constexpr_algorithms): Ditto.
2834 (__cpp_lib_constexpr_tuple): Ditto.
2835 (__cpp_lib_constexpr_memory): Ditto.
2836
2837 2023-04-05 John David Anglin <danglin@gcc.gnu.org>
2838
2839 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Double
2840 timeout factor on hppa*-*-*.
2841
2842 2023-04-05 Jonathan Wakely <jwakely@redhat.com>
2843
2844 * include/bits/regex.h (sub_match::swap): New function.
2845 * testsuite/28_regex/sub_match/lwg3204.cc: New test.
2846
2847 2023-04-04 Jonathan Wakely <jwakely@redhat.com>
2848
2849 * doc/xml/manual/extensions.xml: Remove std::bad_exception from
2850 example program.
2851 * doc/html/manual/ext_demangling.html: Regenerate.
2852
2853 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
2854
2855 PR tree-optimization/107087
2856 * include/bits/cow_string.h (basic_string::size()): Add
2857 optimizer hint that _S_empty_rep()._M_length is always zero.
2858 (basic_string::length()): Call size().
2859
2860 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
2861
2862 PR libstdc++/109339
2863 * include/std/stop_token (_Stop_state_ptr(const stop_source&)):
2864 Add attribute access with access-mode 'none'.
2865 * testsuite/30_threads/stop_token/stop_source/109339.cc: New test.
2866
2867 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
2868
2869 * include/experimental/internet (ip::basic_endpoint::_M_if_v6):
2870 Revert change from member function to data member. Fix for
2871 constant evaluation by detecting which union member is active.
2872 (ip::basic_endpoint::resize): Revert changes to update _M_is_v6
2873 flag.
2874
2875 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
2876
2877 PR libstdc++/109242
2878 * testsuite/20_util/optional/monadic/pr109340.cc: Moved to...
2879 * testsuite/20_util/optional/monadic/pr109242.cc: ...here.
2880
2881 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
2882
2883 * include/experimental/internet (ip::make_address): Implement
2884 missing overload.
2885 (ip::address_v4::broadcast()): Avoid undefined shift.
2886 (ip::basic_endpoint): Fix member functions for constexpr.
2887 (ip::basic_endpoint::_M_is_v6): Replace member function with
2888 data member, adjust member functions using it.
2889 (ip::basic_endpoint::resize): Update _M_is_v6 based on sockaddr
2890 content.
2891 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
2892 constexpr checks to work in C++14.
2893 * testsuite/experimental/net/internet/address/v4/creation.cc:
2894 Likewise.
2895 * testsuite/experimental/net/internet/endpoint/cons.cc:
2896 Likewise.
2897 * testsuite/experimental/net/internet/network/v4/cons.cc:
2898 Likewise.
2899 * testsuite/experimental/net/internet/network/v4/members.cc:
2900 Likewise.
2901 * testsuite/experimental/net/internet/endpoint/extensible.cc: New test.
2902
2903 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
2904
2905 * include/std/expected (expected::value() &): Use const lvalue
2906 for unex member passed to bad_expected_access constructor, as
2907 per LWG 3843.
2908
2909 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
2910
2911 PR libstdc++/109340
2912 * include/std/expected (expected::transform): Use
2913 std::remove_cv_t instead of std::remove_cvref_t.
2914 (expected::transform_error): Likewise.
2915 (expected<cv void, E>::transform): Likewise.
2916 (expected<cv void, E>::transform_error): Likewise.
2917 * include/std/optional (transform): Use std::remove_cv_t.
2918 * testsuite/20_util/optional/monadic/pr109340.cc: New test.
2919
2920 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
2921
2922 * include/std/optional (optional): Adjust static assertion to
2923 reject arrays and functions as well as references.
2924 * testsuite/20_util/optional/requirements_neg.cc: New test.
2925
2926 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
2927
2928 PR libstdc++/103387
2929 * include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use
2930 std::use_facet instead of cached _M_num_get facet.
2931 (istream::operator>>(short&)): Likewise.
2932 (istream::operator>>(int&)): Likewise.
2933 * include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use
2934 std::use_facet instead of cached _M_num_put facet.
2935
2936 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
2937
2938 * include/bits/char_traits.h (char_traits::copy): Return without
2939 using memcpy if n==0.
2940 (char_traits::assign): Likewise for memset.
2941
2942 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
2943
2944 PR libstdc++/109299
2945 * include/bits/basic_string.h (basic_string::_M_is_local()): Add
2946 hint for compiler that local strings fit in the local buffer.
2947
2948 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
2949
2950 PR libstdc++/109288
2951 * include/std/chrono (__detail::__get_leap_second_info): Update
2952 expiry date of hardcoded leapseconds list.
2953 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds()):
2954 Likewise.
2955 * src/c++20/tzdata.zi: Import new file from 2023a release.
2956 * testsuite/std/time/time_zone/get_info_local.cc: Only check
2957 transitions for Egypt up to 2014.
2958
2959 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
2960
2961 * include/experimental/bits/simd.h (is_simd_flag_type): New.
2962 (_IsSimdFlagType): New.
2963 (copy_from, copy_to, load ctors): Constrain _Flags using
2964 _IsSimdFlagType.
2965
2966 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
2967
2968 * include/experimental/bits/simd_x86.h (_SimdImplX86): Use
2969 _Base::_S_divides if the optimized _S_divides function is hidden
2970 via the preprocessor.
2971
2972 2023-03-27 Jakub Jelinek <jakub@redhat.com>
2973
2974 * testsuite/experimental/net/timer/waitable/dest.cc: Avoid -Wformat
2975 warning if size_t is not unsigned long.
2976
2977 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
2978
2979 * include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)):
2980 Add overload, as per LWG 3893.
2981 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
2982 Check assignment from nullptr.
2983
2984 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
2985
2986 * include/std/format (formatter<const charT[N], charT>): Do not
2987 define partial speclialization, as per LWG 3833.
2988 * testsuite/std/format/formatter/requirements.cc: Check it.
2989
2990 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
2991
2992 * include/std/utility (__cpp_lib_constexpr_algorithms): Define,
2993 as per LWG 3792.
2994 * testsuite/20_util/exchange/constexpr.cc: Check for it.
2995
2996 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
2997
2998 * include/std/version (__cpp_lib_format): Define.
2999 * testsuite/std/format/functions/format.cc: Check it.
3000
3001 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
3002
3003 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
3004 Pass rvalues to the callback, as now allowed by LWG 3645.
3005 Enforce preconditions on the return value.
3006 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
3007 Adjust.
3008
3009 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
3010
3011 * include/std/format: Add a comment noting that the resolution
3012 of LWG 3720 has been applied..
3013
3014 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
3015
3016 * include/bits/regex.h (match_results): Add allocator-extended
3017 copy and move constructors, as per LWG 2195.
3018 * testsuite/28_regex/match_results/ctors/char/alloc.cc: New test.
3019
3020 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
3021
3022 * include/bits/stream_iterator.h (istream_iterator): Add
3023 constexpr to copy constructor, as per LWG 3600.
3024 * testsuite/24_iterators/istream_iterator/cons/constexpr.cc:
3025 Check copy construction.
3026
3027 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
3028
3029 * include/experimental/bits/simd_x86.h
3030 (_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
3031 with __RECIPROCAL_MATH__.
3032
3033 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
3034
3035 * include/experimental/bits/simd_detail.h: Don't define
3036 _GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang.
3037 * include/experimental/bits/simd_x86.h (_S_divides): Remove
3038 check for __clang__.
3039
3040 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
3041
3042 * include/experimental/bits/simd_detail.h: Don't declare the
3043 simd API as constexpr with Clang.
3044 * include/experimental/bits/simd_x86.h (__movm): New.
3045 (_S_blend_avx512): Resolve FIXME. Implement blend using __movm
3046 and ?:.
3047 (_SimdImplX86::_S_masked_unary): Clang does not implement the
3048 same builtins. Implement the function using __movm, ?:, and -
3049 operators on vector_size types instead.
3050
3051 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
3052
3053 * testsuite/experimental/simd/tests/operators.cc: Clang doesn't
3054 define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
3055
3056 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
3057
3058 * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix
3059 formatting.
3060
3061 2023-03-20 Marek Polacek <polacek@redhat.com>
3062
3063 PR c++/109159
3064 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust dg-error.
3065 * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
3066 * testsuite/23_containers/span/explicit.cc: Likewise.
3067
3068 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
3069
3070 PR libstdc++/109182
3071 * include/std/expected (expected<void>::expected(in_place_t)):
3072 Remove template-head.
3073
3074 2023-03-18 Jonathan Wakely <jwakely@redhat.com>
3075
3076 PR libstdc++/109165
3077 * testsuite/18_support/coroutines/hash.cc: Use const object
3078 in second call.
3079
3080 2023-03-17 Jonathan Wakely <jwakely@redhat.com>
3081
3082 PR libstdc++/109165
3083 * include/std/coroutine (hash<>::operator()): Add const.
3084 * testsuite/18_support/coroutines/hash.cc: New test.
3085
3086 2023-03-14 Patrick Palka <ppalka@redhat.com>
3087
3088 PR libstdc++/109111
3089 * include/std/ranges (repeat_view): Remove redundant parentheses
3090 in requires-clause.
3091 (repeat_view::_Iterator): Correct the requires-clause.
3092
3093 2023-03-14 Patrick Palka <ppalka@redhat.com>
3094
3095 * include/bits/stl_iterator.h (move_iterator::_S_iter_concept):
3096 Define.
3097 (__cpp_lib_move_iterator_concept): Define for C++20.
3098 (move_iterator::iterator_concept): Strengthen as per P2520R0.
3099 * include/std/version (__cpp_lib_move_iterator_concept): Define
3100 for C++20.
3101 * testsuite/24_iterators/move_iterator/p2520r0.cc: New test.
3102
3103 2023-03-14 Patrick Palka <ppalka@redhat.com>
3104
3105 * include/bits/ranges_util.h (view_interface::empty): Add
3106 preferred overloads that use ranges::size when the range is
3107 sized as per LWG 3715.
3108 * testsuite/std/ranges/adaptors/lwg3715.cc: New test.
3109
3110 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
3111
3112 * include/bits/chrono.h (__is_duration_v, __is_time_point_v):
3113 Only define for C++17 and later.
3114
3115 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
3116
3117 * src/Makefile.am: Add comment about linker script fragments.
3118 * src/Makefile.in: Regenerate.
3119
3120 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
3121
3122 PR libstdc++/62196
3123 * include/bits/mask_array.h (mask_array): Add assertions to
3124 assignment operators.
3125 * include/std/valarray (valarray::operator[](valarray<bool>)):
3126 Add assertions.
3127 * testsuite/26_numerics/valarray/mask-1_neg.cc: New test.
3128 * testsuite/26_numerics/valarray/mask-2_neg.cc: New test.
3129 * testsuite/26_numerics/valarray/mask-3_neg.cc: New test.
3130 * testsuite/26_numerics/valarray/mask-4_neg.cc: New test.
3131 * testsuite/26_numerics/valarray/mask-5_neg.cc: New test.
3132 * testsuite/26_numerics/valarray/mask-6_neg.cc: New test.
3133 * testsuite/26_numerics/valarray/mask-7_neg.cc: New test.
3134 * testsuite/26_numerics/valarray/mask-8_neg.cc: New test.
3135 * testsuite/26_numerics/valarray/mask.cc: New test.
3136
3137 2023-03-13 Jakub Jelinek <jakub@redhat.com>
3138
3139 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3140 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3141
3142 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
3143
3144 * doc/Makefile.am: Add comment referring to documentation.
3145 * doc/Makefile.in: Regenerate.
3146
3147 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
3148
3149 * doc/html/*: Regenerate.
3150
3151 2023-03-13 Jonny Grant <jg@jguk.org>
3152
3153 * doc/xml/faq.xml: Update copyright year.
3154
3155 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
3156
3157 * include/bits/allocator.h: Fix typo in comment.
3158
3159 2023-03-12 Jakub Jelinek <jakub@redhat.com>
3160
3161 * config/abi/pre/gnu.ver (CXXABI_1.3.14): Also export __bf16 tinfos
3162 if it isn't mangled as DF16b but u6__bf16.
3163
3164 2023-03-12 Gerald Pfeifer <gerald@pfeifer.com>
3165
3166 * doc/xml/manual/documentation_hacking.xml: Move www.graphviz.org
3167 to https.
3168 * doc/html/manual/documentation_hacking.html: Regenerate.
3169
3170 2023-03-10 Jonathan Wakely <jwakely@redhat.com>
3171
3172 PR libstdc++/109064
3173 * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
3174 Remove self-recursion in __init__. Add missing _supports.
3175 * testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
3176 and unique().
3177
3178 2023-03-09 Patrick Palka <ppalka@redhat.com>
3179
3180 * include/std/ranges
3181 (cartesian_product_view::_Iterator::_Iterator): Remove
3182 constraint on default constructor as per LWG 3849.
3183 (cartesian_product_view::_Iterator::_M_prev): Adjust position
3184 of _Nm > 0 test as per LWG 3820.
3185 (cartesian_product_view::_Iterator::_M_advance): Perform bounds
3186 checking only on sized cartesian products.
3187 * testsuite/std/ranges/cartesian_product/1.cc (test08): New test.
3188
3189 2023-03-09 Patrick Palka <ppalka@redhat.com>
3190
3191 PR libstdc++/109024
3192 * include/std/ranges (chunk_by_view::_M_pred): Remove DMI as per
3193 LWG 3796.
3194 (repeat_view::_M_pred): Likewise.
3195 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test03): New test.
3196 * testsuite/std/ranges/repeat/1.cc (test05): New test.
3197
3198 2023-03-09 Patrick Palka <ppalka@redhat.com>
3199
3200 PR libstdc++/108362
3201 * include/std/ranges (__detail::__can_single_view): New concept.
3202 (_Single::operator()): Constrain it. Move [[nodiscard]] to the
3203 end of the function declarator.
3204 (__detail::__can_iota_view): New concept.
3205 (_Iota::operator()): Constrain it. Move [[nodiscard]] to the
3206 end of the function declarator.
3207 (__detail::__can_istream_view): New concept.
3208 (_Istream::operator()): Constrain it. Move [[nodiscard]] to the
3209 end of the function declarator.
3210 * testsuite/std/ranges/iota/iota_view.cc (test07): New test.
3211 * testsuite/std/ranges/istream_view.cc (test08): New test.
3212 * testsuite/std/ranges/single_view.cc (test07): New test.
3213
3214 2023-03-09 Patrick Palka <ppalka@redhat.com>
3215
3216 PR libstdc++/107572
3217 * include/std/ranges (cartesian_product_view::end): When
3218 building the tuple of iterators, avoid calling ranges::begin on
3219 the first range if __empty_tail is false.
3220 * testsuite/std/ranges/cartesian_product/1.cc (test07): New test.
3221
3222 2023-03-09 Jonathan Wakely <jwakely@redhat.com>
3223
3224 PR libstdc++/108882
3225 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Fix incorrect
3226 patterns.
3227
3228 2023-03-07 Jakub Jelinek <jakub@redhat.com>
3229
3230 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3231 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
3232 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
3233 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3234 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
3235
3236 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
3237
3238 PR libstdc++/108882
3239 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Adjust patterns to
3240 not match symbols in namespace std::__gnu_cxx11_ieee128.
3241 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add patterns for
3242 std::__gnu_cxx11_ieee128::money_{get,put}.
3243
3244 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
3245
3246 * libsupc++/eh_personality.cc: Fix spelling in comment.
3247
3248 2023-03-03 Alexandre Oliva <oliva@adacore.com>
3249
3250 * testsuite/30_threads/async/async.cc (test04): Initialize
3251 steady_start, renamed from steady_begin, next to slow_start.
3252 Increase tolerance for final wait.
3253
3254 2023-03-03 Alexandre Oliva <oliva@adacore.com>
3255
3256 * testsuite/libstdc++-prettyprinters/80276.cc: Add
3257 std::string to debug info.
3258 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
3259
3260 2023-03-03 Alexandre Oliva <oliva@adacore.com>
3261
3262 PR libstdc++/104852
3263 PR libstdc++/95989
3264 PR libstdc++/52590
3265 * include/bits/std_thread.h (thread::_M_thread_deps): New
3266 static implicitly-inline member function.
3267 (std::thread template ctor): Pass it to _M_start_thread.
3268 * src/c++11/thread.cc (thread::_M_start_thread): Name depend
3269 parameter, force it live on entry.
3270
3271 2023-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3272
3273 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
3274 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
3275 Likewise.
3276 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
3277 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
3278 Likewise.
3279
3280 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
3281
3282 * include/bits/cow_string.h: Fix typo in comment.
3283
3284 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
3285
3286 * src/c++20/tzdb.cc (chrono::tzdb::current_zone()) Use "UTC" if
3287 current time zone cannot be determined.
3288 * testsuite/std/time/tzdb/1.cc: Remove conditions based on
3289 HAVE_TZDB macro and test all members unconditionally.
3290
3291 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
3292
3293 PR libstdc++/108952
3294 * include/bits/uses_allocator_args.h
3295 (uses_allocator_construction_args): Implement LWG 3527.
3296 * testsuite/20_util/pair/astuple/get-2.cc: New test.
3297 * testsuite/20_util/scoped_allocator/108952.cc: New test.
3298 * testsuite/20_util/uses_allocator/lwg3527.cc: New test.
3299
3300 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
3301
3302 PR libstdc++/108846
3303 * include/bits/stl_algobase.h (__copy_move<false, false, RA>)
3304 Add __assign_one static member function.
3305 (__copy_move<true, false, RA>): Likewise.
3306 (__copy_move<IsMove, true, RA>): Do not use memmove for a single
3307 value.
3308 (__copy_move_backward<IsMove, true, RA>): Likewise.
3309 * testsuite/25_algorithms/copy/108846.cc: New test.
3310 * testsuite/25_algorithms/copy_backward/108846.cc: New test.
3311 * testsuite/25_algorithms/copy_n/108846.cc: New test.
3312 * testsuite/25_algorithms/move/108846.cc: New test.
3313 * testsuite/25_algorithms/move_backward/108846.cc: New test.
3314
3315 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
3316
3317 * src/c++11/codecvt.cc: Add [[likely]] and [[unlikely]]
3318 attributes.
3319
3320 2023-02-27 Jonathan Wakely <jwakely@redhat.com>
3321
3322 * include/bits/basic_ios.h (basic_ios::_M_setstate): Add
3323 caveat to comment.
3324 * include/bits/basic_string.h (resize_and_overwrite): Add
3325 doxygen comment.
3326
3327 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
3328
3329 * include/experimental/bits/simd.h: Line breaks and indenting
3330 fixed to follow the libstdc++ standard.
3331 * include/experimental/bits/simd_builtin.h: Likewise.
3332 * include/experimental/bits/simd_fixed_size.h: Likewise.
3333 * include/experimental/bits/simd_neon.h: Likewise.
3334 * include/experimental/bits/simd_ppc.h: Likewise.
3335 * include/experimental/bits/simd_scalar.h: Likewise.
3336 * include/experimental/bits/simd_x86.h: Likewise.
3337
3338 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
3339
3340 PR libstdc++/108030
3341 * include/experimental/bits/simd_fixed_size.h
3342 (_SimdImplFixedSize::_S_broadcast): Replace inline with
3343 _GLIBCXX_SIMD_INTRINSIC.
3344 (_SimdImplFixedSize::_S_generate): Likewise.
3345 (_SimdImplFixedSize::_S_load): Likewise.
3346 (_SimdImplFixedSize::_S_masked_load): Likewise.
3347 (_SimdImplFixedSize::_S_store): Likewise.
3348 (_SimdImplFixedSize::_S_masked_store): Likewise.
3349 (_SimdImplFixedSize::_S_min): Likewise.
3350 (_SimdImplFixedSize::_S_max): Likewise.
3351 (_SimdImplFixedSize::_S_complement): Likewise.
3352 (_SimdImplFixedSize::_S_unary_minus): Likewise.
3353 (_SimdImplFixedSize::_S_plus): Likewise.
3354 (_SimdImplFixedSize::_S_minus): Likewise.
3355 (_SimdImplFixedSize::_S_multiplies): Likewise.
3356 (_SimdImplFixedSize::_S_divides): Likewise.
3357 (_SimdImplFixedSize::_S_modulus): Likewise.
3358 (_SimdImplFixedSize::_S_bit_and): Likewise.
3359 (_SimdImplFixedSize::_S_bit_or): Likewise.
3360 (_SimdImplFixedSize::_S_bit_xor): Likewise.
3361 (_SimdImplFixedSize::_S_bit_shift_left): Likewise.
3362 (_SimdImplFixedSize::_S_bit_shift_right): Likewise.
3363 (_SimdImplFixedSize::_S_remquo): Add inline keyword (to be
3364 explicit about not always-inline, yet).
3365 (_SimdImplFixedSize::_S_isinf): Likewise.
3366 (_SimdImplFixedSize::_S_isfinite): Likewise.
3367 (_SimdImplFixedSize::_S_isnan): Likewise.
3368 (_SimdImplFixedSize::_S_isnormal): Likewise.
3369 (_SimdImplFixedSize::_S_signbit): Likewise.
3370
3371 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
3372
3373 PR libstdc++/108856
3374 * include/experimental/bits/simd_builtin.h
3375 (_SimdImplBuiltin::_S_masked_unary): More efficient
3376 implementation of masked inc-/decrement for integers and floats
3377 without AVX2.
3378 * include/experimental/bits/simd_x86.h
3379 (_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract
3380 builtins for masked inc-/decrement.
3381
3382 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3383
3384 * include/experimental/executor (executor): Constrain template
3385 constructors.
3386
3387 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3388
3389 * include/experimental/internet (basic_endpoint): Add missing
3390 constexpr to comparison operators.
3391 * testsuite/experimental/net/internet/endpoint/cons.cc: New test.
3392
3393 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3394
3395 * include/experimental/internet (network_v4::netmask()): Avoid
3396 undefined shift.
3397 (network_v4::broadcast()): Optimize and fix for targets with
3398 uint_least32_t wider than 32 bits.
3399 (network_v4::to_string(const Allocator&)): Fix for custom
3400 allocators and optimize using to_chars.
3401 (operator==(const network_v4&, const network_v4&)): Add missing
3402 constexpr.
3403 (operator==(const network_v6&, const network_v6&)): Likewise.
3404 * testsuite/experimental/net/internet/network/v4/cons.cc: New test.
3405 * testsuite/experimental/net/internet/network/v4/members.cc: New test.
3406
3407 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3408
3409 * include/experimental/internet (address_4(const bytes_type&)):
3410 Use __builtin_bit_cast if available, otherwise convert to
3411 network byte order.
3412 (address_v4::to_bytes()): Likewise, but convert from network
3413 byte order.
3414 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
3415 incorrect tests. Check for constexpr too.
3416 * testsuite/experimental/net/internet/address/v4/creation.cc:
3417 Likewise.
3418 * testsuite/experimental/net/internet/address/v4/members.cc:
3419 Check that bytes_type is a standard-layout type.
3420
3421 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3422
3423 * include/experimental/internet (address_v4::to_string):
3424 Optimize.
3425 * testsuite/experimental/net/internet/address/v4/members.cc:
3426 Check more addresses.
3427
3428 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3429
3430 * include/ext/aligned_buffer.h (__aligned_buffer): Add
3431 diagnostic pragmas.
3432
3433 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3434
3435 * testsuite/std/format/arguments/lwg3810.cc: Move dg-options
3436 before dg-do.
3437
3438 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3439
3440 * testsuite/experimental/simd/tests/reductions.cc: Introduce
3441 max_distance as the type-dependent max error.
3442
3443 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3444
3445 * include/experimental/bits/simd_builtin.h (_S_set): Compare as
3446 int. The actual range of these indexes is very small.
3447
3448 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3449
3450 * include/experimental/bits/simd_x86.h (_S_bit_shift_left)
3451 (_S_bit_shift_right): Declare constexpr. The implementation was
3452 already expecting constexpr evaluation.
3453
3454 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3455
3456 PR libstdc++/108030
3457 * include/experimental/bits/simd_detail.h
3458 (_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for
3459 __clang__.
3460
3461 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3462
3463 PR libstdc++/108030
3464 * include/experimental/bits/simd.h (__vector_broadcast):
3465 Implement via __vector_broadcast_impl instead of
3466 __call_with_n_evaluations + 2 lambdas.
3467 (__vector_broadcast_impl): New.
3468
3469 2023-02-22 Alexandre Oliva <oliva@adacore.com>
3470
3471 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex):
3472 Avoid destruction of the mutex pool.
3473
3474 2023-02-22 Alexandre Oliva <oliva@adacore.com>
3475
3476 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: xfail
3477 on vxworks.
3478 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
3479 Likewise.
3480
3481 2023-02-22 Alexandre Oliva <oliva@adacore.com>
3482
3483 * testsuite/17_intro/names.cc: Undef func on vxworks >= 7 in
3484 kernel mode.
3485
3486 2023-02-20 Andreas Schwab <schwab@linux-m68k.org>
3487
3488 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
3489
3490 2023-02-20 Matthias Kretz <m.kretz@gsi.de>
3491
3492 * include/experimental/bits/simd.h (__extract_part, split):
3493 Use reserved name for template parameter.
3494
3495 2023-02-20 Andreas Schwab <schwab@suse.de>
3496
3497 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
3498
3499 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
3500
3501 * doc/xml/faq.xml: Switch two links to www.open-std.org to https.
3502 * doc/html/faq.html: Regenerate.
3503
3504 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3505
3506 * include/experimental/bits/simd_math.h (__hypot): Bitcasting
3507 between scalars requires the __bit_cast helper function instead
3508 of simd_bit_cast.
3509
3510 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3511
3512 * include/experimental/bits/simd_x86.h
3513 (_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
3514 (_SimdImplX86::_S_less_equal): Do not call
3515 __builtin_is_constant_evaluated in constexpr-if.
3516
3517 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3518
3519 * testsuite/experimental/simd/tests/bits/verify.h
3520 (verify::verify): Use %zx for size_t in format string.
3521
3522 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3523
3524 * testsuite/experimental/simd/generate_makefile.sh: Generate and
3525 pre-compile pch.h, which includes all headers that do not depend
3526 on command-line macros.
3527 * testsuite/experimental/simd/tests/bits/main.h: New file.
3528 (iterate_abis, main): Moved from verify.h.
3529 * testsuite/experimental/simd/tests/bits/verify.h
3530 (iterate_abis, main): Moved to main.h.
3531 * testsuite/experimental/simd/tests/bits/conversions.h: Add
3532 include guard.
3533 (genHalfBits): Simplify.
3534 * testsuite/experimental/simd/tests/bits/make_vec.h: Add include
3535 guard.
3536 (make_alternating_mask): Moved from mask_loadstore.
3537 * testsuite/experimental/simd/tests/bits/mathreference.h: Add
3538 include guard.
3539 * testsuite/experimental/simd/tests/bits/test_values.h: Ditto.
3540 * testsuite/experimental/simd/tests/mask_loadstore.cc
3541 (make_mask, make_alternating_mask): Removed.
3542 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
3543 * testsuite/experimental/simd/tests/operators.cc (genHalfBits):
3544 Removed.
3545 * testsuite/experimental/simd/tests/abs.cc: Only include
3546 bits/main.h.
3547 Ditto.
3548 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
3549 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
3550 * testsuite/experimental/simd/tests/casts.cc: Ditto.
3551 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto.
3552 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
3553 * testsuite/experimental/simd/tests/generator.cc: Ditto.
3554 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
3555 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
3556 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
3557 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
3558 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
3559 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
3560 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
3561 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
3562 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
3563 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
3564 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
3565 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
3566 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
3567 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
3568 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
3569 * testsuite/experimental/simd/tests/simd.cc: Ditto.
3570 * testsuite/experimental/simd/tests/sincos.cc: Ditto.
3571 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
3572 * testsuite/experimental/simd/tests/splits.cc: Ditto.
3573 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
3574 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
3575 * testsuite/experimental/simd/tests/where.cc: Ditto.
3576
3577 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3578
3579 * testsuite/experimental/simd/README.md: Document the timeout
3580 and timeout-factor directives. Minor typo fixed.
3581
3582 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3583
3584 PR libstdc++/108030
3585 * include/experimental/bits/simd_detail.h: Define
3586 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
3587 * include/experimental/bits/simd.h: Annotate lambdas with
3588 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
3589 * include/experimental/bits/simd_builtin.h: Ditto.
3590 * include/experimental/bits/simd_converter.h: Ditto.
3591 * include/experimental/bits/simd_fixed_size.h: Ditto.
3592 * include/experimental/bits/simd_math.h: Ditto.
3593 * include/experimental/bits/simd_neon.h: Ditto.
3594 * include/experimental/bits/simd_x86.h: Ditto.
3595
3596 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3597
3598 * include/experimental/bits/simd.h
3599 (_SimdWrapper::_M_is_constprop_none_of)
3600 (_SimdWrapper::_M_is_constprop_all_of): Return false unless the
3601 computed result still satisfies __builtin_constant_p.
3602
3603 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3604
3605 * testsuite/std/format/arguments/lwg3810.cc: Replace UTF-8
3606 ellipsis character.
3607
3608 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3609
3610 * include/Makefile.am: Add new header.
3611 * include/Makefile.in: Regenerate.
3612 * include/experimental/synchronized_value: New file.
3613 * testsuite/experimental/synchronized_value.cc: New test.
3614
3615 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3616
3617 * include/experimental/optional: Fix header name in comment.
3618
3619 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3620
3621 * include/std/format (__format::_Arg_store): New class template.
3622 (basic_format_args): Remove nested type _Store and add deduction
3623 guide from _Arg_store.
3624 (basic_format_arg, make_format_args): Adjust.
3625 * testsuite/std/format/arguments/lwg3810.cc: New test.
3626
3627 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3628
3629 * include/bits/stl_pair.h (pair) [C++20]: Add non-dangling
3630 constraints to constructors and add deleted overloads for the
3631 dangling cases, as per P2255R2.
3632 (pair) [!C++20 && _GLIBCXX_DEBUG]: Add static assertions to
3633 make dangling cases ill-formed.
3634 * testsuite/20_util/pair/dangling_ref.cc: New test.
3635
3636 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3637
3638 * testsuite/17_intro/names_pstl.cc: Require et tbb_backend.
3639
3640 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3641
3642 * include/ext/throw_allocator.h: Use reserved names for
3643 parameters.
3644
3645 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3646
3647 * testsuite/17_intro/names_pstl.cc: Add space after effective
3648 target name.
3649
3650 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3651
3652 * include/pstl/algorithm_fwd.h (__pattern_search_n)
3653 (__brick_unique_copy, __brick_adjacent_find)
3654 (__brick_generate_n, __pattern_generate_n): Use reserved names
3655 for parameters.
3656 * include/pstl/algorithm_impl.h (__brick_unique_copy)
3657 (__pattern_reverse, __brick_generate_n): Likewise.
3658 * include/pstl/execution_impl.h (__prefer_unsequenced_tag)
3659 (__prefer_parallel_tag): Likewise.
3660 * include/pstl/glue_algorithm_impl.h (transform): Likewise.
3661 * include/pstl/glue_numeric_defs.h (adjacent_difference):
3662 Likewise.
3663 * include/pstl/numeric_impl.h (__brick_adjacent_difference):
3664 Likewise.
3665 * include/pstl/parallel_backend_tbb.h (__merge_func): Likewise.
3666 * include/pstl/unseq_backend_simd.h (_Combiner)
3667 (__simd_min_element, __simd_minmax_element): Likewise.
3668 * testsuite/17_intro/names_pstl.cc: New test.
3669
3670 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3671
3672 * include/bits/fs_ops.h (create_directory): Use reserved name
3673 for parameter.
3674 * include/bits/ranges_algo.h (__contains_subrange_fn):
3675 Likewise.
3676 * include/bits/regex_automaton.h (_State_base::_M_print):
3677 Likewise.
3678 * include/bits/regex_automaton.tcc(_State_base::_M_print):
3679 Likewise.
3680 * include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise.
3681 * include/experimental/bits/fs_ops.h (create_directory):
3682 Likewise.
3683 * include/std/mutex (timed_mutex::_M_clocklock): Likewise.
3684 (recursive_timed_mutex:_M_clocklock): Likewise.
3685 * include/std/tuple (basic_common_reference): Likewise.
3686 * libsupc++/cxxabi_init_exception.h
3687 (__cxa_init_primary_exception): Likewise.
3688 * testsuite/17_intro/names.cc: Add checks.
3689
3690 2023-02-14 Gerald Pfeifer <gerald@pfeifer.com>
3691
3692 * doc/xml/manual/status_cxx2017.xml: Update an open-std.org link
3693 to www.open-std.org and https.
3694 * doc/html/manual/status.html: Regenerate.
3695
3696 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
3697
3698 PR libstdc++/103934
3699 * include/std/atomic (atomic_flag_wait): Add.
3700 (atomic_flag_wait_explicit): Add.
3701 (atomic_flag_notify): Add.
3702 (atomic_flag_notify_explicit): Add.
3703 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc:
3704 Add test case to cover missing atomic_flag free functions.
3705
3706 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
3707
3708 PR libstdc++/103934
3709 * include/std/atomic (atomic_flag_test): Add.
3710 (atomic_flag_test_explicit): Add.
3711 * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
3712 test case to cover missing atomic_flag free functions.
3713 * testsuite/29_atomics/atomic_flag/test/implicit.cc:
3714 Likewise.
3715
3716 2023-02-13 Gerald Pfeifer <gerald@pfeifer.com>
3717
3718 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust
3719 "The Component Object Model" reference.
3720 * doc/html/manual/policy_data_structures.html: Regenerate.
3721
3722 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
3723
3724 * doc/xml/manual/containers.xml: Tweak a link to N1780
3725 (C++ standard).
3726 * doc/html/manual/associative.html: Regenerate.
3727
3728 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
3729
3730 * doc/xml/manual/ctype.xml: Change www.unix.org to unix.org.
3731 * doc/html/manual/facets.html: Regenerate.
3732
3733 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
3734
3735 * doc/xml/manual/policy_data_structures_biblio.xml: Update
3736 link to "Worst-case efficient priority queues".
3737 * doc/html/manual/policy_data_structures.html: Regenerate.
3738
3739 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
3740
3741 * doc/xml/manual/using.xml: Document newly-freestanding
3742 headers and the effect of the -ffreestanding flag.
3743 * doc/xml/manual/status_cxx2023.xml: Document P1642R11 as
3744 completed.
3745 * doc/xml/manual/configure.xml: Document that hosted installs
3746 respect __STDC_HOSTED__.
3747 * doc/xml/manual/test.xml: Document how to run tests in
3748 freestanding mode.
3749 * doc/html/*: Regenerate.
3750
3751 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
3752
3753 * include/bits/ranges_algo.h (__find_last_fn): Rename T to _Tp.
3754 (__find_last_if_fn): Likewise.
3755
3756 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
3757
3758 * include/std/type_traits: Add diagnostic pragmas around
3759 references to deprecated std::aligned_storage and
3760 std::aligned_union traits.
3761 * testsuite/20_util/aligned_storage/requirements/alias_decl.cc:
3762 Add dg-warning for et c++23.
3763 * testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc:
3764 Likewise.
3765 * testsuite/20_util/aligned_storage/value.cc: Likewise.
3766 * testsuite/20_util/aligned_union/1.cc: Likewise.
3767 * testsuite/20_util/aligned_union/requirements/alias_decl.cc:
3768 Likewise.
3769
3770 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
3771
3772 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
3773 * include/bits/c++config (_GLIBCXX23_DEPRECATED)
3774 (_GLIBCXX23_DEPRECATED_SUGGEST): New macros.
3775 * include/std/type_traits (aligned_storage, aligned_union)
3776 (aligned_storage_t, aligned_union_t): Deprecate for C++23.
3777 * testsuite/20_util/aligned_storage/deprecated-2b.cc: New test.
3778 * testsuite/20_util/aligned_union/deprecated-2b.cc: New test.
3779
3780 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
3781
3782 * doc/doxygen/user.cfg.in (PREDEFINED): Update macros.
3783 * include/bits/c++config (_GLIBCXX20_DEPRECATED): Make
3784 consistent with other 'deprecated' macros.
3785 * include/std/type_traits (is_pod, is_pod_v): Use
3786 _GLIBCXX20_DEPRECATED_SUGGEST instead.
3787
3788 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
3789
3790 * Makefile.am [!_GLIBCXX_HOSTED]: Enable src/ subdirectory.
3791 * Makefile.in: Regenerate.
3792 * src/Makefile.am [!_GLIBCXX_HOSTED]: Omit compatibility files.
3793 There's no history to be compatible with.
3794 * src/c++11/Makefile.am [!_GLIBCXX_HOSTED]: Omit hosted-only
3795 source files from the build.
3796 * src/c++17/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
3797 * src/c++20/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
3798 * src/c++98/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
3799 * src/Makefile.in: Regenerate.
3800 * src/c++11/Makefile.in: Regenerate.
3801 * src/c++17/Makefile.in: Regenerate.
3802 * src/c++20/Makefile.in: Regenerate.
3803 * src/c++98/Makefile.in: Regenerate.
3804
3805 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
3806
3807 * src/Makefile.am [GLIBCXX_HOSTED] (SUBDIRS): Do not add
3808 filesystem, libbacktrace and experimental.
3809 * src/Makefile.in: Regenerate.
3810
3811 2023-02-04 Hans-Peter Nilsson <hp@axis.com>
3812
3813 PR libstdc++/108672
3814 * include/pstl/unseq_backend_simd.h (__simd_or): Use __INT32_TYPE__
3815 instead of int32_t.
3816
3817 2023-02-04 Gerald Pfeifer <gerald@pfeifer.com>
3818
3819 * doc/xml/manual/documentation_hacking.xml: Adjust link to pdftex.
3820 * doc/html/manual/documentation_hacking.html: Regenerate.
3821
3822 2023-02-04 François Dumont <fdumont@gcc.gnu.org>
3823
3824 * include/bits/basic_string.h (operator=(basic_string&&)): Transfer move-to
3825 storage to the move-from instance when allocators are equal.
3826 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc (test04):
3827 New test case.
3828
3829 2023-02-03 Samuel Thibault <samuel.thibault@gnu.org>
3830
3831 * config/os/gnu-linux/os_defines.h [!__linux__]
3832 (_GLIBCXX_NATIVE_THREAD_ID, _GLIBCXX_GTHREAD_USE_WEAK): Do not define.
3833
3834 2023-02-03 Patrick Palka <ppalka@redhat.com>
3835
3836 * include/bits/ranges_algo.h (__find_last_fn, find_last):
3837 Define.
3838 (__find_last_if_fn, find_last_if): Define.
3839 (__find_last_if_not_fn, find_last_if_not): Define.
3840 * testsuite/25_algorithms/find_last/1.cc: New test.
3841 * testsuite/25_algorithms/find_last_if/1.cc: New test.
3842 * testsuite/25_algorithms/find_last_if_not/1.cc: New test.
3843
3844 2023-02-03 Patrick Palka <ppalka@redhat.com>
3845
3846 * include/bits/ranges_algo.h (out_value_result): Define.
3847 (iota_result): Define.
3848 (__iota_fn, iota): Define.
3849 * testsuite/25_algorithms/iota/1.cc: New test.
3850
3851 2023-02-03 Patrick Palka <ppalka@redhat.com>
3852
3853 * include/bits/ranges_algo.h (__contains_fn, contains): Define.
3854 (__contains_subrange_fn, contains_subrange): Define.
3855 * testsuite/25_algorithms/contains/1.cc: New test.
3856 * testsuite/25_algorithms/contains_subrange/1.cc: New test.
3857
3858 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
3859
3860 * doc/xml/manual/abi.xml: Tweak link to ABIcheck project.
3861 * doc/html/manual/abi.html: Regenerate.
3862
3863 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
3864
3865 * src/filesystem/ops-common.h [AVR] (__unsupported): Always use
3866 errc::function_not_supported instead of errc::not_supported.
3867
3868 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
3869
3870 * include/std/sstream (basic_stringbuf::view): Define for old
3871 std::string ABI.
3872 (basic_istringstream::view, basic_0stringstream::view)
3873 (basic_stringstream::view): Likewise.
3874 * testsuite/27_io/basic_istringstream/view/char/1.cc: Remove
3875 { dg-require-effective-target cxx11_abi }.
3876 * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
3877 Likewise.
3878 * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
3879 * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
3880 Likewise.
3881 * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
3882 * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
3883 * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
3884 * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
3885 Likewise.
3886
3887 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
3888
3889 PR libstdc++/108636
3890 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export shared_ptr
3891 conversion operators for directory iterator comparisons with
3892 std::default_sentinel_t.
3893 * include/bits/fs_path.h (path::path(string_view, _Type))
3894 (path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
3895 definitions to ...
3896 * src/c++17/fs_path.cc: ... here.
3897 * testsuite/27_io/filesystem/path/108636.cc: New test.
3898
3899 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
3900
3901 * include/std/variant (variant::operator=): Implement resolution
3902 of LWG 3585.
3903 * testsuite/20_util/variant/lwg3585.cc: New test.
3904
3905 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
3906
3907 * doc/xml/manual/using_exceptions.xml: Update a www.open-std.org
3908 link to https.
3909 * doc/html/manual/using_exceptions.html: Regenerate.
3910
3911 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
3912
3913 * doc/xml/manual/debug.xml: Fix link to online GDB manual.
3914 * doc/html/manual/debug.html: Regenerate.
3915
3916 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
3917
3918 * src/c++11/random.cc (random_device::_M_fini): Do not try to
3919 close the file handle if the target doesn't support the
3920 /dev/random and /dev/urandom files.
3921
3922 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
3923
3924 * config/os/generic/error_constants.h (errc::value_too_large)
3925 [__AVR__]: Define.
3926 * src/c++11/system_error.cc
3927 (system_category::default_error_condition) [__AVR__]: Only match
3928 recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
3929 * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
3930 for ENOENT etc. in switch.
3931 (fs::remove_all) [__AVR__]: Likewise.
3932 * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
3933 close etc.
3934
3935 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
3936
3937 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR) [avr-*-*, msp430-*-*]: Set
3938 embed_zoneinfo=no
3939 * configure: Regenerate.
3940
3941 2023-02-01 Hans-Peter Nilsson <hp@axis.com>
3942
3943 PR testsuite/108632
3944 * testsuite/std/time/hh_mm_ss/1.cc (size): Add empty
3945 struct at end of S0.
3946
3947 2023-01-30 Gerald Pfeifer <gerald@pfeifer.com>
3948
3949 * doc/xml/manual/shared_ptr.xml: Move links from both
3950 http://open-std.org and http://www.open-std.org to
3951 https://www.open-std.org.
3952 * doc/html/manual/memory.html: Regenerate.
3953
3954 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
3955
3956 * doc/xml/manual/appendix_contributing.xml: Adjust link to
3957 ISO C++ standard at ANSI.
3958 Move link to www.open-std.org to https.
3959 * doc/html/manual/appendix_contributing.html: Regenerate.
3960
3961 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
3962
3963 * doc/xml/manual/documentation_hacking.xml: Move sourceforge.net
3964 links to https.
3965 * doc/html/manual/documentation_hacking.html: Regenerate.
3966
3967 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
3968
3969 * doc/xml/manual/abi.xml: Update www.open-std.org link to https.
3970 * doc/html/manual/abi.html: Regenerate.
3971
3972 2023-01-27 Jakub Jelinek <jakub@redhat.com>
3973
3974 PR libstdc++/108568
3975 * testsuite/17_intro/names.cc (__unused): For linux or GNU hurd
3976 include features.h if present and then check __GLIBC__ and
3977 __GLIBC_MINOR__ macros for glibc prior to 2.19, instead of testing
3978 __GLIBC_PREREQ which isn't defined yet.
3979
3980 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
3981
3982 * src/c++20/tzdb.cc (tzdata_stream): Use constant instead of
3983 string literal.
3984
3985 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
3986
3987 PR libstdc++/108554
3988 * testsuite/23_containers/map/modifiers/108554.cc: Use dg-bogus.
3989
3990 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
3991
3992 * src/c++20/tzdb.cc (operator>>(istream&, ZoneInfo&)): Allow
3993 rules named "+" for compatibility with older tzdata.zi files.
3994
3995 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
3996
3997 PR libstdc++/108554
3998 * include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add
3999 nonnull attribute.
4000 (_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull
4001 attributes.
4002 * testsuite/23_containers/map/modifiers/108554.cc: New test.
4003
4004 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
4005
4006 PR libstdc++/108530
4007 * src/c++20/tzdb.cc (current_zone): Look for TIMEZONE or ZONE in
4008 /etc/sysconfig/clock, not DEFAULT_TIMEZONE.
4009
4010 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
4011
4012 * doc/xml/manual/intro.xml: Update links to www.open-std.org to
4013 use https.
4014 * doc/html/manual/bugs.html: Regenerate.
4015
4016 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
4017
4018 PR libstdc++/108530
4019 * src/c++20/tzdb.cc (current_zone): Look for DEFAULT_TIMEZONE in
4020 /etc/sysconfig/clock.
4021
4022 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
4023
4024 PR libstdc++/102301
4025 * include/bits/ranges_base.h: Include <bits/stl_iterator.h> for
4026 std::make_reverse_iterator.
4027 * include/std/tuple: Include <bits/ranges_util.h> for subrange.
4028 (make_from_tuple): Add static assertion from P2255 to diagnose
4029 dangling references.
4030 * testsuite/20_util/tuple/make_from_tuple/dangling_ref.cc: New test.
4031 * testsuite/20_util/tuple/make_from_tuple/tuple_like.cc: New test.
4032
4033 2023-01-23 François Dumont <fdumont@gcc.gnu.org>
4034
4035 * include/debug/safe_iterator.h (_Safe_iterator<>::_Unchecked): New.
4036 (_Safe_iterator(const _Safe_iterator&, _Unchecked)): New.
4037 (_Safe_iterator::operator++(int)): Use latter.
4038 (_Safe_iterator::operator--(int)): Likewise.
4039 (_Safe_iterator(_Iterator, const _Safe_sequence_base*)): Remove !_M_insular()
4040 check.
4041 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_Unchecked):
4042 New.
4043 (_Safe_local_iterator(const _Safe_local_iterator&, _Unchecked)): New.
4044 (_Safe_local_iterator::operator++(int)): Use latter.
4045 * src/c++11/debug.cc (_S_debug_messages): Add as comment the _Debug_msg_id
4046 entry associated to the array entry.
4047
4048 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
4049
4050 * include/bits/fs_path.h (u8path): Add deprecated attribute.
4051 * testsuite/27_io/filesystem/path/construct/90281.cc: Add
4052 -Wno-deprecated-declarations for C++20 and later.
4053 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
4054 Likewise.
4055 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
4056 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
4057 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: New test.
4058
4059 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
4060
4061 * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
4062 Always call _M_fini and _M_getentropy.
4063
4064 2023-01-18 Gerald Pfeifer <gerald@pfeifer.com>
4065
4066 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust links
4067 to www.open-std.org to use https.
4068 (COM: Component Model Object Technologies): Rename from...
4069 (The Component Object Model): ...to.
4070 * doc/html/manual/policy_data_structures.html: Regenerate.
4071
4072 2023-01-18 Dimitrij Mijoski <dmjpp@hotmail.com>
4073
4074 * testsuite/22_locale/codecvt/codecvt_unicode.cc: Simplify.
4075 * testsuite/22_locale/codecvt/codecvt_unicode.h: Simplify.
4076 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: Simplify.
4077
4078 2023-01-17 Jonathan Wakely <jwakely@redhat.com>
4079
4080 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Check $target_os instead
4081 of $host. Fix check for file being present during native build.
4082 * configure: Regenerate.
4083
4084 2023-01-17 Martin Liska <mliska@suse.cz>
4085
4086 * src/libbacktrace/Makefile.in: Regenerate.
4087
4088 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
4089
4090 * src/c++20/tzdb.cc (_GLIBCXX_USE_CXX11_ABI): Define to 1.
4091
4092 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
4093
4094 PR libstdc++/108413
4095 * include/c_compatibility/stdatomic.h: Change copyright line to
4096 be consistent with other headers contributed under DCO terms.
4097 * include/std/expected: Add full stop to copyright line.
4098 * src/c++20/tzdb.cc: Likewise.
4099
4100 2023-01-15 Gerald Pfeifer <gerald@pfeifer.com>
4101
4102 * doc/xml/manual/status_cxx2014.xml: Switch www.open-std.org to
4103 https.
4104 * doc/xml/manual/status_cxx2017.xml: Ditto.
4105 * doc/xml/manual/status_cxx2020.xml: Ditto.
4106 * doc/xml/manual/status_cxx2023.xml: Ditto.
4107 * doc/html/manual/status.html: Regenerate.
4108
4109 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
4110
4111 * testsuite/std/time/tzdb_list/1.cc: Remove dg-xfail-run-if
4112 and fail gracefully if defining the weak symbol doesn't work.
4113
4114 2023-01-15 François Dumont <fdumont@gcc.gnu.org>
4115
4116 PR libstdc++/108288
4117 * include/debug/safe_iterator.h (_Safe_iterator<>::operator++(int)): Extend deadlock
4118 fix to other iterator category.
4119 (_Safe_iterator<>::operator--(int)): Likewise.
4120 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::operator++(int)):
4121 Fix deadlock.
4122 * testsuite/util/debug/unordered_checks.h (invalid_local_iterator_pre_increment): New.
4123 (invalid_local_iterator_post_increment): New.
4124 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_post_increment_neg.cc:
4125 New test.
4126 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_pre_increment_neg.cc:
4127 New test.
4128
4129 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
4130
4131 * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
4132 dg-options.
4133
4134 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
4135
4136 * testsuite/std/time/clock/utc/io.cc: Use ctype to widen char.
4137
4138 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
4139
4140 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Add check for
4141 windows.h. Add pecoff as FORMAT_FILE.
4142 * config.h.in: Regenerate.
4143 * configure: Regenerate.
4144 * src/libbacktrace/Makefile.am: Regenerate.
4145 * src/libbacktrace/Makefile.in: Add pecoff.c as FORMAT_FILE.
4146
4147 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
4148
4149 * include/std/stacktrace (stacktrace_entry::_S_demangle): Use
4150 raw __name if __cxa_demangle could not demangle it.
4151
4152 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
4153
4154 PR libstdc++/108409
4155 * src/c++20/tzdb.cc (current_zone()) [_AIX]: Use TZ environment
4156 variable.
4157
4158 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
4159
4160 * src/c++20/tzdb.cc (TZDB_DISABLED): Disable all code for
4161 loading tzdb.
4162 * testsuite/std/time/tzdb/leap_seconds.cc: Require tzdb
4163 effective target.
4164 * testsuite/std/time/tzdb_list/1.cc: Likewise.
4165
4166 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
4167
4168 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Replace the
4169 --with-libstdcxx-zoneinfo-dir configure option with
4170 --with-libstdcxx-zoneinfo with yes/no/static choices as well as
4171 a directory.
4172 * config.h.in: Regenerate.
4173 * configure: Regenerate.
4174 * doc/xml/manual/configure.xml: Document configure option.
4175 * doc/html/manual/configure.html: Regenerate.
4176 * src/c++20/Makefile.am: Generate tzdata.zi.h header.
4177 * src/c++20/Makefile.in: Regenerate.
4178 * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Return a
4179 null pointer if no directory is configured.
4180 (zoneinfo_dir): Replace with ...
4181 (zoneinfo_file): New function.
4182 (tzdata_stream): New istream class.
4183 (remote_version, reload_tzdb): Use tzdata_stream.
4184 * testsuite/lib/libstdc++.exp (check_effective_target_tzdb):
4185 Check new _GLIBCXX_STATIC_TZDATA macro and ignore presence of
4186 tzdata.zi file in default location.
4187 * src/c++20/tzdata.zi: New file.
4188
4189 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
4190
4191 * include/bits/chrono_io.h (operator<<): Fix syntax errors.
4192 * testsuite/std/time/month_day/io.cc: New test.
4193 * testsuite/std/time/month_day_last/io.cc: New test.
4194 * testsuite/std/time/month_weekday/io.cc: New test.
4195 * testsuite/std/time/month_weekday_last/io.cc: New test.
4196 * testsuite/std/time/weekday_indexed/io.cc: New test.
4197 * testsuite/std/time/weekday_last/io.cc: New test.
4198 * testsuite/std/time/year_month/io.cc: New test.
4199 * testsuite/std/time/year_month_day_last/io.cc: New test.
4200 * testsuite/std/time/year_month_weekday/io.cc: New test.
4201 * testsuite/std/time/year_month_weekday_last/io.cc: New test.
4202
4203 2023-01-14 François Dumont <fdumont@gcc.gnu.org>
4204
4205 * include/std/format [_GLIBCXX_INLINE_VERSION](to_chars): Adapt __asm symbol
4206 specifications.
4207 * config/abi/pre/gnu-versioned-namespace.ver: Add to_chars/from_chars symbols
4208 export.
4209
4210 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
4211
4212 * include/bits/std_mutex.h: Include <errno.h>.
4213
4214 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
4215
4216 * testsuite/20_util/to_chars/version.cc: Mark hosted-only.
4217 * testsuite/20_util/uses_allocator/lwg3677.cc: Ditto.
4218 * testsuite/20_util/weak_ptr/cons/self_move.cc: Ditto.
4219 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Replace usage of
4220 std::make_unique with a freestanding-compatible wrapper around
4221 unique_ptr.
4222 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
4223 Don't test for presence of __cpp_lib_string_contains on !HOSTED.
4224 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
4225 Ditto.
4226 * testsuite/std/ranges/version_c++23.cc: Don't test for presence
4227 of __cpp_lib_ranges in !HOSTED.
4228
4229 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
4230
4231 * include/Makefile.am: Install bits/char_traits.h,
4232 std/string_view
4233 * include/Makefile.in: Regenerate.
4234 * include/bits/char_traits.h: Gate hosted-only, wchar-only and
4235 mbstate-only bits behind appropriate #ifs.
4236 * include/std/string_view: Gate <iostream> functionality behind
4237 HOSTED.
4238 * include/std/version: Enable __cpp_lib_constexpr_string_view
4239 and __cpp_lib_starts_ends_with in !HOSTED.
4240 * include/std/ranges: Re-enable __is_basic_string_view on
4241 freestanding, include <string_view> directly.
4242 * include/precompiled/stdc++.h: Include <string_view> when
4243 !HOSTED too.
4244 * testsuite/20_util/function_objects/searchers.cc: Skip testing
4245 boyer_moore searchers on freestanding
4246 * testsuite/21_strings/basic_string_view/capacity/1.cc: Guard
4247 <string>-related tests behind __STDC_HOSTED__.
4248 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Ditto.
4249 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Remove
4250 unused <stdexcept> include.
4251 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Remove
4252 unused <vector> include.
4253 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
4254 Guard <string> related testing behind __STDC_HOSTED__.
4255 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
4256 Guard <stdexcept> related tests behind __STDC_HOSTED__.
4257 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
4258 Ditto.
4259 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
4260 Guard <stdexcept> tests behind __STDC_HOSTED__.
4261 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
4262 Enable test on freestanding, guard <stdexcept> bits behind
4263 __STDC_HOSTED__.
4264 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
4265 Guard <stdexcept> bits behind __STDC_HOSTED__.
4266 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
4267 Ditto.
4268
4269 2023-01-13 Dimitrij Mijoski <dmjpp@hotmail.com>
4270
4271 PR libstdc++/86419
4272 * src/c++11/codecvt.cc (read_utf8_code_point): Correctly detect
4273 errors in incomplete multibyte sequences.
4274 (utf16_in): Remove surrogates parameter. Fix conditions for
4275 returning partial.
4276 (utf16_out): Fix condition for returning partial.
4277 (ucs2_in): Do not pass surrogates argument to utf16_in.
4278 * testsuite/22_locale/codecvt/codecvt_unicode.cc: New test.
4279 * testsuite/22_locale/codecvt/codecvt_unicode.h: New header for
4280 tests.
4281 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: New
4282 test.
4283
4284 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
4285
4286 PR libstdc++/108331
4287 * config/io/c_io_stdio.h (__c_lock): Define as a typedef for
4288 __GTHREAD_LEGACY_MUTEX_T if defined.
4289
4290 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
4291
4292 PR libstdc++/108327
4293 * config/os/gnu-linux/ldbl-extra.ver (GLIBCXX_LDBL_3.4.31):
4294 Export __try_use_facet specializations for facets in namespace
4295 __gnu_cxx_ldbl128.
4296 * config/os/gnu-linux/ldbl-ieee128-extra.ver
4297 (GLIBCXX_IEEE128_3.4.31): Likewise for facets in namespace
4298 __gnu_cxx_ieee128.
4299 * testsuite/util/testsuite_abi.cc: Add to lists of known and
4300 latest versions.
4301
4302 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
4303
4304 * include/bits/std_mutex.h: Remove <system_error> include.
4305 * include/std/condition_variable: Add <bits/error_constants.h>
4306 include.
4307 * include/std/mutex: Likewise.
4308 * include/std/shared_mutex: Likewise.
4309
4310 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
4311
4312 PR libstdc++/77691
4313 * include/experimental/memory_resource
4314 (_GLIBCXX_MAX_ALIGN_MATCHES_MALLOC): Define.
4315 (do_allocate, do_deallocate): Check it.
4316 * testsuite/experimental/memory_resource/new_delete_resource.cc:
4317 Relax expected behaviour for 64-bit hppa-hp-hpux11.11.
4318
4319 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
4320
4321 * doc/xml/manual/abi.xml: Add latest library versions.
4322 * doc/html/manual/abi.html: Regenerate.
4323
4324 2023-01-12 François Dumont <fdumont@gcc.gnu.org>
4325
4326 PR libstdc++/107189
4327 * include/bits/stl_tree.h (_Rb_tree<>::_M_insert_range_equal): Remove
4328 unused _Alloc_node instance.
4329
4330 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
4331
4332 * include/bits/atomic_wait.h (__detail::__platform_wait_t):
4333 Define as unsigned long if always lock-free, and unsigned int
4334 otherwise.
4335
4336 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
4337
4338 * src/c++20/tzdb.cc (tzdb_list::_S_init_tzdb): Use __try and
4339 __catch macros for exception handling.
4340
4341 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
4342
4343 PR libstdc++/108221
4344 * include/bits/stl_algobase.h (__lg): Replace six overloads with
4345 a single function template for all integer types.
4346 * include/bits/stl_algo.h (__merge_adaptive_resize): Cast
4347 arithmetic results back to _Distance.
4348
4349 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
4350
4351 PR libstdc++/108221
4352 * include/std/span (span::span()): Un-simplify constraint to
4353 work for size_t of lesser rank than int.
4354
4355 2023-01-07 LIU Hao <lh_mouse@126.com>
4356
4357 PR middle-end/108300
4358 * src/c++11/system_error.cc: Define `WIN32_LEAN_AND_MEAN` before
4359 <windows.h>.
4360 * src/c++11/thread.cc: Likewise.
4361 * src/c++17/fs_ops.cc: Likewise.
4362 * src/filesystem/ops.cc: Likewise.
4363
4364 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4365
4366 PR libstdc++/108228
4367 * src/c++20/tzdb.cc (zoneinfo_dir): Add diagnostic pragma.
4368
4369 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4370
4371 PR libstdc++/108235
4372 * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): New class
4373 template and partial specialization for synchronizing access to
4374 time_zone::_Impl::infos.
4375 (time_zone::_M_get_sys_info, reload_tzdb): Adjust uses of
4376 rules_counter.
4377
4378 2023-01-06 Patrick Palka <ppalka@redhat.com>
4379
4380 PR libstdc++/108260
4381 * include/bits/utility.h (__cpp_lib_ranges_zip): Define for C++23.
4382 * include/std/ranges (__cpp_lib_ranges_zip): Likewise.
4383 (__cpp_lib_ranges_chunk): Likewise.
4384 (__cpp_lib_ranges_slide): Likewise.
4385 (__cpp_lib_ranges_chunk_by): Likewise.
4386 (__cpp_lib_ranges_join_with): Likewise.
4387 (__cpp_lib_ranges_repeat): Likewise.
4388 (__cpp_lib_ranges_stride): Likewise.
4389 (__cpp_lib_ranges_cartesian_product): Likewise.
4390 (__cpp_lib_ranges_as_rvalue): Likewise.
4391 * include/std/version: Ditto.
4392 * testsuite/20_util/tuple/p2321r2.cc: Verify value of
4393 feature-test macro.
4394 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
4395 * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
4396 * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
4397 * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
4398 * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
4399 * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
4400 * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
4401 * testsuite/std/ranges/repeat/1.cc: Likewise.
4402 * testsuite/std/ranges/zip/1.cc: Likewise.
4403 * testsuite/std/ranges/version_c++23.cc: New test.
4404
4405 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4406
4407 PR libstdc++/108214
4408 * include/std/bitset (operator>>): Use alloca in the right
4409 scope, not in a constructor.
4410 * testsuite/20_util/bitset/io/input.cc: Check case from PR.
4411
4412 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4413
4414 PR libstdc++/108221
4415 * include/std/format (basic_format_arg) [!__cpp_lib_to_chars]:
4416 Disable visiting floating-point types.
4417
4418 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4419
4420 PR libstdc++/108288
4421 * include/debug/safe_iterator.h (_Safe_iterator::operator++(int))
4422 (_Safe_iterator::operator--(int)): Do not hold lock around
4423 construction of return value.
4424
4425 2023-01-05 John David Anglin <danglin@gcc.gnu.org>
4426
4427 * config/cpu/hppa/atomicity.h (_PA_LDCW_INSN): Define.
4428 (__exchange_and_add): Use _PA_LDCW_INSN. Use ordered store for
4429 lock release. Revise loop.
4430 (__atomic_add): Likewise.
4431
4432 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4433
4434 PR libstdc++/108212
4435 * python/libstdcxx/v6/printers.py (_utc_timezone): New global
4436 variable.
4437 (StdChronoTimePointPrinter::to_string): Use it.
4438
4439 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4440
4441 PR libstdc++/108290
4442 * include/std/functional (_Bind_front): Add no_unique_address
4443 attribute to data members.
4444 * testsuite/20_util/function_objects/bind_front/107784.cc: Check
4445 size of call wrappers with empty types for targets and bound
4446 arguments.
4447
4448 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4449
4450 PR libstdc++/108211
4451 * src/c++20/tzdb.cc (chrono::current_zone()): Check for zone
4452 using only last component of the name.
4453
4454 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4455
4456 PR libstdc++/108228
4457 PR libstdc++/108235
4458 * config/abi/pre/gnu.ver: Move zoneinfo_dir_override export to
4459 the latest symbol version.
4460 * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define to 0 if
4461 atomic<_Node*> is not always lock free.
4462 (USE_ATOMIC_LIST_HEAD): New macro.
4463 [__hpux__] (__gnu_cxx::zoneinfo_dir_override()): Provide
4464 definition of weak symbol.
4465 (tzdb_list::_Node::_S_head): Rename to _S_head_cache.
4466 (tzdb_list::_Node::_S_list_head): New function for accessing
4467 list head efficiently.
4468 (tzdb_list::_Node::_S_cache_list_head): New function for
4469 updating _S_list_head.
4470
4471 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4472
4473 PR libstdc++/108265
4474 * include/std/chrono (hh_mm_ss): Do not use chrono::abs if
4475 duration rep is unsigned.
4476 * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep.
4477
4478 2023-01-04 Iain Sandoe <iain@sandoe.co.uk>
4479
4480 PR libstdc++/108228
4481 * config/abi/pre/gnu.ver (GLIBCXX_3.4):
4482 Add __gnu_cxx::zoneinfo_dir_override().
4483
4484 2023-01-04 Jonathan Wakely <jwakely@redhat.com>
4485
4486 PR libstdc++/108258
4487 * include/std/array (__array_traits<T, 0>::operator T*()): Add
4488 constexpr.
4489 * testsuite/23_containers/array/element_access/constexpr_c++17.cc: Check
4490 std::array<T, 0>::data().
4491
4492 \f
4493 Copyright (C) 2023 Free Software Foundation, Inc.
4494
4495 Copying and distribution of this file, with or without modification,
4496 are permitted in any medium without royalty provided the copyright
4497 notice and this notice are preserved.