1 2024-12-19 François Dumont <frs.dumont@gmail.com>
4 * include/bits/stl_tree.h
5 [_GLIBCXX_USE_ALLOC_PTR_FOR_RB_TREE]: New macro to control usage of the
6 code required to support fancy allocator pointer type.
7 (_Rb_tree_node_base::_Const_Base_ptr): Remove.
8 (_Rb_tree_node_base::_S_minimum, _Rb_tree_node_base::_S_maximum): Remove
9 overloads for _Const_Base_ptr.
10 (_Rb_tree_node_base::_M_base_ptr()): New.
11 (_Rb_tree_node::_Link_type): Remove.
12 (_Rb_tree_node::_M_node_ptr()): New.
13 (__rb_tree::_Node_base<>): New.
14 (__rb_tree::_Header<>): New.
15 (__rb_tree::_Node<>): New.
16 (_Rb_tree_increment(const _Rb_tree_node_base*)): Remove declaration.
17 (_Rb_tree_decrement(const _Rb_tree_node_base*)): Remove declaration.
18 (_Rb_tree_iterator<>::_Self): Remove.
19 (_Rb_tree_iterator<>::_Link_type): Rename into...
20 (_Rb_tree_iterator<>::_Node_ptr): ...this.
21 (_Rb_tree_const_iterator<>::_Link_type): Rename into...
22 (_Rb_tree_const_iterator<>::_Node_ptr): ...this.
23 (_Rb_tree_const_iterator<>::_M_const_cast): Remove.
24 (_Rb_tree_const_iterator<>::_M_node): Change type into _Base_ptr.
25 (__rb_tree::_Iterator<>): New.
26 (__rb_tree::_Node_traits<>): New.
27 (_Rb_tree<>::_Node_base, _Rb_tree::_Node): New.
28 (_Rb_tree<>::_Link_type): Rename into...
29 (_Rb_tree<>::_Node_ptr): ...this.
30 (_Rb_tree<>::_Const_Base_ptr, _Rb_tree<>::_Const_Node_ptr): Remove.
31 (_Rb_tree<>::_M_mbegin): Remove.
32 (_Rb_tree<>::_M_begin_node()): New.
33 (_S_key(const _Node&)): New.
34 (_S_key(_Base_ptr)): New, call latter.
35 (_S_key(_Node_ptr)): Likewise.
36 (_Rb_tree<>::_S_left(_Const_Base_ptr)): Remove.
37 (_Rb_tree<>::_S_right(_Const_Base_ptr)): Remove.
38 (_Rb_tree<>::_S_maximum(_Const_Base_ptr)): Remove.
39 (_Rb_tree<>::_S_minimum(_Const_Base_ptr)): Remove.
40 * testsuite/23_containers/map/allocator/ext_ptr.cc: New test case.
41 * testsuite/23_containers/multimap/allocator/ext_ptr.cc: New test case.
42 * testsuite/23_containers/multiset/allocator/ext_ptr.cc: New test case.
43 * testsuite/23_containers/set/allocator/ext_ptr.cc: New test case.
44 * testsuite/23_containers/set/requirements/explicit_instantiation/alloc_ptr.cc:
46 * testsuite/23_containers/set/requirements/explicit_instantiation/alloc_ptr_ignored.cc:
49 2024-12-19 Patrick Palka <ppalka@redhat.com>
50 Jonathan Wakely <jwakely@redhat.com>
52 * include/Makefile.am: Add new header <flat_set>.
53 * include/Makefile.in: Regenerate.
54 * include/bits/version.def (__cpp_flat_set): Define.
55 * include/bits/version.h: Regenerate
56 * include/precompiled/stdc++.h: Include <flat_set>.
57 * include/std/flat_set: New file.
58 * src/c++23/std.cc.in: Export <flat_set>.
59 * testsuite/23_containers/flat_multiset/1.cc: New test.
60 * testsuite/23_containers/flat_set/1.cc: New test.
62 2024-12-19 Patrick Palka <ppalka@redhat.com>
63 Jonathan Wakely <jwakely@redhat.com>
65 * include/Makefile.am: Add new header <flat_map>.
66 * include/Makefile.in: Regenerate.
67 * include/bits/alloc_traits.h (__not_allocator_like): New concept.
68 * include/bits/stl_function.h (__transparent_comparator): Likewise.
69 * include/bits/stl_iterator_base_types.h (__has_input_iter_cat):
71 * include/bits/uses_allocator.h (__allocator_for): Likewise.
72 * include/bits/utility.h (sorted_unique_t): Define for C++23.
73 (sorted_unique): Likewise.
74 (sorted_equivalent_t): Likewise.
75 (sorted_equivalent): Likewise.
76 * include/bits/version.def (flat_map): Define.
77 * include/bits/version.h: Regenerate.
78 * include/precompiled/stdc++.h: Include <flat_map>.
79 * include/std/flat_map: New file.
80 * src/c++23/std.cc.in: Export <flat_map>.
81 * testsuite/23_containers/flat_map/1.cc: New test.
82 * testsuite/23_containers/flat_multimap/1.cc: New test.
84 2024-12-19 Patrick Palka <ppalka@redhat.com>
86 * include/bits/ranges_base.h (__detail::__range_key_type):
87 Define as per P1206R7.
88 (__detail::__range_mapped_type): Likewise.
90 2024-12-18 François Dumont <frs.dumont@gmail.com>
92 * include/bits/move.h (std::addressof): Call __builtin_addressof.
94 2024-12-18 Tamar Christina <tamar.christina@arm.com>
96 * include/bits/hashtable.h
97 (_M_find_before_node): Make it likely that the map has at least one
98 entry and so we do at least one iteration.
100 2024-12-18 Jonathan Wakely <jwakely@redhat.com>
103 * include/bits/stl_queue.h (priority_queue(priority_queue&&)):
104 Clear the source object after moving from it.
105 (priority_queue(priority_queue&&, const Alloc&)): Likewise.
106 (operator=(priority_queue&&)): Likewise.
107 * testsuite/23_containers/priority_queue/118088.cc: New test.
109 2024-12-18 Tamar Christina <tamar.christina@arm.com>
111 * include/bits/hashtable.h: Inline _M_locate.
113 2024-12-18 Jonathan Wakely <jwakely@redhat.com>
115 * include/bits/basic_string.h (__to_wstring_numeric): Add 'i'
118 2024-12-18 Luca Bacci <luca.bacci982@gmail.com>
121 * include/bits/regex_compiler.tcc (_BracketMatcher::_M_apply):
122 Only use transform_primary when an equivalence set is used.
124 2024-12-17 Jonathan Wakely <jwakely@redhat.com>
126 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
127 Add parentheses to avoid -Wparentheses warning.
129 2024-12-17 Jonathan Wakely <jwakely@redhat.com>
132 * include/bits/deque.tcc (_M_range_insert_aux): Return
133 immediately if inserting an empty range.
134 * testsuite/23_containers/deque/modifiers/insert/118035.cc: New
137 2024-12-16 Jonathan Wakely <jwakely@redhat.com>
139 * include/bits/hashtable_policy.h (_Local_iterator_base): Use
140 default member-initializers.
142 2024-12-16 Jonathan Wakely <jwakely@redhat.com>
144 * include/bits/hashtable_policy.h: Replace typedefs with
145 alias-declarations. Remove redundant std:: qualification.
146 (_Mod_range_hashing, _Mask_range_hashing): Remove adaptable
147 function object typedefs.
149 2024-12-16 Jonathan Wakely <jwakely@redhat.com>
151 * include/bits/hashtable_policy.h (_Hash_code_storage): Remove.
152 (_Hash_obj_storage): New class template. Store the hash
153 function as a union member instead of using a byte buffer.
154 (_Local_iterator_base): Use _Hash_obj_storage instead of
155 _Hash_code_storage, adjust members that construct and destroy
157 (_Local_iterator_base::_M_incr): Calculate bucket index.
159 2024-12-16 Jonathan Wakely <jwakely@redhat.com>
161 * include/bits/hashtable.h (_Hashtable::swap): Swap hash
162 function and equality predicate here. Inline allocator swap
163 instead of using __alloc_on_swap.
164 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper):
165 Replace EBO with no_unique_address attribute. Remove NTTP.
166 (_Hash_code_base): Replace base class with data member using
167 no_unique_address attribute.
168 (_Hash_code_base::_M_swap): Remove.
169 (_Hash_code_base::_M_hash): Remove.
170 (_Hashtable_base): Replace base class with data member using
171 no_unique_address attribute.
172 (_Hashtable_base::_M_swap): Remove.
173 (_Hashtable_alloc): Replace base class with data member using
174 no_unique_address attribute.
176 2024-12-16 Jonathan Wakely <jwakely@redhat.com>
179 * include/bits/forward_list.h (__fwd_list::_Node): Add
180 user-provided special member functions to union.
181 * include/bits/stl_list.h (__list::_Node): Likewise.
182 (_Node_base::_M_hook, _Node_base::swap): Use _M_base() instead
183 of std::pointer_traits::pointer_to.
184 (_Node_base::_M_transfer): Likewise. Add noexcept.
185 (_List_base::_M_put_node): Use 'if constexpr' to avoid using
186 pointer_traits::pointer_to when not necessary.
187 (_List_base::_M_destroy_node): Fix parameter to be the pointer
188 type used internally, not the allocator's pointer.
189 (list::_M_create_node): Likewise.
190 * testsuite/23_containers/forward_list/requirements/explicit_instantiation/alloc_ptr.cc:
191 Check explicit instantiation of non-trivial value type.
192 * testsuite/23_containers/list/requirements/explicit_instantiation/alloc_ptr.cc:
194 * testsuite/23_containers/forward_list/requirements/explicit_instantiation/alloc_ptr_ignored.cc:
196 * testsuite/23_containers/list/requirements/explicit_instantiation/alloc_ptr_ignored.cc:
199 2024-12-14 Abdo Eid <abdoeid.eg@ieee.org>
201 * include/c_compatibility/wchar.h (fgetwc): Remove duplicate
204 2024-12-13 Patrick Palka <ppalka@redhat.com>
207 * include/bits/ranges_algo.h (__min_fn::operator()): Turn local
208 object __tmp into a reference.
209 * include/bits/ranges_util.h (__max_fn::operator()): Likewise.
210 * testsuite/25_algorithms/max/constrained.cc (test04): New test.
211 * testsuite/25_algorithms/min/constrained.cc (test04): New test.
213 2024-12-13 Jonathan Wakely <jwakely@redhat.com>
215 * include/std/spanstream (basic_spanbuf::seekoff): Return an
216 error for invalid seekdir values.
218 2024-12-13 Jonathan Wakely <jwakely@redhat.com>
220 * include/bits/ranges_cmp.h (not_equal_to): Make order of
221 expressions in noexcept-specifier match the body.
222 * testsuite/20_util/function_objects/range.cmp/not_equal_to.cc:
225 2024-12-13 Jonathan Wakely <jwakely@redhat.com>
227 * include/bits/regex.tcc: Fix -Wsign-compare warning.
229 2024-12-13 Jonathan Wakely <jwakely@redhat.com>
231 * include/pstl/parallel_backend_tbb.h (__merge_func): Fix order
234 2024-12-13 Jonathan Wakely <jwakely@redhat.com>
236 * testsuite/26_numerics/random/random_device/entropy.cc: Fix
237 indentation to avoid -Wmisleading-indentation warning.
239 2024-12-12 Jonathan Wakely <jwakely@redhat.com>
241 * testsuite/23_containers/unordered_map/modifiers/reserve.cc:
242 Cast to size_t to fix -Wsign-compare warning.
243 * testsuite/23_containers/unordered_set/hash_policy/71181.cc:
245 * testsuite/23_containers/unordered_set/insert/move_range.cc:
248 2024-12-12 Jonathan Wakely <jwakely@redhat.com>
250 * include/bits/hashtable_policy.h (_Local_iterator_base): Fix
251 -Wsign-compare warnings.
253 2024-12-12 Jonathan Wakely <jwakely@redhat.com>
255 * src/c++17/fs_dir.cc: Fix typo in comment.
257 2024-12-11 Jonathan Wakely <jwakely@redhat.com>
261 * include/debug/helper_functions.h (__valid_range_aux): Treat
262 all input iterator ranges as valid during constant evaluation.
264 2024-12-11 Jonathan Wakely <jwakely@redhat.com>
267 * include/std/array (operator==): Use std::__equal_aux1 instead
269 * testsuite/23_containers/array/comparison_operators/106212.cc:
272 2024-12-11 Jonathan Wakely <jwakely@redhat.com>
275 * include/std/span (span(T (&)[N])): Do not delegate to
276 constructor that performs redundant checks.
277 (span(array<T, N>&), span(const array<T, N>&)): Likewise.
278 (span(Range&&), span(const span<T, N>&)): Likewise.
279 * testsuite/23_containers/span/117966.cc: New test.
281 2024-12-11 Jonathan Wakely <jwakely@redhat.com>
283 * include/std/generator (_Promise_alloc): Rename template
284 parameter. Use __alloc_rebind to rebind allocator.
285 (_Promise_alloc::operator new): Replace constraints with a
286 static_assert in the body. Rename allocator parameter.
287 (_Promise_alloc<void>::_M_allocate): Rename allocator parameter.
288 Use __alloc_rebind to rebind allocator.
289 (_Promise_alloc<void>::operator new): Rename allocator
291 * testsuite/24_iterators/range_generators/alloc.cc: New test.
292 * testsuite/24_iterators/range_generators/lwg3900.cc: New test.
294 2024-12-11 Jonathan Wakely <jwakely@redhat.com>
296 * include/std/ostream (println): Pass stream's locale to
297 std::format, as per LWG 4088.
298 * testsuite/27_io/basic_ostream/print/1.cc: Check std::println
299 with custom locale. Remove unused brit_punc class.
301 2024-12-10 Jonathan Wakely <jwakely@redhat.com>
303 * include/bits/memory_resource.h (polymoprhic_allocator): Use
304 feature test macro for P0339R6 features.
306 2024-12-10 Marek Polacek <polacek@redhat.com>
309 * testsuite/std/ranges/adaptors/conditionally_borrowed.cc: Add a
312 2024-12-10 Jonathan Wakely <jwakely@redhat.com>
314 * include/bits/stl_uninitialized.h (__is_bitwise_relocatable):
315 Revert to depending on is_trivial.
317 2024-12-10 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
319 * include/std/type_traits: Deprecate is_trivial and
321 * include/experimental/type_traits: Suppress the deprecation
323 * testsuite/20_util/is_trivial/requirements/explicit_instantiation.cc:
324 Amend the test to suppress the deprecation warning.
325 * testsuite/20_util/is_trivial/requirements/typedefs.cc:
327 * testsuite/20_util/is_trivial/value.cc: Likewise.
328 * testsuite/20_util/variable_templates_for_traits.cc: Likewise.
329 * testsuite/experimental/type_traits/value.cc: Likewise.
330 * testsuite/18_support/max_align_t/requirements/2.cc: Update the
331 test with P3247R2's new wording.
333 2024-12-10 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
335 * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc:
336 Port away from is_trivial.
337 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc:
339 * testsuite/20_util/specialized_algorithms/uninitialized_default/94540.cc:
341 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/94540.cc:
343 * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc:
345 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc:
347 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc:
349 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc:
351 * testsuite/23_containers/vector/cons/94540.cc: Likewise.
352 * testsuite/25_algorithms/copy/move_iterators/69478.cc:
354 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc:
356 * testsuite/25_algorithms/move/69478.cc: Likewise.
357 * testsuite/25_algorithms/move_backward/69478.cc: Likewise.
358 * testsuite/25_algorithms/rotate/constrained.cc: Likewise.
359 * testsuite/25_algorithms/rotate_copy/constrained.cc: Likewise.
361 2024-12-10 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
363 * include/bits/ranges_uninitialized.h: port some if
364 constexpr away from is_trivial, and towards more specific
367 2024-12-10 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
369 * include/bits/stl_uninitialized.h: Amended the
370 __is_bitwise_relocatable type trait.
372 2024-12-10 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
374 * include/pstl/algorithm_impl.h (__remove_elements): Port away
376 (__pattern_inplace_merge): Likewise.
377 * include/pstl/glue_memory_impl.h (uninitialized_copy): Likewise.
378 (uninitialized_copy_n): Likewise.
379 (uninitialized_move): Likewise.
380 (uninitialized_move_n): Likewise.
381 (uninitialized_default_construct): Likewise.
382 (uninitialized_default_construct_n): Likewise.
383 (uninitialized_value_construct): Likewise.
384 (uninitialized_value_construct_n): Likewise.
385 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
387 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
389 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
391 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
394 2024-12-10 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
396 * include/bits/basic_string.h: Add a static_assert on the
398 * include/std/string_view: Port away from is_trivial.
400 2024-12-09 Jonathan Wakely <jwakely@redhat.com>
403 * config/io/basic_file_stdio.cc (basic_file::xsgetn): Limit n to
404 _GLIBCXX_MAX_READ_SIZE if that macro is defined.
405 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_MAX_READ_SIZE):
407 * config/os/bsd/freebsd/os_defines.h (_GLIBCXX_MAX_READ_SIZE):
410 2024-12-09 Jonathan Wakely <jwakely@redhat.com>
412 * include/bits/allocator.h (allocator::is_always_equal): Do not
414 (allocator<void>::is_always_equal): Likewise.
415 * testsuite/20_util/allocator/requirements/typedefs.cc: Check
416 that is_always_equal is not present in C++26.
417 * testsuite/20_util/allocator/void.cc: Do not require
418 is_always_equal for C++26.
419 * testsuite/23_containers/vector/bool/cons/constexpr.cc: Add
420 missing override of base's is_always_equal.
421 * testsuite/23_containers/vector/cons/constexpr.cc: Likewise.
423 2024-12-09 Jonathan Wakely <jwakely@redhat.com>
426 * include/debug/safe_container.h: Make allocator-extended move
427 constructor a no-op during constant evaluation.
429 2024-12-09 Jonathan Wakely <jwakely@redhat.com>
432 * testsuite/23_containers/set/modifiers/swap/adl.cc: Add
433 equality comparison for Allocator.
434 * testsuite/23_containers/unordered_set/modifiers/swap-2.cc:
437 2024-12-07 Jonathan Wakely <jwakely@redhat.com>
439 * include/std/format: Fix typo in Doxygen comment.
441 2024-12-07 Matthew Malcomson <mmalcomson@nvidia.com>
443 * .editorconfig: Adjust globbing style to standard syntax.
445 2024-12-05 Jonathan Wakely <jwakely@redhat.com>
448 * include/bits/hashtable_policy.h (_Hash_code_base::_M_swap):
449 Use ADL swap for Hash members.
450 (_Hashtable_base::_M_swap): Use ADL swap for _Equal members.
451 * include/bits/stl_tree.h (_Rb_tree::swap): Use ADL swap for
453 * testsuite/23_containers/set/modifiers/swap/adl.cc: New test.
454 * testsuite/23_containers/unordered_set/modifiers/swap-2.cc: New
457 2024-12-03 Jonathan Wakely <jwakely@redhat.com>
460 * include/pstl/glue_numeric_impl.h (exclusive_scan): Pass __init
462 * include/pstl/numeric_impl.h (__brick_transform_scan): Do not
463 write through __result until after reading through __first. Move
464 __init into return value.
465 (__pattern_transform_scan): Pass __init as rvalue.
466 * include/std/numeric (exclusive_scan): Move construct instead
467 of copy constructing.
468 * testsuite/26_numerics/exclusive_scan/2.cc: New test.
469 * testsuite/26_numerics/pstl/numeric_ops/108236.cc: New test.
471 2024-12-03 Jonathan Wakely <jwakely@redhat.com>
473 * include/bits/alloc_traits.h (__do_alloc_on_copy): Remove.
474 (__do_alloc_on_move __do_alloc_on_swap): Remove.
475 (__alloc_on_copy, __alloc_on_move, __alloc_on_swap): Use if
478 2024-12-03 Jonathan Wakely <jwakely@redhat.com>
481 * include/bits/forward_list.h (_GLIBCXX_USE_ALLOC_PTR_FOR_LIST):
483 (_Fwd_list_node_base::_M_base_ptr): New member functions.
484 (_Fwd_list_node::_M_node_ptr): New member function.
485 (_Fwd_list_iterator, _Fwd_list_const_iterator): Make internal
486 member functions and data member private. Declare forward_list
487 and _Fwd_list_base as friends.
488 (__fwdlist::_Node_base, __fwdlist::_Node, __fwdlist::_Iterator):
490 (__fwdlist::_Node_traits): New class template.
491 (_Fwd_list_base): Use _Node_traits to get types. Use _Base_ptr
492 instad of _Fwd_list_node_base*. Use _M_base_ptr() instead of
493 taking address of head node.
494 (forward_list): Likewise.
495 (_Fwd_list_base::_M_get_node): Do not define for versioned
497 (_Fwd_list_base::_M_put_node): Only convert pointer if needed.
498 (_Fwd_list_base::_M_create_node): Use __allocate_guarded_obj.
499 (_Fwd_list_base::_M_destroy_node): New member function.
500 * include/bits/forward_list.tcc (_Fwd_list_base::_M_insert_after)
501 (forward_list::_M_splice_after, forward_list::insert_after): Use
502 const_iterator::_M_const_cast() instead of casting pointers.
503 (_Fwd_list_base::_M_erase_after): Use _M_destroy_node.
504 (forward_list::remove, forward_list::remove_if): Only do
505 downcasts when accessing the value.
506 (forward_list::sort): Likewise.
507 * testsuite/23_containers/forward_list/capacity/1.cc: Check
508 max_size for new node type.
509 * testsuite/23_containers/forward_list/capacity/node_sizes.cc:
511 * testsuite/23_containers/forward_list/requirements/explicit_instantiation/alloc_ptr.cc:
513 * testsuite/23_containers/forward_list/requirements/explicit_instantiation/alloc_ptr_ignored.cc:
515 * testsuite/23_containers/forward_list/requirements/completeness.cc: New file.
517 2024-12-03 Jonathan Wakely <jwakely@redhat.com>
521 * include/bits/allocated_ptr.h (__allocated_ptr::get): Add
523 (__allocated_ptr::operator bool, __allocated_ptr::release): New
525 (__allocate_guarded): Add inline.
526 (__allocated_obj): New class template.
527 (__allocate_guarded_obj): New function template.
528 * include/bits/list.tcc (_List_base::_M_clear()): Replace uses
529 of raw pointers. Use _M_destroy_node.
530 (list::emplace, list::insert): Likewise.
531 (list::sort): Adjust check for 0 or 1 wsize. Use template
532 argument list for _Scratch_list.
533 * include/bits/stl_list.h (_GLIBCXX_USE_ALLOC_PTR_FOR_LIST):
535 (_List_node_base::_Base_ptr): New typedef.
536 (_List_node_base::_M_base): New member functions.
537 (_List_node_header::_M_base): Make public and add
538 using-declaration for base class overload.
539 (__list::_Node_traits, __list::_Node_base)
540 (__list::_Node_header, __list::_Node, __list::_Iterator): New
542 (_Scratch_list): Turn class into class template. Use _Base_ptr
543 typedef instead of _List_node_base*.
544 (_List_node::_Node_ptr): New typedef.
545 (_List_node::_M_node_ptr): New member function.
546 (_List_base, _List_impl): Use _Node_traits to get node types.
547 (_List_base::_M_put_node): Convert to fancy pointer if needed.
548 (_List_base::_M_destroy_node): New member function.
549 (_List_base(_List_base&&, _Node_alloc_type&&)): Use if constexpr
550 to make function a no-op for fancy pointers.
551 (_List_base::_S_distance, _List_base::_M_distance)
552 (_List_base::_M_node_count): Likewise.
553 (list): Use _Node_traits to get iterator, node and pointer
555 (list::_M_create_node): Use _Node_ptr typedef instead of _Node*.
556 Use __allocate_guarded_obj instead of _M_get_node.
557 (list::end, list::cend, list::empty): Use node header's
558 _M_base() function instead of taking its address.
559 (list::swap): Use _Node_traits to get node base type.
560 (list::_M_create_node, list::_M_insert): Use _Node_ptr instead
562 (list::_M_erase): Likewise. Use _M_destroy_node.
563 (__distance): Overload for __list::_Iterator.
564 (_Node_base::swap, _Node_base::_M_transfer): Define non-inline
565 member functions of class templates.
566 (_Node_header::_M_reverse): Likewise.
567 * testsuite/23_containers/list/capacity/29134.cc: Check max_size
568 for allocator of new node type.
569 * testsuite/23_containers/list/capacity/node_sizes.cc: New test.
570 * testsuite/23_containers/list/requirements/explicit_instantiation/alloc_ptr.cc:
572 * testsuite/23_containers/list/requirements/explicit_instantiation/alloc_ptr_ignored.cc:
574 * testsuite/23_containers/list/requirements/completeness.cc: New file.
576 2024-12-03 Jonathan Wakely <jwakely@redhat.com>
578 * include/bits/stl_list.h (_List_iterator): Remove _Self typedef
579 and just use injected-class-name instead.
580 (_List_const_iterator): Likewise.
582 2024-12-03 Jonathan Wakely <jwakely@redhat.com>
584 * include/bits/stl_list.h (_List_size): New struct.
585 (_List_node_header): Replace _M_size member with _List_size base
587 (_List_node_header(_List_node_header&&)): Replace explicit uses
588 of _M_size with initializing the base.
589 (_List_node_header::_M_init): Likewise.
590 (_List_base::_S_distance, _List_base::_M_distance)
591 (_List_base::_M_node_count): Move to end of class body and add
593 (list::_S_distance, list::_M_node_count): Likewise.
594 (list::size): Inline _M_node_count effects to here.
595 (list::splice(iterator, list&, iterator, iterator)): Use #if and
596 call std::distance instead of _S_distance.
598 2024-12-03 Jonathan Wakely <jwakely@redhat.com>
600 * include/bits/stl_bvector.h (vector(const allocator_type&)):
601 Add noexcept, as per LWG 3778.
602 * testsuite/23_containers/vector/bool/cons/lwg3778.cc: New test.
604 2024-12-03 Jonathan Wakely <jwakely@redhat.com>
608 * include/std/optional (optional(const optional<U>&)): Fix copy
609 and paste error in constraints.
610 (optional(optional<U>&&)): Likewise.
611 * testsuite/20_util/optional/assignment/117858.cc: Move to ...
612 * testsuite/20_util/optional/cons/117858.cc: New test.
614 2024-12-02 Jonathan Wakely <jwakely@redhat.com>
616 * include/bits/stl_construct.h (_Destroy(FwdIter, FwdIter)): Use
617 'if constexpr' instead of dispatching to a member function of a
619 (_Destroy_n(FwdIter, Size)): Likewise.
620 (_Destroy_aux, _Destroy_n_aux): Only define for C++98.
622 2024-12-02 Jonathan Wakely <jwakely@redhat.com>
624 * src/c++23/std.cc.in: Disable deprecated warnings when
625 exporting std::rel_ops members.
627 2024-11-30 Jonathan Wakely <jwakely@redhat.com>
630 * testsuite/20_util/optional/assignment/117858.cc: Also test
631 assignment from rvalue optional.
633 2024-11-30 Jonathan Wakely <jwakely@redhat.com>
636 * include/std/optional (operator=(const optional<U>&)): Fix copy
637 and paste error in constraints.
638 (operator=(optional<U>&&)): Likewise.
639 * testsuite/20_util/optional/assignment/117858.cc: New test.
641 2024-11-30 Jonathan Wakely <jwakely@redhat.com>
643 * include/Makefile.am: Add bits/monostate.h.
644 * include/Makefile.in: Regenerate.
645 * include/std/utility: Include <bits/monostate.h>.
646 * include/std/variant (monostate, hash<monostate>): Move
648 * include/bits/monostate.h: New file.
649 * testsuite/20_util/headers/utility/synopsis.cc: Add monostate
650 and hash<monostate> declarations.
651 * testsuite/20_util/monostate/requirements.cc: New test.
653 2024-11-30 Jonathan Wakely <jwakely@redhat.com>
655 * testsuite/20_util/headers/utility/synopsis.cc: Add
656 declarations from C++11 and later.
658 2024-11-30 Jakub Jelinek <jakub@redhat.com>
660 * include/std/functional (_Bind_check_arity): Add , before ... .
661 * include/bits/refwrap.h (_Mem_fn_traits, _Weak_result_type_impl):
663 * include/tr1/type_traits (is_function): Likewise.
665 2024-11-28 Jonathan Wakely <jwakely@redhat.com>
667 * include/std/stacktrace (basic_stacktrace::_M_impl::_M_resize):
668 Use std::_Destroy to destroy removed elements.
670 2024-11-28 Jonathan Wakely <jwakely@redhat.com>
672 * python/libstdcxx/v6/printers.py: Reorder registrations.
674 2024-11-28 Jonathan Wakely <jwakely@redhat.com>
677 * include/std/stacktrace (stacktrace(stacktrace&&, const A&)):
678 Fix typo in qualified-id for is_always_equal trait.
679 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Test
680 allocator-extended constructors and allocator propagation.
682 2024-11-28 Jonathan Wakely <jwakely@redhat.com>
684 * include/bits/stl_relops.h (rel_ops): Add deprecated attribute.
685 * testsuite/20_util/headers/utility/using_namespace_std_rel_ops.cc:
686 Add dg-warning for -Wdeprecated warnings.
687 * testsuite/20_util/rel_ops.cc: Likewise.
688 * testsuite/util/testsuite_containers.h: Disable -Wdeprecated
689 warnings when using rel_ops.
691 2024-11-28 Jonathan Wakely <jwakely@redhat.com>
693 * include/bits/stl_list.h: Reduce duplication in doxygen
696 2024-11-28 Marek Polacek <polacek@redhat.com>
699 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust
702 2024-11-28 Jonathan Wakely <jwakely@redhat.com>
705 * config/os/bsd/dragonfly/os_defines.h: Include <sys/cdefs.h>.
706 * config/os/bsd/freebsd/os_defines.h: Likewise.
708 2024-11-27 Jan Hubicka <hubicka@ucw.cz>
710 * include/bits/basic_string.h (basic_string::size(),
711 basic_string::length(), basic_string::capacity()): Add
712 __builtin_unreachable to declare value ranges.
713 (basic_string::empty()): Implement directly
714 (basic_string::max_size()): Account correctly the terminating 0
715 and limits implied by ptrdiff_t.
717 2024-11-27 Jonathan Wakely <jwakely@redhat.com>
719 * include/bits/c++config (__glibcxx_assert): Remove useless
720 __builtin_expect from constexpr-only assertion. Improve
723 2024-11-27 Jonathan Wakely <jwakely@redhat.com>
726 * include/bits/c++config (__glibcxx_assert_fail): Add cold
728 * include/debug/formatter.h (_Error_formatter::_M_error):
731 2024-11-27 Patrick Palka <ppalka@redhat.com>
733 * include/std/ranges (views::__adaptor::_RangeAdaptorClosure):
734 Befriend both operator| overloads.
735 * src/c++23/std.cc.in: Don't export views::__adaptor::operator|.
737 2024-11-27 Jason Merrill <jason@redhat.com>
739 * src/c++23/std.cc.in: Fix iter_move/swap. Add fold_left_first, to,
740 concat, and some operators.
742 2024-11-27 Jonathan Wakely <jwakely@redhat.com>
744 * include/bits/forward_list.h (forward_list::front): Add
745 non-empty assertions.
746 * include/bits/stl_list.h (list::front, list::back): Add
747 non-empty assertions.
749 2024-11-27 Jonathan Wakely <jwakely@redhat.com>
751 * include/bits/forward_list.h (operator=(forward_list&&)): Use
752 if constexpr instead of dispatching to _M_move_assign.
753 (assign(InputIterator, InputIterator)): Use if constexpr instead
754 of dispatching to _M_assign.
755 (assign(size_type, const T&)): Use if constexpr instead of
756 dispatching to _M_assign_n.
757 (_M_move_assign, _M_assign_n): Do not define for versioned
761 2024-11-27 Jonathan Wakely <jwakely@redhat.com>
763 * include/bits/stl_list.h (operator=(list&&)): Use if constexpr
764 instead of dispatching to _M_move_assign.
765 (_M_move_assign): Do not define for versioned namespace.
767 2024-11-27 Jonathan Wakely <jwakely@redhat.com>
770 * config/locale/dragonfly/codecvt_members.cc (do_length): Limit
771 size of alloca buffer to 4k.
772 * config/locale/gnu/codecvt_members.cc (do_length): Likewise.
773 * testsuite/22_locale/codecvt/length/wchar_t/105857.cc: New
776 2024-11-26 Jonathan Wakely <jwakely@redhat.com>
779 * testsuite/18_support/50594.cc: Edit dg-options to include the
780 -fno-assume-sane-operators-new-delete option.
782 2024-11-26 Jan Hubicka <hubicka@ucw.cz>
784 * include/bits/deque.tcc (std::deque::_M_reallocate_map): Add
785 __builtin_unreachable check to declare that maps are not very large.
786 * include/bits/stl_deque.h (std::deque::size): Add __builtin_unreachable
787 to check for maximal size of map.
789 2024-11-26 Jonathan Wakely <jwakely@redhat.com>
791 * include/bits/range_access.h (begin, end, ssize): Add
792 conditional noexcept.
793 * testsuite/18_support/initializer_list/range_access.cc: Check
794 results and noexcept-specifier for std::begin and std::end.
795 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc:
796 Check for conditional noexcept on std::begin and std::end.
797 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc:
799 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc:
801 * testsuite/24_iterators/range_access/range_access.cc: Check
802 conditional noexcept is correct.
803 * testsuite/24_iterators/range_access/range_access_cpp17.cc:
804 Check std::size, std::empty and std::data.
805 * testsuite/24_iterators/range_access/range_access_cpp20.cc:
806 Check conditional noexcept on std::ssize.
808 2024-11-26 Jonathan Wakely <jwakely@redhat.com>
810 * include/bits/forward_list.h: Use Markdown in Doxygen comments.
812 2024-11-26 Jonathan Wakely <jwakely@redhat.com>
815 * src/c++11/Makefile.am: Add new file.
816 * src/c++11/Makefile.in: Regnerate.
817 * src/c++11/cow-stdexcept.cc (error_category::_M_message): Move
818 member function definition to ...
819 * src/c++11/cow-system_error.cc: New file.
821 2024-11-20 Jonathan Wakely <jwakely@redhat.com>
823 * include/bits/stl_set.h (set::find): Use const_iterator in
824 return type, not iterator.
826 2024-11-20 Jonathan Wakely <jwakely@redhat.com>
829 * include/bits/hashtable.h (_Hashtable::_M_emplace_uniq):
830 Adjust usage of __is_key_type to avoid false positive.
831 * testsuite/23_containers/unordered_set/insert/117686.cc:
834 2024-11-19 Jason Merrill <jason@redhat.com>
836 * src/c++23/libstdc++.modules.json.in: Remove C++ comment.
838 2024-11-18 David Malcolm <dmalcolm@redhat.com>
840 * testsuite/lib/libstdc++.exp: Add
841 "load_gcc_lib dg-test-cleanup.exp".
843 2024-11-18 Jonathan Wakely <jwakely@redhat.com>
845 * include/bits/hashtable.h (_Hashtable::_M_src_hash_code):
847 (_Hashtable::_M_merge_unique(_Hashtable&)): Use pointer_traits
848 to get before-begin pointer. Only use static_cast on valid
849 nodes, not the before-begin pointer. Reuse a hash code cached in
850 the node when possible.
851 (_Hashtable::_M_merge_multi(_Hashtable&)): Likewise.
853 2024-11-18 Gerald Pfeifer <gerald@pfeifer.com>
855 * doc/xml/manual/allocator.xml: Update reference to Angelika
857 * doc/html/manual/memory.html: Regenerate.
859 2024-11-17 Jason Merrill <jason@redhat.com>
862 * include/bits/version.def: Add __cpp_lib_modules.
863 * include/bits/version.h: Regenerate.
864 * src/c++23/Makefile.am: Add modules std and std.compat.
865 * src/c++23/Makefile.in: Regenerate.
866 * src/c++23/std-clib.cc.in: New file.
867 * src/c++23/std.cc.in: New file.
868 * src/c++23/std.compat.cc.in: New file.
869 * src/c++23/libstdc++.modules.json.in: New file.
871 2024-11-17 Gerald Pfeifer <gerald@pfeifer.com>
873 * doc/xml/manual/intro.xml: Move a gcc.gnu.org link to https.
874 * doc/html/manual/license.html: Regenerate.
876 2024-11-17 Gerald Pfeifer <gerald@pfeifer.com>
878 * doc/xml/manual/io.xml: Update link to Angelika Langer's book.
879 * doc/html/manual/streambufs.html: Regenerate.
881 2024-11-17 Jan Hubicka <hubicka@ucw.cz>
883 PR tree-optimization/109442
884 * include/bits/stl_vector.h: (vector::size(),
885 vector::capacity()): Add __builtin_unreachable call to announce
886 that size and capacity are non-negative.
888 2024-11-16 Jonathan Wakely <jwakely@redhat.com>
890 * Makefile.am: Use $(MAKE) -C dir instead of cd dir && $(MAKE).
891 * Makefile.in: Regenerate.
893 2024-11-15 Jonathan Wakely <jwakely@redhat.com>
895 * include/bits/stl_list.h (list::emplace_back): Fix indentation.
897 2024-11-14 Jonathan Wakely <jwakely@redhat.com>
899 * include/bits/ranges_algo.h (__is_permutation_fn::operator()):
900 Short-circuit for sized ranges with different sizes, as per LWG
902 * include/bits/ranges_algobase.h (__equal_fn::operator()):
904 * include/bits/stl_algo.h (__is_permutation): Use if-constexpr
905 for random access iterator branches.
906 * include/bits/stl_algobase.h (__equal4): Likewise.
907 * testsuite/25_algorithms/equal/lwg3560.cc: New test.
908 * testsuite/25_algorithms/is_permutation/lwg3560.cc: New test.
910 2024-11-14 Patrick Palka <ppalka@redhat.com>
912 * include/std/ranges (keys_view): Adjust as per LWG 3563.
913 (values_view): Likewise.
914 * testsuite/std/ranges/adaptors/elements.cc (test08): New test.
916 2024-11-14 Jonathan Wakely <jwakely@redhat.com>
918 * include/bits/ranges_util.h (subrange::begin): Fix constraint,
920 * testsuite/std/ranges/subrange/lwg3589.cc: New test.
922 2024-11-14 Jonathan Wakely <jwakely@redhat.com>
924 * include/bits/c++config (_GLIBCXX_NODISCARD): Expand for C++11
926 * testsuite/22_locale/locale/cons/12438.cc: Adjust dg-warning to
927 expect nodiscard warnings for C++11 and C++14 as well.
928 * testsuite/22_locale/locale/operations/2.cc: Likewise.
929 * testsuite/25_algorithms/equal/debug/1_neg.cc: Likewise.
930 * testsuite/25_algorithms/equal/debug/2_neg.cc: Likewise.
931 * testsuite/25_algorithms/equal/debug/3_neg.cc: Likewise.
932 * testsuite/25_algorithms/find_first_of/concept_check_1.cc:
934 * testsuite/25_algorithms/is_permutation/2.cc: Likewise.
935 * testsuite/25_algorithms/lexicographical_compare/71545.cc:
937 * testsuite/25_algorithms/lower_bound/33613.cc: Likewise.
938 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc:
940 * testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc:
942 * testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc: Likewise.
943 * testsuite/25_algorithms/minmax/3.cc: Likewise.
944 * testsuite/25_algorithms/search/78346.cc: Likewise.
945 * testsuite/25_algorithms/search_n/58358.cc: Likewise.
946 * testsuite/25_algorithms/unique/1.cc: Likewise.
947 * testsuite/25_algorithms/unique/11480.cc: Likewise.
948 * testsuite/25_algorithms/upper_bound/33613.cc: Likewise.
949 * testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc:
951 * testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc: Likewise.
952 * testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc:
954 * testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc:
956 * testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc:
958 * testsuite/ext/concept_checks.cc: Likewise.
959 * testsuite/ext/is_heap/47709.cc: Likewise.
960 * testsuite/ext/is_sorted/cxx0x.cc: Likewise.
962 2024-11-14 Jason Merrill <jason@redhat.com>
964 * include/precompiled/stdc++.h: <coroutine> is C++20.
966 2024-11-14 Jonathan Wakely <jwakely@redhat.com>
968 * include/bits/stl_iterator.h (operator+): Add constraint to
969 move_iterator operator.
970 * testsuite/24_iterators/move_iterator/rel_ops_c++20.cc:
972 2024-11-14 Jonathan Wakely <jwakely@redhat.com>
974 * include/bits/stl_iterator.h (__normal_iterator): Replace
975 enable_if constraint with requires-clause.
977 2024-11-14 Jonathan Wakely <jwakely@redhat.com>
979 * include/bits/stl_iterator.h: Make use of feature test macros
980 more consistent. Improve doxygen comments.
982 2024-11-14 Jonathan Wakely <jwakely@redhat.com>
985 * include/bits/fs_dir.h (enable_borrowed_range, enable_view):
986 Define specializations for directory iterators, as per LWG 3480.
987 * testsuite/27_io/filesystem/iterators/lwg3480.cc: New test.
989 2024-11-13 Jonathan Wakely <jwakely@redhat.com>
991 * doc/xml/manual/evolution.xml: Document removal of nested types
992 from std::hash specializations.
993 * doc/html/manual/api.html: Regenerate.
994 * include/bits/functional_hash.h (__hash_base): Remove
995 deprecated nested types for C++20.
996 (__hash_empty_base): Define new class template.
997 (__is_hash_enabled_for): Define new variable template.
998 (__poison_hash): Remove.
999 (__hash_not_enabled): Define new class template.
1000 (__hash_enum): Remove partial specialization for non-enums.
1001 (hash): Derive from __hash_not_enabled for non-enums, instead of
1003 * include/bits/unique_ptr.h (__uniq_ptr_hash): Derive from
1004 __hash_base. Conditionally derive from __hash_empty_base.
1005 (__uniq_ptr_hash<>): Remove disabled specialization.
1006 (hash): Do not derive from __hash_base unconditionally.
1007 Conditionally derive from either __uniq_ptr_hash or
1009 * include/std/optional (__optional_hash_call_base): Remove.
1010 (__optional_hash): Define new class template.
1011 (hash): Derive from either
1012 (hash): Conditionally derive from either __optional_hash or
1013 __hash_not_enabled. Remove nested typedefs.
1014 * include/std/variant (_Base_dedup): Replace __poison_hash with
1016 (__variant_hash_call_base_impl): Remove.
1017 (__variant_hash): Define new class template.
1018 (hash): Conditionally derive from either __variant_hash or
1019 __hash_not_enabled. Remove nested typedefs.
1020 * testsuite/20_util/optional/hash.cc: Check whether nested types
1022 * testsuite/20_util/variant/hash.cc: Likewise.
1023 * testsuite/20_util/optional/hash_abi.cc: New test.
1024 * testsuite/20_util/unique_ptr/hash/abi.cc: New test.
1025 * testsuite/20_util/unique_ptr/hash/types.cc: New test.
1026 * testsuite/20_util/variant/hash_abi.cc: New test.
1028 2024-11-13 Jonathan Wakely <jwakely@redhat.com>
1030 * include/bits/hashtable.h (__location_type): New struct.
1031 (_M_locate): New member function.
1032 (_M_find_before_node(const key_type&)): Remove.
1033 (_M_find_node): Move variable initialization into condition.
1034 (_M_find_node_tr): Likewise.
1035 (operator=(initializer_list<T>), try_emplace, _M_reinsert_node)
1036 (_M_merge_unique, find, erase(const key_type&)): Use _M_locate
1039 2024-11-13 Jonathan Wakely <jwakely@redhat.com>
1041 * include/bits/hashtable.h (_M_merge_unique): Add overload for
1042 merging from same type.
1043 (_M_merge_unique<Compatible>): Simplify size tracking. Add
1045 (_M_merge_multi): Add overload for merging from same type.
1046 (_M_merge_multi<Compatible>): Add comment.
1047 * include/bits/unordered_map.h (unordered_map::merge): Check for
1048 self-merge in the lvalue overload. Call _M_merge_unique directly
1049 for the rvalue overload.
1050 (unordered_multimap::merge): Likewise.
1051 * include/bits/unordered_set.h (unordered_set::merge): Likewise.
1052 (unordered_multiset::merge): Likewise.
1053 * testsuite/23_containers/unordered_map/modifiers/merge.cc:
1055 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc:
1057 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc:
1059 * testsuite/23_containers/unordered_set/modifiers/merge.cc:
1062 2024-11-13 Jonathan Wakely <jwakely@redhat.com>
1064 * include/bits/hashtable_policy.h (_Hashtable_base::_S_equals):
1066 (_Hashtable_base::_S_node_equals): Remove.
1067 (_Hashtable_base::_M_key_equals_tr): Fix inaccurate
1068 static_assert string.
1069 (_Hashtable_base::_M_equals, _Hashtable_base::_M_equals_tr): Use
1070 'if constexpr' instead of _S_equals.
1071 (_Hashtable_base::_M_node_equals): Use 'if constexpr' instead of
1074 2024-11-13 Jonathan Wakely <jwakely@redhat.com>
1076 * include/bits/hashtable.h (_Hashtable): Remove _Equality base
1078 (_Hashtable::_M_equal): Define equality comparison here instead
1079 of in _Equality::_M_equal.
1080 * include/bits/hashtable_policy.h (_Equality): Remove.
1082 2024-11-13 Jonathan Wakely <jwakely@redhat.com>
1084 * include/bits/hashtable.h (_Hashtable): Remove inheritance from
1085 __detail::_Insert and move its members into _Hashtable.
1086 * include/bits/hashtable_policy.h (__detail::_Insert): Remove.
1088 2024-11-13 Jonathan Wakely <jwakely@redhat.com>
1090 * include/bits/hashtable.h (operator=(const _Hashtable&)): Use
1091 RAII instead of try-catch.
1092 (_M_assign(_Ht&&, _NodeGenerator&)): Likewise.
1094 2024-11-13 Jonathan Wakely <jwakely@redhat.com>
1096 * include/bits/hashtable.h (_Hashtable::__fwd_value_for):
1098 (_Hashtable::_M_assign): Use static_cast instead of
1101 2024-11-13 Jonathan Wakely <jwakely@redhat.com>
1103 * include/bits/hashtable.h (_Hashtable): Remove typedefs for
1105 (_Hashtable::_M_assign(_Ht&&)): Add new overload.
1106 (_Hashtable::operator=(initializer_list<value_type>)): Add local
1107 typedef for node generator.
1108 (_Hashtable::_M_assign_elements): Likewise.
1109 (_Hashtable::operator=(const _Hashtable&)): Use new _M_assign
1111 (_Hashtable(const _Hashtable&)): Likewise.
1112 (_Hashtable(const _Hashtable&, const allocator_type&)):
1114 (_Hashtable(_Hashtable&&, __node_alloc_type&&, false_type)):
1116 * include/bits/hashtable_policy.h (_Insert): Remove typedef for
1119 2024-11-13 Jonathan Wakely <jwakely@redhat.com>
1121 * include/bits/hashtable.h (_Hashtable::_M_erase): Remove
1122 overloads for erasing by key, moving logic to ...
1123 (_Hashtable::erase): ... here.
1125 2024-11-13 Jonathan Wakely <jwakely@redhat.com>
1128 * include/bits/hashtable.h (_Hashtable::_M_emplace): Replace
1129 with _M_emplace_uniq and _M_emplace_multi.
1130 (_Hashtable::_S_forward_key, _Hashtable::_M_insert_unique)
1131 (_Hashtable::_M_insert_unique_aux, _Hashtable::_M_insert):
1133 * include/bits/hashtable_policy.h (_ConvertToValueType):
1135 (_Insert_base::_M_insert_range): Remove overload for unique keys
1136 and rename overload for non-unique keys to ...
1137 (_Insert_base::_M_insert_range_multi): ... this.
1138 (_Insert_base::insert): Call _M_emplace_uniq or _M_emplace_multi
1139 instead of _M_insert. Add insert overloads from _Insert.
1140 (_Insert_base): Rename to _Insert.
1142 * testsuite/23_containers/unordered_map/96088.cc: Adjust
1143 expected number of allocations.
1144 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
1146 2024-11-13 Jonathan Wakely <jwakely@redhat.com>
1148 * include/bits/hashtable_policy.h (_ReuseOrAllocNode::operator()):
1149 Replace parameter pack with a single parameter. Assign to
1150 existing value when possible.
1151 * testsuite/23_containers/unordered_multiset/allocator/move_assign.cc:
1152 Adjust expected count of operations.
1153 * testsuite/23_containers/unordered_set/allocator/move_assign.cc:
1156 2024-11-13 Jonathan Wakely <jwakely@redhat.com>
1158 * include/bits/hashtable.h (operator=(initializer_list)):
1159 Refactor to not use _M_insert_range.
1161 2024-11-13 Jonathan Wakely <jwakely@redhat.com>
1163 * testsuite/util/testsuite_performance.h (time_counter): Add
1164 comment about times.
1165 (time_counter::system_time): Use correct split value.
1167 2024-11-13 Jonathan Wakely <jwakely@redhat.com>
1169 * scripts/check_performance: Add timestamp to output file at
1172 2024-11-13 Jonathan Wakely <jwakely@redhat.com>
1174 * testsuite/util/testsuite_performance.h: Use
1175 __gnu_cxx::__is_single_threaded instead of __gthread_active_p().
1177 2024-11-13 Jonathan Wakely <jwakely@redhat.com>
1179 * testsuite/performance/ext/pb_ds/hash_int_erase_mem.cc: Replace
1180 std::unary_function with result_type and argument_type typedefs.
1181 * testsuite/util/performance/assoc/multimap_common_type.hpp:
1184 2024-11-13 Jonathan Wakely <jwakely@redhat.com>
1186 * testsuite/performance/20_util/memory_resource/pools.cc: Fix
1187 -Wunused-value warnings about unnamed std::lock_guard objects.
1189 2024-11-11 Jonathan Wakely <jwakely@redhat.com>
1191 * include/bits/locale_conv.h (wstring_convert, wbuffer_convert):
1192 Adjust strings passed to exception constructors.
1194 2024-11-11 Jonathan Wakely <jwakely@redhat.com>
1197 * include/std/text_encoding (aliases_view:_Iterator::operator+=):
1198 Fix typos that caused == to be used instead of =.
1199 (aliases_view::_Iterator): Fix friend declaration.
1200 * testsuite/std/text_encoding/members.cc: Adjust expected
1201 behaviour of invalid subscript. Add tests for other erroneous
1202 operations on iterators.
1204 2024-11-11 Jonathan Wakely <jwakely@redhat.com>
1206 * include/bits/unicode.h (_Utf_iterator::_M_read_utf16): Add
1209 2024-11-08 Jakub Jelinek <jakub@redhat.com>
1211 * libsupc++/new (::operator new, ::operator new[]): Add malloc
1212 attribute where missing. Add alloc_align attribute when
1213 std::align_val_t is present and where it was missing. Formatting fix.
1215 2024-11-08 Jonathan Wakely <jwakely@redhat.com>
1217 * include/bits/hashtable.h (_Hashtable): Add 'inline' to some
1218 one-line constructors.
1220 2024-11-08 Jonathan Wakely <jwakely@redhat.com>
1222 * include/bits/hashtable_policy.h (_Insert_base::try_emplace):
1223 Do not define for C++11 and C++14.
1224 * include/debug/map.h (try_emplace): Use feature test macro.
1225 * include/debug/unordered_map (try_emplace): Likewise.
1226 * testsuite/17_intro/names.cc: Define try_emplace before C++17.
1228 2024-11-08 Jonathan Wakely <jwakely@redhat.com>
1230 * include/bits/hashtable_policy.h (__distance_fw): Replace tag
1231 dispatching with 'if constexpr'.
1233 2024-11-07 Jonathan Wakely <jwakely@redhat.com>
1235 * include/bits/hashtable.h (_M_insert_unique_node): Improve
1238 2024-11-07 Jonathan Wakely <jwakely@redhat.com>
1241 * include/bits/hashtable.h (_Hashtable::_S_forward_key): Remove.
1242 (_Hashtable::_M_insert_unique_aux): Replace _S_forward_key with
1243 a static_cast to a type defined using conditional_t.
1244 (_Hashtable::_M_insert): Replace _ConvertToValueType with a
1245 static_cast to a type defined using conditional_t.
1246 * include/bits/hashtable_policy.h (_ConvertToValueType): Remove.
1247 * testsuite/23_containers/unordered_map/insert/115285.cc: New test.
1248 * testsuite/23_containers/unordered_set/insert/115285.cc: New test.
1249 * testsuite/23_containers/unordered_set/96088.cc: Adjust
1250 expected number of allocations.
1252 2024-11-07 Jonathan Wakely <jwakely@redhat.com>
1254 * include/bits/stl_pair.h (__is_pair): Define for C++11 and
1257 2024-11-07 Jonathan Wakely <jwakely@redhat.com>
1259 * include/bits/hashtable.h (_Hashtable): Fix comment grammar.
1261 2024-11-07 Jonathan Wakely <jwakely@redhat.com>
1263 * include/bits/hashtable.h: Add is_permutation to comment.
1264 * include/bits/hashtable_policy.h: Remove it from comment.
1266 2024-11-07 Jonathan Wakely <jwakely@redhat.com>
1268 * include/bits/hashtable.h: Fix spelling in comment.
1270 2024-11-06 Jonathan Wakely <jwakely@redhat.com>
1272 * doc/xml/manual/evolution.xml: Document deprecations.
1273 * doc/html/*: Regenerate.
1274 * include/c_compatibility/complex.h (_GLIBCXX_COMPLEX_H): Move
1275 include guard to start of file. Include <complex> directly
1276 instead of <ccomplex>.
1277 * include/c_compatibility/tgmath.h: Include <cmath> and
1278 <complex> directly, instead of <ctgmath>.
1279 * include/c_global/ccomplex: Add deprecated #warning for C++17
1280 and #error for C++20 if _GLIBCXX_USE_DEPRECATED == 0.
1281 * include/c_global/ciso646: Likewise.
1282 * include/c_global/cstdalign: Likewise.
1283 * include/c_global/cstdbool: Likewise.
1284 * include/c_global/ctgmath: Likewise.
1285 * include/c_std/ciso646: Likewise.
1286 * include/precompiled/stdc++.h: Do not include ccomplex,
1287 ciso646, cstdalign, cstdbool, or ctgmath in C++17 and later.
1288 * testsuite/18_support/headers/cstdalign/macros.cc: Check for
1289 warnings and errors for unsupported dialects.
1290 * testsuite/18_support/headers/cstdbool/macros.cc: Likewise.
1291 * testsuite/26_numerics/headers/ctgmath/complex.cc: Likewise.
1292 * testsuite/27_io/objects/char/1.cc: Do not include <ciso646>.
1293 * testsuite/27_io/objects/wchar_t/1.cc: Likewise.
1294 * testsuite/18_support/headers/cstdbool/std_c++0x_neg.cc: Removed.
1295 * testsuite/18_support/headers/cstdalign/std_c++0x_neg.cc: Removed.
1296 * testsuite/26_numerics/headers/ccomplex/std_c++0x_neg.cc: Removed.
1297 * testsuite/26_numerics/headers/ctgmath/std_c++0x_neg.cc: Removed.
1298 * testsuite/18_support/headers/ciso646/macros.cc: New test.
1299 * testsuite/18_support/headers/ciso646/macros.h.cc: New test.
1300 * testsuite/18_support/headers/cstdbool/macros.h.cc: New test.
1301 * testsuite/26_numerics/headers/ccomplex/complex.cc: New test.
1302 * testsuite/26_numerics/headers/ccomplex/complex.h.cc: New test.
1303 * testsuite/26_numerics/headers/ctgmath/complex.h.cc: New test.
1304 * testsuite/18_support/headers/cstdalign/macros.h.cc: New file.
1306 2024-11-06 Jonathan Wakely <jwakely@redhat.com>
1308 * include/c_compatibility/complex.h (_GLIBCXX_COMPLEX_H): Move
1309 include guard to start of the header.
1310 * include/c_global/ctgmath (_GLIBCXX_CTGMATH): Likewise.
1312 2024-11-06 Jonathan Wakely <jwakely@redhat.com>
1314 * include/bits/shared_ptr_base.h (__shared_ptr_deref): New
1316 (__shared_ptr_access, __shared_ptr_access<>): Use it.
1318 2024-11-06 Jonathan Wakely <jwakely@redhat.com>
1320 * src/c++17/fs_dir.cc (fs::directory_iterator::operator*): Use
1321 shared_ptr::operator* instead of shared_ptr::operator->.
1322 (fs::recursive_directory_iterator::options): Likewise.
1323 (fs::recursive_directory_iterator::depth): Likewise.
1324 (fs::recursive_directory_iterator::recursion_pending): Likewise.
1325 (fs::recursive_directory_iterator::operator*): Likewise.
1326 (fs::recursive_directory_iterator::disable_recursion_pending):
1329 2024-11-04 Nathaniel Shead <nathanieloshead@gmail.com>
1333 * include/bits/stl_pair.h: Remove workaround.
1335 2024-11-04 Jakub Jelinek <jakub@redhat.com>
1338 * testsuite/26_numerics/headers/cmath/117406.cc: Use
1339 std::numeric_limits<int>::max() instead of INT_MAX.
1341 2024-11-02 Jakub Jelinek <jakub@redhat.com>
1344 * include/c_global/cmath (std::ilogb(_Float16), std::llrint(_Float16),
1345 std::llround(_Float16), std::lrint(_Float16), std::lround(_Float16)):
1346 Don't cast __builtin_* return to _Float16.
1347 (std::ilogb(__gnu_cxx::__bfloat16_t),
1348 std::llrint(__gnu_cxx::__bfloat16_t),
1349 std::llround(__gnu_cxx::__bfloat16_t),
1350 std::lrint(__gnu_cxx::__bfloat16_t),
1351 std::lround(__gnu_cxx::__bfloat16_t)): Don't cast __builtin_* return to
1352 __gnu_cxx::__bfloat16_t.
1353 * testsuite/26_numerics/headers/cmath/117406.cc: New test.
1355 2024-11-01 Jonathan Wakely <jwakely@redhat.com>
1357 * include/bits/unordered_map.h: Check __glibcxx_node_extract and
1358 __glibcxx_unordered_map_try_emplace instead of __cplusplus.
1359 * include/bits/unordered_set.h: Check __glibcxx_node_extract
1360 instead of __cplusplus.
1362 2024-11-01 Jonathan Wakely <jwakely@redhat.com>
1364 * include/bits/hashtable.h: Improve comments.
1366 2024-11-01 Jonathan Wakely <jwakely@redhat.com>
1369 * include/bits/forward_list.h
1370 (forward_list(from_range, R&&, const Alloc&), assign_range)
1371 (prepend_range, insert_range_after): Define.
1372 * include/bits/stl_list.h (list(from_range, R&&, const Alloc&))
1373 (assign_range, prepend_range, append_range, insert_range):
1375 * include/debug/forward_list
1376 (forward_list(from_range, R&&, const Alloc&), assign_range)
1377 (prepend_range, insert_range_after): Define.
1378 * include/debug/list (list(from_range, R&&, const Alloc&))
1379 (assign_range, prepend_range, append_range, insert_range):
1381 * testsuite/23_containers/forward_list/cons/from_range.cc: New
1383 * testsuite/23_containers/forward_list/modifiers/assign_range.cc:
1385 * testsuite/23_containers/forward_list/modifiers/insert_range_after.cc:
1387 * testsuite/23_containers/forward_list/modifiers/prepend_range.cc:
1389 * testsuite/23_containers/list/cons/from_range.cc: New test.
1390 * testsuite/23_containers/list/modifiers/append_range.cc: New
1392 * testsuite/23_containers/list/modifiers/assign/assign_range.cc:
1394 * testsuite/23_containers/list/modifiers/insert/insert_range.cc:
1396 * testsuite/23_containers/list/modifiers/prepend_range.cc: New
1399 2024-11-01 Jonathan Wakely <jwakely@redhat.com>
1401 * testsuite/23_containers/unordered_set/pr115285.cc: Include
1402 missing header for std::vector.
1404 2024-11-01 Jonathan Wakely <jwakely@redhat.com>
1406 * libsupc++/typeinfo: Remove whitespace in #endif
1408 2024-10-31 Jonathan Wakely <jwakely@redhat.com>
1410 * libsupc++/new (operator new): Add attribute align_alloc(2) to
1411 overloads taking a std::align_val_t argument.
1412 * testsuite/18_support/new_aligned_warn.cc: New test.
1414 2024-10-30 Jonathan Wakely <jwakely@redhat.com>
1416 * testsuite/23_containers/vector/cons/from_range.cc: Fix copy &
1417 paste error in comment.
1418 * testsuite/23_containers/vector/modifiers/append_range.cc:
1420 * testsuite/23_containers/vector/modifiers/assign/assign_range.cc:
1422 * testsuite/23_containers/vector/modifiers/insert/insert_range.cc:
1425 2024-10-30 Jonathan Wakely <jwakely@redhat.com>
1427 * doc/xml/manual/using_exceptions.xml: Fix typos and grammatical
1429 * doc/html/manual/using_exceptions.html: Regenerate.
1431 2024-10-30 Jonathan Wakely <jwakely@redhat.com>
1433 * include/bits/c++config (_GLIBCXX_DOUBLE_IS_IEEE_BINARY32):
1435 (_GLIBCXX_LDOUBLE_IS_IEEE_BINARY64): Define.
1436 (_GLIBCXX_LDOUBLE_IS_IEEE_BINARY32): Define.
1437 * include/bits/cpp_type_traits.h (__memcpyable): Define
1438 specializations when double and long double are compatible.
1440 2024-10-30 Jonathan Wakely <jwakely@redhat.com>
1442 * include/bits/cpp_type_traits.h (__memcpyable): Add
1443 specializations for compatible floating-point types.
1445 2024-10-29 Patrick Palka <ppalka@redhat.com>
1448 * include/std/ranges (drop_view::begin): Reimplement const
1449 overload so that it's O(1) always.
1450 * testsuite/std/ranges/adaptors/drop.cc (test10): New test.
1452 2024-10-29 Jakub Jelinek <jakub@redhat.com>
1455 * include/c_global/cmath (nextafter(_Float16, _Float16)): Use
1456 if consteval rather than if (std::__is_constant_evaluated()) around
1457 the __builtin_nextafterf16 call.
1458 (nextafter(__gnu_cxx::__bfloat16_t, __gnu_cxx::__bfloat16_t)): Use
1459 if consteval rather than if (std::__is_constant_evaluated()) around
1460 the __builtin_nextafterf16b call.
1461 * testsuite/26_numerics/headers/cmath/117321.cc: New test.
1463 2024-10-28 Jonathan Wakely <jwakely@redhat.com>
1465 * testsuite/23_containers/vector/bool/cons/from_range.cc: Use
1466 dg-do run instead of compile.
1467 (test_ranges): Use do_test instead of do_test_a for rvalue
1469 (test_constexpr): Call function template instead of just
1471 * testsuite/23_containers/vector/bool/modifiers/assign/assign_range.cc:
1472 Use dg-do run instead of compile.
1473 (do_test): Use same test logic for vector<bool> as for primary
1475 (test_constexpr): Call function template instead of just
1477 * testsuite/23_containers/vector/bool/modifiers/insert/append_range.cc:
1478 Use dg-do run instead of compile.
1479 (test_ranges): Use do_test instead of do_test_a for rvalue
1481 (test_constexpr): Call function template instead of just
1483 * testsuite/23_containers/vector/bool/modifiers/insert/insert_range.cc:
1484 Use dg-do run instead of compile.
1485 (do_test): Fix incorrect function arguments to match intended
1487 (test_ranges): Use do_test instead of do_test_a for rvalue
1489 (test_constexpr): Call function template instead of just
1491 * testsuite/23_containers/vector/cons/from_range.cc: Use dg-do
1492 run instead of compile.
1493 (test_ranges): Fix ill-formed call to do_test.
1494 (test_constexpr): Call function template instead of just
1496 * testsuite/23_containers/vector/modifiers/append_range.cc:
1497 Use dg-do run instead of compile.
1498 (test_constexpr): Likewise.
1499 * testsuite/23_containers/vector/modifiers/assign/assign_range.cc:
1500 Use dg-do run instead of compile.
1501 (do_test): Do not reuse input ranges.
1502 (test_constexpr): Call function template instead of just
1504 * testsuite/23_containers/vector/modifiers/insert/insert_range.cc:
1505 Use dg-do run instead of compile.
1506 (do_test): Fix incorrect function arguments to match intended
1508 (test_constexpr): Call function template instead of just
1511 2024-10-27 Jonathan Wakely <jwakely@redhat.com>
1514 * include/bits/ranges_base.h (__container_compatible_range): New
1516 * include/bits/stl_bvector.h (vector(from_range, R&&, const Alloc&))
1517 (assign_range, insert_range, append_range): Define.
1518 * include/bits/stl_uninitialized.h (__do_uninit_copy): Support
1520 (__uninitialized_copy_a): Likewise.
1521 * include/bits/stl_vector.h (_Vector_base::_M_append_range_to):
1523 (_Vector_base::_M_append_range): Likewise.
1524 (vector(from_range, R&&, const Alloc&), assign_range): Define.
1525 (append_range): Define.
1526 (insert_range): Declare.
1527 * include/debug/vector (vector(from_range, R&&, const Alloc&))
1528 (assign_range, insert_range, append_range): Define.
1529 * include/bits/vector.tcc (insert_range): Define.
1530 * testsuite/util/testsuite_iterators.h (input_iterator_wrapper_rval):
1532 * testsuite/23_containers/vector/bool/cons/from_range.cc: New test.
1533 * testsuite/23_containers/vector/bool/modifiers/assign/assign_range.cc:
1535 * testsuite/23_containers/vector/bool/modifiers/insert/append_range.cc:
1537 * testsuite/23_containers/vector/bool/modifiers/insert/insert_range.cc:
1539 * testsuite/23_containers/vector/cons/from_range.cc: New test.
1540 * testsuite/23_containers/vector/modifiers/append_range.cc: New test.
1541 * testsuite/23_containers/vector/modifiers/assign/assign_range.cc:
1543 * testsuite/23_containers/vector/modifiers/insert/insert_range.cc:
1546 2024-10-27 Jonathan Wakely <jwakely@redhat.com>
1548 * include/bits/stl_bvector.h (emplace_back, emplace): Forward
1549 parameter pack to preserve value category.
1550 * testsuite/23_containers/vector/bool/emplace_rvalue.cc: New
1553 2024-10-25 Jonathan Wakely <jwakely@redhat.com>
1555 * testsuite/21_strings/basic_string/operators/char/op_plus_string_view.cc:
1556 Check __cpp_lib_constexpr_string.
1558 2024-10-25 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
1560 * include/bits/basic_string.h: Implement the four operator+
1561 overloads between basic_string and (types convertible to)
1563 * include/bits/version.def: Bump the feature-testing macro.
1564 * include/bits/version.h: Regenerate.
1565 * testsuite/21_strings/basic_string/operators/char/op_plus_fspath_neg.cc: New test.
1566 * testsuite/21_strings/basic_string/operators/char/op_plus_string_view.cc: New test.
1567 * testsuite/21_strings/basic_string/operators/char/op_plus_string_view_compat.cc:
1570 2024-10-25 Jakub Jelinek <jakub@redhat.com>
1572 * include/debug/debug.h: Remove trailing whitespace.
1573 * include/parallel/base.h: Likewise.
1574 * include/parallel/types.h: Likewise.
1575 * include/parallel/settings.h: Likewise.
1576 * include/parallel/multiseq_selection.h: Likewise.
1577 * include/parallel/partition.h: Likewise.
1578 * include/parallel/random_number.h: Likewise.
1579 * include/parallel/find_selectors.h: Likewise.
1580 * include/parallel/partial_sum.h: Likewise.
1581 * include/parallel/list_partition.h: Likewise.
1582 * include/parallel/search.h: Likewise.
1583 * include/parallel/algorithmfwd.h: Likewise.
1584 * include/parallel/random_shuffle.h: Likewise.
1585 * include/parallel/multiway_mergesort.h: Likewise.
1586 * include/parallel/sort.h: Likewise.
1587 * include/parallel/algobase.h: Likewise.
1588 * include/parallel/numericfwd.h: Likewise.
1589 * include/parallel/multiway_merge.h: Likewise.
1590 * include/parallel/losertree.h: Likewise.
1591 * include/bits/basic_ios.h: Likewise.
1592 * include/bits/stringfwd.h: Likewise.
1593 * include/bits/ostream_insert.h: Likewise.
1594 * include/bits/stl_heap.h: Likewise.
1595 * include/bits/unordered_map.h: Likewise.
1596 * include/bits/hashtable_policy.h: Likewise.
1597 * include/bits/stl_iterator_base_funcs.h: Likewise.
1598 * include/bits/valarray_before.h: Likewise.
1599 * include/bits/regex.h: Likewise.
1600 * include/bits/postypes.h: Likewise.
1601 * include/bits/stl_iterator.h: Likewise.
1602 * include/bits/localefwd.h: Likewise.
1603 * include/bits/stl_algo.h: Likewise.
1604 * include/bits/ios_base.h: Likewise.
1605 * include/bits/stl_function.h: Likewise.
1606 * include/bits/basic_string.h: Likewise.
1607 * include/bits/hashtable.h: Likewise.
1608 * include/bits/valarray_after.h: Likewise.
1609 * include/bits/char_traits.h: Likewise.
1610 * include/bits/gslice.h: Likewise.
1611 * include/bits/locale_facets_nonio.h: Likewise.
1612 * include/bits/mask_array.h: Likewise.
1613 * include/bits/specfun.h: Likewise.
1614 * include/bits/random.h: Likewise.
1615 * include/bits/slice_array.h: Likewise.
1616 * include/bits/valarray_array.h: Likewise.
1617 * include/tr1/float.h: Likewise.
1618 * include/tr1/functional_hash.h: Likewise.
1619 * include/tr1/math.h: Likewise.
1620 * include/tr1/hashtable_policy.h: Likewise.
1621 * include/tr1/stdio.h: Likewise.
1622 * include/tr1/complex.h: Likewise.
1623 * include/tr1/stdbool.h: Likewise.
1624 * include/tr1/stdarg.h: Likewise.
1625 * include/tr1/inttypes.h: Likewise.
1626 * include/tr1/fenv.h: Likewise.
1627 * include/tr1/stdlib.h: Likewise.
1628 * include/tr1/wchar.h: Likewise.
1629 * include/tr1/tgmath.h: Likewise.
1630 * include/tr1/limits.h: Likewise.
1631 * include/tr1/wctype.h: Likewise.
1632 * include/tr1/stdint.h: Likewise.
1633 * include/tr1/ctype.h: Likewise.
1634 * include/tr1/random.h: Likewise.
1635 * include/tr1/shared_ptr.h: Likewise.
1636 * include/ext/mt_allocator.h: Likewise.
1637 * include/ext/sso_string_base.h: Likewise.
1638 * include/ext/debug_allocator.h: Likewise.
1639 * include/ext/vstring_fwd.h: Likewise.
1640 * include/ext/pointer.h: Likewise.
1641 * include/ext/pod_char_traits.h: Likewise.
1642 * include/ext/malloc_allocator.h: Likewise.
1643 * include/ext/vstring.h: Likewise.
1644 * include/ext/bitmap_allocator.h: Likewise.
1645 * include/ext/pool_allocator.h: Likewise.
1646 * include/ext/type_traits.h: Likewise.
1647 * include/ext/ropeimpl.h: Likewise.
1648 * include/ext/codecvt_specializations.h: Likewise.
1649 * include/ext/throw_allocator.h: Likewise.
1650 * include/ext/extptr_allocator.h: Likewise.
1651 * include/ext/atomicity.h: Likewise.
1652 * include/ext/concurrence.h: Likewise.
1653 * include/c_compatibility/wchar.h: Likewise.
1654 * include/c_compatibility/stdint.h: Likewise.
1655 * include/backward/hash_fun.h: Likewise.
1656 * include/backward/binders.h: Likewise.
1657 * include/backward/hashtable.h: Likewise.
1658 * include/backward/auto_ptr.h: Likewise.
1659 * libsupc++/eh_arm.cc: Likewise.
1660 * libsupc++/unwind-cxx.h: Likewise.
1661 * libsupc++/si_class_type_info.cc: Likewise.
1662 * libsupc++/vec.cc: Likewise.
1663 * libsupc++/class_type_info.cc: Likewise.
1664 * libsupc++/vmi_class_type_info.cc: Likewise.
1665 * libsupc++/guard_error.cc: Likewise.
1666 * libsupc++/bad_typeid.cc: Likewise.
1667 * libsupc++/eh_personality.cc: Likewise.
1668 * libsupc++/atexit_arm.cc: Likewise.
1669 * libsupc++/pmem_type_info.cc: Likewise.
1670 * libsupc++/vterminate.cc: Likewise.
1671 * libsupc++/eh_terminate.cc: Likewise.
1672 * libsupc++/bad_cast.cc: Likewise.
1673 * libsupc++/exception_ptr.h: Likewise.
1674 * libsupc++/eh_throw.cc: Likewise.
1675 * libsupc++/bad_alloc.cc: Likewise.
1676 * libsupc++/nested_exception.cc: Likewise.
1677 * libsupc++/pointer_type_info.cc: Likewise.
1678 * libsupc++/pbase_type_info.cc: Likewise.
1679 * libsupc++/bad_array_new.cc: Likewise.
1680 * libsupc++/pure.cc: Likewise.
1681 * libsupc++/eh_exception.cc: Likewise.
1682 * libsupc++/bad_array_length.cc: Likewise.
1683 * libsupc++/cxxabi.h: Likewise.
1684 * libsupc++/guard.cc: Likewise.
1685 * libsupc++/eh_catch.cc: Likewise.
1686 * libsupc++/cxxabi_forced.h: Likewise.
1687 * libsupc++/tinfo.h: Likewise.
1689 2024-10-24 François Dumont <frs.dumont@gmail.com>
1691 * testsuite/23_containers/unordered_map/96088.cc (test03): Fix increments
1692 value when _GLIBCXX_USE_CXX11_ABI is equal to 0.
1694 2024-10-24 Jonathan Wakely <jwakely@redhat.com>
1696 * testsuite/26_numerics/complex/ext_c++23.cc: Fix typo in macro.
1697 * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc:
1699 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc:
1701 * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc:
1704 2024-10-24 Jonathan Wakely <jwakely@redhat.com>
1706 * include/std/variant (__throw_bad_variant_access(unsigned)):
1707 Define new function as inline friend, with namespace-scope
1708 declaration using noreturn attribute.
1709 (__throw_bad_variant_access(const char*)): Remove.
1710 (__throw_bad_variant_access(bool)): Remove.
1711 (visit, visit<R>): Adjust calls to __throw_bad_variant_access.
1713 2024-10-24 Ricardo Jesus <rjj@nvidia.com>
1715 * config/cpu/aarch64/opt/ext/opt_random.h (__VEXT): Replace uses
1716 of __builtin_shuffle with __builtin_shufflevector.
1717 (__aarch64_lsl_128): Move shift amount to a template parameter.
1718 (__aarch64_lsr_128): Move shift amount to a template parameter.
1719 (__aarch64_recursion): Update call sites of __aarch64_lsl_128
1720 and __aarch64_lsr_128.
1722 2024-10-23 Jonathan Wakely <jwakely@redhat.com>
1724 * testsuite/18_support/headers/cstdalign/macros.cc: New test.
1726 2024-10-23 Jonathan Wakely <jwakely@redhat.com>
1728 * doc/xml/manual/evolution.xml: Document that assertions are
1729 enabled for unoptimized builds.
1730 * doc/html/*: Regenerate.
1732 2024-10-23 Jonathan Wakely <jwakely@redhat.com>
1734 * doc/xml/manual/test.xml: Add GLIBCXX_TESTSUITE_STDS example.
1735 * doc/html/manual/test.html: Regenerate.
1737 2024-10-23 Jonathan Wakely <jwakely@redhat.com>
1739 * include/bits/basic_string.h (assign(Iter, Iter)): Call
1740 std::to_address instead of __to_address.
1742 2024-10-23 François Dumont <frs.dumont@gmail.com>
1745 * include/bits/hashtable.h (_S_forward_key<_Kt>): Always return a temporary
1747 * testsuite/23_containers/unordered_map/96088.cc: Adapt to additional instanciation.
1748 Also check that mapped_type is not instantiated when there is no insertion.
1749 * testsuite/23_containers/unordered_multimap/96088.cc: Adapt to additional
1751 * testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
1752 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
1753 * testsuite/23_containers/unordered_set/pr115285.cc: New test case.
1755 2024-10-22 Patrick Palka <ppalka@redhat.com>
1757 * include/std/ranges (concat_view::begin): Add space after
1758 'requires' starting a requires-clause.
1759 (concat_view::end): Likewise. Refine condition for returning an
1760 iterator rather than default_sentinel as per LWG 4166.
1761 * testsuite/std/ranges/concat/1.cc (test03): Verify LWG 4166
1764 2024-10-22 Jonathan Wakely <jwakely@redhat.com>
1766 * include/bits/basic_string.h (basic_string::assign): Replace
1767 use of __to_address with __niter_base or std::to_address as
1769 * include/bits/ptr_traits.h (__to_address): Add comment.
1770 * include/bits/shared_ptr_base.h (__shared_ptr): Qualify calls
1772 * include/bits/stl_algo.h (find): Replace use of __to_address
1773 with __niter_base or std::to_address as appropriate. Only use
1774 either of them when the range is not empty.
1775 * include/bits/stl_iterator.h (__to_address): Remove overload
1776 for __normal_iterator.
1777 * include/debug/safe_iterator.h (__to_address): Remove overload
1779 * include/std/ranges (views::counted): Replace use of
1780 __to_address with std::to_address.
1781 * testsuite/24_iterators/normal_iterator/to_address.cc: Removed.
1783 2024-10-21 Jonathan Wakely <jwakely@redhat.com>
1785 * testsuite/26_numerics/headers/cmath/types_std_c++0x_neg.cc:
1787 * testsuite/26_numerics/headers/cmath/specfun_c++17.cc: here and
1788 adjust test to be valid for all -std dialects.
1790 2024-10-21 Jonathan Wakely <jwakely@redhat.com>
1792 * include/bits/stl_vector.h (vector::_M_data_ptr): Remove
1793 non-const overloads. Always return non-const pointer.
1795 2024-10-21 Jonathan Wakely <jwakely@redhat.com>
1798 * include/bits/stl_iterator.h: Move _GLIBCXX_NODISCARD
1799 annotations after __attribute__((__always_inline__)).
1801 2024-10-18 Jonathan Wakely <jwakely@redhat.com>
1803 * include/bits/ranges_algobase.h (ranges::__assign_one): Remove.
1804 (__copy_or_move, __copy_or_move_backward): Use std::__assign_one
1805 instead of ranges::__assign_one.
1807 2024-10-18 Jonathan Wakely <jwakely@redhat.com>
1809 * include/bits/stl_algobase.h (__copy_move_a1, __copy_move_a)
1810 (__copy_move_backward_a1, __copy_move_backward_a, move_backward)
1811 (__fill_a1, __fill_a, fill, __fill_n_a, fill_n, __equal_aux):
1812 Add always_inline attribute to one-line forwarding functions.
1814 2024-10-18 Jonathan Wakely <jwakely@redhat.com>
1816 * include/bits/stl_algo.h (find): Add nodiscard.
1818 2024-10-18 Jonathan Wakely <jwakely@redhat.com>
1822 * include/bits/stl_algo.h (__copy_n): Remove generic overload
1823 and overload for random access iterators.
1824 (copy_n): Inline generic version of __copy_n here. Do not defer
1825 to std::copy for random access iterators.
1826 * include/bits/stl_algobase.h (__copy_move): Remove.
1827 (__nothrow_contiguous_iterator, __memcpyable_iterators): New
1829 (__assign_one, _GLIBCXX_TO_ADDR, _GLIBCXX_ADVANCE): New helpers.
1830 (__copy_move_a2): Inline __copy_move logic and conditional
1831 memmove optimization into the most generic overload.
1832 (__copy_n_a): Likewise.
1833 (__copy_move_backward): Remove.
1834 (__copy_move_backward_a2): Inline __copy_move_backward logic and
1835 memmove optimization into the most generic overload.
1836 * testsuite/20_util/specialized_algorithms/uninitialized_copy/114817.cc:
1838 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/114817.cc:
1840 * testsuite/25_algorithms/copy/114817.cc: New test.
1841 * testsuite/25_algorithms/copy/115444.cc: New test.
1842 * testsuite/25_algorithms/copy_n/114817.cc: New test.
1844 2024-10-18 Jonathan Wakely <jwakely@redhat.com>
1846 * include/bits/stl_iterator.h (__normal_iterator): Make all
1847 members and overloaded operators constexpr before C++20, and add
1848 always_inline attribute
1849 (__to_address): Add nodiscard and always_inline attributes.
1850 (__make_move_if_noexcept_iterator): Add nodiscard
1851 and make unconditionally constexpr.
1852 (__niter_base(__normal_iterator), __niter_base(Iter)):
1853 Add nodiscard and always_inline attributes.
1854 (__niter_base(reverse_iterator), __niter_base(move_iterator))
1855 (__miter_base): Add inline.
1856 (__niter_wrap(From, To)): Add nodiscard attribute.
1857 (__niter_wrap(const Iter&, Iter)): Add nodiscard and
1858 always_inline attributes.
1860 2024-10-18 Jonathan Wakely <jwakely@redhat.com>
1864 * include/bits/stl_uninitialized.h (__check_constructible)
1865 (_GLIBCXX_USE_ASSIGN_FOR_INIT): Remove.
1866 [C++98] (__unwrappable_niter): New trait.
1867 (__uninitialized_copy<true>): Replace use of std::copy.
1868 (uninitialized_copy): Fix Doxygen comments. Open-code memcpy
1869 optimization for C++11 and later.
1870 (__uninitialized_fill<true>): Replace use of std::fill.
1871 (uninitialized_fill): Fix Doxygen comments. Open-code memset
1872 optimization for C++11 and later.
1873 (__uninitialized_fill_n<true>): Replace use of std::fill_n.
1874 (uninitialized_fill_n): Fix Doxygen comments. Open-code memset
1875 optimization for C++11 and later.
1876 * testsuite/20_util/specialized_algorithms/uninitialized_copy/64476.cc:
1877 Adjust expected behaviour to match what the standard specifies.
1878 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/sizes.cc:
1880 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc:
1881 Adjust dg-error directives.
1882 * testsuite/20_util/specialized_algorithms/uninitialized_copy/89164.cc:
1884 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/89164.cc:
1886 * testsuite/20_util/specialized_algorithms/uninitialized_fill/89164.cc:
1888 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/89164.cc:
1890 * testsuite/23_containers/vector/cons/89164.cc: Likewise.
1891 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise.
1893 2024-10-18 Jonathan Wakely <jwakely@redhat.com>
1895 * include/bits/stl_algobase.h (__niter_base, __niter_wrap): Move
1897 * include/bits/stl_iterator.h: ... here.
1898 (__niter_base, __miter_base): Move all overloads to the end of
1900 * testsuite/24_iterators/normal_iterator/wrapping.cc: New test.
1902 2024-10-16 Jonathan Wakely <jwakely@redhat.com>
1904 * python/libstdcxx/v6/printers.py (strip_fundts_namespace): New.
1905 (StdExpAnyPrinter, StdExpOptionalPrinter): Use it.
1907 2024-10-15 Jonathan Wakely <jwakely@redhat.com>
1910 * include/bits/iterator_concepts.h (__cpp17_fwd_iterator): Use
1911 is_reference instead of is_value_reference.
1913 * include/std/ranges (transform_view:__iter_cat::_S_iter_cat):
1915 (zip_transform_view::__iter_cat::_S_iter_cat): Likewise.
1916 (adjacent_transform_view::__iter_cat::_S_iter_cat): Likewise.
1917 (join_with_view::__iter_cat::_S_iter_cat): Likewise.
1918 * testsuite/std/ranges/adaptors/transform.cc: Check
1919 iterator_category when the transformation function returns an
1920 rvalue reference type.
1922 2024-10-14 Jonathan Wakely <jwakely@redhat.com>
1924 * include/std/ranges (transform_view:_Iterator): Use const F&
1925 to determine value_type and iterator_category of
1926 _Iterator<true>, as per LWG 3564.
1927 * testsuite/std/ranges/adaptors/transform.cc: Check value_type
1928 and iterator_category.
1930 2024-10-14 Jonathan Wakely <jwakely@redhat.com>
1933 * config/locale/generic/time_members.cc
1934 (__timepunct<wchar_t>::_M_initialize_timepunc): Set
1935 _M_date_time_format for C locale. Set %Ex formats to the same
1936 values as the %x formats.
1938 2024-10-14 Jonathan Wakely <jwakely@redhat.com>
1940 * include/bits/version.def (constrained_equality): Bump value.
1941 * include/bits/version.h: Regenerate.
1942 * include/std/expected (operator==): Add constraints and
1943 noexcept specifiers.
1944 * testsuite/20_util/optional/relops/constrained.cc: Adjust
1945 check for feature test macro.
1946 * testsuite/20_util/pair/comparison_operators/constrained.cc:
1948 * testsuite/20_util/tuple/comparison_operators/constrained.cc:
1950 * testsuite/20_util/variant/relops/constrained.cc: Likewise.
1951 * testsuite/20_util/expected/equality_constrained.cc: New test.
1953 2024-10-14 Jonathan Wakely <jwakely@redhat.com>
1956 * include/bits/ranges_algobase.h (__fill_fn): Use std::move for
1957 iterator that might not be copyable.
1958 * testsuite/25_algorithms/fill/constrained.cc: Check
1959 non-copyable iterator with sized sentinel.
1961 2024-10-14 Jonathan Wakely <jwakely@redhat.com>
1964 * include/bits/stl_algobase.h (__fill_a1(T*, T*, const T&)):
1965 Change template parameters and enable_if condition to allow the
1966 fill value to be an integer.
1968 2024-10-14 Jonathan Wakely <jwakely@redhat.com>
1971 * include/bits/cpp_type_traits.h (__memcpyable): Add partial
1972 specialization for pointers to distinct types.
1973 (__memcpyable_integer): New trait to control which types can use
1974 cross-type memcpy optimizations.
1976 2024-10-13 Sam James <sam@gentoo.org>
1978 * testsuite/17_intro/names_fortify.cc: Undefine _FORTIFY_SOURCE.
1980 2024-10-13 Jonathan Wakely <jwakely@redhat.com>
1983 * include/bits/ranges_algobase.h (copy_backward): Decrement
1984 output iterator before assigning one element through it.
1985 * testsuite/25_algorithms/copy/108846.cc: Ensure the algorithm's
1986 effects are correct for a single memcpyable element.
1987 * testsuite/25_algorithms/copy_backward/108846.cc: Likewise.
1988 * testsuite/25_algorithms/copy_n/108846.cc: Likewise.
1990 2024-10-11 Jonathan Wakely <jwakely@redhat.com>
1992 * include/bits/stl_iterator.h (__niter_base(move_iterator<I>))
1993 (__is_move_iterator, __miter_base, _GLIBCXX_MAKE_MOVE_ITERATOR)
1994 (_GLIBCXX_MAKE_MOVE_IF_NOEXCEPT_ITERATOR): Move earlier in the
1997 2024-10-11 Jonathan Wakely <jwakely@redhat.com>
1999 * include/bits/cpp_type_traits.h (__is_byte<byte>): Guard with
2000 __glibcxx_byte macro instead of checking __cplusplus.
2002 2024-10-11 Jonathan Wakely <jwakely@redhat.com>
2005 * include/bits/chrono_io.h (__formatter_chrono::_M_c): Add L
2006 option to format string.
2007 * testsuite/std/time/format.cc: Move to...
2008 * testsuite/std/time/format/format.cc: ...here.
2009 * testsuite/std/time/format_localized.cc: Move to...
2010 * testsuite/std/time/format/localized.cc: ...here.
2011 * testsuite/std/time/format/pr117085.cc: New test.
2013 2024-10-11 Jonathan Wakely <jwakely@redhat.com>
2015 * testsuite/22_locale/time_get/get/char/5.cc: Fix dg-do
2017 * testsuite/22_locale/time_get/get/wchar_t/5.cc: Likewise.
2019 2024-10-11 Jonathan Wakely <jwakely@redhat.com>
2021 * testsuite/20_util/duration/io.cc [!__cpp_lib_char8_t]: Define
2022 char8_t as a typedef for unsigned char.
2023 * testsuite/std/format/parse_ctx_neg.cc: Skip for -fno-char8_t.
2025 2024-10-09 Jonathan Wakely <jwakely@redhat.com>
2028 * testsuite/17_intro/names.cc (sz): Undef for versions of Glibc
2029 that use it in the fortify wrappers.
2030 * testsuite/17_intro/names_fortify.cc: New test.
2032 2024-10-09 Jonathan Wakely <jwakely@redhat.com>
2035 * include/bits/locale_facets_nonio.tcc (money_put::__do_put):
2036 Remove diagnostic pragmas.
2037 (__glibcxx_snprintfibm128): Declare type manually, instead of
2038 using __typeof__(__builtin_snprintf).
2040 2024-10-09 Frank Scheiner <frank.scheiner@web.de>
2042 * testsuite/17_intro/names.cc [__linux__ && __ia64__]: Undefine
2043 'u' as used in glibc headers.
2045 2024-10-09 Jonathan Wakely <jwakely@redhat.com>
2048 * include/bits/semaphore_base.h (_GLIBCXX_USE_POSIX_SEMAPHORE):
2049 Undefine and issue a warning if POSIX sem_t is not supported.
2050 * testsuite/30_threads/semaphore/platform_try_acquire_for.cc:
2053 2024-10-09 Jonathan Wakely <jwakely@redhat.com>
2056 * include/std/complex (__complex_acos): Cast literal to
2059 2024-10-09 Jonathan Wakely <jwakely@redhat.com>
2061 * include/std/latch (latch::count_down): Add assertions for
2062 preconditions. Cast parameter to avoid -Wsign-compare on some
2065 2024-10-09 Jonathan Wakely <jwakely@redhat.com>
2068 * doc/xml/manual/using.xml (_GLIBCXX_ASSERTIONS): Document
2069 implicit definition for -O0 compilation.
2070 (_GLIBCXX_NO_ASSERTIONS): Document.
2071 * doc/html/manual/using_macros.html: Regenerate.
2072 * include/bits/c++config [!__OPTIMIZE__] (_GLIBCXX_ASSERTIONS):
2073 Define for unoptimized builds.
2075 2024-10-09 Jonathan Wakely <jwakely@redhat.com>
2078 * doc/doxygen/user.cfg.in (GENERATE_BUGLIST): Set to NO.
2079 * include/std/type_traits (__aligned_storage_msa): Remove.
2080 (__aligned_storage_max_align_t): New struct.
2081 (__aligned_storage_default_alignment): New function.
2082 (aligned_storage): Use __aligned_storage_default_alignment for
2083 default alignment. Replace union with a struct containing an
2084 aligned buffer. Improve Doxygen comment.
2085 (aligned_storage_t): Use __aligned_storage_default_alignment for
2088 2024-10-09 Jonathan Wakely <jwakely@redhat.com>
2090 * include/bits/shared_ptr_base.h: Remove cv-qualifiers from
2091 type managed by _Sp_counted_ptr_inplace, as per LWG 3210.
2092 * include/bits/stl_construct.h: Do not cast away cv-qualifiers
2093 when passing pointer to placement new.
2094 * include/std/expected: Use remove_cv_t for union member, as per
2096 * testsuite/20_util/allocator/void.cc: Do not test construction
2099 2024-10-09 Jonathan Wakely <jwakely@redhat.com>
2101 * include/bits/stl_construct.h (construct_at): Support array
2103 * testsuite/20_util/specialized_algorithms/construct_at/array.cc:
2105 * testsuite/20_util/specialized_algorithms/construct_at/array_neg.cc:
2108 2024-10-09 Jonathan Wakely <jwakely@redhat.com>
2110 * include/bits/chrono_io.h (__formatter_chrono::_M_c): Add
2111 [[unlikely]] attribute to condition for missing %c format in
2112 locale. Use %T instead of %H:%M:%S in fallback.
2114 2024-10-09 Jonathan Wakely <jwakely@redhat.com>
2117 * include/bits/chrono_io.h (operator<<): Use +d.count() for
2119 (__formatter_chrono::_M_format): Likewise for %Q format.
2120 * testsuite/20_util/duration/io.cc: Test durations with
2121 character types as reps.
2123 2024-10-08 Jakub Jelinek <jakub@redhat.com>
2125 * include/bits/unicode.h (std::__unicode::__v15_1_0): Rename inline
2127 (std::__unicode::__v16_0_0): ... this.
2128 (_GLIBCXX_GET_UNICODE_DATA): Change from 150100 to 160000.
2129 * include/bits/unicode-data.h: Regenerated.
2130 * testsuite/ext/unicode/properties.cc: Check for _Gcb_SpacingMark
2131 on U+11F03 rather than U+1D16D as the latter lost SpacingMark property
2134 2024-10-05 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2136 * include/bits/version.def: Added the feature-testing macro.
2137 * include/bits/version.h: Regenerated.
2138 * include/std/type_traits: Add support for
2139 std::is_virtual_base_of and std::is_virtual_base_of_v,
2140 implemented in terms of the compiler builtin.
2141 * testsuite/20_util/is_virtual_base_of/value.cc: New test.
2143 2024-10-05 Patrick Palka <ppalka@redhat.com>
2145 * include/bits/ranges_base.h (__distance_fn::operator()):
2146 Adjust iterator/sentinel overloads as per LWG 3664.
2147 * testsuite/24_iterators/range_operations/distance.cc:
2148 Test LWG 3664 example.
2150 2024-10-04 Patrick Palka <ppalka@redhat.com>
2152 * include/std/ranges (single_view::empty): Define as per LWG 4035.
2153 (iota_view::empty): Define as per LWG 4001.
2154 (lazy_split_view::_OuterIter::value_type): Remove default
2155 constructor and make other constructor private as per LWG 4013.
2156 (common_view::begin): Disable non-const overload for simple
2157 views as per LWG 4012.
2158 (common_view::end): Likewise.
2159 (adjacent_view::base): Define as per LWG 3848.
2160 (adjacent_transform_view::base): Likewise.
2161 (chunk_view::_InnerIter::iter_move): Define as per LWG 3851.
2162 (chunk_view::_InnerIter::itep_swap): Likewise.
2163 (slide_view::base): Define as per LWG 3848.
2164 (repeat_view): Adjust deduction guide as per LWG 4053.
2165 (_Repeat::operator()): Adjust single-parameter overload as per
2167 * testsuite/std/ranges/adaptors/adjacent/1.cc: Verify existence
2168 of base member function.
2169 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: Likewise.
2170 * testsuite/std/ranges/adaptors/chunk/1.cc: Test LWG 3851 example.
2171 * testsuite/std/ranges/adaptors/slide/1.cc: Verify existence of
2172 base member function.
2173 * testsuite/std/ranges/iota/iota_view.cc: Test LWG 4001 example.
2174 * testsuite/std/ranges/repeat/1.cc: Test LWG 4053/4054 examples.
2176 2024-10-04 Jonathan Wakely <jwakely@redhat.com>
2178 * include/parallel/algobase.h (search): Use sequential algorithm
2179 for constant evaluation.
2180 * include/parallel/algorithmfwd.h (search): Add
2181 _GLIBCXX20_CONSTEXPR.
2182 * include/parallel/multiway_merge.h: Remove stray semi-colon.
2183 * include/parallel/multiseq_selection.h: Add diagnostic pragmas
2184 for -Wlong-long warning.
2185 * include/parallel/quicksort.h: Likewise.
2186 * include/parallel/random_number.h: Likewise.
2187 * include/parallel/settings.h: Likewise.
2188 * include/parallel/workstealing.h: Replace ++ and -- on volatile
2190 * testsuite/17_intro/names.cc: Skip names defined by
2192 * testsuite/20_util/pair/dangling_ref.cc: Skip test if Parallel
2194 * testsuite/20_util/tuple/dangling_ref.cc: Likewise.
2196 2024-10-04 Jonathan Wakely <jwakely@redhat.com>
2199 * include/std/shared_mutex (__shared_mutex_cv): Use [this] for
2201 (shared_timed_mutex) [!_GLIBCXX_USE_PTHREAD_RWLOCK_T]: Likewise.
2203 2024-10-03 Jonathan Wakely <jwakely@redhat.com>
2205 * include/bits/unicode.h (__unicode::__is_incb_linker): Use
2206 _GLIBCXX_STD_A namespace for std::find.
2208 2024-10-03 Jonathan Wakely <jwakely@redhat.com>
2211 * include/parallel/base.h: Move diagnostic pragmas earlier.
2213 2024-10-03 Jonathan Wakely <jwakely@redhat.com>
2215 * include/bits/locale_facets_nonio.tcc (money_put::__do_get):
2216 Ignore -Wformat warning for __ibm128 arguments.
2217 * include/tr1/tuple (ignore): Ignore -Wunused warning.
2219 2024-10-03 François Dumont <fdumont@gcc.gnu.org>
2221 * include/bits/hashtable_policy.h (_NodeBuilder<>::_S_build): Remove
2222 const qualification on _NodeGenerator instance.
2223 (_ReuseOrAllocNode<>::operator()(_Args&&...)): Remove const qualification.
2224 (_ReuseOrAllocNode<>::_M_nodes): Remove mutable.
2225 (_Insert_base<>::_M_insert_range): Remove _NodeGetter const qualification.
2226 (_Hash_code_base<>::_M_bucket_index(const _Hash_node_value<>&, size_t)):
2227 Simplify noexcept declaration, we already static_assert that _RangeHash functor
2229 * include/bits/hashtable.h: Rework comments. Remove const qualifier on
2230 _NodeGenerator& arguments.
2232 2024-10-02 Jonathan Wakely <jwakely@redhat.com>
2234 * config/locale/dragonfly/time_members.cc
2235 (__timepunct<char>::_M_initialize_timepunc)
2236 (__timepunct<wchar_t>::_M_initialize_timepunc): Set
2237 _M_date_time_format for C locale. Set %Ex formats to the same
2238 values as the %x formats.
2239 * config/locale/generic/time_members.cc: Likewise.
2240 * config/locale/gnu/time_members.cc: Likewise.
2241 * testsuite/22_locale/time_get/get/char/5.cc: New test.
2242 * testsuite/22_locale/time_get/get/wchar_t/5.cc: New test.
2244 2024-10-02 Jonathan Wakely <jwakely@redhat.com>
2246 * include/bits/chrono_io.h (__detail::__use_floor): New
2248 (__detail::__round): New function.
2249 (from_stream): Use __detail::__round.
2250 * testsuite/std/time/clock/file/io.cc: Check for expected
2252 * testsuite/std/time/clock/gps/io.cc: Likewise.
2254 2024-10-02 Jonathan Wakely <jwakely@redhat.com>
2256 * include/bits/postypes.h: Fix -Wlong-long warning.
2258 2024-10-01 Hans-Peter Nilsson <hp@axis.com>
2261 * config/os/newlib/ctype_base.h: Avoid signed-overflow warnings by
2262 explicitly casting initializer expressions to mask.
2264 2024-09-27 Jonathan Wakely <jwakely@redhat.com>
2266 * include/bits/istream.tcc: Add diagnostic pragmas around uses
2267 of long long and extern template.
2268 * include/bits/locale_facets.h: Likewise.
2269 * include/bits/locale_facets.tcc: Likewise.
2270 * include/bits/locale_facets_nonio.tcc: Likewise.
2271 * include/bits/ostream.tcc: Likewise.
2272 * include/bits/stl_algobase.h: Likewise.
2273 * include/c_global/cstdlib: Likewise.
2274 * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
2276 * include/ext/pointer.h: Likewise.
2277 * include/ext/stdio_sync_filebuf.h: Likewise.
2278 * include/std/istream: Likewise.
2279 * include/std/ostream: Likewise.
2280 * include/tr1/cmath: Likewise.
2281 * include/tr1/type_traits: Likewise.
2282 * include/tr1/functional_hash.h: Likewise. Remove semi-colons
2283 at namespace scope that aren't needed after macro expansion.
2284 * include/tr1/tuple: Remove semi-colon at namespace scope.
2285 * include/bits/vector.tcc: Change LL suffix to just L.
2287 2024-09-27 Jonathan Wakely <jwakely@redhat.com>
2289 * include/experimental/bits/fs_path.h (path::_Cvt): Refactor to
2291 (path::string(const Allocator&)): Likewise.
2293 2024-09-27 Jonathan Wakely <jwakely@redhat.com>
2295 * include/bits/basic_string.tcc (resize_for_overwrite): Fix
2296 -Wsign-compare warning.
2297 * include/bits/cow_string.h (resize_for_overwrite): Likewise.
2299 2024-09-27 Jonathan Wakely <jwakely@redhat.com>
2301 * testsuite/20_util/bind/dangling_ref.cc: Add an additional
2302 dg-warning for -Wreturn-local-addr warning.
2303 * testsuite/30_threads/packaged_task/cons/dangling_ref.cc:
2306 2024-09-27 Jonathan Wakely <jwakely@redhat.com>
2308 * include/bits/atomic_base.h (__atomic_base<T*>::_M_type_size):
2309 Replace overloaded functions with static _S_type_size.
2310 * include/std/atomic (atomic<T*>): Use is_object_v instead of
2312 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
2313 Add dg-warning for -Wpointer-arith warning.
2315 2024-09-26 Jonathan Wakely <jwakely@redhat.com>
2317 * include/bits/cow_string.h (__resize_for_overwrite): Add
2318 inline keyword to function with always_inline attribute.
2320 2024-09-26 Nathaniel Shead <nathanieloshead@gmail.com>
2323 * include/bits/shared_ptr.h (std::__is_shared_ptr): Remove
2324 unnecessary 'static'.
2325 * include/bits/unique_ptr.h (std::__is_unique_ptr): Likewise.
2326 * include/std/future (std::__create_task_state): Likewise.
2327 * include/std/shared_mutex (_GLIBCXX_GTRHW): Likewise.
2328 (__glibcxx_rwlock_init): Likewise.
2329 (__glibcxx_rwlock_timedrdlock): Likewise.
2330 (__glibcxx_rwlock_timedwrlock): Likewise.
2331 (__glibcxx_rwlock_rdlock): Likewise.
2332 (__glibcxx_rwlock_tryrdlock): Likewise.
2333 (__glibcxx_rwlock_wrlock): Likewise.
2334 (__glibcxx_rwlock_trywrlock): Likewise.
2335 (__glibcxx_rwlock_unlock): Likewise.
2336 (__glibcxx_rwlock_destroy): Likewise.
2337 (__glibcxx_rwlock_init): Likewise.
2338 * include/pstl/algorithm_impl.h
2339 (__pstl::__internal::__set_algo_cut_off): Mark inline.
2340 * include/pstl/unseq_backend_simd.h
2341 (__pstl::__unseq_backend::__lane_size): Mark inline.
2343 2024-09-26 Jakub Jelinek <jakub@redhat.com>
2346 * config/os/bsd/freebsd/os_defines.h
2347 (_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC,
2348 _GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC): Avoid
2349 -Wexpansion-to-defined warnings.
2350 * config/os/bsd/dragonfly/os_defines.h
2351 (_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC): Likewise.
2353 2024-09-26 Jonathan Wakely <jwakely@redhat.com>
2354 Andrew Waterman <andrew@sifive.com>
2357 * include/std/ostream (_S_cast_flt): New static member function
2358 to restore signbit after casting to double or long double.
2359 (operator<<(float), operator<<(_Float16), operator<<(_Float32))
2360 (operator<<(_Float64), operator(_Float128))
2361 (operator<<(__bfloat16_t)): Use _S_cast_flt.
2362 testsuite/27_io/basic_ostream/inserters_arithmetic/lwg4101.cc:
2364 * testsuite/27_io/basic_ostream/inserters_arithmetic/lwg4101.cc: New file.
2366 2024-09-26 Jonathan Wakely <jwakely@redhat.com>
2368 * testsuite/27_io/basic_istringstream/cons/2020.cc: Fix comment
2369 referring to basic_filebuf.
2370 * testsuite/27_io/basic_istringstream/requirements/base_classes.cc:
2372 * testsuite/27_io/basic_ostringstream/cons/2020.cc: Likewise.
2373 * testsuite/27_io/basic_ostringstream/requirements/base_classes.cc:
2375 * testsuite/27_io/basic_stringbuf/cons/2020.cc: Likewise.
2376 * testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/2.cc:
2378 * testsuite/27_io/basic_stringbuf/requirements/explicit_instantiation/4.cc:
2380 * testsuite/27_io/basic_stringstream/cons/2020.cc: Likewise.
2381 * testsuite/27_io/basic_stringstream/requirements/base_classes.cc:
2384 2024-09-26 Jonathan Wakely <jwakely@redhat.com>
2386 * include/bits/basic_ios.h (basic_ios::operator bool()):
2387 Add [[nodiscard]] attribute.
2388 (basic_ios::operator!(), basic_ios::rdstate())
2389 (basic_ios::good(), basic_ios::eof(), basic_ios::fail())
2390 (basic_ios::bad(), basic_ios::exceptions(), basic_ios::tie())
2391 (basic_ios::rdbuf(), basic_ios::fill()): Likewise.
2392 * include/bits/ios_base.h (ios_base::flags()): Likewise.
2393 (ios_base::precision(), ios_base::width(), ios_base::getloc()):
2395 * include/std/fstream (basic_filebuf::is_open)
2396 (basic_ifstream::rdbuf(), basic_ifstream::is_open)
2397 (basic_ofstream::rdbuf(), basic_ofstream::is_open)
2398 (basic_fstream::rdbuf(), basic_fstream::is_open): Likewise.
2399 * include/std/spanstream (basic_spanbuf::span())
2400 (basic_ispanstream::span(), basic_ispanstream::rdbuf())
2401 (basic_ospanstream::span(), basic_ospanstream::rdbuf())
2402 (basic_spanstream::span(), basic_spanstream::rdbuf()):
2404 * include/std/sstream (basic_stringbuf::str())
2405 (basic_istringstream::rdbuf(), basic_istringstream::str())
2406 (basic_ostringstream::rdbuf(), basic_ostringstream::str())
2407 (basic_stringstream::rdbuf(), basic_stringstream::str()):
2409 * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
2410 Suppress -Wunused-result warnings.
2411 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc:
2414 2024-09-26 Iain Sandoe <iain@sandoe.co.uk>
2417 * include/bits/basic_string.h: Ignore suggest-attribute=format
2418 warning when using posix vsnprintf in to_string() implementations.
2420 2024-09-26 Jonathan Wakely <jwakely@redhat.com>
2422 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
2423 Do not assume allocators only throw std::bad_alloc.
2425 2024-09-26 Jonathan Wakely <jwakely@redhat.com>
2428 * libsupc++/guard.cc (__cxa_guard_acquire): Remove
2429 _GLIBCXX_NOTHROW to match declaration in <cxxabi.h>.
2431 2024-09-25 Sam James <sam@gentoo.org>
2434 * testsuite/23_containers/array/capacity/empty.cc: Add missing brace.
2435 * testsuite/23_containers/array/capacity/max_size.cc: Ditto.
2436 * testsuite/23_containers/array/capacity/size.cc: Ditto.
2438 2024-09-25 Jason Merrill <jason@redhat.com>
2440 * acinclude.m4 (WARN_FLAGS): Remove -Wsystem-headers.
2441 * configure: Regenerate.
2442 * include/bits/algorithmfwd.h: #ifdef out #pragma GCC system_header.
2443 * include/bits/atomic_base.h
2444 * include/bits/atomic_futex.h
2445 * include/bits/atomic_timed_wait.h
2446 * include/bits/atomic_wait.h
2447 * include/bits/basic_ios.h
2448 * include/bits/basic_string.h
2449 * include/bits/boost_concept_check.h
2450 * include/bits/char_traits.h
2451 * include/bits/charconv.h
2452 * include/bits/chrono.h
2453 * include/bits/chrono_io.h
2454 * include/bits/codecvt.h
2455 * include/bits/concept_check.h
2456 * include/bits/cpp_type_traits.h
2457 * include/bits/elements_of.h
2458 * include/bits/enable_special_members.h
2459 * include/bits/erase_if.h
2460 * include/bits/forward_list.h
2461 * include/bits/functional_hash.h
2462 * include/bits/gslice.h
2463 * include/bits/gslice_array.h
2464 * include/bits/hashtable.h
2465 * include/bits/indirect_array.h
2466 * include/bits/invoke.h
2467 * include/bits/ios_base.h
2468 * include/bits/iterator_concepts.h
2469 * include/bits/locale_classes.h
2470 * include/bits/locale_facets.h
2471 * include/bits/locale_facets_nonio.h
2472 * include/bits/localefwd.h
2473 * include/bits/mask_array.h
2474 * include/bits/max_size_type.h
2475 * include/bits/memory_resource.h
2476 * include/bits/memoryfwd.h
2477 * include/bits/move_only_function.h
2478 * include/bits/node_handle.h
2479 * include/bits/ostream_insert.h
2480 * include/bits/out_ptr.h
2481 * include/bits/parse_numbers.h
2482 * include/bits/postypes.h
2483 * include/bits/quoted_string.h
2484 * include/bits/range_access.h
2485 * include/bits/ranges_base.h
2486 * include/bits/refwrap.h
2487 * include/bits/sat_arith.h
2488 * include/bits/semaphore_base.h
2489 * include/bits/slice_array.h
2490 * include/bits/std_abs.h
2491 * include/bits/std_function.h
2492 * include/bits/std_mutex.h
2493 * include/bits/std_thread.h
2494 * include/bits/stl_iterator_base_funcs.h
2495 * include/bits/stl_iterator_base_types.h
2496 * include/bits/stl_tree.h
2497 * include/bits/stream_iterator.h
2498 * include/bits/streambuf_iterator.h
2499 * include/bits/stringfwd.h
2500 * include/bits/this_thread_sleep.h
2501 * include/bits/unique_lock.h
2502 * include/bits/uses_allocator_args.h
2503 * include/bits/utility.h
2504 * include/bits/valarray_after.h
2505 * include/bits/valarray_array.h
2506 * include/bits/valarray_before.h
2507 * include/bits/version.h
2508 * include/c_compatibility/fenv.h
2509 * include/c_compatibility/inttypes.h
2510 * include/c_compatibility/stdint.h
2511 * include/decimal/decimal.h
2512 * include/experimental/bits/net.h
2513 * include/experimental/bits/shared_ptr.h
2514 * include/ext/aligned_buffer.h
2515 * include/ext/alloc_traits.h
2516 * include/ext/atomicity.h
2517 * include/ext/concurrence.h
2518 * include/ext/numeric_traits.h
2519 * include/ext/pod_char_traits.h
2520 * include/ext/pointer.h
2521 * include/ext/stdio_filebuf.h
2522 * include/ext/stdio_sync_filebuf.h
2523 * include/ext/string_conversions.h
2524 * include/ext/type_traits.h
2525 * include/ext/vstring.h
2526 * include/ext/vstring_fwd.h
2527 * include/ext/vstring_util.h
2528 * include/parallel/algorithmfwd.h
2529 * include/parallel/numericfwd.h
2530 * include/tr1/functional_hash.h
2531 * include/tr1/hashtable.h
2532 * include/tr1/random.h
2533 * libsupc++/exception.h
2534 * libsupc++/hash_bytes.h
2535 * include/bits/basic_ios.tcc
2536 * include/bits/basic_string.tcc
2537 * include/bits/fstream.tcc
2538 * include/bits/istream.tcc
2539 * include/bits/locale_classes.tcc
2540 * include/bits/locale_facets.tcc
2541 * include/bits/locale_facets_nonio.tcc
2542 * include/bits/ostream.tcc
2543 * include/bits/sstream.tcc
2544 * include/bits/streambuf.tcc
2545 * include/bits/string_view.tcc
2546 * include/bits/version.tpl
2547 * include/experimental/bits/string_view.tcc
2548 * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
2549 * include/ext/random.tcc
2550 * include/ext/vstring.tcc
2551 * include/tr2/bool_set.tcc
2552 * include/tr2/dynamic_bitset.tcc
2553 * include/bits/c++config
2573 * include/c_global/cassert
2574 * include/c_global/ccomplex
2575 * include/c_global/cctype
2576 * include/c_global/cerrno
2577 * include/c_global/cfenv
2578 * include/c_global/cfloat
2579 * include/c_global/cinttypes
2580 * include/c_global/ciso646
2581 * include/c_global/climits
2582 * include/c_global/clocale
2583 * include/c_global/cmath
2584 * include/c_global/csetjmp
2585 * include/c_global/csignal
2586 * include/c_global/cstdalign
2587 * include/c_global/cstdarg
2588 * include/c_global/cstdbool
2589 * include/c_global/cstddef
2590 * include/c_global/cstdint
2591 * include/c_global/cstdio
2592 * include/c_global/cstdlib
2593 * include/c_global/cstring
2594 * include/c_global/ctgmath
2595 * include/c_global/ctime
2596 * include/c_global/cuchar
2597 * include/c_global/cwchar
2598 * include/c_global/cwctype
2599 * include/c_std/cassert
2600 * include/c_std/cctype
2601 * include/c_std/cerrno
2602 * include/c_std/cfloat
2603 * include/c_std/ciso646
2604 * include/c_std/climits
2605 * include/c_std/clocale
2606 * include/c_std/cmath
2607 * include/c_std/csetjmp
2608 * include/c_std/csignal
2609 * include/c_std/cstdarg
2610 * include/c_std/cstddef
2611 * include/c_std/cstdio
2612 * include/c_std/cstdlib
2613 * include/c_std/cstring
2614 * include/c_std/ctime
2615 * include/c_std/cuchar
2616 * include/c_std/cwchar
2617 * include/c_std/cwctype
2618 * include/debug/array
2619 * include/debug/bitset
2620 * include/debug/deque
2621 * include/debug/forward_list
2622 * include/debug/list
2625 * include/debug/string
2626 * include/debug/unordered_map
2627 * include/debug/unordered_set
2628 * include/debug/vector
2629 * include/decimal/decimal
2630 * include/experimental/algorithm
2631 * include/experimental/any
2632 * include/experimental/array
2633 * include/experimental/buffer
2634 * include/experimental/chrono
2635 * include/experimental/contract
2636 * include/experimental/deque
2637 * include/experimental/executor
2638 * include/experimental/filesystem
2639 * include/experimental/forward_list
2640 * include/experimental/functional
2641 * include/experimental/internet
2642 * include/experimental/io_context
2643 * include/experimental/iterator
2644 * include/experimental/list
2645 * include/experimental/map
2646 * include/experimental/memory
2647 * include/experimental/memory_resource
2648 * include/experimental/net
2649 * include/experimental/netfwd
2650 * include/experimental/numeric
2651 * include/experimental/propagate_const
2652 * include/experimental/ratio
2653 * include/experimental/regex
2654 * include/experimental/scope
2655 * include/experimental/set
2656 * include/experimental/socket
2657 * include/experimental/string
2658 * include/experimental/string_view
2659 * include/experimental/synchronized_value
2660 * include/experimental/system_error
2661 * include/experimental/timer
2662 * include/experimental/tuple
2663 * include/experimental/type_traits
2664 * include/experimental/unordered_map
2665 * include/experimental/unordered_set
2666 * include/experimental/vector
2667 * include/ext/algorithm
2669 * include/ext/functional
2670 * include/ext/iterator
2671 * include/ext/memory
2672 * include/ext/numeric
2673 * include/ext/random
2674 * include/ext/rb_tree
2676 * include/parallel/algorithm
2677 * include/std/algorithm
2680 * include/std/atomic
2681 * include/std/barrier
2683 * include/std/bitset
2684 * include/std/charconv
2685 * include/std/chrono
2686 * include/std/codecvt
2687 * include/std/complex
2688 * include/std/concepts
2689 * include/std/condition_variable
2690 * include/std/coroutine
2692 * include/std/execution
2693 * include/std/expected
2694 * include/std/filesystem
2695 * include/std/format
2696 * include/std/forward_list
2697 * include/std/fstream
2698 * include/std/functional
2699 * include/std/future
2700 * include/std/generator
2701 * include/std/iomanip
2703 * include/std/iosfwd
2704 * include/std/iostream
2705 * include/std/istream
2706 * include/std/iterator
2708 * include/std/limits
2710 * include/std/locale
2712 * include/std/memory
2713 * include/std/memory_resource
2715 * include/std/numbers
2716 * include/std/numeric
2717 * include/std/optional
2718 * include/std/ostream
2721 * include/std/random
2722 * include/std/ranges
2725 * include/std/scoped_allocator
2726 * include/std/semaphore
2728 * include/std/shared_mutex
2730 * include/std/spanstream
2731 * include/std/sstream
2733 * include/std/stacktrace
2734 * include/std/stdexcept
2735 * include/std/streambuf
2736 * include/std/string
2737 * include/std/string_view
2738 * include/std/syncstream
2739 * include/std/system_error
2740 * include/std/text_encoding
2741 * include/std/thread
2743 * include/std/type_traits
2744 * include/std/typeindex
2745 * include/std/unordered_map
2746 * include/std/unordered_set
2747 * include/std/utility
2748 * include/std/valarray
2749 * include/std/variant
2750 * include/std/vector
2751 * include/std/version
2754 * include/tr1/cinttypes
2756 * include/tr1/complex
2757 * include/tr1/cstdbool
2758 * include/tr1/cstdint
2759 * include/tr1/cstdio
2760 * include/tr1/cstdlib
2761 * include/tr1/cwchar
2762 * include/tr1/cwctype
2763 * include/tr1/functional
2764 * include/tr1/memory
2765 * include/tr1/random
2768 * include/tr1/type_traits
2769 * include/tr1/unordered_map
2770 * include/tr1/unordered_set
2771 * include/tr1/utility
2772 * include/tr2/bool_set
2773 * include/tr2/dynamic_bitset
2774 * include/tr2/type_traits
2775 * libsupc++/atomic_lockfree_defines.h
2777 * libsupc++/cxxabi.h
2778 * libsupc++/cxxabi_forced.h
2779 * libsupc++/cxxabi_init_exception.h
2780 * libsupc++/exception
2781 * libsupc++/initializer_list
2783 * libsupc++/typeinfo: Likewise.
2784 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc
2785 * testsuite/23_containers/array/tuple_interface/get_neg.cc
2786 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc
2787 * testsuite/24_iterators/operations/prev_neg.cc
2788 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc
2789 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc
2790 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc
2791 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc: Adjust
2794 2024-09-25 Jason Merrill <jason@redhat.com>
2796 * include/parallel/base.h: Suppress -Wdeprecated-declarations.
2797 * include/parallel/multiseq_selection.h: Likewise.
2799 2024-09-24 Nathaniel Shead <nathanieloshead@gmail.com>
2801 * include/std/format: Remove unnecessary 'static'.
2803 2024-09-23 Jason Merrill <jason@redhat.com>
2805 * include/bits/c++config: Don't try to disable -Wc++??-extensions
2806 when compiling as C.
2808 2024-09-23 Jason Merrill <jason@redhat.com>
2810 * libsupc++/new: Add _GLIBCXX_TXN_SAFE.
2812 2024-09-22 Jonathan Wakely <jwakely@redhat.com>
2814 * include/std/format (__format::__is_formattable_integer): New
2815 variable template and specializations.
2816 (template<integral, __char> struct formatter): Replace
2817 constraints on first arg with __is_formattable_integer.
2818 * testsuite/std/format/formatter/requirements.cc: Check that
2819 std::formatter specializations for char8_t and const int are
2822 2024-09-22 Jonathan Wakely <jwakely@redhat.com>
2825 * include/bits/ranges_algobase.h (__copy_or_move): Fix order of
2826 arguments to __memcpyable.
2828 2024-09-22 Jonathan Wakely <jwakely@redhat.com>
2831 * include/bits/chrono_io.h (formatter<duration<R,P>>::format):
2832 Cast negative integral durations to unsigned rep.
2833 * testsuite/20_util/duration/io.cc: Test the most negative
2836 2024-09-22 Jonathan Wakely <jwakely@redhat.com>
2838 * include/bits/stl_vector.h (operator<=>): Use constexpr
2839 instead of _GLIBCXX20_CONSTEXPR macro.
2841 2024-09-22 Jonathan Wakely <jwakely@redhat.com>
2843 * libsupc++/exception_ptr.h (__exception_ptr::_M_safe_bool_dummy):
2844 Remove __attribute__((const)) from function returning void.
2846 2024-09-22 Jonathan Wakely <jwakely@redhat.com>
2848 * src/c++11/cxx11-ios_failure.cc (__iosfail_type_info): Unhide
2849 the three-arg overload of __do_upcast.
2851 2024-09-22 Jonathan Wakely <jwakely@redhat.com>
2853 * include/bits/version.def: Sort C++26 entries alphabetically.
2854 * include/bits/version.h: Regenerate.
2856 2024-09-22 Jonathan Wakely <jwakely@redhat.com>
2858 * include/bits/iterator_concepts.h: Add projected_value_t.
2859 * include/bits/algorithmfwd.h: Add the default template
2860 parameter to the relevant forward declarations.
2861 * include/pstl/glue_algorithm_defs.h: Likewise.
2862 * include/bits/ranges_algo.h: Add the default template
2863 parameter to range-based algorithms.
2864 * include/bits/ranges_algobase.h: Likewise.
2865 * include/bits/ranges_util.h: Likewise.
2866 * include/bits/ranges_base.h: Add helper macros.
2867 * include/bits/stl_iterator_base_types.h: Add helper macro.
2868 * include/bits/version.def: Add the new feature-testing macro.
2869 * include/bits/version.h: Regenerate.
2870 * include/std/algorithm: Pull the feature-testing macro.
2871 * include/std/ranges: Likewise.
2872 * include/std/deque: Pull the feature-testing macro, add
2873 the default for std::erase.
2874 * include/std/forward_list: Likewise.
2875 * include/std/list: Likewise.
2876 * include/std/string: Likewise.
2877 * include/std/vector: Likewise.
2878 * testsuite/23_containers/default_template_value.cc: New test.
2879 * testsuite/25_algorithms/default_template_value.cc: New test.
2881 2024-09-21 Jason Merrill <jason@redhat.com>
2883 * include/c_compatibility/ctype.h
2884 * include/c_compatibility/errno.h
2885 * include/c_compatibility/float.h
2886 * include/c_compatibility/iso646.h
2887 * include/c_compatibility/limits.h
2888 * include/c_compatibility/locale.h
2889 * include/c_compatibility/setjmp.h
2890 * include/c_compatibility/signal.h
2891 * include/c_compatibility/stdarg.h
2892 * include/c_compatibility/stdbool.h
2893 * include/c_compatibility/stddef.h
2894 * include/c_compatibility/stdio.h
2895 * include/c_compatibility/string.h
2896 * include/c_compatibility/tgmath.h
2897 * include/c_compatibility/time.h
2898 * include/c_compatibility/uchar.h
2899 * include/c_compatibility/wchar.h
2900 * include/c_compatibility/wctype.h
2901 * include/c_global/ccomplex
2902 * include/c_global/cctype
2903 * include/c_global/cerrno
2904 * include/c_global/cfloat
2905 * include/c_global/climits
2906 * include/c_global/clocale
2907 * include/c_global/cmath
2908 * include/c_global/csetjmp
2909 * include/c_global/csignal
2910 * include/c_global/cstdalign
2911 * include/c_global/cstdarg
2912 * include/c_global/cstdbool
2913 * include/c_global/cstdio
2914 * include/c_global/cstdlib
2915 * include/c_global/cstring
2916 * include/c_global/ctgmath
2917 * include/c_global/ctime
2918 * include/c_global/cwchar
2919 * include/c_global/cwctype: Move header guard before #includes.
2921 2024-09-20 Jonathan Wakely <jwakely@redhat.com>
2924 * include/bits/unique_ptr.h (unique_ptr(auto_ptr<U>&&)):
2925 Use pointer instead of T*.
2926 * testsuite/20_util/unique_ptr/creation/116529.cc: New test.
2928 2024-09-20 Jonathan Wakely <jwakely@redhat.com>
2931 * doc/xml/manual/using.xml: Document features that are not
2932 supported for the gcc4-compatible ABI.
2933 * doc/html/manual/using_dual_abi.html: Regenerate.
2935 2024-09-19 Jason Merrill <jason@redhat.com>
2937 * include/bits/algorithmfwd.h:
2938 * include/bits/allocator.h:
2939 * include/bits/codecvt.h:
2940 * include/bits/concept_check.h:
2941 * include/bits/cpp_type_traits.h:
2942 * include/bits/hashtable.h:
2943 * include/bits/iterator_concepts.h:
2944 * include/bits/ostream_insert.h:
2945 * include/bits/ranges_base.h:
2946 * include/bits/regex_automaton.h:
2947 * include/bits/std_abs.h:
2948 * include/bits/stl_algo.h:
2949 * include/c_compatibility/fenv.h:
2950 * include/c_compatibility/inttypes.h:
2951 * include/c_compatibility/stdint.h:
2952 * include/ext/concurrence.h:
2953 * include/ext/type_traits.h:
2954 * testsuite/ext/type_traits/add_unsigned_floating_neg.cc:
2955 * testsuite/ext/type_traits/add_unsigned_integer_neg.cc:
2956 * testsuite/ext/type_traits/remove_unsigned_floating_neg.cc:
2957 * testsuite/ext/type_traits/remove_unsigned_integer_neg.cc:
2958 * include/bits/basic_ios.tcc:
2959 * include/bits/basic_string.tcc:
2960 * include/bits/fstream.tcc:
2961 * include/bits/istream.tcc:
2962 * include/bits/locale_classes.tcc:
2963 * include/bits/locale_facets.tcc:
2964 * include/bits/ostream.tcc:
2965 * include/bits/regex_compiler.tcc:
2966 * include/bits/sstream.tcc:
2967 * include/bits/streambuf.tcc:
2968 * configure: Regenerate.
2969 * include/bits/c++config:
2970 * include/c/cassert:
2974 * include/c/climits:
2975 * include/c/clocale:
2977 * include/c/csetjmp:
2978 * include/c/csignal:
2979 * include/c/cstdarg:
2980 * include/c/cstddef:
2982 * include/c/cstdlib:
2983 * include/c/cstring:
2986 * include/c/cwctype:
2987 * include/c_global/climits:
2988 * include/c_global/cmath:
2989 * include/c_global/cstddef:
2990 * include/c_global/cstdlib:
2991 * include/decimal/decimal:
2994 * include/std/charconv:
2995 * include/std/complex:
2996 * include/std/coroutine:
2997 * include/std/format:
2998 * include/std/iomanip:
2999 * include/std/limits:
3000 * include/std/numbers:
3001 * include/tr1/functional:
3002 * include/tr1/tuple:
3003 * include/tr1/type_traits:
3004 * libsupc++/compare:
3005 * libsupc++/new: Add #pragma GCC diagnostic to suppress
3007 * acinclude.m4: Change -Wabi version from 2 to 19.
3009 2024-09-18 Jason Merrill <jason@redhat.com>
3011 * include/bits/basic_ios.h: Add braces.
3013 2024-09-16 Jonathan Wakely <jwakely@redhat.com>
3015 * .editorconfig: New file.
3016 * include/std/.editorconfig: New file.
3018 2024-09-16 Gerald Pfeifer <gerald@pfeifer.com>
3020 * doc/xml/manual/intro.xml: Update link to installation docs.
3021 * doc/html/manual/make.html: Regenerate.
3023 2024-09-15 Jonathan Wakely <jwakely@redhat.com>
3025 * include/std/span (span::__iter_tag): Declare nested type.
3026 (span::iterator): Use __iter_tag as second template argument.
3027 * include/std/stacktrace (basic_stacktrace::iterator): Use _Impl
3028 as second template argument.
3030 2024-09-15 Jonathan Wakely <jwakely@redhat.com>
3032 * doc/xml/manual/using.xml (_GLIBCXX_NO_FREESTANDING_CHRONO):
3034 * doc/html/*: Regenerate.
3035 * include/bits/chrono.h [_GLIBCXX_NO_FREESTANDING_CHRONO]:
3036 Only include <bits/require_hosted.h> when this macro is defined.
3037 [_GLIBCXX_HOSTED]: Only define clocks for hosted.
3038 * include/bits/version.def (chrono_udls): Remove hosted=yes.
3039 * include/bits/version.h: Regenerate.
3040 * include/std/chrono [_GLIBCXX_HOSTED]: Only define clocks and
3041 time zone utilities for hosted.
3042 * testsuite/std/time/freestanding.cc: New test.
3044 2024-09-15 Jonathan Wakely <jwakely@redhat.com>
3046 * include/bits/locale_classes.h (__is_facet): New helper.
3047 * include/bits/locale_classes.tcc (locale::combine): Check that
3048 _Facet type is valid.
3050 2024-09-15 Jonathan Wakely <jwakely@redhat.com>
3053 * include/pstl/execution_impl.h (__are_random_access_iterators):
3054 Recognize C++20 random access iterators, and use more efficient
3056 * testsuite/25_algorithms/pstl/110512.cc: New test.
3058 2024-09-14 Jonathan Wakely <jwakely@redhat.com>
3060 * include/std/format (__formatter_fp::_M_localize): Add comments
3061 and micro-optimize string copy.
3063 2024-09-14 Jonathan Wakely <jwakely@redhat.com>
3065 * include/bits/semaphore_base.h (__platform_semaphore): Refactor
3066 loops to all use similar forms.
3067 (__platform_semaphore::_M_try_acquire_until): Use chrono::ceil
3068 to explicitly convert to __clock_t::time_point.
3069 * testsuite/30_threads/semaphore/try_acquire_for.cc: Check that
3070 using a very high resolution timeout compiles.
3071 * testsuite/30_threads/semaphore/platform_try_acquire_for.cc:
3074 2024-09-13 Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
3078 * include/bits/ranges_algobase.h (__assign_one): New helper
3080 (__copy_or_move): Remove a spurious static_assert; use
3081 __assign_one for memcpyable ranges of length 1.
3082 (__copy_or_move_backward): Likewise.
3083 * testsuite/25_algorithms/copy/108846.cc: Extend to range-based
3084 algorithms, and cover both memcpyable and non-memcpyable
3086 * testsuite/25_algorithms/copy_backward/108846.cc: Likewise.
3087 * testsuite/25_algorithms/copy_n/108846.cc: Likewise.
3088 * testsuite/25_algorithms/move/108846.cc: Likewise.
3089 * testsuite/25_algorithms/move_backward/108846.cc: Likewise.
3091 2024-09-12 Jonathan Wakely <jwakely@redhat.com>
3093 * include/std/optional (__is_bool): Remove.
3095 2024-09-12 Jonathan Wakely <jwakely@redhat.com>
3097 * libsupc++/new (launder): Add static_assert and remove deleted
3099 * testsuite/18_support/launder/requirements_neg.cc: Adjust
3100 expected diagnostics.
3102 2024-09-11 Alex Coplan <alex.coplan@arm.com>
3105 * include/bits/stl_algobase.h (std::__find_if): Add #pragma to
3106 request GCC to unroll the loop.
3108 2024-09-10 Jonathan Wakely <jwakely@redhat.com>
3111 * include/std/iostream (ios_base_library_init): Only define for
3113 * src/c++98/ios_init.cc (ios_base_library_init): Likewise.
3115 2024-09-10 Jonathan Wakely <jwakely@redhat.com>
3118 * include/bits/basic_string.h (operator=(basic_string&&)): Call
3119 _M_assign instead of assign.
3120 * testsuite/21_strings/basic_string/allocator/116641.cc: New
3123 2024-09-10 Jonathan Wakely <jwakely@redhat.com>
3125 * testsuite/18_support/new_nothrow.cc (THROW_BAD_ALLOC): Define
3126 macro to add exception specifications for C++98 mode.
3127 (NOEXCEPT): Expand to throw() for C++98 mode.
3128 * testsuite/26_numerics/headers/numeric/synopsis.cc (gcd, lcm):
3131 2024-09-06 Jonathan Wakely <jwakely@redhat.com>
3133 * include/bits/chrono_io.h (from_stream): Fix conversions in
3134 overloads for gps_time and tai_time.
3135 * testsuite/std/time/clock/file/io.cc: Test round tripping using
3136 chrono::parse. Add additional std::format tests.
3137 * testsuite/std/time/clock/gps/io.cc: Likewise.
3138 * testsuite/std/time/clock/local/io.cc: Likewise.
3139 * testsuite/std/time/clock/tai/io.cc: Likewise.
3140 * testsuite/std/time/clock/utc/io.cc: Likewise.
3142 2024-09-06 Jason Merrill <jason@redhat.com>
3144 * include/bits/regex_constants.h: Add __ to attribute.
3146 2024-09-06 Jason Merrill <jason@redhat.com>
3148 * include/bits/c++config: Avoid redefining __GLIBCXX__.
3150 2024-09-06 Jason Merrill <jason@redhat.com>
3154 * include/bits/regex_constants.h: Use flag_enum.
3156 2024-09-06 Jason Merrill <jason@redhat.com>
3158 * include/bits/ios_base.h (_GLIBCXX_NOREPLACE_UNUSED): New.
3159 (_Ios_Openmode): Add unused attributes.
3160 * testsuite/27_io/ios_base/types/openmode/case_label.cc: Handle
3163 2024-09-03 Jonathan Wakely <jwakely@redhat.com>
3165 * src/c++17/fs_ops.cc (auto_win_file_handle): Add error_code&
3166 member and set it if CreateFileW or GetFileInformationByHandle
3168 (fs::equiv_files) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Simplify
3170 (fs::hard_link_count) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Clear ec
3172 * testsuite/27_io/filesystem/operations/hard_link_count.cc:
3173 Check error handling.
3175 2024-09-03 Jonathan Wakely <jwakely@redhat.com>
3178 * include/bits/stl_iterator.h (disable_sized_sentinel_for):
3179 Define specialization for two move_iterator types, as per LWG
3181 * testsuite/24_iterators/move_iterator/lwg3736.cc: New test.
3183 2024-09-03 Jonathan Wakely <jwakely@redhat.com>
3185 * include/experimental/any (experimental::any::_Storage): Use
3186 array of unsigned char instead of deprecated
3187 std::aligned_storage.
3188 * include/std/any (any::_Storage): Likewise.
3189 * testsuite/20_util/any/layout.cc: New test.
3191 2024-09-03 Dhruv Chawla <dhruvc@nvidia.com>
3193 * include/std/deque: Define macro
3194 __glibcxx_want_allocator_traits_is_always_equal.
3195 * include/std/forward_list: Likewise.
3196 * include/std/list: Likewise.
3197 * include/std/map: Likewise.
3198 * include/std/scoped_allocator: Likewise.
3199 * include/std/set: Likewise.
3200 * include/std/string: Likewise.
3201 * include/std/unordered_map: Likewise.
3202 * include/std/unordered_set: Likewise.
3203 * include/std/vector: Likewise.
3204 * testsuite/20_util/headers/memory/version.cc: New test.
3205 * testsuite/20_util/scoped_allocator/version.cc: Likewise.
3206 * testsuite/21_strings/headers/string/version.cc: Likewise.
3207 * testsuite/23_containers/deque/version.cc: Likewise.
3208 * testsuite/23_containers/forward_list/version.cc: Likewise.
3209 * testsuite/23_containers/list/version.cc: Likewise.
3210 * testsuite/23_containers/map/version.cc: Likewise.
3211 * testsuite/23_containers/set/version.cc: Likewise.
3212 * testsuite/23_containers/unordered_map/version.cc: Likewise.
3213 * testsuite/23_containers/unordered_set/version.cc: Likewise.
3214 * testsuite/23_containers/vector/version.cc: Likewise.
3216 2024-09-02 Alexandre Oliva <oliva@adacore.com>
3218 * testsuite/30_threads/future/members/poll.cc: Factor out
3219 calibration, and run it unconditionally. Lower its
3220 strictness. Bump wait_until_*'s slowness factor.
3222 2024-09-02 Alexandre Oliva <oliva@adacore.com>
3225 * testsuite/30_threads/async/async.cc
3226 (test_pr91486_wait_for): Mark status as unused.
3227 (test_pr91486_wait_until): Likewise. Initialize epoch later.
3229 2024-09-02 Andreas Schwab <schwab@suse.de>
3232 * libsupc++/compare (_S_fp_bits) [__fmt == _M68k_80bit]: Shift
3233 padding out of exponent word.
3235 2024-08-28 Jonathan Wakely <jwakely@redhat.com>
3237 * configure.ac: Fix check for O_NONBLOCK.
3238 * config.h.in: Regenerate.
3239 * configure: Regenerate.
3241 2024-08-28 Jonathan Wakely <jwakely@redhat.com>
3243 * include/experimental/io_context: Remove name of unused
3245 * include/experimental/socket: Add [[maybe_unused]] attribute.
3247 2024-08-28 Jonathan Wakely <jwakely@redhat.com>
3249 * include/std/format (format_parse_context::check_dynamic_spec):
3250 Add [[maybe_unused]] attribute and comment.
3252 2024-08-28 Jonathan Wakely <jwakely@redhat.com>
3254 * include/std/ranges (to): Remove unused typedef.
3256 2024-08-28 Kim Gräsman <kim.grasman@gmail.com>
3258 * config/cpu/aarch64/opt/ext/opt_random.h: Improve doxygen file
3260 * config/cpu/i486/opt/ext/opt_random.h: Likewise.
3262 2024-08-28 Kim Gräsman <kim.grasman@gmail.com>
3264 * include/bits/cpp_type_traits.h: Improve doxygen file docs.
3266 2024-08-28 Jason Merrill <jason@redhat.com>
3268 * include/std/istream: Add cast to avoid -Wsign-compare.
3269 * include/std/stacktrace: Likewise.
3271 2024-08-28 Jason Merrill <jason@redhat.com>
3273 * testsuite/20_util/default_delete/void_neg.cc: Fix regexp quoting.
3275 2024-08-28 Jason Merrill <jason@redhat.com>
3277 * include/std/coroutine (coroutine_handle): Use nullptr instead of
3278 0 as initializer for _M_fr_ptr.
3280 2024-08-28 Jason Merrill <jason@redhat.com>
3282 * include/bits/stl_uninitialized.h (__uninitialized_move_copy): Add
3285 2024-08-28 Jason Merrill <jason@redhat.com>
3287 * include/decimal/decimal.h (_DEFINE_DECIMAL_BINARY_OP_WITH_INT):
3288 Remove redundant semicolons.
3290 2024-08-27 Jonathan Wakely <jwakely@redhat.com>
3293 * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Add
3295 * testsuite/libstdc++-prettyprinters/simple.cc: Do not default
3296 construct std::vector<bool>::reference.
3297 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
3299 2024-08-23 Jonathan Wakely <jwakely@redhat.com>
3301 * doc/xml/manual/documentation_hacking.xml: Update minimum
3303 * doc/html/*: Regenerate.
3305 2024-08-23 Jonathan Wakely <jwakely@redhat.com>
3307 * include/std/tuple: Do not include implementation details in
3308 Doxygen documentation.
3310 2024-08-23 Jonathan Wakely <jwakely@redhat.com>
3312 * include/bits/alloc_traits.h: Improve doxygen docs for
3313 allocator_traits specializations.
3314 * include/bits/memory_resource.h: Likewise.
3316 2024-08-23 Jonathan Wakely <jwakely@redhat.com>
3318 * include/std/optional (__is_derived_from_optional): New
3320 (operator<=>): Use __is_derived_from_optional.
3321 * testsuite/20_util/optional/relops/lwg3746.cc: New test.
3323 2024-08-23 Jonathan Wakely <jwakely@redhat.com>
3325 * include/bits/locale_classes.tcc (__try_use_facet): Also avoid
3326 dynamic_cast for const-qualified facet types.
3328 2024-08-23 Jonathan Wakely <jwakely@redhat.com>
3331 * include/bits/alloc_traits.h (__allocator_traits_base): Add
3332 variable templates for detecting which allocator operations are
3334 (allocator_traits): Use 'if constexpr' instead of dispatching to
3335 overloads constrained with enable_if.
3336 (allocator_traits<allocator<T>>::construct): Use Construct if
3337 construct_at is not supported. Use
3338 __is_nothrow_new_constructible for noexcept-specifier.
3339 (allocator_traits<allocator<void>>::construct): Use
3340 __is_nothrow_new_constructible for noexcept-specifier.
3341 * include/bits/new_allocator.h (construct): Likewise.
3342 * include/ext/malloc_allocator.h (construct): Likewise.
3343 * include/std/type_traits (__is_nothrow_new_constructible): New
3345 * testsuite/20_util/allocator/89510.cc: Adjust expected results.
3346 * testsuite/ext/malloc_allocator/89510.cc: Likewise.
3347 * testsuite/ext/new_allocator/89510.cc: Likewise.
3348 * testsuite/20_util/allocator_traits/members/108619.cc: New test.
3350 2024-08-23 Jonathan Wakely <jwakely@redhat.com>
3352 * include/bits/chrono_io.h (__formatter_chrono::_M_C_y_Y):
3353 Ignore modifiers unless the formatting locale is not the C
3355 (__formatter_chrono::_M_d_e): Likewise.
3356 (__formatter_chrono::_M_H_I): Likewise.
3357 (__formatter_chrono::_M_m): Likewise.
3358 (__formatter_chrono::_M_M): Likewise.
3359 (__formatter_chrono::_M_S): Likewise.
3360 (__formatter_chrono::_M_u_w): Likewise.
3361 (__formatter_chrono::_M_U_V_W): Likewise.
3363 2024-08-23 Jonathan Wakely <jwakely@redhat.com>
3366 * include/bits/hashtable_policy.h (_Node_iterator): Add
3367 operator== and operator!=.
3368 (_Node_const_iterator): Likewise.
3369 * testsuite/23_containers/unordered_map/115939.cc: New test.
3371 2024-08-23 Giovanni Bajo <rasky@develer.com>
3372 Jonathan Wakely <jwakely@redhat.com>
3375 * include/bits/stl_algo.h (random_shuffle) [RAND_MAX < INT_MAX]:
3376 Use xorshift instead of rand().
3377 * testsuite/25_algorithms/random_shuffle/88935.cc: New test.
3379 2024-08-23 Jonathan Wakely <jwakely@redhat.com>
3382 * include/debug/safe_base.h (_Safe_sequence_base::_M_iterators):
3383 Add mutable specifier.
3384 (_Safe_sequence_base::_M_const_iterators): Likewise.
3386 2024-08-23 Jonathan Wakely <jwakely@redhat.com>
3388 * src/c++11/debug.cc: Replace throw() with noexcept.
3390 2024-08-23 Jonathan Wakely <jwakely@redhat.com>
3392 * include/std/variant [C++20] (_Uninitialized): Always use the
3394 [C++20] (__get_n): Access the _M_storage member directly.
3396 2024-08-23 Jonathan Wakely <jwakely@redhat.com>
3399 * include/bits/stl_bvector.h (_Bit_reference): Make default
3400 constructor private. Declare vector and bit iterators as
3402 * include/std/bitset (bitset::reference): Make constructor and
3403 data members private.
3404 * testsuite/20_util/bitset/115098.cc: New test.
3405 * testsuite/23_containers/vector/bool/115098.cc: New test.
3407 2024-08-22 Patrick Palka <ppalka@redhat.com>
3409 * testsuite/25_algorithms/contains/1.cc: Verify value of
3410 __cpp_lib_ranges_contains.
3411 * testsuite/25_algorithms/find_last/1.cc: Verify value of
3412 __cpp_lib_ranges_find_last.
3413 * testsuite/26_numerics/iota/2.cc: Verify value of
3414 __cpp_lib_ranges_iota.
3416 2024-08-22 Patrick Palka <ppalka@redhat.com>
3418 * include/bits/iterator_concepts.h (__detail::__projected): Define
3419 an optimized partial specialization for when the projection is
3421 * testsuite/24_iterators/indirect_callable/projected.cc: Verify the
3424 2024-08-22 Patrick Palka <ppalka@redhat.com>
3426 * include/bits/iterator_concepts.h (indirectly_unary_invocable):
3427 Relax as per P2997R1.
3428 (indirectly_regular_unary_invocable): Likewise.
3429 (indirect_unary_predicate): Likewise.
3430 (indirect_binary_predicate): Likewise.
3431 (indirect_equivalence_relation): Likewise.
3432 (indirect_strict_weak_order): Likewise.
3433 * include/bits/version.def (ranges): Update value for C++26.
3434 * include/bits/version.h: Regenerate.
3435 * testsuite/24_iterators/indirect_callable/p2997r1.cc: New test.
3436 * testsuite/std/ranges/version_c++23.cc: Remove.
3437 * testsuite/std/ranges/headers/ranges/synopsis.cc: Refine the
3438 __cpp_lib_ranges checks.
3440 2024-08-22 Patrick Palka <ppalka@redhat.com>
3442 * include/bits/iterator_concepts.h (__detail::__indirect_value):
3444 (__indirect_value_t): Define as per P2609R3.
3445 (iter_common_reference_t): Adjust as per P2609R3.
3446 (indirectly_unary_invocable): Likewise.
3447 (indirectly_regular_unary_invocable): Likewise.
3448 (indirect_unary_predicate): Likewise.
3449 (indirect_binary_predicate): Likewise.
3450 (indirect_equivalence_relation): Likewise.
3451 (indirect_strict_weak_order): Likewise.
3452 (__detail::__projected::__type): Define member aliases
3453 __projected_Iter and __projected_Proj providing the
3454 template arguments of the current specialization.
3455 * include/bits/version.def (ranges): Update value.
3456 * include/bits/version.h: Regenerate.
3457 * testsuite/24_iterators/indirect_callable/p2609r3.cc: New test.
3458 * testsuite/std/ranges/version_c++23.cc: Update expected value
3459 of __cpp_lib_ranges macro.
3461 2024-08-21 Jonathan Wakely <jwakely@redhat.com>
3463 PR tree-optimization/102958
3464 * include/bits/char_traits.h (char_traits<char8_t>::length): Use
3467 2024-08-21 Jonathan Wakely <jwakely@redhat.com>
3470 * src/c++98/locale_facets.cc (__num_base::_S_format_float):
3471 Check uppercase flag for fixed format.
3472 * testsuite/22_locale/num_put/put/char/lwg4084.cc: New test.
3474 2024-08-21 Jonathan Wakely <jwakely@redhat.com>
3477 * include/std/variant (variant): Fix conditions for
3478 static_assert to match the spec.
3479 * testsuite/20_util/variant/types_neg.cc: New test.
3481 2024-08-20 Jonathan Wakely <jwakely@redhat.com>
3483 * include/std/optional: Remove redundant redeclaration.
3485 2024-08-20 Jonathan Wakely <jwakely@redhat.com>
3487 * include/std/text_encoding: Fix indentation.
3489 2024-08-20 Jonathan Wakely <jwakely@redhat.com>
3492 * testsuite/18_support/headers/new/synopsis.cc [C++26]: Add
3493 constexpr to placement operator new and operator new[].
3495 2024-08-18 Gerald Pfeifer <gerald@pfeifer.com>
3497 * doc/xml/manual/prerequisites.xml: Remove note from the
3499 * doc/html/manual/setup.html: Regenerate.
3501 2024-08-17 Gerald Pfeifer <gerald@pfeifer.com>
3503 * doc/xml/manual/abi.xml: Update reference to
3504 gcc.gnu.org/onlinedocs.
3505 * doc/xml/manual/concurrency_extensions.xml (interface): Ditto.
3506 * doc/xml/manual/extensions.xml: Ditto.
3507 * doc/xml/manual/parallel_mode.xml: Ditto.
3508 * doc/xml/manual/shared_ptr.xml: Ditto.
3509 * doc/xml/manual/using_exceptions.xml: Ditto. And change GNU GCC
3511 * doc/html/manual/abi.html: Regenerate.
3512 * doc/html/manual/ext_concurrency_impl.html: Ditto.
3513 * doc/html/manual/ext_demangling.html: Ditto.
3514 * doc/html/manual/memory.html: Ditto.
3515 * doc/html/manual/parallel_mode_design.html: Ditto.
3516 * doc/html/manual/parallel_mode_using.html: Ditto.
3517 * doc/html/manual/using_exceptions.html: Ditto.
3519 2024-08-17 Gerald Pfeifer <gerald@pfeifer.com>
3521 * doc/xml/manual/prerequisites.xml: Tweak two links to
3522 installation docs. Fix grammar.
3523 * doc/html/manual/setup.html: Regenerate.
3525 2024-08-16 Hans-Peter Nilsson <hp@axis.com>
3528 * configure.ac: Check newlib configuration whether iconv is enabled.
3529 * configure: Regenerate.
3531 2024-08-16 Hans-Peter Nilsson <hp@axis.com>
3533 * testsuite/lib/prune.exp (libstdc++-dg-prune): Prune
3534 uncapitalized "in function" warning from linker.
3536 2024-08-08 Jakub Jelinek <jakub@redhat.com>
3539 * libsupc++/new (__glibcxx_want_constexpr_new): Define before
3540 including bits/version.h.
3541 (_GLIBCXX_PLACEMENT_CONSTEXPR): Define.
3542 (operator new, operator new[]): Use it for placement new instead
3544 * include/bits/version.def (constexpr_new): New FTM.
3545 * include/bits/version.h: Regenerate.
3547 2024-08-06 Jonathan Wakely <jwakely@redhat.com>
3550 * include/bits/fs_path.h: Use __UINTPTR_TYPE__ instead of
3552 * include/bits/shared_ptr_atomic.h: Likewise.
3553 * include/ext/pointer.h: Include <stdint.h>.
3555 2024-08-03 Patrick Palka <ppalka@redhat.com>
3557 * include/bits/move.h (__like_impl): New metafunction.
3558 (__like_t): Redefine in terms of __like_impl.
3559 (forward_like): Redefine in terms of __like_t.
3560 * testsuite/20_util/forward_like/2_neg.cc: Don't expect
3561 error outside the immediate context anymore.
3563 2024-08-02 Jonathan Wakely <jwakely@redhat.com>
3565 * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Include
3568 2024-08-01 Jonathan Wakely <jwakely@redhat.com>
3570 * include/bits/utility.h (__is_in_place_type): Remove.
3571 * include/std/variant (__is_in_place_tag): Remove.
3573 2024-08-01 Jonathan Wakely <jwakely@redhat.com>
3575 * include/bits/align.h (align, assume_aligned): Use
3576 __UINTPTR_TYPE__ instead of uintptr_t. Do not include
3578 * include/bits/atomic_base.h (__atomic_ref): Likewise.
3579 * include/bits/atomic_wait.h (__waiter_pool_base::_S_for):
3581 * include/std/atomic: Include <cstdint>.
3583 2024-08-01 Jonathan Wakely <jwakely@redhat.com>
3585 * include/bits/atomic_base.h (__atomic_impl::compare_exchange_weak):
3586 Remove unused parameter.
3587 (__atomic_impl::compare_exchange_strong): Likewise.
3589 2024-08-01 Jonathan Wakely <jwakely@redhat.com>
3592 * include/std/bitset (bitset::_M_is_equal()): Use memcmp to
3593 optimize operator==.
3595 2024-08-01 Jonathan Wakely <jwakely@redhat.com>
3597 * testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
3598 Use ARGS to limit number of iterations for simulators.
3600 2024-08-01 Jonathan Wakely <jwakely@redhat.com>
3603 * include/bits/basic_string.h (basic_string::basic_string()):
3604 Constrain so that it's only present if the allocator is default
3606 * include/bits/cow_string.h (basic_string::basic_string()):
3608 * testsuite/21_strings/basic_string/cons/113841.cc: New test.
3610 2024-08-01 Jonathan Wakely <jwakely@redhat.com>
3613 * include/bits/cow_string.h (data()): Change to noexcept(false).
3615 2024-08-01 Jonathan Wakely <jwakely@redhat.com>
3617 * testsuite/23_containers/map/operators/1_neg.cc (test01): Remove test variable
3618 and use 'no match' dg-error patter.
3619 * testsuite/23_containers/set/operators/1_neg.cc (test01): Likewise.
3621 2024-07-31 François Dumont <frs.dumont@gmail.com>
3623 * testsuite/23_containers/map/operators/1_neg.cc (test01): Add test variable
3625 * testsuite/23_containers/set/operators/1_neg.cc (test01): Likewise.
3627 2024-07-31 Jonathan Wakely <jwakely@redhat.com>
3629 * src/c++20/format.cc [!_GLIBCXX_HAS_GTHREADS] (mutex): Define
3631 * testsuite/std/time/format_localized.cc: Use loop variable
3632 instead of creating the same locale on every iteration.
3634 2024-07-31 Sam James <sam@gentoo.org>
3636 * testsuite/28_regex/traits/char/translate.cc: Drop bogus 'dg_do run'.
3638 2024-07-31 Jonathan Wakely <jwakely@redhat.com>
3640 * src/c++11/system_error.cc (strerror_string): Handle
3641 non-conforming NULL return from strerror.
3643 2024-07-31 Jonathan Wakely <jwakely@redhat.com>
3645 * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale):
3646 Only append "@euro" to ".ISO8859-15" locales for Glibc.
3648 2024-07-31 Jonathan Wakely <jwakely@redhat.com>
3650 * include/bits/version.def (format): Update value for C++26.
3651 * include/bits/version.h: Regenerate.
3652 * include/std/format (runtime_format, wruntime_format): Check
3653 __cpp_lib_format instead of __cplusplus.
3654 * testsuite/std/format/functions/format.cc: Update expected
3655 value of macro for C++26 mode.
3657 2024-07-31 Jonathan Wakely <jwakely@redhat.com>
3660 * include/bits/c++config (_GLIBCXX26_DEPRECATED): Define.
3661 (_GLIBCXX26_DEPRECATED_SUGGEST): Define.
3662 * include/bits/version.def (format): Update for C++26.
3663 * include/bits/version.h: Regenerate.
3664 * include/std/format (basic_format_arg::visit): New member
3666 (visit_format_arg): Add deprecated attribute.
3667 * testsuite/std/format/arguments/args.cc: Expect deprecated
3668 warnings. Check member visit.
3669 * testsuite/std/format/functions/format.cc: Update expected
3670 value for __cpp_lib_format macro.
3671 * testsuite/std/format/parse_ctx.cc: Add dg-warning for
3674 2024-07-31 Jonathan Wakely <jwakely@redhat.com>
3677 * include/bits/version.def (variant): Update for C++26.
3678 * include/bits/version.h: Regenerate.
3679 * include/std/variant (variant::visit): New member functions.
3680 * testsuite/20_util/variant/visit.cc: Check second alternative.
3681 * testsuite/20_util/variant/visit_member.cc: New test.
3683 2024-07-31 Jonathan Wakely <jwakely@redhat.com>
3686 * include/bits/version.def (format): Update for C++26.
3687 * include/bits/version.h: Regenerate.
3688 * include/std/format (basic_format_parse_context): Remove
3689 default argument from constructor and split into two
3690 constructors. Make the constructor taking size_t private for
3692 (basic_format_parse_context::check_dynamic_spec): New member
3694 (basic_format_parse_context::check_dynamic_spec_integral): New
3696 (basic_format_parse_context::check_dynamic_spec_string):
3698 (__format::_Spec::_S_parse_width_or_precision): Use
3699 check_dynamic_spec_integral.
3700 (__format::__to_arg_t_enum): New helper function.
3701 (basic_format_arg): Declare __to_arg_t_enum as friend.
3702 (__format::_Scanner): Define and use a derived parse context
3704 (__format::_Checking_scanner): Make arg types available to parse
3706 * testsuite/std/format/functions/format.cc: Check for new values
3707 of __cpp_lib_format macro.
3708 * testsuite/std/format/parse_ctx.cc: Check all members of
3709 basic_format_parse_context.
3710 * testsuite/std/format/parse_ctx_neg.cc: New test.
3711 * testsuite/std/format/string.cc: Add more checks for dynamic
3712 width and precision args.
3714 2024-07-31 Jonathan Wakely <jwakely@redhat.com>
3716 * include/bits/version.def (format): Update value for P2510R3.
3717 * include/bits/version.h: Regenerate.
3718 * include/std/format (_GLIBCXX_P2518R3): Remove misspelled macro
3719 and check __glibcxx_format instead.
3720 * testsuite/std/format/functions/format.cc: Check value of the
3721 __cpp_lib_format macro for formatting pointers support.
3722 * testsuite/std/format/parse_ctx.cc: Likewise.
3724 2024-07-31 Jonathan Wakely <jwakely@redhat.com>
3727 * acinclude.m4 (libtool_VERSION): Update to 6:34:0.
3728 * config/abi/pre/gnu.ver: Disambiguate old patters. Add new
3729 GLIBCXX_3.4.34 symbol version and new exports.
3730 * configure: Regenerate.
3731 * include/bits/chrono_io.h (_ChronoSpec::_M_locale_specific):
3732 Add new accessor functions to use a reserved bit in _Spec.
3733 (__formatter_chrono::_M_parse): Use _M_locale_specific(true)
3734 when chrono-specs contains locale-dependent conversion
3736 (__formatter_chrono::_M_format): Open iconv descriptor if
3737 conversion to UTF-8 will be needed.
3738 (__formatter_chrono::_M_write): New function to write a
3739 localized string with possible character conversion.
3740 (__formatter_chrono::_M_a_A, __formatter_chrono::_M_b_B)
3741 (__formatter_chrono::_M_p, __formatter_chrono::_M_r)
3742 (__formatter_chrono::_M_x, __formatter_chrono::_M_X)
3743 (__formatter_chrono::_M_locale_fmt): Use _M_write.
3744 * include/bits/version.def (format): Update value.
3745 * include/bits/version.h: Regenerate.
3746 * include/std/format (_GLIBCXX_P2518R3): Check feature test
3747 macro instead of __cplusplus.
3748 (basic_format_context): Declare __formatter_chrono as friend.
3749 * src/c++20/Makefile.am: Add new file.
3750 * src/c++20/Makefile.in: Regenerate.
3751 * src/c++20/format.cc: New file.
3752 * testsuite/std/time/format_localized.cc: New test.
3753 * testsuite/util/testsuite_abi.cc: Add new symbol version.
3755 2024-07-30 Jonathan Wakely <jwakely@redhat.com>
3757 * include/bits/chrono_io.h (__local_time_fmt_for): New alias
3759 (formatter<zoned_time<D, P>>): Use __local_time_fmt_for.
3760 * testsuite/std/time/zoned_time/io.cc: Check zoned_time<minutes>
3763 2024-07-30 Jonathan Wakely <jwakely@redhat.com>
3765 * include/bits/chrono_io.h (__local_fmt_t): Remove unused
3767 (__formatter_chrono::_M_format_to_ostream): Add explicit
3768 handling for specializations of __local_time_fmt, including the
3769 time zone abbreviation in the output if __is_neg is true.
3770 (formatter<chrono::tai_time<D>>::format): Add comment.
3771 (formatter<chrono::gps_time<D>>::format): Likewise.
3772 (formatter<chrono::__detail::__local_time_fmt::format): Call
3773 _M_format with true for the __is_neg flag.
3774 * testsuite/std/time/clock/gps/io.cc: Remove unused variable.
3775 * testsuite/std/time/clock/local/io.cc: Fix test error that
3776 checked tai_time instead of local_time. Add tests for
3777 local-time-format-t formatting.
3778 * testsuite/std/time/clock/system/io.cc: Check empty
3780 * testsuite/std/time/clock/tai/io.cc: Likewise.
3781 * testsuite/std/time/zoned_time/io.cc: Likewise.
3783 2024-07-30 Jonathan Wakely <jwakely@redhat.com>
3785 * include/std/expected (expected(U&&), operator=(U&&))
3786 (value_or): Use remove_cv_t on default template argument, as per
3788 * include/std/optional (optional(U&&), operator=(U&&))
3789 (value_or): Likewise.
3790 * testsuite/20_util/expected/lwg3886.cc: New test.
3791 * testsuite/20_util/optional/cons/lwg3886.cc: New test.
3793 2024-07-30 Jonathan Wakely <jwakely@redhat.com>
3795 * src/c++17/fs_ops.cc: Fix file name in comment.
3797 2024-07-30 Jonathan Wakely <jwakely@redhat.com>
3799 * src/c++17/fs_ops.cc (auto_win_file_handle): Change constructor
3800 parameter from const path& to const wchar_t*.
3801 (fs::equiv_files): New function.
3802 (fs::equivalent): Use equiv_files.
3803 * src/filesystem/ops-common.h (fs::equiv_files): Declare.
3804 (do_copy_file): Use equiv_files.
3805 * src/filesystem/ops.cc (fs::equiv_files): Define.
3806 (fs::copy, fs::equivalent): Use equiv_files.
3807 * testsuite/27_io/filesystem/operations/copy.cc: Test
3808 overwriting directory contents recursively.
3809 * testsuite/27_io/filesystem/operations/copy_file.cc: Test
3810 overwriting existing files.
3812 2024-07-30 Lennox Shou Hao Ho <lennoxhoe@gmail.com>
3815 * src/c++17/fs_ops.cc (fs::equivalent): Moved helper class
3816 auto_handle to anonymous namespace as auto_win_file_handle.
3817 (fs::hard_link_count): Changed Windows implementation to use
3818 information provided by GetFileInformationByHandle which is more
3820 * testsuite/27_io/filesystem/operations/hard_link_count.cc: New
3823 2024-07-29 Thomas Schwinge <tschwinge@baylibre.com>
3825 * testsuite/lib/libstdc++.exp (file-io-diff): Polish.
3827 2024-07-28 Sam James <sam@gentoo.org>
3830 * testsuite/18_support/type_info/110572.cc: Fix dg-do directive order.
3832 2024-07-27 Jonathan Wakely <jwakely@redhat.com>
3834 * include/std/charconv (__to_chars_16, __to_chars_10)
3835 (__to_chars_8, __to_chars_2, __to_chars): Cast ptrdiff_t to
3836 size_t for comparison.
3837 (__to_chars_i): Check for first >= last instead of first == last
3838 for initial sanity check.
3840 2024-07-27 Jonathan Wakely <jwakely@redhat.com>
3842 * include/bits/std_function.h: Add comment about LWG 3617 being
3845 2024-07-27 Jonathan Wakely <jwakely@redhat.com>
3847 * include/bits/stl_algobase.h (__find_if): Remove overloads for
3848 dispatching on iterator_category. Do not unroll loop manually.
3849 * include/bits/stl_algo.h (__find_if_not): Remove
3850 iterator_category argument from __find_if call.
3852 2024-07-25 Jonathan Wakely <jwakely@redhat.com>
3854 * include/std/expected (expected::value): Add assertions for LWG
3856 (expected<cv void, E>::value): Add assertions for LWG 3940
3859 2024-07-25 Jonathan Wakely <jwakely@redhat.com>
3861 * include/std/format (basic_format_args): Remove default
3862 constructor, as per LWG 4106.
3863 * testsuite/std/format/arguments/args.cc: Check it isn't default
3866 2024-07-25 Jonathan Wakely <jwakely@redhat.com>
3868 * include/bits/utility.h (_Swallow_assign): Make assignment
3869 constexpr for C++11 as well, and add noexcept.
3870 * include/std/tuple (_Swallow_assign, ignore): Move to
3872 * testsuite/20_util/headers/utility/ignore.cc: New test.
3874 2024-07-25 Jonathan Wakely <jwakely@redhat.com>
3876 * include/std/optional: Reorder parameters in comparison
3877 operators as per LWG 2945.
3879 2024-07-25 Patrick Palka <ppalka@redhat.com>
3882 * include/std/functional (_Bind_front::operator()): Use __like_t
3883 instead of std::forward when forwarding __self.
3884 (_Bind_back::operator()): Likewise.
3885 * include/std/ranges (_Partial::operator()): Likewise.
3886 (_Pipe::operator()): Likewise.
3887 * testsuite/20_util/function_objects/bind_back/116038.cc: New test.
3888 * testsuite/20_util/function_objects/bind_front/116038.cc: New test.
3889 * testsuite/std/ranges/adaptors/116038.cc: New test.
3891 2024-07-25 Jonathan Wakely <jwakely@redhat.com>
3893 * include/std/expected (bad_expected_access<void>): Add noexcept
3894 to special member functions, as per LWG 4031.
3895 * testsuite/20_util/expected/bad.cc: Check for nothrow copy and
3898 2024-07-25 Jonathan Wakely <jwakely@redhat.com>
3900 * include/std/optional (optional): Use C++20 features to
3901 simplify overload sets for constructors and assignment
3904 2024-07-25 Jonathan Wakely <jwakely@redhat.com>
3906 * include/std/optional (optional): Constrain constructors to
3907 prevent problematic bool conversions, as per LWG 3836.
3908 * testsuite/20_util/optional/cons/lwg3836.cc: New test.
3910 2024-07-25 Jonathan Wakely <jwakely@redhat.com>
3912 * include/std/expected (expected): Constrain constructors to
3913 prevent problematic bool conversions, as per LWG 3836.
3914 * testsuite/20_util/expected/lwg3836.cc: New test.
3916 2024-07-25 Jonathan Wakely <jwakely@redhat.com>
3918 * include/std/optional (_Optional_payload_base::_Storage)
3919 [C++20]: Define constrained non-trivial destructor.
3920 (_Optional_payload_base::_Storage<U, false>) [C++20]: Do not
3921 define partial specialization when primary template has
3922 constrained destructor.
3923 (_Optional_base) [C++20]: Define constrained trivial copy and
3924 move cons and move constructors. Define payload accessors here
3925 instead of inheriting them from _Optional_base_impl.
3926 (_Optional_base_impl, _Optional_base<T, false, true>)
3927 (_Optional_base<T, true, false>, _Optional_base<T, true, true>)
3928 [C++20]: Do not define.
3930 2024-07-25 Jonathan Wakely <jwakely@redhat.com>
3932 * include/std/optional (optional): Add using-declaraction for
3933 _Base::_M_get and declare optional<U> as friend.
3934 (optional(const optional<U>&)): Use
3935 _M_get instead of operator*.
3936 (optional(optional<U>&&)): Likewise.
3937 (operator=(const optional<U>&)): Likewise.
3938 (operator=(optional<U>&&)): Likewise.
3939 (and_then, tansform): Likewise.
3941 2024-07-25 Jonathan Wakely <jwakely@redhat.com>
3943 * include/std/optional (_Optional_base_impl::_M_get()): Move
3945 (optional::operator->, optional::operator*): ... here.
3947 2024-07-25 Andrew Pinski <quic_apinski@quicinc.com>
3949 * testsuite/lib/libstdc++.exp (v3_target_compile): Call
3950 string trim on v3_target_compile before calling split.
3952 2024-07-24 Jonathan Wakely <jwakely@redhat.com>
3955 * include/std/istream: Check feature test macro before using
3956 is_class_v and is_same_v.
3957 * include/std/ostream: Likewise.
3959 2024-07-24 Jonathan Wakely <jwakely@redhat.com>
3962 * include/bits/stl_bvector.h: Check feature test macro before
3963 using is_default_constructible_v.
3965 2024-07-24 Michael Levine <mlevine55@bloomberg.net>
3967 * include/bits/ranges_algobase.h: Remove duplicate include of
3968 <bits/stl_algobase.h>.
3970 2024-07-24 Jonathan Wakely <jwakely@redhat.com>
3973 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-1.cc: Move to...
3974 * testsuite/ext/stdio_sync_filebuf/wchar_t/12048-1.cc: ...here.
3975 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-2.cc: Move to...
3976 * testsuite/ext/stdio_sync_filebuf/wchar_t/12048-2.cc: ...here.
3977 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-3.cc: Move to...
3978 * testsuite/ext/stdio_sync_filebuf/wchar_t/12048-3.cc: ...here.
3979 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-4.cc: Move to...
3980 * testsuite/ext/stdio_sync_filebuf/wchar_t/12048-4.cc: ...here.
3982 2024-07-24 Jonathan Wakely <jwakely@redhat.com>
3984 * testsuite/lib/libstdc++.exp (libstdc++_init): Do not copy all
3985 data files into test directory.
3987 2024-07-24 Jonathan Wakely <jwakely@redhat.com>
3989 * testsuite/20_util/hash/chi2_q_document_words.cc: Use
3990 dg-additional-files for input text.
3991 * testsuite/performance/ext/pb_ds/all_text_find.cc: Likewise.
3992 * testsuite/performance/ext/pb_ds/multimap_text_find.hpp:
3994 * testsuite/performance/ext/pb_ds/multimap_text_insert.hpp:
3996 * testsuite/performance/ext/pb_ds/multimap_text_insert_mem.hpp:
3998 * testsuite/performance/ext/pb_ds/priority_queue_text_join.cc:
4000 * testsuite/performance/ext/pb_ds/priority_queue_text_modify.hpp: Likewise.
4001 * testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem.cc: Likewise.
4002 * testsuite/performance/ext/pb_ds/priority_queue_text_push.cc:
4004 * testsuite/performance/ext/pb_ds/priority_queue_text_push_pop.cc: Likewise.
4005 * testsuite/performance/ext/pb_ds/tree_text_insert.cc: Likewise.
4006 * testsuite/performance/ext/pb_ds/tree_text_lor_find.cc:
4009 2024-07-24 Jonathan Wakely <jwakely@redhat.com>
4011 * testsuite/25_algorithms/advance/istreambuf_iterators/char/2.cc:
4012 Use dg-additional-files.
4013 * testsuite/25_algorithms/advance/istreambuf_iterators/wchar_t/2.cc:
4015 * testsuite/25_algorithms/copy/streambuf_iterators/char/4.cc:
4017 * testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/4.cc:
4019 * testsuite/25_algorithms/copy_n/istreambuf_iterator/2.cc:
4021 * testsuite/25_algorithms/copy_n/istreambuf_iterator/deque.cc:
4023 * testsuite/25_algorithms/find/istreambuf_iterators/char/2.cc:
4025 * testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc:
4028 2024-07-24 Jonathan Wakely <jwakely@redhat.com>
4030 * testsuite/27_io/basic_filebuf/close/char/1.cc: Remove
4031 @require@ and @diff@. Use dg-final file-io-diff action.
4032 * testsuite/27_io/basic_istream/extractors_other/char/2.cc:
4034 * testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc:
4036 * testsuite/27_io/basic_istream/get/char/2.cc: Likewise.
4037 * testsuite/27_io/basic_istream/get/wchar_t/2.cc: Likewise.
4038 * testsuite/27_io/basic_istream/ignore/char/3.cc: Likewise.
4039 * testsuite/27_io/basic_istream/ignore/wchar_t/3.cc: Likewise.
4040 * testsuite/27_io/basic_istream/peek/char/6414.cc: Likewise.
4041 * testsuite/27_io/basic_istream/peek/wchar_t/6414.cc: Likewise.
4042 * testsuite/27_io/basic_istream/seekg/char/fstream.cc: Likewise.
4043 * testsuite/27_io/basic_istream/seekg/wchar_t/fstream.cc:
4045 * testsuite/27_io/basic_istream/tellg/char/fstream.cc: Likewise.
4046 * testsuite/27_io/basic_istream/tellg/wchar_t/fstream.cc:
4048 * testsuite/27_io/basic_ofstream/open/char/1.cc: Likewise.
4049 * testsuite/27_io/basic_ostream/inserters_other/char/1.cc:
4051 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc:
4053 * testsuite/27_io/ios_base/sync_with_stdio/1.cc: Likewise.
4054 * testsuite/27_io/basic_ostream/inserters_other/char/2.cc:
4055 Likewise. Check file positions.
4056 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/2.cc:
4058 * testsuite/lib/libstdc++.exp (file-io-diff): New proc.
4060 2024-07-24 Jonathan Wakely <jwakely@redhat.com>
4062 * testsuite/27_io/basic_filebuf/imbue/char/2.cc: Use
4063 dg-additional-files.
4064 * testsuite/27_io/basic_filebuf/imbue/wchar_t/2.cc: Likewise.
4065 * testsuite/27_io/basic_filebuf/open/char/path.cc: Likewise.
4066 * testsuite/27_io/basic_filebuf/pbackfail/char/9761.cc:
4068 * testsuite/27_io/basic_filebuf/seekoff/char/3-in.cc: Likewise.
4069 * testsuite/27_io/basic_filebuf/seekoff/char/3-io.cc: Likewise.
4070 * testsuite/27_io/basic_filebuf/seekpos/char/3-in.cc: Likewise.
4071 * testsuite/27_io/basic_filebuf/seekpos/char/3-io.cc: Likewise.
4072 * testsuite/27_io/basic_filebuf/setbuf/char/1.cc: Likewise.
4073 * testsuite/27_io/basic_filebuf/sgetn/char/3.cc: Likewise.
4074 * testsuite/27_io/basic_filebuf/underflow/10096.cc: Likewise.
4075 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise.
4076 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise.
4077 * testsuite/27_io/basic_ifstream/assign/1.cc: Likewise.
4078 * testsuite/27_io/basic_ifstream/cons/move.cc: Likewise.
4079 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise.
4080 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise.
4081 * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: Likewise.
4082 * testsuite/27_io/objects/char/10.cc: Likewise.
4083 * testsuite/27_io/objects/char/12048-1.cc: Likewise.
4084 * testsuite/27_io/objects/char/12048-2.cc: Likewise.
4085 * testsuite/27_io/objects/char/12048-3.cc: Likewise.
4086 * testsuite/27_io/objects/char/12048-4.cc: Likewise.
4087 * testsuite/27_io/objects/char/12048-5.cc: Likewise.
4088 * testsuite/27_io/objects/wchar_t/12048-1.cc: Likewise.
4089 * testsuite/27_io/objects/wchar_t/12048-2.cc: Likewise.
4090 * testsuite/27_io/objects/wchar_t/12048-3.cc: Likewise.
4091 * testsuite/27_io/objects/wchar_t/12048-4.cc: Likewise.
4092 * testsuite/27_io/objects/wchar_t/12048-5.cc: Likewise.
4093 * testsuite/ext/stdio_sync_filebuf/char/12048-1.cc: Likewise.
4094 * testsuite/ext/stdio_sync_filebuf/char/12048-2.cc: Likewise.
4095 * testsuite/ext/stdio_sync_filebuf/char/12048-3.cc: Likewise.
4096 * testsuite/ext/stdio_sync_filebuf/char/12048-4.cc: Likewise.
4097 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-1.cc: Likewise.
4098 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-2.cc: Likewise.
4099 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-3.cc: Likewise.
4100 * testsuite/ext/stdio_sync_filebuf/wchar_t/12948-4.cc: Likewise.
4102 2024-07-24 Jonathan Wakely <jwakely@redhat.com>
4104 * testsuite/27_io/basic_filebuf/close/char/2.cc: Remove
4105 @require@ and @diff@ markup. Use dg-additional-files. Remove
4107 * testsuite/27_io/basic_filebuf/close/char/3.cc: Remove
4108 @require@ and @diff@ markup. Use dg-additional-files.
4109 * testsuite/27_io/basic_filebuf/close/char/4.cc: Likewise.
4110 * testsuite/27_io/basic_filebuf/close/char/5.cc: Likewise.
4111 * testsuite/27_io/basic_filebuf/in_avail/char/1.cc: Likewise.
4112 * testsuite/27_io/basic_filebuf/is_open/char/1.cc: Likewise.
4113 * testsuite/27_io/basic_filebuf/open/char/1.cc: Likewise.
4114 * testsuite/27_io/basic_filebuf/open/char/2.cc: Likewise.
4115 * testsuite/27_io/basic_filebuf/sbumpc/char/1-in.cc: Likewise.
4116 * testsuite/27_io/basic_filebuf/sbumpc/char/1-io.cc: Likewise.
4117 * testsuite/27_io/basic_filebuf/sbumpc/char/2-in.cc: Likewise.
4118 * testsuite/27_io/basic_filebuf/sbumpc/char/2-io.cc: Likewise.
4119 * testsuite/27_io/basic_filebuf/seekoff/char/1-in.cc: Likewise.
4120 * testsuite/27_io/basic_filebuf/seekoff/char/1-out.cc: Likewise.
4121 * testsuite/27_io/basic_filebuf/seekoff/char/2-in.cc: Likewise.
4122 * testsuite/27_io/basic_filebuf/seekoff/char/2-out.cc: Likewise.
4123 * testsuite/27_io/basic_filebuf/seekpos/char/1-in.cc: Likewise.
4124 * testsuite/27_io/basic_filebuf/seekpos/char/1-out.cc: Likewise.
4125 * testsuite/27_io/basic_filebuf/seekpos/char/2-in.cc: Likewise.
4126 * testsuite/27_io/basic_filebuf/seekpos/char/2-out.cc: Likewise.
4127 * testsuite/27_io/basic_filebuf/sgetc/char/1-in.cc: Likewise.
4128 * testsuite/27_io/basic_filebuf/sgetc/char/1-io.cc: Likewise.
4129 * testsuite/27_io/basic_filebuf/sgetc/char/2-in.cc: Likewise.
4130 * testsuite/27_io/basic_filebuf/sgetc/char/2-io.cc: Likewise.
4131 * testsuite/27_io/basic_filebuf/sgetn/char/1-in.cc: Likewise.
4132 * testsuite/27_io/basic_filebuf/sgetn/char/1-io.cc: Likewise.
4133 * testsuite/27_io/basic_filebuf/sgetn/char/2-in.cc: Likewise.
4134 * testsuite/27_io/basic_filebuf/sgetn/char/2-io.cc: Likewise.
4135 * testsuite/27_io/basic_filebuf/snextc/char/1-in.cc: Likewise.
4136 * testsuite/27_io/basic_filebuf/snextc/char/1-io.cc: Likewise.
4137 * testsuite/27_io/basic_filebuf/snextc/char/1-out.cc: Likewise.
4138 * testsuite/27_io/basic_filebuf/snextc/char/2-in.cc: Likewise.
4139 * testsuite/27_io/basic_filebuf/snextc/char/2-io.cc: Likewise.
4140 * testsuite/27_io/basic_filebuf/sputbackc/char/1-in.cc:
4142 * testsuite/27_io/basic_filebuf/sputbackc/char/2-in.cc:
4144 * testsuite/27_io/basic_filebuf/sputc/char/1-in.cc: Likewise.
4145 * testsuite/27_io/basic_filebuf/sputc/char/2-in.cc: Likewise.
4146 * testsuite/27_io/basic_filebuf/sputc/char/2-io.cc: Likewise.
4147 * testsuite/27_io/basic_filebuf/sputn/char/1-in.cc: Likewise.
4148 * testsuite/27_io/basic_filebuf/sputn/char/1-io.cc: Likewise.
4149 Remove unused variable.
4150 * testsuite/27_io/basic_filebuf/sputn/char/2-in.cc: Remove
4151 @require@ and @diff@ markup. Use dg-additional-files.
4152 * testsuite/27_io/basic_filebuf/sungetc/char/1-in.cc: Likewise.
4153 * testsuite/27_io/basic_filebuf/sungetc/char/2-in.cc: Likewise.
4154 * testsuite/27_io/basic_ifstream/cons/char/1.cc: Likewise.
4155 * testsuite/27_io/basic_ifstream/open/char/1.cc: Likewise.
4156 * testsuite/27_io/basic_ifstream/rdbuf/char/2832.cc: Likewise.
4157 * testsuite/27_io/basic_istream/readsome/char/6746-2.cc:
4159 * testsuite/27_io/basic_istream/readsome/wchar_t/6746-2.cc:
4161 * testsuite/27_io/basic_istream/seekg/char/sstream.cc: Likewise.
4162 * testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc:
4164 * testsuite/27_io/basic_istream/tellg/char/1.cc: Likewise.
4165 * testsuite/27_io/basic_istream/tellg/char/sstream.cc: Likewise.
4166 * testsuite/27_io/basic_istream/tellg/wchar_t/1.cc: Likewise.
4167 * testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc:
4169 * testsuite/27_io/basic_ofstream/open/char/1.cc: Likewise.
4170 * testsuite/lib/dg-options.exp (dg-additional-files): Append to
4171 v3_additional_files instead of replacing.
4172 * testsuite/lib/libstdc++.exp (v3_target_compile): Reset
4173 v3_additional_files after copying files.
4175 2024-07-24 Jonathan Wakely <jwakely@redhat.com>
4177 * testsuite/27_io/basic_filebuf/close/char/4879.cc: Remove
4178 @require@ and @diff@ comments.
4179 * testsuite/27_io/basic_filebuf/close/char/9964.cc: Likewise.
4180 * testsuite/27_io/basic_filebuf/open/char/3.cc: Likewise.
4181 * testsuite/27_io/basic_filebuf/open/char/9507.cc: Likewise.
4182 * testsuite/27_io/basic_filebuf/sbumpc/char/1-out.cc: Likewise.
4183 * testsuite/27_io/basic_filebuf/sbumpc/char/2-out.cc: Likewise.
4184 * testsuite/27_io/basic_filebuf/sgetc/char/1-out.cc: Likewise.
4185 * testsuite/27_io/basic_filebuf/sgetc/char/2-out.cc: Likewise.
4186 * testsuite/27_io/basic_filebuf/sgetn/char/1-out.cc: Likewise.
4187 * testsuite/27_io/basic_filebuf/sgetn/char/2-out.cc: Likewise.
4188 * testsuite/27_io/basic_filebuf/snextc/char/2-out.cc: Likewise.
4189 * testsuite/27_io/basic_filebuf/sputbackc/char/1-io.cc:
4191 * testsuite/27_io/basic_filebuf/sputbackc/char/1-out.cc:
4193 * testsuite/27_io/basic_filebuf/sputbackc/char/2-io.cc:
4195 * testsuite/27_io/basic_filebuf/sputbackc/char/2-out.cc:
4197 * testsuite/27_io/basic_filebuf/sputc/char/1-out.cc: Likewise.
4198 * testsuite/27_io/basic_filebuf/sputc/char/2-out.cc: Likewise.
4199 * testsuite/27_io/basic_filebuf/sputn/char/1-out.cc: Likewise.
4200 * testsuite/27_io/basic_filebuf/sputn/char/2-out.cc: Likewise.
4201 * testsuite/27_io/basic_filebuf/sungetc/char/1-io.cc: Likewise.
4202 * testsuite/27_io/basic_filebuf/sungetc/char/1-out.cc: Likewise.
4203 * testsuite/27_io/basic_filebuf/sungetc/char/2-io.cc: Likewise.
4204 * testsuite/27_io/basic_filebuf/sungetc/char/2-out.cc: Likewise.
4205 * testsuite/27_io/basic_filebuf/sputc/char/1-io.cc: Likewise.
4206 Remove unused variable.
4207 * testsuite/27_io/basic_filebuf/sputn/char/2-io.cc: Likewise.
4208 * testsuite/27_io/basic_ofstream/cons/char/1.cc: Remove
4209 @require@ and @diff@ comments. Remove unused variables.
4210 * testsuite/27_io/basic_ofstream/rdbuf/char/2832.cc: Remove
4211 * testsuite/27_io/ios_base/sync_with_stdio/2.cc: Likewise.
4213 2024-07-23 Jonathan Wakely <jwakely@redhat.com>
4215 * src/c++23/print.cc (__open_terminal): Use [[maybe_unused]] on
4218 2024-07-23 Detlef Vollmann <dv@vollmann.ch>
4221 * src/c++23/print.cc (__open_terminal) [__AVR__]: Do not use
4224 2024-07-18 Patrick Palka <ppalka@redhat.com>
4226 * include/experimental/socket
4227 (basic_socket_iostream::basic_socket_iostream): Fix typo.
4228 * include/tr2/dynamic_bitset
4229 (__dynamic_bitset_base::_M_is_proper_subset_of): Likewise.
4231 2024-07-12 Alexandre Oliva <oliva@adacore.com>
4233 * testsuite/decimal/binary-arith.cc: Require dfprt.
4234 * testsuite/decimal/comparison.cc: Likewise.
4235 * testsuite/decimal/compound-assignment.cc: Likewise.
4236 * testsuite/decimal/compound-assignment-memfunc.cc: Likewise.
4237 * testsuite/decimal/make-decimal.cc: Likewise.
4238 * testsuite/decimal/pr54036-1.cc: Likewise.
4239 * testsuite/decimal/pr54036-2.cc: Likewise.
4240 * testsuite/decimal/pr54036-3.cc: Likewise.
4241 * testsuite/decimal/unary-arith.cc: Likewise.
4243 2024-07-11 Jonathan Wakely <jwakely@redhat.com>
4245 * testsuite/29_atomics/atomic_ref/bool.cc: New test.
4247 2024-07-11 Damien Lebrun-Grandie <dalg24@gmail.com>
4249 * include/bits/atomic_base.h (__atomic_ref): Do not use integral
4250 specialization for bool.
4252 2024-07-11 Gerald Pfeifer <gerald@pfeifer.com>
4254 * doc/xml/manual/using.xml: Switch gcc.gnu.org links to https.
4255 * doc/html/manual/using_concurrency.html: Regenerate.
4256 * doc/html/manual/using_dynamic_or_shared.html: Ditto.
4257 * doc/html/manual/using_headers.html: Ditto.
4258 * doc/html/manual/using_namespaces.html: Ditto.
4260 2024-07-11 Jonathan Wakely <jwakely@redhat.com>
4263 * testsuite/27_io/filesystem/path/108636.cc: Require normal
4266 2024-07-10 Jonathan Wakely <jwakely@redhat.com>
4269 * include/std/format (basic_format_context): Define copy
4270 operations as deleted, as per LWG 4061.
4271 * testsuite/std/format/context.cc: New test.
4273 2024-07-10 Jonathan Wakely <jwakely@redhat.com>
4275 * src/c++26/text_encoding.cc (__locale_encoding): Add to unnamed
4277 (std::locale::encoding): Optimize for "C" and "*" names.
4279 2024-07-10 Jonathan Wakely <jwakely@redhat.com>
4282 * include/bits/stl_bvector.h (_Bvector_base): Convert allocator
4283 to rebound type explicitly.
4284 * testsuite/23_containers/vector/allocator/115854.cc: New test.
4285 * testsuite/23_containers/vector/bool/allocator/115854.cc: New test.
4287 2024-07-10 Jonathan Wakely <jwakely@redhat.com>
4290 * include/bits/ranges_util.h (__find_fn): Make conversion
4291 from difference type ti size_t explicit.
4292 * testsuite/25_algorithms/find/bytes.cc: Check ranges::find with
4293 __gnu_test::test_contiguous_range.
4294 * testsuite/std/ranges/range.cc: Adjust expected difference_type
4295 for __gnu_test::test_contiguous_range.
4296 * testsuite/util/testsuite_iterators.h (contiguous_iterator_wrapper):
4297 Use __max_diff_type as difference type.
4298 (test_range::sentinel, test_sized_range_sized_sent::sentinel):
4299 Ensure that operator- returns difference_type.
4301 2024-07-10 Marek Polacek <polacek@redhat.com>
4303 * testsuite/std/ranges/access/101782.cc: Don't compile with
4306 2024-07-08 Jonathan Wakely <jwakely@redhat.com>
4309 * include/c_compatibility/stdatomic.h (_Atomic): Ensure it
4310 refers to std::atomic in the global namespace.
4311 * testsuite/29_atomics/headers/stdatomic.h/115807.cc: New test.
4313 2024-07-07 Gerald Pfeifer <gerald@pfeifer.com>
4315 * doc/xml/manual/configure.xml: Update Autobook 14 link.
4316 Update GCC installation instructions link.
4317 * doc/html/manual/configure.html: Regenerate.
4319 2024-07-07 Jonathan Wakely <jwakely@redhat.com>
4322 * include/bits/stl_algo.h (find): Use 'if constexpr' so that
4323 memchr optimization is a discarded statement for non-contiguous
4325 * testsuite/25_algorithms/find/bytes.cc: Check with input
4328 2024-07-07 Jonathan Wakely <jwakely@redhat.com>
4331 * include/bits/ranges_util.h (__find_fn): Return iterator
4332 instead of sentinel.
4333 * testsuite/25_algorithms/find/constrained.cc: Check non-common
4334 contiguous sized range of char.
4336 2024-07-06 Jonathan Wakely <jwakely@redhat.com>
4338 * testsuite/17_intro/headers/c++1998/all_attributes.cc: Add
4339 attribute names from later standards and remove dg-options.
4340 * testsuite/17_intro/headers/c++1998/stdc++.cc: Add c++98_only
4342 * testsuite/17_intro/headers/c++1998/stdc++_multiple_inclusion.cc:
4343 Remove content and include stdc++.cc twice instead.
4344 * testsuite/17_intro/headers/c++2011/stdc++.cc: Replace
4345 dg-options with c++11 target selector.
4346 * testsuite/17_intro/headers/c++2011/stdc++_multiple_inclusion.cc:
4347 Remove content and include stdc++.cc twice instead.
4348 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Removed.
4349 * testsuite/17_intro/headers/c++2011/all_no_exceptions.cc: Removed.
4350 * testsuite/17_intro/headers/c++2011/all_no_rtti.cc: Removed.
4351 * testsuite/17_intro/headers/c++2011/all_pedantic_errors.cc: Removed.
4352 * testsuite/17_intro/headers/c++2011/charset.cc: Removed.
4353 * testsuite/17_intro/headers/c++2011/operator_names.cc: Removed.
4354 * testsuite/17_intro/headers/c++2014/all_attributes.cc: Removed.
4355 * testsuite/17_intro/headers/c++2014/all_no_exceptions.cc: Removed.
4356 * testsuite/17_intro/headers/c++2014/all_no_rtti.cc: Removed.
4357 * testsuite/17_intro/headers/c++2014/all_pedantic_errors.cc: Removed.
4358 * testsuite/17_intro/headers/c++2014/charset.cc: Removed.
4359 * testsuite/17_intro/headers/c++2014/operator_names.cc: Removed.
4360 * testsuite/17_intro/headers/c++2014/stdc++.cc: Removed.
4361 * testsuite/17_intro/headers/c++2014/stdc++_multiple_inclusion.cc: Removed.
4362 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Removed.
4363 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: Removed.
4364 * testsuite/17_intro/headers/c++2017/all_no_rtti.cc: Removed.
4365 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: Removed.
4366 * testsuite/17_intro/headers/c++2017/charset.cc: Removed.
4367 * testsuite/17_intro/headers/c++2017/operator_names.cc: Removed.
4368 * testsuite/17_intro/headers/c++2017/stdc++.cc: Removed.
4369 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc: Removed.
4370 * testsuite/17_intro/headers/c++2020/all_attributes.cc: Removed.
4371 * testsuite/17_intro/headers/c++2020/all_no_exceptions.cc: Removed.
4372 * testsuite/17_intro/headers/c++2020/all_no_rtti.cc: Removed.
4373 * testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc: Removed.
4374 * testsuite/17_intro/headers/c++2020/charset.cc: Removed.
4375 * testsuite/17_intro/headers/c++2020/operator_names.cc: Removed.
4376 * testsuite/17_intro/headers/c++2020/stdc++.cc: Removed.
4377 * testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc: Removed.
4379 2024-07-06 Jonathan Wakely <jwakely@redhat.com>
4381 * include/std/variant (_Variant_storage::_M_reset): Use
4382 __unlikely__ form of attribute instead of unlikely.
4384 2024-07-06 Jonathan Wakely <jwakely@redhat.com>
4387 * include/std/type_traits: Ensure "C++" language linkage.
4388 * testsuite/17_intro/headers/c++2011/linkage.cc: Replace
4389 dg-options with c++11 target selector.
4391 2024-07-05 Jonathan Wakely <jwakely@redhat.com>
4394 * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
4395 Add dg-error for new C++26 diagnostics.
4397 2024-07-05 Jonathan Wakely <jwakely@redhat.com>
4399 * include/bits/stl_uninitialized.h (_UninitDestroyGuard): New
4400 class template and partial specialization.
4401 (__do_uninit_copy, __do_uninit_fill, __do_uninit_fill_n)
4402 (__uninitialized_copy_a, __uninitialized_fill_a)
4403 (__uninitialized_fill_n_a, __uninitialized_copy_move)
4404 (__uninitialized_move_copy, __uninitialized_fill_move)
4405 (__uninitialized_move_fill, __uninitialized_default_1)
4406 (__uninitialized_default_n_a, __uninitialized_default_novalue_1)
4407 (__uninitialized_default_novalue_n_1, __uninitialized_copy_n)
4408 (__uninitialized_copy_n_pair): Use it.
4410 2024-07-05 Jonathan Wakely <jwakely@redhat.com>
4414 * include/bits/cpp_type_traits.h (__can_use_memchr_for_find):
4415 New variable template.
4416 * include/bits/ranges_util.h (__find_fn): Use memchr when
4418 * include/bits/stl_algo.h (find): Likewise.
4419 * testsuite/25_algorithms/find/bytes.cc: New test.
4421 2024-07-04 John David Anglin <danglin@gcc.gnu.org>
4424 * testsuite/30_threads/future/members/poll.cc: Skip on hppa*-*-linux*.
4426 2024-06-28 Jonathan Wakely <jwakely@redhat.com>
4429 * src/c++11/assert_fail.cc (__glibcxx_assert_fail): Add
4430 definition for non-verbose builds.
4432 2024-06-28 Jonathan Wakely <jwakely@redhat.com>
4435 * include/bits/stl_algobase.h (__equal_aux1): Check for
4437 * testsuite/25_algorithms/equal/101485.cc: New test.
4439 2024-06-28 Jonathan Wakely <jwakely@redhat.com>
4442 * include/bits/new_allocator.h: Disable extended alignment
4443 support in C++98 mode.
4444 * include/bits/stl_tempbuf.h: Likewise.
4445 * include/ext/bitmap_allocator.h: Likewise.
4446 * include/ext/malloc_allocator.h: Likewise.
4447 * include/ext/mt_allocator.h: Likewise.
4448 * include/ext/pool_allocator.h: Likewise.
4449 * testsuite/ext/104395.cc: New test.
4451 2024-06-28 Jonathan Wakely <jwakely@redhat.com>
4453 * include/ext/aligned_buffer.h (__aligned_membuf): Use
4454 alignas(T) directly instead of defining a struct and using 9its
4456 (__aligned_buffer): Remove use of std::aligned_storage.
4457 * testsuite/abi/aligned_buffers.cc: New test.
4459 2024-06-27 Jonathan Wakely <jwakely@redhat.com>
4462 * config/locale/gnu/codecvt_members.cc (Guard): New RAII type.
4463 (do_out, do_in): Return partial if the destination is empty but
4464 the source is not. Use Guard to restore locale on scope exit.
4465 Return immediately on any conversion error.
4466 (do_encoding, do_max_length, do_length): Use Guard.
4467 * testsuite/22_locale/codecvt/in/char/37475.cc: New test.
4468 * testsuite/22_locale/codecvt/in/wchar_t/37475.cc: New test.
4469 * testsuite/22_locale/codecvt/out/char/37475.cc: New test.
4470 * testsuite/22_locale/codecvt/out/wchar_t/37475.cc: New test.
4472 2024-06-27 Alexandre Oliva <oliva@adacore.com>
4475 * testsuite/experimental/simd/pr115454_find_last_set.cc: Defer
4476 to check_vect_support_and_set_flags's default dg-do action.
4478 2024-06-27 Jonathan Wakely <jwakely@redhat.com>
4481 * include/bits/chrono_io.h (formatter<duration<R,P, C>::format):
4482 Do not use chrono::abs.
4483 * testsuite/20_util/duration/io.cc: Check formatting a duration
4486 2024-06-27 Jonathan Wakely <jwakely@redhat.com>
4489 * include/bits/stl_bvector.h (vector<bool>::operator[])
4490 (vector<bool>::front, vector<bool>::back): Add debug assertions.
4491 * testsuite/23_containers/vector/bool/element_access/constexpr.cc:
4492 Remove dg-error that no longer triggers.
4494 2024-06-27 Jonathan Wakely <jwakely@redhat.com>
4497 * include/debug/assertions.h (__glibcxx_requires_non_empty_range)
4498 (__glibcxx_requires_nonempty, __glibcxx_requires_subscript):
4499 Define to __glibcxx_assert expressions or to debug mode
4500 __glibcxx_check_xxx expressions.
4501 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
4502 Add checks for out-of-bounds accesses in constant expressions.
4503 * testsuite/23_containers/vector/element_access/constexpr.cc:
4506 2024-06-26 Jonathan Wakely <jwakely@redhat.com>
4508 * scripts/update_release_branch.sh: New file.
4510 2024-06-26 Jonathan Wakely <jwakely@redhat.com>
4512 * testsuite/20_util/specialized_algorithms/uninitialized_copy/808590.cc:
4513 Copy defaulted assignment operator from 808590-cxx11.cc to
4515 * testsuite/20_util/specialized_algorithms/uninitialized_copy/808590-cxx11.cc:
4518 2024-06-26 Jonathan Wakely <jwakely@redhat.com>
4521 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
4522 Increase timeout for debug mode.
4523 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
4525 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
4527 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
4529 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
4531 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
4534 2024-06-26 Jonathan Wakely <jwakely@redhat.com>
4537 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc
4538 [_GLIBCXX_DEBUG]: Add xfail-run-if for debug mode.
4539 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc
4540 [_GLIBCXX_DEBUG]: Reduce size of test data.
4541 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
4543 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
4546 2024-06-26 Jonathan Wakely <jwakely@redhat.com>
4548 * src/c++20/tzdb.cc (minmax_year, minmax_year2): Remove.
4549 (years_from_to): New class replacing minmax_year and
4551 (format_abbrev_str, select_std_or_dst_abbrev): Move earlier in
4552 the file. Handle "-" for letters.
4553 (ZoneInfo::to): Use format_abbrev_str to expand %z.
4554 (ZoneInfo::set_abbrev): Remove exception. Change parameter from
4556 (operator>>(istream&, Rule&)): Do not clear letters when it
4558 (time_zone::_M_get_sys_info): Add missing logic to find the Rule
4559 in effect before the time point.
4560 * testsuite/std/time/tzdb/1.cc: Adjust for vanguard format using
4561 "GMT" as the Zone name, not as a Link to "Etc/GMT".
4562 * testsuite/std/time/time_zone/sys_info_abbrev.cc: New test.
4564 2024-06-26 Alexandre Oliva <oliva@adacore.com>
4565 Marc Poulhiès <poulhies@adacore.com>
4567 * testsuite/lib/dg-options.exp (add_options_for_libatomic):
4568 None for *-*-vxworks*.
4570 2024-06-25 Jonathan Wakely <jwakely@redhat.com>
4572 * include/bits/valarray_array.h (_Array_default_ctor): Remove.
4573 (__valarray_default_construct): Inline it into here.
4574 (_Array_init_ctor): Remove.
4575 (__valarray_fill_construct): Inline it into here.
4576 (_Array_copy_ctor): Remove.
4577 (__valarray_copy_construct(const T*, const T*, T*)): Inline it
4579 (__valarray_copy_construct(const T*, size_t, size_t, T*)):
4580 Use _GLIBCXX17_CONSTEXPR for constant condition.
4582 2024-06-25 Jonathan Wakely <jwakely@redhat.com>
4584 * doc/xml/faq.xml: Replace viewcvs links with cgit links.
4585 * doc/xml/manual/allocator.xml: Likewise.
4586 * doc/xml/manual/mt_allocator.xml: Likewise.
4587 * doc/html/*: Regenerate.
4589 2024-06-22 Gerald Pfeifer <gerald@pfeifer.com>
4591 * doc/xml/manual/debug.xml: Move gcc.gnu.org link to https.
4592 Ditto for sourceware.org links.
4593 * doc/html/manual/debug.html: Regenerate.
4595 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
4598 * include/bits/cpp_type_traits.h (__is_pointer, __is_scalar):
4600 (__is_arithmetic): Do not use __is_pointer in the primary
4601 template. Add partial specialization for pointers.
4603 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
4606 * include/bits/cpp_type_traits.h (__is_void): Remove.
4607 * include/debug/helper_functions.h (_Distance_traits):
4608 Adjust partial specialization to match void directly, instead of
4609 using __is_void<T>::__type and matching __true_type.
4611 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
4614 * include/bits/deque.tcc (__lex_cmp_dit): Replace __is_pointer
4615 class template with __is_pointer(T) built-in.
4616 (__lexicographical_compare_aux1): Likewise.
4617 * include/bits/stl_algobase.h (__equal_aux1): Likewise.
4618 (__lexicographical_compare_aux1): Likewise.
4620 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
4623 * include/bits/valarray_array.h (__valarray_default_construct):
4624 Use __is_trivial(_Tp). instead of __is_scalar<_Tp>.
4626 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
4629 * include/bits/stl_algobase.h (__fill_a1): Combine the
4630 !__is_scalar and __is_scalar overloads into one and rewrite the
4631 condition used to decide whether to perform the load outside the
4633 * testsuite/25_algorithms/fill/109150.cc: New test.
4634 * testsuite/25_algorithms/fill_n/109150.cc: New test.
4636 2024-06-21 Matthias Kretz <m.kretz@gsi.de>
4639 * testsuite/experimental/simd/pr115454_find_last_set.cc: Require
4640 avx512f_runtime. Don't memcpy fixed_size masks.
4642 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
4644 * include/bits/stl_uninitialized.h (uninitialized_default_construct)
4645 (uninitialized_default_construct_n, uninitialized_value_construct)
4646 (uninitialized_value_construct_n): Qualify calls to prevent ADL.
4648 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
4650 * include/std/any (any_cast(any*), any_cast(const any*)): Add
4651 static assertion to reject void types, as per LWG 3305.
4652 * testsuite/20_util/any/misc/lwg3305.cc: New test.
4654 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
4656 * include/bits/memory_resource.h (polymorphic_allocator::destroy):
4657 Remove deprecated attribute.
4659 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
4661 * include/backward/backward_warning.h: Adjust comments to
4662 suggest <spanstream> as another alternative to <strstream>.
4663 * include/backward/strstream (strstreambuf, istrstream)
4664 (ostrstream, strstream): Add deprecated attribute.
4666 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
4668 * include/bits/locale_conv.h (wstring_convert): Add deprecated
4669 attribute for C++17 and later.
4670 (wbuffer_convert): Likewise.
4671 * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: Disable
4672 deprecated warnings.
4673 * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: Likewise.
4674 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc:
4676 * testsuite/22_locale/conversions/buffer/1.cc: Add dg-warning.
4677 * testsuite/22_locale/conversions/buffer/2.cc: Likewise.
4678 * testsuite/22_locale/conversions/buffer/3.cc: Likewise.
4679 * testsuite/22_locale/conversions/buffer/requirements/typedefs.cc:
4681 * testsuite/22_locale/conversions/string/1.cc: Likewise.
4682 * testsuite/22_locale/conversions/string/2.cc: Likewise.
4683 * testsuite/22_locale/conversions/string/3.cc: Likewise.
4684 * testsuite/22_locale/conversions/string/66441.cc: Likewise.
4685 * testsuite/22_locale/conversions/string/requirements/typedefs-2.cc:
4687 * testsuite/22_locale/conversions/string/requirements/typedefs.cc:
4690 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
4692 * include/bits/version.def (chrono): Add cxx11abi = yes.
4693 * include/bits/version.h: Regenerate.
4694 * testsuite/std/time/syn_c++20.cc: Adjust expected value for
4695 the feature test macro.
4697 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
4700 * include/std/array (to_array): Workaround the fact that
4701 std::is_trivial is not sufficient to check that a type is
4702 trivially default constructible and assignable.
4703 * testsuite/23_containers/array/creation/115522.cc: New test.
4705 2024-06-21 Jonathan Wakely <jwakely@redhat.com>
4707 * testsuite/util/testsuite_allocator.h (tracker_allocator):
4708 Initialize base class in copy constructor.
4710 2024-06-20 Matthias Kretz <m.kretz@gsi.de>
4713 * include/experimental/bits/simd_x86.h (_S_not_equal_to): Use
4714 neq comparison instead of bitwise negation after eq.
4715 (_S_find_last_set): Clear unused high bits before computing
4717 * testsuite/experimental/simd/pr115454_find_last_set.cc: New
4720 2024-06-19 Jonathan Wakely <jwakely@redhat.com>
4722 * include/std/future: Adjust whitespace to use tabs for
4725 2024-06-19 Jonathan Wakely <jwakely@redhat.com>
4727 * include/std/future (_State_baseV2::_Setter<R, void>): Add
4728 noexcept to call operator.
4729 (_State_baseV2::_Setter<R, __exception_ptr_tag>): Likewise.
4731 2024-06-19 Jonathan Wakely <jwakely@redhat.com>
4733 * include/bits/stl_pair.h [__cpp_lib_concepts] (pair()): Add
4734 conditional noexcept.
4736 2024-06-19 Jonathan Wakely <jwakely@redhat.com>
4738 * include/bits/stl_tempbuf.h (__get_temporary_buffer): Cast
4739 argument to size_t to handle negative values and suppress
4740 -Wsign-compare warning.
4741 (_Temporary_buffer): Move diagnostic pragmas to new location of
4742 call to std::get_temporary_buffer.
4744 2024-06-18 Jonathan Wakely <jwakely@redhat.com>
4746 * include/bits/cpp_type_traits.h: Fix outdated comment about the
4747 number of standard integer types.
4749 2024-06-14 Jonathan Wakely <jwakely@redhat.com>
4752 * libsupc++/typeinfo (type_info::operator==): Add always_inline
4753 attribute for targets where the ABI requries equality to be
4755 * testsuite/18_support/type_info/110572.cc: New test.
4757 2024-06-14 Jonathan Wakely <jwakely@redhat.com>
4759 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Fix declaration of
4762 2024-06-13 Alexandre Oliva <oliva@adacore.com>
4765 * testsuite/26_numerics/random/binomial_distribution/114359.cc:
4768 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
4770 * include/std/type_traits (__add_rval_ref_t): Use
4771 __add_rvalue_reference built-in trait.
4773 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
4775 * include/std/type_traits (__add_lval_ref_t): Use
4776 __add_lvalue_reference built-in trait.
4778 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
4779 Jonathan Wakely <jwakely@redhat.com>
4781 * include/bits/cpp_type_traits.h (__is_pointer): Use
4782 __is_pointer built-in trait.
4783 * include/std/type_traits (is_pointer): Likewise. Optimize its
4785 (is_pointer_v): Likewise.
4787 2024-06-13 Jonathan Wakely <jwakely@redhat.com>
4789 * include/bits/ranges_base.h (range_common_reference_t): New
4790 alias template, as per LWG 3860.
4791 * testsuite/std/ranges/range.cc: Check it.
4793 2024-06-13 Jonathan Wakely <jwakely@redhat.com>
4795 * include/bits/ranges_base.h (const_iterator_t): Change
4796 preprocessor condition to use __glibcxx_ranges_as_const.
4797 (const_sentinel_t, range_const_reference_t): Likewise.
4798 (__access::__possibly_const_range, cbegin, cend, crbegin)
4799 (crend, cdata): Likewise.
4800 * include/bits/stl_iterator.h (iter_const_reference_t)
4801 (basic_const_iterator, const_iterator, const_sentinel)
4802 (make_const_iterator): Likewise.
4804 2024-06-13 Jonathan Wakely <jwakely@redhat.com>
4807 * include/bits/hashtable.h (_Hashtable): Add static_assert to
4808 check that hash function is copy constructible.
4809 * testsuite/23_containers/unordered_map/115420.cc: New test.
4811 2024-06-13 Jonathan Wakely <jwakely@redhat.com>
4814 * include/pstl/pstl_config.h: Use #if instead of #ifdef to test
4815 the _PSTL_USAGE_WARNINGS macro.
4817 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
4819 * include/std/type_traits (is_nothrow_invocable): Use
4820 __is_nothrow_invocable built-in trait.
4821 * testsuite/20_util/is_nothrow_invocable/incomplete_args_neg.cc:
4822 Handle the new error from __is_nothrow_invocable.
4823 * testsuite/20_util/is_nothrow_invocable/incomplete_neg.cc:
4826 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
4828 * include/std/type_traits (is_invocable): Use __is_invocable
4830 * testsuite/20_util/is_invocable/incomplete_args_neg.cc: Handle
4831 the new error from __is_invocable.
4832 * testsuite/20_util/is_invocable/incomplete_neg.cc: Likewise.
4834 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
4836 * include/std/type_traits (rank): Use __array_rank built-in
4840 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
4842 * include/std/type_traits (decay): Use __decay built-in trait.
4844 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
4846 * include/std/type_traits (remove_all_extents): Use
4847 __remove_all_extents built-in trait.
4849 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
4851 * include/std/type_traits (remove_extent): Use __remove_extent
4854 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
4856 * include/std/type_traits (add_pointer): Use __add_pointer
4859 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
4861 * include/std/type_traits (is_unbounded_array_v): Use
4862 __is_unbounded_array built-in trait.
4864 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
4866 * include/std/type_traits (is_volatile): Use __is_volatile
4868 (is_volatile_v): Likewise.
4870 2024-06-13 Ken Matsui <kmatsui@gcc.gnu.org>
4872 * include/std/type_traits (is_const): Use __is_const built-in
4874 (is_const_v): Likewise.
4876 2024-06-12 Alexandre Oliva <oliva@adacore.com>
4878 * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc:
4880 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc:
4882 * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc:
4885 2024-06-12 Alexandre Oliva <oliva@adacore.com>
4887 * testsuite/20_util/from_chars/8.cc: Skip float128_t testing
4889 * testsuite/20_util/to_chars/float128_c++23.cc: Xfail run on
4892 2024-06-12 Jonathan Wakely <jwakely@redhat.com>
4895 * include/tr2/dynamic_bitset (operator>>=): Remove redundant
4896 call to _M_do_sanitize.
4897 * include/tr2/dynamic_bitset.tcc (_M_do_left_shift): Zero out
4898 low bits in words that should no longer be populated.
4899 (_M_do_right_shift): Likewise for high bits.
4900 * testsuite/tr2/dynamic_bitset/pr115399.cc: New test.
4902 2024-06-12 Jonathan Wakely <jwakely@redhat.com>
4904 * include/bits/hashtable.h (_Hashtable::clear): Do not use
4905 memset to zero out bucket pointers.
4906 (_Hashtable::_M_assign_elements): Likewise.
4908 2024-06-11 Jonathan Wakely <jwakely@redhat.com>
4910 * include/std/chrono (leap_seconds): Add comment.
4911 * testsuite/std/time/leap_seconds/io.cc: New test.
4913 2024-06-10 François Dumont <fdumont@gcc.gnu.org>
4915 * include/bits/hashtable.h (~_Hashtable()): Replace clear call with
4916 a _M_deallocate_nodes call.
4918 2024-06-08 Deev Patel <dkp10000@gmail.com>
4919 Jonathan Wakely <jwakely@redhat.com>
4921 * include/bits/atomic_base.h (__atomic_impl::__clear_padding):
4922 Add missing constexpr specifier.
4923 * testsuite/29_atomics/atomic_float/constinit.cc: New test.
4925 2024-06-08 Michael Levine <mlevine55@bloomberg.net>
4928 * include/bits/ranges_algo.h (ranges::out_value_result):
4929 Move to <bits/ranges_algobase.h>.
4930 (ranges::iota_result, ranges::__iota_fn, ranges::iota): Move to
4932 * include/bits/ranges_algobase.h (ranges::out_value_result):
4934 * include/std/numeric (ranges::iota_result, ranges::__iota_fn)
4935 (ranges::iota): Move to here.
4936 * testsuite/25_algorithms/iota/1.cc: Renamed to ...
4937 * testsuite/26_numerics/iota/2.cc: ... here.
4939 2024-06-08 Jonathan Wakely <jwakely@redhat.com>
4941 * include/std/algorithm: Define __glibcxx_want_ranges.
4942 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Check
4943 feature test macro in C++20 mode.
4945 2024-06-07 Jonathan Wakely <jwakely@redhat.com>
4947 * include/bits/ranges_algobase.h: Include <bits/stl_algobase.h>.
4949 2024-06-07 Alexandre Oliva <oliva@adacore.com>
4951 * include/std/variant: Drop obsolete workaround.
4953 2024-06-07 Jonathan Wakely <jwakely@redhat.com>
4955 * include/bits/ptr_traits.h (to_address): Optimize.
4956 * testsuite/20_util/to_address/1_neg.cc: Adjust dg-error text.
4958 2024-06-06 Alexandre Oliva <oliva@adacore.com>
4960 * include/bits/c++config (_GLIBCXX_CLANG): Define or undefine.
4961 * include/bits/locale_facets_nonio.tcc: Test for it.
4962 * include/bits/stl_bvector.h: Likewise.
4963 * include/c_compatibility/stdatomic.h: Likewise.
4964 * include/experimental/bits/simd.h: Likewise.
4965 * include/experimental/bits/simd_builtin.h: Likewise.
4966 * include/experimental/bits/simd_detail.h: Likewise.
4967 * include/experimental/bits/simd_x86.h: Likewise.
4968 * include/experimental/simd: Likewise.
4969 * include/std/complex: Likewise.
4970 * include/std/ranges: Likewise.
4971 * include/std/variant: Likewise.
4972 * include/pstl/pstl_config.h: Likewise.
4974 2024-06-05 Gerald Pfeifer <gerald@pfeifer.com>
4976 * doc/xml/faq.xml: Move gcc.gnu.org to https.
4977 * doc/html/faq.html: Regenerate.
4979 2024-06-04 Jonathan Wakely <jwakely@redhat.com>
4982 * include/std/span (span::at): Guard with feature test macro.
4984 2024-06-04 Matthias Kretz <m.kretz@gsi.de>
4987 * include/experimental/bits/simd.h (__int_for_sizeof): Remove
4988 special cases for __clang__.
4989 (_SimdWrapper): Change constructor overload set to allow
4990 conversion from vector types with integral conversions via bit
4993 2024-06-03 Jonathan Wakely <jwakely@redhat.com>
4995 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
4996 Use __detail::__get_temporary_buffer.
4997 (basic_stacktrace::_Impl::_M_deallocate): Use
4998 __detail::__return_temporary_buffer.
5000 2024-06-03 Jonathan Wakely <jwakely@redhat.com>
5003 * include/bits/stl_tempbuf.h (__detail::__get_temporary_buffer):
5004 New function to do allocation for get_temporary_buffer, with
5005 extended alignment support.
5006 (__detail::__return_temporary_buffer): Support extended
5008 (get_temporary_buffer): Use __get_temporary_buffer.
5009 (return_temporary_buffer): Support extended alignment. Add
5010 deprecated attribute.
5011 (_Temporary_buffer): Move allocation and deallocation into a
5012 subobject and remove try-catch block in constructor.
5013 (__uninitialized_construct_buf): Use argument deduction for
5015 * testsuite/20_util/temporary_buffer.cc: Add dg-warning for new
5017 * testsuite/25_algorithms/stable_sort/overaligned.cc: New test.
5019 2024-06-03 François Dumont <frs.dumont@gmail.com>
5022 * include/bits/vector.tcc
5023 (std::vector<>::_M_range_insert(iterator, _FwdIt, _FwdIt,
5024 forward_iterator_tag))[__cplusplus < 201103L]: Add __builtin_unreachable
5025 expression to tell the compiler that the allocated buffer is large enough to
5026 receive current elements plus the elements of the range to insert.
5028 2024-06-03 Jonathan Wakely <jwakely@redhat.com>
5030 * include/std/string_view (starts_with(basic_string_view)):
5031 Compare lengths first and then call traits_type::compare
5034 2024-06-02 Gerald Pfeifer <gerald@pfeifer.com>
5036 * doc/xml/api.xml: Move gcc.gnu.org links to https.
5037 * doc/html/api.html: Regenerate.
5039 2024-06-01 Jonathan Wakely <jwakely@redhat.com>
5042 * doc/xml/manual/using.xml: Replace link to gcc-4.3.2 docs.
5043 Replace list of -std=... options with a single entry for -std.
5044 * doc/html/manual/using.html: Regenerate.
5046 2024-05-30 Alexandre Oliva <oliva@adacore.com>
5048 * configure.ac [*-*-rtems*]: Set chdir, chmod and mkdir as
5050 * configure: Rebuilt.
5052 2024-05-29 François Dumont <fdumont@gcc.gnu.org>
5054 * include/bits/vector.tcc (_Guard): Move all the nested duplicated class...
5055 * include/bits/stl_vector.h (_Guard_alloc): ...here and rename.
5056 (_M_allocate_and_copy): Use latter.
5057 (_M_initialize_dispatch): Small code simplification.
5058 (_M_range_initialize): Likewise and set _M_finish first from the result
5059 of __uninitialize_fill_n_a that can throw.
5061 2024-05-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5064 * src/libbacktrace/Makefile.am (AM_CFLAGS): Add -funwind-tables.
5065 * src/libbacktrace/Makefile.in: Regenerate.
5066 * testsuite/19_diagnostics/stacktrace/current.cc (dg-options): Add
5068 * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
5069 * testsuite/19_diagnostics/stacktrace/hash.cc: Likewise.
5070 * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
5071 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
5073 2024-05-29 Matthias Kretz <m.kretz@gsi.de>
5076 * include/experimental/bits/simd.h (__as_vector): Don't use
5077 vector_size(8) on __i386__.
5078 (__vec_shuffle): Never return MMX vectors, widen to 16 bytes
5080 (concat): Fix padding calculation to pick up widening logic from
5083 2024-05-23 Patrick Palka <ppalka@redhat.com>
5085 * include/bits/version.def (ranges_concat): Define.
5086 * include/bits/version.h: Regenerate.
5087 * include/std/ranges (__detail::__concat_reference_t): Define
5089 (__detail::__concat_value_t): Likewise.
5090 (__detail::__concat_rvalue_reference_t): Likewise.
5091 (__detail::__concat_indirectly_readable_impl): Likewise.
5092 (__detail::__concat_indirectly_readable): Likewise.
5093 (__detail::__concatable): Likewise.
5094 (__detail::__all_but_last_common): Likewise.
5095 (__detail::__concat_is_random_access): Likewise.
5096 (__detail::__concat_is_bidirectional): Likewise.
5097 (__detail::__last_is_common): Likewise.
5098 (concat_view): Likewise.
5099 (__detail::__concat_view_iter_cat): Likewise.
5100 (concat_view::iterator): Likewise.
5101 (views::__detail::__can_concat_view): Likewise.
5102 (views::_Concat, views::concat): Likewise.
5103 * testsuite/std/ranges/concat/1.cc: New test.
5105 2024-05-22 Jonathan Wakely <jwakely@redhat.com>
5107 * include/bits/locale_classes.h (locale::combine)
5108 (locale::name, locale::operator==, locale::operator!=)
5109 (locale::operator(), locale::classic): Add nodiscard
5111 * include/bits/locale_classes.tcc (has_facet, use_facet):
5113 * testsuite/22_locale/locale/cons/12438.cc: Add dg-warning for
5114 nodiscard diagnostic.
5115 * testsuite/22_locale/locale/cons/2.cc: Cast use_facet
5116 expression to void, to suppress diagnostic.
5117 * testsuite/22_locale/locale/cons/unicode.cc: Likewise.
5118 * testsuite/22_locale/locale/operations/2.cc: Add dg-warning.
5120 2024-05-22 Jonathan Wakely <jwakely@redhat.com>
5123 * include/bits/locale_classes.tcc (locale(const locale&, Facet*)):
5124 Return a copy of the first argument when the facet pointer is
5125 null, as per LWG 2295.
5126 (locale::combine): Ensure the result is unnamed.
5127 * src/c++11/localename.cc (_M_replace_categories): Ignore
5128 whether the second locale has a name when cat == none, as per
5130 * src/c++98/locale.cc (_M_install_facet): Use __builtin_expect
5131 to predict that the facet pointer is non-null.
5132 * testsuite/22_locale/locale/cons/names.cc: New test.
5134 2024-05-22 Jonathan Wakely <jwakely@redhat.com>
5137 * include/bits/version.def (generator): Depend on
5138 __cpp_sized_deallocation.
5139 * include/bits/version.h: Regenerate.
5140 * include/std/stacktrace (_GLIBCXX_SIZED_DELETE): New macro.
5141 (basic_stacktrace::_Impl::_M_deallocate): Use it.
5143 2024-05-22 Jonathan Wakely <jwakely@redhat.com>
5146 * include/bits/std_thread.h: Declare formatter as friend of
5148 * include/std/thread (operator<<): Convert non-void pointers to
5149 void pointers for output.
5150 (formatter): Add constraint that thread::native_handle_type is a
5152 (formatter::format): Reimplement without basic_ostringstream.
5153 * testsuite/30_threads/thread/id/output.cc: Check output
5154 compiles before <sstream> has been included.
5156 2024-05-22 Jonathan Wakely <jwakely@redhat.com>
5159 * include/std/variant (operator==, operator!=, operator<)
5160 (operator<=, operator>, operator>=): Add trailing-return-type to
5161 lambda expressions to trigger conversion to bool.
5162 * testsuite/20_util/variant/relops/115145.cc: New test.
5164 2024-05-17 Björn Schäpers <bjoern@hazardy.de>
5166 * acinclude.m4 (GLIBCXX_ENABLE_BACKTACE): Add check for
5167 tlhelp32.h, matching libbacktrace.
5168 * config.h.in: Regenerate.
5169 * configure: Regenerate.
5171 2024-05-17 Jonathan Wakely <jwakely@redhat.com>
5174 * include/bits/unicode.h (_Iterator::operator++(int)): Fix typo
5175 in increment expression.
5176 * testsuite/ext/unicode/grapheme_view.cc: Check post-increment
5179 2024-05-15 Jonathan Wakely <jwakely@redhat.com>
5182 * include/bits/basic_ios.h (basic_ios::fill()): Do not modify
5183 _M_fill and _M_fill_init in a const member function.
5184 (basic_ios::fill(char_type)): Use _M_fill directly instead of
5185 calling fill(). Set _M_fill_init to true.
5186 * include/bits/basic_ios.tcc (basic_ios::init): Set _M_fill and
5187 _M_fill_init here instead.
5188 * testsuite/27_io/basic_ios/fill/char/1.cc: New test.
5189 * testsuite/27_io/basic_ios/fill/wchar_t/1.cc: New test.
5191 2024-05-15 Jonathan Wakely <jwakely@redhat.com>
5193 * include/std/variant (__detail::__variant::__compare): New
5195 (operator==, operator!=, operator<, operator>, operator<=)
5196 (operator>=): Replace macro definition with handwritten function
5197 calling __detail::__variant::__compare.
5198 (operator<=>): Call __detail::__variant::__compare.
5200 2024-05-15 Jonathan Wakely <jwakely@redhat.com>
5203 * include/bits/atomic_base.h (memory_order): Use int as
5205 * testsuite/29_atomics/atomic/89624.cc: New test.
5207 2024-05-14 Jonathan Wakely <jwakely@redhat.com>
5210 * src/c++23/print.cc (__open_terminal(streambuf*)) [!__cpp_rtti]:
5211 Do not use dynamic_cast.
5213 2024-05-14 Jonathan Wakely <jwakely@redhat.com>
5215 * doc/xml/manual/strings.xml: Clarify that GCC 4.5 added
5216 std::string::shrink_to_fit.
5217 * doc/html/manual/strings.html: Regenerate.
5219 2024-05-14 Jonathan Wakely <jwakely@redhat.com>
5222 * include/std/stacktrace (basic_stacktrace::max_size): Fix typo
5223 in reference to _M_alloc member.
5224 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Check
5225 max_size() compiles.
5227 2024-05-13 Matthias Kretz <m.kretz@gsi.de>
5230 * include/experimental/bits/simd.h (__as_vector): Return scalar
5231 simd as one-element vector. Return vector from single-vector
5233 (__vec_shuffle): New.
5234 (__extract_part): Adjust return type signature.
5235 (split): Use __extract_part for any split into non-fixed_size
5237 (concat): If the return type stores a single vector, use
5238 __vec_shuffle (which calls __builtin_shufflevector) to produce
5240 * include/experimental/bits/simd_builtin.h
5241 (__shift_elements_right): Removed.
5242 (__extract_part): Return single elements directly. Use
5243 __vec_shuffle (which calls __builtin_shufflevector) to for all
5245 * include/experimental/bits/simd_fixed_size.h (__extract_part):
5246 Return single elements directly.
5247 * testsuite/experimental/simd/pr114958.cc: New test.
5249 2024-05-07 Jonathan Wakely <jwakely@redhat.com>
5251 * include/bits/unicode.h (_Unicode_view::_M_read_utf8): Ensure
5252 count of characters consumed is correct when the end of the
5253 input is reached unexpectedly.
5254 * testsuite/ext/unicode/view.cc: Test incomplete UTF-8
5257 2024-05-07 Jonathan Wakely <jwakely@redhat.com>
5260 * include/bits/out_ptr.h [!_GLIBCXX_HOSTED]: Don't refer to
5261 shared_ptr, __shared_ptr or __is_shred_ptr.
5262 * testsuite/20_util/headers/memory/114866.cc: New test.
5264 2024-05-07 Jonathan Wakely <jwakely@redhat.com>
5266 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE):
5269 2024-05-07 Jonathan Wakely <jwakely@redhat.com>
5271 * include/bits/stl_pair.h (operator==): Add constraint.
5272 * include/bits/version.def (constrained_equality): Define.
5273 * include/bits/version.h: Regenerate.
5274 * include/std/optional: Define feature test macro.
5275 (__optional_rep_op_t): Use is_convertible_v instead of
5277 * include/std/tuple: Define feature test macro.
5278 (operator==, __tuple_cmp, operator<=>): Reimplement C++20
5279 comparisons using lambdas. Add constraints.
5280 * include/std/utility: Define feature test macro.
5281 * include/std/variant: Define feature test macro.
5282 (_VARIANT_RELATION_FUNCTION_TEMPLATE): Add constraints.
5283 (variant): Remove unnecessary friend declarations for comparison
5285 * testsuite/20_util/optional/relops/constrained.cc: New test.
5286 * testsuite/20_util/pair/comparison_operators/constrained.cc:
5288 * testsuite/20_util/tuple/comparison_operators/constrained.cc:
5290 * testsuite/20_util/variant/relops/constrained.cc: New test.
5291 * testsuite/20_util/tuple/comparison_operators/overloaded.cc:
5292 Disable for C++20 and later.
5293 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc:
5294 Remove dg-error line for target c++20.
5296 2024-05-07 Jonathan Wakely <jwakely@redhat.com>
5298 * include/backward/auto_ptr.h: Use https for URL in comment.
5299 * include/bits/basic_ios.h: Likewise.
5300 * include/std/iostream: Likewise.
5302 2024-05-07 Jonathan Wakely <jwakely@redhat.com>
5304 * testsuite/util/testsuite_abi.cc: Update latest versions to
5305 new versions that should be used in future.
5307 2024-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5309 * src/Makefile.am [ENABLE_SYMVERS_SUN]
5310 (libstdc++-symbols.ver-sun): Pass $(libstdc___la_OBJECTS),
5311 $(libstdc___la_LIBADD) to make_sunver.pl unmodified.
5312 * src/Makefile.in: Regenerate.
5314 2024-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5316 * testsuite/lib/dg-options.exp (add_options_for_net_ts)
5317 <*-*-solaris2*>: Don't link with -lsocket -lnsl.
5319 2024-05-03 Andreas Schwab <schwab@linux-m68k.org>
5321 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
5322 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
5324 2024-05-01 Jonathan Wakely <jwakely@redhat.com>
5327 * include/std/generator: Check feature test macro before using
5328 is_pointer_interconvertible_v.
5330 2024-04-30 Christophe Lyon <christophe.lyon@linaro.org>
5332 * testsuite/lib/gdb-test.exp (gdb-test): Fix regexp. Quote
5335 2024-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5337 Backported from master:
5338 2024-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5340 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
5341 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
5343 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
5344 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
5347 2024-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5349 Backported from master:
5350 2024-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5352 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
5353 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
5355 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
5356 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
5359 2024-04-26 Jonathan Wakely <jwakely@redhat.com>
5362 * include/std/format (__formatter_fp::format): Only use
5363 _M_localized for finite values.
5364 * testsuite/std/format/functions/format.cc: Check localized
5365 formatting of NaN and initiny.
5367 2024-04-26 Jonathan Wakely <jwakely@redhat.com>
5369 * doc/html/manual/status.html: Regenerate.
5370 * doc/xml/manual/status_cxx1998.xml: Adjust whitespace.
5371 * doc/xml/manual/status_cxx2011.xml: Likewise.
5372 * doc/xml/manual/status_cxx2014.xml: Likewise.
5373 * doc/xml/manual/status_cxx2017.xml: Likewise.
5374 * doc/xml/manual/status_cxx2020.xml: Likewise.
5375 * doc/xml/manual/status_cxx2023.xml: Likewise.
5376 * doc/xml/manual/status_cxxtr1.xml: Likewise.
5377 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
5379 2024-04-25 Jonathan Wakely <jwakely@redhat.com>
5381 * scripts/run_doxygen: Rename man pages for nested types.
5383 2024-04-25 Jonathan Wakely <jwakely@redhat.com>
5385 * include/std/chrono (tzdb_list): Fix typo in Doxygen comment.
5387 2024-04-25 Jonathan Wakely <jwakely@redhat.com>
5389 * scripts/run_doxygen: Adjust sed pattern to match '\fR' for
5390 new man output that Doxygen 1.10 generates.
5392 2024-04-25 Jonathan Wakely <jwakely@redhat.com>
5394 * doc/doxygen/stdheader.cc (init_map): Add missing headers.
5395 * doc/doxygen/user.cfg.in (EXCLUDE): Exclude generated files for
5396 std::format and std::text_encoding.
5398 2024-04-25 Jonathan Wakely <jwakely@redhat.com>
5400 * include/std/variant: Add comment to #include.
5402 2024-04-22 Matthias Kretz <m.kretz@gsi.de>
5405 * include/experimental/bits/simd_builtin.h
5406 (_SimdBase2::operator __vector_type_t): There is no __builtin()
5407 function in _SimdWrapper, instead use its conversion operator.
5408 * testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc: New
5411 2024-04-22 Matthias Kretz <m.kretz@gsi.de>
5413 * include/experimental/bits/simd.h: Ignore -Wnarrowing for
5415 (__int_for_sizeof): Replace tautological compare with checking
5416 for invalid template parameter value.
5417 * include/experimental/bits/simd_builtin.h (__extract_part):
5418 Remove tautological compare by combining two static_assert.
5420 2024-04-22 Jakub Jelinek <jakub@redhat.com>
5422 * testsuite/17_intro/names.cc (d, f): Undefine on s390*-linux*.
5423 * testsuite/17_intro/headers/c++1998/all_attributes.cc (packed): Don't
5425 * testsuite/17_intro/headers/c++2011/all_attributes.cc (packed):
5427 * testsuite/17_intro/headers/c++2014/all_attributes.cc (packed):
5429 * testsuite/17_intro/headers/c++2017/all_attributes.cc (packed):
5431 * testsuite/17_intro/headers/c++2020/all_attributes.cc (packed):
5434 2024-04-19 Jonathan Wakely <jwakely@redhat.com>
5436 * include/bits/refwrap.h (operator<=>): Simplify constraints.
5438 2024-04-19 Jonathan Wakely <jwakely@redhat.com>
5441 * src/c++20/tzdb.cc (do_locate_zone): Support links that have
5442 another link as their target.
5443 * testsuite/std/time/tzdb/1.cc: Check that all zones and links
5444 can be found by locate_zone.
5445 * testsuite/std/time/tzdb/links.cc: New test.
5447 2024-04-18 Alexandre Oliva <oliva@adacore.com>
5449 * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
5452 2024-04-18 Alexandre Oliva <oliva@adacore.com>
5454 * testsuite/20_util/from_chars/8.cc: Skip float128_t testing
5456 * testsuite/20_util/to_chars/float128_c++23.cc: Xfail run on
5459 2024-04-18 Alexandre Oliva <oliva@adacore.com>
5461 * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Define
5464 2024-04-17 Jonathan Wakely <jwakely@redhat.com>
5466 * include/std/ostream (println(ostream&)): Define new overload.
5467 * include/std/print (println(FILE*), println()): Likewise.
5468 * testsuite/27_io/basic_ostream/print/2.cc: New test.
5469 * testsuite/27_io/print/1.cc: Remove unused header.
5470 * testsuite/27_io/print/3.cc: New test.
5472 2024-04-17 Matthias Kretz <m.kretz@gsi.de>
5474 * include/experimental/bits/numeric_traits.h: Add include guard.
5476 2024-04-17 Matthias Kretz <m.kretz@gsi.de>
5479 * include/experimental/bits/simd_builtin.h
5480 (_SimdImplBuiltin::_S_load, _S_store): Fall back to copying
5481 scalars if the memory type cannot be vectorized for the target.
5483 2024-04-16 Jonathan Wakely <jwakely@redhat.com>
5485 * config/locale/dragonfly/numeric_members.cc: Fix typos in
5487 * config/locale/gnu/numeric_members.cc: Likewise.
5489 2024-04-15 Jonathan Wakely <jwakely@redhat.com>
5491 * doc/xml/manual/abi.xml: Replace "<next>" with "14.1.0".
5492 * doc/html/manual/abi.html: Regenerate.
5494 2024-04-15 Jonathan Wakely <jwakely@redhat.com>
5496 * include/bits/refwrap.h (reference_wrapper): Add comparison
5497 operators as proposed by P2944R3.
5498 * include/bits/version.def (reference_wrapper): Define.
5499 * include/bits/version.h: Regenerate.
5500 * include/std/functional: Enable feature test macro.
5501 * testsuite/20_util/reference_wrapper/compare.cc: New test.
5503 2024-04-15 Jonathan Wakely <jwakely@redhat.com>
5506 * include/bits/stl_pair.h (operator==, operator<=>): Support
5507 heterogeneous comparisons, as per LWG 3865.
5508 * testsuite/20_util/pair/comparison_operators/lwg3865.cc: New
5511 2024-04-15 Jonathan Wakely <jwakely@redhat.com>
5514 * src/c++98/istream.cc (istream::ignore(streamsize, int_type)):
5515 Treat all negative delimiter values as eof().
5516 * testsuite/27_io/basic_istream/ignore/char/93672.cc: New test.
5517 * testsuite/27_io/basic_istream/ignore/wchar_t/93672.cc: New
5520 2024-04-15 Andreas Schwab <schwab@suse.de>
5522 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
5524 2024-04-13 H.J. Lu <hjl.tools@gmail.com>
5526 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
5529 2024-04-11 Jakub Jelinek <jakub@redhat.com>
5531 * doc/xml/manual/abi.xml: Add latest library versions.
5532 * doc/html/manual/abi.html: Regenerate.
5534 2024-04-11 Jakub Jelinek <jakub@redhat.com>
5536 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
5537 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
5538 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
5539 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
5540 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
5541 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
5542 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
5543 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update.
5544 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5546 2024-04-11 Jonathan Wakely <jwakely@redhat.com>
5549 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Move new exports for
5550 __basic_file::native_handle to ...
5551 (GLIBCXX_3.4.33): ... here. Adjust to not match wchar_t
5552 specialization, which isn't used.
5553 * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.33 and update
5554 latest version check.
5556 2024-04-11 Jakub Jelinek <jakub@redhat.com>
5558 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
5559 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
5560 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
5561 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
5562 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
5563 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
5564 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
5565 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update.
5566 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5568 2024-04-10 Jonathan Wakely <jwakely@redhat.com>
5570 * testsuite/27_io/manipulators/extended/get_time/char/2.cc:
5571 Adjust input string so that it matches %a with or without a
5573 * testsuite/std/time/year_month_day/io.cc: Adjust expected
5574 format for %x in the fr_FR locale.
5576 2024-04-10 Jonathan Wakely <jwakely@redhat.com>
5578 * src/c++17/fs_ops.cc (remove_all) [__FreeBSD__ || __DragonFly__]:
5579 Check for EMLINK as well as ELOOP.
5580 [__NetBSD__]: Check for EFTYPE as well as ELOOP.
5582 2024-04-09 Jonathan Wakely <jwakely@redhat.com>
5585 * include/bits/chrono_io.h (_Parser::operator()) <'S'>: Use
5586 stream extraction if std::from_chars is not available.
5588 2024-04-08 Jonathan Wakely <jwakely@redhat.com>
5591 * include/bits/unicode.h (_Utf8_view) [!__cpp_char8_t]: Define
5592 using char instead of char8_t.
5593 * testsuite/ext/unicode/view.cc: Use u8""sv literals to create
5594 string views, instead of std::u8string_view.
5596 2024-04-08 Jonathan Wakely <jwakely@redhat.com>
5598 * testsuite/20_util/integer_comparisons/equal_neg.cc: Use
5599 no-opts selector for errors that depend on -fchar8_t.
5600 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
5602 * testsuite/20_util/integer_comparisons/greater_neg.cc:
5604 * testsuite/20_util/integer_comparisons/in_range_neg.cc:
5606 * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
5608 * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise.
5609 * testsuite/20_util/integer_comparisons/not_equal_neg.cc:
5611 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc: Skip
5612 if -fno-char8_t is used.
5613 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
5615 * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc:
5617 * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc:
5619 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: Use
5620 char for u8 literal if char8_t is not available.
5621 * testsuite/27_io/headers/iosfwd/synopsis.cc: Check
5623 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
5624 * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc:
5625 Remove check for _GLIBCXX_USE_CHAR8_T.
5627 2024-04-08 Jonathan Wakely <jwakely@redhat.com>
5629 * testsuite/20_util/from_chars/1_neg.cc: Add char8_t cases,
5630 using a struct of that name if -fno-char8_t is active.
5631 * testsuite/20_util/from_chars/1_c++20_neg.cc: Removed.
5633 2024-04-03 Jonathan Wakely <jwakely@redhat.com>
5636 * include/std/optional (operator<=>(const optional<T>&, const U&)):
5637 Reverse order of three_way_comparable_with template arguments.
5638 * testsuite/20_util/optional/relops/104606.cc: New test.
5640 2024-04-02 Jonathan Wakely <jwakely@redhat.com>
5643 * include/bits/unicode.h (_Utf8_view): Guard with check for
5644 char8_t being enabled.
5645 (__literal_encoding_is_unicode): Guard use of char8_t with check
5646 for it being enabled.
5647 * testsuite/std/format/functions/114519.cc: New test.
5649 2024-04-02 Patrick Palka <ppalka@redhat.com>
5651 * include/std/ranges (ranges::__detail::_Empty): Rename to ...
5652 (ranges::__detail::_Absent): ... this. Turn into a template
5653 parameterized by the absent type _Tp and discriminator _Disc.
5654 (ranges::__detail::__maybe_present_t): Add an optional
5655 discriminator parameter.
5656 (slide_view::_M_cached_begin): Pass a discriminator argument to
5658 (slide_view::_M_cached_end): Likewise.
5659 * testsuite/std/ranges/adaptors/sizeof.cc: Verify the size of
5660 slide_view<V> is 3 instead 4 pointers.
5662 2024-04-02 Jakub Jelinek <jakub@redhat.com>
5664 * acinclude.m4: Fix duplicated words; file file -> file can.
5665 * configure.host: Fix duplicated words; the the -> the.
5667 2024-03-29 Arsen Arsenović <arsen@aarsen.me>
5669 * testsuite/24_iterators/range_generators/01.cc: Drop GCC
5670 Runtime Library Exception.
5671 * testsuite/24_iterators/range_generators/02.cc: Drop GCC
5672 Runtime Library Exception.
5673 * testsuite/24_iterators/range_generators/copy.cc: Drop GCC
5674 Runtime Library Exception.
5675 * testsuite/24_iterators/range_generators/except.cc: Drop GCC
5676 Runtime Library Exception.
5677 * testsuite/24_iterators/range_generators/subrange.cc: Drop GCC
5678 Runtime Library Exception.
5679 * testsuite/24_iterators/range_generators/synopsis.cc: Drop GCC
5680 Runtime Library Exception.
5681 * testsuite/24_iterators/range_generators/iter_deref_return.cc:
5682 Drop GCC Runtime Library Exception from the "You should have
5683 received a copy" paragraph.
5685 2024-03-27 Matthias Kretz <m.kretz@gsi.de>
5687 * include/experimental/bits/simd_x86.h (_S_masked_unary):
5688 Cast inputs < 16 bytes to 16 byte vectors before calling the
5689 right subtraction builtin. Before returning, truncate to the
5692 2024-03-27 Matthias Kretz <m.kretz@gsi.de>
5694 * include/experimental/bits/simd_x86.h (_S_masked_unary): Call
5695 the 4- and 8-byte variants of __builtin_ia32_subp[ds] without
5696 rounding direction argument.
5698 2024-03-27 Srinivas Yadav Singanaboina <vasu.srinivasvasu.14@gmail.com>
5700 * include/Makefile.am: Add simd_sve.h.
5701 * include/Makefile.in: Add simd_sve.h.
5702 * include/experimental/bits/simd.h: Add new SveAbi.
5703 * include/experimental/bits/simd_builtin.h: Use
5704 __no_sve_deduce_t to support existing Neon Abi.
5705 * include/experimental/bits/simd_converter.h: Convert
5706 sequentially when sve is available.
5707 * include/experimental/bits/simd_detail.h: Define sve
5709 * include/experimental/bits/simd_math.h: Fallback frexp
5710 to execute sequntially when sve is available, to handle
5711 fixed_size_simd return type that always uses sve.
5712 * include/experimental/simd: Include bits/simd_sve.h.
5713 * testsuite/experimental/simd/tests/bits/main.h: Enable
5714 testing for sve128, sve256, sve512.
5715 * include/experimental/bits/simd_sve.h: New file.
5717 2024-03-26 Arsen Arsenović <arsen@aarsen.me>
5719 * include/std/generator (generator::_Iterator::operator*): Fix
5721 * testsuite/24_iterators/range_generators/iter_deref_return.cc:
5724 2024-03-26 Arsen Arsenović <arsen@aarsen.me>
5726 * include/std/generator: Fix _V badname.
5728 2024-03-26 Jonathan Wakely <jwakely@redhat.com>
5730 * testsuite/19_diagnostics/stacktrace/current.cc: Check for
5731 __cpp_lib_stacktrace instead of check for stacktrace ET.
5732 * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
5733 * testsuite/19_diagnostics/stacktrace/hash.cc: Likewise.
5734 * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
5735 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
5736 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
5737 * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
5738 * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc:
5740 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
5743 2024-03-26 Jonathan Wakely <jwakely@redhat.com>
5745 * testsuite/lib/dg-options.exp (dg-require-cpp-feature-test):
5747 * testsuite/lib/libstdc++.exp (check_v3_target_cpp_feature_test):
5749 * testsuite/std/text_encoding/cons.cc: Use new directive to skip
5750 the test if the __cpp_lib_text_encoding feature test macro is
5752 * testsuite/std/text_encoding/requirements.cc: Likewise.
5754 2024-03-25 Jonathan Wakely <jwakely@redhat.com>
5756 * testsuite/std/text_encoding/requirements.cc: #undef the
5759 2024-03-23 Jonathan Wakely <jwakely@redhat.com>
5761 * include/std/format (formatter): Disable specializations that
5762 would allow sequences of narrow characters to be formatted as
5763 wchar_t without conversion, as per LWG 3944.
5764 * testsuite/std/format/formatter/lwg3944.cc: New test.
5766 2024-03-23 Jonathan Wakely <jwakely@redhat.com>
5768 * include/bits/utility.h (__is_in_place_index_v): New variable
5770 * include/std/variant (__not_in_place_tag): Define in terms of
5771 variable templates not a class template.
5773 2024-03-23 Jonathan Wakely <jwakely@redhat.com>
5776 * include/std/string_view (operator==): Use std::type_identity_t
5777 in C++20 instead of our own __type_identity_t.
5779 2024-03-22 Jonathan Wakely <jwakely@redhat.com>
5782 * include/bits/hashtable.h (_Hashtable::_M_reinsert_node): Call
5783 release() on node handle instead of just zeroing its pointer.
5784 (_Hashtable::_M_reinsert_node_multi): Likewise.
5785 (_Hashtable::_M_merge_unique): Likewise.
5786 (_Hashtable::_M_merge_multi): Likewise.
5787 * include/bits/node_handle.h (_Node_handle_common::release()):
5788 New member function.
5789 (_Node_handle_common::_Optional_alloc::_M_empty): Remove
5790 unnecessary union member.
5791 (_Node_handle_common): Declare _Hashtable as a friend.
5792 * include/bits/stl_tree.h (_Rb_tree::_M_reinsert_node_unique):
5793 Call release() on node handle instead of just zeroing its
5795 (_Rb_tree::_M_reinsert_node_equal): Likewise.
5796 (_Rb_tree::_M_reinsert_node_hint_unique): Likewise.
5797 (_Rb_tree::_M_reinsert_node_hint_equal): Likewise.
5798 * testsuite/23_containers/multiset/modifiers/114401.cc: New test.
5799 * testsuite/23_containers/set/modifiers/114401.cc: New test.
5800 * testsuite/23_containers/unordered_multiset/modifiers/114401.cc: New test.
5801 * testsuite/23_containers/unordered_set/modifiers/114401.cc: New test.
5803 2024-03-22 Jonathan Wakely <jwakely@redhat.com>
5806 * include/bits/allocator.h (allocator<cv T>): Add default
5807 constructor to partial specializations for cv-qualified types.
5808 * include/bits/stl_vector.h (_Vector_impl::_Vector_impl()):
5809 Constrain so that it's only present if the allocator is default
5811 * include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()):
5813 * testsuite/23_containers/vector/cons/113841.cc: New test.
5815 2024-03-22 Jonathan Wakely <jwakely@redhat.com>
5817 * include/bits/stl_construct.h (destroy_at, construct_at): Guard
5818 with feature test macros instead of just __cplusplus.
5820 2024-03-22 Jonathan Wakely <jwakely@redhat.com>
5822 * include/bits/version.def (generator, tuple_like): Move earlier
5824 * include/bits/version.h: Regenerate.
5826 2024-03-22 Jonathan Wakely <jwakely@redhat.com>
5829 * include/std/functional (bind): Use __invoke_result_t instead
5831 * include/std/type_traits (__invoke_result_t): New alias
5833 * testsuite/20_util/bind/ref_neg.cc: Adjust prune pattern.
5835 2024-03-20 François Dumont <fdumont@gcc.gnu.org>
5837 * include/bits/version.def (null_iterators): Remove extra_cond.
5838 * include/bits/version.h: Regenerate.
5840 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
5843 * include/bits/random.tcc (binomial_distribution::param_type):
5844 Ensure arithmetic is done as type double.
5845 * testsuite/26_numerics/random/binomial_distribution/114359.cc: New test.
5847 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
5850 * include/pstl/parallel_backend_tbb.h (TBB_SUPPRESS_DEPRECATED_MESSAGES):
5851 Define before including <tbb/task.h> then undef afterwards.
5853 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
5855 * include/Makefile.am [MAINTAINER_MODE]: Add target to
5856 automatically update <bits/version.h>.
5857 * include/Makefile.in: Regenerate.
5859 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
5861 * doc/xml/manual/build_hacking.xml: Document generated files.
5862 Update list of convenience libraries and sub-directories under
5864 * doc/html/*: Regenerate.
5866 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
5868 * include/bits/text_encoding-data.h: Regenerate.
5869 * include/bits/unicode-data.h: Regenerate.
5870 * scripts/gen_text_encoding_data.py: Fix header of generated
5871 file to name the correct script.
5873 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
5875 * testsuite/util/pstl/test_utils.h: Fix typos in comments.
5877 2024-03-19 Jonathan Wakely <jwakely@redhat.com>
5880 * include/bits/stl_bvector.h (_M_allocate): Use allocator's
5881 construct function to begin lifetime of words.
5883 2024-03-19 Iain Sandoe <iain@sandoe.co.uk>
5885 * testsuite/lib/dg-options.exp (atomic_link_flags): Emit a -B
5886 option for the path to the uninstalled libatomic.
5888 2024-03-19 Iain Sandoe <iain@sandoe.co.uk>
5890 * testsuite/lib/libstdc++.exp (v3_target_compile): Instead of
5891 /dev/null, use a temporary file for test executables on Darwin.
5893 2024-03-18 François Dumont <fdumont@gcc.gnu.org>
5895 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_can_advance):
5896 Accept 0 offset advance on value-initialized iterator.
5897 * testsuite/23_containers/vector/debug/n3644.cc: New test case.
5899 2024-03-18 François Dumont <fdumont@gcc.gnu.org>
5901 * include/debug/safe_local_iterator.tcc
5902 (_Safe_local_iterator::_M_valid_range): Add _M_value_initialized and
5904 * testsuite/23_containers/unordered_set/debug/114316.cc: New test case.
5906 2024-03-17 François Dumont <fdumont@gcc.gnu.org>
5909 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range):
5910 First check if both iterators are value-initialized before checking if
5912 * testsuite/23_containers/set/debug/114316.cc: New test case.
5913 * testsuite/23_containers/vector/debug/114316.cc: New test case.
5915 2024-03-14 Jonathan Wakely <jwakely@redhat.com>
5918 * include/std/format (_Scanner::_M_scan): Pass correct length to
5920 * testsuite/std/format/functions/format.cc: Check negative
5921 integers with empty format-spec.
5923 2024-03-14 Jonathan Wakely <jwakely@redhat.com>
5925 * include/bits/stl_algo.h (find_end, all_of, none_of, any_of)
5926 (find_if_not, is_partitioned, partition_point, remove)
5927 (remove_if, unique, lower_bound, upper_bound, equal_range)
5928 (binary_search, includes, is_sorted, is_sorted_until, minmax)
5929 (minmax_element, is_permutation, clamp, find_if, find_first_of)
5930 (adjacent_find, count, count_if, search, search_n, min_element)
5931 (max_element): Add nodiscard attribute.
5932 * include/bits/stl_algobase.h (min, max, lower_bound, equal)
5933 (lexicographical_compare, lexicographical_compare_three_way)
5934 (mismatch): Likewise.
5935 * include/bits/stl_heap.h (is_heap, is_heap_until): Likewise.
5936 * testsuite/25_algorithms/equal/debug/1_neg.cc: Add dg-warning.
5937 * testsuite/25_algorithms/equal/debug/2_neg.cc: Likewise.
5938 * testsuite/25_algorithms/equal/debug/3_neg.cc: Likewise.
5939 * testsuite/25_algorithms/find_first_of/concept_check_1.cc:
5941 * testsuite/25_algorithms/is_permutation/2.cc: Likewise.
5942 * testsuite/25_algorithms/lexicographical_compare/71545.cc:
5944 * testsuite/25_algorithms/lower_bound/33613.cc: Likewise.
5945 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc:
5947 * testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc:
5949 * testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc:
5951 * testsuite/25_algorithms/minmax/3.cc: Likewise.
5952 * testsuite/25_algorithms/search/78346.cc: Likewise.
5953 * testsuite/25_algorithms/search_n/58358.cc: Likewise.
5954 * testsuite/25_algorithms/unique/1.cc: Likewise.
5955 * testsuite/25_algorithms/unique/11480.cc: Likewise.
5956 * testsuite/25_algorithms/upper_bound/33613.cc: Likewise.
5957 * testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc:
5959 * testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc:
5961 * testsuite/ext/concept_checks.cc: Likewise.
5962 * testsuite/ext/is_heap/47709.cc: Likewise.
5963 * testsuite/ext/is_sorted/cxx0x.cc: Likewise.
5965 2024-03-14 xndcn <xndchn@gmail.com>
5967 * include/bits/atomic_base.h (__atomic_float::__atomic_float(Fp)):
5969 * testsuite/29_atomics/atomic_float/compare_exchange_padding.cc:
5972 2024-03-14 Jonathan Wakely <jwakely@redhat.com>
5975 * doc/xml/manual/status_cxx2011.xml: Remove mention of Linux in
5976 note about std::call_once.
5977 * doc/xml/manual/status_cxx2014.xml: Likewise.
5978 * doc/xml/manual/status_cxx2017.xml: Likewise.
5979 * doc/html/manual/status.html: Regenerate.
5981 2024-03-14 Jonathan Wakely <jwakely@redhat.com>
5983 * doc/xml/manual/status_cxx2023.xml: Update C++23 status table.
5984 * doc/html/manual/status.html: Regenerate.
5985 * include/bits/version.def: Fix typo in comment.
5987 2024-03-13 Jonathan Wakely <jwakely@redhat.com>
5989 * testsuite/libstdc++-prettyprinters/cxx11.cc: Move custom_cat
5992 2024-03-13 Jonathan Wakely <jwakely@redhat.com>
5994 * doc/xml/manual/debug.xml: Improve docs on debug builds and
5995 using ASan. Mention _GLIBCXX_ASSERTIONS. Reorder sections to put
5996 the most relevant ones first.
5997 * doc/xml/manual/using.xml: Add comma.
5998 * doc/html/*: Regenerate.
6000 2024-03-13 Jonathan Wakely <jwakely@redhat.com>
6002 * doc/xml/manual/debug.xml: Document that concept checking might
6003 be removed in future.
6004 * doc/xml/manual/extensions.xml: Likewise.
6006 2024-03-09 Jonathan Wakely <jwakely@redhat.com>
6009 * include/bits/chrono_io.h (_Parser::operator()): Assume
6010 hours(0) for a time_point, so that a time is not required
6012 * testsuite/std/time/parse/114240.cc: New test.
6014 2024-03-09 Jonathan Wakely <jwakely@redhat.com>
6017 * include/bits/chrono_io.h (_Parser::_M_is_leap_second): New
6019 (_Parser::_M_reserved): Reserve padding bits for future use.
6020 (_Parser::operator()): Set _M_is_leap_second if %S reads 60s.
6021 (from_stream): Only allow _M_is_leap_second for utc_time and
6022 local_time. Adjust arithmetic for utc_time so that leap seconds
6023 are preserved. Use time_point_cast to convert to a possibly
6024 lower-precision result type.
6025 * testsuite/std/time/parse.cc: Move to ...
6026 * testsuite/std/time/parse/parse.cc: ... here.
6027 * testsuite/std/time/parse/114279.cc: New test.
6029 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
6031 * include/bits/chrono_io.h (_Parser::operator()): Use
6032 std::from_chars to parse fractional seconds.
6034 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
6037 * include/bits/chrono_io.h (_Parser::operator()): Remove
6038 redundant uses of duration_cast. Use chrono::round to convert
6039 long double value to durations with integer representations.
6040 Check represenation type when deciding whether to skip parsing
6042 * testsuite/20_util/duration/114244.cc: New test.
6043 * testsuite/20_util/duration/io.cc: Check that a floating-point
6044 duration with ratio<1> precision can be parsed.
6046 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
6049 * include/bits/version.def (atomic_lock_free_type_aliases): Add
6050 extra_cond to check for at least one always-lock-free type.
6051 * include/bits/version.h: Regenerate.
6052 * include/std/atomic (atomic_signed_lock_free)
6053 (atomic_unsigned_lock_free): Only use always-lock-free types.
6054 * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): Don't use
6055 atomic counter if lock-free aliases aren't available.
6056 * testsuite/29_atomics/atomic/lock_free_aliases.cc: XFAIL for
6057 targets without lock-free word-size compare_exchange.
6059 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
6061 * include/std/chrono (__get_leap_second_info): Update expiry
6062 time for hardcoded list of leap seconds.
6063 * testsuite/std/time/tzdb/leap_seconds.cc: Update comment.
6065 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
6067 * testsuite/23_containers/deque/allocator/default_init.cc: Use
6068 std::memset instead of __builtin_memset.
6069 * testsuite/23_containers/forward_list/allocator/default_init.cc:
6071 * testsuite/23_containers/list/allocator/default_init.cc:
6073 * testsuite/23_containers/map/allocator/default_init.cc:
6075 * testsuite/23_containers/set/allocator/default_init.cc:
6077 * testsuite/23_containers/unordered_map/allocator/default_init.cc:
6079 * testsuite/23_containers/unordered_set/allocator/default_init.cc:
6081 * testsuite/23_containers/vector/allocator/default_init.cc:
6083 * testsuite/23_containers/vector/bool/allocator/default_init.cc:
6085 * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
6087 * testsuite/util/atomic/wait_notify_util.h: Likewise.
6089 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
6091 * include/std/format (_Arg_store::_S_make_elt): Add two
6092 static_assert checks to give more user-friendly error messages.
6093 * testsuite/lib/prune.exp (libstdc++-dg-prune): Prune another
6094 form of "in requirements with" note.
6095 * testsuite/std/format/arguments/args_neg.cc: Check for
6096 user-friendly diagnostics for non-formattable types.
6097 * testsuite/std/format/string_neg.cc: Likewise.
6099 2024-03-04 Jonathan Wakely <jwakely@redhat.com>
6102 * include/std/tuple (tuple::tuple(allocator_arg_t, const Alloc&)):
6103 Add missing overload of allocator-extended default constructor.
6104 (tuple<T1,T2>::tuple(allocator_arg_t, const Alloc&)): Likewise.
6105 * testsuite/20_util/tuple/cons/114147.cc: New test.
6107 2024-02-29 Jonathan Wakely <jwakely@redhat.com>
6109 * include/std/format (basic_format_arg::handle::__maybe_const_t):
6110 Fix condition to check if const type is formattable.
6111 (basic_format_arg::handle::handle(T&)): Remove redundant
6113 * testsuite/std/format/formatter/basic.cc: New test.
6115 2024-02-29 Jonathan Wakely <jwakely@redhat.com>
6118 * include/bits/stl_algobase.h (__is_byte_iter): Replace with ...
6119 (__memcmp_ordered_with): New concept.
6120 (lexicographical_compare_three_way): Use __memcmp_ordered_with
6121 instead of __is_byte_iter. Use correct length for memcmp.
6122 * testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc:
6125 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
6128 * include/experimental/scope (scope_exit scope_fail): Make
6129 destructor unconditionally noexcept.
6130 (scope_sucess): Fix noexcept-specifier.
6131 * testsuite/experimental/scopeguard/114152.cc: New test.
6133 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
6135 * doc/xml/manual/appendix_contributing.xml: Change URLs to use
6137 * doc/html/manual/*: Regenerate.
6139 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
6141 * doc/xml/manual/appendix_contributing.xml: Replace outdated
6142 info on ChangeLog entries.
6143 * doc/html/manual/appendix_contributing.html: Regenerate.
6145 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
6147 * include/bits/stl_bvector.h (vector<bool, A>::at): Add
6149 * include/bits/stl_vector.h (vector<T, A>::at): Likewise.
6150 (operator==, operator<=>, operator<, operator!=, operator>)
6151 (operator<=, operator>=): Likewise.
6152 * include/debug/vector (operator==, operator<=>, operator<)
6153 (operator!=, operator>, operator<=, operator>=): Likewise.
6154 * testsuite/23_containers/vector/nodiscard.cc: New test.
6156 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
6158 * include/bits/atomic_base.h (operator|, operator&): Add
6160 * include/bits/fs_fwd.h (operator&, operator|, operator^)
6161 (operator~): Add nodiscard to overloads for copy_options, perms,
6162 perm_options, and directory_options.
6163 * include/bits/ios_base.h (operator&, operator|, operator^)
6164 (operator~): Add nodiscard and noexcept to overloads for
6165 _Ios_Fmtflags, _Ios_Openmode, and _Ios_Iostate.
6166 (operator|=, operator&=, operator^=): Add constexpr for C++14.
6167 * include/bits/regex_constants.h (operator&, operator|, operator^)
6168 (operator~): Add nodiscard and noexcept to overloads for
6169 syntax_option_type and match_flag_type.
6170 (operator|=, operator&=, operator^=): Add noexcept.
6171 * include/std/charconv (operator&, operator|, operator^)
6172 (operator~): Add nodiscard to overloads for chars_format.
6173 * include/std/future (operator&, operator|, operator^)
6174 (operator~): Add nodiscard for overloads for launch.
6175 (operator&=, operator|=, operator^=): Add constexpr for C++14.
6176 * include/experimental/bits/fs_fwd.h (operator&, operator|)
6177 (operator^, operator~): Add nodiscard to overloads for
6178 copy_options, perms, and directory_options.
6179 * testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc:
6180 Add dg-warning for nodiscard warnings.
6181 * testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc:
6183 * testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc:
6185 * testsuite/27_io/filesystem/operations/bitmask_types.cc:
6188 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
6190 * testsuite/27_io/basic_ostream/print/1.cc: Check error
6192 * testsuite/27_io/print/1.cc: Likewise.
6194 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
6196 * include/std/ostream (vprint_unicode) [__CYGWIN__]: Use POSIX
6197 code path for Cygwin instead of Windows.
6198 * include/std/print (vprint_unicode) [__CYGWIN__]: Likewise.
6199 * testsuite/27_io/basic_ostream/print/1.cc: Only add -lstdc++exp
6200 for *-*-mingw* targets.
6201 * testsuite/27_io/print/1.cc: Likewise.
6203 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
6205 * include/bits/alloc_traits.h: Include <bits/stl_iterator.h> for
6206 __make_move_if_noexcept_iterator.
6208 2024-02-28 Jonathan Wakely <jwakely@redhat.com>
6210 * include/std/stacktrace: Add nodiscard attribute to all
6211 functions without side effects.
6213 2024-02-20 François Dumont <fdumont@gcc.gnu.org>
6215 * include/bits/stl_algobase.h (std::__niter_wrap): Add a call to
6216 std::__niter_base on res iterator.
6218 2024-02-19 Iain Sandoe <iain@sandoe.co.uk>
6219 Jonathan Wakely <jwakely@redhat.com>
6222 * configure: Regenerate.
6223 * configure.ac: Detect if we are building for Darwin.
6224 * libsupc++/Makefile.am: If we are building for Darwin, then
6225 suppress hot/cold partitioning for the array allocators.
6226 * libsupc++/Makefile.in: Regenerated.
6228 2024-02-17 François Dumont <fdumont@gcc.gnu.org>
6230 * include/bits/stl_algobase.h (std::__niter_base): Redefine the overload
6231 definitions for __gnu_debug::_Safe_iterator.
6232 * include/debug/safe_iterator.tcc (std::__niter_base): Adapt declarations.
6234 2024-02-16 Jonathan Wakely <jwakely@redhat.com>
6238 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
6241 2024-02-16 Jonathan Wakely <jwakely@redhat.com>
6245 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
6248 2024-02-16 Jonathan Wakely <jwakely@redhat.com>
6250 * doc/xml/manual/debug_mode.xml: Update docs for backtraces.
6251 * doc/html/manual/debug_mode_using.html: Regenerate.
6253 2024-02-16 Jonathan Wakely <jwakely@redhat.com>
6255 * doc/xml/manual/test.xml: Fix spelling of <envar> elements.
6256 * doc/html/manual/test.html: Regenerate.
6258 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
6261 * include/std/bitset (bitset::operator>>=): Remove redundant
6262 call to _M_do_sanitize.
6264 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
6267 * include/std/bitset (bitset::set()): Use memset instead of a
6268 loop over the individual words.
6270 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
6273 * include/bits/stl_algo.h (__rotate): Use unsigned values for
6276 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
6279 * include/std/valarray (valarray::operator=(const _Expr&)):
6280 Use loop to copy instead of __valarray_copy with _Array.
6281 * testsuite/26_numerics/valarray/99117.cc: New test.
6283 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
6285 * src/c++20/tzdata.zi: Import new file from 2024a release.
6286 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
6287 Update expiry date for leap seconds list.
6289 2024-02-15 Jonathan Wakely <jwakely@redhat.com>
6292 * include/bits/random.h [!__SIZEOF_INT128__] (_Select_uint_least_t):
6293 Define specialization for 64-bit generators with
6294 non-power-of-two modulus and large constants.
6295 (__mod): Use if constexpr unconditionally.
6296 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
6298 * testsuite/26_numerics/random/linear_congruential_engine/87744.cc:
6301 2024-02-14 Gerald Pfeifer <gerald@pfeifer.com>
6303 * doc/xml/manual/status_cxx2023.xml: Fix C++ item p2442 to be
6305 * doc/html/manual/status.html: Regenerate.
6307 2024-02-12 Paul Keir <paul.keir@uws.ac.uk>
6310 * include/bits/basic_string.h (basic_string::operator=): Use
6311 _M_use_local_data() instead of _M_local_buf on the moved-from
6313 * testsuite/21_strings/basic_string/modifiers/constexpr.cc
6314 (test_move): New test.
6316 2024-02-09 Ken Matsui <kmatsui@gcc.gnu.org>
6318 * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_SAME):
6320 * include/std/type_traits (is_same): Use
6321 _GLIBCXX_USE_BUILTIN_TRAIT instead of
6322 _GLIBCXX_HAVE_BUILTIN_IS_SAME.
6323 (is_same_v): Likewise.
6325 2024-02-08 Jonathan Wakely <jwakely@redhat.com>
6327 * include/bits/shared_ptr_atomic.h: Fix typo in comment.
6329 2024-02-08 Jonathan Wakely <jwakely@redhat.com>
6332 * include/bits/gslice.h (operator=): Add comment about lack of
6333 self-assignment check.
6335 2024-02-08 Jonathan Wakely <jwakely@redhat.com>
6337 * include/tr2/type_traits (bases, direct_bases): Use
6338 __has_builtin to check if required built-ins are supported.
6340 2024-02-07 Patrick Palka <ppalka@redhat.com>
6344 * include/bits/stl_pair.h (tuple_element): Add forward
6345 declaration of the partial specialization for tuple.
6347 2024-02-06 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
6349 * testsuite/lib/libstdc++.exp: Use "nul" for Windows, "/dev/null"
6350 for other environments.
6352 2024-02-04 Jonathan Wakely <jwakely@redhat.com>
6354 * include/std/format (__format::_Spec::_M_reserved): Define new
6355 bit-field members to reserve padding bits for future extensions.
6357 2024-02-04 Jonathan Wakely <jwakely@redhat.com>
6359 * src/experimental/Makefile.am: Use libstdc++fsconvenience.a
6360 instead of libstdc++fs.a.
6361 * src/experimental/Makefile.in: Regenerate.
6362 * src/filesystem/Makefile.am: Build libstdc++fsconvenience.a as
6364 * src/filesystem/Makefile.in: Regenerate.
6366 2024-02-04 Jonathan Wakely <jwakely@redhat.com>
6368 * include/bits/text_encoding-data.h: Regenerate.
6369 * include/bits/unicode-data.h: Regenerate.
6370 * scripts/gen_text_encoding_data.py: Add copyright and license
6373 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
6376 * include/bits/std_function.h (__function_guide_helper): Add
6377 partial specialization for explicit object member functions, as
6379 * testsuite/20_util/function/cons/deduction_c++23.cc: Check
6380 explicit object member functions.
6381 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
6384 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
6386 * testsuite/17_intro/names.cc [_AIX]: Undefine "u".
6388 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
6390 * include/experimental/internet (network_v6::network): Define.
6391 (network_v6::hosts): Finish implementing.
6392 (network_v6::to_string): Do not concatenate std::string to
6393 arbitrary std::basic_string specialization.
6394 * testsuite/experimental/net/internet/network/v6/cons.cc: New
6397 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
6400 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: Fix
6401 comparison function to use less-than instead of equality.
6403 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
6406 * testsuite/util/pstl/test_utils.h (reverse_invoker): Do not use
6407 perfect forwarding for iterator arguments.
6409 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
6411 * include/std/string_view (basic_string_view(R&&)): Remove
6412 constraint that traits_type must be the same, as per LWG 3857.
6413 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
6414 Explicit conversion between different specializations should be
6416 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
6419 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
6421 * include/std/syncstream (basic_osyncstream::operator=): Remove
6422 noexcept, as per LWG 3867.
6424 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
6426 * include/std/generator (promise_type::yield_value): Remove
6427 noexcept from fourth overload, as per LWG 3894.
6429 2024-02-01 Patrick Palka <ppalka@redhat.com>
6433 * include/bits/ranges_util.h (__detail::__pair_like): Don't
6434 define in C++23 mode.
6435 (__detail::__pair_like_convertible_from): Adjust as per P2165R4.
6436 (__detail::__is_subrange<subrange>): Moved from <ranges>.
6437 (__detail::__is_tuple_like_v<subrange>): Likewise.
6438 * include/bits/stl_iterator.h: Include <bits/utility.h> for
6440 (__different_from): Move to <concepts>.
6441 (__iter_key_t): Adjust for C++23 as per P2165R4.
6442 (__iter_val_t): Likewise.
6443 * include/bits/stl_pair.h (pair, array): Forward declare.
6444 (get): Forward declare all overloads relevant to P2165R4
6445 tuple-like constructors.
6446 (__is_tuple_v): Define for C++23.
6447 (__is_tuple_like_v): Define for C++23.
6448 (__tuple_like): Define for C++23 as per P2165R4.
6449 (__pair_like): Define for C++23 as per P2165R4.
6450 (__eligibile_tuple_like): Define for C++23.
6451 (__eligibile_pair_like): Define for C++23.
6452 (pair::_S_constructible_from_pair_like): Define for C++23.
6453 (pair::_S_convertible_from_pair_like): Define for C++23.
6454 (pair::_S_dangles_from_pair_like): Define for C++23.
6455 (pair::pair): Define overloads taking a tuple-like type for
6456 C++23 as per P2165R4.
6457 (pair::_S_assignable_from_tuple_like): Define for C++23.
6458 (pair::_S_const_assignable_from_tuple_like): Define for C++23.
6459 (pair::operator=): Define overloads taking a tuple-like type for
6460 C++23 as per P2165R4.
6461 * include/bits/utility.h (ranges::__detail::__is_subrange):
6462 Moved from <ranges>.
6463 * include/bits/version.def (tuple_like): Define for C++23.
6464 * include/bits/version.h: Regenerate.
6465 * include/std/concepts (__different_from): Moved from
6466 <bits/stl_iterator.h>.
6467 (ranges::__swap::__adl_swap): Clarify which __detail namespace.
6468 * include/std/map (__cpp_lib_tuple_like): Define C++23.
6469 * include/std/ranges (__detail::__is_subrange): Moved to
6471 (__detail::__is_subrange<subrange>): Moved to <bits/ranges_util.h>
6472 (__detail::__has_tuple_element): Adjust for C++23 as per P2165R4.
6473 (__detail::__tuple_or_pair): Remove as per P2165R4. Replace all
6474 uses with plain tuple as per P2165R4.
6475 * include/std/tuple (__cpp_lib_tuple_like): Define for C++23.
6476 (__tuple_like_tag_t): Define for C++23.
6477 (__tuple_cmp): Forward declare for C++23.
6478 (_Tuple_impl::_Tuple_impl): Define overloads taking
6479 __tuple_like_tag_t and a tuple-like type for C++23.
6480 (_Tuple_impl::_M_assign): Likewise.
6481 (tuple::__constructible_from_tuple_like): Define for C++23.
6482 (tuple::__convertible_from_tuple_like): Define for C++23.
6483 (tuple::__dangles_from_tuple_like): Define for C++23.
6484 (tuple::tuple): Define overloads taking a tuple-like type for
6485 C++23 as per P2165R4.
6486 (tuple::__assignable_from_tuple_like): Define for C++23.
6487 (tuple::__const_assignable_from_tuple_like): Define for C++23.
6488 (tuple::operator=): Define overloads taking a tuple-like type
6489 for C++23 as per P2165R4.
6490 (tuple::__tuple_like_common_comparison_category): Define for C++23.
6491 (tuple::operator<=>): Define overload taking a tuple-like type
6492 for C++23 as per P2165R4.
6493 (array, get): Forward declarations moved to <bits/stl_pair.h>.
6494 (tuple_cat): Constrain with __tuple_like for C++23 as per P2165R4.
6496 (make_from_tuple): Likewise.
6497 (__tuple_like_common_reference): Define for C++23.
6498 (basic_common_reference): Adjust as per P2165R4.
6499 (__tuple_like_common_type): Define for C++23.
6500 (common_type): Adjust as per P2165R4.
6501 * include/std/unordered_map (__cpp_lib_tuple_like): Define for
6503 * include/std/utility (__cpp_lib_tuple_like): Define for C++23.
6504 * testsuite/std/ranges/zip/1.cc (test01): Adjust to handle pair
6505 and 2-tuple interchangeably.
6507 * testsuite/20_util/pair/p2165r4.cc: New test.
6508 * testsuite/20_util/tuple/p2165r4.cc: New test.
6510 2024-02-01 Patrick Palka <ppalka@redhat.com>
6512 * include/bits/stl_pair.h (pair::_S_const_assignable): Define,
6513 factored out from ...
6514 (pair::operator=): ... the constraints of the const overloads.
6516 2024-02-01 Jonathan Wakely <jwakely@redhat.com>
6518 * include/bits/version.tpl: Do not use def-file-line for each
6519 macro being defined.
6520 * include/bits/version.h: Regenerate.
6522 2024-02-01 Jonathan Wakely <jwakely@redhat.com>
6524 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
6526 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
6528 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
6530 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
6532 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
6534 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
6536 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
6538 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
6540 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
6543 2024-02-01 Jonathan Wakely <jwakely@redhat.com>
6545 * include/experimental/internet (network_v4::to_string()):
6546 Remove lambda and use of resize_and_overwrite.
6548 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
6550 * acinclude.m4 (GLIBCXX_CHECK_TEXT_ENCODING): Use <xlocale.h> if
6551 needed for newlocale.
6552 * configure: Regenerate.
6553 * src/c++26/text_encoding.cc: Use <xlocale.h>.
6555 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
6556 Ewan Higgs <ewan.higgs@gmail.com>
6558 * include/bits/text_encoding-data.h: Regenerate.
6559 * scripts/gen_text_encoding_data.py: Add extra_aliases dict
6561 * testsuite/std/text_encoding/cons.cc: Check "ascii" is known.
6563 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
6565 * doc/xml/manual/using.xml: Update tables of supported headers.
6566 * doc/html/*: Regenerate.
6568 2024-01-31 Jonathan Wakely <jwakely@redhat.com>
6570 * include/std/bitset (_Base_bitset::_M_do_to_ullong): Avoid
6571 -Wshift-count-overflow warning.
6573 2024-01-30 Jonathan Wakely <jwakely@redhat.com>
6575 * testsuite/std/time/clock/gps/io.cc: Fix expected result in
6576 assertion and call test_format() from main.
6578 2024-01-29 François Dumont <fdumont@gcc.gnu.org>
6580 * doc/xml/manual/debug_mode.xml: Link against libstdc++exp.a to use
6581 _GLIBCXX_DEBUG_BACKTRACE macro.
6583 2024-01-24 Huanghui Nie <nnnjkk@gmail.com>
6584 Théo Papadopoulo <papadopoulo@gmail.com>
6586 * include/bits/hashtable.h (_Hahstable<>::_M_remove_bucket_begin): Remove
6587 _M_before_begin check and cleanup implementation.
6589 2024-01-22 Jonathan Wakely <jwakely@redhat.com>
6591 * testsuite/std/time/clock/file/io.cc: Fix expected result in
6592 assertion and call test_format() from main.
6594 2024-01-21 Jonathan Wakely <jwakely@redhat.com>
6597 * include/bits/chrono_io.h (__formatter_chrono::_M_S): Fix
6598 printing of subseconds with floating-point rep.
6599 (__formatter_chrono::_M_format_to_ostream): Do not write
6600 time_point specializations directly to the ostream.
6601 (formatter<chrono::sys_time<D>, C>::parse): Do not allow an
6602 empty chrono-spec if the type fails to meet the constraints for
6603 writing to an ostream with operator<<.
6604 * testsuite/std/time/clock/file/io.cc: Check formatting
6605 non-integral times with empty chrono-specs.
6606 * testsuite/std/time/clock/gps/io.cc: Likewise.
6607 * testsuite/std/time/clock/utc/io.cc: Likewise.
6608 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
6610 2024-01-21 Jonathan Wakely <jwakely@redhat.com>
6612 * include/bits/chrono.h (__file_clock::from_sys)
6613 (__file_clock::to_sys, __file_clock::_S_from_sys)
6614 (__file_clock::_S_to_sys): Use common_type for return type.
6615 * testsuite/std/time/clock/file/members.cc: Check round trip
6616 conversion for time with lower precision that seconds.
6618 2024-01-21 Jonathan Wakely <jwakely@redhat.com>
6621 * include/std/format (__formatter_fp::format): Fix logic for
6623 * testsuite/std/format/functions/format.cc: Check buggy cases of
6624 alternate forms with g presentation type.
6626 2024-01-20 Marek Polacek <polacek@redhat.com>
6629 * include/std/ranges: Add #pragma to disable -Wdangling-reference with
6630 std::ranges::views::__adaptor::operator|.
6632 2024-01-19 Jonathan Wakely <jwakely@redhat.com>
6634 * include/std/format (_Spec::_M_parse_fill_and_align): Do not
6635 use CTAD for _Utf32_view.
6637 2024-01-19 Jonathan Wakely <jwakely@redhat.com>
6640 * include/std/tuple (__glibcxx_no_dangling_refs) [C++17]: Fix
6641 wrong fold-operator.
6642 * testsuite/20_util/tuple/dangling_ref.cc: Check tuples with one
6643 element and three elements. Check allocator-extended
6646 2024-01-19 Patrick Palka <ppalka@redhat.com>
6648 * include/precompiled/stdc++.h [_GLIBCXX_HOSTED]: Include
6649 <print> and <text_encoding> for C++23 and C++26 respectively.
6651 2024-01-18 Patrick Palka <ppalka@redhat.com>
6653 * include/bits/stl_pair.h [__cplusplus > 202002L]:
6654 Guard P2321R2 changes with __glibcxx_ranges_zip instead.
6656 2024-01-18 Patrick Palka <ppalka@redhat.com>
6658 * include/std/tuple [__cplusplus > 202002L]: Guard P2321R2
6659 changes with __cpp_lib_ranges_zip instead.
6661 2024-01-18 Patrick Palka <ppalka@redhat.com>
6664 * include/debug/safe_base.h (_Safe_sequence_base::_M_swap):
6665 Remove _GLIBCXX20_CONSTEXPR from non-inline member function.
6666 * include/debug/safe_iterator.h
6667 (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_BEGIN): Define.
6668 (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_END): Define.
6669 (_Safe_iterator::operator=): Use them around the code path that
6670 defines a variable of type __gnu_cxx::__scoped_lock.
6671 (_Safe_iterator::operator++): Likewise.
6672 (_Safe_iterator::operator--): Likewise.
6673 (_Safe_iterator::operator+=): Likewise.
6674 (_Safe_iterator::operator-=): Likewise.
6675 * testsuite/23_containers/vector/element_access/constexpr.cc
6676 (test_iterators): Test more iterator operations.
6677 * testsuite/23_containers/vector/bool/element_access/constexpr.cc
6678 (test_iterators): Likewise.
6679 * testsuite/std/ranges/adaptors/all.cc (test08) [_GLIBCXX_DEBUG]:
6682 2024-01-18 Jonathan Wakely <jwakely@redhat.com>
6684 * include/bits/unicode.h (__charset_alias_match): Initialize
6685 __var_a and __var_b.
6687 2024-01-18 Jonathan Wakely <jwakely@redhat.com>
6690 * testsuite/std/format/functions/format.cc: Use signed char
6693 2024-01-17 Jonathan Wakely <jwakely@redhat.com>
6696 * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++26 directory.
6697 (GLIBCXX_CHECK_TEXT_ENCODING): Define.
6698 * config.h.in: Regenerate.
6699 * configure: Regenerate.
6700 * configure.ac: Use GLIBCXX_CHECK_TEXT_ENCODING.
6701 * include/Makefile.am: Add new headers.
6702 * include/Makefile.in: Regenerate.
6703 * include/bits/locale_classes.h (locale::encoding): Declare new
6705 * include/bits/unicode.h (__charset_alias_match): New function.
6706 * include/bits/text_encoding-data.h: New file.
6707 * include/bits/version.def (text_encoding): Define.
6708 * include/bits/version.h: Regenerate.
6709 * include/std/text_encoding: New file.
6710 * src/Makefile.am: Add new subdirectory.
6711 * src/Makefile.in: Regenerate.
6712 * src/c++26/Makefile.am: New file.
6713 * src/c++26/Makefile.in: New file.
6714 * src/c++26/text_encoding.cc: New file.
6715 * src/experimental/Makefile.am: Include c++26 convenience
6717 * src/experimental/Makefile.in: Regenerate.
6718 * python/libstdcxx/v6/printers.py (StdTextEncodingPrinter): New
6720 * scripts/gen_text_encoding_data.py: New file.
6721 * testsuite/22_locale/locale/encoding.cc: New test.
6722 * testsuite/ext/unicode/charset_alias_match.cc: New test.
6723 * testsuite/std/text_encoding/cons.cc: New test.
6724 * testsuite/std/text_encoding/members.cc: New test.
6725 * testsuite/std/text_encoding/requirements.cc: New test.
6727 2024-01-17 Jonathan Wakely <jwakely@redhat.com>
6729 * include/bits/unicode.h (_Grapheme_cluster_view): Require view.
6730 Do not use CTAD for _Utf32_view.
6731 (__format_width, __truncate): Do not use CTAD.
6732 (enable_borrowed_range<_Utf_view<T, R>>): Define specialization.
6733 (enable_borrowed_range<_Grapheme_cluster_view<R>>): Likewise.
6735 2024-01-17 Patrick Palka <ppalka@redhat.com>
6737 * include/std/ranges (views::_CartesianProduct::operator()):
6738 Adjust identity case as per P2540R1.
6739 * testsuite/std/ranges/cartesian_product/1.cc (test01):
6740 Adjust expected result of the identity case.
6742 2024-01-15 Patrick Palka <ppalka@redhat.com>
6744 * include/std/variant (__detail::__variant::_Variadic_union):
6745 Add bool __trivially_destructible template parameter.
6746 (__detail::__variant::_Variadic_union::~_Variadic_union):
6747 Use __trivially_destructible in constraints instead.
6748 (__detail::__variant::_Variant_storage): Pass
6749 __trivially_destructible value to _Variadic_union.
6751 2024-01-15 Patrick Palka <ppalka@redhat.com>
6753 * include/bits/stl_iterator.h (const_iterator): Define conversion
6754 operators as per P2836R1.
6755 * include/bits/version.def (ranges_as_const): Update value.
6756 * include/bits/version.h: Regenerate.
6757 * testsuite/24_iterators/const_iterator/1.cc (test04): New test.
6758 * testsuite/std/ranges/adaptors/as_const/1.cc: Adjust expected
6759 value of __cpp_lib_ranges_as_const.
6760 * testsuite/std/ranges/version_c++23.cc: Likewise.
6762 2024-01-15 Jonathan Wakely <jwakely@redhat.com>
6765 * include/std/tuple (__assignable, __is_nothrow_assignable):
6766 Move pre-C++20 definitions adjacent to their use.
6768 2024-01-15 Jonathan Wakely <jwakely@redhat.com>
6771 * include/std/format (basic_format_arg): Use __formattable
6772 variable template instead of __format::__formattable_with
6775 2024-01-15 Jonathan Wakely <jwakely@redhat.com>
6777 * src/c++20/tzdata.zi: Import new file from 2023d release.
6778 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds)
6779 Update expiry date for leap seconds list.
6781 2024-01-13 Jonathan Wakely <jwakely@redhat.com>
6784 * include/std/tuple (tuple): Add checks for dangling references.
6785 Reimplement constraints and constant expressions using C++20
6787 * include/std/type_traits [C++20]
6788 (__is_implicitly_default_constructible_v): Define.
6789 (__is_implicitly_default_constructible): Use variable template.
6790 * testsuite/20_util/tuple/dangling_ref.cc: New test.
6792 2024-01-13 Patrick Palka <ppalka@redhat.com>
6796 * include/bits/version.def (bind_back): Define.
6797 * include/bits/version.h: Regenerate.
6798 * include/std/functional (_Bind_back): Define for C++23.
6799 (bind_back): Likewise.
6800 * testsuite/20_util/function_objects/bind_back/1.cc: New test
6801 (adapted from corresponding bind_front test).
6802 * testsuite/20_util/function_objects/bind_back/111327.cc: Likewise.
6804 2024-01-13 Patrick Palka <ppalka@redhat.com>
6806 * include/std/functional (_Bind_front): Remove =default special
6807 member function declarations.
6808 (_Bind_front::operator()): Implement using C++23 deducing this
6810 * testsuite/20_util/function_objects/bind_front/111327.cc:
6811 Adjust testcase to expect better errors in C++23 mode.
6813 2024-01-13 Patrick Palka <ppalka@redhat.com>
6815 * include/std/ranges (views::__adaptor::operator|): Perform
6816 perfect forwarding of arguments.
6817 (views::__adaptor::_RangeAdaptor::operator()): Pass dummy
6818 first argument to _Partial.
6819 (views::__adaptor::_Partial::_Partial): Likewise. Add dummy
6821 (views::__adaptor::_Pipe::_Pipe): Perform perfect forwarding
6823 (to): Pass dummy first argument to _Partial.
6825 2024-01-13 Jonathan Wakely <jwakely@redhat.com>
6828 * include/bits/random.tcc (subtract_with_carry_engine::seed):
6829 Implement proposed resolution of LWG 4014.
6830 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
6832 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc:
6833 Check for expected result of 64-bit engine with seed that
6834 doesn't fit in 32-bits.
6836 2024-01-12 Jonathan Wakely <jwakely@redhat.com>
6839 * include/std/format (__format::_Runtime_format_string): Add
6840 constructor and disable copy operations.
6841 (basic_format_string(_Runtime_format_string)): Add noexcept and
6842 take parameter by value not rvalue reference.
6843 (runtime_format): Add noexcept.
6844 * testsuite/std/format/runtime_format.cc: Check noexcept. Check
6845 that construction is only possible from prvalues, not xvalues.
6847 2024-01-12 Jonathan Wakely <jwakely@redhat.com>
6850 * include/bits/stl_pair.h (pair::pair(U1&&, U2&&)) [C++23]: Add
6851 default template arguments, as per P1951R1.
6852 * testsuite/20_util/pair/cons/default_tmpl_args.cc: New test.
6854 2024-01-12 Jonathan Wakely <jwakely@redhat.com>
6856 * include/std/format (__format::_Arg_store): Fix PR number in
6857 comment. Simplify preprocessor code.
6859 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
6861 * doc/xml/manual/evolution.xml: Fix spelling.
6862 * doc/html/manual/api.html: Regenerate.
6864 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
6866 * doc/xml/manual/evolution.xml: Document addition of
6868 * doc/html/*: Regenerate.
6870 2024-01-11 Marcus Haehnel <marcus.haehnel@kernkonzept.com>
6872 * libsupc++/eh_unex_handler.cc: Adjust definition type to
6875 2024-01-11 Michael Levine <mlevine55@bloomberg.net>
6877 * include/std/ranges (__glibcxx_want_ranges_iota): Remove
6878 duplicate definition.
6880 2024-01-11 François Dumont <fdumont@gcc.gnu.org>
6883 * src/c++11/debug.cc
6884 (_Safe_iterator_base::_M_attach): Reset _M_version to 0 if attaching to null
6886 (_Safe_iterator_base::_M_attach_single): Likewise.
6887 (_Safe_local_iterator_base::_M_attach): Likewise.
6888 (_Safe_local_iterator_base::_M_attach_single): Likewise.
6889 * testsuite/23_containers/map/debug/112477.cc: New test case.
6891 2024-01-11 Patrick Palka <ppalka@redhat.com>
6893 * include/bits/move.h (__like_t): Define in C++23 mode.
6894 * include/std/ranges (views::__adaptor::Partial::operator()):
6895 Implement using C++23 deducing this when available.
6896 (views::__adaptor::_Pipe::operator()): Likewise.
6897 * testsuite/std/ranges/adaptors/100577.cc: Adjust testcase to
6898 accept new "no match for call" errors issued in C++23 mode.
6899 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
6901 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
6903 * python/libstdcxx/v6/printers.py (StdIntegralConstantPrinter):
6904 Add printer for std::integral_constant.
6905 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it.
6907 2024-01-11 Jonathan Wakely <jwakely@redhat.com>
6910 * libsupc++/new_opa.cc: Prefer to use posix_memalign if
6913 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
6915 * src/filesystem/ops-common.h (stat_type): Use using.
6917 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
6920 * src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&.
6921 * src/filesystem/ops.cc (fs::equivalent): Likewise.
6922 * testsuite/27_io/filesystem/operations/equivalent.cc: Handle
6924 * testsuite/experimental/filesystem/operations/equivalent.cc:
6927 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org>
6929 * include/std/type_traits (is_compound): Do not use __not_.
6930 (is_compound_v): Use is_fundamental_v instead.
6932 2024-01-11 Patrick Palka <ppalka@redhat.com>
6934 * include/bits/utility.h (_Nth_type): Use
6935 _GLIBCXX_USE_BUILTIN_TRAIT instead of __has_builtin.
6937 2024-01-09 Jonathan Wakely <jwakely@redhat.com>
6939 * include/bits/unicode-data.h: Regenerate.
6940 * include/bits/unicode.h (_Utf_iterator::operator++()): Fix off
6942 (__incb_property): Add missing check for values before the
6944 (__is_extended_pictographic): Invert return values to fix
6946 (_Grapheme_cluster_view::_Iterator): Remove second iterator
6947 member and find end of cluster lazily.
6948 * testsuite/ext/unicode/grapheme_view.cc: New test.
6949 * testsuite/ext/unicode/properties.cc: New test.
6950 * testsuite/ext/unicode/view.cc: New test.
6952 2024-01-09 Andreas Schwab <schwab@linux-m68k.org>
6954 * scripts/extract_symvers.in: Require final colon to only match
6955 .dsynsym in the header of the dynamic symtab.
6957 2024-01-09 Jonathan Wakely <jwakely@redhat.com>
6959 * include/bits/chrono_io.h (__formatter_chrono::_M_F): Simplify
6960 handling of string returned from std::format.
6961 (__formatter_chrono::_M_R_T): Likewise.
6963 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
6965 * include/bits/unicode.h (__null_sentinel): Remove.
6966 * testsuite/17_intro/names.cc: Add __null_sentinel.
6968 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
6970 * include/std/format (__format::_Runtime_format_string): Define
6972 (basic_format_string): Add non-consteval constructor for runtime
6974 (runtime_format): Define new function for C++26.
6975 * testsuite/std/format/runtime_format.cc: New test.
6977 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
6979 * include/bits/chrono_io.h (__formatter_chrono): Always use
6980 lvalue arguments to make_format_args.
6981 * include/std/format (make_format_args): Change parameter pack
6982 from forwarding references to lvalue references. Remove use of
6983 remove_reference_t which is now unnecessary.
6984 (format_to, formatted_size): Remove incorrect forwarding of
6986 * include/std/ostream (print): Remove forwarding of arguments.
6987 * include/std/print (print): Likewise.
6988 * testsuite/20_util/duration/io.cc: Use lvalues as arguments to
6990 * testsuite/std/format/arguments/args.cc: Likewise.
6991 * testsuite/std/format/arguments/lwg3810.cc: Likewise.
6992 * testsuite/std/format/functions/format.cc: Likewise.
6993 * testsuite/std/format/functions/vformat_to.cc: Likewise.
6994 * testsuite/std/format/string.cc: Likewise.
6995 * testsuite/std/time/day/io.cc: Likewise.
6996 * testsuite/std/time/month/io.cc: Likewise.
6997 * testsuite/std/time/weekday/io.cc: Likewise.
6998 * testsuite/std/time/year/io.cc: Likewise.
6999 * testsuite/std/time/year_month_day/io.cc: Likewise.
7000 * testsuite/std/format/arguments/args_neg.cc: New test.
7002 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
7004 * include/Makefile.am: Add new headers.
7005 * include/Makefile.in: Regenerate.
7006 * include/bits/unicode.h: New file.
7007 * include/bits/unicode-data.h: New file.
7008 * include/std/format: Include <bits/unicode.h>.
7009 (__literal_encoding_is_utf8): Move to <bits/unicode.h>.
7010 (_Spec::_M_fill): Change type to char32_t.
7011 (_Spec::_M_parse_fill_and_align): Read a Unicode scalar value
7012 instead of a single character.
7013 (__write_padded): Change __fill_char parameter to char32_t and
7014 encode it into the output.
7015 (__formatter_str::format): Use new __unicode::__field_width and
7016 __unicode::__truncate functions.
7017 * include/std/ostream: Adjust namespace qualification for
7018 __literal_encoding_is_utf8.
7019 * include/std/print: Likewise.
7020 * src/c++23/print.cc: Add [[unlikely]] attribute to error path.
7021 * testsuite/ext/unicode/view.cc: New test.
7022 * testsuite/std/format/functions/format.cc: Add missing examples
7023 from the standard demonstrating alignment with non-ASCII
7024 characters. Add examples checking correct handling of extended
7027 2024-01-08 Jonathan Wakely <jwakely@redhat.com>
7029 * include/bits/version.def (format_uchar): Define.
7030 * include/bits/version.h: Regenerate.
7031 * include/std/format (formatter<C, C>::format): Check for
7032 _Pres_c and call _M_format_character directly. Cast C to its
7033 unsigned equivalent for formatting as an integer.
7034 (formatter<char, wchar_t>::format): Likewise.
7035 (basic_format_arg(T&)): Store char arguments as unsigned char
7036 for formatting to a wide string.
7037 * testsuite/std/format/functions/format.cc: Adjust test. Check
7040 2024-01-07 Jonathan Wakely <jwakely@redhat.com>
7043 * libsupc++/unwind-cxx.h (__cxa_call_terminate): Change first
7046 2024-01-07 Jonathan Wakely <jwakely@redhat.com>
7048 * testsuite/20_util/variant/87619.cc: Remove dg-timeout-factor.
7050 2024-01-07 Jonathan Wakely <jwakely@redhat.com>
7052 * include/std/type_traits (is_trivially_destructible_v): Use
7053 built-in directly when concepts are supported.
7054 * testsuite/20_util/is_trivially_destructible/value_v.cc: New
7057 2024-01-06 Gwenole Beauchesne <gb.devel@gmail.com>
7059 * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Use
7060 nonnull arguments to strtoimax() and wcstoimax() functions.
7062 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
7064 * src/c++17/fs_path.cc (path::_List::reserve): Limit maximum
7065 size and check for overflows in arithmetic.
7066 (path::operator/=(const path&)): Remove redundant exponential
7069 2024-01-05 Martin Küttler <martin.kuettler@kernkonzept.com>
7071 * src/c++17/fs_path.cc (path::_List::reserve): Avoid
7072 floating-point arithmetic.
7074 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
7077 * include/std/type_traits (is_convertible_v): Guard use of
7078 built-in with preprocessor check.
7080 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
7083 * include/bits/char_traits.h (__gnu_cxx::char_traits::move): Use
7084 __builtin_constant_p to check for unrelated pointers that cannot
7085 be compared during constant evaluation.
7086 * testsuite/21_strings/char_traits/requirements/113200.cc: New
7089 2024-01-05 Cassio Neri <cassio.neri@gmail.com>
7091 * include/std/chrono: Fix + and - for months and weekdays.
7092 * testsuite/std/time/month/1.cc: Add constexpr tests against overflow.
7093 * testsuite/std/time/month/2.cc: New test for extreme values.
7094 * testsuite/std/time/weekday/1.cc: Add constexpr tests against overflow.
7095 * testsuite/std/time/weekday/2.cc: New test for extreme values.
7097 2024-01-05 Jonathan Wakely <jwakely@redhat.com>
7100 * include/bits/locale_classes.tcc (__try_use_facet): Use
7101 if-constexpr for C++11 and up.
7103 2024-01-05 Ken Matsui <kmatsui@gcc.gnu.org>
7105 * include/std/type_traits: Use _GLIBCXX_USE_BUILTIN_TRAIT.
7107 2024-01-04 Arsen Arsenović <arsen@aarsen.me>
7109 * include/std/generator (_Subyield_state::_M_jump_in): Fix typo
7110 reported by Will Hawkins <hawkinsw@obs.cr>.
7112 2024-01-04 Arsen Arsenović <arsen@aarsen.me>
7114 * include/std/generator (_Stateless_alloc): Rename typename _A
7117 2024-01-03 Patrick Palka <ppalka@redhat.com>
7120 * testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce
7121 'limit' to 100 from 1000 and adjust 'log2_limit' accordingly.
7125 Copyright (C) 2024 Free Software Foundation, Inc.
7127 Copying and distribution of this file, with or without modification,
7128 are permitted in any medium without royalty provided the copyright
7129 notice and this notice are preserved.