1 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
3 * include/bits/basic_string.tcc (resize_and_overwrite): Invoke
4 the callable with the same size as resize_and_overwrite was
6 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
7 Check with small values for the new size.
8 * testsuite/std/format/functions/format.cc: Check wide
9 formatting of double values that produce small strings.
10 * testsuite/std/format/functions/format_c++23.cc: New test.
12 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
14 * include/bits/version.def (stds): Update value for C++23.
15 * include/bits/version.h: Regenerate.
17 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
19 * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
20 Fix name of upstream file this was derived from.
21 * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
23 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
25 * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
27 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h: Likewise.
29 2023-08-16 Arsen Arsenović <arsen@aarsen.me>
31 * libsupc++/typeinfo: Switch to bits/version.h for
32 __cpp_lib_constexpr_typeinfo.
33 * libsupc++/new: Switch to bits/version.h for
34 __cpp_lib_{launder,hardware_interference_size,destroying_delete}.
35 (launder): Guard behind __cpp_lib_launder.
36 (hardware_destructive_interference_size)
37 (hardware_constructive_interference_size): Guard behind
38 __cpp_lib_hardware_interference_size.
39 * libsupc++/exception: Switch to bits/version.h for
40 __cpp_lib_uncaught_exceptions.
41 (uncaught_exceptions): Guard behind __cpp_lib_uncaught_exceptions.
42 * libsupc++/compare: Switch to bits/version.h for
43 __cpp_lib_three_way_comparison.
44 (three_way_comparable, three_way_comparable_with)
45 (compare_three_way, weak_order, strong_order, partial_order):
46 Guard behind __cpp_lib_three_way_comparison >= 201907L.
47 * include/std/chrono: Drop __cpp_lib_chrono definition.
48 * include/std/vector: Switch to bits/version.h for
50 (erase, erase_if): Guard behind __cpp_lib_erase_if.
51 * include/std/variant: Switch to bits/version.h for
52 __cpp_lib_variant. Guard whole header behind that FTM.
53 * include/std/utility: Switch to bits/version.h for
54 __cpp_lib_{exchange_function,constexpr_algorithms,as_const},
55 __cpp_lib_{integer_comparison_functions,to_underlying}, and
56 __cpp_lib_unreachable.
57 (exchange): Guard behind __cpp_lib_exchange_function.
58 (cmp_equal, cmp_not_equal, cmp_less, cmp_greater, cmp_less_equal)
59 (cmp_greater_equal, in_range): Guard behind
60 __cpp_lib_integer_comparison_functions.
61 (to_underlying): Guard behind __cpp_lib_to_underlying.
62 (unreachable): Guard behind __cpp_lib_unreachable.
63 * include/std/type_traits: Switch to bits/version.h for
64 __cpp_lib_is_{null_pointer,final,nothrow_convertible,aggregate},
65 __cpp_lib_is_{constant_evaluated,invocable,layout_compatible},
66 __cpp_lib_is_{pointer_interconvertible,scoped_enum,swappable},
67 __cpp_lib_{logical_traits,reference_from_temporary,remove_cvref},
68 __cpp_lib_{result_of_sfinae,transformation_trait_aliases},
69 __cpp_lib_{type_identity,type_trait_variable_templates},
70 __cpp_lib_{unwrap_ref,void_t,integral_constant_callable},
71 __cpp_lib_{bool_constant,bounded_array_traits}, and
72 __cpp_lib_has_unique_object_representations.
73 (integral_constant::operator()): Guard behind
74 __cpp_lib_integral_constant_callable.
75 (bool_constant): Guard behind __cpp_lib_bool_constant.
76 (conjunction, disjunction, negation, conjunction_v, disjunction_v)
77 (negation_v): Guard behind __cpp_lib_logical_traits.
78 (is_null_pointer): Guard behind __cpp_lib_is_null_pointer.
79 (is_final): Guard behind __cpp_lib_is_final.
80 (is_nothrow_convertible, is_nothrow_convertible_v): Guard behind
81 __cpp_lib_is_nothrow_convertible.
82 (remove_const_t, remove_volatile_t, remove_cv_t)
83 (add_const_t, add_volatile_t, add_cv_t): Guard behind
84 __cpp_lib_transformation_trait_aliases.
85 (void_t): Guard behind __cpp_lib_void_t.
86 (is_swappable_with_v, is_nothrow_swappable_with_v)
87 (is_swappable_with, is_nothrow_swappable_with): Guard behind
88 __cpp_lib_is_swappable.
89 (is_nothrow_invocable_r, is_invocable_r, invoke_result)
90 (is_invocable, invoke_result_t): Guard behind
91 __cpp_lib_is_invocable.
92 (alignment_of_v, extent_v, has_virtual_destructor_v)
93 (is_abstract_v, is_arithmetic_v, is_array_v)
94 (is_assignable_v, is_base_of_v, is_class_v, is_compound_v)
95 (is_constructible_v, is_const_v, is_convertible_v)
96 (is_copy_assignable_v, is_copy_constructible_v)
97 (is_default_constructible_v, is_destructible_v)
98 (is_empty_v, is_enum_v, is_final_v, is_floating_point_v)
99 (is_function_v, is_fundamental_v, is_integral_v)
100 (is_invocable_r_v, is_invocable_v, is_literal_type_v)
101 (is_lvalue_reference_v, is_member_function_pointer_v)
102 (is_member_object_pointer_v, is_member_pointer_v)
103 (is_move_assignable_v, is_move_constructible_v)
104 (is_nothrow_assignable_v, is_nothrow_constructible_v)
105 (is_nothrow_copy_assignable_v, is_nothrow_copy_constructible_v)
106 (is_nothrow_default_constructible_v, is_nothrow_destructible_v)
107 (is_nothrow_invocable_r_v, is_nothrow_invocable_v)
108 (is_nothrow_move_assignable_v, is_nothrow_move_constructible_v)
109 (is_null_pointer_v, is_object_v, is_pod_v, is_pointer_v)
110 (is_polymorphic_v, is_reference_v, is_rvalue_reference_v)
111 (is_same_v, is_scalar_v, is_signed_v, is_standard_layout_v)
112 (is_trivially_assignable_v, is_trivially_constructible_v)
113 (is_trivially_copyable_v, is_trivially_copy_assignable_v)
114 (is_trivially_copy_constructible_v)
115 (is_trivially_default_constructible_v)
116 (is_trivially_destructible_v, is_trivially_move_assignable_v)
117 (is_trivially_move_constructible_v, is_trivial_v, is_union_v)
118 (is_unsigned_v, is_void_v, is_volatile_v, rank_v, as variadic):
119 Guard behind __cpp_lib_type_trait_variable_templates.
120 (has_unique_object_representations)
121 (has_unique_object_representations_v): Guard behind
122 __cpp_lib_has_unique_object_representation.
123 (is_aggregate): Guard behind __cpp_lib_is_aggregate.
124 (remove_cvref, remove_cvref_t): Guard behind
125 __cpp_lib_remove_cvref.
126 (type_identity, type_identity_t): Guard behind
127 __cpp_lib_type_identity.
128 (unwrap_reference, unwrap_reference_t, unwrap_ref_decay)
129 (unwrap_ref_decay_t): Guard behind __cpp_lib_unwrap_ref.
130 (is_bounded_array_v, is_unbounded_array_v, is_bounded_array)
131 (is_unbounded_array): Guard behind __cpp_lib_bounded_array_traits.
132 (is_scoped_enum, is_scoped_enum_v): Guard behind
133 __cpp_lib_is_scoped_enum.
134 (reference_constructs_from_temporary)
135 (reference_constructs_from_temporary_v): Guard behind
136 __cpp_lib_reference_from_temporary.
137 * include/std/tuple: Switch to bits/version.h for
138 __cpp_lib_{constexpr_tuple,tuple_by_type,apply_make_from_tuple}.
139 (get<T>): Guard behind __cpp_lib_tuple_by_type.
140 (apply): Guard behind __cpp_lib_apply.
141 (make_from_tuple): Guard behind __cpp_lib_make_from_tuple.
142 * include/std/syncstream: Switch to bits/version.h for
143 __cpp_lib_syncbuf. Guard header behind that FTM.
144 * include/std/string_view: Switch to bits/version.h for
145 __cpp_lib_{string_{view,contains},constexpr_string_view} and
146 __cpp_lib_starts_ends_with.
147 (basic_string_view::starts_with, basic_string_view::ends_with):
148 Guard behind __cpp_lib_starts_ends_with.
149 [C++23 && _GLIBCXX_HOSTED && !defined(__cpp_lib_string_contains)]:
150 Assert as impossible ithout a bug in C++23.
151 * include/std/string: Switch to bits/version.h for
153 (erase, erase_if): Guard behind __cpp_lib_erase_if.
154 * include/std/thread: Switch to bits/version.h for
156 * include/std/stop_token: Switch to bits/version.h for
158 * include/std/spanstream: Switch to bits/version.h for
159 __cpp_lib_spanstream. Guard header behind that FTM.
160 * include/std/span: Switch to bits/version.h for __cpp_lib_span.
161 Guard header behind that FTM.
162 * include/std/source_location: Switch to bits/version.h for
163 __cpp_lib_source_location. Guard header with that FTM.
164 * include/std/shared_mutex: Switch to bits/version.h for
165 __cpp_lib_shared{,_timed}_mutex.
166 (shared_mutex): Guard behind __cpp_lib_shared_mutex.
167 * include/std/semaphore: Switch to bits/version.h for
168 __cpp_lib_semaphore. Guard header behind that FTM.
169 * include/std/ranges: Switch to bits/version.h for
170 __cpp_lib_ranges_{zip,chunk{,_by},slide,join_with},
171 __cpp_lib_ranges_{repeat_stride,cartesian_product,as_rvalue},
172 and __cpp_lib_ranges_{as_const,enumerate,iota}.
173 (ranges::zip et al, ranges::chunk et al, ranges::slide et al)
174 (ranges::chunk_by et al, ranges::join_with et al)
175 (ranges::stride et al, ranges::cartesian_product et al)
176 (ranges::as_rvalue et al, ranges::as_const et al)
177 (ranges::enumerate et al): Guard behind appropriate FTM.
178 * include/std/optional: Switch to bits/version.h for
179 __cpp_lib_optional. Guard header behind that FTM.
180 * include/std/numeric: Switch to bits/version.h for
181 __cpp_lib_{gcd{,_lcm},lcm,constexpr_numeric,interpolate}
182 and __cpp_lib_parallel_algorithm.
183 (gcd, lcm): Guard behind __cpp_lib_gcd_lcm.
184 (midpoint): Guard behind __cpp_lib_interpolate.
185 * include/std/numbers: Switch to bits/version.h for
186 __cpp_lib_math_constants. Guard header behind that FTM.
187 * include/std/mutex: Switch to bits/version.h for
188 __cpp_lib_scoped_lock.
189 (scoped_Lock): Guard behind __cpp_lib_scoped_lock.
190 * include/std/memory_resource: Switch to bits/version.h for
191 __cpp_lib_{polymorphic_allocator,memory_resource}.
192 (synchronized_pool_resource): Guard behind
193 __cpp_lib_memory_resource >= 201603L.
194 (polymorphic_allocator): Guard behind
195 __cpp_lib_polymorphic_allocator.
196 * include/std/memory: Switch to bits/version.h for
197 __cpp_lib_{parallel_algorithm,atomic_value_initialization}.
198 * include/std/list: Switch to bits/version.h for
200 (erase, erase_if): Guard behind __cpp_lib_erase_if.
201 * include/std/latch: Switch to bits/version.h for __cpp_lib_latch.
202 Guard header behind that FTM.
203 * include/std/iterator: Switch to bits/version.h for
204 __cpp_lib_null_iterators.
205 * include/std/iomanip: Switch to bits/version.h for
206 __cpp_lib_quoted_string_io.
207 (quoted): Guard behind __cpp_lib_quoted_string_io.
208 * include/std/functional: Switch to bits/version.h for
209 __cpp_lib_{invoke{,_r},constexpr_functional,bind_front} and
210 __cpp_lib_{not_fn,booyer_moore_searcher}.
211 (invoke): Guard behind __cpp_lib_invoke.
212 (invoke_r): Guard behind __cpp_lib_invoke_r.
213 (bind_front): Guard behind __cpp_lib_bind_front.
214 (not_fn): Guard behind __cpp_lib_not_fn.
215 (boyer_moore_searcher, boyer_moore_horspool_searcher): Guard
216 definition behind __cpp_lib_boyer_moore_searcher.
217 * include/std/forward_list: Switch to bits/version.h for
219 (erase, erase_if): Guard behind __cpp_lib_erase_if.
220 * include/std/format: Switch to bits/version.h for
221 __cpp_lib_format. Guard header behind that FTM.
222 * include/std/filesystem: Switch to bits/version.h for
223 __cpp_lib_filesystem. Guard header behind that FTM.
224 * include/std/expected: Switch to bits/version.h for
225 __cpp_lib_expected. Guard header behind it.
226 * include/std/execution: Switch to bits/version.h for
227 __cpp_lib_{execution,parallel_algorithm}. Guard header behind
229 * include/std/deque: Switch to bits/version.h for
231 (erase, erase_if): Guard behind __cpp_lib_erase_if.
232 * include/std/coroutine: Switch to bits/version.h for
233 __cpp_lib_coroutine. Guard header behind that FTM.
234 * include/std/concepts: Switch to bits/version.h for
235 __cpp_lib_concepts. Guard header behind that FTM.
236 * include/std/complex: Switch to bits/version.h for
237 __cpp_lib_{complex_udls,constexpr_complex}.
238 (operator""if, operator""i, operator""il): Guard behind
239 __cpp_lib_complex_udls.
240 * include/std/charconv: Swtich to bits/version.h for
241 __cpp_lib_{to_chars,constexpr_charconv}.
242 * include/std/bitset: Switch to bits/version.h for
243 __cpp_lib_constexpr_bitset.
244 * include/std/bit: Switch to bits/version.h for
245 __cpp_lib_{bit_cast,byteswap,bitops,int_pow2,endian}.
246 (bit_cast): Guard behind __cpp_lib_bit_cast.
247 (byteswap): Guard behind __cpp_lib_byteswap.
248 (rotl, rotr, countl_zero, countl_one, countr_zero, countr_one)
249 (popcount): Guard behind __cpp_lib_bitops.
250 (has_single_bit, bit_ceil, bit_floor, bit_width): Guard behind
252 (endian): Guard behind __cpp_lib_endian.
253 * include/std/barrier: Switch to bits/version.h for
254 __cpp_lib_barrier. Guard header behind that FTM.
255 * include/std/atomic: Switch to bits/version.h for
256 __cpp_lib_atomic_{is_always_lock_free,float,ref}
257 and __cpp_lib_lock_free_type_aliases.
258 (*::is_always_lock_free): Guard behind
259 __cpp_lib_atomic_is_always_lock_free.
260 (atomic<float>): Guard behind __cpp_lib_atomic_float.
261 (atomic_ref): Guard behind __cpp_lib_atomic_ref.
262 (atomic_signed_lock_free, atomic_unsigned_lock_free): Guard behind
263 __cpp_lib_atomic_lock_free_type_aliases.
264 * include/std/array: Switch to bits/version.h for
266 (to_array): Guard behind __cpp_lib_to_array.
267 * include/std/any: Switch to bits/version.h for __cpp_lib_any.
268 Guard header behind that FTM.
269 * include/std/algorithm: Switch to bits/version.h for
270 __cpp_lib_parallel_algorithm.
271 * include/c_global/cstddef: Switch to bits/version.h for
273 (byte): Guard behind __cpp_lib_byte.
274 * include/c_global/cmath: Switch to bits/version.h for
275 __cpp_lib_{hypot,interpolate}.
276 (hypot3): Guard behind __cpp_lib_hypot.
277 (lerp): Guard behind __cpp_lib_interpolate.
278 * include/c_compatibility/stdatomic.h: Switch to
279 bits/stl_version.h for __cpp_lib_atomic. Guard header behind that
281 * include/bits/utility.h: Switch to bits/version.h for
282 __cpp_lib_{tuple_element_t,integer_sequence,ranges_zip}.
283 (tuple_element_t): Guard behind __cpp_lib_tuple_element_t.
284 (integer_sequence et al): Guard behind __cpp_lib_integer_sequence.
285 * include/bits/uses_allocator_args.h: Switch to bits/version.h for
286 __cpp_lib_make_obj_using_allocator. Guard header behind that FTM.
287 * include/bits/unordered_map.h: Switch to bits/version.h for
288 __cpp_lib_unordered_map_try_emplace.
289 (try_emplace): Guard behind __cpp_lib_unordered_map_try_emplace.
290 * include/bits/unique_ptr.h: Switch to bits/version.h for
291 __cpp_lib_{constexpr_memory,make_unique}.
292 (make_unique): Guard behind __cpp_lib_make_unique.
293 * include/bits/stl_vector.h: Switch to bits/version.h for
294 __cpp_lib_constexpr_vector.
295 * include/bits/stl_uninitialized.h: Switch to bits/version.h for
296 __cpp_lib_raw_memory_algorithms.
297 (uninitialized_default_construct)
298 (uninitialized_default_construct_n, uninitialized_move)
299 (uninitialized_move_n, uninitialized_value_construct)
300 (uninitialized_value_construct_n): Guard behind
301 __cpp_lib_raw_memory_algorithms.
302 * include/bits/stl_tree.h: Switch to bits/version.h for
303 __cpp_lib_generic_associative_lookup.
304 * include/bits/stl_stack.h: Switch to bits/version.h for
305 __cpp_lib_adaptor_iterator_pair_constructor.
306 (stack): Guard iterator-pair constructor behind
307 __cpp_lib_adaptor_iterator_pair_constructor.
308 * include/bits/stl_queue.h: Switch to bits/version.h for
309 __cpp_lib_adaptor_iterator_pair_constructor.
310 (queue): Guard iterator-pair constructor behind
311 __cpp_lib_adaptor_iterator_pair_constructor.
312 * include/bits/stl_pair.h: Switch to bits/version.h for
313 __cpp_lib_{concepts,tuples_by_type}.
314 (get): Guard type-getting overloads behind
315 __cpp_lib_tuples_by_type.
316 * include/bits/stl_map.h: Switch to bits/version.h for
317 __cpp_lib_map_try_emplace.
318 (map<>::try_emplace): Guard behind __cpp_lib_map_try_emplace.
319 * include/bits/stl_list.h: Switch to bits/version.h for
320 __cpp_lib_list_remove_return_type.
321 (__remove_return_type, _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG)
322 [C++20]: guard behind __cpp_lib_list_remove_return_type instead.
323 * include/bits/stl_iterator.h: Switch to bits/version.h for
324 __cpp_lib_{constexpr_iterator,array_constexpr} and
325 __cpp_lib_{make_reverse_iterator,move_iterator_concept}.
326 (make_reverse_iterator): Guard behind
327 __cpp_lib_make_reverse_iterator.
328 (iterator_concept et al): Guard __cpp_lib_move_iterator_concept
329 changes behind that FTM.
330 * include/bits/stl_function.h: Switch to bits/version.h for
331 __cpp_lib_transparent_operators.
332 (equal_to, not_equal_to, greater, less, greater_equal)
333 (less_equal, bit_and, bit_or, bit_xor, bit_not, logical_and)
334 (logical_or, logical_not, plus, minus, multiplies, divides)
335 (modulus, negate): Guard '= void' fwdecls behind
336 __cpp_lib_transparent_operators.
337 (plus<void>, minus<void>, multiplies<void>, divides<void>)
338 (modulus<void>, negate<void>, logical_and<void>, logical_or<void>)
339 (logical_not<void>, bit_and<void>, bit_or<void>, bit_xor<void>)
340 (equal_to<void>, not_equal_to<void>, greater<void>, less<void>)
341 (greater_equal<void>, less_equal<void>, bit_not<void>)
342 (__has_is_transparent): Guard behind
343 __cpp_lib_transparent_operators.
344 * include/bits/stl_algobase.h: Switch to bits/version.h for
345 __cpp_lib_robust_nonmodifying_seq_ops.
346 (robust equal, mismatch): Guard behind
347 __cpp_lib_nonmember_container_access.
348 * include/bits/stl_algo.h: Swtich to bits/version.h for
349 __cpp_lib_{clamp,sample}.
350 (clamp): Guard behind __cpp_lib_clamp.
351 (sample): Guard behind __cpp_lib_sample.
352 * include/bits/specfun.h: Switch to bits/version.h for
353 __cpp_lib_math_special_functions and __STDCPP_MATH_SPEC_FUNCS__.
354 * include/bits/shared_ptr_base.h: Switch to bits/version.h for
355 __cpp_lib_{smart_ptr_for_overwrite,shared_ptr_arrays}.
356 (_Sp_overwrite_tag): Guard behind
357 __cpp_lib_smart_ptr_for_overwrite.
358 * include/bits/shared_ptr_atomic.h: Switch to bits/version.h for
359 __cpp_lib_atomic_shared_ptr.
360 * include/bits/shared_ptr.h: Switch to bits/version.h for
361 __cpp_lib_{enable_shared_from_this,shared_ptr_weak_type}.
362 (shared_ptr<T>::weak_type): Guard behind
363 __cpp_lib_shared_ptr_weak_type.
364 (enable_shared_from_this<T>::weak_from_this): Guard behind
365 __cpp_lib_enable_shared_from_this.
366 * include/bits/ranges_cmp.h: Switch to bits/version.h for
368 * include/bits/ranges_algo.h: Switch to bits/version.h for
369 __cpp_lib_{shift,ranges_{contains,find_last,fold,iota}}.
370 * include/bits/range_access.h: Switch to bits/version.h for
371 __cpp_lib_nonmember_container_access
372 (size, empty, data): Guard behind
373 __cpp_lib_nonmember_container_access.
374 (ssize): Guard behind __cpp_lib_ssize.
375 * include/bits/ptr_traits.h: Switch to bits/version.h. for
376 __cpp_lib_{constexpr_memory,to_address}.
377 (to_address): Guard behind __cpp_lib_to_address.
378 * include/bits/node_handle.h: Switch to bits/version.h for
379 __cpp_lib_node_extract. Guard header behind that FTM.
380 * include/bits/move_only_function.h: Switch to bits/version.h for
381 __cpp_lib_move_only_function. Guard header behind that FTM.
382 * include/bits/move.h: Switch to bits/version.h for
383 __cpp_lib_addressof_constexpr.
384 * include/bits/ios_base.h: Switch to bits/version.h for
385 __cpp_lib_ios_noreplace.
386 (noreplace): Guard with __cpp_lib_ios_noreplace.
387 * include/bits/hashtable.h: Switch to bits/version.h for
388 __cpp_lib_generic_unordered_lookup.
389 (_M_equal_range_tr, _M_count_tr, _M_find_tr): Guard behind
390 __cpp_lib_generic_unordered_lookup.
391 * include/bits/forward_list.h: Switch to bits/version.h for
392 __cpp_lib_list_remove_return_type.
393 (__remove_return_type): Guard behind
394 __cpp_lib_list_remove_return_type.
395 * include/bits/erase_if.h: Switch to bits/version.h for
397 * include/bits/cow_string.h: Switch to bits/version.h for
398 __cpp_lib_constexpr_string.
399 * include/bits/chrono.h: Swtich to bits/version.h for
400 __cpp_lib_chrono{,_udls}.
401 (ceil): Guard behind __cpp_lib_chrono.
402 (operator""ns et al): Guard behind __cpp_lib_chrono_udls.
403 * include/bits/char_traits.h: Switch to bits/version.h for
404 __cpp_lib_constexpr_char_traits.
405 * include/bits/basic_string.h: Switch to bits/version.h for
406 __cpp_lib_{constexpr_string,string_{resize_and_overwrite,udls}}.
407 (resize_and_overwrite): Guard behind
408 __cpp_lib_string_resize_and_overwrite.
409 (operator""s): Guard behind __cpp_lib_string_udls.
410 * include/bits/atomic_wait.h: Switch to bits/version.h for
411 __cpp_lib_atomic_wait. Guard header behind that FTM.
412 * include/bits/atomic_base.h: Switch to bits/version.h for
413 __cpp_lib_atomic_value_initialization and
414 __cpp_lib_atomic_flag_test.
415 (atomic_flag::test): Guard behind __cpp_lib_atomic_flag_test,
417 * include/bits/allocator.h: Switch to bits/version.h for
418 __cpp_lib_incomplete_container_elements.
419 * include/bits/alloc_traits.h: Switch to using bits/version.h for
420 __cpp_lib_constexpr_dynamic_alloc and
421 __cpp_lib_allocator_traits_is_always_equal.
422 * include/bits/align.h: Switch to bits/version.h for defining
423 __cpp_lib_assume_aligned.
424 (assume_aligned): Guard with __cpp_lib_assume_aligned.
425 * include/bits/algorithmfwd.h: Switch to bits/version.h for
426 defining __cpp_lib_constexpr_algorithms.
427 * include/std/stacktrace: Switch to bits/version.h for
428 __cpp_lib_stacktrace. Guard header behind that FTM.
429 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
432 2023-08-16 Arsen Arsenović <arsen@aarsen.me>
434 * include/Makefile.am (bits_freestanding): Add version.h.
435 (allcreated): Add version.h.
436 (${bits_srcdir}/version.h): New rule. Regenerates
437 version.h out of version.{def,tpl}.
438 * include/Makefile.in: Regenerate.
439 * include/bits/version.def: New file. Declares a list of
440 all feature test macros, their values and their preconditions.
441 * include/bits/version.tpl: New file. Turns version.def
442 into a sequence of #if blocks.
443 * include/bits/version.h: New file. Generated from
445 * include/std/version: Replace with a __glibcxx_want_all define
446 and bits/version.h include.
448 2023-08-14 Paul Dreik <gccpatches@pauldreik.se>
451 * include/std/format (__formatter_fp::format): Use frexp instead
454 2023-08-12 Ken Matsui <kmatsui@gcc.gnu.org>
456 * include/std/type_traits (true_type): Use __bool_constant
458 (false_type): Likewise.
459 (bool_constant): Likewise.
461 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
464 * include/std/format (_Seq_sink::get): Only call _M_overflow if
465 its precondition is met.
466 (_Iter_sink::_M_finish): Likewise.
467 (_Iter_sink<C, ContigIter>::_M_overflow): Only switch to the
468 internal buffer after running out of space.
469 (_Iter_sink<C, ContigIter>::_M_finish): Do not use _M_overflow.
470 (_Counting_sink::count): Likewise.
471 * testsuite/std/format/functions/format_to_n.cc: Check cases
472 where the output fits into the buffer.
474 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
477 * include/bits/chrono_io.h (operator|=, operator|): Add noexcept
478 to _ChronoParts operators.
479 (from_stream, parse): Define new functions.
480 (__detail::_Parse, __detail::_Parser): New class templates.
481 * include/std/chrono (__cpp_lib_chrono): Define to 201907L for
483 * include/std/version (__cpp_lib_chrono): Likewise.
484 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
485 Adjust expected value of feature test macro.
486 * testsuite/20_util/duration/io.cc: Test parsing.
487 * testsuite/std/time/clock/file/io.cc: Likewise.
488 * testsuite/std/time/clock/gps/io.cc: Likewise.
489 * testsuite/std/time/clock/system/io.cc: Likewise.
490 * testsuite/std/time/clock/tai/io.cc: Likewise.
491 * testsuite/std/time/clock/utc/io.cc: Likewise.
492 * testsuite/std/time/day/io.cc: Likewise.
493 * testsuite/std/time/month/io.cc: Likewise.
494 * testsuite/std/time/month_day/io.cc: Likewise.
495 * testsuite/std/time/weekday/io.cc: Likewise.
496 * testsuite/std/time/year/io.cc: Likewise.
497 * testsuite/std/time/year_month/io.cc: Likewise.
498 * testsuite/std/time/year_month_day/io.cc: Likewise.
499 * testsuite/std/time/syn_c++20.cc: Check value of macro and for
500 the existence of parse and from_stream in namespace chrono.
501 * testsuite/std/time/clock/local/io.cc: New test.
502 * testsuite/std/time/parse.cc: New test.
504 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
507 * include/std/format (__formatter_fp::format): Do not call log10
510 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
512 * python/libstdcxx/v6/printers.py (StdChronoCalendarPrinter):
513 Check for out-of-range month an weekday indices.
514 * testsuite/libstdc++-prettyprinters/chrono.cc: Check invalid
515 month and weekday values.
517 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
519 * include/bits/stl_iterator.h (__clamped_iter_cat_t): Remove.
521 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
524 * include/std/format (_Spec::_S_parse_width_or_precision): Check
525 for empty range before dereferencing iterator.
526 * testsuite/std/format/string.cc: Check for expected exception.
527 Fix expected exception message in test_pr110862() and actually
530 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
533 * include/std/format (__formatter_fp::format): Check return
534 value of _M_localize.
535 * testsuite/std/format/functions/format.cc: Check classic
538 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
541 * include/bits/stl_iterator.h (__detail::__move_iter_cat): Use
543 (iterator_traits<common_iterator<I, S>>::_S_iter_cat): Likewise.
544 (__detail::__basic_const_iterator_iter_cat): Likewise.
545 * include/bits/stl_iterator_base_types.h (__iterator_category_t):
546 Rename to __iter_category_t.
548 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
550 * include/bits/chrono.h (duration_cast): Do not use braces
551 around statements for C++11 constexpr rules.
552 * include/bits/stl_algobase.h (__lg): Rewrite as a single
553 statement for C++11 constexpr rules.
554 * include/experimental/bits/fs_path.h (path::string): Use
555 _GLIBCXX17_CONSTEXPR not _GLIBCXX_CONSTEXPR for 'if constexpr'.
556 * include/std/charconv (__to_chars_8): Initialize variable for
557 C++17 constexpr rules.
559 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
561 * include/bits/list.tcc (list::sort(Cmp)): Fix -Wsign-compare
562 warning for loop condition.
564 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
566 * include/std/complex: Add diagnostic pragma for clang.
568 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
570 * include/bits/shared_ptr_atomic.h (atomic): Change class-head
572 * include/bits/stl_tree.h (_Rb_tree_merge_helper): Change
573 class-head to struct in friend declaration.
574 * include/std/chrono (tzdb_list::_Node): Likewise.
575 * include/std/future (_Task_state_base, _Task_state): Likewise.
576 * include/std/scoped_allocator (__inner_type_impl): Likewise.
577 * include/std/valarray (_BinClos, _SClos, _GClos, _IClos)
578 (_ValFunClos, _RefFunClos): Change class-head to struct.
580 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
582 * include/bits/alloc_traits.h (allocate): Add [[maybe_unused]]
584 * include/bits/regex_executor.tcc: Remove name of unused
586 * include/bits/shared_ptr_atomic.h (atomic_is_lock_free):
588 * include/bits/stl_uninitialized.h: Likewise.
589 * include/bits/streambuf_iterator.h (operator==): Likewise.
590 * include/bits/uses_allocator.h: Likewise.
591 * include/c_global/cmath (isfinite, isinf, isnan): Likewise.
592 * include/std/chrono (zoned_time): Likewise.
593 * include/std/future (__future_base::_S_allocate_result):
595 (packaged_task): Likewise.
596 * include/std/optional (_Optional_payload_base): Likewise.
597 * include/std/scoped_allocator (__inner_type_impl): Likewise.
598 * include/std/tuple (_Tuple_impl): Likewise.
600 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
602 * include/bits/new_allocator.h (__new_allocator): Define copy
603 assignment operator as defaulted.
604 * include/std/complex (complex<float>, complex<double>)
605 (complex<long double>): Define copy constructor as defaulted.
607 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
609 * include/std/format: Fix some warnings.
610 (__format::__write(Ctx&, basic_string_view<CharT>)): Remove
611 unused function template.
613 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
616 * include/std/format (__formatter_fp::format): Do not use
617 __builtin_abs and __builtin_log10 with arbitrary floating-point
620 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
623 * include/std/format (__format::_Iter_sink<CharT, OutIter>):
624 Constrain partial specialization for contiguous iterators to
625 require the value type to be CharT.
626 * testsuite/std/format/functions/format_to.cc: New test.
628 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
631 * include/std/format (_Scanner::_M_on_replacement_field):
632 Check for expected '}' before incrementing iterator.
633 * testsuite/std/format/string.cc: Check "{0:{0}" format string.
635 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
637 * configure: Regenerate.
639 2023-08-07 Alan Modra <amodra@gmail.com>
641 * configure: Regenerate.
643 2023-08-07 Alexander von Gluck IV <kallisti5@unixzen.com>
645 * configure: Regenerate.
647 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
649 * configure: Regenerate.
651 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
653 * configure: Regenerate.
655 2023-08-07 H.J. Lu <hjl.tools@gmail.com>
657 * configure: Regenerate.
659 2023-08-07 H.J. Lu <hjl.tools@gmail.com>
661 * configure: Regenerate.
663 2023-08-06 François Dumont <fdumont@gcc.gnu.org>
665 * config/abi/pre/gnu-versioned-namespace.ver: Add __cxa_call_terminate
668 2023-07-30 François Dumont <fdumont@gcc.gnu.org>
670 * src/c++11/compatibility-ldbl-facets-aliases.h: Replace #define with
672 * src/c++11/locale-inst-monetary.h: Likewise.
673 * src/c++11/locale-inst-numeric.h: Likewise.
675 2023-07-27 Jonathan Wakely <jwakely@redhat.com>
678 * include/std/format (__formatter_fp::format): Ensure __expc is
679 always set for all presentation types. Set __z correctly for
681 * testsuite/std/format/functions/format.cc: Check problem cases.
683 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
686 * testsuite/23_containers/vector/bool/110807.cc: Require c++11.
688 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
691 * include/bits/stl_bvector.h (vector(const vector&)): Access
692 iterators before allocating.
693 * include/bits/vector.tcc (vector<bool>::_M_insert_range):
695 * testsuite/23_containers/vector/bool/110807.cc: New test.
697 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
699 * include/bits/algorithmfwd.h (random_shuffle): Add deprecated
701 * include/bits/stl_algo.h (random_shuffle): Correct comments.
702 * testsuite/25_algorithms/random_shuffle/1.cc: Disable
704 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
705 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
706 * testsuite/25_algorithms/random_shuffle/deprecated.cc: New
709 2023-07-26 Nathaniel Shead <nathanieloshead@gmail.com>
711 * testsuite/25_algorithms/equal/constexpr_neg.cc: Update diagnostic
713 * testsuite/26_numerics/gcd/105844.cc: Likewise.
714 * testsuite/26_numerics/lcm/105844.cc: Likewise.
716 2023-07-24 Deev Patel <pateldeev@nevada.unr.edu>
718 * include/std/format (_Formatting_scanner::_M_on_chars): Add
719 missing constexpr specifier.
720 (_Formatting_scanner::_M_format_arg): Likewise.
722 2023-07-24 Jonathan Wakely <jwakely@redhat.com>
725 * include/bits/basic_string.h [!HAVE_STOF] (stof): Do not
726 throw an exception for zero result.
727 [HAVE_BROKEN_STRTOLD] (stold): Do not use strtold.
729 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
732 * src/c++17/floating_from_chars.cc (from_chars): Only define
733 _Float128 overload when using __strfromf128.
735 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
738 * include/bits/chrono.h (duration): Improve static assert
740 (__is_ratio): Move to ...
741 * include/std/ratio (__is_ratio): ... here.
742 (__is_ratio_v): New variable template and partial
744 (__are_both_ratios): New function template.
745 (__ratio_multiply, ratio_equal, ratio_less, __ratio_add):
746 Add static assertion.
747 * testsuite/20_util/ratio/requirements/type_constraints.cc:
749 * testsuite/20_util/duration/requirements/typedefs_neg1.cc:
750 Adjust expected error.
751 * testsuite/20_util/duration/requirements/typedefs_neg2.cc:
754 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
756 * include/bits/chrono_io.h (__formatter_chrono::_M_format):
757 Do not set __is_neg for hh_mm_ss before calling
758 _M_format_to_ostream. Change __print_sign lambda to only check
759 __is_neg for durations and hh_mm_ss types.
760 (__formatter_chrono::_M_format_to_ostream): Only check __is_neg
762 * testsuite/std/time/hh_mm_ss/io.cc: Check negative values.
764 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
767 * include/bits/chrono_io.h (__formatter_chrono::_S_floor_seconds):
768 Handle duration and hh_mm_ss.
769 * testsuite/20_util/duration/io.cc: Check locale-specific
771 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
773 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
775 * include/std/format (__write_padded): Initialize first element
776 of array to avoid a -Wmaybe-uninitialized warning.
778 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
781 * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Fix
782 allowed modifiers for %z and %Z. Fix -Wparentheses and
783 -Wnarrowing warnings.
784 (__formatter_chrono::_M_format): Call new functions for %d, %e,
786 (__formatter_chrono::_M_c): Use _S_floor_seconds to remove
788 (__formatter_chrono::_M_C_y_Y): Use _M_locale_fmt to handle
790 (__formatter_chrono::_M_e): Replace with _M_d_e and use
792 (__formatter_chrono::_M_I): Replace with _M_H_I and use
794 (__formatter_chrono::_M_m): New function.
795 (__formatter_chrono::_M_M): New function.
796 (__formatter_chrono::_M_r): Use _M_locale_fmt.
797 (__formatter_chrono::_M_S): Likewise.
798 (__formatter_chrono::_M_u_w): Likewise.
799 (__formatter_chrono::_M_U_V_W): Likewise.
800 (__formatter_chrono::_M_X): Use _S_floor_seconds.
801 (__formatter_chrono::_M_Z): Fix untested branch for wchar_t.
802 (__formatter_chrono::_S_altnum): Remove function.
803 (__formatter_chrono::_S_dd_zero_fill): Remove function.
804 (__formatter_chrono::_S_floor_seconds): New function.
805 (__formatter_chrono::_M_locale_fmt): New function.
806 * testsuite/std/time/clock/system/io.cc: Adjust expected output
807 for locale-specific formats and check modified formats.
808 * testsuite/std/time/clock/utc/io.cc: Likewise.
809 * testsuite/std/time/zoned_time/io.cc: New test.
811 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
814 * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Only
815 allow a single modifier.
816 * testsuite/std/time/format.cc: Check multiple modifiers.
818 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
821 * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
822 Remove dg-require-string-conversions.
823 * testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
825 * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
827 * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
829 * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
832 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
835 * include/bits/basic_string.h [!_GLIBCXX_HAVE_STRTOF] (stof):
836 Define in terms of std::stod.
838 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
841 * include/bits/basic_string.h [_GLIBCXX_HAVE_STRTOF] (stof):
843 [_GLIBCXX_HAVE_STRTOLD] (stold): Define.
844 * include/c_global/cstdlib [_GLIBCXX_HAVE_STRTOF] (strtof):
845 Declare in namespace std.
846 [_GLIBCXX_HAVE_STRTOLD] (strtold): Likewise.
848 2023-07-13 Jonathan Wakely <jwakely@redhat.com>
851 * include/bits/basic_string.h (stoi, stol, stoul, stod): Do not
852 depend on _GLIBCXX_USE_C99_STDLIB.
853 [__LONG_WIDTH__ == __LONG_LONG_WIDTH__] (stoll, stoull): Define
854 in terms of stol and stoul respectively.
855 [__DBL_MANT_DIG__ == __LDBL_MANT_DIG__] (stold): Define in terms
858 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
861 * testsuite/27_io/filesystem/path/construct/95048.cc: Check
862 conversions to wide strings.
863 * testsuite/experimental/filesystem/path/construct/95048.cc:
866 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
868 * config/io/basic_file_stdio.cc: Define LFS macros.
869 (__basic_file<char>::open): Use fopen unconditionally.
870 (get_file_offset): Use lseek unconditionally.
871 (__basic_file<char>::seekoff): Likewise.
872 (__basic_file<char>::showmanyc): Use fstat unconditionally.
874 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
877 * acinclude.m4 (GLIBCXX_CHECK_LFS): Check for fseeko and ftello
878 and define _GLIBCXX_USE_FSEEKO_FTELLO.
879 * config.h.in: Regenerate.
880 * configure: Regenerate.
881 * config/io/basic_file_stdio.cc (xwrite) [_GLIBCXX_USE_STDIO_PURE]:
882 Check for fwrite error correctly.
883 (__basic_file<char>::xsgetn) [_GLIBCXX_USE_STDIO_PURE]: Check for
884 fread error correctly.
885 (get_file_offset): New function.
886 (__basic_file<char>::seekoff) [_GLIBCXX_USE_STDIO_PURE]: Use
887 fseeko if available. Use get_file_offset instead of return value
889 (__basic_file<char>::showmanyc): Use get_file_offset.
891 2023-07-12 Ken Matsui <kmatsui@gcc.gnu.org>
893 * include/std/type_traits (__make_unsigned_selector): Use
894 __is_enum built-in trait.
895 (__make_signed_selector): Likewise.
896 (__underlying_type_impl): Likewise.
898 2023-07-06 Tianqiang Shuai <1101282468@qq.com>
900 * config/io/basic_file_stdio.cc (xwrite) [USE_STDIO_PURE]: Fix
903 2023-07-06 Jonathan Wakely <jwakely@redhat.com>
906 * doc/xml/manual/configure.xml: Describe stdio_pure argument to
908 * doc/html/manual/configure.html: Regenerate.
910 2023-07-05 Thomas Rodgers <trodgers@redhat.com>
912 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Delete
914 * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
916 * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
918 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
920 * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
922 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
925 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
927 * testsuite/23_containers/forward_list/debug/iterator1_neg.cc:
928 Skip as UNSUPPORTED for C++98 mode.
929 * testsuite/23_containers/forward_list/debug/iterator3_neg.cc:
932 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
935 * include/bits/stl_uninitialized.h (__uninitialized_default_n):
936 Do not use std::fill_n during constant evaluation.
938 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
940 * include/bits/vector.tcc (_M_default_append): Replace try-block
943 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
945 * include/bits/iterator_concepts.h (projected): Add typename.
947 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
949 * testsuite/27_io/headers/iosfwd/synopsis.cc: Make wsyncbuf and
950 wosyncstream depend on _GLIBCXX_USE_CXX11_ABI.
952 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
954 * include/pstl/pstl_config.h (_PSTL_PRAGMA_SIMD_SCAN,
955 _PSTL_PRAGMA_SIMD_INCLUSIVE_SCAN, _PSTL_PRAGMA_SIMD_EXCLUSIVE_SCAN):
956 Define to OpenMP 5.0 pragmas even for GCC 10.0+.
957 (_PSTL_UDS_PRESENT): Define to 1 for GCC 10.0+.
959 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
961 * include/bits/alloc_traits.h (_Destroy): Qualify call.
962 * include/bits/stl_construct.h (_Destroy, _Destroy_n): Likewise.
963 * testsuite/23_containers/vector/cons/destroy-adl.cc: New test.
965 2023-07-03 Iain Sandoe <iain@sandoe.co.uk>
967 * testsuite/lib/libstdc++.exp: Remove additional flag handled
970 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
973 * acinclude.m4 (GLIBCXX_CHECK_INIT_PRIORITY): New.
974 * config.h.in: Regenerate.
975 * configure: Regenerate.
976 * configure.ac: Use GLIBCXX_CHECK_INIT_PRIORITY.
977 * include/std/iostream: Use new autoconf macro as well as
979 * src/c++98/ios_base_init.h: Use new autoconf macro instead of
982 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
984 * src/c++11/random.cc (random_device::_M_init): Add maybe_unused
987 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
990 * src/c++11/random.cc (random_device::_M_init): Throw
991 std::system_error when the requested device is a valid token but
992 not available at runtime.
994 2023-06-30 Hans-Peter Nilsson <hp@axis.com>
997 * include/pstl/unseq_backend_simd.h (__simd_or): Re-apply using
998 __INT32_TYPE__ instead of int32_t.
1000 2023-06-29 Jonathan Wakely <jwakely@redhat.com>
1002 * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define consistently
1003 with USE_ATOMIC_LIST_HEAD.
1004 (list_mutex): Replace global object with function. Use local
1005 static object when std::mutex constructor isn't constexpr.
1007 2023-06-29 Jonathan Wakely <jwakely@redhat.com>
1010 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check that
1011 copy_file_range can be called with loff_t* arguments.
1012 * configure: Regenerate.
1013 * src/filesystem/ops-common.h (copy_file_copy_file_range):
1014 Use loff_t for offsets.
1016 2023-06-29 Tom Tromey <tromey@adacore.com>
1018 * testsuite/lib/gdb-test.exp (gdb-test): Relax type-printer
1021 2023-06-28 Jan Hubicka <jh@suse.cz>
1023 PR middle-end/109849
1024 * include/bits/c++config (std::__terminate): Mark cold.
1025 * include/bits/functexcept.h: Mark everything as cold.
1026 * libsupc++/exception: Mark terminate and unexpected as cold.
1028 2023-06-26 Thomas Rodgers <trodgers@redhat.com>
1030 * include/pstl/algorithm_fwd.h: Synchronize with upstream.
1031 * include/pstl/algorithm_impl.h: Likewise.
1032 * include/pstl/execution_defs.h: Likewise.
1033 * include/pstl/execution_impl.h: Likewise.
1034 * include/pstl/glue_algorithm_impl.h: Likewise.
1035 * include/pstl/glue_execution_defs.h: Likewise.
1036 * include/pstl/glue_memory_impl.h: Likewise.
1037 * include/pstl/glue_numeric_impl.h: Likewise.
1038 * include/pstl/memory_impl.h: Likewise.
1039 * include/pstl/numeric_fwd.h: Likewise.
1040 * include/pstl/numeric_impl.h: Likewise.
1041 * include/pstl/parallel_backend.h: Likewise.
1042 * include/pstl/parallel_backend_serial.h: Likewise.
1043 * include/pstl/parallel_backend_tbb.h: Likewise.
1044 * include/pstl/parallel_impl.h: Likewise.
1045 * include/pstl/pstl_config.h: Likewise.
1046 * include/pstl/unseq_backend_simd.h: Likewise.
1047 * include/pstl/utils.h: Likewise.
1048 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
1050 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
1052 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
1054 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
1056 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
1057 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
1059 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
1061 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
1063 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
1065 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
1067 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
1069 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
1071 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
1073 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
1075 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
1077 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
1079 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
1081 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
1083 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
1085 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
1087 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
1089 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
1091 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
1093 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
1095 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
1097 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
1099 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
1101 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
1103 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
1105 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
1107 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
1109 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
1111 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
1113 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
1115 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
1117 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
1119 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
1121 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
1123 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
1125 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
1127 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc:
1129 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
1131 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
1133 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
1135 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
1137 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
1139 * testsuite/25_algorithms/pstl/alg_sorting/set.cc:
1141 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc:
1143 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
1145 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc:
1147 * testsuite/26_numerics/pstl/numeric_ops/scan.cc:
1149 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
1151 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
1153 * testsuite/util/pstl/test_utils.h:
1156 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
1159 * include/std/format (__format::__parse_integer): Fix buffer
1160 overflow for wide chars.
1161 (formatter<const void*, C>::format): Cast to uintptr_t instead
1163 * testsuite/std/format/string.cc: Test too-large widths.
1165 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
1167 * include/bits/iterator_concepts.h (projected): Replace class
1168 template with alias template denoting an ADL-proofed helper.
1169 (incremental_traits<projected<Iter, Proj>>): Remove.
1170 * testsuite/24_iterators/indirect_callable/projected-adl.cc:
1173 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
1175 * include/debug/helper_functions.h (__get_distance)
1176 (__check_singular, __valid_range_aux, __valid_range): Qualify
1177 calls to disable ADL.
1178 (__check_singular_aux(const _Safe_iterator_base*)): Declare
1179 overload that was previously found via ADL.
1181 2023-06-23 Jonathan Wakely <jwakely@redhat.com>
1183 * include/bits/vector.tcc (_M_realloc_insert): Replace try-block
1186 2023-06-20 Jonathan Wakely <jwakely@redhat.com>
1188 * include/std/array (to_array(T(&)[N])): Remove redundant
1190 (to_array(T(&&)[N])): Remove redundant std::move.
1192 2023-06-16 Alexandre Oliva <oliva@adacore.com>
1194 * testsuite/20_util/from_chars/4.cc: Skip long double on
1197 2023-06-16 Joel Brobecker <brobecker@adacore.com>
1199 * configure.ac ["x${with_newlib}" = "xyes"]: Define
1200 HAVE_HYPOTF. Add compile-checks for various long double
1201 math functions as well.
1202 * configure: Regenerate.
1204 2023-06-14 Jonny Grant <jg@jguk.org>
1206 * doc/xml/manual/extensions.xml: Remove demangle exception
1207 description and include.
1208 * doc/html/manual/ext_demangling.html: Regenerate.
1210 2023-06-10 Hans-Peter Nilsson <hp@axis.com>
1212 * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc (main)
1213 [! SIMULATOR_TEST]: Also exclude running test05.
1214 * testsuite/27_io/basic_istream/ignore/char/94749.cc: Ditto.
1216 2023-06-09 Ken Matsui <kmatsui@cs.washington.edu>
1218 * include/std/type_traits: Use using instead of typedef
1220 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1223 * src/c++17/floating_from_chars.cc (from_chars) <_Float128>:
1224 Only define if _Float128 and long double have different
1227 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1230 * include/experimental/internet [IPPROTO_TCP || IPPROTO_UDP]
1231 (basic_endpoint, basic_resolver_entry, resolver_base)
1232 (basic_resolver_results, basic_resolver): Only define if the tcp
1233 or udp protocols will be defined.
1235 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1237 * acinclude.m4 (libtool_VERSION): Update to 6.0.33.
1238 * configure: Regenerate.
1239 * doc/xml/manual/abi.xml: Add libstdc++.so.6.0.33.
1240 * doc/html/manual/abi.html: Regenerate.
1242 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1245 * include/std/format (formatter<const void*, charT>::parse):
1246 Only alow 0 and P for C++26 and non-strict modes.
1247 (formatter<const void*, charT>::format): Use toupper for P
1248 type, and insert zero-fill characters for 0 option.
1249 * testsuite/std/format/functions/format.cc: Check pointer
1250 formatting. Only check P2510R3 extensions conditionally.
1251 * testsuite/std/format/parse_ctx.cc: Only check P2510R3
1252 extensions conditionally.
1254 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1257 * include/std/array (to_array): Initialize arrays of trivial
1258 types using memcpy. For non-trivial types, use lambda
1259 expressions instead of a separate helper function.
1260 (__to_array): Remove.
1261 * testsuite/23_containers/array/creation/110167.cc: New test.
1263 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1265 * testsuite/23_containers/deque/modifiers/emplace/52799.cc:
1267 * testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc:
1269 * testsuite/23_containers/list/modifiers/emplace/52799.cc:
1271 * testsuite/23_containers/list/modifiers/emplace/const_iterator.cc:
1273 * testsuite/23_containers/vector/modifiers/emplace/52799.cc:
1275 * testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc:
1277 * testsuite/23_containers/deque/modifiers/emplace/1.cc: New
1279 * testsuite/23_containers/list/modifiers/emplace/1.cc: New
1281 * testsuite/23_containers/vector/modifiers/emplace/1.cc: New
1284 2023-06-07 Jakub Jelinek <jakub@redhat.com>
1287 * testsuite/20_util/to_chars/double.cc: Include <cfloat>.
1288 (double_to_chars_test_cases,
1289 double_scientific_precision_to_chars_test_cases_2,
1290 double_fixed_precision_to_chars_test_cases_2): #if out 1e126, 4.91e-6
1291 and 5.547e-6 tests if FLT_EVAL_METHOD is negative or larger than 1.
1292 Add unconditional tests with corresponding double constants
1293 0x1.7a2ecc414a03fp+418, 0x1.4981285e98e79p-18 and
1294 0x1.7440bbff418b9p-18.
1296 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
1298 * testsuite/util/testsuite_abi.cc (check_version): Re-add
1301 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
1303 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
1304 Require effective target exceptions_enabled instead of using
1306 * testsuite/23_containers/vector/capacity/constexpr.cc: Expect
1307 shrink_to_fit() to be a no-op without exceptions enabled.
1308 * testsuite/23_containers/vector/capacity/shrink_to_fit.cc:
1310 * testsuite/ext/bitmap_allocator/check_allocate_max_size.cc:
1311 Require effective target exceptions_enabled.
1312 * testsuite/ext/malloc_allocator/check_allocate_max_size.cc:
1314 * testsuite/ext/mt_allocator/check_allocate_max_size.cc:
1316 * testsuite/ext/new_allocator/check_allocate_max_size.cc:
1318 * testsuite/ext/pool_allocator/check_allocate_max_size.cc:
1320 * testsuite/ext/throw_allocator/check_allocate_max_size.cc:
1323 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
1325 * testsuite/20_util/duration/cons/2.cc: Use values that aren't
1326 affected by rounding.
1327 * testsuite/20_util/from_chars/5.cc: Cast arithmetic result to
1328 double before comparing for equality.
1329 * testsuite/20_util/from_chars/6.cc: Likewise.
1330 * testsuite/20_util/variant/86874.cc: Use values that aren't
1331 affected by rounding.
1332 * testsuite/25_algorithms/lower_bound/partitioned.cc: Compare to
1333 original value instead of to floating-point-literal.
1334 * testsuite/26_numerics/random/discrete_distribution/cons/range.cc:
1335 Cast arithmetic result to double before comparing for equality.
1336 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc:
1338 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc:
1340 * testsuite/26_numerics/valarray/transcend.cc (eq): Check that
1341 the absolute difference is less than 0.01 instead of comparing
1342 to two decimal places.
1343 * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
1344 Cast arithmetic result to double before comparing for equality.
1345 * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
1347 * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
1349 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc:
1351 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc:
1353 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc:
1355 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
1357 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
1360 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1362 * configure.ac: Use AS_IF.
1363 * configure: Regenerate.
1365 2023-06-07 Thomas Schwinge <thomas@codesourcery.com>
1367 * testsuite/lib/prune.exp (libstdc++-dg-prune): Support
1368 'UNSUPPORTED: [...]: exception handling disabled'.
1370 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1372 * testsuite/util/testsuite_abi.cc (check_version): Add
1373 CXXABI_1.3.15 symver and make it the latestp. Remove
1374 GLIBCXX_IEEE128_3.4.31 and GLIBCXX_LDBL_3.4.31 from latestp.
1376 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1377 Jakub Jelinek <jakub@redhat.com>
1380 * include/std/limits: (numeric_limits<__float128>): Define
1381 for __STRICT_ANSI__ as well.
1382 * testsuite/18_support/numeric_limits/128bit.cc: Remove
1383 check for __STRICT_ANSI__.
1385 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1387 * configure.ac: Use AS_IF.
1388 * configure: Regenerate.
1390 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
1393 * include/experimental/bits/simd_builtin.h (_S_store): Rewrite
1394 to avoid casts to other vector types. Implement store as
1395 succession of power-of-2 sized memcpy to avoid PR90424.
1397 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
1400 * include/experimental/bits/simd_builtin.h (_S_masked_store):
1401 Call into deduced ABI's SimdImpl after conversion.
1402 * include/experimental/bits/simd_x86.h (_S_masked_store_nocvt):
1403 Don't use _mm_maskmoveu_si128. Use the generic fall-back
1404 implementation. Also fix masked stores without SSE2, which
1405 were not doing anything before.
1407 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
1409 * include/experimental/bits/simd.h (__bit_cast): Use
1410 __gnu__::__vector_size__ instead of gnu::vector_size.
1412 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1415 * include/std/array (__array_traits<T, 0>::operator T*()): Make
1416 conversion operator explicit.
1417 (array::front): Use size_type as subscript operand.
1418 (array::data): Use static_cast to make conversion explicit.
1419 * testsuite/23_containers/array/element_access/110139.cc: New
1422 2023-06-06 Joseph Faulls <Joseph.Faulls@imgtec.com>
1424 * include/bits/locale_classes.tcc: Remove check for
1425 codecvt<char8_t, char, mbstate_t> facet.
1427 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1429 * src/filesystem/ops-common.h (do_copy_file) [O_CLOEXEC]: Set
1430 close-on-exec flag on file descriptors.
1432 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1435 * src/filesystem/ops-common.h (do_copy_file): Check for empty
1436 files by trying to read a character.
1437 * testsuite/27_io/filesystem/operations/copy_file_108178.cc:
1440 2023-06-06 Jannik Glückert <jannik.glueckert@gmail.com>
1442 * acinclude.m4 (_GLIBCXX_USE_COPY_FILE_RANGE): Define.
1443 * config.h.in: Regenerate.
1444 * configure: Regenerate.
1445 * src/filesystem/ops-common.h (copy_file_copy_file_range):
1446 Define new function.
1447 (do_copy_file): Use it.
1449 2023-06-06 Jannik Glückert <jannik.glueckert@gmail.com>
1451 * acinclude.m4 (_GLIBCXX_HAVE_LSEEK): Define.
1452 * config.h.in: Regenerate.
1453 * configure: Regenerate.
1454 * src/filesystem/ops-common.h (copy_file_sendfile): Define new
1455 function for sendfile logic. Loop to support large files. Skip
1457 (do_copy_file): Use it.
1459 2023-06-04 Jason Merrill <jason@redhat.com>
1462 * libsupc++/eh_call.cc (__cxa_call_terminate): Take void*.
1463 * config/abi/pre/gnu.ver: Add it.
1465 2023-06-02 François Dumont <fdumont@gcc.gnu.org>
1467 * include/parallel/algobase.h: Include <parallel/search.h>.
1469 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
1471 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
1472 Add const to equality operator.
1474 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
1476 * include/std/expected (expected::and_then, expected::or_else)
1477 (expected::transform_error): Use _M_val and _M_unex instead of
1478 calling value() and error(), as per LWG 3938.
1479 (expected::transform): Likewise. Remove incorrect std::move
1480 calls from lvalue overloads.
1481 (expected<void, E>::and_then, expected<void, E>::or_else)
1482 (expected<void, E>::transform): Use _M_unex instead of calling
1484 * testsuite/20_util/expected/lwg3877.cc: Add checks for and_then
1485 and transform, and for std::expected<void, E>.
1486 * testsuite/20_util/expected/lwg3938.cc: New test.
1488 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
1491 * include/bits/stl_vector.h (_Vector_base::_M_invariant):
1493 (vector::size, vector::capacity): Remove calls to _M_invariant.
1494 * include/bits/vector.tcc (vector::_M_fill_assign): Add
1495 optimization hint to reallocating path.
1496 (vector::_M_assign_aux(FwdIter, FwdIter, forward_iterator_tag)):
1498 * testsuite/23_containers/vector/capacity/invariant.cc: Moved
1500 * testsuite/23_containers/vector/modifiers/assign/no_realloc.cc:
1501 ...here. Check assign(FwdIter, FwdIter) too.
1502 * testsuite/23_containers/vector/types/1.cc: Revert addition
1503 of -Wno-stringop-overread option.
1505 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
1507 * doc/xml/manual/evolution.xml: Document removal of implicit
1508 allocator rebinding extensions in strict mode and for C++20.
1509 * doc/html/*: Regenerate.
1511 2023-06-01 Jason Merrill <jason@redhat.com>
1513 * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Don't check
1514 handlers in the cleanup phase.
1516 2023-06-01 Matthias Kretz <m.kretz@gsi.de>
1519 * include/experimental/bits/simd.h (__vectorized_sizeof): With
1520 __have_neon_a32 only single-precision float works (in addition
1523 2023-06-01 François Dumont <fdumont@gcc.gnu.org>
1525 * include/bits/stl_algo.h
1526 (std::__search, std::search(_FwdIt1, _FwdIt1, _FwdIt2, _FwdIt2, _BinPred)): Move...
1527 * include/bits/stl_algobase.h: ...here.
1528 * include/std/functional: Replace <stl_algo.h> include by <stl_algobase.h>.
1529 * include/parallel/algo.h (std::__parallel::search<_FIt1, _FIt2, _BinaryPred>)
1530 (std::__parallel::__search_switch<_FIt1, _FIt2, _BinaryPred, _ItTag1, _ItTag2>):
1532 * include/parallel/algobase.h: ...here.
1533 * include/experimental/functional: Remove <bits/stl_algo.h> and <parallel/algorithm>
1534 includes. Include <bits/stl_algobase.h>.
1536 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1539 * acinclude.m4 (GLIBCXX_ENABLE_C99): Add separate check for
1540 float_t and double_t and define HAVE_C99_FLT_EVAL_TYPES.
1541 * config.h.in: Regenerate.
1542 * configure: Regenerate.
1543 * include/c_global/cmath (float_t, double_t): Guard using new
1544 _GLIBCXX_HAVE_C99_FLT_EVAL_TYPES macro.
1546 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1548 * acinclude.m4 (GLIBCXX_ENABLE_C99): Add checks for C99 math
1549 functions and define _GLIBCXX_USE_C99_MATH_FUNCS. Move checks
1550 for C99 rounding functions to here.
1551 (GLIBCXX_CHECK_C99_TR1): Remove checks for C99 rounding
1552 functions from here.
1553 * config.h.in: Regenerate.
1554 * configure: Regenerate.
1555 * include/bits/random.h: Use _GLIBCXX_USE_C99_MATH_FUNCS instead
1556 of _GLIBCXX_USE_C99_MATH_TR1.
1557 * include/bits/random.tcc: Likewise.
1558 * include/c_compatibility/math.h: Likewise.
1559 * include/c_global/cmath: Likewise.
1560 * include/ext/random: Likewise.
1561 * include/ext/random.tcc: Likewise.
1562 * include/std/complex: Likewise.
1563 * testsuite/20_util/from_chars/4.cc: Likewise.
1564 * testsuite/20_util/from_chars/8.cc: Likewise.
1565 * testsuite/26_numerics/complex/proj.cc: Likewise.
1566 * testsuite/26_numerics/headers/cmath/60401.cc: Likewise.
1567 * testsuite/26_numerics/headers/cmath/types_std_c++0x.cc:
1569 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
1571 * testsuite/util/testsuite_random.h: Likewise.
1573 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1575 * include/bits/stl_vector.h (_Vector_base::_M_invariant()): New
1577 (vector::size(), vector::capacity()): Call _M_invariant().
1578 * testsuite/23_containers/vector/capacity/invariant.cc: New test.
1579 * testsuite/23_containers/vector/types/1.cc: Add suppression for
1580 false positive warning (PR110060).
1582 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1585 * src/c++17/floating_from_chars.cc: Check __FLT128_MANT_DIG__ is
1586 defined before trying to use _Float128.
1588 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1590 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Fix for 32-bit pointers
1591 to check __INT_PTR_WIDTH__ instead of sizeof(void*).
1592 * configure: Regenerate.
1594 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1596 * include/bits/unique_lock.h: Include <bits/error_constants.h>
1597 here for std::errc constants.
1598 * include/std/mutex: Do not include <bits/error_constants.h> and
1601 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1603 * configure.ac: Replace use of -o operator for test.
1604 * configure: Regenerate.
1606 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1608 * include/std/scoped_allocator (scoped_allocator_adaptor): Add
1609 noexcept to all constructors except the default constructor.
1610 (scoped_allocator_adaptor::inner_allocator): Add noexcept.
1611 (scoped_allocator_adaptor::outer_allocator): Likewise.
1612 * testsuite/20_util/scoped_allocator/noexcept.cc: New test.
1614 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1617 * include/std/limits (numeric_limits<__float128>): Define.
1618 * testsuite/18_support/numeric_limits/128bit.cc: New test.
1620 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1622 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Extend logic for avr and
1623 msp430 to all 16-bit targets.
1624 * configure: Regenerate.
1626 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1629 * src/c++17/floating_from_chars.cc (USE_STRTOF128_FOR_FROM_CHARS):
1630 Only define when USE_STRTOD_FOR_FROM_CHARS is also defined.
1631 (USE_STRTOD_FOR_FROM_CHARS): Do not undefine when long double is
1633 (from_chars(const char*, const char*, double&, chars_format)):
1634 Check __LDBL_MANT_DIG__ == __DBL_MANT_DIG__ here.
1635 (from_chars(const char*, const char*, _Float128&, chars_format))
1636 Only use from_chars_strtod when USE_STRTOD_FOR_FROM_CHARS is
1637 defined, otherwise parse a long double and convert to _Float128.
1639 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1642 * include/std/iomanip (operator>>(basic_istream&, _Setfill)):
1643 Add deprecated attribute to non-standard overload.
1644 * doc/xml/manual/evolution.xml: Document deprecation.
1645 * doc/html/*: Regenerate.
1646 * testsuite/27_io/manipulators/standard/char/1.cc: Add
1647 dg-warning for expected deprecated warning.
1648 * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
1649 * testsuite/27_io/manipulators/standard/wchar_t/1.cc: Likewise.
1650 * testsuite/27_io/manipulators/standard/wchar_t/2.cc: Likewise.
1652 2023-05-30 Alexandre Oliva <oliva@adacore.com>
1654 * testsuite/20_util/from_chars/4.cc: Skip long double test06
1656 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
1659 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
1662 * include/experimental/bits/simd.h (to_native): Use int NTTP
1663 as specified in PTS2.
1664 (to_compatible): Likewise. Add missing tag to call mask
1666 * testsuite/experimental/simd/pr109822_cast_functions.cc: New
1669 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
1671 * testsuite/experimental/simd/tests/integer_operators.cc:
1672 Compute expected value differently to avoid getting turned into
1675 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
1677 * testsuite/experimental/simd/tests/operator_cvt.cc: Make long
1678 double <-> (u)long conversion tests conditional on sizeof(long
1679 double) and sizeof(long).
1681 2023-05-26 Matthias Kretz <m.kretz@gsi.de>
1683 * include/experimental/bits/simd_ppc.h (_S_bit_shift_left):
1684 Negative __y is UB, so prefer signed compare.
1686 2023-05-25 Jonathan Wakely <jwakely@redhat.com>
1688 * testsuite/util/testsuite_allocator.h (PointerBase): Add
1689 relational operators.
1691 2023-05-25 Alexandre Oliva <oliva@adacore.com>
1693 * testsuite/20_util/to_chars/long_double.cc: Expect execution
1694 fail on x86-vxworks.
1696 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
1699 * include/experimental/bits/simd.h (__intrinsic_type): If
1700 __ALTIVEC__ is defined, map gnu::vector_size types to their
1701 corresponding __vector T types without losing unsignedness of
1702 integer types. Also prefer long long over long.
1703 * include/experimental/bits/simd_ppc.h (_S_popcount): Cast mask
1704 object to the expected unsigned vector type.
1706 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
1709 * include/experimental/bits/simd.h (__intrinsic_type):
1710 Specialize __intrinsic_type<double, 8> and
1711 __intrinsic_type<double, 16> in any case, but provide the member
1712 type only with __aarch64__.
1714 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
1717 * include/experimental/bits/simd_neon.h (_S_reduce): Add
1718 constexpr and make NEON implementation conditional on
1719 not __builtin_is_constant_evaluated.
1721 2023-05-23 Matthias Kretz <m.kretz@gsi.de>
1724 * include/experimental/bits/simd.h (_SimdWrapper::_M_set):
1725 Avoid vector builtin subscripting in constant expressions.
1726 (resizing_simd_cast): Avoid memcpy if constant_evaluated.
1727 (const_where_expression, where_expression, where)
1728 (__extract_part, simd_mask, _SimdIntOperators, simd): Add either
1729 _GLIBCXX_SIMD_CONSTEXPR (on public APIs), or constexpr (on
1731 * include/experimental/bits/simd_builtin.h (__vector_permute)
1732 (__vector_shuffle, __extract_part, _GnuTraits::_SimdCastType1)
1733 (_GnuTraits::_SimdCastType2, _SimdImplBuiltin)
1734 (_MaskImplBuiltin::_S_store): Add constexpr.
1735 (_CommonImplBuiltin::_S_store_bool_array)
1736 (_SimdImplBuiltin::_S_load, _SimdImplBuiltin::_S_store)
1737 (_SimdImplBuiltin::_S_reduce, _MaskImplBuiltin::_S_load): Add
1738 constant_evaluated case.
1739 * include/experimental/bits/simd_fixed_size.h
1740 (_S_masked_load): Reword comment.
1741 (__tuple_element_meta, __make_meta, _SimdTuple::_M_apply_r)
1742 (_SimdTuple::_M_subscript_read, _SimdTuple::_M_subscript_write)
1743 (__make_simd_tuple, __optimize_simd_tuple, __extract_part)
1744 (__autocvt_to_simd, _Fixed::__traits::_SimdBase)
1745 (_Fixed::__traits::_SimdCastType, _SimdImplFixedSize): Add
1747 (_SimdTuple::operator[], _M_set): Add constexpr and add
1748 constant_evaluated case.
1749 (_MaskImplFixedSize::_S_load): Add constant_evaluated case.
1750 * include/experimental/bits/simd_scalar.h: Add constexpr.
1751 * include/experimental/bits/simd_x86.h (_CommonImplX86): Add
1752 constexpr and add constant_evaluated case.
1753 (_SimdImplX86::_S_equal_to, _S_not_equal_to, _S_less)
1754 (_S_less_equal): Value-initialize to satisfy constexpr
1756 (_MaskImplX86::_S_load): Add constant_evaluated case.
1757 (_MaskImplX86::_S_store): Add constexpr and constant_evaluated
1758 case. Value-initialize local variables.
1759 (_MaskImplX86::_S_logical_and, _S_logical_or, _S_bit_not)
1760 (_S_bit_and, _S_bit_or, _S_bit_xor): Add constant_evaluated
1762 * testsuite/experimental/simd/pr109261_constexpr_simd.cc: New
1765 2023-05-22 Matthias Kretz <m.kretz@gsi.de>
1767 * include/experimental/bits/simd_builtin.h (_S_fpclassify): Move
1768 __infn into #ifdef'ed block.
1769 * testsuite/experimental/simd/tests/fpclassify.cc: Declare
1770 constants only when used.
1771 * testsuite/experimental/simd/tests/frexp.cc: Likewise.
1772 * testsuite/experimental/simd/tests/logarithm.cc: Likewise.
1773 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc:
1775 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
1776 Move totest and expect1 into #ifdef'ed block.
1778 2023-05-19 Gerald Pfeifer <gerald@pfeifer.com>
1780 * doc/xml/manual/strings.xml: Move lafstern.org reference to https.
1781 * doc/html/manual/strings.html: Regenerate.
1783 2023-05-17 Jakub Jelinek <jakub@redhat.com>
1786 * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc: New test.
1788 2023-05-17 Jakub Jelinek <jakub@redhat.com>
1791 * include/c_global/cmath (atan2, fmod, pow): Move
1792 __gnu_cxx::__promote_2 using templates after _Float{16,32,64,128} and
1793 __gnu_cxx::__bfloat16_t overloads.
1794 (copysign, fdim, fmax, fmin, hypot, nextafter, remainder, remquo):
1796 (fma): Move __gnu_cxx::__promote_3 using template after
1797 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads.
1799 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
1801 * testsuite/18_support/headers/limits/synopsis.cc: Uncomment
1802 checks for float_round_style and float_denorm_style.
1804 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
1806 * include/bits/c++config: Add system_header pragma.
1808 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
1810 * include/std/expected (expected::and_then, expected::or_else)
1811 (expected::transform, expected::transform_error): Fix exception
1812 specifications as per LWG 3877.
1813 (expected<void, E>::and_then, expected<void, E>::transform):
1815 * testsuite/20_util/expected/lwg3877.cc: New test.
1817 2023-05-17 Ken Matsui <kmatsui@cs.washington.edu>
1819 * include/std/type_traits: Use __bool_constant instead of
1822 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
1824 * configure: Regenerate.
1826 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
1829 * acinclude.m4 (GLIBCXX_CHECK_ALIGNAS_CACHELINE): Define.
1830 * config.h.in: Regenerate.
1831 * configure: Regenerate.
1832 * configure.ac: Use GLIBCXX_CHECK_ALIGNAS_CACHELINE.
1833 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex): Do not
1834 align lock table if not supported. use __GCC_DESTRUCTIVE_SIZE
1835 instead of hardcoded 64.
1837 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
1839 * acinclude.m4 (GLIBCXX_USE_C99): Check for isblank in C++11
1840 mode and define _GLIBCXX_USE_C99_CTYPE. Check for <fenv.h>
1841 functions in C++11 mode and define _GLIBCXX_USE_C99_FENV.
1842 * config.h.in: Regenerate.
1843 * configure: Regenerate.
1844 * include/c_compatibility/fenv.h: Check _GLIBCXX_USE_C99_FENV
1845 instead of _GLIBCXX_USE_C99_FENV_TR1.
1846 * include/c_global/cfenv: Likewise.
1847 * include/c_global/cctype: Check _GLIBCXX_USE_C99_CTYPE instead
1848 of _GLIBCXX_USE_C99_CTYPE_TR1.
1850 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
1852 * acinclude.m4 (GLIBCXX_USE_C99): Check for <stdint.h> types in
1853 C++11 mode and define _GLIBCXX_USE_C99_STDINT. Check for
1854 <inttypes.h> features in C++11 mode and define
1855 _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T.
1856 * config.h.in: Regenerate.
1857 * configure: Regenerate.
1858 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
1859 * include/bits/chrono.h: Check _GLIBCXX_USE_C99_STDINT instead
1860 of _GLIBCXX_USE_C99_STDINT_TR1.
1861 * include/c_compatibility/inttypes.h: Check
1862 _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T
1863 instead of _GLIBCXX_USE_C99_INTTYPES_TR1 and
1864 _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
1865 * include/c_compatibility/stdatomic.h: Check
1866 _GLIBCXX_USE_C99_STDINT instead of _GLIBCXX_USE_C99_STDINT_TR1.
1867 * include/c_compatibility/stdint.h: Likewise.
1868 * include/c_global/cinttypes: Check _GLIBCXX_USE_C99_INTTYPES
1869 and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T instead of
1870 _GLIBCXX_USE_C99_INTTYPES_TR1 and
1871 _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
1872 * include/c_global/cstdint: Check _GLIBCXX_USE_C99_STDINT
1873 instead of _GLIBCXX_USE_C99_STDINT_TR1.
1874 * include/std/atomic: Likewise.
1875 * src/c++11/cow-stdexcept.cc: Likewise.
1876 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
1878 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
1881 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
1883 * acinclude.m4 (GLIBCXX_USE_C99): Check for complex inverse trig
1884 functions in C++11 mode and define _GLIBCXX_USE_C99_COMPLEX_ARC.
1885 * config.h.in: Regenerate.
1886 * configure: Regenerate.
1887 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macro.
1888 * include/std/complex: Check _GLIBCXX_USE_C99_COMPLEX_ARC
1889 instead of _GLIBCXX_USE_C99_COMPLEX_TR1.
1891 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
1893 * testsuite/ext/debug_allocator/check_deallocate_null.cc: Add
1894 assertion to ensure expected exception is throw.
1896 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
1898 * testsuite/libstdc++-prettyprinters/chrono.cc: Only test
1899 printer for chrono::zoned_time for cx11 ABI and tzdb effective
1902 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
1904 * acinclude.m4 (GLIBCXX_CHECK_PTHREAD_MUTEX_CLOCKLOCK): Define
1905 _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK in terms of _GLIBCXX_TSAN.
1906 * configure: Regenerate.
1908 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
1910 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Use a non-null pointer
1911 to check for nan, nanf, and nanl.
1912 * configure: Regenerate.
1914 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
1916 * include/bits/char_traits.h (char_traits<char16_t>): Do not
1917 depend on _GLIBCXX_USE_C99_STDINT_TR1.
1918 (char_traits<char32_t>): Likewise.
1919 * include/experimental/source_location: Likewise.
1921 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
1923 * include/std/atomic (atomic_int_least8_t, atomic_uint_least8_t)
1924 (atomic_int_least16_t, atomic_uint_least16_t)
1925 (atomic_int_least32_t, atomic_uint_least32_t)
1926 (atomic_int_least64_t, atomic_uint_least64_t)
1927 (atomic_int_fast16_t, atomic_uint_fast16_t)
1928 (atomic_int_fast32_t, atomic_uint_fast32_t)
1929 (atomic_int_fast64_t, atomic_uint_fast64_t)
1930 (atomic_intmax_t, atomic_uintmax_t): Define unconditionally.
1931 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Adjust.
1933 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
1935 * include/bits/algorithmfwd.h (shuffle): Do not depend on
1936 _GLIBCXX_USE_C99_STDINT_TR1.
1937 * include/bits/ranges_algo.h (shuffle): Likewise.
1938 * include/bits/stl_algo.h (shuffle): Likewise.
1939 * include/ext/random: Likewise.
1940 * include/ext/throw_allocator.h (random_condition): Likewise.
1941 * include/std/random: Likewise.
1942 * src/c++11/cow-string-inst.cc: Likewise.
1943 * src/c++11/random.cc: Likewise.
1945 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
1947 * testsuite/experimental/feat-cxx14.cc: Remove dependency on
1948 _GLIBCXX_USE_C99_STDINT_TR1.
1950 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
1952 * testsuite/22_locale/locale/cons/unicode.cc: Remove dependency
1953 on _GLIBCXX_USE_C99_STDINT_TR1.
1955 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
1957 * testsuite/21_strings/basic_string_view/typedefs.cc: Remove
1958 dependency on _GLIBCXX_USE_C99_STDINT_TR1.
1959 * testsuite/experimental/string_view/typedefs.cc: Likewise.
1961 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
1963 * src/c++17/floating_from_chars.cc [USE_STRTOD_FOR_FROM_CHARS]
1964 (auto_locale, auto_ferounding): New class types.
1965 (from_chars_impl): Use auto_locale and auto_ferounding.
1967 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
1970 * include/std/chrono (hh_mm_ss::__fits): Remove variable
1972 (hh_mm_ss::__subseconds): Remove __fits from constraints.
1973 * testsuite/std/time/hh_mm_ss/109772.cc: New test.
1974 * testsuite/std/time/hh_mm_ss/1.cc: Adjust expected size for
1975 hh_mm_ss<duration<int, std::pico>>.
1977 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
1979 * config/abi/pre/gnu.ver: Export basic_string::_S_allocate.
1980 * include/bits/basic_ios.h: Add static assertion checking
1981 traits_type::value_type.
1982 * include/bits/basic_string.h: Likewise. Do not rebind
1983 allocator, and add static assertion checking its value_type.
1984 (basic_string::_Alloc_traits_impl): Remove class template.
1985 (basic_string::_S_allocate): New static member function.
1986 (basic_string::assign): Use _S_allocate.
1987 * include/bits/basic_string.tcc (basic_string::_M_create)
1988 (basic_string::reserve, basic_string::_M_replace): Likewise.
1989 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc:
1990 Disable for C++20 and later.
1991 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
1994 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
1997 * include/bits/std_abs.h (abs(__float128)): Handle negative NaN
1998 and negative zero correctly.
1999 * testsuite/26_numerics/headers/cmath/109758.cc: New test.
2001 2023-05-10 François Dumont <fdumont@gcc.gnu.org>
2003 * include/bits/hashtable_policy.h
2004 (_NodeBuilder<>::_S_build): Use __node_ptr.
2005 (_ReuseOrAllocNode<>): Use __node_ptr in place of __node_type*.
2006 (_AllocNode<>): Likewise.
2007 (_Equality<>::_M_equal): Remove const_iterator usages. Only preserved
2008 to call std::is_permutation in the non-unique key implementation.
2009 * include/bits/hashtable.h (_Hashtable<>::_M_update_begin()): Capture
2011 (_Hashtable<>::_M_bucket_begin(size_type)): Implement implicitly inline.
2012 (_Hashtable<>::_M_insert_bucket_begin): Likewise.
2013 (_Hashtable<>::_M_remove_bucket_begin): Likewise.
2014 (_Hashtable<>::_M_compute_hash_code): Use __node_ptr rather than
2016 (_Hashtable<>::find): Likewise.
2017 (_Hashtable<>::_M_emplace): Likewise.
2018 (_Hashtable<>::_M_insert_unique): Likewise.
2020 2023-05-09 Jonathan Wakely <jwakely@redhat.com>
2022 * python/libstdcxx/v6/printers.py (StdChronoDurationPrinter):
2023 Print floating-point durations correctly.
2024 (StdChronoTimePointPrinter): Support printing only the value,
2025 not the type name. Uncomment handling for known clocks.
2026 (StdChronoZonedTimePrinter): Remove type names from output.
2027 (StdChronoCalendarPrinter): Fix hh_mm_ss member access.
2028 (StdChronoTimeZonePrinter): Add equals sign to output.
2029 * testsuite/libstdc++-prettyprinters/chrono.cc: New test.
2031 2023-05-05 Alexandre Oliva <oliva@adacore.com>
2033 * testsuite/20_util/from_chars/4.cc: Skip long double test06
2035 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
2038 2023-05-04 Jonathan Wakely <jwakely@redhat.com>
2040 * doc/xml/manual/abi.xml (abi.versioning.history): Document
2041 libstdc++.so.6.0.32 and GLIBCXX_3.4.32 version.
2042 * doc/html/manual/abi.html: Regenerate.
2044 2023-05-04 Florian Weimer <fweimer@redhat.com>
2046 * doc/xml/manual/abi.xml (abi.versioning.history): Add
2047 GCC_7.0.0, GCC_9.0.0, GCC_11.0, GCC_12.0.0, GCC_13.0.0 for
2050 2023-05-03 Jakub Jelinek <jakub@redhat.com>
2052 * src/c++17/floating_from_chars.cc
2053 (_ZSt10from_charsPKcS0_RDF128_St12chars_format): New alias to
2054 _ZSt10from_charsPKcS0_Ru9__ieee128St12chars_format.
2055 * src/c++17/floating_to_chars.cc (_ZSt8to_charsPcS_DF128_): New alias to
2056 _ZSt8to_charsPcS_u9__ieee128.
2057 (_ZSt8to_charsPcS_DF128_St12chars_format): New alias to
2058 _ZSt8to_charsPcS_u9__ieee128St12chars_format.
2059 (_ZSt8to_charsPcS_DF128_St12chars_formati): New alias to
2060 _ZSt8to_charsPcS_u9__ieee128St12chars_formati.
2061 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Updated.
2063 2023-05-03 Jakub Jelinek <jakub@redhat.com>
2065 * configure.host (abi_baseline_pair): Use powerpc64le-linux-gnu
2066 rather than powerpc64-linux-gnu for powerpc64le*-linux*.
2067 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Remove
2068 _ZTI*DF128_, _ZTI*DF64x symbols and symbols in
2069 GLIBCXX_IEEE128_3.4.{29,30,31} and CXXABI_IEEE128_1.3.13 symbol
2071 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: New
2074 2023-05-03 Kefu Chai <kefu.chai@scylladb.com>
2075 Jonathan Wakely <jwakely@redhat.com>
2078 * include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)):
2079 Initialize _M_string_length.
2081 2023-05-02 Jakub Jelinek <jakub@redhat.com>
2083 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2084 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
2085 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
2086 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2087 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
2088 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
2089 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
2090 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2092 2023-05-02 Jakub Jelinek <jakub@redhat.com>
2095 * src/c++98/ios_init.cc: Add #pragma GCC diagnostic ignored for
2098 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
2100 * include/bits/random.h (gamma_distribution): Add to the right
2102 (discrete_distribution, piecewise_constant_distribution)
2103 (piecewise_linear_distribution): Create a new doxygen group and
2104 fix the incomplete doxygen comments.
2105 * include/bits/uniform_int_dist.h (uniform_int_distribution):
2106 Add to doxygen group.
2108 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
2110 * include/bits/uses_allocator.h: Add missing @file comment.
2111 * include/bits/regex.tcc: Remove stray doxygen comments.
2112 * include/experimental/memory_resource: Likewise.
2113 * include/std/bit: Tweak doxygen @cond comments.
2114 * include/std/expected: Likewise.
2115 * include/std/numbers: Likewise.
2117 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
2119 * doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
2122 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
2124 * include/bits/move.h: Simplify opening/closing namespace std.
2126 2023-04-28 Jakub Jelinek <jakub@redhat.com>
2129 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export
2130 _ZSt21ios_base_library_initv.
2131 * testsuite/util/testsuite_abi.cc (check_version): Add GLIBCXX_3.4.32
2132 symver and make it the latestp.
2133 * src/c++98/ios_init.cc (ios_base_library_init): New alias.
2134 * acinclude.m4 (libtool_VERSION): Change to 6:32:0.
2135 * include/std/iostream: If init_priority attribute is supported
2136 and _GLIBCXX_SYMVER_GNU, force undefined _ZSt21ios_base_library_initv
2137 symbol into the object.
2138 * configure: Regenerated.
2140 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2142 * include/bits/mofunc_impl.h: Fix typo in doxygen comment.
2143 * include/std/format: Likewise.
2145 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2147 * doc/doxygen/user.cfg.in (FORMULA_TRANSPARENT, DOT_FONTNAME)
2148 (DOT_FONTSIZE, DOT_TRANSPARENT): Remove obsolete options.
2150 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2152 * doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
2154 * include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
2156 * include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
2158 * include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
2160 * include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
2162 * include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
2163 (_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
2164 (_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
2165 (_DEFINE_BINARY_OPERATOR): Likewise.
2167 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2169 * include/bits/memory_resource.h: Improve doxygen comments.
2170 * include/std/memory_resource: Likewise.
2172 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2175 * include/bits/basic_string.h: Improve doxygen comments.
2176 * include/bits/cow_string.h: Likewise.
2177 * include/bits/forward_list.h: Likewise.
2178 * include/bits/fs_dir.h: Likewise.
2179 * include/bits/fs_path.h: Likewise.
2180 * include/bits/quoted_string.h: Likewise.
2181 * include/bits/stl_bvector.h: Likewise.
2182 * include/bits/stl_map.h: Likewise.
2183 * include/bits/stl_multimap.h: Likewise.
2184 * include/bits/stl_multiset.h: Likewise.
2185 * include/bits/stl_set.h: Likewise.
2186 * include/bits/stl_vector.h: Likewise.
2187 * include/bits/unordered_map.h: Likewise.
2188 * include/bits/unordered_set.h: Likewise.
2189 * include/std/filesystem: Likewise.
2190 * include/std/iomanip: Likewise.
2192 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2195 * src/c++11/random.cc (__throw_syserr): New function.
2196 (random_device::_M_init, random_device::_M_init_pretr1): Use new
2197 function for bad tokens.
2198 (random_device::_M_getval): Use new function for read errors.
2199 * testsuite/util/testsuite_random.h (random_device_available):
2200 Change catch handler to use std::system_error.
2202 2023-04-24 Patrick Palka <ppalka@redhat.com>
2204 * include/bits/max_size_type.h (__max_diff_type::operator>>=):
2205 Fix propagation of sign bit.
2206 * testsuite/std/ranges/iota/max_size_type.cc: Avoid using the
2207 non-standard 'signed typedef-name'. Add some compile-time tests
2208 for right-shifting a negative __max_diff_type value by more than
2211 2023-04-19 Patrick Palka <ppalka@redhat.com>
2212 Jonathan Wakely <jwakely@redhat.com>
2215 * include/bits/utility.h (_Nth_type): Conditionally define in
2216 terms of __type_pack_element if available.
2217 * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
2218 additional errors from the new built-in.
2220 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
2223 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2226 * src/Makefile.am: Move globals_io.cc to here.
2227 * src/Makefile.in: Regenerate.
2228 * src/c++98/Makefile.am: Remove globals_io.cc from here.
2229 * src/c++98/Makefile.in: Regenerate.
2230 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
2231 symbol name and then export with GLIBCXX_3.4.31 symver.
2232 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
2233 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
2235 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
2237 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
2239 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
2241 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
2243 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
2245 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
2247 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
2249 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
2251 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
2254 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2257 * config/abi/pre/gnu.ver: Fix preprocessor condition.
2259 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2261 * doc/xml/manual/extensions.xml: Fix example to declare and
2262 qualify std::free, and use NULL instead of 0.
2263 * doc/html/manual/ext_demangling.html: Regenerate.
2264 * libsupc++/cxxabi.h: Adjust doxygen comments.
2266 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2269 * config/abi/pre/gnu.ver: Fix preprocessor condition.
2271 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2274 * src/Makefile.am: Move globals_io.cc to here.
2275 * src/Makefile.in: Regenerate.
2276 * src/c++98/Makefile.am: Remove globals_io.cc from here.
2277 * src/c++98/Makefile.in: Regenerate.
2278 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
2279 symbol name and then export with GLIBCXX_3.4.31 symver.
2280 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
2281 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
2283 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
2285 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
2287 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
2289 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
2291 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
2293 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
2295 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
2297 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
2299 2023-04-18 Patrick Palka <ppalka@redhat.com>
2302 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Bump value
2304 * include/std/ranges (range_adaptor_closure): Define for C++23.
2305 * include/std/version (__cpp_lib_ranges): Bump value for
2307 * testsuite/std/ranges/version_c++23.cc: Bump expected value
2308 of __cpp_lib_ranges.
2309 * testsuite/std/ranges/range_adaptor_closure.cc: New test.
2311 2023-04-18 Patrick Palka <ppalka@redhat.com>
2313 * include/bits/ranges_algo.h (__cpp_lib_ranges_contains):
2315 (__cpp_lib_ranges_iota): Likewise.
2316 (__cpp_lib_ranges_find_last): Likewise.
2317 (__cpp_lib_fold): Rename to ...
2318 (__cpp_lib_ranges_fold): ... this.
2319 * include/std/version: As above.
2320 * testsuite/25_algorithms/fold_left/1.cc: Adjust after
2321 renaming __cpp_lib_fold.
2322 * testsuite/std/ranges/version_c++23.cc: Verify values
2323 of the above feature-test macros.
2325 2023-04-18 Patrick Palka <ppalka@redhat.com>
2328 * include/std/ranges (views::_AsConst::operator()): Add
2329 missing const to constant_range test.
2330 * testsuite/std/ranges/adaptors/as_const/1.cc (test02):
2331 Improve formatting. Adjust expected type of v2.
2334 2023-04-14 Patrick Palka <ppalka@redhat.com>
2336 * include/bits/ranges_base.h (const_iterator_t): Define for C++23.
2337 (const_sentinel_t): Likewise.
2338 (range_const_reference_t): Likewise.
2339 (constant_range): Likewise.
2340 (__cust_access::__possibly_const_range): Likewise, replacing ...
2341 (__cust_access::__as_const): ... this.
2342 (__cust_access::_CBegin::operator()): Redefine for C++23 as per P2278R4.
2343 (__cust_access::_CEnd::operator()): Likewise.
2344 (__cust_access::_CRBegin::operator()): Likewise.
2345 (__cust_access::_CREnd::operator()): Likewise.
2346 (__cust_access::_CData::operator()): Likewise.
2347 * include/bits/ranges_util.h (ranges::__detail::__different_from):
2348 Make it an alias of std::__detail::__different_from.
2349 (view_interface::cbegin): Define for C++23.
2350 (view_interface::cend): Likewise.
2351 * include/bits/stl_iterator.h (__detail::__different_from): Define.
2352 (iter_const_reference_t): Define for C++23.
2353 (__detail::__constant_iterator): Likewise.
2354 (__detail::__is_const_iterator): Likewise.
2355 (__detail::__not_a_const_iterator): Likewise.
2356 (__detail::__iter_const_rvalue_reference_t): Likewise.
2357 (__detail::__basic_const_iter_cat):: Likewise.
2358 (const_iterator): Likewise.
2359 (__detail::__const_sentinel): Likewise.
2360 (const_sentinel): Likewise.
2361 (basic_const_iterator): Likewise.
2362 (common_type<basic_const_iterator<_Tp>, _Up>): Likewise.
2363 (common_type<_Up, basic_const_iterator<_Tp>>): Likewise.
2364 (common_type<basic_const_iterator<_Tp>, basic_const_iterator<Up>>):
2366 (make_const_iterator): Define for C++23.
2367 (make_const_sentinel): Likewise.
2368 * include/std/ranges (__cpp_lib_ranges_as_const): Likewise.
2369 (as_const_view): Likewise.
2370 (enable_borrowed_range<as_const_view>): Likewise.
2371 (views::__detail::__is_ref_view): Likewise.
2372 (views::__detail::__can_is_const_view): Likewise.
2373 (views::_AsConst, views::as_const): Likewise.
2374 * include/std/span (span::const_iterator): Likewise.
2375 (span::const_reverse_iterator): Likewise.
2376 (span::cbegin): Likewise.
2377 (span::cend): Likewise.
2378 (span::crbegin): Likewise.
2379 (span::crend): Likewise.
2380 * include/std/version (__cpp_lib_ranges_as_const): Likewise.
2381 * testsuite/std/ranges/adaptors/join.cc (test06): Adjust to
2382 behave independently of C++20 vs C++23.
2383 * testsuite/std/ranges/version_c++23.cc: Verify value of
2384 __cpp_lib_ranges_as_const macro.
2385 * testsuite/24_iterators/const_iterator/1.cc: New test.
2386 * testsuite/std/ranges/adaptors/as_const/1.cc: New test.
2388 2023-04-14 Patrick Palka <ppalka@redhat.com>
2390 * include/bits/ranges_base.h (__cust_access::__as_const)
2391 (__cust_access::_CBegin, __cust::cbegin)
2392 (__cust_access::_CEnd, __cust::cend)
2393 (__cust_access::_CRBegin, __cust::crbegin)
2394 (__cust_access::_CREnd, __cust::crend)
2395 (__cust_access::_CData, __cust::cdata): Move down definitions to
2396 shortly after the definition of input_range.
2398 2023-04-14 Patrick Palka <ppalka@redhat.com>
2400 * include/bits/ranges_algo.h: Include <optional> for C++23.
2401 (__cpp_lib_fold): Define for C++23.
2402 (in_value_result): Likewise.
2403 (__detail::__flipped): Likewise.
2404 (__detail::__indirectly_binary_left_foldable_impl): Likewise.
2405 (__detail::__indirectly_binary_left_foldable): Likewise.
2406 (___detail:__indirectly_binary_right_foldable): Likewise.
2407 (fold_left_with_iter_result): Likewise.
2408 (__fold_left_with_iter_fn, fold_left_with_iter): Likewise.
2409 (__fold_left_fn, fold_left): Likewise.
2410 (__fold_left_first_with_iter_fn, fold_left_first_with_iter):
2412 (__fold_left_first_fn, fold_left_first): Likewise.
2413 (__fold_right_fn, fold_right): Likewise.
2414 (__fold_right_last_fn, fold_right_last): Likewise.
2415 * include/std/version (__cpp_lib_fold): Likewise.
2416 * testsuite/25_algorithms/fold_left/1.cc: New test.
2417 * testsuite/25_algorithms/fold_right/1.cc: New test.
2419 2023-04-14 Jonathan Wakely <jwakely@redhat.com>
2421 * include/std/format (formatter): Add comment to deleted default
2422 constructor of primary template.
2423 (_Checking_scanner): Add static_assert.
2425 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
2427 * doc/xml/manual/using.xml: Document libstdc++exp.a library.
2428 * doc/html/*: Regenerate.
2430 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
2432 * testsuite/17_intro/names.cc [_AIX]: Do not define policy.
2433 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Rename
2434 namespace to avoid clashing with libc struct.
2435 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
2437 * testsuite/23_containers/unordered_map/96088.cc: Skip on AIX.
2438 * testsuite/23_containers/unordered_multimap/96088.cc: Likewise.
2439 * testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
2440 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
2441 * testsuite/experimental/synchronized_value.cc: Require gthreads
2442 and add missing option for pthreads targets.
2444 2023-04-12 Patrick Palka <ppalka@redhat.com>
2446 * include/std/ranges (__cpp_lib_ranges_enumerate): Define
2448 (__detail::__range_with_movable_reference): Likewise.
2449 (enumerate_view): Likewise.
2450 (enumerate_view::_Iterator): Likewise.
2451 (enumerate_view::_Sentinel): Likewise.
2452 (views::__detail::__can_enumerate_view): Likewise.
2453 (views::_Enumerate, views::enumerate): Likewise.
2454 * include/std/version (__cpp_lib_ranges_enumerate): Likewise.
2455 * testsuite/std/ranges/version_c++23.cc: Verify value of
2456 __cpp_lib_ranges_enumerate.
2457 * testsuite/std/ranges/adaptors/enumerate/1.cc: New test.
2459 2023-04-12 Patrick Palka <ppalka@redhat.com>
2461 * include/std/ranges (lazy_split_view::_OuterIter::_OuterIter):
2462 Propagate _M_trailing_empty in the const-converting constructor
2464 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): Correct
2466 * testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test.
2468 2023-04-12 Patrick Palka <ppalka@redhat.com>
2470 * src/c++17/floating_from_chars.cc: Include <algorithm>,
2471 <iterator>, <limits> and <cstdint>.
2473 2023-04-12 Patrick Palka <ppalka@redhat.com>
2476 * include/std/ranges (chunk_by_view::_M_find_next): Generalize
2477 parameter types of the lambda wrapper passed to adjacent_find.
2478 (chunk_by_view::_M_find_prev): Likewise.
2479 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test04, test05):
2482 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
2485 * include/experimental/internet (basic_endpoint::basic_endpoint()):
2486 Ensure that the required union members are active. Only define
2487 as constexpr for C++20 and later.
2488 (basic_endpoint::basic_endpoint(const protocol_type&, port_type)):
2490 * testsuite/experimental/net/internet/endpoint/cons.cc: Only
2491 check constexpr default constructor for C++20 and later.
2492 * testsuite/experimental/net/internet/endpoint/extensible.cc:
2495 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
2497 * src/c++20/tzdata.zi: Import new file from 2023c release.
2499 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
2501 * include/precompiled/stdc++.h (C++17): Don't double-include
2502 <charconv>, once with wrong conditions.
2503 * testsuite/18_support/96817.cc: Require hosted.
2504 * testsuite/18_support/bad_exception/59392.cc: Ditto.
2505 * testsuite/20_util/scoped_allocator/108952.cc: Ditto.
2506 * testsuite/20_util/uses_allocator/lwg3527.cc: Ditto.
2507 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
2510 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
2512 * include/bits/c++config: When __STDC_HOSTED__ is zero,
2513 disable _GLIBCXX_DEBUG and, if it was set, enable
2514 _GLIBCXX_ASSERTIONS.
2515 * testsuite/lib/libstdc++.exp (check_v3_target_debug_mode):
2516 Include <bits/c++config.h> when determining whether debug is
2517 set, in order to inherit the logic from above
2519 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
2521 * testsuite/17_intro/versionconflict.cc: New test.
2522 * include/std/version: Allow disabling the system_header pragma
2523 via _GLIBCXX_TESTING_SYSHDR.
2525 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
2527 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
2528 Synchronize the definition block with...
2529 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory):
2530 ... this one here. Also define the 202202L value, rather than
2531 leaving it up to purely unique_ptr.h, so that the value is
2532 synchronized across all headers.
2533 (__gnu_debug::_Safe_iterator_base): Move into new conditional
2535 * include/std/memory (__cpp_lib_atomic_value_initialization):
2536 Define on freestanding under the same conditions as in
2538 * include/std/version (__cpp_lib_robust_nonmodifying_seq_ops):
2539 Also define on freestanding.
2540 (__cpp_lib_to_chars): Ditto.
2541 (__cpp_lib_gcd): Ditto.
2542 (__cpp_lib_gcd_lcm): Ditto.
2543 (__cpp_lib_raw_memory_algorithms): Ditto.
2544 (__cpp_lib_array_constexpr): Ditto.
2545 (__cpp_lib_nonmember_container_access): Ditto.
2546 (__cpp_lib_clamp): Ditto.
2547 (__cpp_lib_constexpr_char_traits): Ditto.
2548 (__cpp_lib_constexpr_string): Ditto.
2549 (__cpp_lib_sample): Ditto.
2550 (__cpp_lib_lcm): Ditto.
2551 (__cpp_lib_constexpr_iterator): Ditto.
2552 (__cpp_lib_constexpr_char_traits): Ditto.
2553 (__cpp_lib_interpolate): Ditto.
2554 (__cpp_lib_constexpr_utility): Ditto.
2555 (__cpp_lib_shift): Ditto.
2556 (__cpp_lib_ranges): Ditto.
2557 (__cpp_lib_move_iterator_concept): Ditto.
2558 (__cpp_lib_constexpr_numeric): Ditto.
2559 (__cpp_lib_constexpr_functional): Ditto.
2560 (__cpp_lib_constexpr_algorithms): Ditto.
2561 (__cpp_lib_constexpr_tuple): Ditto.
2562 (__cpp_lib_constexpr_memory): Ditto.
2564 2023-04-05 John David Anglin <danglin@gcc.gnu.org>
2566 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Double
2567 timeout factor on hppa*-*-*.
2569 2023-04-05 Jonathan Wakely <jwakely@redhat.com>
2571 * include/bits/regex.h (sub_match::swap): New function.
2572 * testsuite/28_regex/sub_match/lwg3204.cc: New test.
2574 2023-04-04 Jonathan Wakely <jwakely@redhat.com>
2576 * doc/xml/manual/extensions.xml: Remove std::bad_exception from
2578 * doc/html/manual/ext_demangling.html: Regenerate.
2580 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
2582 PR tree-optimization/107087
2583 * include/bits/cow_string.h (basic_string::size()): Add
2584 optimizer hint that _S_empty_rep()._M_length is always zero.
2585 (basic_string::length()): Call size().
2587 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
2590 * include/std/stop_token (_Stop_state_ptr(const stop_source&)):
2591 Add attribute access with access-mode 'none'.
2592 * testsuite/30_threads/stop_token/stop_source/109339.cc: New test.
2594 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
2596 * include/experimental/internet (ip::basic_endpoint::_M_if_v6):
2597 Revert change from member function to data member. Fix for
2598 constant evaluation by detecting which union member is active.
2599 (ip::basic_endpoint::resize): Revert changes to update _M_is_v6
2602 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
2605 * testsuite/20_util/optional/monadic/pr109340.cc: Moved to...
2606 * testsuite/20_util/optional/monadic/pr109242.cc: ...here.
2608 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
2610 * include/experimental/internet (ip::make_address): Implement
2612 (ip::address_v4::broadcast()): Avoid undefined shift.
2613 (ip::basic_endpoint): Fix member functions for constexpr.
2614 (ip::basic_endpoint::_M_is_v6): Replace member function with
2615 data member, adjust member functions using it.
2616 (ip::basic_endpoint::resize): Update _M_is_v6 based on sockaddr
2618 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
2619 constexpr checks to work in C++14.
2620 * testsuite/experimental/net/internet/address/v4/creation.cc:
2622 * testsuite/experimental/net/internet/endpoint/cons.cc:
2624 * testsuite/experimental/net/internet/network/v4/cons.cc:
2626 * testsuite/experimental/net/internet/network/v4/members.cc:
2628 * testsuite/experimental/net/internet/endpoint/extensible.cc: New test.
2630 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
2632 * include/std/expected (expected::value() &): Use const lvalue
2633 for unex member passed to bad_expected_access constructor, as
2636 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
2639 * include/std/expected (expected::transform): Use
2640 std::remove_cv_t instead of std::remove_cvref_t.
2641 (expected::transform_error): Likewise.
2642 (expected<cv void, E>::transform): Likewise.
2643 (expected<cv void, E>::transform_error): Likewise.
2644 * include/std/optional (transform): Use std::remove_cv_t.
2645 * testsuite/20_util/optional/monadic/pr109340.cc: New test.
2647 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
2649 * include/std/optional (optional): Adjust static assertion to
2650 reject arrays and functions as well as references.
2651 * testsuite/20_util/optional/requirements_neg.cc: New test.
2653 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
2656 * include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use
2657 std::use_facet instead of cached _M_num_get facet.
2658 (istream::operator>>(short&)): Likewise.
2659 (istream::operator>>(int&)): Likewise.
2660 * include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use
2661 std::use_facet instead of cached _M_num_put facet.
2663 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
2665 * include/bits/char_traits.h (char_traits::copy): Return without
2666 using memcpy if n==0.
2667 (char_traits::assign): Likewise for memset.
2669 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
2672 * include/bits/basic_string.h (basic_string::_M_is_local()): Add
2673 hint for compiler that local strings fit in the local buffer.
2675 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
2678 * include/std/chrono (__detail::__get_leap_second_info): Update
2679 expiry date of hardcoded leapseconds list.
2680 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds()):
2682 * src/c++20/tzdata.zi: Import new file from 2023a release.
2683 * testsuite/std/time/time_zone/get_info_local.cc: Only check
2684 transitions for Egypt up to 2014.
2686 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
2688 * include/experimental/bits/simd.h (is_simd_flag_type): New.
2689 (_IsSimdFlagType): New.
2690 (copy_from, copy_to, load ctors): Constrain _Flags using
2693 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
2695 * include/experimental/bits/simd_x86.h (_SimdImplX86): Use
2696 _Base::_S_divides if the optimized _S_divides function is hidden
2697 via the preprocessor.
2699 2023-03-27 Jakub Jelinek <jakub@redhat.com>
2701 * testsuite/experimental/net/timer/waitable/dest.cc: Avoid -Wformat
2702 warning if size_t is not unsigned long.
2704 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
2706 * include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)):
2707 Add overload, as per LWG 3893.
2708 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
2709 Check assignment from nullptr.
2711 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
2713 * include/std/format (formatter<const charT[N], charT>): Do not
2714 define partial speclialization, as per LWG 3833.
2715 * testsuite/std/format/formatter/requirements.cc: Check it.
2717 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
2719 * include/std/utility (__cpp_lib_constexpr_algorithms): Define,
2721 * testsuite/20_util/exchange/constexpr.cc: Check for it.
2723 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
2725 * include/std/version (__cpp_lib_format): Define.
2726 * testsuite/std/format/functions/format.cc: Check it.
2728 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
2730 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
2731 Pass rvalues to the callback, as now allowed by LWG 3645.
2732 Enforce preconditions on the return value.
2733 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
2736 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
2738 * include/std/format: Add a comment noting that the resolution
2739 of LWG 3720 has been applied..
2741 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
2743 * include/bits/regex.h (match_results): Add allocator-extended
2744 copy and move constructors, as per LWG 2195.
2745 * testsuite/28_regex/match_results/ctors/char/alloc.cc: New test.
2747 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
2749 * include/bits/stream_iterator.h (istream_iterator): Add
2750 constexpr to copy constructor, as per LWG 3600.
2751 * testsuite/24_iterators/istream_iterator/cons/constexpr.cc:
2752 Check copy construction.
2754 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
2756 * include/experimental/bits/simd_x86.h
2757 (_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
2758 with __RECIPROCAL_MATH__.
2760 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
2762 * include/experimental/bits/simd_detail.h: Don't define
2763 _GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang.
2764 * include/experimental/bits/simd_x86.h (_S_divides): Remove
2765 check for __clang__.
2767 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
2769 * include/experimental/bits/simd_detail.h: Don't declare the
2770 simd API as constexpr with Clang.
2771 * include/experimental/bits/simd_x86.h (__movm): New.
2772 (_S_blend_avx512): Resolve FIXME. Implement blend using __movm
2774 (_SimdImplX86::_S_masked_unary): Clang does not implement the
2775 same builtins. Implement the function using __movm, ?:, and -
2776 operators on vector_size types instead.
2778 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
2780 * testsuite/experimental/simd/tests/operators.cc: Clang doesn't
2781 define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
2783 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
2785 * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix
2788 2023-03-20 Marek Polacek <polacek@redhat.com>
2791 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust dg-error.
2792 * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
2793 * testsuite/23_containers/span/explicit.cc: Likewise.
2795 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
2798 * include/std/expected (expected<void>::expected(in_place_t)):
2799 Remove template-head.
2801 2023-03-18 Jonathan Wakely <jwakely@redhat.com>
2804 * testsuite/18_support/coroutines/hash.cc: Use const object
2807 2023-03-17 Jonathan Wakely <jwakely@redhat.com>
2810 * include/std/coroutine (hash<>::operator()): Add const.
2811 * testsuite/18_support/coroutines/hash.cc: New test.
2813 2023-03-14 Patrick Palka <ppalka@redhat.com>
2816 * include/std/ranges (repeat_view): Remove redundant parentheses
2818 (repeat_view::_Iterator): Correct the requires-clause.
2820 2023-03-14 Patrick Palka <ppalka@redhat.com>
2822 * include/bits/stl_iterator.h (move_iterator::_S_iter_concept):
2824 (__cpp_lib_move_iterator_concept): Define for C++20.
2825 (move_iterator::iterator_concept): Strengthen as per P2520R0.
2826 * include/std/version (__cpp_lib_move_iterator_concept): Define
2828 * testsuite/24_iterators/move_iterator/p2520r0.cc: New test.
2830 2023-03-14 Patrick Palka <ppalka@redhat.com>
2832 * include/bits/ranges_util.h (view_interface::empty): Add
2833 preferred overloads that use ranges::size when the range is
2834 sized as per LWG 3715.
2835 * testsuite/std/ranges/adaptors/lwg3715.cc: New test.
2837 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
2839 * include/bits/chrono.h (__is_duration_v, __is_time_point_v):
2840 Only define for C++17 and later.
2842 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
2844 * src/Makefile.am: Add comment about linker script fragments.
2845 * src/Makefile.in: Regenerate.
2847 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
2850 * include/bits/mask_array.h (mask_array): Add assertions to
2851 assignment operators.
2852 * include/std/valarray (valarray::operator[](valarray<bool>)):
2854 * testsuite/26_numerics/valarray/mask-1_neg.cc: New test.
2855 * testsuite/26_numerics/valarray/mask-2_neg.cc: New test.
2856 * testsuite/26_numerics/valarray/mask-3_neg.cc: New test.
2857 * testsuite/26_numerics/valarray/mask-4_neg.cc: New test.
2858 * testsuite/26_numerics/valarray/mask-5_neg.cc: New test.
2859 * testsuite/26_numerics/valarray/mask-6_neg.cc: New test.
2860 * testsuite/26_numerics/valarray/mask-7_neg.cc: New test.
2861 * testsuite/26_numerics/valarray/mask-8_neg.cc: New test.
2862 * testsuite/26_numerics/valarray/mask.cc: New test.
2864 2023-03-13 Jakub Jelinek <jakub@redhat.com>
2866 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2867 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2869 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
2871 * doc/Makefile.am: Add comment referring to documentation.
2872 * doc/Makefile.in: Regenerate.
2874 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
2876 * doc/html/*: Regenerate.
2878 2023-03-13 Jonny Grant <jg@jguk.org>
2880 * doc/xml/faq.xml: Update copyright year.
2882 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
2884 * include/bits/allocator.h: Fix typo in comment.
2886 2023-03-12 Jakub Jelinek <jakub@redhat.com>
2888 * config/abi/pre/gnu.ver (CXXABI_1.3.14): Also export __bf16 tinfos
2889 if it isn't mangled as DF16b but u6__bf16.
2891 2023-03-12 Gerald Pfeifer <gerald@pfeifer.com>
2893 * doc/xml/manual/documentation_hacking.xml: Move www.graphviz.org
2895 * doc/html/manual/documentation_hacking.html: Regenerate.
2897 2023-03-10 Jonathan Wakely <jwakely@redhat.com>
2900 * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
2901 Remove self-recursion in __init__. Add missing _supports.
2902 * testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
2905 2023-03-09 Patrick Palka <ppalka@redhat.com>
2907 * include/std/ranges
2908 (cartesian_product_view::_Iterator::_Iterator): Remove
2909 constraint on default constructor as per LWG 3849.
2910 (cartesian_product_view::_Iterator::_M_prev): Adjust position
2911 of _Nm > 0 test as per LWG 3820.
2912 (cartesian_product_view::_Iterator::_M_advance): Perform bounds
2913 checking only on sized cartesian products.
2914 * testsuite/std/ranges/cartesian_product/1.cc (test08): New test.
2916 2023-03-09 Patrick Palka <ppalka@redhat.com>
2919 * include/std/ranges (chunk_by_view::_M_pred): Remove DMI as per
2921 (repeat_view::_M_pred): Likewise.
2922 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test03): New test.
2923 * testsuite/std/ranges/repeat/1.cc (test05): New test.
2925 2023-03-09 Patrick Palka <ppalka@redhat.com>
2928 * include/std/ranges (__detail::__can_single_view): New concept.
2929 (_Single::operator()): Constrain it. Move [[nodiscard]] to the
2930 end of the function declarator.
2931 (__detail::__can_iota_view): New concept.
2932 (_Iota::operator()): Constrain it. Move [[nodiscard]] to the
2933 end of the function declarator.
2934 (__detail::__can_istream_view): New concept.
2935 (_Istream::operator()): Constrain it. Move [[nodiscard]] to the
2936 end of the function declarator.
2937 * testsuite/std/ranges/iota/iota_view.cc (test07): New test.
2938 * testsuite/std/ranges/istream_view.cc (test08): New test.
2939 * testsuite/std/ranges/single_view.cc (test07): New test.
2941 2023-03-09 Patrick Palka <ppalka@redhat.com>
2944 * include/std/ranges (cartesian_product_view::end): When
2945 building the tuple of iterators, avoid calling ranges::begin on
2946 the first range if __empty_tail is false.
2947 * testsuite/std/ranges/cartesian_product/1.cc (test07): New test.
2949 2023-03-09 Jonathan Wakely <jwakely@redhat.com>
2952 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Fix incorrect
2955 2023-03-07 Jakub Jelinek <jakub@redhat.com>
2957 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
2958 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
2959 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
2960 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2961 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
2963 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
2966 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Adjust patterns to
2967 not match symbols in namespace std::__gnu_cxx11_ieee128.
2968 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add patterns for
2969 std::__gnu_cxx11_ieee128::money_{get,put}.
2971 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
2973 * libsupc++/eh_personality.cc: Fix spelling in comment.
2975 2023-03-03 Alexandre Oliva <oliva@adacore.com>
2977 * testsuite/30_threads/async/async.cc (test04): Initialize
2978 steady_start, renamed from steady_begin, next to slow_start.
2979 Increase tolerance for final wait.
2981 2023-03-03 Alexandre Oliva <oliva@adacore.com>
2983 * testsuite/libstdc++-prettyprinters/80276.cc: Add
2984 std::string to debug info.
2985 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
2987 2023-03-03 Alexandre Oliva <oliva@adacore.com>
2992 * include/bits/std_thread.h (thread::_M_thread_deps): New
2993 static implicitly-inline member function.
2994 (std::thread template ctor): Pass it to _M_start_thread.
2995 * src/c++11/thread.cc (thread::_M_start_thread): Name depend
2996 parameter, force it live on entry.
2998 2023-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3000 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
3001 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
3003 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
3004 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
3007 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
3009 * include/bits/cow_string.h: Fix typo in comment.
3011 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
3013 * src/c++20/tzdb.cc (chrono::tzdb::current_zone()) Use "UTC" if
3014 current time zone cannot be determined.
3015 * testsuite/std/time/tzdb/1.cc: Remove conditions based on
3016 HAVE_TZDB macro and test all members unconditionally.
3018 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
3021 * include/bits/uses_allocator_args.h
3022 (uses_allocator_construction_args): Implement LWG 3527.
3023 * testsuite/20_util/pair/astuple/get-2.cc: New test.
3024 * testsuite/20_util/scoped_allocator/108952.cc: New test.
3025 * testsuite/20_util/uses_allocator/lwg3527.cc: New test.
3027 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
3030 * include/bits/stl_algobase.h (__copy_move<false, false, RA>)
3031 Add __assign_one static member function.
3032 (__copy_move<true, false, RA>): Likewise.
3033 (__copy_move<IsMove, true, RA>): Do not use memmove for a single
3035 (__copy_move_backward<IsMove, true, RA>): Likewise.
3036 * testsuite/25_algorithms/copy/108846.cc: New test.
3037 * testsuite/25_algorithms/copy_backward/108846.cc: New test.
3038 * testsuite/25_algorithms/copy_n/108846.cc: New test.
3039 * testsuite/25_algorithms/move/108846.cc: New test.
3040 * testsuite/25_algorithms/move_backward/108846.cc: New test.
3042 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
3044 * src/c++11/codecvt.cc: Add [[likely]] and [[unlikely]]
3047 2023-02-27 Jonathan Wakely <jwakely@redhat.com>
3049 * include/bits/basic_ios.h (basic_ios::_M_setstate): Add
3051 * include/bits/basic_string.h (resize_and_overwrite): Add
3054 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
3056 * include/experimental/bits/simd.h: Line breaks and indenting
3057 fixed to follow the libstdc++ standard.
3058 * include/experimental/bits/simd_builtin.h: Likewise.
3059 * include/experimental/bits/simd_fixed_size.h: Likewise.
3060 * include/experimental/bits/simd_neon.h: Likewise.
3061 * include/experimental/bits/simd_ppc.h: Likewise.
3062 * include/experimental/bits/simd_scalar.h: Likewise.
3063 * include/experimental/bits/simd_x86.h: Likewise.
3065 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
3068 * include/experimental/bits/simd_fixed_size.h
3069 (_SimdImplFixedSize::_S_broadcast): Replace inline with
3070 _GLIBCXX_SIMD_INTRINSIC.
3071 (_SimdImplFixedSize::_S_generate): Likewise.
3072 (_SimdImplFixedSize::_S_load): Likewise.
3073 (_SimdImplFixedSize::_S_masked_load): Likewise.
3074 (_SimdImplFixedSize::_S_store): Likewise.
3075 (_SimdImplFixedSize::_S_masked_store): Likewise.
3076 (_SimdImplFixedSize::_S_min): Likewise.
3077 (_SimdImplFixedSize::_S_max): Likewise.
3078 (_SimdImplFixedSize::_S_complement): Likewise.
3079 (_SimdImplFixedSize::_S_unary_minus): Likewise.
3080 (_SimdImplFixedSize::_S_plus): Likewise.
3081 (_SimdImplFixedSize::_S_minus): Likewise.
3082 (_SimdImplFixedSize::_S_multiplies): Likewise.
3083 (_SimdImplFixedSize::_S_divides): Likewise.
3084 (_SimdImplFixedSize::_S_modulus): Likewise.
3085 (_SimdImplFixedSize::_S_bit_and): Likewise.
3086 (_SimdImplFixedSize::_S_bit_or): Likewise.
3087 (_SimdImplFixedSize::_S_bit_xor): Likewise.
3088 (_SimdImplFixedSize::_S_bit_shift_left): Likewise.
3089 (_SimdImplFixedSize::_S_bit_shift_right): Likewise.
3090 (_SimdImplFixedSize::_S_remquo): Add inline keyword (to be
3091 explicit about not always-inline, yet).
3092 (_SimdImplFixedSize::_S_isinf): Likewise.
3093 (_SimdImplFixedSize::_S_isfinite): Likewise.
3094 (_SimdImplFixedSize::_S_isnan): Likewise.
3095 (_SimdImplFixedSize::_S_isnormal): Likewise.
3096 (_SimdImplFixedSize::_S_signbit): Likewise.
3098 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
3101 * include/experimental/bits/simd_builtin.h
3102 (_SimdImplBuiltin::_S_masked_unary): More efficient
3103 implementation of masked inc-/decrement for integers and floats
3105 * include/experimental/bits/simd_x86.h
3106 (_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract
3107 builtins for masked inc-/decrement.
3109 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3111 * include/experimental/executor (executor): Constrain template
3114 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3116 * include/experimental/internet (basic_endpoint): Add missing
3117 constexpr to comparison operators.
3118 * testsuite/experimental/net/internet/endpoint/cons.cc: New test.
3120 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3122 * include/experimental/internet (network_v4::netmask()): Avoid
3124 (network_v4::broadcast()): Optimize and fix for targets with
3125 uint_least32_t wider than 32 bits.
3126 (network_v4::to_string(const Allocator&)): Fix for custom
3127 allocators and optimize using to_chars.
3128 (operator==(const network_v4&, const network_v4&)): Add missing
3130 (operator==(const network_v6&, const network_v6&)): Likewise.
3131 * testsuite/experimental/net/internet/network/v4/cons.cc: New test.
3132 * testsuite/experimental/net/internet/network/v4/members.cc: New test.
3134 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3136 * include/experimental/internet (address_4(const bytes_type&)):
3137 Use __builtin_bit_cast if available, otherwise convert to
3139 (address_v4::to_bytes()): Likewise, but convert from network
3141 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
3142 incorrect tests. Check for constexpr too.
3143 * testsuite/experimental/net/internet/address/v4/creation.cc:
3145 * testsuite/experimental/net/internet/address/v4/members.cc:
3146 Check that bytes_type is a standard-layout type.
3148 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3150 * include/experimental/internet (address_v4::to_string):
3152 * testsuite/experimental/net/internet/address/v4/members.cc:
3153 Check more addresses.
3155 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3157 * include/ext/aligned_buffer.h (__aligned_buffer): Add
3160 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3162 * testsuite/std/format/arguments/lwg3810.cc: Move dg-options
3165 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3167 * testsuite/experimental/simd/tests/reductions.cc: Introduce
3168 max_distance as the type-dependent max error.
3170 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3172 * include/experimental/bits/simd_builtin.h (_S_set): Compare as
3173 int. The actual range of these indexes is very small.
3175 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3177 * include/experimental/bits/simd_x86.h (_S_bit_shift_left)
3178 (_S_bit_shift_right): Declare constexpr. The implementation was
3179 already expecting constexpr evaluation.
3181 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3184 * include/experimental/bits/simd_detail.h
3185 (_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for
3188 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3191 * include/experimental/bits/simd.h (__vector_broadcast):
3192 Implement via __vector_broadcast_impl instead of
3193 __call_with_n_evaluations + 2 lambdas.
3194 (__vector_broadcast_impl): New.
3196 2023-02-22 Alexandre Oliva <oliva@adacore.com>
3198 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex):
3199 Avoid destruction of the mutex pool.
3201 2023-02-22 Alexandre Oliva <oliva@adacore.com>
3203 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: xfail
3205 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
3208 2023-02-22 Alexandre Oliva <oliva@adacore.com>
3210 * testsuite/17_intro/names.cc: Undef func on vxworks >= 7 in
3213 2023-02-20 Andreas Schwab <schwab@linux-m68k.org>
3215 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
3217 2023-02-20 Matthias Kretz <m.kretz@gsi.de>
3219 * include/experimental/bits/simd.h (__extract_part, split):
3220 Use reserved name for template parameter.
3222 2023-02-20 Andreas Schwab <schwab@suse.de>
3224 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
3226 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
3228 * doc/xml/faq.xml: Switch two links to www.open-std.org to https.
3229 * doc/html/faq.html: Regenerate.
3231 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3233 * include/experimental/bits/simd_math.h (__hypot): Bitcasting
3234 between scalars requires the __bit_cast helper function instead
3237 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3239 * include/experimental/bits/simd_x86.h
3240 (_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
3241 (_SimdImplX86::_S_less_equal): Do not call
3242 __builtin_is_constant_evaluated in constexpr-if.
3244 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3246 * testsuite/experimental/simd/tests/bits/verify.h
3247 (verify::verify): Use %zx for size_t in format string.
3249 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3251 * testsuite/experimental/simd/generate_makefile.sh: Generate and
3252 pre-compile pch.h, which includes all headers that do not depend
3253 on command-line macros.
3254 * testsuite/experimental/simd/tests/bits/main.h: New file.
3255 (iterate_abis, main): Moved from verify.h.
3256 * testsuite/experimental/simd/tests/bits/verify.h
3257 (iterate_abis, main): Moved to main.h.
3258 * testsuite/experimental/simd/tests/bits/conversions.h: Add
3260 (genHalfBits): Simplify.
3261 * testsuite/experimental/simd/tests/bits/make_vec.h: Add include
3263 (make_alternating_mask): Moved from mask_loadstore.
3264 * testsuite/experimental/simd/tests/bits/mathreference.h: Add
3266 * testsuite/experimental/simd/tests/bits/test_values.h: Ditto.
3267 * testsuite/experimental/simd/tests/mask_loadstore.cc
3268 (make_mask, make_alternating_mask): Removed.
3269 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
3270 * testsuite/experimental/simd/tests/operators.cc (genHalfBits):
3272 * testsuite/experimental/simd/tests/abs.cc: Only include
3275 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
3276 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
3277 * testsuite/experimental/simd/tests/casts.cc: Ditto.
3278 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto.
3279 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
3280 * testsuite/experimental/simd/tests/generator.cc: Ditto.
3281 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
3282 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
3283 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
3284 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
3285 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
3286 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
3287 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
3288 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
3289 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
3290 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
3291 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
3292 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
3293 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
3294 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
3295 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
3296 * testsuite/experimental/simd/tests/simd.cc: Ditto.
3297 * testsuite/experimental/simd/tests/sincos.cc: Ditto.
3298 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
3299 * testsuite/experimental/simd/tests/splits.cc: Ditto.
3300 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
3301 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
3302 * testsuite/experimental/simd/tests/where.cc: Ditto.
3304 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3306 * testsuite/experimental/simd/README.md: Document the timeout
3307 and timeout-factor directives. Minor typo fixed.
3309 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3312 * include/experimental/bits/simd_detail.h: Define
3313 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
3314 * include/experimental/bits/simd.h: Annotate lambdas with
3315 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
3316 * include/experimental/bits/simd_builtin.h: Ditto.
3317 * include/experimental/bits/simd_converter.h: Ditto.
3318 * include/experimental/bits/simd_fixed_size.h: Ditto.
3319 * include/experimental/bits/simd_math.h: Ditto.
3320 * include/experimental/bits/simd_neon.h: Ditto.
3321 * include/experimental/bits/simd_x86.h: Ditto.
3323 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3325 * include/experimental/bits/simd.h
3326 (_SimdWrapper::_M_is_constprop_none_of)
3327 (_SimdWrapper::_M_is_constprop_all_of): Return false unless the
3328 computed result still satisfies __builtin_constant_p.
3330 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3332 * testsuite/std/format/arguments/lwg3810.cc: Replace UTF-8
3335 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3337 * include/Makefile.am: Add new header.
3338 * include/Makefile.in: Regenerate.
3339 * include/experimental/synchronized_value: New file.
3340 * testsuite/experimental/synchronized_value.cc: New test.
3342 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3344 * include/experimental/optional: Fix header name in comment.
3346 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3348 * include/std/format (__format::_Arg_store): New class template.
3349 (basic_format_args): Remove nested type _Store and add deduction
3350 guide from _Arg_store.
3351 (basic_format_arg, make_format_args): Adjust.
3352 * testsuite/std/format/arguments/lwg3810.cc: New test.
3354 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3356 * include/bits/stl_pair.h (pair) [C++20]: Add non-dangling
3357 constraints to constructors and add deleted overloads for the
3358 dangling cases, as per P2255R2.
3359 (pair) [!C++20 && _GLIBCXX_DEBUG]: Add static assertions to
3360 make dangling cases ill-formed.
3361 * testsuite/20_util/pair/dangling_ref.cc: New test.
3363 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3365 * testsuite/17_intro/names_pstl.cc: Require et tbb_backend.
3367 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3369 * include/ext/throw_allocator.h: Use reserved names for
3372 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3374 * testsuite/17_intro/names_pstl.cc: Add space after effective
3377 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3379 * include/pstl/algorithm_fwd.h (__pattern_search_n)
3380 (__brick_unique_copy, __brick_adjacent_find)
3381 (__brick_generate_n, __pattern_generate_n): Use reserved names
3383 * include/pstl/algorithm_impl.h (__brick_unique_copy)
3384 (__pattern_reverse, __brick_generate_n): Likewise.
3385 * include/pstl/execution_impl.h (__prefer_unsequenced_tag)
3386 (__prefer_parallel_tag): Likewise.
3387 * include/pstl/glue_algorithm_impl.h (transform): Likewise.
3388 * include/pstl/glue_numeric_defs.h (adjacent_difference):
3390 * include/pstl/numeric_impl.h (__brick_adjacent_difference):
3392 * include/pstl/parallel_backend_tbb.h (__merge_func): Likewise.
3393 * include/pstl/unseq_backend_simd.h (_Combiner)
3394 (__simd_min_element, __simd_minmax_element): Likewise.
3395 * testsuite/17_intro/names_pstl.cc: New test.
3397 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3399 * include/bits/fs_ops.h (create_directory): Use reserved name
3401 * include/bits/ranges_algo.h (__contains_subrange_fn):
3403 * include/bits/regex_automaton.h (_State_base::_M_print):
3405 * include/bits/regex_automaton.tcc(_State_base::_M_print):
3407 * include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise.
3408 * include/experimental/bits/fs_ops.h (create_directory):
3410 * include/std/mutex (timed_mutex::_M_clocklock): Likewise.
3411 (recursive_timed_mutex:_M_clocklock): Likewise.
3412 * include/std/tuple (basic_common_reference): Likewise.
3413 * libsupc++/cxxabi_init_exception.h
3414 (__cxa_init_primary_exception): Likewise.
3415 * testsuite/17_intro/names.cc: Add checks.
3417 2023-02-14 Gerald Pfeifer <gerald@pfeifer.com>
3419 * doc/xml/manual/status_cxx2017.xml: Update an open-std.org link
3420 to www.open-std.org and https.
3421 * doc/html/manual/status.html: Regenerate.
3423 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
3426 * include/std/atomic (atomic_flag_wait): Add.
3427 (atomic_flag_wait_explicit): Add.
3428 (atomic_flag_notify): Add.
3429 (atomic_flag_notify_explicit): Add.
3430 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc:
3431 Add test case to cover missing atomic_flag free functions.
3433 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
3436 * include/std/atomic (atomic_flag_test): Add.
3437 (atomic_flag_test_explicit): Add.
3438 * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
3439 test case to cover missing atomic_flag free functions.
3440 * testsuite/29_atomics/atomic_flag/test/implicit.cc:
3443 2023-02-13 Gerald Pfeifer <gerald@pfeifer.com>
3445 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust
3446 "The Component Object Model" reference.
3447 * doc/html/manual/policy_data_structures.html: Regenerate.
3449 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
3451 * doc/xml/manual/containers.xml: Tweak a link to N1780
3453 * doc/html/manual/associative.html: Regenerate.
3455 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
3457 * doc/xml/manual/ctype.xml: Change www.unix.org to unix.org.
3458 * doc/html/manual/facets.html: Regenerate.
3460 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
3462 * doc/xml/manual/policy_data_structures_biblio.xml: Update
3463 link to "Worst-case efficient priority queues".
3464 * doc/html/manual/policy_data_structures.html: Regenerate.
3466 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
3468 * doc/xml/manual/using.xml: Document newly-freestanding
3469 headers and the effect of the -ffreestanding flag.
3470 * doc/xml/manual/status_cxx2023.xml: Document P1642R11 as
3472 * doc/xml/manual/configure.xml: Document that hosted installs
3473 respect __STDC_HOSTED__.
3474 * doc/xml/manual/test.xml: Document how to run tests in
3476 * doc/html/*: Regenerate.
3478 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
3480 * include/bits/ranges_algo.h (__find_last_fn): Rename T to _Tp.
3481 (__find_last_if_fn): Likewise.
3483 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
3485 * include/std/type_traits: Add diagnostic pragmas around
3486 references to deprecated std::aligned_storage and
3487 std::aligned_union traits.
3488 * testsuite/20_util/aligned_storage/requirements/alias_decl.cc:
3489 Add dg-warning for et c++23.
3490 * testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc:
3492 * testsuite/20_util/aligned_storage/value.cc: Likewise.
3493 * testsuite/20_util/aligned_union/1.cc: Likewise.
3494 * testsuite/20_util/aligned_union/requirements/alias_decl.cc:
3497 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
3499 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
3500 * include/bits/c++config (_GLIBCXX23_DEPRECATED)
3501 (_GLIBCXX23_DEPRECATED_SUGGEST): New macros.
3502 * include/std/type_traits (aligned_storage, aligned_union)
3503 (aligned_storage_t, aligned_union_t): Deprecate for C++23.
3504 * testsuite/20_util/aligned_storage/deprecated-2b.cc: New test.
3505 * testsuite/20_util/aligned_union/deprecated-2b.cc: New test.
3507 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
3509 * doc/doxygen/user.cfg.in (PREDEFINED): Update macros.
3510 * include/bits/c++config (_GLIBCXX20_DEPRECATED): Make
3511 consistent with other 'deprecated' macros.
3512 * include/std/type_traits (is_pod, is_pod_v): Use
3513 _GLIBCXX20_DEPRECATED_SUGGEST instead.
3515 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
3517 * Makefile.am [!_GLIBCXX_HOSTED]: Enable src/ subdirectory.
3518 * Makefile.in: Regenerate.
3519 * src/Makefile.am [!_GLIBCXX_HOSTED]: Omit compatibility files.
3520 There's no history to be compatible with.
3521 * src/c++11/Makefile.am [!_GLIBCXX_HOSTED]: Omit hosted-only
3522 source files from the build.
3523 * src/c++17/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
3524 * src/c++20/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
3525 * src/c++98/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
3526 * src/Makefile.in: Regenerate.
3527 * src/c++11/Makefile.in: Regenerate.
3528 * src/c++17/Makefile.in: Regenerate.
3529 * src/c++20/Makefile.in: Regenerate.
3530 * src/c++98/Makefile.in: Regenerate.
3532 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
3534 * src/Makefile.am [GLIBCXX_HOSTED] (SUBDIRS): Do not add
3535 filesystem, libbacktrace and experimental.
3536 * src/Makefile.in: Regenerate.
3538 2023-02-04 Hans-Peter Nilsson <hp@axis.com>
3541 * include/pstl/unseq_backend_simd.h (__simd_or): Use __INT32_TYPE__
3544 2023-02-04 Gerald Pfeifer <gerald@pfeifer.com>
3546 * doc/xml/manual/documentation_hacking.xml: Adjust link to pdftex.
3547 * doc/html/manual/documentation_hacking.html: Regenerate.
3549 2023-02-04 François Dumont <fdumont@gcc.gnu.org>
3551 * include/bits/basic_string.h (operator=(basic_string&&)): Transfer move-to
3552 storage to the move-from instance when allocators are equal.
3553 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc (test04):
3556 2023-02-03 Samuel Thibault <samuel.thibault@gnu.org>
3558 * config/os/gnu-linux/os_defines.h [!__linux__]
3559 (_GLIBCXX_NATIVE_THREAD_ID, _GLIBCXX_GTHREAD_USE_WEAK): Do not define.
3561 2023-02-03 Patrick Palka <ppalka@redhat.com>
3563 * include/bits/ranges_algo.h (__find_last_fn, find_last):
3565 (__find_last_if_fn, find_last_if): Define.
3566 (__find_last_if_not_fn, find_last_if_not): Define.
3567 * testsuite/25_algorithms/find_last/1.cc: New test.
3568 * testsuite/25_algorithms/find_last_if/1.cc: New test.
3569 * testsuite/25_algorithms/find_last_if_not/1.cc: New test.
3571 2023-02-03 Patrick Palka <ppalka@redhat.com>
3573 * include/bits/ranges_algo.h (out_value_result): Define.
3574 (iota_result): Define.
3575 (__iota_fn, iota): Define.
3576 * testsuite/25_algorithms/iota/1.cc: New test.
3578 2023-02-03 Patrick Palka <ppalka@redhat.com>
3580 * include/bits/ranges_algo.h (__contains_fn, contains): Define.
3581 (__contains_subrange_fn, contains_subrange): Define.
3582 * testsuite/25_algorithms/contains/1.cc: New test.
3583 * testsuite/25_algorithms/contains_subrange/1.cc: New test.
3585 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
3587 * doc/xml/manual/abi.xml: Tweak link to ABIcheck project.
3588 * doc/html/manual/abi.html: Regenerate.
3590 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
3592 * src/filesystem/ops-common.h [AVR] (__unsupported): Always use
3593 errc::function_not_supported instead of errc::not_supported.
3595 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
3597 * include/std/sstream (basic_stringbuf::view): Define for old
3599 (basic_istringstream::view, basic_0stringstream::view)
3600 (basic_stringstream::view): Likewise.
3601 * testsuite/27_io/basic_istringstream/view/char/1.cc: Remove
3602 { dg-require-effective-target cxx11_abi }.
3603 * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
3605 * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
3606 * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
3608 * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
3609 * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
3610 * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
3611 * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
3614 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
3617 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export shared_ptr
3618 conversion operators for directory iterator comparisons with
3619 std::default_sentinel_t.
3620 * include/bits/fs_path.h (path::path(string_view, _Type))
3621 (path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
3623 * src/c++17/fs_path.cc: ... here.
3624 * testsuite/27_io/filesystem/path/108636.cc: New test.
3626 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
3628 * include/std/variant (variant::operator=): Implement resolution
3630 * testsuite/20_util/variant/lwg3585.cc: New test.
3632 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
3634 * doc/xml/manual/using_exceptions.xml: Update a www.open-std.org
3636 * doc/html/manual/using_exceptions.html: Regenerate.
3638 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
3640 * doc/xml/manual/debug.xml: Fix link to online GDB manual.
3641 * doc/html/manual/debug.html: Regenerate.
3643 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
3645 * src/c++11/random.cc (random_device::_M_fini): Do not try to
3646 close the file handle if the target doesn't support the
3647 /dev/random and /dev/urandom files.
3649 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
3651 * config/os/generic/error_constants.h (errc::value_too_large)
3653 * src/c++11/system_error.cc
3654 (system_category::default_error_condition) [__AVR__]: Only match
3655 recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
3656 * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
3657 for ENOENT etc. in switch.
3658 (fs::remove_all) [__AVR__]: Likewise.
3659 * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
3662 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
3664 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR) [avr-*-*, msp430-*-*]: Set
3666 * configure: Regenerate.
3668 2023-02-01 Hans-Peter Nilsson <hp@axis.com>
3671 * testsuite/std/time/hh_mm_ss/1.cc (size): Add empty
3672 struct at end of S0.
3674 2023-01-30 Gerald Pfeifer <gerald@pfeifer.com>
3676 * doc/xml/manual/shared_ptr.xml: Move links from both
3677 http://open-std.org and http://www.open-std.org to
3678 https://www.open-std.org.
3679 * doc/html/manual/memory.html: Regenerate.
3681 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
3683 * doc/xml/manual/appendix_contributing.xml: Adjust link to
3684 ISO C++ standard at ANSI.
3685 Move link to www.open-std.org to https.
3686 * doc/html/manual/appendix_contributing.html: Regenerate.
3688 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
3690 * doc/xml/manual/documentation_hacking.xml: Move sourceforge.net
3692 * doc/html/manual/documentation_hacking.html: Regenerate.
3694 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
3696 * doc/xml/manual/abi.xml: Update www.open-std.org link to https.
3697 * doc/html/manual/abi.html: Regenerate.
3699 2023-01-27 Jakub Jelinek <jakub@redhat.com>
3702 * testsuite/17_intro/names.cc (__unused): For linux or GNU hurd
3703 include features.h if present and then check __GLIBC__ and
3704 __GLIBC_MINOR__ macros for glibc prior to 2.19, instead of testing
3705 __GLIBC_PREREQ which isn't defined yet.
3707 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
3709 * src/c++20/tzdb.cc (tzdata_stream): Use constant instead of
3712 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
3715 * testsuite/23_containers/map/modifiers/108554.cc: Use dg-bogus.
3717 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
3719 * src/c++20/tzdb.cc (operator>>(istream&, ZoneInfo&)): Allow
3720 rules named "+" for compatibility with older tzdata.zi files.
3722 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
3725 * include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add
3727 (_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull
3729 * testsuite/23_containers/map/modifiers/108554.cc: New test.
3731 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
3734 * src/c++20/tzdb.cc (current_zone): Look for TIMEZONE or ZONE in
3735 /etc/sysconfig/clock, not DEFAULT_TIMEZONE.
3737 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
3739 * doc/xml/manual/intro.xml: Update links to www.open-std.org to
3741 * doc/html/manual/bugs.html: Regenerate.
3743 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
3746 * src/c++20/tzdb.cc (current_zone): Look for DEFAULT_TIMEZONE in
3747 /etc/sysconfig/clock.
3749 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
3752 * include/bits/ranges_base.h: Include <bits/stl_iterator.h> for
3753 std::make_reverse_iterator.
3754 * include/std/tuple: Include <bits/ranges_util.h> for subrange.
3755 (make_from_tuple): Add static assertion from P2255 to diagnose
3756 dangling references.
3757 * testsuite/20_util/tuple/make_from_tuple/dangling_ref.cc: New test.
3758 * testsuite/20_util/tuple/make_from_tuple/tuple_like.cc: New test.
3760 2023-01-23 François Dumont <fdumont@gcc.gnu.org>
3762 * include/debug/safe_iterator.h (_Safe_iterator<>::_Unchecked): New.
3763 (_Safe_iterator(const _Safe_iterator&, _Unchecked)): New.
3764 (_Safe_iterator::operator++(int)): Use latter.
3765 (_Safe_iterator::operator--(int)): Likewise.
3766 (_Safe_iterator(_Iterator, const _Safe_sequence_base*)): Remove !_M_insular()
3768 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_Unchecked):
3770 (_Safe_local_iterator(const _Safe_local_iterator&, _Unchecked)): New.
3771 (_Safe_local_iterator::operator++(int)): Use latter.
3772 * src/c++11/debug.cc (_S_debug_messages): Add as comment the _Debug_msg_id
3773 entry associated to the array entry.
3775 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
3777 * include/bits/fs_path.h (u8path): Add deprecated attribute.
3778 * testsuite/27_io/filesystem/path/construct/90281.cc: Add
3779 -Wno-deprecated-declarations for C++20 and later.
3780 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
3782 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
3783 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
3784 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: New test.
3786 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
3788 * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
3789 Always call _M_fini and _M_getentropy.
3791 2023-01-18 Gerald Pfeifer <gerald@pfeifer.com>
3793 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust links
3794 to www.open-std.org to use https.
3795 (COM: Component Model Object Technologies): Rename from...
3796 (The Component Object Model): ...to.
3797 * doc/html/manual/policy_data_structures.html: Regenerate.
3799 2023-01-18 Dimitrij Mijoski <dmjpp@hotmail.com>
3801 * testsuite/22_locale/codecvt/codecvt_unicode.cc: Simplify.
3802 * testsuite/22_locale/codecvt/codecvt_unicode.h: Simplify.
3803 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: Simplify.
3805 2023-01-17 Jonathan Wakely <jwakely@redhat.com>
3807 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Check $target_os instead
3808 of $host. Fix check for file being present during native build.
3809 * configure: Regenerate.
3811 2023-01-17 Martin Liska <mliska@suse.cz>
3813 * src/libbacktrace/Makefile.in: Regenerate.
3815 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
3817 * src/c++20/tzdb.cc (_GLIBCXX_USE_CXX11_ABI): Define to 1.
3819 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
3822 * include/c_compatibility/stdatomic.h: Change copyright line to
3823 be consistent with other headers contributed under DCO terms.
3824 * include/std/expected: Add full stop to copyright line.
3825 * src/c++20/tzdb.cc: Likewise.
3827 2023-01-15 Gerald Pfeifer <gerald@pfeifer.com>
3829 * doc/xml/manual/status_cxx2014.xml: Switch www.open-std.org to
3831 * doc/xml/manual/status_cxx2017.xml: Ditto.
3832 * doc/xml/manual/status_cxx2020.xml: Ditto.
3833 * doc/xml/manual/status_cxx2023.xml: Ditto.
3834 * doc/html/manual/status.html: Regenerate.
3836 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
3838 * testsuite/std/time/tzdb_list/1.cc: Remove dg-xfail-run-if
3839 and fail gracefully if defining the weak symbol doesn't work.
3841 2023-01-15 François Dumont <fdumont@gcc.gnu.org>
3844 * include/debug/safe_iterator.h (_Safe_iterator<>::operator++(int)): Extend deadlock
3845 fix to other iterator category.
3846 (_Safe_iterator<>::operator--(int)): Likewise.
3847 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::operator++(int)):
3849 * testsuite/util/debug/unordered_checks.h (invalid_local_iterator_pre_increment): New.
3850 (invalid_local_iterator_post_increment): New.
3851 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_post_increment_neg.cc:
3853 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_pre_increment_neg.cc:
3856 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
3858 * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
3861 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
3863 * testsuite/std/time/clock/utc/io.cc: Use ctype to widen char.
3865 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
3867 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Add check for
3868 windows.h. Add pecoff as FORMAT_FILE.
3869 * config.h.in: Regenerate.
3870 * configure: Regenerate.
3871 * src/libbacktrace/Makefile.am: Regenerate.
3872 * src/libbacktrace/Makefile.in: Add pecoff.c as FORMAT_FILE.
3874 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
3876 * include/std/stacktrace (stacktrace_entry::_S_demangle): Use
3877 raw __name if __cxa_demangle could not demangle it.
3879 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
3882 * src/c++20/tzdb.cc (current_zone()) [_AIX]: Use TZ environment
3885 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
3887 * src/c++20/tzdb.cc (TZDB_DISABLED): Disable all code for
3889 * testsuite/std/time/tzdb/leap_seconds.cc: Require tzdb
3891 * testsuite/std/time/tzdb_list/1.cc: Likewise.
3893 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
3895 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Replace the
3896 --with-libstdcxx-zoneinfo-dir configure option with
3897 --with-libstdcxx-zoneinfo with yes/no/static choices as well as
3899 * config.h.in: Regenerate.
3900 * configure: Regenerate.
3901 * doc/xml/manual/configure.xml: Document configure option.
3902 * doc/html/manual/configure.html: Regenerate.
3903 * src/c++20/Makefile.am: Generate tzdata.zi.h header.
3904 * src/c++20/Makefile.in: Regenerate.
3905 * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Return a
3906 null pointer if no directory is configured.
3907 (zoneinfo_dir): Replace with ...
3908 (zoneinfo_file): New function.
3909 (tzdata_stream): New istream class.
3910 (remote_version, reload_tzdb): Use tzdata_stream.
3911 * testsuite/lib/libstdc++.exp (check_effective_target_tzdb):
3912 Check new _GLIBCXX_STATIC_TZDATA macro and ignore presence of
3913 tzdata.zi file in default location.
3914 * src/c++20/tzdata.zi: New file.
3916 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
3918 * include/bits/chrono_io.h (operator<<): Fix syntax errors.
3919 * testsuite/std/time/month_day/io.cc: New test.
3920 * testsuite/std/time/month_day_last/io.cc: New test.
3921 * testsuite/std/time/month_weekday/io.cc: New test.
3922 * testsuite/std/time/month_weekday_last/io.cc: New test.
3923 * testsuite/std/time/weekday_indexed/io.cc: New test.
3924 * testsuite/std/time/weekday_last/io.cc: New test.
3925 * testsuite/std/time/year_month/io.cc: New test.
3926 * testsuite/std/time/year_month_day_last/io.cc: New test.
3927 * testsuite/std/time/year_month_weekday/io.cc: New test.
3928 * testsuite/std/time/year_month_weekday_last/io.cc: New test.
3930 2023-01-14 François Dumont <fdumont@gcc.gnu.org>
3932 * include/std/format [_GLIBCXX_INLINE_VERSION](to_chars): Adapt __asm symbol
3934 * config/abi/pre/gnu-versioned-namespace.ver: Add to_chars/from_chars symbols
3937 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
3939 * include/bits/std_mutex.h: Include <errno.h>.
3941 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
3943 * testsuite/20_util/to_chars/version.cc: Mark hosted-only.
3944 * testsuite/20_util/uses_allocator/lwg3677.cc: Ditto.
3945 * testsuite/20_util/weak_ptr/cons/self_move.cc: Ditto.
3946 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Replace usage of
3947 std::make_unique with a freestanding-compatible wrapper around
3949 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
3950 Don't test for presence of __cpp_lib_string_contains on !HOSTED.
3951 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
3953 * testsuite/std/ranges/version_c++23.cc: Don't test for presence
3954 of __cpp_lib_ranges in !HOSTED.
3956 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
3958 * include/Makefile.am: Install bits/char_traits.h,
3960 * include/Makefile.in: Regenerate.
3961 * include/bits/char_traits.h: Gate hosted-only, wchar-only and
3962 mbstate-only bits behind appropriate #ifs.
3963 * include/std/string_view: Gate <iostream> functionality behind
3965 * include/std/version: Enable __cpp_lib_constexpr_string_view
3966 and __cpp_lib_starts_ends_with in !HOSTED.
3967 * include/std/ranges: Re-enable __is_basic_string_view on
3968 freestanding, include <string_view> directly.
3969 * include/precompiled/stdc++.h: Include <string_view> when
3971 * testsuite/20_util/function_objects/searchers.cc: Skip testing
3972 boyer_moore searchers on freestanding
3973 * testsuite/21_strings/basic_string_view/capacity/1.cc: Guard
3974 <string>-related tests behind __STDC_HOSTED__.
3975 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Ditto.
3976 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Remove
3977 unused <stdexcept> include.
3978 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Remove
3979 unused <vector> include.
3980 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
3981 Guard <string> related testing behind __STDC_HOSTED__.
3982 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
3983 Guard <stdexcept> related tests behind __STDC_HOSTED__.
3984 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
3986 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
3987 Guard <stdexcept> tests behind __STDC_HOSTED__.
3988 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
3989 Enable test on freestanding, guard <stdexcept> bits behind
3991 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
3992 Guard <stdexcept> bits behind __STDC_HOSTED__.
3993 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
3996 2023-01-13 Dimitrij Mijoski <dmjpp@hotmail.com>
3999 * src/c++11/codecvt.cc (read_utf8_code_point): Correctly detect
4000 errors in incomplete multibyte sequences.
4001 (utf16_in): Remove surrogates parameter. Fix conditions for
4003 (utf16_out): Fix condition for returning partial.
4004 (ucs2_in): Do not pass surrogates argument to utf16_in.
4005 * testsuite/22_locale/codecvt/codecvt_unicode.cc: New test.
4006 * testsuite/22_locale/codecvt/codecvt_unicode.h: New header for
4008 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: New
4011 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
4014 * config/io/c_io_stdio.h (__c_lock): Define as a typedef for
4015 __GTHREAD_LEGACY_MUTEX_T if defined.
4017 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
4020 * config/os/gnu-linux/ldbl-extra.ver (GLIBCXX_LDBL_3.4.31):
4021 Export __try_use_facet specializations for facets in namespace
4023 * config/os/gnu-linux/ldbl-ieee128-extra.ver
4024 (GLIBCXX_IEEE128_3.4.31): Likewise for facets in namespace
4026 * testsuite/util/testsuite_abi.cc: Add to lists of known and
4029 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
4031 * include/bits/std_mutex.h: Remove <system_error> include.
4032 * include/std/condition_variable: Add <bits/error_constants.h>
4034 * include/std/mutex: Likewise.
4035 * include/std/shared_mutex: Likewise.
4037 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
4040 * include/experimental/memory_resource
4041 (_GLIBCXX_MAX_ALIGN_MATCHES_MALLOC): Define.
4042 (do_allocate, do_deallocate): Check it.
4043 * testsuite/experimental/memory_resource/new_delete_resource.cc:
4044 Relax expected behaviour for 64-bit hppa-hp-hpux11.11.
4046 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
4048 * doc/xml/manual/abi.xml: Add latest library versions.
4049 * doc/html/manual/abi.html: Regenerate.
4051 2023-01-12 François Dumont <fdumont@gcc.gnu.org>
4054 * include/bits/stl_tree.h (_Rb_tree<>::_M_insert_range_equal): Remove
4055 unused _Alloc_node instance.
4057 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
4059 * include/bits/atomic_wait.h (__detail::__platform_wait_t):
4060 Define as unsigned long if always lock-free, and unsigned int
4063 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
4065 * src/c++20/tzdb.cc (tzdb_list::_S_init_tzdb): Use __try and
4066 __catch macros for exception handling.
4068 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
4071 * include/bits/stl_algobase.h (__lg): Replace six overloads with
4072 a single function template for all integer types.
4073 * include/bits/stl_algo.h (__merge_adaptive_resize): Cast
4074 arithmetic results back to _Distance.
4076 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
4079 * include/std/span (span::span()): Un-simplify constraint to
4080 work for size_t of lesser rank than int.
4082 2023-01-07 LIU Hao <lh_mouse@126.com>
4084 PR middle-end/108300
4085 * src/c++11/system_error.cc: Define `WIN32_LEAN_AND_MEAN` before
4087 * src/c++11/thread.cc: Likewise.
4088 * src/c++17/fs_ops.cc: Likewise.
4089 * src/filesystem/ops.cc: Likewise.
4091 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4094 * src/c++20/tzdb.cc (zoneinfo_dir): Add diagnostic pragma.
4096 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4099 * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): New class
4100 template and partial specialization for synchronizing access to
4101 time_zone::_Impl::infos.
4102 (time_zone::_M_get_sys_info, reload_tzdb): Adjust uses of
4105 2023-01-06 Patrick Palka <ppalka@redhat.com>
4108 * include/bits/utility.h (__cpp_lib_ranges_zip): Define for C++23.
4109 * include/std/ranges (__cpp_lib_ranges_zip): Likewise.
4110 (__cpp_lib_ranges_chunk): Likewise.
4111 (__cpp_lib_ranges_slide): Likewise.
4112 (__cpp_lib_ranges_chunk_by): Likewise.
4113 (__cpp_lib_ranges_join_with): Likewise.
4114 (__cpp_lib_ranges_repeat): Likewise.
4115 (__cpp_lib_ranges_stride): Likewise.
4116 (__cpp_lib_ranges_cartesian_product): Likewise.
4117 (__cpp_lib_ranges_as_rvalue): Likewise.
4118 * include/std/version: Ditto.
4119 * testsuite/20_util/tuple/p2321r2.cc: Verify value of
4121 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
4122 * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
4123 * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
4124 * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
4125 * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
4126 * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
4127 * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
4128 * testsuite/std/ranges/repeat/1.cc: Likewise.
4129 * testsuite/std/ranges/zip/1.cc: Likewise.
4130 * testsuite/std/ranges/version_c++23.cc: New test.
4132 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4135 * include/std/bitset (operator>>): Use alloca in the right
4136 scope, not in a constructor.
4137 * testsuite/20_util/bitset/io/input.cc: Check case from PR.
4139 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4142 * include/std/format (basic_format_arg) [!__cpp_lib_to_chars]:
4143 Disable visiting floating-point types.
4145 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4148 * include/debug/safe_iterator.h (_Safe_iterator::operator++(int))
4149 (_Safe_iterator::operator--(int)): Do not hold lock around
4150 construction of return value.
4152 2023-01-05 John David Anglin <danglin@gcc.gnu.org>
4154 * config/cpu/hppa/atomicity.h (_PA_LDCW_INSN): Define.
4155 (__exchange_and_add): Use _PA_LDCW_INSN. Use ordered store for
4156 lock release. Revise loop.
4157 (__atomic_add): Likewise.
4159 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4162 * python/libstdcxx/v6/printers.py (_utc_timezone): New global
4164 (StdChronoTimePointPrinter::to_string): Use it.
4166 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4169 * include/std/functional (_Bind_front): Add no_unique_address
4170 attribute to data members.
4171 * testsuite/20_util/function_objects/bind_front/107784.cc: Check
4172 size of call wrappers with empty types for targets and bound
4175 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4178 * src/c++20/tzdb.cc (chrono::current_zone()): Check for zone
4179 using only last component of the name.
4181 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4185 * config/abi/pre/gnu.ver: Move zoneinfo_dir_override export to
4186 the latest symbol version.
4187 * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define to 0 if
4188 atomic<_Node*> is not always lock free.
4189 (USE_ATOMIC_LIST_HEAD): New macro.
4190 [__hpux__] (__gnu_cxx::zoneinfo_dir_override()): Provide
4191 definition of weak symbol.
4192 (tzdb_list::_Node::_S_head): Rename to _S_head_cache.
4193 (tzdb_list::_Node::_S_list_head): New function for accessing
4194 list head efficiently.
4195 (tzdb_list::_Node::_S_cache_list_head): New function for
4196 updating _S_list_head.
4198 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4201 * include/std/chrono (hh_mm_ss): Do not use chrono::abs if
4202 duration rep is unsigned.
4203 * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep.
4205 2023-01-04 Iain Sandoe <iain@sandoe.co.uk>
4208 * config/abi/pre/gnu.ver (GLIBCXX_3.4):
4209 Add __gnu_cxx::zoneinfo_dir_override().
4211 2023-01-04 Jonathan Wakely <jwakely@redhat.com>
4214 * include/std/array (__array_traits<T, 0>::operator T*()): Add
4216 * testsuite/23_containers/array/element_access/constexpr_c++17.cc: Check
4217 std::array<T, 0>::data().
4220 Copyright (C) 2023 Free Software Foundation, Inc.
4222 Copying and distribution of this file, with or without modification,
4223 are permitted in any medium without royalty provided the copyright
4224 notice and this notice are preserved.