]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/ChangeLog
libstdc++: Optimize std::string::assign(Iter, Iter) [PR110945]
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
1 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
2
3 * include/bits/basic_string.tcc (resize_and_overwrite): Invoke
4 the callable with the same size as resize_and_overwrite was
5 called with.
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.
11
12 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
13
14 * include/bits/version.def (stds): Update value for C++23.
15 * include/bits/version.h: Regenerate.
16
17 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
18
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:
22 Likewise.
23 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
24 Likewise.
25 * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
26 Likewise.
27 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h: Likewise.
28
29 2023-08-16 Arsen Arsenović <arsen@aarsen.me>
30
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
49 __cpp_lib_erase_if.
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
152 __cpp_lib_erase_if.
153 (erase, erase_if): Guard behind __cpp_lib_erase_if.
154 * include/std/thread: Switch to bits/version.h for
155 __cpp_lib_jthread.
156 * include/std/stop_token: Switch to bits/version.h for
157 __cpp_lib_jthread.
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
199 __cpp_lib_erase_if.
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
218 __cpp_lib_erase_if.
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
228 either.
229 * include/std/deque: Switch to bits/version.h for
230 __cpp_lib_erase_if.
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
251 __cpp_lib_int_pow2.
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
265 __cpp_lib_to_array.
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
272 __cpp_lib_byte.
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
280 FTM.
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
367 __cpp_lib_ranges.
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
396 __cpp_lib_erase_if.
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,
416 rather than C++20.
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:
430 Update line numbers.
431
432 2023-08-16 Arsen Arsenović <arsen@aarsen.me>
433
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
444 version.def.
445 * include/std/version: Replace with a __glibcxx_want_all define
446 and bits/version.h include.
447
448 2023-08-14 Paul Dreik <gccpatches@pauldreik.se>
449
450 PR libstdc++/110860
451 * include/std/format (__formatter_fp::format): Use frexp instead
452 of log10.
453
454 2023-08-12 Ken Matsui <kmatsui@gcc.gnu.org>
455
456 * include/std/type_traits (true_type): Use __bool_constant
457 instead.
458 (false_type): Likewise.
459 (bool_constant): Likewise.
460
461 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
462
463 PR libstdc++/110990
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.
473
474 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
475
476 PR libstdc++/104167
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
482 C++20.
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.
503
504 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
505
506 PR libstdc++/110860
507 * include/std/format (__formatter_fp::format): Do not call log10
508 with zero values.
509
510 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
511
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.
516
517 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
518
519 * include/bits/stl_iterator.h (__clamped_iter_cat_t): Remove.
520
521 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
522
523 PR libstdc++/110974
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
528 call it.
529
530 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
531
532 PR libstdc++/110968
533 * include/std/format (__formatter_fp::format): Check return
534 value of _M_localize.
535 * testsuite/std/format/functions/format.cc: Check classic
536 locale.
537
538 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
539
540 PR libstdc++/110970
541 * include/bits/stl_iterator.h (__detail::__move_iter_cat): Use
542 __iter_category_t.
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.
547
548 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
549
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.
558
559 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
560
561 * include/bits/list.tcc (list::sort(Cmp)): Fix -Wsign-compare
562 warning for loop condition.
563
564 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
565
566 * include/std/complex: Add diagnostic pragma for clang.
567
568 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
569
570 * include/bits/shared_ptr_atomic.h (atomic): Change class-head
571 to struct.
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.
579
580 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
581
582 * include/bits/alloc_traits.h (allocate): Add [[maybe_unused]]
583 attribute.
584 * include/bits/regex_executor.tcc: Remove name of unused
585 parameter.
586 * include/bits/shared_ptr_atomic.h (atomic_is_lock_free):
587 Likewise.
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):
594 Likewise.
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.
599
600 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
601
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.
606
607 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
608
609 * include/std/format: Fix some warnings.
610 (__format::__write(Ctx&, basic_string_view<CharT>)): Remove
611 unused function template.
612
613 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
614
615 PR libstdc++/110860
616 * include/std/format (__formatter_fp::format): Do not use
617 __builtin_abs and __builtin_log10 with arbitrary floating-point
618 types.
619
620 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
621
622 PR libstdc++/110917
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.
627
628 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
629
630 PR libstdc++/110862
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.
634
635 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
636
637 * configure: Regenerate.
638
639 2023-08-07 Alan Modra <amodra@gmail.com>
640
641 * configure: Regenerate.
642
643 2023-08-07 Alexander von Gluck IV <kallisti5@unixzen.com>
644
645 * configure: Regenerate.
646
647 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
648
649 * configure: Regenerate.
650
651 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
652
653 * configure: Regenerate.
654
655 2023-08-07 H.J. Lu <hjl.tools@gmail.com>
656
657 * configure: Regenerate.
658
659 2023-08-07 H.J. Lu <hjl.tools@gmail.com>
660
661 * configure: Regenerate.
662
663 2023-08-06 François Dumont <fdumont@gcc.gnu.org>
664
665 * config/abi/pre/gnu-versioned-namespace.ver: Add __cxa_call_terminate
666 symbol export.
667
668 2023-07-30 François Dumont <fdumont@gcc.gnu.org>
669
670 * src/c++11/compatibility-ldbl-facets-aliases.h: Replace #define with
671 proper #error.
672 * src/c++11/locale-inst-monetary.h: Likewise.
673 * src/c++11/locale-inst-numeric.h: Likewise.
674
675 2023-07-27 Jonathan Wakely <jwakely@redhat.com>
676
677 PR libstdc++/108046
678 * include/std/format (__formatter_fp::format): Ensure __expc is
679 always set for all presentation types. Set __z correctly for
680 zero precision.
681 * testsuite/std/format/functions/format.cc: Check problem cases.
682
683 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
684
685 PR libstdc++/110807
686 * testsuite/23_containers/vector/bool/110807.cc: Require c++11.
687
688 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
689
690 PR libstdc++/110807
691 * include/bits/stl_bvector.h (vector(const vector&)): Access
692 iterators before allocating.
693 * include/bits/vector.tcc (vector<bool>::_M_insert_range):
694 Likewise.
695 * testsuite/23_containers/vector/bool/110807.cc: New test.
696
697 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
698
699 * include/bits/algorithmfwd.h (random_shuffle): Add deprecated
700 attribute.
701 * include/bits/stl_algo.h (random_shuffle): Correct comments.
702 * testsuite/25_algorithms/random_shuffle/1.cc: Disable
703 deprecated warnings.
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
707 test.
708
709 2023-07-26 Nathaniel Shead <nathanieloshead@gmail.com>
710
711 * testsuite/25_algorithms/equal/constexpr_neg.cc: Update diagnostic
712 locations.
713 * testsuite/26_numerics/gcd/105844.cc: Likewise.
714 * testsuite/26_numerics/lcm/105844.cc: Likewise.
715
716 2023-07-24 Deev Patel <pateldeev@nevada.unr.edu>
717
718 * include/std/format (_Formatting_scanner::_M_on_chars): Add
719 missing constexpr specifier.
720 (_Formatting_scanner::_M_format_arg): Likewise.
721
722 2023-07-24 Jonathan Wakely <jwakely@redhat.com>
723
724 PR libstdc++/110653
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.
728
729 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
730
731 PR libstdc++/110077
732 * src/c++17/floating_from_chars.cc (from_chars): Only define
733 _Float128 overload when using __strfromf128.
734
735 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
736
737 PR libstdc++/110593
738 * include/bits/chrono.h (duration): Improve static assert
739 messages.
740 (__is_ratio): Move to ...
741 * include/std/ratio (__is_ratio): ... here.
742 (__is_ratio_v): New variable template and partial
743 specialization.
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:
748 New test.
749 * testsuite/20_util/duration/requirements/typedefs_neg1.cc:
750 Adjust expected error.
751 * testsuite/20_util/duration/requirements/typedefs_neg2.cc:
752 Likewise.
753
754 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
755
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
761 for duration types.
762 * testsuite/std/time/hh_mm_ss/io.cc: Check negative values.
763
764 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
765
766 PR libstdc++/110719
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
770 formats.
771 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
772
773 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
774
775 * include/std/format (__write_padded): Initialize first element
776 of array to avoid a -Wmaybe-uninitialized warning.
777
778 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
779
780 PR libstdc++/110719
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,
785 %H, %I, %m and %M.
786 (__formatter_chrono::_M_c): Use _S_floor_seconds to remove
787 subsecond precision.
788 (__formatter_chrono::_M_C_y_Y): Use _M_locale_fmt to handle
789 modifiers.
790 (__formatter_chrono::_M_e): Replace with _M_d_e and use
791 _M_locale_fmt.
792 (__formatter_chrono::_M_I): Replace with _M_H_I and use
793 _M_locale_fmt.
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.
810
811 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
812
813 PR libstdc++/110708
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.
817
818 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
819
820 PR libstdc++/110653
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:
824 Likewise.
825 * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
826 Likewise.
827 * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
828 Likewise.
829 * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
830 Likewise.
831
832 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
833
834 PR libstdc++/110653
835 * include/bits/basic_string.h [!_GLIBCXX_HAVE_STRTOF] (stof):
836 Define in terms of std::stod.
837
838 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
839
840 PR libstdc++/110653
841 * include/bits/basic_string.h [_GLIBCXX_HAVE_STRTOF] (stof):
842 Define.
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.
847
848 2023-07-13 Jonathan Wakely <jwakely@redhat.com>
849
850 PR libstdc++/110653
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
856 of stod.
857
858 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
859
860 PR libstdc++/95048
861 * testsuite/27_io/filesystem/path/construct/95048.cc: Check
862 conversions to wide strings.
863 * testsuite/experimental/filesystem/path/construct/95048.cc:
864 Likewise.
865
866 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
867
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.
873
874 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
875
876 PR libstdc++/110574
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
888 of fseek.
889 (__basic_file<char>::showmanyc): Use get_file_offset.
890
891 2023-07-12 Ken Matsui <kmatsui@gcc.gnu.org>
892
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.
897
898 2023-07-06 Tianqiang Shuai <1101282468@qq.com>
899
900 * config/io/basic_file_stdio.cc (xwrite) [USE_STDIO_PURE]: Fix
901 first argument.
902
903 2023-07-06 Jonathan Wakely <jwakely@redhat.com>
904
905 PR libstdc++/110574
906 * doc/xml/manual/configure.xml: Describe stdio_pure argument to
907 --enable-cstdio.
908 * doc/html/manual/configure.html: Regenerate.
909
910 2023-07-05 Thomas Rodgers <trodgers@redhat.com>
911
912 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Delete
913 file.
914 * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
915 New file.
916 * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
917 Likewise.
918 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
919 Likewise.
920 * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
921 Likewise.
922 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
923 Likewise.
924
925 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
926
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:
930 Likewise.
931
932 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
933
934 PR libstdc++/110542
935 * include/bits/stl_uninitialized.h (__uninitialized_default_n):
936 Do not use std::fill_n during constant evaluation.
937
938 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
939
940 * include/bits/vector.tcc (_M_default_append): Replace try-block
941 with RAII types.
942
943 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
944
945 * include/bits/iterator_concepts.h (projected): Add typename.
946
947 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
948
949 * testsuite/27_io/headers/iosfwd/synopsis.cc: Make wsyncbuf and
950 wosyncstream depend on _GLIBCXX_USE_CXX11_ABI.
951
952 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
953
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+.
958
959 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
960
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.
964
965 2023-07-03 Iain Sandoe <iain@sandoe.co.uk>
966
967 * testsuite/lib/libstdc++.exp: Remove additional flag handled
968 by Darwin specs.
969
970 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
971
972 PR libstdc++/110432
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
978 __has_attribute.
979 * src/c++98/ios_base_init.h: Use new autoconf macro instead of
980 __has_attribute.
981
982 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
983
984 * src/c++11/random.cc (random_device::_M_init): Add maybe_unused
985 attribute.
986
987 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
988
989 PR libstdc++/105081
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.
993
994 2023-06-30 Hans-Peter Nilsson <hp@axis.com>
995
996 PR libstdc++/108672
997 * include/pstl/unseq_backend_simd.h (__simd_or): Re-apply using
998 __INT32_TYPE__ instead of int32_t.
999
1000 2023-06-29 Jonathan Wakely <jwakely@redhat.com>
1001
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.
1006
1007 2023-06-29 Jonathan Wakely <jwakely@redhat.com>
1008
1009 PR libstdc++/110462
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.
1015
1016 2023-06-29 Tom Tromey <tromey@adacore.com>
1017
1018 * testsuite/lib/gdb-test.exp (gdb-test): Relax type-printer
1019 regexp.
1020
1021 2023-06-28 Jan Hubicka <jh@suse.cz>
1022
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.
1027
1028 2023-06-26 Thomas Rodgers <trodgers@redhat.com>
1029
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:
1049 Likewise.
1050 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
1051 Likewise.
1052 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
1053 Likewise.
1054 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
1055 Likewise.
1056 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
1057 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
1058 Likewise.
1059 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
1060 Likewise.
1061 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
1062 Likewise.
1063 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
1064 Likewise.
1065 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
1066 Likewise.
1067 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
1068 Likewise.
1069 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
1070 Likewise.
1071 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
1072 Likewise.
1073 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
1074 Likewise.
1075 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
1076 Likewise.
1077 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
1078 Likewise.
1079 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
1080 Likewise.
1081 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
1082 Likewise.
1083 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
1084 Likewise.
1085 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
1086 Likewise.
1087 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
1088 Likewise.
1089 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
1090 Likewise.
1091 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
1092 Likewise.
1093 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
1094 Likewise.
1095 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
1096 Likewise.
1097 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
1098 Likewise.
1099 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
1100 Likewise.
1101 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
1102 Likewise.
1103 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
1104 Likewise.
1105 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
1106 Likewise.
1107 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
1108 Likewise.
1109 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
1110 Likewise.
1111 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
1112 Likewise.
1113 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
1114 Likewise.
1115 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
1116 Likewise.
1117 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
1118 Likewise.
1119 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
1120 Likewise.
1121 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
1122 Likewise.
1123 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
1124 Likewise.
1125 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
1126 Likewise.
1127 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc:
1128 Likewise.
1129 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
1130 Likewise.
1131 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
1132 Likewise.
1133 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
1134 Likewise.
1135 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
1136 Likewise.
1137 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
1138 Likewise.
1139 * testsuite/25_algorithms/pstl/alg_sorting/set.cc:
1140 Likewise.
1141 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc:
1142 Likewise.
1143 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
1144 Likewise.
1145 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc:
1146 Likewise.
1147 * testsuite/26_numerics/pstl/numeric_ops/scan.cc:
1148 Likewise.
1149 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
1150 Likewise.
1151 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
1152 Likewise.
1153 * testsuite/util/pstl/test_utils.h:
1154 Likewise.
1155
1156 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
1157
1158 PR libstdc++/110239
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
1162 of uint64_t.
1163 * testsuite/std/format/string.cc: Test too-large widths.
1164
1165 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
1166
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:
1171 New test.
1172
1173 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
1174
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.
1180
1181 2023-06-23 Jonathan Wakely <jwakely@redhat.com>
1182
1183 * include/bits/vector.tcc (_M_realloc_insert): Replace try-block
1184 with RAII types.
1185
1186 2023-06-20 Jonathan Wakely <jwakely@redhat.com>
1187
1188 * include/std/array (to_array(T(&)[N])): Remove redundant
1189 condition.
1190 (to_array(T(&&)[N])): Remove redundant std::move.
1191
1192 2023-06-16 Alexandre Oliva <oliva@adacore.com>
1193
1194 * testsuite/20_util/from_chars/4.cc: Skip long double on
1195 aarch64-rtems.
1196
1197 2023-06-16 Joel Brobecker <brobecker@adacore.com>
1198
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.
1203
1204 2023-06-14 Jonny Grant <jg@jguk.org>
1205
1206 * doc/xml/manual/extensions.xml: Remove demangle exception
1207 description and include.
1208 * doc/html/manual/ext_demangling.html: Regenerate.
1209
1210 2023-06-10 Hans-Peter Nilsson <hp@axis.com>
1211
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.
1215
1216 2023-06-09 Ken Matsui <kmatsui@cs.washington.edu>
1217
1218 * include/std/type_traits: Use using instead of typedef
1219
1220 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1221
1222 PR libstdc++/110077
1223 * src/c++17/floating_from_chars.cc (from_chars) <_Float128>:
1224 Only define if _Float128 and long double have different
1225 representations.
1226
1227 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1228
1229 PR libstdc++/100285
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.
1234
1235 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1236
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.
1241
1242 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1243
1244 PR libstdc++/110149
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.
1253
1254 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1255
1256 PR libstdc++/110167
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.
1262
1263 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
1264
1265 * testsuite/23_containers/deque/modifiers/emplace/52799.cc:
1266 Removed.
1267 * testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc:
1268 Removed.
1269 * testsuite/23_containers/list/modifiers/emplace/52799.cc:
1270 Removed.
1271 * testsuite/23_containers/list/modifiers/emplace/const_iterator.cc:
1272 Removed.
1273 * testsuite/23_containers/vector/modifiers/emplace/52799.cc:
1274 Removed.
1275 * testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc:
1276 Removed.
1277 * testsuite/23_containers/deque/modifiers/emplace/1.cc: New
1278 test.
1279 * testsuite/23_containers/list/modifiers/emplace/1.cc: New
1280 test.
1281 * testsuite/23_containers/vector/modifiers/emplace/1.cc: New
1282 test.
1283
1284 2023-06-07 Jakub Jelinek <jakub@redhat.com>
1285
1286 PR libstdc++/110145
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.
1295
1296 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
1297
1298 * testsuite/util/testsuite_abi.cc (check_version): Re-add
1299 CXXABI_1.3.14.
1300
1301 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
1302
1303 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
1304 Require effective target exceptions_enabled instead of using
1305 dg-skip-if.
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:
1309 Likewise.
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:
1313 Likewise.
1314 * testsuite/ext/mt_allocator/check_allocate_max_size.cc:
1315 Likewise.
1316 * testsuite/ext/new_allocator/check_allocate_max_size.cc:
1317 Likewise.
1318 * testsuite/ext/pool_allocator/check_allocate_max_size.cc:
1319 Likewise.
1320 * testsuite/ext/throw_allocator/check_allocate_max_size.cc:
1321 Likewise.
1322
1323 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
1324
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:
1337 Likewise.
1338 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc:
1339 Likewise.
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:
1346 Likewise.
1347 * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
1348 Likewise.
1349 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc:
1350 Likewise.
1351 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc:
1352 Likewise.
1353 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc:
1354 Likewise.
1355 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
1356
1357 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
1358
1359 Revert:
1360 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1361
1362 * configure.ac: Use AS_IF.
1363 * configure: Regenerate.
1364
1365 2023-06-07 Thomas Schwinge <thomas@codesourcery.com>
1366
1367 * testsuite/lib/prune.exp (libstdc++-dg-prune): Support
1368 'UNSUPPORTED: [...]: exception handling disabled'.
1369
1370 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1371
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.
1375
1376 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1377 Jakub Jelinek <jakub@redhat.com>
1378
1379 PR libstdc++/104772
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__.
1384
1385 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1386
1387 * configure.ac: Use AS_IF.
1388 * configure: Regenerate.
1389
1390 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
1391
1392 PR libstdc++/109822
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.
1396
1397 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
1398
1399 PR libstdc++/110054
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.
1406
1407 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
1408
1409 * include/experimental/bits/simd.h (__bit_cast): Use
1410 __gnu__::__vector_size__ instead of gnu::vector_size.
1411
1412 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1413
1414 PR libstdc++/110139
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
1420 test.
1421
1422 2023-06-06 Joseph Faulls <Joseph.Faulls@imgtec.com>
1423
1424 * include/bits/locale_classes.tcc: Remove check for
1425 codecvt<char8_t, char, mbstate_t> facet.
1426
1427 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1428
1429 * src/filesystem/ops-common.h (do_copy_file) [O_CLOEXEC]: Set
1430 close-on-exec flag on file descriptors.
1431
1432 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
1433
1434 PR libstdc++/108178
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:
1438 New test.
1439
1440 2023-06-06 Jannik Glückert <jannik.glueckert@gmail.com>
1441
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.
1448
1449 2023-06-06 Jannik Glückert <jannik.glueckert@gmail.com>
1450
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
1456 zero-length files.
1457 (do_copy_file): Use it.
1458
1459 2023-06-04 Jason Merrill <jason@redhat.com>
1460
1461 PR c++/97720
1462 * libsupc++/eh_call.cc (__cxa_call_terminate): Take void*.
1463 * config/abi/pre/gnu.ver: Add it.
1464
1465 2023-06-02 François Dumont <fdumont@gcc.gnu.org>
1466
1467 * include/parallel/algobase.h: Include <parallel/search.h>.
1468
1469 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
1470
1471 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
1472 Add const to equality operator.
1473
1474 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
1475
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
1483 error().
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.
1487
1488 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
1489
1490 PR libstdc++/110060
1491 * include/bits/stl_vector.h (_Vector_base::_M_invariant):
1492 Remove.
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)):
1497 Likewise.
1498 * testsuite/23_containers/vector/capacity/invariant.cc: Moved
1499 to...
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.
1504
1505 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
1506
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.
1510
1511 2023-06-01 Jason Merrill <jason@redhat.com>
1512
1513 * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Don't check
1514 handlers in the cleanup phase.
1515
1516 2023-06-01 Matthias Kretz <m.kretz@gsi.de>
1517
1518 PR libstdc++/110050
1519 * include/experimental/bits/simd.h (__vectorized_sizeof): With
1520 __have_neon_a32 only single-precision float works (in addition
1521 to integers).
1522
1523 2023-06-01 François Dumont <fdumont@gcc.gnu.org>
1524
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>):
1531 Move...
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>.
1535
1536 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1537
1538 PR libstdc++/109818
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.
1545
1546 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1547
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:
1568 Likewise.
1569 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
1570 Likewise.
1571 * testsuite/util/testsuite_random.h: Likewise.
1572
1573 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1574
1575 * include/bits/stl_vector.h (_Vector_base::_M_invariant()): New
1576 function.
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).
1581
1582 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1583
1584 PR libstdc++/109921
1585 * src/c++17/floating_from_chars.cc: Check __FLT128_MANT_DIG__ is
1586 defined before trying to use _Float128.
1587
1588 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1589
1590 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Fix for 32-bit pointers
1591 to check __INT_PTR_WIDTH__ instead of sizeof(void*).
1592 * configure: Regenerate.
1593
1594 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1595
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
1599 <exception> here.
1600
1601 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1602
1603 * configure.ac: Replace use of -o operator for test.
1604 * configure: Regenerate.
1605
1606 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1607
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.
1613
1614 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1615
1616 PR libstdc++/104772
1617 * include/std/limits (numeric_limits<__float128>): Define.
1618 * testsuite/18_support/numeric_limits/128bit.cc: New test.
1619
1620 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1621
1622 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Extend logic for avr and
1623 msp430 to all 16-bit targets.
1624 * configure: Regenerate.
1625
1626 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1627
1628 PR libstdc++/109921
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
1632 binary64.
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.
1638
1639 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
1640
1641 PR libstdc++/109922
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.
1651
1652 2023-05-30 Alexandre Oliva <oliva@adacore.com>
1653
1654 * testsuite/20_util/from_chars/4.cc: Skip long double test06
1655 on x86_64-vxworks.
1656 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
1657 x86_64-vxworks.
1658
1659 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
1660
1661 PR libstdc++/109822
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
1665 generator ctor.
1666 * testsuite/experimental/simd/pr109822_cast_functions.cc: New
1667 test.
1668
1669 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
1670
1671 * testsuite/experimental/simd/tests/integer_operators.cc:
1672 Compute expected value differently to avoid getting turned into
1673 a vector shift.
1674
1675 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
1676
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).
1680
1681 2023-05-26 Matthias Kretz <m.kretz@gsi.de>
1682
1683 * include/experimental/bits/simd_ppc.h (_S_bit_shift_left):
1684 Negative __y is UB, so prefer signed compare.
1685
1686 2023-05-25 Jonathan Wakely <jwakely@redhat.com>
1687
1688 * testsuite/util/testsuite_allocator.h (PointerBase): Add
1689 relational operators.
1690
1691 2023-05-25 Alexandre Oliva <oliva@adacore.com>
1692
1693 * testsuite/20_util/to_chars/long_double.cc: Expect execution
1694 fail on x86-vxworks.
1695
1696 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
1697
1698 PR libstdc++/109949
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.
1705
1706 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
1707
1708 PR libstdc++/109261
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__.
1713
1714 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
1715
1716 PR libstdc++/109261
1717 * include/experimental/bits/simd_neon.h (_S_reduce): Add
1718 constexpr and make NEON implementation conditional on
1719 not __builtin_is_constant_evaluated.
1720
1721 2023-05-23 Matthias Kretz <m.kretz@gsi.de>
1722
1723 PR libstdc++/109261
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
1730 internal APIs).
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
1746 constexpr.
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
1755 evaluation.
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
1761 case.
1762 * testsuite/experimental/simd/pr109261_constexpr_simd.cc: New
1763 test.
1764
1765 2023-05-22 Matthias Kretz <m.kretz@gsi.de>
1766
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:
1774 Likewise.
1775 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
1776 Move totest and expect1 into #ifdef'ed block.
1777
1778 2023-05-19 Gerald Pfeifer <gerald@pfeifer.com>
1779
1780 * doc/xml/manual/strings.xml: Move lafstern.org reference to https.
1781 * doc/html/manual/strings.html: Regenerate.
1782
1783 2023-05-17 Jakub Jelinek <jakub@redhat.com>
1784
1785 PR libstdc++/109883
1786 * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc: New test.
1787
1788 2023-05-17 Jakub Jelinek <jakub@redhat.com>
1789
1790 PR libstdc++/109883
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):
1795 Likewise.
1796 (fma): Move __gnu_cxx::__promote_3 using template after
1797 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads.
1798
1799 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
1800
1801 * testsuite/18_support/headers/limits/synopsis.cc: Uncomment
1802 checks for float_round_style and float_denorm_style.
1803
1804 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
1805
1806 * include/bits/c++config: Add system_header pragma.
1807
1808 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
1809
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):
1814 Likewise.
1815 * testsuite/20_util/expected/lwg3877.cc: New test.
1816
1817 2023-05-17 Ken Matsui <kmatsui@cs.washington.edu>
1818
1819 * include/std/type_traits: Use __bool_constant instead of
1820 integral_constant.
1821
1822 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
1823
1824 * configure: Regenerate.
1825
1826 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
1827
1828 PR libstdc++/109741
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.
1836
1837 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
1838
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.
1849
1850 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
1851
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:
1877 Likewise.
1878 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
1879 Likewise.
1880
1881 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
1882
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.
1890
1891 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
1892
1893 * testsuite/ext/debug_allocator/check_deallocate_null.cc: Add
1894 assertion to ensure expected exception is throw.
1895
1896 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
1897
1898 * testsuite/libstdc++-prettyprinters/chrono.cc: Only test
1899 printer for chrono::zoned_time for cx11 ABI and tzdb effective
1900 target.
1901
1902 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
1903
1904 * acinclude.m4 (GLIBCXX_CHECK_PTHREAD_MUTEX_CLOCKLOCK): Define
1905 _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK in terms of _GLIBCXX_TSAN.
1906 * configure: Regenerate.
1907
1908 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
1909
1910 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Use a non-null pointer
1911 to check for nan, nanf, and nanl.
1912 * configure: Regenerate.
1913
1914 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
1915
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.
1920
1921 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
1922
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.
1932
1933 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
1934
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.
1944
1945 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
1946
1947 * testsuite/experimental/feat-cxx14.cc: Remove dependency on
1948 _GLIBCXX_USE_C99_STDINT_TR1.
1949
1950 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
1951
1952 * testsuite/22_locale/locale/cons/unicode.cc: Remove dependency
1953 on _GLIBCXX_USE_C99_STDINT_TR1.
1954
1955 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
1956
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.
1960
1961 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
1962
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.
1966
1967 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
1968
1969 PR libstdc++/109772
1970 * include/std/chrono (hh_mm_ss::__fits): Remove variable
1971 template.
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>>.
1976
1977 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
1978
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:
1992 Likweise.
1993
1994 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
1995
1996 PR libstdc++/109758
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.
2000
2001 2023-05-10 François Dumont <fdumont@gcc.gnu.org>
2002
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
2010 _M_begin() once.
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
2015 const_iterator.
2016 (_Hashtable<>::find): Likewise.
2017 (_Hashtable<>::_M_emplace): Likewise.
2018 (_Hashtable<>::_M_insert_unique): Likewise.
2019
2020 2023-05-09 Jonathan Wakely <jwakely@redhat.com>
2021
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.
2030
2031 2023-05-05 Alexandre Oliva <oliva@adacore.com>
2032
2033 * testsuite/20_util/from_chars/4.cc: Skip long double test06
2034 on aarch64-vxworks.
2035 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
2036 aarch64-vxworks.
2037
2038 2023-05-04 Jonathan Wakely <jwakely@redhat.com>
2039
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.
2043
2044 2023-05-04 Florian Weimer <fweimer@redhat.com>
2045
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
2048 libgcc_s.
2049
2050 2023-05-03 Jakub Jelinek <jakub@redhat.com>
2051
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.
2062
2063 2023-05-03 Jakub Jelinek <jakub@redhat.com>
2064
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
2070 versions.
2071 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: New
2072 file.
2073
2074 2023-05-03 Kefu Chai <kefu.chai@scylladb.com>
2075 Jonathan Wakely <jwakely@redhat.com>
2076
2077 PR libstdc++/109703
2078 * include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)):
2079 Initialize _M_string_length.
2080
2081 2023-05-02 Jakub Jelinek <jakub@redhat.com>
2082
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.
2091
2092 2023-05-02 Jakub Jelinek <jakub@redhat.com>
2093
2094 PR libstdc++/109694
2095 * src/c++98/ios_init.cc: Add #pragma GCC diagnostic ignored for
2096 -Wattribute-alias.
2097
2098 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
2099
2100 * include/bits/random.h (gamma_distribution): Add to the right
2101 doxygen group.
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.
2107
2108 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
2109
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.
2116
2117 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
2118
2119 * doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
2120 from header paths.
2121
2122 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
2123
2124 * include/bits/move.h: Simplify opening/closing namespace std.
2125
2126 2023-04-28 Jakub Jelinek <jakub@redhat.com>
2127
2128 PR libstdc++/108969
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.
2139
2140 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2141
2142 * include/bits/mofunc_impl.h: Fix typo in doxygen comment.
2143 * include/std/format: Likewise.
2144
2145 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2146
2147 * doc/doxygen/user.cfg.in (FORMULA_TRANSPARENT, DOT_FONTNAME)
2148 (DOT_FONTSIZE, DOT_TRANSPARENT): Remove obsolete options.
2149
2150 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2151
2152 * doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
2153 HTML docs.
2154 * include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
2155 from doxygen docs.
2156 * include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
2157 Likewise.
2158 * include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
2159 Likewise.
2160 * include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
2161 Likewise.
2162 * include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
2163 (_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
2164 (_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
2165 (_DEFINE_BINARY_OPERATOR): Likewise.
2166
2167 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2168
2169 * include/bits/memory_resource.h: Improve doxygen comments.
2170 * include/std/memory_resource: Likewise.
2171
2172 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2173
2174 PR libstdc++/40380
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.
2191
2192 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
2193
2194 PR libstdc++/105081
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.
2201
2202 2023-04-24 Patrick Palka <ppalka@redhat.com>
2203
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
2209 one.
2210
2211 2023-04-19 Patrick Palka <ppalka@redhat.com>
2212 Jonathan Wakely <jwakely@redhat.com>
2213
2214 PR c++/100157
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.
2219
2220 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
2221
2222 Revert:
2223 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2224
2225 PR libstdc++/108969
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:
2234 Regenerate.
2235 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
2236 Regenerate.
2237 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
2238 Regenerate.
2239 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
2240 Regenerate.
2241 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
2242 Regenerate.
2243 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
2244 Regenerate.
2245 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
2246 Regenerate.
2247 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
2248 Regenerate.
2249 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
2250
2251 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
2252
2253 Revert:
2254 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2255
2256 PR libstdc++/108969
2257 * config/abi/pre/gnu.ver: Fix preprocessor condition.
2258
2259 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2260
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.
2265
2266 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2267
2268 PR libstdc++/108969
2269 * config/abi/pre/gnu.ver: Fix preprocessor condition.
2270
2271 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
2272
2273 PR libstdc++/108969
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:
2282 Regenerate.
2283 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
2284 Regenerate.
2285 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
2286 Regenerate.
2287 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
2288 Regenerate.
2289 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
2290 Regenerate.
2291 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
2292 Regenerate.
2293 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
2294 Regenerate.
2295 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
2296 Regenerate.
2297 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
2298
2299 2023-04-18 Patrick Palka <ppalka@redhat.com>
2300
2301 PR libstdc++/108827
2302 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Bump value
2303 for C++23.
2304 * include/std/ranges (range_adaptor_closure): Define for C++23.
2305 * include/std/version (__cpp_lib_ranges): Bump value for
2306 C++23.
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.
2310
2311 2023-04-18 Patrick Palka <ppalka@redhat.com>
2312
2313 * include/bits/ranges_algo.h (__cpp_lib_ranges_contains):
2314 Define for C++23.
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.
2324
2325 2023-04-18 Patrick Palka <ppalka@redhat.com>
2326
2327 PR libstdc++/109525
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.
2332 (test03): New test.
2333
2334 2023-04-14 Patrick Palka <ppalka@redhat.com>
2335
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>>):
2365 Likewise.
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.
2387
2388 2023-04-14 Patrick Palka <ppalka@redhat.com>
2389
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.
2397
2398 2023-04-14 Patrick Palka <ppalka@redhat.com>
2399
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):
2411 Likewise.
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.
2418
2419 2023-04-14 Jonathan Wakely <jwakely@redhat.com>
2420
2421 * include/std/format (formatter): Add comment to deleted default
2422 constructor of primary template.
2423 (_Checking_scanner): Add static_assert.
2424
2425 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
2426
2427 * doc/xml/manual/using.xml: Document libstdc++exp.a library.
2428 * doc/html/*: Regenerate.
2429
2430 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
2431
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:
2436 Likewise.
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.
2443
2444 2023-04-12 Patrick Palka <ppalka@redhat.com>
2445
2446 * include/std/ranges (__cpp_lib_ranges_enumerate): Define
2447 for C++23.
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.
2458
2459 2023-04-12 Patrick Palka <ppalka@redhat.com>
2460
2461 * include/std/ranges (lazy_split_view::_OuterIter::_OuterIter):
2462 Propagate _M_trailing_empty in the const-converting constructor
2463 as per LWG 3904.
2464 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): Correct
2465 assertion.
2466 * testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test.
2467
2468 2023-04-12 Patrick Palka <ppalka@redhat.com>
2469
2470 * src/c++17/floating_from_chars.cc: Include <algorithm>,
2471 <iterator>, <limits> and <cstdint>.
2472
2473 2023-04-12 Patrick Palka <ppalka@redhat.com>
2474
2475 PR libstdc++/108291
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):
2480 New tests.
2481
2482 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
2483
2484 PR libstdc++/109482
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)):
2489 Likewise.
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:
2493 Likewise.
2494
2495 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
2496
2497 * src/c++20/tzdata.zi: Import new file from 2023c release.
2498
2499 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
2500
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:
2508 Ditto.
2509
2510 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
2511
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
2518
2519 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
2520
2521 * testsuite/17_intro/versionconflict.cc: New test.
2522 * include/std/version: Allow disabling the system_header pragma
2523 via _GLIBCXX_TESTING_SYSHDR.
2524
2525 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
2526
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
2534 block.
2535 * include/std/memory (__cpp_lib_atomic_value_initialization):
2536 Define on freestanding under the same conditions as in
2537 atomic_base.h.
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.
2563
2564 2023-04-05 John David Anglin <danglin@gcc.gnu.org>
2565
2566 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Double
2567 timeout factor on hppa*-*-*.
2568
2569 2023-04-05 Jonathan Wakely <jwakely@redhat.com>
2570
2571 * include/bits/regex.h (sub_match::swap): New function.
2572 * testsuite/28_regex/sub_match/lwg3204.cc: New test.
2573
2574 2023-04-04 Jonathan Wakely <jwakely@redhat.com>
2575
2576 * doc/xml/manual/extensions.xml: Remove std::bad_exception from
2577 example program.
2578 * doc/html/manual/ext_demangling.html: Regenerate.
2579
2580 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
2581
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().
2586
2587 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
2588
2589 PR libstdc++/109339
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.
2593
2594 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
2595
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
2600 flag.
2601
2602 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
2603
2604 PR libstdc++/109242
2605 * testsuite/20_util/optional/monadic/pr109340.cc: Moved to...
2606 * testsuite/20_util/optional/monadic/pr109242.cc: ...here.
2607
2608 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
2609
2610 * include/experimental/internet (ip::make_address): Implement
2611 missing overload.
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
2617 content.
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:
2621 Likewise.
2622 * testsuite/experimental/net/internet/endpoint/cons.cc:
2623 Likewise.
2624 * testsuite/experimental/net/internet/network/v4/cons.cc:
2625 Likewise.
2626 * testsuite/experimental/net/internet/network/v4/members.cc:
2627 Likewise.
2628 * testsuite/experimental/net/internet/endpoint/extensible.cc: New test.
2629
2630 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
2631
2632 * include/std/expected (expected::value() &): Use const lvalue
2633 for unex member passed to bad_expected_access constructor, as
2634 per LWG 3843.
2635
2636 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
2637
2638 PR libstdc++/109340
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.
2646
2647 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
2648
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.
2652
2653 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
2654
2655 PR libstdc++/103387
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.
2662
2663 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
2664
2665 * include/bits/char_traits.h (char_traits::copy): Return without
2666 using memcpy if n==0.
2667 (char_traits::assign): Likewise for memset.
2668
2669 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
2670
2671 PR libstdc++/109299
2672 * include/bits/basic_string.h (basic_string::_M_is_local()): Add
2673 hint for compiler that local strings fit in the local buffer.
2674
2675 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
2676
2677 PR libstdc++/109288
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()):
2681 Likewise.
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.
2685
2686 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
2687
2688 * include/experimental/bits/simd.h (is_simd_flag_type): New.
2689 (_IsSimdFlagType): New.
2690 (copy_from, copy_to, load ctors): Constrain _Flags using
2691 _IsSimdFlagType.
2692
2693 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
2694
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.
2698
2699 2023-03-27 Jakub Jelinek <jakub@redhat.com>
2700
2701 * testsuite/experimental/net/timer/waitable/dest.cc: Avoid -Wformat
2702 warning if size_t is not unsigned long.
2703
2704 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
2705
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.
2710
2711 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
2712
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.
2716
2717 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
2718
2719 * include/std/utility (__cpp_lib_constexpr_algorithms): Define,
2720 as per LWG 3792.
2721 * testsuite/20_util/exchange/constexpr.cc: Check for it.
2722
2723 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
2724
2725 * include/std/version (__cpp_lib_format): Define.
2726 * testsuite/std/format/functions/format.cc: Check it.
2727
2728 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
2729
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:
2734 Adjust.
2735
2736 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
2737
2738 * include/std/format: Add a comment noting that the resolution
2739 of LWG 3720 has been applied..
2740
2741 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
2742
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.
2746
2747 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
2748
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.
2753
2754 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
2755
2756 * include/experimental/bits/simd_x86.h
2757 (_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
2758 with __RECIPROCAL_MATH__.
2759
2760 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
2761
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__.
2766
2767 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
2768
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
2773 and ?:.
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.
2777
2778 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
2779
2780 * testsuite/experimental/simd/tests/operators.cc: Clang doesn't
2781 define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
2782
2783 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
2784
2785 * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix
2786 formatting.
2787
2788 2023-03-20 Marek Polacek <polacek@redhat.com>
2789
2790 PR c++/109159
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.
2794
2795 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
2796
2797 PR libstdc++/109182
2798 * include/std/expected (expected<void>::expected(in_place_t)):
2799 Remove template-head.
2800
2801 2023-03-18 Jonathan Wakely <jwakely@redhat.com>
2802
2803 PR libstdc++/109165
2804 * testsuite/18_support/coroutines/hash.cc: Use const object
2805 in second call.
2806
2807 2023-03-17 Jonathan Wakely <jwakely@redhat.com>
2808
2809 PR libstdc++/109165
2810 * include/std/coroutine (hash<>::operator()): Add const.
2811 * testsuite/18_support/coroutines/hash.cc: New test.
2812
2813 2023-03-14 Patrick Palka <ppalka@redhat.com>
2814
2815 PR libstdc++/109111
2816 * include/std/ranges (repeat_view): Remove redundant parentheses
2817 in requires-clause.
2818 (repeat_view::_Iterator): Correct the requires-clause.
2819
2820 2023-03-14 Patrick Palka <ppalka@redhat.com>
2821
2822 * include/bits/stl_iterator.h (move_iterator::_S_iter_concept):
2823 Define.
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
2827 for C++20.
2828 * testsuite/24_iterators/move_iterator/p2520r0.cc: New test.
2829
2830 2023-03-14 Patrick Palka <ppalka@redhat.com>
2831
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.
2836
2837 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
2838
2839 * include/bits/chrono.h (__is_duration_v, __is_time_point_v):
2840 Only define for C++17 and later.
2841
2842 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
2843
2844 * src/Makefile.am: Add comment about linker script fragments.
2845 * src/Makefile.in: Regenerate.
2846
2847 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
2848
2849 PR libstdc++/62196
2850 * include/bits/mask_array.h (mask_array): Add assertions to
2851 assignment operators.
2852 * include/std/valarray (valarray::operator[](valarray<bool>)):
2853 Add assertions.
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.
2863
2864 2023-03-13 Jakub Jelinek <jakub@redhat.com>
2865
2866 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
2867 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
2868
2869 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
2870
2871 * doc/Makefile.am: Add comment referring to documentation.
2872 * doc/Makefile.in: Regenerate.
2873
2874 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
2875
2876 * doc/html/*: Regenerate.
2877
2878 2023-03-13 Jonny Grant <jg@jguk.org>
2879
2880 * doc/xml/faq.xml: Update copyright year.
2881
2882 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
2883
2884 * include/bits/allocator.h: Fix typo in comment.
2885
2886 2023-03-12 Jakub Jelinek <jakub@redhat.com>
2887
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.
2890
2891 2023-03-12 Gerald Pfeifer <gerald@pfeifer.com>
2892
2893 * doc/xml/manual/documentation_hacking.xml: Move www.graphviz.org
2894 to https.
2895 * doc/html/manual/documentation_hacking.html: Regenerate.
2896
2897 2023-03-10 Jonathan Wakely <jwakely@redhat.com>
2898
2899 PR libstdc++/109064
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()
2903 and unique().
2904
2905 2023-03-09 Patrick Palka <ppalka@redhat.com>
2906
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.
2915
2916 2023-03-09 Patrick Palka <ppalka@redhat.com>
2917
2918 PR libstdc++/109024
2919 * include/std/ranges (chunk_by_view::_M_pred): Remove DMI as per
2920 LWG 3796.
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.
2924
2925 2023-03-09 Patrick Palka <ppalka@redhat.com>
2926
2927 PR libstdc++/108362
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.
2940
2941 2023-03-09 Patrick Palka <ppalka@redhat.com>
2942
2943 PR libstdc++/107572
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.
2948
2949 2023-03-09 Jonathan Wakely <jwakely@redhat.com>
2950
2951 PR libstdc++/108882
2952 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Fix incorrect
2953 patterns.
2954
2955 2023-03-07 Jakub Jelinek <jakub@redhat.com>
2956
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.
2962
2963 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
2964
2965 PR libstdc++/108882
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}.
2970
2971 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
2972
2973 * libsupc++/eh_personality.cc: Fix spelling in comment.
2974
2975 2023-03-03 Alexandre Oliva <oliva@adacore.com>
2976
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.
2980
2981 2023-03-03 Alexandre Oliva <oliva@adacore.com>
2982
2983 * testsuite/libstdc++-prettyprinters/80276.cc: Add
2984 std::string to debug info.
2985 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
2986
2987 2023-03-03 Alexandre Oliva <oliva@adacore.com>
2988
2989 PR libstdc++/104852
2990 PR libstdc++/95989
2991 PR libstdc++/52590
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.
2997
2998 2023-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2999
3000 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
3001 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
3002 Likewise.
3003 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
3004 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
3005 Likewise.
3006
3007 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
3008
3009 * include/bits/cow_string.h: Fix typo in comment.
3010
3011 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
3012
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.
3017
3018 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
3019
3020 PR libstdc++/108952
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.
3026
3027 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
3028
3029 PR libstdc++/108846
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
3034 value.
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.
3041
3042 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
3043
3044 * src/c++11/codecvt.cc: Add [[likely]] and [[unlikely]]
3045 attributes.
3046
3047 2023-02-27 Jonathan Wakely <jwakely@redhat.com>
3048
3049 * include/bits/basic_ios.h (basic_ios::_M_setstate): Add
3050 caveat to comment.
3051 * include/bits/basic_string.h (resize_and_overwrite): Add
3052 doxygen comment.
3053
3054 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
3055
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.
3064
3065 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
3066
3067 PR libstdc++/108030
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.
3097
3098 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
3099
3100 PR libstdc++/108856
3101 * include/experimental/bits/simd_builtin.h
3102 (_SimdImplBuiltin::_S_masked_unary): More efficient
3103 implementation of masked inc-/decrement for integers and floats
3104 without AVX2.
3105 * include/experimental/bits/simd_x86.h
3106 (_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract
3107 builtins for masked inc-/decrement.
3108
3109 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3110
3111 * include/experimental/executor (executor): Constrain template
3112 constructors.
3113
3114 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3115
3116 * include/experimental/internet (basic_endpoint): Add missing
3117 constexpr to comparison operators.
3118 * testsuite/experimental/net/internet/endpoint/cons.cc: New test.
3119
3120 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3121
3122 * include/experimental/internet (network_v4::netmask()): Avoid
3123 undefined shift.
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
3129 constexpr.
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.
3133
3134 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3135
3136 * include/experimental/internet (address_4(const bytes_type&)):
3137 Use __builtin_bit_cast if available, otherwise convert to
3138 network byte order.
3139 (address_v4::to_bytes()): Likewise, but convert from network
3140 byte order.
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:
3144 Likewise.
3145 * testsuite/experimental/net/internet/address/v4/members.cc:
3146 Check that bytes_type is a standard-layout type.
3147
3148 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3149
3150 * include/experimental/internet (address_v4::to_string):
3151 Optimize.
3152 * testsuite/experimental/net/internet/address/v4/members.cc:
3153 Check more addresses.
3154
3155 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3156
3157 * include/ext/aligned_buffer.h (__aligned_buffer): Add
3158 diagnostic pragmas.
3159
3160 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
3161
3162 * testsuite/std/format/arguments/lwg3810.cc: Move dg-options
3163 before dg-do.
3164
3165 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3166
3167 * testsuite/experimental/simd/tests/reductions.cc: Introduce
3168 max_distance as the type-dependent max error.
3169
3170 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3171
3172 * include/experimental/bits/simd_builtin.h (_S_set): Compare as
3173 int. The actual range of these indexes is very small.
3174
3175 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3176
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.
3180
3181 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3182
3183 PR libstdc++/108030
3184 * include/experimental/bits/simd_detail.h
3185 (_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for
3186 __clang__.
3187
3188 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
3189
3190 PR libstdc++/108030
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.
3195
3196 2023-02-22 Alexandre Oliva <oliva@adacore.com>
3197
3198 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex):
3199 Avoid destruction of the mutex pool.
3200
3201 2023-02-22 Alexandre Oliva <oliva@adacore.com>
3202
3203 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: xfail
3204 on vxworks.
3205 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
3206 Likewise.
3207
3208 2023-02-22 Alexandre Oliva <oliva@adacore.com>
3209
3210 * testsuite/17_intro/names.cc: Undef func on vxworks >= 7 in
3211 kernel mode.
3212
3213 2023-02-20 Andreas Schwab <schwab@linux-m68k.org>
3214
3215 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
3216
3217 2023-02-20 Matthias Kretz <m.kretz@gsi.de>
3218
3219 * include/experimental/bits/simd.h (__extract_part, split):
3220 Use reserved name for template parameter.
3221
3222 2023-02-20 Andreas Schwab <schwab@suse.de>
3223
3224 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
3225
3226 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
3227
3228 * doc/xml/faq.xml: Switch two links to www.open-std.org to https.
3229 * doc/html/faq.html: Regenerate.
3230
3231 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3232
3233 * include/experimental/bits/simd_math.h (__hypot): Bitcasting
3234 between scalars requires the __bit_cast helper function instead
3235 of simd_bit_cast.
3236
3237 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3238
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.
3243
3244 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3245
3246 * testsuite/experimental/simd/tests/bits/verify.h
3247 (verify::verify): Use %zx for size_t in format string.
3248
3249 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3250
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
3259 include guard.
3260 (genHalfBits): Simplify.
3261 * testsuite/experimental/simd/tests/bits/make_vec.h: Add include
3262 guard.
3263 (make_alternating_mask): Moved from mask_loadstore.
3264 * testsuite/experimental/simd/tests/bits/mathreference.h: Add
3265 include guard.
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):
3271 Removed.
3272 * testsuite/experimental/simd/tests/abs.cc: Only include
3273 bits/main.h.
3274 Ditto.
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.
3303
3304 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3305
3306 * testsuite/experimental/simd/README.md: Document the timeout
3307 and timeout-factor directives. Minor typo fixed.
3308
3309 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3310
3311 PR libstdc++/108030
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.
3322
3323 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
3324
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.
3329
3330 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3331
3332 * testsuite/std/format/arguments/lwg3810.cc: Replace UTF-8
3333 ellipsis character.
3334
3335 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3336
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.
3341
3342 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3343
3344 * include/experimental/optional: Fix header name in comment.
3345
3346 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3347
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.
3353
3354 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3355
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.
3362
3363 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3364
3365 * testsuite/17_intro/names_pstl.cc: Require et tbb_backend.
3366
3367 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3368
3369 * include/ext/throw_allocator.h: Use reserved names for
3370 parameters.
3371
3372 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3373
3374 * testsuite/17_intro/names_pstl.cc: Add space after effective
3375 target name.
3376
3377 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3378
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
3382 for parameters.
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):
3389 Likewise.
3390 * include/pstl/numeric_impl.h (__brick_adjacent_difference):
3391 Likewise.
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.
3396
3397 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3398
3399 * include/bits/fs_ops.h (create_directory): Use reserved name
3400 for parameter.
3401 * include/bits/ranges_algo.h (__contains_subrange_fn):
3402 Likewise.
3403 * include/bits/regex_automaton.h (_State_base::_M_print):
3404 Likewise.
3405 * include/bits/regex_automaton.tcc(_State_base::_M_print):
3406 Likewise.
3407 * include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise.
3408 * include/experimental/bits/fs_ops.h (create_directory):
3409 Likewise.
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.
3416
3417 2023-02-14 Gerald Pfeifer <gerald@pfeifer.com>
3418
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.
3422
3423 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
3424
3425 PR libstdc++/103934
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.
3432
3433 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
3434
3435 PR libstdc++/103934
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:
3441 Likewise.
3442
3443 2023-02-13 Gerald Pfeifer <gerald@pfeifer.com>
3444
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.
3448
3449 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
3450
3451 * doc/xml/manual/containers.xml: Tweak a link to N1780
3452 (C++ standard).
3453 * doc/html/manual/associative.html: Regenerate.
3454
3455 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
3456
3457 * doc/xml/manual/ctype.xml: Change www.unix.org to unix.org.
3458 * doc/html/manual/facets.html: Regenerate.
3459
3460 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
3461
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.
3465
3466 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
3467
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
3471 completed.
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
3475 freestanding mode.
3476 * doc/html/*: Regenerate.
3477
3478 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
3479
3480 * include/bits/ranges_algo.h (__find_last_fn): Rename T to _Tp.
3481 (__find_last_if_fn): Likewise.
3482
3483 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
3484
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:
3491 Likewise.
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:
3495 Likewise.
3496
3497 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
3498
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.
3506
3507 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
3508
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.
3514
3515 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
3516
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.
3531
3532 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
3533
3534 * src/Makefile.am [GLIBCXX_HOSTED] (SUBDIRS): Do not add
3535 filesystem, libbacktrace and experimental.
3536 * src/Makefile.in: Regenerate.
3537
3538 2023-02-04 Hans-Peter Nilsson <hp@axis.com>
3539
3540 PR libstdc++/108672
3541 * include/pstl/unseq_backend_simd.h (__simd_or): Use __INT32_TYPE__
3542 instead of int32_t.
3543
3544 2023-02-04 Gerald Pfeifer <gerald@pfeifer.com>
3545
3546 * doc/xml/manual/documentation_hacking.xml: Adjust link to pdftex.
3547 * doc/html/manual/documentation_hacking.html: Regenerate.
3548
3549 2023-02-04 François Dumont <fdumont@gcc.gnu.org>
3550
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):
3554 New test case.
3555
3556 2023-02-03 Samuel Thibault <samuel.thibault@gnu.org>
3557
3558 * config/os/gnu-linux/os_defines.h [!__linux__]
3559 (_GLIBCXX_NATIVE_THREAD_ID, _GLIBCXX_GTHREAD_USE_WEAK): Do not define.
3560
3561 2023-02-03 Patrick Palka <ppalka@redhat.com>
3562
3563 * include/bits/ranges_algo.h (__find_last_fn, find_last):
3564 Define.
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.
3570
3571 2023-02-03 Patrick Palka <ppalka@redhat.com>
3572
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.
3577
3578 2023-02-03 Patrick Palka <ppalka@redhat.com>
3579
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.
3584
3585 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
3586
3587 * doc/xml/manual/abi.xml: Tweak link to ABIcheck project.
3588 * doc/html/manual/abi.html: Regenerate.
3589
3590 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
3591
3592 * src/filesystem/ops-common.h [AVR] (__unsupported): Always use
3593 errc::function_not_supported instead of errc::not_supported.
3594
3595 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
3596
3597 * include/std/sstream (basic_stringbuf::view): Define for old
3598 std::string ABI.
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:
3604 Likewise.
3605 * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
3606 * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
3607 Likewise.
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:
3612 Likewise.
3613
3614 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
3615
3616 PR libstdc++/108636
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
3622 definitions to ...
3623 * src/c++17/fs_path.cc: ... here.
3624 * testsuite/27_io/filesystem/path/108636.cc: New test.
3625
3626 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
3627
3628 * include/std/variant (variant::operator=): Implement resolution
3629 of LWG 3585.
3630 * testsuite/20_util/variant/lwg3585.cc: New test.
3631
3632 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
3633
3634 * doc/xml/manual/using_exceptions.xml: Update a www.open-std.org
3635 link to https.
3636 * doc/html/manual/using_exceptions.html: Regenerate.
3637
3638 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
3639
3640 * doc/xml/manual/debug.xml: Fix link to online GDB manual.
3641 * doc/html/manual/debug.html: Regenerate.
3642
3643 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
3644
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.
3648
3649 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
3650
3651 * config/os/generic/error_constants.h (errc::value_too_large)
3652 [__AVR__]: Define.
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,
3660 close etc.
3661
3662 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
3663
3664 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR) [avr-*-*, msp430-*-*]: Set
3665 embed_zoneinfo=no
3666 * configure: Regenerate.
3667
3668 2023-02-01 Hans-Peter Nilsson <hp@axis.com>
3669
3670 PR testsuite/108632
3671 * testsuite/std/time/hh_mm_ss/1.cc (size): Add empty
3672 struct at end of S0.
3673
3674 2023-01-30 Gerald Pfeifer <gerald@pfeifer.com>
3675
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.
3680
3681 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
3682
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.
3687
3688 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
3689
3690 * doc/xml/manual/documentation_hacking.xml: Move sourceforge.net
3691 links to https.
3692 * doc/html/manual/documentation_hacking.html: Regenerate.
3693
3694 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
3695
3696 * doc/xml/manual/abi.xml: Update www.open-std.org link to https.
3697 * doc/html/manual/abi.html: Regenerate.
3698
3699 2023-01-27 Jakub Jelinek <jakub@redhat.com>
3700
3701 PR libstdc++/108568
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.
3706
3707 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
3708
3709 * src/c++20/tzdb.cc (tzdata_stream): Use constant instead of
3710 string literal.
3711
3712 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
3713
3714 PR libstdc++/108554
3715 * testsuite/23_containers/map/modifiers/108554.cc: Use dg-bogus.
3716
3717 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
3718
3719 * src/c++20/tzdb.cc (operator>>(istream&, ZoneInfo&)): Allow
3720 rules named "+" for compatibility with older tzdata.zi files.
3721
3722 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
3723
3724 PR libstdc++/108554
3725 * include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add
3726 nonnull attribute.
3727 (_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull
3728 attributes.
3729 * testsuite/23_containers/map/modifiers/108554.cc: New test.
3730
3731 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
3732
3733 PR libstdc++/108530
3734 * src/c++20/tzdb.cc (current_zone): Look for TIMEZONE or ZONE in
3735 /etc/sysconfig/clock, not DEFAULT_TIMEZONE.
3736
3737 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
3738
3739 * doc/xml/manual/intro.xml: Update links to www.open-std.org to
3740 use https.
3741 * doc/html/manual/bugs.html: Regenerate.
3742
3743 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
3744
3745 PR libstdc++/108530
3746 * src/c++20/tzdb.cc (current_zone): Look for DEFAULT_TIMEZONE in
3747 /etc/sysconfig/clock.
3748
3749 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
3750
3751 PR libstdc++/102301
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.
3759
3760 2023-01-23 François Dumont <fdumont@gcc.gnu.org>
3761
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()
3767 check.
3768 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_Unchecked):
3769 New.
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.
3774
3775 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
3776
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:
3781 Likewise.
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.
3785
3786 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
3787
3788 * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
3789 Always call _M_fini and _M_getentropy.
3790
3791 2023-01-18 Gerald Pfeifer <gerald@pfeifer.com>
3792
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.
3798
3799 2023-01-18 Dimitrij Mijoski <dmjpp@hotmail.com>
3800
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.
3804
3805 2023-01-17 Jonathan Wakely <jwakely@redhat.com>
3806
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.
3810
3811 2023-01-17 Martin Liska <mliska@suse.cz>
3812
3813 * src/libbacktrace/Makefile.in: Regenerate.
3814
3815 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
3816
3817 * src/c++20/tzdb.cc (_GLIBCXX_USE_CXX11_ABI): Define to 1.
3818
3819 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
3820
3821 PR libstdc++/108413
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.
3826
3827 2023-01-15 Gerald Pfeifer <gerald@pfeifer.com>
3828
3829 * doc/xml/manual/status_cxx2014.xml: Switch www.open-std.org to
3830 https.
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.
3835
3836 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
3837
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.
3840
3841 2023-01-15 François Dumont <fdumont@gcc.gnu.org>
3842
3843 PR libstdc++/108288
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)):
3848 Fix deadlock.
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:
3852 New test.
3853 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_pre_increment_neg.cc:
3854 New test.
3855
3856 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
3857
3858 * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
3859 dg-options.
3860
3861 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
3862
3863 * testsuite/std/time/clock/utc/io.cc: Use ctype to widen char.
3864
3865 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
3866
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.
3873
3874 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
3875
3876 * include/std/stacktrace (stacktrace_entry::_S_demangle): Use
3877 raw __name if __cxa_demangle could not demangle it.
3878
3879 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
3880
3881 PR libstdc++/108409
3882 * src/c++20/tzdb.cc (current_zone()) [_AIX]: Use TZ environment
3883 variable.
3884
3885 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
3886
3887 * src/c++20/tzdb.cc (TZDB_DISABLED): Disable all code for
3888 loading tzdb.
3889 * testsuite/std/time/tzdb/leap_seconds.cc: Require tzdb
3890 effective target.
3891 * testsuite/std/time/tzdb_list/1.cc: Likewise.
3892
3893 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
3894
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
3898 a directory.
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.
3915
3916 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
3917
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.
3929
3930 2023-01-14 François Dumont <fdumont@gcc.gnu.org>
3931
3932 * include/std/format [_GLIBCXX_INLINE_VERSION](to_chars): Adapt __asm symbol
3933 specifications.
3934 * config/abi/pre/gnu-versioned-namespace.ver: Add to_chars/from_chars symbols
3935 export.
3936
3937 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
3938
3939 * include/bits/std_mutex.h: Include <errno.h>.
3940
3941 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
3942
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
3948 unique_ptr.
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:
3952 Ditto.
3953 * testsuite/std/ranges/version_c++23.cc: Don't test for presence
3954 of __cpp_lib_ranges in !HOSTED.
3955
3956 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
3957
3958 * include/Makefile.am: Install bits/char_traits.h,
3959 std/string_view
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
3964 HOSTED.
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
3970 !HOSTED too.
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:
3985 Ditto.
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
3990 __STDC_HOSTED__.
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:
3994 Ditto.
3995
3996 2023-01-13 Dimitrij Mijoski <dmjpp@hotmail.com>
3997
3998 PR libstdc++/86419
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
4002 returning partial.
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
4007 tests.
4008 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: New
4009 test.
4010
4011 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
4012
4013 PR libstdc++/108331
4014 * config/io/c_io_stdio.h (__c_lock): Define as a typedef for
4015 __GTHREAD_LEGACY_MUTEX_T if defined.
4016
4017 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
4018
4019 PR libstdc++/108327
4020 * config/os/gnu-linux/ldbl-extra.ver (GLIBCXX_LDBL_3.4.31):
4021 Export __try_use_facet specializations for facets in namespace
4022 __gnu_cxx_ldbl128.
4023 * config/os/gnu-linux/ldbl-ieee128-extra.ver
4024 (GLIBCXX_IEEE128_3.4.31): Likewise for facets in namespace
4025 __gnu_cxx_ieee128.
4026 * testsuite/util/testsuite_abi.cc: Add to lists of known and
4027 latest versions.
4028
4029 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
4030
4031 * include/bits/std_mutex.h: Remove <system_error> include.
4032 * include/std/condition_variable: Add <bits/error_constants.h>
4033 include.
4034 * include/std/mutex: Likewise.
4035 * include/std/shared_mutex: Likewise.
4036
4037 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
4038
4039 PR libstdc++/77691
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.
4045
4046 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
4047
4048 * doc/xml/manual/abi.xml: Add latest library versions.
4049 * doc/html/manual/abi.html: Regenerate.
4050
4051 2023-01-12 François Dumont <fdumont@gcc.gnu.org>
4052
4053 PR libstdc++/107189
4054 * include/bits/stl_tree.h (_Rb_tree<>::_M_insert_range_equal): Remove
4055 unused _Alloc_node instance.
4056
4057 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
4058
4059 * include/bits/atomic_wait.h (__detail::__platform_wait_t):
4060 Define as unsigned long if always lock-free, and unsigned int
4061 otherwise.
4062
4063 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
4064
4065 * src/c++20/tzdb.cc (tzdb_list::_S_init_tzdb): Use __try and
4066 __catch macros for exception handling.
4067
4068 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
4069
4070 PR libstdc++/108221
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.
4075
4076 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
4077
4078 PR libstdc++/108221
4079 * include/std/span (span::span()): Un-simplify constraint to
4080 work for size_t of lesser rank than int.
4081
4082 2023-01-07 LIU Hao <lh_mouse@126.com>
4083
4084 PR middle-end/108300
4085 * src/c++11/system_error.cc: Define `WIN32_LEAN_AND_MEAN` before
4086 <windows.h>.
4087 * src/c++11/thread.cc: Likewise.
4088 * src/c++17/fs_ops.cc: Likewise.
4089 * src/filesystem/ops.cc: Likewise.
4090
4091 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4092
4093 PR libstdc++/108228
4094 * src/c++20/tzdb.cc (zoneinfo_dir): Add diagnostic pragma.
4095
4096 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4097
4098 PR libstdc++/108235
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
4103 rules_counter.
4104
4105 2023-01-06 Patrick Palka <ppalka@redhat.com>
4106
4107 PR libstdc++/108260
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
4120 feature-test macro.
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.
4131
4132 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4133
4134 PR libstdc++/108214
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.
4138
4139 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4140
4141 PR libstdc++/108221
4142 * include/std/format (basic_format_arg) [!__cpp_lib_to_chars]:
4143 Disable visiting floating-point types.
4144
4145 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
4146
4147 PR libstdc++/108288
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.
4151
4152 2023-01-05 John David Anglin <danglin@gcc.gnu.org>
4153
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.
4158
4159 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4160
4161 PR libstdc++/108212
4162 * python/libstdcxx/v6/printers.py (_utc_timezone): New global
4163 variable.
4164 (StdChronoTimePointPrinter::to_string): Use it.
4165
4166 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4167
4168 PR libstdc++/108290
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
4173 arguments.
4174
4175 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4176
4177 PR libstdc++/108211
4178 * src/c++20/tzdb.cc (chrono::current_zone()): Check for zone
4179 using only last component of the name.
4180
4181 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4182
4183 PR libstdc++/108228
4184 PR libstdc++/108235
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.
4197
4198 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
4199
4200 PR libstdc++/108265
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.
4204
4205 2023-01-04 Iain Sandoe <iain@sandoe.co.uk>
4206
4207 PR libstdc++/108228
4208 * config/abi/pre/gnu.ver (GLIBCXX_3.4):
4209 Add __gnu_cxx::zoneinfo_dir_override().
4210
4211 2023-01-04 Jonathan Wakely <jwakely@redhat.com>
4212
4213 PR libstdc++/108258
4214 * include/std/array (__array_traits<T, 0>::operator T*()): Add
4215 constexpr.
4216 * testsuite/23_containers/array/element_access/constexpr_c++17.cc: Check
4217 std::array<T, 0>::data().
4218
4219 \f
4220 Copyright (C) 2023 Free Software Foundation, Inc.
4221
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.