xfail dg-final "Sunk statements: 5" on hppa*64*-*-*
[official-gcc.git] / libstdc++-v3 / ChangeLog-2023
blobf97165b4992cc0e1d672b3632e4a4be2bbc1c938
1 2023-12-31  Hans-Peter Nilsson  <hp@axis.com>
3         * testsuite/20_util/hash/quality.cc: Increase timeout by a factor 3.
5 2023-12-31  François Dumont  <fdumont@gcc.gnu.org>
7         * include/bits/hashtable.h: Move comment about all equivalent values
8         being next to each other in the class documentation header.
9         (_M_reinsert_node, _M_merge_unique): Implement small size optimization.
10         (_M_find_tr, _M_count_tr, _M_equal_range_tr): Likewise.
12 2023-12-31  François Dumont  <fdumont@gcc.gnu.org>
14         * testsuite/performance/23_containers/insert/54075.cc: Add lookup on unknown entries
15         w/o copy to see potential impact of memory fragmentation enhancements.
16         * testsuite/performance/23_containers/insert/unordered_multiset_hint.cc: Enhance hash
17         functor to make it perfect, exactly 1 entry per bucket. Also use hash functor tagged as
18         slow or not to bench w/o hash code cache.
19         * testsuite/performance/23_containers/insert/unordered_set_hint.cc: New test case. Like
20         previous one but using std::unordered_set.
21         * testsuite/performance/23_containers/insert/unordered_set_range_insert.cc: New test case.
22         Check performance of range-insertion compared to individual insertions.
23         * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc: Add same bench
24         but after a copy to demonstrate impact of enhancements regarding memory fragmentation.
26 2023-12-22  Christophe Lyon  <christophe.lyon@linaro.org>
28         * Makefile.am: Allow overriding EXEPCT.
29         * Makefile.in: Regenerate.
31 2023-12-21  Arsen Arsenović  <arsen@aarsen.me>
33         * include/Makefile.am: Install std/generator, bits/elements_of.h
34         as freestanding.
35         * include/Makefile.in: Regenerate.
36         * include/bits/version.def: Add __cpp_lib_generator.
37         * include/bits/version.h: Regenerate.
38         * include/precompiled/stdc++.h: Include <generator>.
39         * include/std/ranges: Include bits/elements_of.h
40         * include/bits/elements_of.h: New file.
41         * include/std/generator: New file.
42         * testsuite/24_iterators/range_generators/01.cc: New test.
43         * testsuite/24_iterators/range_generators/02.cc: New test.
44         * testsuite/24_iterators/range_generators/copy.cc: New test.
45         * testsuite/24_iterators/range_generators/except.cc: New test.
46         * testsuite/24_iterators/range_generators/synopsis.cc: New test.
47         * testsuite/24_iterators/range_generators/subrange.cc: New test.
49 2023-12-21  Arsen Arsenović  <arsen@aarsen.me>
51         * include/bits/ranges_util.h: Add missing <bits/invoke.h>
52         include.
54 2023-12-18  Patrick Palka  <ppalka@redhat.com>
56         PR libstdc++/112802
57         PR libstdc++/113068
58         * include/std/ranges (__detail::_To::operator()): Add constraints.
59         (__detail::_To2::operator()): Likewise.
60         * testsuite/std/ranges/conv/1.cc (test_sfinae): New test.
61         (test_composition): New test.
63 2023-12-16  Jonathan Wakely  <jwakely@redhat.com>
65         * src/c++23/print.cc (__open_terminal(FILE*)): Avoid fileno
66         macro.
68 2023-12-16  H.J. Lu  <hjl.tools@gmail.com>
70         * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt:
71         Updated.
73 2023-12-16  Ken Matsui  <kmatsui@gcc.gnu.org>
75         * include/std/type_traits (remove_pointer): Use __remove_pointer
76         built-in trait.
78 2023-12-16  Ken Matsui  <kmatsui@gcc.gnu.org>
80         * include/std/type_traits (is_object): Use __is_object built-in
81         trait.
82         (is_object_v): Likewise.
84 2023-12-16  Ken Matsui  <kmatsui@gcc.gnu.org>
86         * include/std/type_traits (is_function): Use __is_function
87         built-in trait.
88         (is_function_v): Likewise. Optimize its implementation.  Move
89         this under is_const_v as this depends on is_const_v.
91 2023-12-16  Ken Matsui  <kmatsui@gcc.gnu.org>
93         * include/std/type_traits (is_reference): Use __is_reference
94         built-in trait.
95         (is_reference_v): Likewise.
97 2023-12-16  Ken Matsui  <kmatsui@gcc.gnu.org>
99         * include/std/type_traits (is_member_object_pointer): Use
100         __is_member_object_pointer built-in trait.
101         (is_member_object_pointer_v): Likewise.
103 2023-12-16  Ken Matsui  <kmatsui@gcc.gnu.org>
105         * include/std/type_traits (is_member_function_pointer): Use
106         __is_member_function_pointer built-in trait.
107         (is_member_function_pointer_v): Likewise.
109 2023-12-16  Ken Matsui  <kmatsui@gcc.gnu.org>
111         * include/std/type_traits (is_member_pointer): Use
112         __is_member_pointer built-in trait.
113         (is_member_pointer_v): Likewise.
115 2023-12-16  Ken Matsui  <kmatsui@gcc.gnu.org>
117         * include/std/type_traits (is_scoped_enum): Use
118         __is_scoped_enum built-in trait.
119         (is_scoped_enum_v): Likewise.
121 2023-12-16  Ken Matsui  <kmatsui@gcc.gnu.org>
123         * include/std/type_traits (is_bounded_array_v): Use
124         __is_bounded_array built-in trait.
126 2023-12-16  Ken Matsui  <kmatsui@gcc.gnu.org>
128         * include/std/type_traits (is_array): Use __is_array built-in
129         trait.
130         (is_array_v): Likewise.
132 2023-12-15  Jonathan Wakely  <jwakely@redhat.com>
134         * src/c++23/print.cc (__write_to_terminal) [_WIN32]: If handle
135         does not refer to the console then just write to it using normal
136         file I/O.
137         * testsuite/27_io/print/2.cc (as_printed_to_terminal): Print
138         error message on failure.
139         (test_utf16_transcoding): Adjust for as_printed_to_terminal
140         modifying its argument.
142 2023-12-15  Jonathan Wakely  <jwakely@redhat.com>
144         * include/std/ostream (vprint_unicode) [_WIN32]: Use RAII guard.
145         (vprint_unicode) [!_WIN32]: Just call vprint_nonunicode.
146         * include/std/print (vprint_unicode) [!_WIN32]: Likewise.
148 2023-12-15  Jonathan Wakely  <jwakely@redhat.com>
150         * include/std/ostream (vprint_nonunicode, vprint_unicode): Do
151         not insert padding.
152         * testsuite/27_io/basic_ostream/print/1.cc: Adjust expected
153         behaviour.
155 2023-12-14  Jonathan Wakely  <jwakely@redhat.com>
157         PR libstdc++/107760
158         * include/Makefile.am: Add new header.
159         * include/Makefile.in: Regenerate.
160         * include/bits/version.def (__cpp_lib_print): Define.
161         * include/bits/version.h: Regenerate.
162         * include/std/format (__literal_encoding_is_utf8): New function.
163         (_Seq_sink::view()): New member function.
164         * include/std/ostream (vprintf_nonunicode, vprintf_unicode)
165         (print, println): New functions.
166         * include/std/print: New file.
167         * src/c++23/Makefile.am: Add new source file.
168         * src/c++23/Makefile.in: Regenerate.
169         * src/c++23/print.cc: New file.
170         * testsuite/27_io/basic_ostream/print/1.cc: New test.
171         * testsuite/27_io/print/1.cc: New test.
172         * testsuite/27_io/print/2.cc: New test.
174 2023-12-14  Jonathan Wakely  <jwakely@redhat.com>
176         * acinclude.m4 (GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES): Add
177         missing header to configure test. Check correct variable.
178         * config/io/basic_file_stdio.cc (__basic_file<char>::native_handle):
179         Fix typo.
180         * configure: Regenerate.
181         * testsuite/27_io/basic_filebuf/native_handle/char/1.cc: Do not
182         call CloseHandle on the native handle.
183         * testsuite/27_io/basic_filebuf/native_handle/wchar_t/1.cc:
184         Likewise.
186 2023-12-14  Jonathan Wakely  <jwakely@redhat.com>
188         * include/std/format (_Seq_sink): Fix missing argument in
189         discarded statement. Add comments, likely/unlikely attributes
190         and debug assertions as sanity checks.
192 2023-12-14  Jonathan Wakely  <jwakely@redhat.com>
194         * testsuite/27_io/objects/char/2.cc: Use dg-output.
195         * testsuite/27_io/objects/wchar_t/2.cc: Use dg-output.
197 2023-12-14  Jonathan Wakely  <jwakely@redhat.com>
199         * include/bits/chrono_io.h (__formatter_chrono::_M_S): Fix order
200         of arguments to std::format_to.
201         * testsuite/20_util/duration/io.cc: Test subsecond duration with
202         floating-point rep.
204 2023-12-14  Jonathan Wakely  <jwakely@redhat.com>
206         PR libstdc++/109536
207         * include/bits/c++config (__glibcxx_constexpr_assert): Remove
208         macro.
209         * include/bits/stl_algobase.h (__niter_base, __copy_move_a)
210         (__copy_move_backward_a, __fill_a, __fill_n_a, __equal_aux)
211         (__lexicographical_compare_aux): Add constexpr to overloads for
212         debug mode iterators.
213         * include/debug/helper_functions.h (__unsafe): Add constexpr.
214         * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_COND_AT): Remove
215         macro, folding it into ...
216         (_GLIBCXX_DEBUG_VERIFY_AT_F): ... here. Do not use
217         __glibcxx_constexpr_assert.
218         * include/debug/safe_base.h (_Safe_iterator_base): Add constexpr
219         to some member functions. Omit attaching, detaching and checking
220         operations during constant evaluation.
221         * include/debug/safe_container.h (_Safe_container): Likewise.
222         * include/debug/safe_iterator.h (_Safe_iterator): Likewise.
223         * include/debug/safe_iterator.tcc (__niter_base, __copy_move_a)
224         (__copy_move_backward_a, __fill_a, __fill_n_a, __equal_aux)
225         (__lexicographical_compare_aux): Add constexpr.
226         * include/debug/vector (_Safe_vector, vector): Add constexpr.
227         Omit safe iterator operations during constant evaluation.
228         * testsuite/23_containers/vector/bool/capacity/constexpr.cc:
229         Remove dg-xfail-if for debug mode.
230         * testsuite/23_containers/vector/bool/cmp_c++20.cc: Likewise.
231         * testsuite/23_containers/vector/bool/cons/constexpr.cc:
232         Likewise.
233         * testsuite/23_containers/vector/bool/element_access/1.cc:
234         Likewise.
235         * testsuite/23_containers/vector/bool/element_access/constexpr.cc:
236         Likewise.
237         * testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc:
238         Likewise.
239         * testsuite/23_containers/vector/bool/modifiers/constexpr.cc:
240         Likewise.
241         * testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc:
242         Likewise.
243         * testsuite/23_containers/vector/capacity/constexpr.cc:
244         Likewise.
245         * testsuite/23_containers/vector/cmp_c++20.cc: Likewise.
246         * testsuite/23_containers/vector/cons/constexpr.cc: Likewise.
247         * testsuite/23_containers/vector/data_access/constexpr.cc:
248         Likewise.
249         * testsuite/23_containers/vector/element_access/constexpr.cc:
250         Likewise.
251         * testsuite/23_containers/vector/modifiers/assign/constexpr.cc:
252         Likewise.
253         * testsuite/23_containers/vector/modifiers/constexpr.cc:
254         Likewise.
255         * testsuite/23_containers/vector/modifiers/swap/constexpr.cc:
256         Likewise.
257         * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
258         Adjust dg-error line number.
260 2023-12-13  Jonathan Wakely  <jwakely@redhat.com>
262         * include/bits/chrono_io.h (__formatter_chrono::_M_C_y_Y): Do
263         not round century down for %Y formats.
265 2023-12-12  Jonathan Wakely  <jwakely@redhat.com>
267         * include/std/format (__do_vformat_to): Handle char separately
268         from other integral types.
269         * testsuite/std/format/functions/format.cc: Check for expected
270         output for char and bool arguments.
271         * testsuite/std/format/string.cc: Check that 0 filling is
272         rejected for character and string formats.
274 2023-12-12  Jonathan Wakely  <jwakely@redhat.com>
276         * include/bits/chrono_io.h (__formatter_chrono::_M_C_y_Y): Fix
277         rounding for negative centuries.
278         * testsuite/std/time/year/io.cc: Check %C for negative years.
280 2023-12-12  Jonathan Wakely  <jwakely@redhat.com>
282         * src/c++11/Makefile.am: Remove redundant -std=gnu++11 flags.
283         * src/c++11/Makefile.in: Regenerate.
285 2023-12-09  Jonathan Wakely  <jwakely@redhat.com>
287         PR libstdc++/111826
288         * include/bits/version.def (format): Update value.
289         * include/bits/version.h: Regenerate.
290         * testsuite/std/format/functions/format.cc:
292 2023-12-09  Jonathan Wakely  <jwakely@redhat.com>
294         PR libstdc++/112876
295         * include/std/ranges (ranges::to): Do not try to use an iterator
296         returned by the container's emplace or insert member functions.
297         * testsuite/std/ranges/conv/1.cc (Cont4::emplace, Cont4::insert):
298         Use the iterator parameter. Do not return an iterator.
300 2023-12-07  Patrick Palka  <ppalka@redhat.com>
302         * include/std/ranges (__detail::_ToClosure): Replace with ...
303         (__detail::_To): ... this.
304         (__detail::_ToClosure2): Replace with ...
305         (__detail::To2): ... this.
306         (to): Simplify using the existing _Partial range adaptor
307         closure object.
309 2023-12-07  Jonathan Wakely  <jwakely@redhat.com>
311         * include/std/format (_Iter_sink<charT, contiguous_iterator>):
312         Remove uint64_t local type.
314 2023-12-07  Jonathan Wakely  <jwakely@redhat.com>
316         * include/bits/atomic_wait.h: Include <cstdint> instead of
317         <stdint.h>.
319 2023-12-07  Jonathan Wakely  <jwakely@redhat.com>
321         PR libstdc++/112882
322         * include/bits/c++config (__is_constant_evaluated): Add
323         always_inline attribute.
324         (_GLIBCXX_DO_ASSERT): Remove macro.
325         (__glibcxx_assert): Define separately for assertions-enabled and
326         constexpr-only cases.
328 2023-12-07  Alexandre Oliva  <oliva@adacore.com>
330         PR libstdc++/112858
331         * config/os/gnu-linux/os_defines.h
332         (_GLIBCXX_MAY_HAVE___CXA_THREAD_ATEXIT_IMPL): Define.
333         * libsupc++/atexit_thread.cc [__GXX_WEAK__ &&
334         _GLIBCXX_MAY_HAVE___CXA_THREAD_ATEXIT_IMPL]
335         (__cxa_thread_atexit): Add dynamic detection of
336         __cxa_thread_atexit_impl.
338 2023-12-06  Jason Merrill  <jason@redhat.com>
340         DR 532
341         PR c++/53499
342         * testsuite/23_containers/vector/ext_pointer/types/1.cc
343         * testsuite/23_containers/vector/ext_pointer/types/2.cc
344         (N::operator-): Make less specialized.
346 2023-12-06  Alexandre Oliva  <oliva@gnu.org>
348         Revert:
349         2023-12-02  Alexandre Oliva  <oliva@adacore.com>
351         * libsupc++/atexit_thread.cc [__GXX_WEAK__]: Add dynamic
352         detection of __cxa_thread_atexit_impl.
354 2023-12-05  Jonathan Wakely  <jwakely@redhat.com>
356         PR libstdc++/111948
357         * include/bits/ranges_util.h (subrange): Add constructor to
358         _Size to aoid setting member in constructor.
359         * testsuite/std/ranges/subrange/111948.cc: New test.
361 2023-12-05  Jonathan Wakely  <jwakely@redhat.com>
363         * include/std/ranges (__detail::__container_insertable): Remove.
364         (__detail::__container_inserter): Remove.
365         (ranges::to): Use emplace_back or emplace, as per LWG 4016.
366         * testsuite/std/ranges/conv/1.cc (Cont4, test_2_1_4): Check for
367         use of emplace_back and emplace.
369 2023-12-05  Jonathan Wakely  <jwakely@redhat.com>
371         * include/bits/c++config (__glibcxx_assert_fail): Declare even
372         when assertions are not enabled.
373         (__glibcxx_constexpr_assert): Remove macro.
374         (__glibcxx_assert_impl): Remove macro.
375         (_GLIBCXX_ASSERT_FAIL): New macro.
376         (_GLIBCXX_DO_ASSERT): New macro.
377         (__glibcxx_assert): Simplify to a single definition that works
378         at runtime and during constant evaluation.
379         * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc:
380         Adjust expected errors.
381         * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc:
382         Likewise.
383         * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc:
384         Likewise.
385         * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc:
386         Likewise.
387         * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc:
388         Likewise.
389         * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc:
390         Likewise.
391         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc:
392         Likewise.
393         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc:
394         Likewise.
395         * testsuite/23_containers/span/back_neg.cc: Likewise.
396         * testsuite/23_containers/span/front_neg.cc: Likewise.
397         * testsuite/23_containers/span/index_op_neg.cc: Likewise.
398         * testsuite/26_numerics/lcm/105844.cc: Likewise.
400 2023-12-05  Jonathan Wakely  <jwakely@redhat.com>
402         PR libstdc++/112832
403         * include/std/format (formatter::set_debug_format): Ensure this
404         member is defined conditionally for all specializations.
405         * testsuite/std/format/formatter/112832.cc: New test.
407 2023-12-05  Will Hawkins  <hawkinsw@obs.cr>
408             Jonathan Wakely  <jwakely@redhat.com>
410         * testsuite/20_util/smartptr.adapt/inout_ptr/2.cc: Add check
411         for LWG Issue 3897.
413 2023-12-05  Marek Polacek  <polacek@redhat.com>
415         PR c++/107687
416         PR c++/110997
417         * testsuite/18_support/comparisons/categories/zero_neg.cc: Add
418         dg-prune-output.
419         * testsuite/std/format/string_neg.cc: Add dg-error.
421 2023-12-02  Alexandre Oliva  <oliva@adacore.com>
423         * libsupc++/atexit_thread.cc [__GXX_WEAK__]: Add dynamic
424         detection of __cxa_thread_atexit_impl.
426 2023-12-01  Jason Merrill  <jason@redhat.com>
428         * include/std/bit: Avoid builtins in requires-clauses.
429         * include/std/variant: Likewise.
431 2023-12-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
433         * configure: Regenerate.
435 2023-11-30  Jonathan Wakely  <jwakely@redhat.com>
437         * include/std/ranges (__detail::__toable): Fix incorrect use of
438         _Range instead of _Cont.
439         (__detail::_ToClosure, __detail::_ToClosure2): Add missing
440         constexpr specifier on constructors.
441         * testsuite/std/ranges/conv/1.cc (_Cont, _Cont2, _Cont3): Remove
442         unnecessary begin() and end() members.
443         (test_constexpr): New function to check range adaptors are
444         usable in constant expressions.
446 2023-11-29  Thomas Schwinge  <thomas@codesourcery.com>
448         * testsuite/23_containers/span/at.cc: Fix for '-fno-exceptions'
449         configurations.
451 2023-11-28  Jonathan Wakely  <jwakely@redhat.com>
453         * include/bits/atomic_wait.h: Include <stdint.h>.
455 2023-11-28  Jonathan Wakely  <jwakely@redhat.com>
457         * include/bits/stl_uninitialized.h: Fix typo in comment.
459 2023-11-24  Jan Hubicka  <jh@suse.cz>
461         PR middle-end/109849
462         * include/bits/stl_uninitialized.h (__relocate_a_1): Use memcpy instead
463         of memmove.
465 2023-11-23  Jonathan Wakely  <jwakely@redhat.com>
467         PR libstdc++/111055
468         * include/bits/ranges_base.h (from_range_t): Define new tag
469         type.
470         (from_range): Define new tag object.
471         * include/bits/version.def (ranges_to_container): Define.
472         * include/bits/version.h: Regenerate.
473         * include/std/ranges (ranges::to): Define.
474         * testsuite/std/ranges/conv/1.cc: New test.
475         * testsuite/std/ranges/conv/2_neg.cc: New test.
476         * testsuite/std/ranges/conv/version.cc: New test.
478 2023-11-23  Jonathan Wakely  <jwakely@redhat.com>
480         * testsuite/util/testsuite_allocator.h (uneq_allocator): Fix
481         equality operator for heterogeneous comparisons.
483 2023-11-21  Jonathan Wakely  <jwakely@redhat.com>
485         * include/bits/version.def (freestanding_cstring): Add.
486         * include/bits/version.h: Regenerate.
487         * include/c_compatibility/string.h (strtok): Do not declare for
488         C++26 freestanding.
489         * include/c_global/cstring (strtok): Likewise.
490         * testsuite/21_strings/headers/cstring/version.cc: New test.
492 2023-11-21  Jonathan Wakely  <jwakely@redhat.com>
494         * include/bits/version.def (freestanding_algorithm)
495         (freestanding_array, freestanding_optional)
496         (freestanding_string_view, freestanding_variant): Add.
497         * include/bits/version.h: Regenerate.
498         * include/std/algorithm (__glibcxx_want_freestanding_algorithm):
499         Define.
500         * include/std/array (__glibcxx_want_freestanding_array):
501         Define.
502         * include/std/optional (__glibcxx_want_freestanding_optional):
503         Define.
504         * include/std/string_view
505         (__glibcxx_want_freestanding_string_view): Define.
506         * include/std/variant (__glibcxx_want_freestanding_variant):
507         Define.
508         * testsuite/20_util/optional/version.cc: Add checks for
509         __cpp_lib_freestanding_optional.
510         * testsuite/20_util/variant/version.cc: Add checks for
511         __cpp_lib_freestanding_variant.
512         * testsuite/23_containers/array/tuple_interface/get_neg.cc:
513         Adjust dg-error line numbers.
514         * testsuite/21_strings/basic_string_view/requirements/version.cc:
515         New test.
516         * testsuite/23_containers/array/requirements/version.cc: New
517         test.
518         * testsuite/25_algorithms/fill_n/requirements/version.cc: New
519         test.
520         * testsuite/25_algorithms/swap_ranges/requirements/version.cc:
521         New test.
523 2023-11-21  Jonathan Wakely  <jwakely@redhat.com>
525         * include/bits/version.def (freestanding_expected): New macro.
526         (span): Add C++26 value.
527         * include/bits/version.h: Regenerate.
528         * include/std/expected (__glibcxx_want_freestanding_expected):
529         Define.
530         * include/std/span (span::at): New member function.
531         * testsuite/20_util/expected/version.cc: Add checks for
532         __cpp_lib_freestanding_expected.
533         * testsuite/23_containers/span/2.cc: Moved to...
534         * testsuite/23_containers/span/version.cc: ...here. Add checks
535         for __cpp_lib_span in <span> as well as in <version>.
536         * testsuite/23_containers/span/1.cc: Removed.
537         * testsuite/23_containers/span/at.cc: New test.
539 2023-11-21  Jonathan Wakely  <jwakely@redhat.com>
541         * include/tr2/dynamic_bitset (dynamic_bitset): Pass zero and one
542         characters to _M_copy_from_string.
543         * testsuite/tr2/dynamic_bitset/string.cc: New test.
545 2023-11-21  Jonathan Wakely  <jwakely@redhat.com>
547         * doc/html/*: Regenerate.
548         * doc/xml/faq.xml: Remove reference to buildstat.html pages.
549         * doc/xml/manual/test.xml: Likewise
551 2023-11-21  Jan Hubicka  <jh@suse.cz>
553         PR libstdc++/110287
554         PR middle-end/109811
555         PR middle-end/109849
556         * include/bits/stl_vector.h (_M_realloc_append): New member function.
557         (push_back): Use it.
558         * include/bits/vector.tcc: (emplace_back): Use it.
559         (_M_realloc_insert): Let compiler know that new vector size is non-zero.
560         (_M_realloc_append): New member function.
562 2023-11-18  Jonathan Wakely  <jwakely@redhat.com>
564         PR libstdc++/112607
565         * include/std/format (basic_format_arg::_S_to_arg_type): Check
566         value_type for basic_string_view and basic_string
567         specializations.
568         * testsuite/std/format/arguments/112607.cc: New test.
570 2023-11-18  Jonathan Wakely  <jwakely@redhat.com>
572         PR libstdc++/110801
573         * include/std/format (_Sink_iter::_M_reserve): New member
574         function.
575         (_Sink::_Reservation): New nested class.
576         (_Sink::_M_reserve, _Sink::_M_bump): New virtual functions.
577         (_Seq_sink::_M_reserve, _Seq_sink::_M_bump): New virtual
578         overrides.
579         (_Iter_sink<O, ContigIter>::_M_reserve): Likewise.
580         (__do_vformat_to): Use new functions to optimize "{}" case.
582 2023-11-17  Jonathan Wakely  <jwakely@redhat.com>
584         * config.h.in: Regenerate.
586 2023-11-17  Jonathan Wakely  <jwakely@redhat.com>
588         * include/Makefile.am: Add new header.
589         * include/Makefile.in: Regenerate.
590         * include/bits/version.def (saturation_arithmetic): Define.
591         * include/bits/version.h: Regenerate.
592         * include/std/numeric: Include new header.
593         * include/bits/sat_arith.h: New file.
594         * testsuite/26_numerics/saturation/add.cc: New test.
595         * testsuite/26_numerics/saturation/cast.cc: New test.
596         * testsuite/26_numerics/saturation/div.cc: New test.
597         * testsuite/26_numerics/saturation/mul.cc: New test.
598         * testsuite/26_numerics/saturation/sub.cc: New test.
599         * testsuite/26_numerics/saturation/version.cc: New test.
601 2023-11-17  Jonathan Wakely  <jwakely@redhat.com>
603         * include/std/utility (in_range): Rename _Up parameter to _Res.
605 2023-11-17  Jonathan Wakely  <jwakely@redhat.com>
607         * include/bits/out_ptr.h: Add Doxygen comments. Remove a
608         redundant preprocessor condition.
609         * testsuite/20_util/smartptr.adapt/version.cc: New test.
611 2023-11-17  Jonathan Wakely  <jwakely@redhat.com>
613         * include/bits/chrono_io.h: Fix Doxygen markup.
615 2023-11-16  Jonathan Wakely  <jwakely@redhat.com>
617         PR libstdc++/112564
618         * include/std/stacktrace (formatter::format): Format according
619         to format-spec.
620         * include/std/thread (formatter::format): Use _Align_right as
621         default.
622         * testsuite/19_diagnostics/stacktrace/output.cc: Check
623         fill-and-align handling. Change compile test to run.
624         * testsuite/30_threads/thread/id/output.cc: Check fill-and-align
625         handling.
627 2023-11-16  Jonathan Wakely  <jwakely@redhat.com>
629         PR libstdc++/111667
630         * include/Makefile.am: Add new header.
631         * include/Makefile.in: Regenerate.
632         * include/bits/out_ptr.h: New file.
633         * include/bits/shared_ptr.h (__is_shared_ptr): Move definition
634         to here ...
635         * include/bits/shared_ptr_atomic.h (__is_shared_ptr): ... from
636         here.
637         * include/bits/shared_ptr_base.h (__shared_count): Declare
638         out_ptr_t as a friend.
639         (_Sp_counted_deleter, __shared_ptr): Likewise.
640         * include/bits/unique_ptr.h (unique_ptr, unique_ptr<T[], D>):
641         Declare out_ptr_t and inout_ptr_t as friends.
642         (__is_unique_ptr): Define new variable template.
643         * include/bits/version.def (out_ptr): Define.
644         * include/bits/version.h: Regenerate.
645         * include/std/memory: Include new header.
646         * testsuite/20_util/smartptr.adapt/inout_ptr/1.cc: New test.
647         * testsuite/20_util/smartptr.adapt/inout_ptr/2.cc: New test.
648         * testsuite/20_util/smartptr.adapt/inout_ptr/shared_ptr_neg.cc:
649         New test.
650         * testsuite/20_util/smartptr.adapt/inout_ptr/void_ptr.cc: New
651         test.
652         * testsuite/20_util/smartptr.adapt/out_ptr/1.cc: New test.
653         * testsuite/20_util/smartptr.adapt/out_ptr/2.cc: New test.
654         * testsuite/20_util/smartptr.adapt/out_ptr/shared_ptr_neg.cc:
655         New test.
656         * testsuite/20_util/smartptr.adapt/out_ptr/void_ptr.cc: New
657         test.
659 2023-11-16  Jonathan Wakely  <jwakely@redhat.com>
661         * include/bits/algorithmfwd.h: Do not define standard feature
662         test macro here.
663         * include/bits/align.h: Likewise. Test internal macros instead
664         of standard macros.
665         * include/bits/alloc_traits.h: Likewise.
666         * include/bits/allocator.h: Likewise.
667         * include/bits/atomic_base.h: Likewise.
668         * include/bits/atomic_timed_wait.h: Likewise.
669         * include/bits/atomic_wait.h: Likewise.
670         * include/bits/basic_string.h: Likewise.
671         * include/bits/basic_string.tcc: Likewise.
672         * include/bits/char_traits.h: Likewise.
673         * include/bits/chrono.h: Likewise.
674         * include/bits/cow_string.h: Likewise.
675         * include/bits/forward_list.h: Likewise.
676         * include/bits/hashtable.h: Likewise.
677         * include/bits/ios_base.h: Likewise.
678         * include/bits/memory_resource.h: Likewise.
679         * include/bits/move.h: Likewise.
680         * include/bits/move_only_function.h: Likewise.
681         * include/bits/node_handle.h: Likewise.
682         * include/bits/ptr_traits.h: Likewise.
683         * include/bits/range_access.h: Likewise.
684         * include/bits/ranges_algo.h: Likewise.
685         * include/bits/ranges_cmp.h: Likewise.
686         * include/bits/ranges_util.h: Likewise.
687         * include/bits/semaphore_base.h: Likewise.
688         * include/bits/shared_ptr.h: Likewise.
689         * include/bits/shared_ptr_atomic.h: Likewise.
690         * include/bits/shared_ptr_base.h: Likewise.
691         * include/bits/stl_algo.h: Likewise.
692         * include/bits/stl_algobase.h: Likewise.
693         * include/bits/stl_function.h: Likewise.
694         * include/bits/stl_iterator.h: Likewise.
695         * include/bits/stl_list.h: Likewise.
696         * include/bits/stl_map.h: Likewise.
697         * include/bits/stl_pair.h: Likewise.
698         * include/bits/stl_queue.h: Likewise.
699         * include/bits/stl_stack.h: Likewise.
700         * include/bits/stl_tree.h: Likewise.
701         * include/bits/stl_uninitialized.h: Likewise.
702         * include/bits/stl_vector.h: Likewise.
703         * include/bits/unique_ptr.h: Likewise.
704         * include/bits/unordered_map.h: Likewise.
705         * include/bits/uses_allocator_args.h: Likewise.
706         * include/bits/utility.h: Likewise.
707         * include/bits/erase_if.h: Add comment.
708         * include/std/algorithm: Define standard feature test macros
709         here.
710         * include/std/atomic: Likewise.
711         * include/std/array: Likewise.
712         * include/std/chrono: Likewise.
713         * include/std/condition_variable: Likewise.
714         * include/std/deque: Likewise.
715         * include/std/format: Likewise.
716         * include/std/functional: Likewise.
717         * include/std/forward_list: Likewise.
718         * include/std/ios: Likewise.
719         * include/std/iterator: Likewise.
720         * include/std/list: Likewise.
721         * include/std/map: Likewise.
722         * include/std/memory: Likewise.
723         * include/std/numeric: Likewise.
724         * include/std/queue: Likewise.
725         * include/std/ranges: Likewise.
726         * include/std/regex: Likewise.
727         * include/std/set: Likewise.
728         * include/std/stack: Likewise.
729         * include/std/stop_token: Likewise.
730         * include/std/string: Likewise.
731         * include/std/string_view:
732         * include/std/tuple: Likewise.
733         * include/std/unordered_map:
734         * include/std/unordered_set:
735         * include/std/utility: Likewise.
736         * include/std/vector: Likewise.
737         * include/std/scoped_allocator: Query internal macros instead of
738         standard macros.
740 2023-11-16  Jonathan Wakely  <jwakely@redhat.com>
742         * testsuite/18_support/byte/requirements.cc: Disable PCH.
743         * testsuite/18_support/destroying_delete.cc: Likewise.
744         * testsuite/18_support/source_location/1.cc: Likewise.
745         * testsuite/18_support/source_location/version.cc: Likewise.
746         * testsuite/18_support/type_info/constexpr.cc: Likewise.
747         * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
748         Likewise.
749         * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
750         * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
751         * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
752         * testsuite/20_util/addressof/requirements/constexpr.cc:
753         Likewise.
754         * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
755         * testsuite/20_util/allocator_traits/header.cc: Likewise.
756         * testsuite/20_util/as_const/1.cc: Likewise. Likewise.
757         * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
758         * testsuite/20_util/bitset/version.cc: Likewise.
759         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
760         Likewise.
761         * testsuite/20_util/duration_cast/rounding.cc: Likewise.
762         * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
763         Likewise.
764         * testsuite/20_util/exchange/constexpr.cc: Likewise.
765         * testsuite/20_util/expected/synopsis.cc: Likewise.
766         * testsuite/20_util/expected/version.cc: Likewise.
767         * testsuite/20_util/function_objects/bind_front/1.cc: Likewise.
768         * testsuite/20_util/function_objects/bind_front/2.cc: Likewise.
769         * testsuite/20_util/function_objects/invoke/3.cc: Likewise.
770         * testsuite/20_util/function_objects/invoke/4.cc: Likewise.
771         * testsuite/20_util/function_objects/invoke/constexpr.cc:
772         Likewise.
773         * testsuite/20_util/function_objects/invoke/version.cc:
774         Likewise.
775         * testsuite/20_util/function_objects/searchers.cc: Likewise.
776         * testsuite/20_util/integer_comparisons/1.cc: Likewise.
777         * testsuite/20_util/integer_comparisons/2.cc: Likewise.
778         * testsuite/20_util/is_bounded_array/value.cc: Likewise.
779         * testsuite/20_util/is_layout_compatible/value.cc: Likewise.
780         * testsuite/20_util/is_layout_compatible/version.cc: Likewise.
781         * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
782         Likewise.
783         * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
784         Likewise.
785         * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
786         * testsuite/20_util/is_nothrow_swappable/value.h: Likewise.
787         * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
788         Remove redundant checks already tested elsewhere.
789         * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
790         Likewise.
791         * testsuite/20_util/is_nothrow_swappable_with/value.cc: Disable
792         PCH.
793         * testsuite/20_util/is_pointer_interconvertible/value.cc:
794         Likewise.
795         * testsuite/20_util/is_pointer_interconvertible/version.cc:
796         Likewise.
797         * testsuite/20_util/is_scoped_enum/value.cc: Likewise.
798         * testsuite/20_util/is_scoped_enum/version.cc: Likewise.
799         * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
800         Remove redundant checks already tested elsewhere.
801         * testsuite/20_util/is_swappable/requirements/typedefs.cc:
802         Remove redundant checks already tested elsewhere.
803         * testsuite/20_util/is_swappable/value.cc: Disable PCH.
804         * testsuite/20_util/is_swappable/value.h: Reorder headers.
805         * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
806         Remove redundant checks already tested elsewhere.
807         * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
808         Remove redundant checks already tested elsewhere.
809         * testsuite/20_util/is_swappable_with/value.cc: Disable PCH.
810         * testsuite/20_util/is_unbounded_array/value.cc: Likewise.
811         * testsuite/20_util/move_only_function/cons.cc: Likewise.
812         * testsuite/20_util/move_only_function/version.cc: Likewise.
813         * testsuite/20_util/optional/monadic/and_then.cc: Likewise.
814         * testsuite/20_util/optional/requirements.cc: Likewise.
815         * testsuite/20_util/optional/version.cc: Likewise.
816         * testsuite/20_util/owner_less/void.cc: Likewise.
817         * testsuite/20_util/reference_from_temporary/value.cc: Likewise.
818         * testsuite/20_util/reference_from_temporary/version.cc:
819         Likewise.
820         * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
821         Likewise.
822         * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
823         * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
824         * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
825         * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
826         * testsuite/20_util/to_chars/constexpr.cc: Likewise.
827         * testsuite/20_util/to_chars/result.cc: Likewise.
828         * testsuite/20_util/to_chars/version.cc: Likewise.
829         * testsuite/20_util/to_underlying/1.cc: Likewise.
830         * testsuite/20_util/to_underlying/version.cc: Likewise.
831         * testsuite/20_util/tuple/apply/1.cc: Likewise.
832         * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
833         Likewise.
834         * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
835         * testsuite/20_util/tuple/p2321r2.cc: Likewise.
836         * testsuite/20_util/tuple/tuple_element_t.cc: Likewise.
837         * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc:
838         Likewise.
839         * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
840         Likewise.
841         * testsuite/20_util/unreachable/1.cc: Likewise.
842         * testsuite/20_util/unreachable/version.cc: Likewise.
843         * testsuite/20_util/unwrap_reference/1.cc: Likewise.
844         * testsuite/20_util/unwrap_reference/3.cc: Likewise.
845         * testsuite/20_util/variant/constexpr.cc: Likewise.
846         * testsuite/20_util/variant/version.cc: Likewise.
847         * testsuite/20_util/variant/visit_inherited.cc: Likewise.
848         * testsuite/20_util/void_t/1.cc: Likewise.
849         * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
850         Likewise.
851         * testsuite/21_strings/basic_string/cons/char/constexpr.cc:
852         Likewise.
853         * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc:
854         Likewise.
855         * testsuite/21_strings/basic_string/erasure.cc: Likewise.
856         * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc:
857         Likewise.
858         * testsuite/21_strings/basic_string/numeric_conversions/version.cc:
859         Likewise.
860         * testsuite/21_strings/basic_string/version.cc: Likewise.
861         * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
862         Likewise.
863         * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
864         Likewise.
865         * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
866         Likewise.
867         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
868         Likewise.
869         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
870         Likewise.
871         * testsuite/21_strings/char_traits/requirements/version.cc:
872         Likewise.
873         * testsuite/23_containers/array/comparison_operators/constexpr.cc:
874         Likewise.
875         * testsuite/23_containers/array/creation/1.cc: Likewise.
876         * testsuite/23_containers/array/creation/2.cc: Likewise.
877         * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
878         Likewise.
879         * testsuite/23_containers/array/requirements/constexpr_fill.cc:
880         Likewise.
881         * testsuite/23_containers/array/requirements/constexpr_iter.cc:
882         Likewise.
883         * testsuite/23_containers/deque/erasure.cc: Likewise.
884         * testsuite/23_containers/forward_list/erasure.cc: Likewise.
885         * testsuite/23_containers/list/erasure.cc: Likewise.
886         * testsuite/23_containers/map/erasure.cc: Likewise.
887         * testsuite/23_containers/queue/cons_from_iters.cc: Likewise.
888         * testsuite/23_containers/set/erasure.cc: Likewise.
889         * testsuite/23_containers/span/1.cc: Likewise.
890         * testsuite/23_containers/span/2.cc: Likewise.
891         * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
892         * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
893         * testsuite/23_containers/unordered_map/operations/1.cc:
894         Likewise.
895         * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
896         * testsuite/23_containers/unordered_set/operations/1.cc:
897         Likewise.
898         * testsuite/23_containers/vector/cons/constexpr.cc: Likewise.
899         * testsuite/23_containers/vector/erasure.cc: Likewise.
900         * testsuite/23_containers/vector/requirements/version.cc:
901         Likewise.
902         * testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise.
903         * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
904         * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
905         Remove redundant checks already tested elsewhere.
906         * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
907         * testsuite/25_algorithms/cpp_lib_constexpr.cc: Likewise.
908         * testsuite/25_algorithms/fold_left/1.cc: Likewise.
909         * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
910         * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
911         * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
912         * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
913         * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
914         * testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: Likewise.
915         * testsuite/26_numerics/bit/bit.byteswap/version.cc: Likewise.
916         * testsuite/26_numerics/bit/bit.cast/bit_cast.cc: Likewise.
917         * testsuite/26_numerics/bit/bit.cast/version.cc: Likewise.
918         * testsuite/26_numerics/bit/header-2.cc: Likewise.
919         * testsuite/26_numerics/bit/header.cc: Likewise.
920         * testsuite/26_numerics/complex/1.cc: Likewise.
921         * testsuite/26_numerics/complex/2.cc: Likewise.
922         * testsuite/26_numerics/endian/2.cc: Likewise.
923         * testsuite/26_numerics/endian/3.cc: Likewise.
924         * testsuite/26_numerics/gcd/1.cc: Likewise.
925         * testsuite/26_numerics/lcm/1.cc: Likewise.
926         * testsuite/26_numerics/lerp/1.cc: Likewise.
927         * testsuite/26_numerics/lerp/version.cc: Likewise.
928         * testsuite/26_numerics/midpoint/integral.cc: Likewise.
929         * testsuite/26_numerics/midpoint/version.cc: Likewise.
930         * testsuite/26_numerics/numbers/1.cc: Likewise.
931         * testsuite/26_numerics/numbers/2.cc: Likewise.
932         * testsuite/27_io/basic_filebuf/native_handle/char/1.cc:
933         Likewise.
934         * testsuite/27_io/basic_filebuf/native_handle/version.cc:
935         Likewise.
936         * testsuite/27_io/basic_ofstream/open/char/noreplace.cc:
937         Likewise.
938         * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
939         Likewise.
940         * testsuite/27_io/basic_syncbuf/1.cc: Likewise.
941         * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
942         * testsuite/27_io/basic_syncstream/1.cc: Likewise.
943         * testsuite/27_io/basic_syncstream/2.cc: Likewise.
944         * testsuite/27_io/spanstream/1.cc: Likewise.
945         * testsuite/27_io/spanstream/version.cc: Likewise.
946         * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
947         * testsuite/29_atomics/atomic/lock_free_aliases.cc: Likewise.
948         * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
949         * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
950         * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
951         Likewise.
952         * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
953         * testsuite/30_threads/barrier/1.cc: Likewise.
954         * testsuite/30_threads/barrier/2.cc: Likewise.
955         * testsuite/30_threads/condition_variable_any/stop_token/1.cc:
956         Likewise.
957         * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
958         Likewise.
959         * testsuite/30_threads/jthread/1.cc: Likewise.
960         * testsuite/30_threads/jthread/version.cc: Likewise.
961         * testsuite/30_threads/latch/1.cc: Likewise.
962         * testsuite/30_threads/latch/2.cc: Likewise.
963         * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
964         Likewise.
965         * testsuite/30_threads/semaphore/1.cc: Likewise.
966         * testsuite/30_threads/semaphore/2.cc: Likewise.
967         * testsuite/30_threads/stop_token/1.cc: Likewise.
968         * testsuite/30_threads/stop_token/2.cc: Likewise.
969         * testsuite/experimental/feat-char8_t.cc: Likewise.
970         * testsuite/experimental/iterator/ostream_joiner.cc: Likewise.
971         * testsuite/experimental/numeric/gcd.cc: Likewise.
972         * testsuite/experimental/scopeguard/uniqueres.cc: Likewise.
973         * testsuite/std/concepts/1.cc: Likewise.
974         * testsuite/std/concepts/2.cc: Likewise.
975         * testsuite/std/ranges/adaptors/as_const/1.cc: Likewise.
976         * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
977         * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
978         * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
979         * testsuite/std/ranges/adaptors/enumerate/1.cc: Likewise.
980         * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
981         * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
982         * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
983         * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
984         * testsuite/std/ranges/headers/ranges/synopsis.cc: Likewise.
985         * testsuite/std/ranges/repeat/1.cc: Likewise.
986         * testsuite/std/ranges/version_c++23.cc: Likewise.
987         * testsuite/std/ranges/zip/1.cc: Likewise.
988         * testsuite/std/time/syn_c++20.cc: Likewise.
989         * testsuite/experimental/feat-cxx14.cc: Likewise. Include
990         <algorithm> and <iterator>.
991         * testsuite/23_containers/array/tuple_interface/get_neg.cc:
992         Adjust dg-error line numbers.
994 2023-11-16  Jonathan Wakely  <jwakely@redhat.com>
996         * include/bits/version.def (stds): Use >= 202100 for C++23
997         condition.
998         * include/bits/version.h: Regenerate.
999         * include/std/thread: Use > C++20 instead of >= C++23 for
1000         __cplusplus condition.
1002 2023-11-16  Jonathan Wakely  <jwakely@redhat.com>
1004         * include/std/istream (__rvalue_stream_extraction_t): Test
1005         __cpp_concepts instead of __cpp_lib_concepts.
1006         * include/std/ostream (__derived_from_ios_base): Likewise.
1007         (__rvalue_stream_insertion_t): Likewise.
1009 2023-11-15  Jonathan Wakely  <jwakely@redhat.com>
1011         PR libstdc++/112491
1012         * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index):
1013         Correctly handle unused capacity at the start of the first node.
1014         * testsuite/libstdc++-xmethods/deque.cc: Check index operator
1015         when elements have been removed from the front.
1017 2023-11-15  Jonathan Wakely  <jwakely@redhat.com>
1019         * include/std/stacktrace (basic_stacktrace::at): Fix class name
1020         in exception message.
1021         * testsuite/19_diagnostics/stacktrace/hash.cc: Do not fail if
1022         current() returns a non-empty stacktrace.
1024 2023-11-15  Alexandre Oliva  <oliva@gnu.org>
1026         Revert:
1027         2023-11-15  Alexandre Oliva  <oliva@adacore.com>
1029         * include/bits/stl_bvector.h (_GLIBCXX_ALWAYS_INLINE): Undef.
1031 2023-11-15  Alexandre Oliva  <oliva@adacore.com>
1033         * include/bits/stl_bvector.h (_GLIBCXX_ALWAYS_INLINE): Undef.
1035 2023-11-14  Cassio Neri  <cassio.neri@gmail.com>
1037         * include/std/chrono (operator-(const weekday&, const weekday&)):
1038         Optimize.
1040 2023-11-14  Cassio Neri  <cassio.neri@gmail.com>
1042         * include/std/chrono (weekday::_S_from_days): Fix UB.
1043         * testsuite/std/time/weekday/1.cc: Add test for overflow.
1045 2023-11-14  Cassio Neri  <cassio.neri@gmail.com>
1047         * include/std/chrono (year::is_leap): Clear code.
1049 2023-11-14  Cassio Neri  <cassio.neri@gmail.com>
1051         * include/std/chrono (year_month_day_last::day): Remove &1.
1053 2023-11-14  Jonathan Wakely  <jwakely@redhat.com>
1055         * include/std/charconv (__from_chars_pow2_base): Convert base to
1056         unsigned for call to __countr_zero.
1057         (__from_chars_alnum): Likewise for call to __bit_width.
1059 2023-11-14  Jonathan Wakely  <jwakely@redhat.com>
1061         PR libstdc++/112348
1062         * include/std/stacktrace (hash<basic_stacktrace<Alloc>>): Fix
1063         type of hash functio nfor entries.
1064         * testsuite/19_diagnostics/stacktrace/hash.cc: New test.
1066 2023-11-14  Jonathan Wakely  <jwakely@redhat.com>
1068         PR libstdc++/112491
1069         * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.size): Fix
1070         calculation to use _M_start._M_cur.
1071         * testsuite/libstdc++-xmethods/deque.cc: Check failing cases.
1073 2023-11-13  Arsen Arsenović  <arsen@aarsen.me>
1075         * configure: Regenerate.
1077 2023-11-13  Jonathan Wakely  <jwakely@redhat.com>
1079         * testsuite/std/time/clock/file/io.cc: Double timeout using
1080         dg-timeout-factor.
1081         * testsuite/std/time/clock/gps/io.cc: Likewise.
1082         * testsuite/std/time/clock/local/io.cc: Likewise.
1083         * testsuite/std/time/clock/system/io.cc: Likewise.
1084         * testsuite/std/time/clock/tai/io.cc: Likewise.
1085         * testsuite/std/time/clock/utc/io.cc: Likewise.
1087 2023-11-13  Jonathan Wakely  <jwakely@redhat.com>
1089         PR libstdc++/112480
1090         * include/std/optional (_Optional_payload_base::_M_reset): Set
1091         _M_engaged to false unconditionally.
1093 2023-11-11  Jonathan Wakely  <jwakely@redhat.com>
1095         PR libstdc++/112467
1096         * include/bits/stl_bvector.h (_M_assume_normalized): Do not use
1097         statement form of assume attribute for Clang.
1099 2023-11-11  Jonathan Wakely  <jwakely@redhat.com>
1101         * include/std/string_view (operator==, operator<=>): Remove
1102         redundant overloads (LWG 3950).
1104 2023-11-11  Jonathan Wakely  <jwakely@redhat.com>
1106         * testsuite/26_numerics/headers/complex.h/std_c++11.h: Moved to...
1107         * testsuite/26_numerics/headers/complex.h/std_c++11.cc: ...here.
1108         * testsuite/26_numerics/headers/complex.h/std_c++98.h: Moved to...
1109         * testsuite/26_numerics/headers/complex.h/std_c++98.cc: ...here.
1110         Check macro first and then #undef.
1111         * testsuite/26_numerics/headers/complex.h/std_gnu++11.h: Moved to...
1112         * testsuite/26_numerics/headers/complex.h/std_gnu++11.cc: ...here.
1114 2023-11-11  Jonathan Wakely  <jwakely@redhat.com>
1116         PR libstdc++/112473
1117         * include/bits/utility.h (integer_sequence): Add static_assert.
1118         * testsuite/20_util/integer_sequence/112473.cc: New test.
1120 2023-11-11  Jonathan Wakely  <jwakely@redhat.com>
1122         * testsuite/20_util/pair/dangling_ref.cc: Add hosted effective
1123         target for specifiers using c++17_down.
1125 2023-11-11  Jonathan Wakely  <jwakely@redhat.com>
1127         * include/bits/shared_ptr_atomic.h (atomic_is_lock_free)
1128         (atomic_load_explicit, atomic_load, atomic_store_explicit)
1129         (atomic_store, atomic_exchange_explicit, atomic_exchange)
1130         (atomic_compare_exchange_strong, atomic_compare_exchange_weak)
1131         (atomic_compare_exchange_strong_explicit)
1132         (atomic_compare_exchange_weak_explicit): Add deprecated
1133         attribute for C++20 and later.
1134         * testsuite/20_util/shared_ptr/atomic/1.cc: Suppress deprecated
1135         warnings.
1136         * testsuite/20_util/shared_ptr/atomic/2.cc: Likewise.
1137         * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
1138         * testsuite/29_atomics/atomic/lwg3220.cc: Likewise.
1140 2023-11-11  Jonathan Wakely  <jwakely@redhat.com>
1142         * include/bits/std_mutex.h (lock_guard): Add [[nodiscard]]
1143         attribute to constructors.
1144         * include/bits/unique_lock.h (unique_lock): Likewise.
1145         * include/std/mutex (scoped_lock, scoped_lock<Mutex>): Likewise.
1146         * testsuite/30_threads/lock_guard/cons/nodiscard.cc: New test.
1147         * testsuite/30_threads/scoped_lock/cons/nodiscard.cc: New test.
1148         * testsuite/30_threads/unique_lock/cons/nodiscard.cc: New test.
1150 2023-11-11  Jonathan Wakely  <jwakely@redhat.com>
1152         * include/std/span (span, as_bytes, as_writable_bytes): Add
1153         [[nodiscard]] attribute on all non-void functions.
1154         * testsuite/23_containers/span/back_assert_neg.cc: Suppress
1155         nodiscard warning.
1156         * testsuite/23_containers/span/back_neg.cc: Likewise.
1157         * testsuite/23_containers/span/first_2_assert_neg.cc: Likewise.
1158         * testsuite/23_containers/span/first_assert_neg.cc: Likewise.
1159         * testsuite/23_containers/span/first_neg.cc: Likewise.
1160         * testsuite/23_containers/span/front_assert_neg.cc: Likewise.
1161         * testsuite/23_containers/span/front_neg.cc: Likewise.
1162         * testsuite/23_containers/span/index_op_assert_neg.cc: Likewise.
1163         * testsuite/23_containers/span/index_op_neg.cc: Likewise.
1164         * testsuite/23_containers/span/last_2_assert_neg.cc: Likewise.
1165         * testsuite/23_containers/span/last_assert_neg.cc: Likewise.
1166         * testsuite/23_containers/span/last_neg.cc: Likewise.
1167         * testsuite/23_containers/span/subspan_2_assert_neg.cc:
1168         Likewise.
1169         * testsuite/23_containers/span/subspan_3_assert_neg.cc:
1170         Likewise.
1171         * testsuite/23_containers/span/subspan_4_assert_neg.cc:
1172         Likewise.
1173         * testsuite/23_containers/span/subspan_5_assert_neg.cc:
1174         Likewise.
1175         * testsuite/23_containers/span/subspan_6_assert_neg.cc:
1176         Likewise.
1177         * testsuite/23_containers/span/subspan_assert_neg.cc: Likewise.
1178         * testsuite/23_containers/span/subspan_neg.cc: Likewise.
1179         * testsuite/23_containers/span/nodiscard.cc: New test.
1181 2023-11-11  Jonathan Wakely  <jwakely@redhat.com>
1183         PR libstdc++/111638
1184         * config.h.in: Regenerate.
1185         * configure: Regenerate.
1186         * linkage.m4 (GLIBCXX_MAYBE_UNDERSCORED_FUNCS): Remove.
1187         (GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1): Do not check for _foo.
1188         (GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1): Likewise.
1189         (GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2): Likewise.
1190         (GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3): Likewise.
1191         (GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2): Do not use
1192         GLIBCXX_MAYBE_UNDERSCORED_FUNCS.
1194 2023-11-11  Nathaniel Shead  <nathanieloshead@gmail.com>
1196         PR libstdc++/79700
1197         * include/c_global/cmath (acosf, acosl, asinf, asinl, atanf)
1198         (atanl, atan2f, atan2l, ceilf, ceill, cosf, cosl, coshf, coshl)
1199         (expf, expl, fabsf, fabsl, floorf, floorl, fmodf, fmodl, frexpf)
1200         (frexpl, ldexpf, ldexpl, logf, logl, log10f, log10l, modff)
1201         (modfl, powf, powl, sinf, sinl, sinhf, sinhl, sqrtf, sqrtl, tanf)
1202         (tanl, tanhf, tanhl): Add using-declarations in namespace std.
1203         * testsuite/26_numerics/headers/cmath/equivalent_functions.cc:
1204         New test.
1205         * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
1206         Add checks for existence of above names.
1208 2023-11-09  Arsen Arsenović  <arsen@aarsen.me>
1210         * testsuite/20_util/scoped_allocator/noexcept.cc: Mark as
1211         requiring hosted.
1213 2023-11-09  Arsen Arsenović  <arsen@aarsen.me>
1215         * include/bits/memoryfwd.h: Remove HOSTED check around allocator
1216         and its specializations.
1218 2023-11-09  Patrick Palka  <ppalka@redhat.com>
1220         PR libstdc++/112453
1221         * include/std/ranges (__detail::__box<_Tp>::operator*): Define
1222         && overloads as well.
1223         (__detail::__take_of_repeat_view): Forward __r when accessing
1224         its _M_value member.
1225         (__detail::__drop_of_repeat_view): Likewise.
1226         * testsuite/std/ranges/repeat/1.cc (test07): New test.
1228 2023-11-09  François Dumont  <fdumont@gcc.gnu.org>
1230         * include/bits/hashtable_policy.h (_RehashStateGuard): New.
1231         (_Insert_base<>::_M_insert_range(_IIt, _IIt, const _NodeGet&, false_type)):
1232         Adapt.
1233         * include/bits/hashtable.h (__rehash_guard_t): New.
1234         (__rehash_state): Remove.
1235         (_M_rehash): Remove.
1236         (_M_rehash_aux): Rename into _M_rehash.
1237         (_M_assign_elements, _M_insert_unique_node, _M_insert_multi_node): Adapt.
1238         (rehash): Adapt.
1240 2023-11-09  François Dumont  <fdumont@gcc.gnu.org>
1242         * include/bits/hashtable_policy.h
1243         (struct _NodePtrGuard<_HashtableAlloc, _NodePtr>): New.
1244         (_ReuseAllocNode::operator()(_Args&&...)): Use latter to guard allocated node
1245         pointer while constructing in place the value_type instance.
1247 2023-11-09  Alexandre Oliva  <oliva@adacore.com>
1249         PR libstdc++/110807
1250         * include/bits/stl_bvector.h (_Bit_iterator_base): Add
1251         _M_assume_normalized member function.  Call it in _M_bump_up,
1252         _M_bump_down, _M_incr, operator==, operator<=>, operator<, and
1253         operator-.
1254         (_Bit_iterator): Also call it in operator*.
1255         (_Bit_const_iterator): Likewise.
1257 2023-11-07  François Dumont  <fdumont@gcc.gnu.org>
1259         * include/bits/hashtable_policy.h
1260         (_Hashtable_alloc<>::_M_allocate_node): Add missing call to node destructor
1261         on construct exception.
1263 2023-11-07  Richard Biener  <rguenther@suse.de>
1265         PR libstdc++/112351
1266         * src/c++98/locale.cc (locale::facet::_S_initialize_once):
1267         Check whether _S_c_locale is already initialized.
1268         (locale::facet::_S_get_c_locale): Always perform non-threadsafe
1269         init when threadsafe init failed.
1271 2023-11-06  Ian Lance Taylor  <iant@golang.org>
1273         PR libbacktrace/111315
1274         PR libbacktrace/112263
1275         * acinclude.m4: Set -D_GNU_SOURCE in BACKTRACE_CPPFLAGS and when
1276         grepping link.h for dl_iterate_phdr.
1277         * configure: Regenerate.
1279 2023-11-06  Jonathan Wakely  <jwakely@redhat.com>
1281         * include/std/expected (expected::and_then, expected::or_else):
1282         Add string literals to static assertions.
1283         * include/std/optional (optional::and_then, optional::or_else):
1284         Likewise.
1286 2023-11-04  Feng Jisen  <J1senn@outlook.com>
1288         * include/bits/utility.h (_Nth_type): Remove redundant partial
1289         specialization.
1291 2023-11-04  Jonathan Wakely  <jwakely@redhat.com>
1293         PR libstdc++/110133
1294         * include/std/system_error (system_error::system_error): Group
1295         arguments so that concatenation can reuse rvalue's capacity.
1296         * src/c++11/system_error.cc (strerror_string): New function.
1297         [_GLIBCXX_HAVE_STRERROR_R] (use_strerror_result): New functions.
1298         (generic_error_category::message): Use strerror_string.
1299         (system_error_category::message): Likewise.
1301 2023-11-04  Jonathan Wakely  <jwakely@redhat.com>
1303         * doc/xml/manual/appendix_contributing.xml: Replace example that
1304         uses a BADNAME.
1305         * doc/html/manual/source_code_style.html: Regenerate.
1307 2023-11-02  Jonathan Wakely  <jwakely@redhat.com>
1309         PR libstdc++/112314
1310         * include/std/string_view (string_view::remove_suffix): Add
1311         debug assertion.
1312         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc:
1313         New test.
1314         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc:
1315         New test.
1317 2023-11-02  Jonathan Wakely  <jwakely@redhat.com>
1319         * acinclude.m4 (GLIBCXX_ENABLE_C99): Fix snprintf checks.
1320         * configure: Regenerate.
1322 2023-10-30  François Dumont  <fdumont@gcc.gnu.org>
1324         * config/abi/pre/gnu-versioned-namespace.ver: Add comment on recently
1325         added emul TLS symbols.
1327 2023-10-30  François Dumont  <fdumont@gcc.gnu.org>
1329         * src/experimental/contract.cc
1330         [_GLIBCXX_INLINE_VERSION](handle_contract_violation): Rework comment.
1331         Remove weak attribute.
1333 2023-10-29  François Dumont  <fdumont@gcc.gnu.org>
1335         * config/abi/pre/gnu-versioned-namespace.ver: Add missing emul TLS
1336         symbols.
1338 2023-10-29  François Dumont  <fdumont@gcc.gnu.org>
1340         * src/experimental/contract.cc
1341         [_GLIBCXX_INLINE_VERSION](handle_contract_violation): Provide symbol
1342         without version namespace decoration for gcc.
1344 2023-10-26  Jonathan Wakely  <jwakely@redhat.com>
1346         PR libstdc++/112089
1347         * include/std/shared_mutex (shared_lock::unlock): Change errc
1348         constant to operation_not_permitted.
1349         * testsuite/30_threads/shared_lock/locking/112089.cc: New test.
1351 2023-10-26  Jonathan Wakely  <jwakely@redhat.com>
1353         * testsuite/20_util/duration/io.cc: Double timeout using
1354         dg-timeout-factor.
1355         * testsuite/std/time/day/io.cc: Likewise.
1356         * testsuite/std/time/format.cc: Likewise.
1357         * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
1358         * testsuite/std/time/month/io.cc: Likewise.
1359         * testsuite/std/time/month_day/io.cc: Likewise.
1360         * testsuite/std/time/month_day_last/io.cc: Likewise.
1361         * testsuite/std/time/month_weekday/io.cc: Likewise.
1362         * testsuite/std/time/month_weekday_last/io.cc: Likewise.
1363         * testsuite/std/time/weekday/io.cc: Likewise.
1364         * testsuite/std/time/weekday_indexed/io.cc: Likewise.
1365         * testsuite/std/time/weekday_last/io.cc: Likewise.
1366         * testsuite/std/time/year/io.cc: Likewise.
1367         * testsuite/std/time/year_month/io.cc: Likewise.
1368         * testsuite/std/time/year_month_day/io.cc: Likewise.
1369         * testsuite/std/time/year_month_day_last/io.cc: Likewise.
1370         * testsuite/std/time/year_month_weekday/io.cc: Likewise.
1371         * testsuite/std/time/year_month_weekday_last/io.cc: Likewise.
1372         * testsuite/std/time/zoned_time/io.cc: Likewise.
1374 2023-10-25  Jonathan Wakely  <jwakely@redhat.com>
1376         PR libstdc++/111936
1377         * src/libbacktrace/Makefile.am: Add -prefer-pic to libtool
1378         compile commands.
1379         * src/libbacktrace/Makefile.in: Regenerate.
1381 2023-10-24  Paul M. Bendixen  <paulbendixen@gmail.com>
1383         * include/Makefile.am: Move cstdarg, cstdalign and cstdbool to
1384         freestanding.
1385         * include/Makefile.in: Regenerate.
1387 2023-10-22  Iain Sandoe  <iain@sandoe.co.uk>
1389         * configure: Regenerate.
1390         * configure.ac: Handle Darwin rpaths.
1391         * src/Makefile.am: Handle Darwin rpaths.
1392         * src/Makefile.in: Regenerate.
1394 2023-10-21  Jonathan Wakely  <jwakely@redhat.com>
1396         * include/bits/basic_string.h (_M_init_local_buf()): New
1397         function.
1398         (_M_use_local_data()): Use _M_init_local_buf.
1399         (basic_string(), basic_string(const Alloc&))
1400         (basic_string(basic_string&&))
1401         (basic_string(basic_string&&, const Alloc&)): Use
1402         _M_init_local_buf instead of _M_use_local_data().
1403         * include/bits/basic_string.tcc (swap(basic_string&))
1404         (_M_construct(InIter, InIter, input_iterator_tag))
1405         (_M_construct(InIter, InIter, forward_iterator_tag))
1406         (_M_construct(size_type, CharT), reserve()): Likewise.
1408 2023-10-21  Benjamin Brock  <brock@cs.berkeley.edu>
1410         * include/std/ranges (zip_view, adjacent_view): Implement
1411         workaround for LLVM-61763.
1413 2023-10-21  Dimitrij Mijoski  <dmjpp@hotmail.com>
1415         * testsuite/22_locale/codecvt/codecvt_unicode.h: Test length()
1417 2023-10-21  Jonathan Wakely  <jwakely@redhat.com>
1419         * include/bits/fs_dir.h (operator==(default_sentinel_t)): Fix
1420         indentation.
1422 2023-10-20  Marek Polacek  <polacek@redhat.com>
1424         PR testsuite/111883
1425         * include/std/charconv (from_chars): Add explicit casts.
1427 2023-10-19  François Dumont  <fdumont@gcc.gnu.org>
1429         * include/bits/hashtable_policy.h
1430         (_Hash_code_base::_M_hash_code(const _Hash&, const _Hash_node_value<>&)): Remove.
1431         (_Hash_code_base::_M_hash_code<_H2>(const _H2&, const _Hash_node_value<>&)): Remove.
1432         * include/bits/hashtable.h
1433         (_M_src_hash_code<_H2>(const _H2&, const key_type&, const __node_value_type&)): New.
1434         (_M_merge_unique<>, _M_merge_multi<>): Use latter.
1435         * testsuite/23_containers/unordered_map/modifiers/merge.cc
1436         (test04, test05, test06): New test cases.
1438 2023-10-13  Jakub Jelinek  <jakub@redhat.com>
1440         * testsuite/tr1/8_c_compatibility/cstdio/functions.cc (test01):
1441         Initialize stream to va_arg(ap, FILE*) rather than 0.
1442         * testsuite/tr1/8_c_compatibility/cwchar/functions.cc (test01):
1443         Likewise.
1445 2023-10-13  Hans-Peter Nilsson  <hp@axis.com>
1447         * testsuite/29_atomics/atomic/compare_exchange_padding.cc,
1448         testsuite/29_atomics/atomic_flag/clear/1.cc,
1449         testsuite/29_atomics/atomic_flag/cons/value_init.cc,
1450         testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc,
1451         testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc,
1452         testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc,
1453         testsuite/29_atomics/atomic_ref/generic.cc,
1454         testsuite/29_atomics/atomic_ref/integral.cc,
1455         testsuite/29_atomics/atomic_ref/pointer.cc: Replace
1456         dg-require-thread-fence with dg-require-atomic-cmpxchg-word.
1458 2023-10-13  Hans-Peter Nilsson  <hp@axis.com>
1460         * testsuite/lib/dg-options.exp (dg-require-atomic-cmpxchg-word):
1461         New proc.
1462         * testsuite/lib/libstdc++.exp (check_v3_target_atomic_cmpxchg_word):
1463         Ditto.
1465 2023-10-05  François Dumont  <fdumont@gcc.gnu.org>
1467         * config/abi/pre/gnu-versioned-namespace.ver: Add missing symbols
1468         for _Float{16,32,64,128,32x,64x,128x}.
1470 2023-10-04  Tom Tromey  <tromey@adacore.com>
1472         * python/libstdcxx/v6/printers.py
1473         (StdExpAnyPrinter.__init__): Qualify call to
1474         _string_types.
1476 2023-10-04  Tom Tromey  <tromey@adacore.com>
1478         * python/libstdcxx/v6/printers.py: Assume that
1479         _versioned_namespace is non-None.
1480         * python/libstdcxx/v6/xmethods.py (is_specialization_of):
1481         Assume that _versioned_namespace is non-None.
1483 2023-10-04  Tom Tromey  <tromey@adacore.com>
1485         * python/libstdcxx/v6/xmethods.py (_versioned_namespace):
1486         Define.
1488 2023-09-29  Dimitrij Mijoski  <dmjpp@hotmail.com>
1490         PR libstdc++/108976
1491         * src/c++11/codecvt.cc (read_utf8_code_point): Fix handing of
1492         surrogates in UTF-8.
1493         (ucs4_out): Fix handling of surrogates in UCS-4 -> UTF-8.
1494         (ucs4_in): Fix handling of range with odd number of bytes.
1495         (ucs4_out): Fix handling of surrogates in UCS-4 -> UTF-16.
1496         (ucs2_out): Fix handling of surrogates in UCS-2 -> UTF-16.
1497         (ucs2_in): Fix handling of range with odd number of bytes.
1498         (__codecvt_utf16_base<char16_t>::do_in): Likewise.
1499         (__codecvt_utf16_base<char32_t>::do_in): Likewise.
1500         (__codecvt_utf16_base<wchar_t>::do_in): Likewise.
1501         * testsuite/22_locale/codecvt/codecvt_unicode.cc: Renames, add
1502         tests for codecvt_utf16<char16_t> and codecvt_utf16<char32_t>.
1503         * testsuite/22_locale/codecvt/codecvt_unicode.h: Refactor UTF-8
1504         testing functions for char8_t, add more test cases for errors,
1505         add testing functions for codecvt_utf16.
1506         * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc:
1507         Renames, add tests for codecvt_utf16<whchar_t>.
1508         * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc (test06):
1509         Fix test.
1510         * testsuite/22_locale/codecvt/codecvt_unicode_char8_t.cc: New
1511         test.
1513 2023-09-29  Nathaniel Shead  <nathanieloshead@gmail.com>
1515         * include/bits/basic_string.h: (basic_string(basic_string&&)):
1516         Activate _M_local_buf when needed.
1517         (basic_string(basic_string&&, const _Alloc&)): Likewise.
1518         * include/bits/basic_string.tcc: (basic_string::swap): Likewise.
1519         * include/std/variant: (__detail::__variant::__construct_n): New.
1520         (__detail::__variant::__emplace): Use __construct_n.
1522 2023-09-28  Tom Tromey  <tromey@adacore.com>
1524         * python/libstdcxx/v6/printers.py (Printer.add_version)
1525         (add_one_template_type_printer)
1526         (FilteringTypePrinter.add_one_type_printer): Use Python
1527         "not in" operator.
1529 2023-09-28  Tom Tromey  <tromey@adacore.com>
1531         * python/libstdcxx/v6/printers.py (std_ratio_t_tuple):
1532         Remove.
1534 2023-09-28  Tom Tromey  <tromey@adacore.com>
1536         * python/libstdcxx/v6/printers.py
1537         (StdExpOptionalPrinter.__init__, lookup_node_type):
1538         Remove unused variables.
1540 2023-09-28  Tom Tromey  <tromey@adacore.com>
1542         * python/libstdcxx/v6/printers.py: Don't import 'os'.
1543         * python/libstdcxx/v6/__init__.py: Don't import 'gdb'.
1545 2023-09-28  Tom Tromey  <tromey@adacore.com>
1547         * python/libstdcxx/v6/printers.py: Use gdb.ValuePrinter
1548         everywhere.  Rename members to start with "_".
1550 2023-09-28  Tom Tromey  <tromey@adacore.com>
1552         * testsuite/lib/gdb-test.exp (gdb-test): Enable Python
1553         stack traces from gdb.
1555 2023-09-28  Jonathan Wakely  <jwakely@redhat.com>
1557         * python/libstdcxx/v6/xmethods.py (is_specialization_of): Define
1558         new function.
1559         (ArrayMethodsMatcher, DequeMethodsMatcher)
1560         (ForwardListMethodsMatcher, ListMethodsMatcher)
1561         (VectorMethodsMatcher, AssociativeContainerMethodsMatcher)
1562         (UniquePtrGetWorker, UniquePtrMethodsMatcher)
1563         (SharedPtrSubscriptWorker, SharedPtrMethodsMatcher): Use
1564         is_specialization_of instead of re.match.
1566 2023-09-28  Jonathan Wakely  <jwakely@redhat.com>
1568         * python/libstdcxx/v6/printers.py: Break long lines. Use raw
1569         strings for regular expressions. Add whitespace around
1570         operators.
1571         (is_member_of_namespace): Use isinstance to check type.
1572         (is_specialization_of): Likewise. Adjust template_name
1573         for versioned namespace instead of duplicating the re.match
1574         call.
1575         (StdExpAnyPrinter._string_types): New static method.
1576         (StdExpAnyPrinter.to_string): Use _string_types.
1578 2023-09-28  Jonathan Wakely  <jwakely@redhat.com>
1580         * python/libstdcxx/v6/printers.py: Format docstrings according
1581         to PEP 257.
1582         * python/libstdcxx/v6/xmethods.py: Likewise.
1584 2023-09-28  Tim Song  <t.canens.cpp@gmail.com>
1586         PR libstdc++/111050
1587         * include/bits/hashtable_policy.h
1588         (_Hash_node_value_base<>::_M_valptr(), _Hash_node_value_base<>::_M_v())
1589         Add [[__gnu__::__always_inline__]].
1591 2023-09-27  Jonathan Wakely  <jwakely@redhat.com>
1593         * python/libstdcxx/v6/printers.py (StdChronoTimeZoneRulePrinter):
1594         Fix incorrect number of replacement fields.
1596 2023-09-26  Hans-Peter Nilsson  <hp@axis.com>
1598         * testsuite/29_atomics/atomic_flag/cons/value_init.cc: Add
1599         dg-require-thread-fence.
1601 2023-09-25  Patrick Palka  <ppalka@redhat.com>
1603         * include/std/charconv (__detail::__integer_to_chars_result_type):
1604         Remove.
1605         (__detail::__to_chars_16): Use to_chars_result as return type.
1606         (__detail::__to_chars_10): Likewise.
1607         (__detail::__to_chars_8): Likewise.
1608         (__detail::__to_chars_2): Likewise.
1609         (__detail::__to_chars_i): Likewise.
1610         (__detail::__integer_from_chars_result_type): Inline the
1611         constraint into ...
1612         (from_chars): ... here.  Use __is_standard_integer in the
1613         constraint.  Encode constraint as a defaulted non-type template
1614         parameter instead of within the return type.
1616 2023-09-25  John David Anglin  <danglin@gcc.gnu.org>
1618         * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
1620 2023-09-25  Jonathan Wakely  <jwakely@redhat.com>
1622         PR libstdc++/111511
1623         PR c++/111512
1624         * include/std/array (to_array): Cast memcpy arguments to void*.
1625         * testsuite/23_containers/array/creation/111512.cc: New test.
1627 2023-09-25  Jonathan Wakely  <jwakely@redhat.com>
1629         * include/bits/move.h (forward_list): Define for C++23.
1630         * include/bits/version.def (forward_like): Define.
1631         * include/bits/version.h: Regenerate.
1632         * include/std/utility (__glibcxx_want_forward_like): Define.
1633         * testsuite/20_util/forward_like/1.cc: New test.
1634         * testsuite/20_util/forward_like/2_neg.cc: New test.
1635         * testsuite/20_util/forward_like/version.cc: New test.
1637 2023-09-19  Marek Polacek  <polacek@redhat.com>
1639         * testsuite/20_util/allocator/105975.cc: Add dg-error.
1641 2023-09-18  Patrick Palka  <ppalka@redhat.com>
1643         PR c++/63198
1644         PR c++/18474
1645         * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
1646         Make data member seed_seq::called mutable.
1647         * testsuite/26_numerics/random/independent_bits_engine/cons/seed_seq2.cc:
1648         Likewise.
1649         * testsuite/26_numerics/random/linear_congruential_engine/cons/seed_seq2.cc:
1650         Likewise.
1651         * testsuite/26_numerics/random/mersenne_twister_engine/cons/seed_seq2.cc:
1652         Likewise.
1653         * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
1654         Likewise.
1655         * testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed_seq2.cc:
1656         Likewise.
1657         * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed_seq2.cc:
1658         Likewise.
1660 2023-09-18  Jonathan Wakely  <jwakely@redhat.com>
1662         * doc/xml/manual/status_cxx2020.xml: Tweak P1466R3 status.
1663         * doc/html/manual/status.html: Regenerate.
1665 2023-09-18  Jonathan Wakely  <jwakely@redhat.com>
1667         * doc/xml/manual/configure.xml: Use conventional option name.
1668         * doc/xml/manual/status_cxx2020.xml: Update.
1669         * doc/xml/manual/status_cxx2023.xml: Update.
1670         * doc/html/*: Regenerate.
1672 2023-09-18  Jonathan Wakely  <jwakely@redhat.com>
1674         * doc/xml/manual/intro.xml: Clarify that building libstdc++
1675         separately from GCC is not supported.
1676         * doc/xml/manual/prerequisites.xml: Note msgfmt prerequisite for
1677         testing.
1678         * doc/html/manual/setup.html: Regenerate.
1680 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1682         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Do not
1683         restrict to pthreads targets.
1684         * testsuite/30_threads/jthread/3.cc: Likewise.
1685         * testsuite/30_threads/semaphore/100806.cc: Likewise.
1686         * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
1687         * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
1688         * testsuite/30_threads/semaphore/try_acquire_posix.cc: Likewise.
1690 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1692         * testsuite/18_support/coroutines/95917.cc: Remove dg-options
1693         -std=gnu++2a.
1694         * testsuite/18_support/coroutines/hash.cc: Likewise.
1695         * testsuite/18_support/coroutines/lwg3460.cc: Likewise.
1696         * testsuite/18_support/destroying_delete.cc: Likewise.
1697         * testsuite/18_support/source_location/1.cc: Likewise.
1698         * testsuite/18_support/source_location/consteval.cc: Likewise.
1699         * testsuite/18_support/source_location/version.cc: Likewise.
1700         * testsuite/19_diagnostics/error_category/operators/three_way.cc:
1701         Likewise.
1702         * testsuite/19_diagnostics/error_code/operators/three_way.cc:
1703         Likewise.
1704         * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
1705         Likewise.
1706         * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
1707         * testsuite/26_numerics/adjacent_difference/lwg2055.cc:
1708         Likewise.
1709         * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
1710         * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
1711         * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
1712         * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
1713         * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
1714         * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
1715         Likewise.
1716         * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
1717         Likewise.
1718         * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
1719         Likewise.
1720         * testsuite/28_regex/sub_match/compare_c++20.cc: Likewise.
1721         * testsuite/experimental/filesystem/iterators/106201.cc:
1722         Likewise.
1723         * testsuite/experimental/scopeguard/exit.cc: Likewise.
1724         * testsuite/experimental/scopeguard/uniqueres.cc: Likewise.
1726 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1728         * testsuite/30_threads/barrier/1.cc: Remove dg-options
1729         -std=gnu++20.
1730         * testsuite/30_threads/barrier/2.cc: Likewise.
1731         * testsuite/30_threads/barrier/arrive.cc: Likewise.
1732         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
1733         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
1734         * testsuite/30_threads/barrier/completion.cc: Likewise.
1735         * testsuite/30_threads/condition_variable/members/clock_neg.cc:
1736         Likewise.
1737         * testsuite/30_threads/condition_variable_any/members/clock_neg.cc:
1738         Likewise.
1739         * testsuite/30_threads/condition_variable_any/stop_token/1.cc:
1740         Likewise.
1741         * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
1742         Likewise.
1743         * testsuite/30_threads/future/members/clock_neg.cc: Likewise.
1744         * testsuite/30_threads/headers/stop_token/synopsis.cc: Likewise.
1745         * testsuite/30_threads/headers/thread/types_std_c++20.cc:
1746         Likewise.
1747         * testsuite/30_threads/jthread/1.cc: Likewise.
1748         * testsuite/30_threads/jthread/100612.cc: Likewise.
1749         * testsuite/30_threads/jthread/95989.cc: Likewise.
1750         * testsuite/30_threads/jthread/jthread.cc: Likewise.
1751         * testsuite/30_threads/jthread/version.cc: Likewise.
1752         * testsuite/30_threads/latch/1.cc: Likewise.
1753         * testsuite/30_threads/latch/2.cc: Likewise.
1754         * testsuite/30_threads/latch/3.cc: Likewise.
1755         * testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc:
1756         Likewise.
1757         * testsuite/30_threads/semaphore/1.cc: Likewise.
1758         * testsuite/30_threads/semaphore/2.cc: Likewise.
1759         * testsuite/30_threads/semaphore/least_max_value_neg.cc:
1760         Likewise.
1761         * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
1762         * testsuite/30_threads/shared_future/members/clock_neg.cc:
1763         Likewise.
1764         * testsuite/30_threads/shared_lock/locking/clock_neg.cc:
1765         Likewise.
1766         * testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc:
1767         Likewise.
1768         * testsuite/30_threads/stop_token/1.cc: Likewise.
1769         * testsuite/30_threads/stop_token/2.cc: Likewise.
1770         * testsuite/30_threads/stop_token/stop_callback.cc: Likewise.
1771         * testsuite/30_threads/stop_token/stop_callback/deadlock.cc:
1772         Likewise.
1773         * testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc:
1774         Likewise.
1775         * testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc:
1776         Likewise.
1777         * testsuite/30_threads/stop_token/stop_callback/invoke.cc:
1778         Likewise.
1779         * testsuite/30_threads/stop_token/stop_source.cc: Likewise.
1780         * testsuite/30_threads/stop_token/stop_source/assign.cc:
1781         Likewise.
1782         * testsuite/30_threads/stop_token/stop_token.cc: Likewise.
1783         * testsuite/30_threads/stop_token/stop_token/stop_possible.cc:
1784         Likewise.
1785         * testsuite/30_threads/thread/id/operators_c++20.cc: Likewise.
1786         * testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc:
1787         Likewise.
1788         * testsuite/30_threads/unique_lock/locking/clock_neg.cc:
1789         Likewise.
1791 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1793         * testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc:
1794         Remove dg-options -std=gnu++2a.
1795         * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
1796         Likewise.
1797         * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc:
1798         Likewise.
1799         * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
1800         Likewise.
1801         * testsuite/27_io/basic_istringstream/cons/char/1.cc: Likewise.
1802         * testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc:
1803         Likewise.
1804         * testsuite/27_io/basic_istringstream/str/char/2.cc: Likewise.
1805         * testsuite/27_io/basic_istringstream/str/wchar_t/2.cc:
1806         Likewise.
1807         * testsuite/27_io/basic_istringstream/view/char/1.cc: Likewise.
1808         * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
1809         Likewise.
1810         * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
1811         * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc:
1812         Likewise.
1813         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc:
1814         Likewise.
1815         * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise.
1816         * testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc:
1817         Likewise.
1818         * testsuite/27_io/basic_ostringstream/str/char/3.cc: Likewise.
1819         * testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc:
1820         Likewise.
1821         * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
1822         * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
1823         Likewise.
1824         * testsuite/27_io/basic_stringbuf/cons/char/2.cc: Likewise.
1825         * testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc: Likewise.
1826         * testsuite/27_io/basic_stringbuf/str/char/4.cc: Likewise.
1827         * testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc: Likewise.
1828         * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
1829         * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
1830         * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise.
1831         * testsuite/27_io/basic_stringstream/cons/char/97719.cc:
1832         Likewise.
1833         * testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc:
1834         Likewise.
1835         * testsuite/27_io/basic_stringstream/str/char/5.cc: Likewise.
1836         * testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc:
1837         Likewise.
1838         * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
1839         * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
1840         Likewise.
1841         * testsuite/27_io/basic_syncbuf/1.cc: Likewise.
1842         * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
1843         * testsuite/27_io/basic_syncbuf/basic_ops/1.cc: Likewise.
1844         * testsuite/27_io/basic_syncbuf/requirements/types.cc: Likewise.
1845         * testsuite/27_io/basic_syncbuf/sync_ops/1.cc: Likewise.
1846         * testsuite/27_io/basic_syncstream/1.cc: Likewise.
1847         * testsuite/27_io/basic_syncstream/2.cc: Likewise.
1848         * testsuite/27_io/basic_syncstream/basic_ops/1.cc: Likewise.
1849         * testsuite/27_io/basic_syncstream/requirements/types.cc:
1850         Likewise.
1851         * testsuite/27_io/filesystem/iterators/106201.cc: Likewise.
1852         * testsuite/27_io/filesystem/iterators/lwg3719.cc: Likewise.
1853         * testsuite/27_io/filesystem/path/factory/u8path-depr.cc:
1854         Likewise.
1855         * testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc:
1856         Likewise.
1858 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1860         * testsuite/26_numerics/accumulate/constexpr.cc: Remove
1861         dg-options -std=gnu++2a.
1862         * testsuite/26_numerics/accumulate/lwg2055.cc: Likewise.
1863         * testsuite/26_numerics/adjacent_difference/constexpr.cc:
1864         Likewise.
1865         * testsuite/26_numerics/bit/bit.cast/105027.cc: Likewise.
1866         * testsuite/26_numerics/bit/bit.cast/bit_cast.cc: Likewise.
1867         * testsuite/26_numerics/bit/bit.cast/version.cc: Likewise.
1868         * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
1869         * testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc:
1870         Likewise.
1871         * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
1872         * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
1873         * testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc: Likewise.
1874         * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
1875         * testsuite/26_numerics/bit/bit.rotate/rotr.cc: Likewise.
1876         * testsuite/26_numerics/bit/header-2.cc: Likewise.
1877         * testsuite/26_numerics/bit/header.cc: Likewise.
1878         * testsuite/26_numerics/complex/1.cc: Likewise.
1879         * testsuite/26_numerics/complex/2.cc: Likewise.
1880         * testsuite/26_numerics/complex/comparison_operators/more_constexpr.cc:
1881         Likewise.
1882         * testsuite/26_numerics/complex/operators/more_constexpr.cc:
1883         Likewise.
1884         * testsuite/26_numerics/complex/requirements/more_constexpr.cc:
1885         Likewise.
1886         * testsuite/26_numerics/complex/value_operations/more_constexpr.cc:
1887         Likewise.
1888         * testsuite/26_numerics/endian/1.cc: Likewise.
1889         * testsuite/26_numerics/endian/2.cc: Likewise.
1890         * testsuite/26_numerics/endian/3.cc: Likewise.
1891         * testsuite/26_numerics/exclusive_scan/constexpr.cc: Likewise.
1892         * testsuite/26_numerics/inclusive_scan/constexpr.cc: Likewise.
1893         * testsuite/26_numerics/inner_product/constexpr.cc: Likewise.
1894         * testsuite/26_numerics/inner_product/lwg2055.cc: Likewise.
1895         * testsuite/26_numerics/iota/constexpr.cc: Likewise.
1896         * testsuite/26_numerics/lerp/1.cc: Likewise.
1897         * testsuite/26_numerics/lerp/constexpr.cc: Likewise.
1898         * testsuite/26_numerics/lerp/version.cc: Likewise.
1899         * testsuite/26_numerics/midpoint/floating.cc: Likewise.
1900         * testsuite/26_numerics/midpoint/integral.cc: Likewise.
1901         * testsuite/26_numerics/midpoint/pointer.cc: Likewise.
1902         * testsuite/26_numerics/midpoint/pointer_neg.cc: Likewise.
1903         * testsuite/26_numerics/midpoint/version.cc: Likewise.
1904         * testsuite/26_numerics/numbers/1.cc: Likewise.
1905         * testsuite/26_numerics/numbers/2.cc: Likewise.
1906         * testsuite/26_numerics/numbers/3.cc: Likewise.
1907         * testsuite/26_numerics/numbers/float128.cc: Likewise.
1908         * testsuite/26_numerics/numbers/nonfloat_neg.cc: Likewise.
1909         * testsuite/26_numerics/partial_sum/constexpr.cc: Likewise.
1910         * testsuite/26_numerics/partial_sum/lwg2055.cc: Likewise.
1911         * testsuite/26_numerics/random/concept.cc: Likewise.
1912         * testsuite/26_numerics/reduce/constexpr.cc: Likewise.
1913         * testsuite/26_numerics/slice/compare.cc: Likewise.
1914         * testsuite/26_numerics/transform_exclusive_scan/constexpr.cc:
1915         Likewise.
1916         * testsuite/26_numerics/transform_inclusive_scan/constexpr.cc:
1917         Likewise.
1918         * testsuite/26_numerics/transform_reduce/constexpr.cc: Likewise.
1920 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1922         * testsuite/24_iterators/aliases.cc: Remove dg-options
1923         -std=gnu++2a.
1924         * testsuite/24_iterators/associated_types/incrementable.traits.cc:
1925         Likewise.
1926         * testsuite/24_iterators/associated_types/iterator.traits.cc:
1927         Likewise.
1928         * testsuite/24_iterators/associated_types/readable.traits.cc:
1929         Likewise.
1930         * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
1931         Likewise.
1932         * testsuite/24_iterators/back_insert_iterator/pr93884.cc:
1933         Likewise.
1934         * testsuite/24_iterators/bidirectional/concept.cc: Likewise.
1935         * testsuite/24_iterators/common_iterator/1.cc: Likewise.
1936         * testsuite/24_iterators/common_iterator/100823.cc: Likewise.
1937         * testsuite/24_iterators/common_iterator/2.cc: Likewise.
1938         * testsuite/24_iterators/contiguous/concept.cc: Likewise.
1939         * testsuite/24_iterators/contiguous/tag.cc: Likewise.
1940         * testsuite/24_iterators/counted_iterator/1.cc: Likewise.
1941         * testsuite/24_iterators/counted_iterator/lwg3389.cc: Likewise.
1942         * testsuite/24_iterators/counted_iterator/lwg3643.cc: Likewise.
1943         * testsuite/24_iterators/customization_points/92894.cc:
1944         Likewise.
1945         * testsuite/24_iterators/customization_points/iter_move.cc:
1946         Likewise.
1947         * testsuite/24_iterators/customization_points/iter_swap.cc:
1948         Likewise.
1949         * testsuite/24_iterators/customization_points/lwg3420.cc:
1950         Likewise.
1951         * testsuite/24_iterators/forward/concept.cc: Likewise.
1952         * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
1953         Likewise.
1954         * testsuite/24_iterators/front_insert_iterator/pr93884.cc:
1955         Likewise.
1956         * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
1957         Likewise.
1958         * testsuite/24_iterators/indirect_callable/92894.cc: Likewise.
1959         * testsuite/24_iterators/indirect_callable/projected-adl.cc:
1960         Likewise.
1961         * testsuite/24_iterators/indirect_callable/projected.cc:
1962         Likewise.
1963         * testsuite/24_iterators/input/concept.cc: Likewise.
1964         * testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise.
1965         * testsuite/24_iterators/istream_iterator/cons/sentinel.cc:
1966         Likewise.
1967         * testsuite/24_iterators/istream_iterator/sentinel.cc: Likewise.
1968         * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc:
1969         Likewise.
1970         * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
1971         Likewise.
1972         * testsuite/24_iterators/move_iterator/cust.cc: Likewise.
1973         * testsuite/24_iterators/move_iterator/dr3435.cc: Likewise.
1974         * testsuite/24_iterators/move_iterator/input_iterator.cc:
1975         Likewise.
1976         * testsuite/24_iterators/move_iterator/lwg3390.cc: Likewise.
1977         * testsuite/24_iterators/move_iterator/lwg3391.cc: Likewise.
1978         * testsuite/24_iterators/move_iterator/move_only.cc: Likewise.
1979         * testsuite/24_iterators/move_iterator/p2520r0.cc: Likewise.
1980         * testsuite/24_iterators/move_iterator/rel_ops_c++20.cc:
1981         Likewise.
1982         * testsuite/24_iterators/move_iterator/sentinel.cc: Likewise.
1983         * testsuite/24_iterators/normal_iterator/cmp_c++20.cc: Likewise.
1984         * testsuite/24_iterators/output/concept.cc: Likewise.
1985         * testsuite/24_iterators/random_access/concept.cc: Likewise.
1986         * testsuite/24_iterators/range_access/range_access_cpp20.cc:
1987         Likewise.
1988         * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
1989         Likewise.
1990         * testsuite/24_iterators/range_operations/100768.cc: Likewise.
1991         * testsuite/24_iterators/range_operations/advance.cc: Likewise.
1992         * testsuite/24_iterators/range_operations/advance_overflow.cc:
1993         Likewise.
1994         * testsuite/24_iterators/range_operations/distance.cc: Likewise.
1995         * testsuite/24_iterators/range_operations/lwg3392.cc: Likewise.
1996         * testsuite/24_iterators/range_operations/next.cc: Likewise.
1997         * testsuite/24_iterators/range_operations/prev.cc: Likewise.
1998         * testsuite/24_iterators/reverse_iterator/cust.cc: Likewise.
1999         * testsuite/24_iterators/reverse_iterator/dr3435.cc: Likewise.
2000         * testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc:
2001         Likewise.
2003 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
2005         * testsuite/23_containers/array/comparison_operators/96851.cc:
2006         Remove dg-options -std=gnu++2a.
2007         * testsuite/23_containers/array/comparison_operators/constexpr.cc:
2008         Likewise.
2009         * testsuite/23_containers/array/creation/1.cc: Likewise.
2010         * testsuite/23_containers/array/creation/110167.cc: Likewise.
2011         * testsuite/23_containers/array/creation/2.cc: Likewise.
2012         * testsuite/23_containers/array/creation/3_neg.cc: Likewise.
2013         * testsuite/23_containers/array/requirements/constexpr_fill.cc:
2014         Likewise.
2015         * testsuite/23_containers/array/requirements/constexpr_swap.cc:
2016         Likewise.
2017         * testsuite/23_containers/deque/48101-3_neg.cc: Likewise.
2018         * testsuite/23_containers/deque/erasure.cc: Likewise.
2019         * testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc:
2020         Likewise.
2021         * testsuite/23_containers/deque/operators/cmp_c++20.cc:
2022         Likewise.
2023         * testsuite/23_containers/forward_list/48101-3_neg.cc: Likewise.
2024         * testsuite/23_containers/forward_list/cmp_c++20.cc: Likewise.
2025         * testsuite/23_containers/forward_list/erasure.cc: Likewise.
2026         * testsuite/23_containers/forward_list/modifiers/92878_92947.cc:
2027         Likewise.
2028         * testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc:
2029         Likewise.
2030         * testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc:
2031         Likewise.
2032         * testsuite/23_containers/list/48101-3_neg.cc: Likewise.
2033         * testsuite/23_containers/list/cmp_c++20.cc: Likewise.
2034         * testsuite/23_containers/list/erasure.cc: Likewise.
2035         * testsuite/23_containers/list/modifiers/emplace/92878_92947.cc:
2036         Likewise.
2037         * testsuite/23_containers/list/operations/remove_cxx20_return.cc:
2038         Likewise.
2039         * testsuite/23_containers/list/operations/unique_cxx20_return.cc:
2040         Likewise.
2041         * testsuite/23_containers/map/48101-3_neg.cc: Likewise.
2042         * testsuite/23_containers/map/erasure.cc: Likewise.
2043         * testsuite/23_containers/map/modifiers/emplace/92878_92947.cc:
2044         Likewise.
2045         * testsuite/23_containers/map/operations/contains.cc: Likewise.
2046         * testsuite/23_containers/map/operators/cmp_c++20.cc: Likewise.
2047         * testsuite/23_containers/multimap/48101-3_neg.cc: Likewise.
2048         * testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc:
2049         Likewise.
2050         * testsuite/23_containers/multimap/operations/contains.cc:
2051         Likewise.
2052         * testsuite/23_containers/multimap/operators/cmp_c++20.cc:
2053         Likewise.
2054         * testsuite/23_containers/multiset/48101-3_neg.cc: Likewise.
2055         * testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc:
2056         Likewise.
2057         * testsuite/23_containers/multiset/operations/contains.cc:
2058         Likewise.
2059         * testsuite/23_containers/multiset/operators/cmp_c++20.cc:
2060         Likewise.
2061         * testsuite/23_containers/priority_queue/92878_92947.cc:
2062         Likewise.
2063         * testsuite/23_containers/queue/92878_92947.cc: Likewise.
2064         * testsuite/23_containers/queue/cmp_c++20.cc: Likewise.
2065         * testsuite/23_containers/set/48101-3_neg.cc: Likewise.
2066         * testsuite/23_containers/set/erasure.cc: Likewise.
2067         * testsuite/23_containers/set/modifiers/emplace/92878_92947.cc:
2068         Likewise.
2069         * testsuite/23_containers/set/operations/contains.cc: Likewise.
2070         * testsuite/23_containers/set/operators/cmp_c++20.cc: Likewise.
2071         * testsuite/23_containers/span/1.cc: Likewise.
2072         * testsuite/23_containers/span/101411.cc: Likewise.
2073         * testsuite/23_containers/span/2.cc: Likewise.
2074         * testsuite/23_containers/span/deduction.cc: Likewise.
2075         * testsuite/23_containers/span/explicit.cc: Likewise.
2076         * testsuite/23_containers/span/layout_compat.cc: Likewise.
2077         * testsuite/23_containers/span/lwg3255.cc: Likewise.
2078         * testsuite/23_containers/span/nothrow_cons.cc: Likewise.
2079         * testsuite/23_containers/span/trivially_copyable.cc: Likewise.
2080         * testsuite/23_containers/stack/92878_92947.cc: Likewise.
2081         * testsuite/23_containers/stack/cmp_c++20.cc: Likewise.
2082         * testsuite/23_containers/unordered_map/48101-3_neg.cc:
2083         Likewise.
2084         * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
2085         * testsuite/23_containers/unordered_map/modifiers/92878_92947.cc:
2086         Likewise.
2087         * testsuite/23_containers/unordered_map/operations/1.cc:
2088         Likewise.
2089         * testsuite/23_containers/unordered_map/operations/contains.cc:
2090         Likewise.
2091         * testsuite/23_containers/unordered_multimap/48101-3_neg.cc:
2092         Likewise.
2093         * testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc:
2094         Likewise.
2095         * testsuite/23_containers/unordered_multimap/operations/1.cc:
2096         Likewise.
2097         * testsuite/23_containers/unordered_multimap/operations/contains.cc:
2098         Likewise.
2099         * testsuite/23_containers/unordered_multiset/48101-3_neg.cc:
2100         Likewise.
2101         * testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc:
2102         Likewise.
2103         * testsuite/23_containers/unordered_multiset/operations/1.cc:
2104         Likewise.
2105         * testsuite/23_containers/unordered_multiset/operations/contains.cc:
2106         Likewise.
2107         * testsuite/23_containers/unordered_set/48101-3_neg.cc:
2108         Likewise.
2109         * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
2110         * testsuite/23_containers/unordered_set/modifiers/92878_92947.cc:
2111         Likewise.
2112         * testsuite/23_containers/unordered_set/operations/1.cc:
2113         Likewise.
2114         * testsuite/23_containers/unordered_set/operations/contains.cc:
2115         Likewise.
2116         * testsuite/23_containers/vector/48101-3_neg.cc: Likewise.
2117         * testsuite/23_containers/vector/bool/capacity/constexpr.cc:
2118         Likewise.
2119         * testsuite/23_containers/vector/bool/cmp_c++20.cc: Likewise.
2120         * testsuite/23_containers/vector/bool/cons/constexpr.cc:
2121         Likewise.
2122         * testsuite/23_containers/vector/bool/element_access/constexpr.cc:
2123         Likewise.
2124         * testsuite/23_containers/vector/bool/iterator_c++20.cc:
2125         Likewise.
2126         * testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc:
2127         Likewise.
2128         * testsuite/23_containers/vector/bool/modifiers/constexpr.cc:
2129         Likewise.
2130         * testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc:
2131         Likewise.
2132         * testsuite/23_containers/vector/capacity/constexpr.cc:
2133         Likewise.
2134         * testsuite/23_containers/vector/cmp_c++20.cc: Likewise.
2135         * testsuite/23_containers/vector/cons/constexpr.cc: Likewise.
2136         * testsuite/23_containers/vector/data_access/constexpr.cc:
2137         Likewise.
2138         * testsuite/23_containers/vector/element_access/constexpr.cc:
2139         Likewise.
2140         * testsuite/23_containers/vector/erasure.cc: Likewise.
2141         * testsuite/23_containers/vector/modifiers/assign/constexpr.cc:
2142         Likewise.
2143         * testsuite/23_containers/vector/modifiers/constexpr.cc:
2144         Likewise.
2145         * testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc:
2146         Likewise.
2147         * testsuite/23_containers/vector/modifiers/swap/constexpr.cc:
2148         Likewise.
2149         * testsuite/23_containers/vector/requirements/version.cc:
2150         Likewise.
2152 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
2154         * testsuite/21_strings/basic_string/cons/char/105995.cc: Remove
2155         dg-options -std=gnu++20.
2156         * testsuite/21_strings/basic_string/cons/char/constexpr.cc:
2157         Likewise.
2158         * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc:
2159         Likewise.
2160         * testsuite/21_strings/basic_string/erasure.cc: Likewise.
2161         * testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
2162         Likewise.
2163         * testsuite/21_strings/basic_string/literals/constexpr.cc:
2164         Likewise.
2165         * testsuite/21_strings/basic_string/modifiers/constexpr.cc:
2166         Likewise.
2167         * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
2168         Likewise.
2169         * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
2170         Likewise.
2171         * testsuite/21_strings/basic_string/operations/ends_with/char.cc:
2172         Likewise.
2173         * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc:
2174         Likewise.
2175         * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
2176         Likewise.
2177         * testsuite/21_strings/basic_string/operations/starts_with/char.cc:
2178         Likewise.
2179         * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc:
2180         Likewise.
2181         * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
2182         Likewise.
2183         * testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc:
2184         Likewise.
2185         * testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc:
2186         Likewise.
2187         * testsuite/21_strings/basic_string_view/cons/char/range.cc:
2188         Likewise.
2189         * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
2190         Likewise.
2191         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc:
2192         Likewise.
2193         * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
2194         Likewise.
2195         * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc:
2196         Likewise.
2197         * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
2198         Likewise.
2199         * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
2200         Likewise.
2201         * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc:
2202         Likewise.
2203         * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
2204         Likewise.
2205         * testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc:
2206         Likewise.
2207         * testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc:
2208         Likewise.
2209         * testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc:
2210         Likewise.
2211         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
2212         Likewise.
2214 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
2216         * testsuite/20_util/allocator/105975.cc: Remove dg-options
2217         -std=gnu++2a.
2218         * testsuite/20_util/allocator/rebind_c++20.cc: Likewise.
2219         * testsuite/20_util/allocator/requirements/constexpr.cc:
2220         Likewise.
2221         * testsuite/20_util/allocator/requirements/typedefs_c++20.cc:
2222         Likewise.
2223         * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
2224         * testsuite/20_util/allocator_traits/header.cc: Likewise.
2225         * testsuite/20_util/allocator_traits/members/92878_92947.cc:
2226         Likewise.
2227         * testsuite/20_util/any/assign/92878_92947.cc: Likewise.
2228         * testsuite/20_util/any/cons/92878_92947.cc: Likewise.
2229         * testsuite/20_util/assume_aligned/1.cc: Likewise.
2230         * testsuite/20_util/assume_aligned/2_neg.cc: Likewise.
2231         * testsuite/20_util/assume_aligned/3.cc: Likewise.
2232         * testsuite/20_util/assume_aligned/97132.cc: Likewise.
2233         * testsuite/20_util/bind/constexpr.cc: Likewise.
2234         * testsuite/20_util/bitset/operations/96303.cc: Likewise.
2235         * testsuite/20_util/common_reference/100894.cc: Likewise.
2236         * testsuite/20_util/common_reference/requirements/alias_decl.cc:
2237         Likewise.
2238         * testsuite/20_util/common_reference/requirements/explicit_instantiation.cc:
2239         Likewise.
2240         * testsuite/20_util/common_reference/requirements/typedefs.cc:
2241         Likewise.
2242         * testsuite/20_util/duration/comparison_operators/three_way.cc:
2243         Likewise.
2244         * testsuite/20_util/exchange/constexpr.cc: Likewise.
2245         * testsuite/20_util/exchange/noexcept.cc: Likewise.
2246         * testsuite/20_util/from_chars/1_c++20_neg.cc: Likewise.
2247         * testsuite/20_util/from_chars/compare.cc: Likewise.
2248         * testsuite/20_util/function_objects/bind_front/1.cc: Likewise.
2249         * testsuite/20_util/function_objects/bind_front/107784.cc:
2250         Likewise.
2251         * testsuite/20_util/function_objects/bind_front/111327.cc:
2252         Likewise.
2253         * testsuite/20_util/function_objects/bind_front/2.cc: Likewise.
2254         * testsuite/20_util/function_objects/bind_front/97101.cc:
2255         Likewise.
2256         * testsuite/20_util/function_objects/bind_front/constexpr.cc:
2257         Likewise.
2258         * testsuite/20_util/function_objects/constexpr_searcher.cc:
2259         Likewise.
2260         * testsuite/20_util/function_objects/identity/1.cc: Likewise.
2261         * testsuite/20_util/function_objects/invoke/constexpr.cc:
2262         Likewise.
2263         * testsuite/20_util/function_objects/mem_fn/constexpr.cc:
2264         Likewise.
2265         * testsuite/20_util/function_objects/not_fn/constexpr.cc:
2266         Likewise.
2267         * testsuite/20_util/integer_comparisons/1.cc: Likewise.
2268         * testsuite/20_util/integer_comparisons/2.cc: Likewise.
2269         * testsuite/20_util/integer_comparisons/equal.cc: Likewise.
2270         * testsuite/20_util/integer_comparisons/equal_neg.cc: Likewise.
2271         * testsuite/20_util/integer_comparisons/greater.cc: Likewise.
2272         * testsuite/20_util/integer_comparisons/greater_equal.cc:
2273         Likewise.
2274         * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
2275         Likewise.
2276         * testsuite/20_util/integer_comparisons/greater_neg.cc:
2277         Likewise.
2278         * testsuite/20_util/integer_comparisons/in_range.cc: Likewise.
2279         * testsuite/20_util/integer_comparisons/in_range_neg.cc:
2280         Likewise.
2281         * testsuite/20_util/integer_comparisons/less.cc: Likewise.
2282         * testsuite/20_util/integer_comparisons/less_equal.cc: Likewise.
2283         * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
2284         Likewise.
2285         * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise.
2286         * testsuite/20_util/integer_comparisons/not_equal.cc: Likewise.
2287         * testsuite/20_util/integer_comparisons/not_equal_neg.cc:
2288         Likewise.
2289         * testsuite/20_util/is_bounded_array/requirements/explicit_instantiation.cc:
2290         Likewise.
2291         * testsuite/20_util/is_bounded_array/requirements/typedefs.cc:
2292         Likewise.
2293         * testsuite/20_util/is_bounded_array/value.cc: Likewise.
2294         * testsuite/20_util/is_constant_evaluated/1.cc: Likewise.
2295         * testsuite/20_util/is_constant_evaluated/noexcept.cc: Likewise.
2296         * testsuite/20_util/is_constructible/92878_92947.cc: Likewise.
2297         * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
2298         Likewise.
2299         * testsuite/20_util/is_layout_compatible/value.cc: Likewise.
2300         * testsuite/20_util/is_layout_compatible/version.cc: Likewise.
2301         * testsuite/20_util/is_nothrow_constructible/value_c++20.cc:
2302         Likewise.
2303         * testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc:
2304         Likewise.
2305         * testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc:
2306         Likewise.
2307         * testsuite/20_util/is_nothrow_convertible/value.cc: Likewise.
2308         * testsuite/20_util/is_pod/deprecated-2a.cc: Likewise.
2309         * testsuite/20_util/is_pointer_interconvertible/value.cc:
2310         Likewise.
2311         * testsuite/20_util/is_pointer_interconvertible/version.cc:
2312         Likewise.
2313         * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
2314         Likewise.
2315         * testsuite/20_util/is_unbounded_array/requirements/explicit_instantiation.cc:
2316         Likewise.
2317         * testsuite/20_util/is_unbounded_array/requirements/typedefs.cc:
2318         Likewise.
2319         * testsuite/20_util/is_unbounded_array/value.cc: Likewise.
2320         * testsuite/20_util/optional/assignment/92878_92947.cc:
2321         Likewise.
2322         * testsuite/20_util/optional/cons/92878_92947.cc: Likewise.
2323         * testsuite/20_util/optional/constexpr/assign.cc: Likewise.
2324         * testsuite/20_util/optional/constexpr/cons/conv.cc: Likewise.
2325         * testsuite/20_util/optional/constexpr/modifiers.cc: Likewise.
2326         * testsuite/20_util/optional/constexpr/swap.cc: Likewise.
2327         * testsuite/20_util/optional/relops/96269.cc: Likewise.
2328         * testsuite/20_util/optional/relops/three_way.cc: Likewise.
2329         * testsuite/20_util/pair/comparison_operators/constexpr_c++20.cc:
2330         Likewise.
2331         * testsuite/20_util/pair/cons/92878_92947.cc: Likewise.
2332         * testsuite/20_util/pair/constexpr_assign.cc: Likewise.
2333         * testsuite/20_util/pair/constexpr_swap.cc: Likewise.
2334         * testsuite/20_util/pair/requirements/structural.cc: Likewise.
2335         * testsuite/20_util/pointer_traits/pointer_to_constexpr.cc:
2336         Likewise.
2337         * testsuite/20_util/polymorphic_allocator/allocate_object.cc:
2338         Likewise.
2339         * testsuite/20_util/polymorphic_allocator/construct_c++2a.cc:
2340         Likewise.
2341         * testsuite/20_util/polymorphic_allocator/lwg3237.cc: Likewise.
2342         * testsuite/20_util/reference_wrapper/constexpr.cc: Likewise.
2343         * testsuite/20_util/reference_wrapper/incomplete.cc: Likewise.
2344         * testsuite/20_util/remove_cvref/requirements/alias_decl.cc:
2345         Likewise.
2346         * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
2347         Likewise.
2348         * testsuite/20_util/remove_cvref/value.cc: Likewise.
2349         * testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc:
2350         Likewise.
2351         * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
2352         Likewise.
2353         * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
2354         * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc:
2355         Likewise.
2356         * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Likewise.
2357         * testsuite/20_util/shared_ptr/creation/92878_92947.cc:
2358         Likewise.
2359         * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
2360         * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
2361         * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
2362         * testsuite/20_util/time_point/4.cc: Likewise.
2363         * testsuite/20_util/time_point/comparison_operators/three_way.cc:
2364         Likewise.
2365         * testsuite/20_util/to_address/1.cc: Likewise.
2366         * testsuite/20_util/to_address/1_neg.cc: Likewise.
2367         * testsuite/20_util/to_address/debug.cc: Likewise.
2368         * testsuite/20_util/to_address/lwg3545.cc: Likewise.
2369         * testsuite/20_util/to_chars/compare.cc: Likewise.
2370         * testsuite/20_util/tuple/comparison_operators/three_way.cc:
2371         Likewise.
2372         * testsuite/20_util/tuple/cons/102270.cc: Likewise.
2373         * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
2374         Likewise.
2375         * testsuite/20_util/tuple/constexpr_swap.cc: Likewise.
2376         * testsuite/20_util/type_identity/requirements/alias_decl.cc:
2377         Likewise.
2378         * testsuite/20_util/type_identity/requirements/explicit_instantiation.cc:
2379         Likewise.
2380         * testsuite/20_util/type_identity/requirements/typedefs.cc:
2381         Likewise.
2382         * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
2383         Likewise.
2384         * testsuite/20_util/unique_ptr/comparison/compare_c++20.cc:
2385         Likewise.
2386         * testsuite/20_util/unique_ptr/creation/92878_92947.cc:
2387         Likewise.
2388         * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
2389         Likewise.
2390         * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc:
2391         Likewise.
2392         * testsuite/20_util/unique_ptr/io/lwg2948.cc: Likewise.
2393         * testsuite/20_util/unwrap_reference/1.cc: Likewise.
2394         * testsuite/20_util/unwrap_reference/2.cc: Likewise.
2395         * testsuite/20_util/unwrap_reference/3.cc: Likewise.
2396         * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise.
2397         * testsuite/20_util/uses_allocator/lwg3527.cc: Likewise.
2398         * testsuite/20_util/uses_allocator/make_obj.cc: Likewise.
2399         * testsuite/20_util/uses_allocator/uninitialized_construct.cc:
2400         Likewise.
2401         * testsuite/20_util/variant/92878_92947.cc: Likewise.
2402         * testsuite/20_util/variant/95915.cc: Likewise.
2403         * testsuite/20_util/variant/constexpr.cc: Likewise.
2404         * testsuite/20_util/variant/relops/three_way.cc: Likewise.
2405         * testsuite/20_util/variant/visit_neg.cc: Likewise.
2406         * testsuite/20_util/variant/visit_r.cc: Likewise.
2407         * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
2409 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
2411         * testsuite/18_support/comparisons/algorithms/fallback.cc:
2412         Remove dg-options -std=gnu++2a.
2413         * testsuite/18_support/comparisons/algorithms/partial_order.cc:
2414         Likewise.
2415         * testsuite/18_support/comparisons/algorithms/strong_order.cc:
2416         Likewise.
2417         * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
2418         Likewise.
2419         * testsuite/18_support/comparisons/algorithms/weak_order.cc:
2420         Likewise.
2421         * testsuite/18_support/comparisons/categories/94565.cc:
2422         Likewise.
2423         * testsuite/18_support/comparisons/categories/partialord.cc:
2424         Likewise.
2425         * testsuite/18_support/comparisons/categories/strongord.cc:
2426         Likewise.
2427         * testsuite/18_support/comparisons/categories/weakord.cc:
2428         Likewise.
2429         * testsuite/18_support/comparisons/categories/zero_neg.cc:
2430         Likewise.
2431         * testsuite/18_support/comparisons/common/1.cc: Likewise.
2432         * testsuite/18_support/comparisons/object/93479.cc: Likewise.
2433         * testsuite/18_support/comparisons/object/lwg3530.cc: Likewise.
2435 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
2437         * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
2438         Remove dg-options -std=gnu++2a.
2439         * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
2440         * testsuite/29_atomics/atomic/lock_free_aliases.cc: Likewise.
2441         * testsuite/29_atomics/atomic/requirements/types_neg.cc:
2442         Likewise.
2443         * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
2444         * testsuite/29_atomics/atomic/wait_notify/100334.cc: Likewise.
2445         * testsuite/29_atomics/atomic/wait_notify/102994.cc: Likewise.
2446         * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
2447         * testsuite/29_atomics/atomic/wait_notify/bool.cc: Likewise.
2448         * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
2449         * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
2450         * testsuite/29_atomics/atomic_flag/cons/value_init.cc: Likewise.
2451         * testsuite/29_atomics/atomic_flag/test/explicit.cc: Likewise.
2452         * testsuite/29_atomics/atomic_flag/test/implicit.cc: Likewise.
2453         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
2454         * testsuite/29_atomics/atomic_float/1.cc: Likewise.
2455         * testsuite/29_atomics/atomic_float/95282.cc: Likewise.
2456         * testsuite/29_atomics/atomic_float/requirements.cc: Likewise.
2457         * testsuite/29_atomics/atomic_float/value_init.cc: Likewise.
2458         * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
2459         * testsuite/29_atomics/atomic_integral/cons/value_init.cc:
2460         Likewise.
2461         * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
2462         * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
2463         Likewise.
2464         * testsuite/29_atomics/atomic_ref/deduction.cc: Likewise.
2465         * testsuite/29_atomics/atomic_ref/float.cc: Likewise.
2466         * testsuite/29_atomics/atomic_ref/generic.cc: Likewise.
2467         * testsuite/29_atomics/atomic_ref/integral.cc: Likewise.
2468         * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise.
2469         * testsuite/29_atomics/atomic_ref/requirements.cc: Likewise.
2470         * testsuite/29_atomics/headers/atomic/types_std_c++20.cc:
2471         Likewise.
2472         * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc:
2473         Likewise.
2474         * testsuite/29_atomics/headers/atomic/types_std_c++2a.cc:
2475         Likewise.
2476         * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc:
2477         Likewise.
2479 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
2481         * testsuite/27_io/basic_filebuf/native_handle/char/1.cc: New test.
2482         * testsuite/27_io/basic_filebuf/native_handle/wchar_t/1.cc: New test.
2484 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
2486         * acinclude.m4 (GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES): New
2487         macro.
2488         * config.h.in: Regenerate.
2489         * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export new
2490         basic_filebuf members.
2491         * config/io/basic_file_stdio.cc (__basic_file::native_handle):
2492         Define new function.
2493         * config/io/basic_file_stdio.h (__basic_file::native_handle):
2494         Declare new function.
2495         * configure: Regenerate.
2496         * configure.ac: Use GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES.
2497         * include/bits/version.def (fstream_native_handles): New macro.
2498         * include/bits/version.h: Regenerate.
2499         * include/std/fstream (basic_filebuf::native_handle)
2500         (basic_fstream::native_handle, basic_ifstream::native_handle)
2501         (basic_ofstream::native_handle): New functions.
2502         * src/c++11/Makefile.am: Move compilation of basic_file.cc,
2503         locale_init.cc and localename.cc to here.
2504         * src/c++11/Makefile.in: Regenerate.
2505         * src/c++98/locale_init.cc: Moved to...
2506         * src/c++11/locale_init.cc: ...here.
2507         * src/c++98/localename.cc: Moved to...
2508         * src/c++11/localename.cc: ...here.
2509         * src/c++98/Makefile.am: Remove basic_file.cc, locale_init.cc
2510         and localename.cc from here.
2511         * src/c++98/Makefile.in: Regenerate.
2512         * testsuite/27_io/basic_filebuf/native_handle/version.cc: New test.
2513         * testsuite/27_io/basic_fstream/native_handle/char/1.cc: New test.
2514         * testsuite/27_io/basic_fstream/native_handle/wchar_t/1.cc: New test.
2515         * testsuite/27_io/basic_ifstream/native_handle/char/1.cc: New test.
2516         * testsuite/27_io/basic_ifstream/native_handle/wchar_t/1.cc: New test.
2517         * testsuite/27_io/basic_ofstream/native_handle/char/1.cc: New test.
2518         * testsuite/27_io/basic_ofstream/native_handle/wchar_t/1.cc: New test.
2520 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
2522         * testsuite/libstdc++-dg/conformance.exp: Add log line when
2523         using testsuite_files.
2525 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
2527         * testsuite/20_util/shared_ptr/atomic/3.cc: Simplify dg
2528         directives.
2529         * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
2530         Likewise.
2531         * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc:
2532         Likewise.
2533         * testsuite/20_util/synchronized_pool_resource/allocate.cc:
2534         Likewise.
2535         * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
2536         Likewise.
2537         * testsuite/20_util/synchronized_pool_resource/cons.cc:
2538         Likewise.
2539         * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
2540         Likewise.
2541         * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
2542         Likewise.
2543         * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
2544         Likewise.
2545         * testsuite/20_util/synchronized_pool_resource/options.cc:
2546         Likewise.
2547         * testsuite/20_util/synchronized_pool_resource/release.cc:
2548         Likewise.
2549         * testsuite/20_util/synchronized_pool_resource/release_single.cc:
2550         Likewise.
2551         * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
2552         Likewise.
2553         * testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc:
2554         Likewise.
2555         * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
2556         Likewise.
2558 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
2560         * testsuite/23_containers/span/back_assert_neg.cc: Remove
2561         dg-options and add effective target selector to dg-do. Add
2562         no_pch.
2563         * testsuite/23_containers/span/back_neg.cc: Likewise.
2564         * testsuite/23_containers/span/cons_1_assert_neg.cc: Likewise.
2565         * testsuite/23_containers/span/cons_2_assert_neg.cc: Likewise.
2566         * testsuite/23_containers/span/first_2_assert_neg.cc: Likewise.
2567         * testsuite/23_containers/span/first_assert_neg.cc: Likewise.
2568         * testsuite/23_containers/span/first_neg.cc: Likewise.
2569         * testsuite/23_containers/span/front_assert_neg.cc: Likewise.
2570         * testsuite/23_containers/span/front_neg.cc: Likewise.
2571         * testsuite/23_containers/span/index_op_assert_neg.cc: Likewise.
2572         * testsuite/23_containers/span/index_op_neg.cc: Likewise.
2573         * testsuite/23_containers/span/last_2_assert_neg.cc: Likewise.
2574         * testsuite/23_containers/span/last_assert_neg.cc: Likewise.
2575         * testsuite/23_containers/span/last_neg.cc: Likewise.
2576         * testsuite/23_containers/span/subspan_2_assert_neg.cc:
2577         Likewise.
2578         * testsuite/23_containers/span/subspan_3_assert_neg.cc:
2579         Likewise.
2580         * testsuite/23_containers/span/subspan_4_assert_neg.cc:
2581         Likewise.
2582         * testsuite/23_containers/span/subspan_5_assert_neg.cc:
2583         Likewise.
2584         * testsuite/23_containers/span/subspan_6_assert_neg.cc:
2585         Likewise.
2586         * testsuite/23_containers/span/subspan_assert_neg.cc: Likewise.
2587         * testsuite/23_containers/span/subspan_neg.cc: Likewise.
2588         * testsuite/24_iterators/range_operations/advance_debug_neg.cc:
2589         Likewise.
2591 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
2593         * testsuite/18_support/headers/limits/synopsis_cxx23.cc: Remove
2594         dg-options.
2595         * testsuite/18_support/headers/stdfloat/types_std.cc: Likewise.
2596         * testsuite/18_support/type_info/constexpr.cc: Likewise.
2597         * testsuite/19_diagnostics/stacktrace/current.cc: Likewise.
2598         * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
2599         * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
2600         * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
2601         * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
2602         * testsuite/20_util/aligned_storage/deprecated-2b.cc: Likewise.
2603         * testsuite/20_util/aligned_union/deprecated-2b.cc: Likewise.
2604         * testsuite/20_util/bitset/access/constexpr.cc: Likewise.
2605         * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
2606         * testsuite/20_util/bitset/count/constexpr.cc: Likewise.
2607         * testsuite/20_util/bitset/ext/constexpr.cc: Likewise.
2608         * testsuite/20_util/bitset/operations/constexpr_c++23.cc:
2609         Likewise.
2610         * testsuite/20_util/bitset/version.cc: Likewise.
2611         * testsuite/20_util/from_chars/8.cc: Likewise.
2612         * testsuite/20_util/from_chars/constexpr.cc: Likewise.
2613         * testsuite/20_util/function/cons/deduction_c++23.cc: Likewise.
2614         * testsuite/20_util/function_objects/invoke/4.cc: Likewise.
2615         * testsuite/20_util/function_objects/invoke/dangling_ref.cc:
2616         Likewise.
2617         * testsuite/20_util/is_scoped_enum/value.cc: Likewise.
2618         * testsuite/20_util/is_scoped_enum/version.cc: Likewise.
2619         * testsuite/20_util/move_only_function/call.cc: Likewise.
2620         * testsuite/20_util/move_only_function/cons.cc: Likewise.
2621         * testsuite/20_util/move_only_function/move.cc: Likewise.
2622         * testsuite/20_util/move_only_function/version.cc: Likewise.
2623         * testsuite/20_util/optional/monadic/and_then.cc: Likewise.
2624         * testsuite/20_util/optional/monadic/or_else.cc: Likewise.
2625         * testsuite/20_util/optional/monadic/or_else_neg.cc: Likewise.
2626         * testsuite/20_util/optional/monadic/pr109242.cc: Likewise.
2627         * testsuite/20_util/optional/monadic/transform.cc: Likewise.
2628         * testsuite/20_util/pair/p2321r2.cc: Likewise.
2629         * testsuite/20_util/reference_from_temporary/value.cc: Likewise.
2630         * testsuite/20_util/reference_from_temporary/value2.cc:
2631         Likewise.
2632         * testsuite/20_util/reference_from_temporary/version.cc:
2633         Likewise.
2634         * testsuite/20_util/to_chars/constexpr.cc: Likewise.
2635         * testsuite/20_util/to_chars/float128_c++23.cc: Likewise.
2636         * testsuite/20_util/to_chars/float16_c++23.cc: Likewise.
2637         * testsuite/20_util/to_chars/version.cc: Likewise.
2638         * testsuite/20_util/to_underlying/1.cc: Likewise.
2639         * testsuite/20_util/to_underlying/version.cc: Likewise.
2640         * testsuite/20_util/tuple/p2321r2.cc: Likewise.
2641         * testsuite/20_util/unique_ptr/assign/constexpr.cc: Likewise.
2642         * testsuite/20_util/unique_ptr/comparison/constexpr.cc:
2643         Likewise.
2644         * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc:
2645         Likewise.
2646         * testsuite/20_util/unique_ptr/creation/constexpr.cc: Likewise.
2647         * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: Likewise.
2648         * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc: Likewise.
2649         * testsuite/20_util/unreachable/1.cc: Likewise.
2650         * testsuite/20_util/unreachable/version.cc: Likewise.
2651         * testsuite/20_util/uses_allocator/lwg3677.cc: Likewise.
2652         * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc: Likewise.
2653         * testsuite/21_strings/basic_string/operations/contains/char.cc:
2654         Likewise.
2655         * testsuite/21_strings/basic_string/operations/contains/nonnull.cc: Likewise.
2656         * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc: Likewise.
2657         * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: Likewise.
2658         * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: Likewise.
2659         * testsuite/21_strings/basic_string_view/operations/contains/char.cc: Likewise.
2660         * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: Likewise.
2661         * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc: Likewise.
2662         * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc: Likewise.
2663         * testsuite/23_containers/queue/cons_from_iters.cc: Likewise.
2664         * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
2665         * testsuite/23_containers/vector/bool/element_access/1.cc:
2666         Likewise.
2667         * testsuite/24_iterators/const_iterator/1.cc: Likewise.
2668         * testsuite/25_algorithms/contains/1.cc: Likewise.
2669         * testsuite/25_algorithms/contains_subrange/1.cc: Likewise.
2670         * testsuite/25_algorithms/find_last/1.cc: Likewise.
2671         * testsuite/25_algorithms/find_last_if/1.cc: Likewise.
2672         * testsuite/25_algorithms/find_last_if_not/1.cc: Likewise.
2673         * testsuite/25_algorithms/fold_left/1.cc: Likewise.
2674         * testsuite/25_algorithms/fold_right/1.cc: Likewise.
2675         * testsuite/25_algorithms/iota/1.cc: Likewise.
2676         * testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: Likewise.
2677         * testsuite/26_numerics/bit/bit.byteswap/version.cc: Likewise.
2678         * testsuite/26_numerics/complex/ext_c++23.cc: Likewise.
2679         * testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc: Likewise.
2680         * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc:
2681         Likewise.
2682         * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc:
2683         Likewise.
2684         * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc:
2685         Likewise.
2686         * testsuite/26_numerics/numbers/4.cc: Likewise.
2687         * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc: Likewise.
2688         * testsuite/27_io/filesystem/path/native/conv_c++23.cc:
2689         Likewise.
2690         * testsuite/27_io/spanstream/1.cc: Likewise.
2691         * testsuite/27_io/spanstream/2.cc: Likewise.
2692         * testsuite/27_io/spanstream/version.cc: Likewise.
2693         * testsuite/29_atomics/atomic_float/requirements_cxx23.cc:
2694         Likewise.
2695         * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
2696         Likewise.
2697         * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
2698         * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
2699         Likewise.
2700         * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2701         Likewise.
2702         * testsuite/std/ranges/adaptors/adjacent/1.cc: Likewise.
2703         * testsuite/std/ranges/adaptors/adjacent_transform/1.cc:
2704         Likewise.
2705         * testsuite/std/ranges/adaptors/as_const/1.cc: Likewise.
2706         * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
2707         * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
2708         * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
2709         * testsuite/std/ranges/adaptors/enumerate/1.cc: Likewise.
2710         * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
2711         * testsuite/std/ranges/adaptors/lwg3715.cc: Likewise.
2712         * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
2713         * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
2714         * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
2715         * testsuite/std/ranges/range_adaptor_closure.cc: Likewise.
2716         * testsuite/std/ranges/repeat/1.cc: Likewise.
2717         * testsuite/std/ranges/version_c++23.cc: Likewise.
2718         * testsuite/std/ranges/zip/1.cc: Likewise.
2719         * testsuite/std/ranges/zip_transform/1.cc: Likewise.
2721 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
2723         * testsuite/20_util/expected/assign.cc: Remove dg-options.
2724         * testsuite/20_util/expected/bad.cc: Likewise.
2725         * testsuite/20_util/expected/cons.cc: Likewise.
2726         * testsuite/20_util/expected/equality.cc: Likewise.
2727         * testsuite/20_util/expected/illformed_neg.cc: Likewise.
2728         * testsuite/20_util/expected/lwg3877.cc: Likewise.
2729         * testsuite/20_util/expected/lwg3938.cc: Likewise.
2730         * testsuite/20_util/expected/monadic.cc: Likewise.
2731         * testsuite/20_util/expected/observers.cc: Likewise.
2732         * testsuite/20_util/expected/requirements.cc: Likewise.
2733         * testsuite/20_util/expected/swap.cc: Likewise.
2734         * testsuite/20_util/expected/synopsis.cc: Likewise.
2735         * testsuite/20_util/expected/unexpected.cc: Likewise.
2736         * testsuite/20_util/expected/version.cc: Likewise.
2738 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
2740         * testsuite/20_util/duration/arithmetic/overflow_c++20.cc:
2741         Remove dg-options.
2742         * testsuite/20_util/duration/io.cc: Likewise.
2743         * testsuite/std/time/clock/file/io.cc: Likewise.
2744         * testsuite/std/time/clock/file/members.cc: Likewise.
2745         * testsuite/std/time/clock/file/overview.cc: Likewise.
2746         * testsuite/std/time/clock/gps/1.cc: Likewise.
2747         * testsuite/std/time/clock/gps/io.cc: Likewise.
2748         * testsuite/std/time/clock/local/io.cc: Likewise.
2749         * testsuite/std/time/clock/system/io.cc: Likewise.
2750         * testsuite/std/time/clock/tai/1.cc: Likewise.
2751         * testsuite/std/time/clock/tai/io.cc: Likewise.
2752         * testsuite/std/time/clock/utc/1.cc: Likewise.
2753         * testsuite/std/time/clock/utc/io.cc: Likewise.
2754         * testsuite/std/time/clock/utc/leap_second_info.cc: Likewise.
2755         * testsuite/std/time/day/1.cc: Likewise.
2756         * testsuite/std/time/day/io.cc: Likewise.
2757         * testsuite/std/time/exceptions.cc: Likewise.
2758         * testsuite/std/time/format.cc: Likewise.
2759         * testsuite/std/time/hh_mm_ss/1.cc: Likewise.
2760         * testsuite/std/time/hh_mm_ss/109772.cc: Likewise.
2761         * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
2762         * testsuite/std/time/is_am/1.cc: Likewise.
2763         * testsuite/std/time/is_pm/1.cc: Likewise.
2764         * testsuite/std/time/make12/1.cc: Likewise.
2765         * testsuite/std/time/make24/1.cc: Likewise.
2766         * testsuite/std/time/month/1.cc: Likewise.
2767         * testsuite/std/time/month/io.cc: Likewise.
2768         * testsuite/std/time/month_day/1.cc: Likewise.
2769         * testsuite/std/time/month_day/io.cc: Likewise.
2770         * testsuite/std/time/month_day_last/1.cc: Likewise.
2771         * testsuite/std/time/month_day_last/io.cc: Likewise.
2772         * testsuite/std/time/month_weekday/1.cc: Likewise.
2773         * testsuite/std/time/month_weekday/io.cc: Likewise.
2774         * testsuite/std/time/month_weekday_last/1.cc: Likewise.
2775         * testsuite/std/time/month_weekday_last/io.cc: Likewise.
2776         * testsuite/std/time/parse.cc: Likewise.
2777         * testsuite/std/time/syn_c++20.cc: Likewise.
2778         * testsuite/std/time/time_zone/get_info_local.cc: Likewise.
2779         * testsuite/std/time/time_zone/get_info_sys.cc: Likewise.
2780         * testsuite/std/time/time_zone/requirements.cc: Likewise.
2781         * testsuite/std/time/traits/is_clock.cc: Likewise.
2782         * testsuite/std/time/tzdb/1.cc: Likewise.
2783         * testsuite/std/time/tzdb/leap_seconds.cc: Likewise.
2784         * testsuite/std/time/tzdb_list/1.cc: Likewise.
2785         * testsuite/std/time/tzdb_list/requirements.cc: Likewise.
2786         * testsuite/std/time/weekday/1.cc: Likewise.
2787         * testsuite/std/time/weekday/io.cc: Likewise.
2788         * testsuite/std/time/weekday_indexed/io.cc: Likewise.
2789         * testsuite/std/time/weekday_last/1.cc: Likewise.
2790         * testsuite/std/time/weekday_last/io.cc: Likewise.
2791         * testsuite/std/time/year/1.cc: Likewise.
2792         * testsuite/std/time/year/2.cc: Likewise.
2793         * testsuite/std/time/year/io.cc: Likewise.
2794         * testsuite/std/time/weekday_indexed/1.cc: Likewise.
2795         * testsuite/std/time/year_month/1.cc: Likewise.
2796         * testsuite/std/time/year_month/2.cc: Likewise.
2797         * testsuite/std/time/year_month/io.cc: Likewise.
2798         * testsuite/std/time/year_month_day/1.cc: Likewise.
2799         * testsuite/std/time/year_month_day/2.cc: Likewise.
2800         * testsuite/std/time/year_month_day/3.cc: Likewise.
2801         * testsuite/std/time/year_month_day/4.cc: Likewise.
2802         * testsuite/std/time/year_month_day/io.cc: Likewise.
2803         * testsuite/std/time/year_month_day_last/1.cc: Likewise.
2804         * testsuite/std/time/year_month_day_last/2.cc: Likewise.
2805         * testsuite/std/time/year_month_day_last/io.cc: Likewise.
2806         * testsuite/std/time/year_month_weekday/1.cc: Likewise.
2807         * testsuite/std/time/year_month_weekday/2.cc: Likewise.
2808         * testsuite/std/time/year_month_weekday/3.cc: Likewise.
2809         * testsuite/std/time/year_month_weekday/io.cc: Likewise.
2810         * testsuite/std/time/year_month_weekday_last/1.cc: Likewise.
2811         * testsuite/std/time/year_month_weekday_last/2.cc: Likewise.
2812         * testsuite/std/time/year_month_weekday_last/io.cc: Likewise.
2813         * testsuite/std/time/zoned_time/1.cc: Likewise.
2814         * testsuite/std/time/zoned_time/custom.cc: Likewise.
2815         * testsuite/std/time/zoned_time/deduction.cc: Likewise.
2816         * testsuite/std/time/zoned_time/io.cc: Likewise.
2817         * testsuite/std/time/zoned_time/req_neg.cc: Likewise.
2818         * testsuite/std/time/zoned_time/requirements.cc: Likewise.
2819         * testsuite/std/time/zoned_traits.cc: Likewise.
2821 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
2823         * testsuite/std/format/arguments/args.cc: Remove dg-options.
2824         * testsuite/std/format/arguments/lwg3810.cc: Likewise.
2825         * testsuite/std/format/error.cc: Likewise.
2826         * testsuite/std/format/format_string.cc: Likewise.
2827         * testsuite/std/format/formatter/concept.cc: Likewise.
2828         * testsuite/std/format/formatter/ext_float.cc: Likewise.
2829         * testsuite/std/format/formatter/requirements.cc: Likewise.
2830         * testsuite/std/format/functions/107871.cc: Likewise.
2831         * testsuite/std/format/functions/format.cc: Likewise.
2832         * testsuite/std/format/functions/format_to.cc: Likewise.
2833         * testsuite/std/format/functions/format_to_n.cc: Likewise.
2834         * testsuite/std/format/functions/size.cc: Likewise.
2835         * testsuite/std/format/functions/vformat_to.cc: Likewise.
2836         * testsuite/std/format/parse_ctx.cc: Likewise.
2837         * testsuite/std/format/string.cc: Likewise.
2838         * testsuite/std/format/string_neg.cc: Likewise.
2839         * testsuite/std/format/functions/format_c++23.cc: Removed.
2841 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
2843         * testsuite/20_util/function_objects/range.cmp/equal_to.cc:
2844         Remove dg-options.
2845         * testsuite/20_util/function_objects/range.cmp/greater.cc:
2846         Likewise.
2847         * testsuite/20_util/function_objects/range.cmp/greater_equal.cc:
2848         Likewise.
2849         * testsuite/20_util/function_objects/range.cmp/less.cc:
2850         Likewise.
2851         * testsuite/20_util/function_objects/range.cmp/less_equal.cc:
2852         Likewise.
2853         * testsuite/20_util/function_objects/range.cmp/lwg3530.cc:
2854         Likewise.
2855         * testsuite/20_util/function_objects/range.cmp/not_equal_to.cc:
2856         Likewise.
2857         * testsuite/20_util/specialized_algorithms/construct_at/1.cc:
2858         Likewise.
2859         * testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc:
2860         Likewise.
2861         * testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
2862         Likewise.
2863         * testsuite/20_util/specialized_algorithms/destroy/constrained.cc:
2864         Likewise.
2865         * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
2866         Likewise.
2867         * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
2868         Likewise.
2869         * testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc:
2870         Likewise.
2871         * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
2872         Likewise.
2873         * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc:
2874         Likewise.
2875         * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
2876         Likewise.
2877         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
2878         Likewise.
2879         * testsuite/25_algorithms/adjacent_find/constexpr.cc: Likewise.
2880         * testsuite/25_algorithms/adjacent_find/constrained.cc:
2881         Likewise.
2882         * testsuite/25_algorithms/all_of/constexpr.cc: Likewise.
2883         * testsuite/25_algorithms/all_of/constrained.cc: Likewise.
2884         * testsuite/25_algorithms/any_of/constexpr.cc: Likewise.
2885         * testsuite/25_algorithms/any_of/constrained.cc: Likewise.
2886         * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
2887         * testsuite/25_algorithms/binary_search/constrained.cc:
2888         Likewise.
2889         * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
2890         * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
2891         * testsuite/25_algorithms/copy/95578.cc: Likewise.
2892         * testsuite/25_algorithms/copy/constexpr.cc: Likewise.
2893         * testsuite/25_algorithms/copy/constrained.cc: Likewise.
2894         * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Likewise.
2895         * testsuite/25_algorithms/copy_backward/95578.cc: Likewise.
2896         * testsuite/25_algorithms/copy_backward/constexpr.cc: Likewise.
2897         * testsuite/25_algorithms/copy_backward/constrained.cc:
2898         Likewise.
2899         * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
2900         Likewise.
2901         * testsuite/25_algorithms/copy_if/constexpr.cc: Likewise.
2902         * testsuite/25_algorithms/copy_if/constrained.cc: Likewise.
2903         * testsuite/25_algorithms/copy_n/constexpr.cc: Likewise.
2904         * testsuite/25_algorithms/copy_n/constrained.cc: Likewise.
2905         * testsuite/25_algorithms/count/constexpr.cc: Likewise.
2906         * testsuite/25_algorithms/count/constrained.cc: Likewise.
2907         * testsuite/25_algorithms/count_if/constexpr.cc: Likewise.
2908         * testsuite/25_algorithms/count_if/constrained.cc: Likewise.
2909         * testsuite/25_algorithms/cpp_lib_constexpr.cc: Likewise.
2910         * testsuite/25_algorithms/equal/95578.cc: Likewise.
2911         * testsuite/25_algorithms/equal/constexpr.cc: Likewise.
2912         * testsuite/25_algorithms/equal/constexpr_neg.cc: Likewise.
2913         * testsuite/25_algorithms/equal/constrained.cc: Likewise.
2914         * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
2915         Likewise.
2916         * testsuite/25_algorithms/equal_range/constexpr.cc: Likewise.
2917         * testsuite/25_algorithms/equal_range/constrained.cc: Likewise.
2918         * testsuite/25_algorithms/fill/94017.cc: Likewise.
2919         * testsuite/25_algorithms/fill/constexpr.cc: Likewise.
2920         * testsuite/25_algorithms/fill/constrained.cc: Likewise.
2921         * testsuite/25_algorithms/fill_n/94017.cc: Likewise.
2922         * testsuite/25_algorithms/fill_n/constexpr.cc: Likewise.
2923         * testsuite/25_algorithms/fill_n/constrained.cc: Likewise.
2924         * testsuite/25_algorithms/find/constexpr.cc: Likewise.
2925         * testsuite/25_algorithms/find/constrained.cc: Likewise.
2926         * testsuite/25_algorithms/find_end/constexpr.cc: Likewise.
2927         * testsuite/25_algorithms/find_end/constrained.cc: Likewise.
2928         * testsuite/25_algorithms/find_first_of/constexpr.cc: Likewise.
2929         * testsuite/25_algorithms/find_first_of/constrained.cc:
2930         Likewise.
2931         * testsuite/25_algorithms/find_if/constexpr.cc: Likewise.
2932         * testsuite/25_algorithms/find_if/constrained.cc: Likewise.
2933         * testsuite/25_algorithms/find_if_not/constexpr.cc: Likewise.
2934         * testsuite/25_algorithms/find_if_not/constrained.cc: Likewise.
2935         * testsuite/25_algorithms/for_each/constexpr.cc: Likewise.
2936         * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
2937         * testsuite/25_algorithms/generate/constexpr.cc: Likewise.
2938         * testsuite/25_algorithms/generate/constrained.cc: Likewise.
2939         * testsuite/25_algorithms/generate_n/constexpr.cc: Likewise.
2940         * testsuite/25_algorithms/generate_n/constrained.cc: Likewise.
2941         * testsuite/25_algorithms/heap/constrained.cc: Likewise.
2942         * testsuite/25_algorithms/includes/constrained.cc: Likewise.
2943         * testsuite/25_algorithms/inplace_merge/constrained.cc:
2944         Likewise.
2945         * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
2946         * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
2947         * testsuite/25_algorithms/is_partitioned/constexpr.cc: Likewise.
2948         * testsuite/25_algorithms/is_partitioned/constrained.cc:
2949         Likewise.
2950         * testsuite/25_algorithms/is_permutation/constexpr.cc: Likewise.
2951         * testsuite/25_algorithms/is_permutation/constrained.cc:
2952         Likewise.
2953         * testsuite/25_algorithms/is_sorted/constexpr.cc: Likewise.
2954         * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
2955         * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
2956         Likewise.
2957         * testsuite/25_algorithms/is_sorted_until/constrained.cc:
2958         Likewise.
2959         * testsuite/25_algorithms/iter_swap/constexpr.cc: Likewise.
2960         * testsuite/25_algorithms/lexicographical_compare/93972.cc:
2961         Likewise.
2962         * testsuite/25_algorithms/lexicographical_compare/95578.cc:
2963         Likewise.
2964         * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
2965         Likewise.
2966         * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
2967         Likewise.
2968         * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
2969         Likewise.
2970         * testsuite/25_algorithms/lexicographical_compare_three_way/constexpr.cc:
2971         Likewise.
2972         * testsuite/25_algorithms/lower_bound/constexpr.cc: Likewise.
2973         * testsuite/25_algorithms/lower_bound/constrained.cc: Likewise.
2974         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
2975         Likewise.
2976         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
2977         Likewise.
2978         * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
2979         Likewise.
2980         * testsuite/25_algorithms/make_heap/constexpr.cc: Likewise.
2981         * testsuite/25_algorithms/max/constrained.cc: Likewise.
2982         * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
2983         * testsuite/25_algorithms/merge/constexpr.cc: Likewise.
2984         * testsuite/25_algorithms/merge/constrained.cc: Likewise.
2985         * testsuite/25_algorithms/min/constrained.cc: Likewise.
2986         * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
2987         * testsuite/25_algorithms/minmax/constrained.cc: Likewise.
2988         * testsuite/25_algorithms/minmax_element/constrained.cc:
2989         Likewise.
2990         * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
2991         * testsuite/25_algorithms/mismatch/constrained.cc: Likewise.
2992         * testsuite/25_algorithms/move/93872.cc: Likewise.
2993         * testsuite/25_algorithms/move/95578.cc: Likewise.
2994         * testsuite/25_algorithms/move/constexpr.cc: Likewise.
2995         * testsuite/25_algorithms/move/constrained.cc: Likewise.
2996         * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
2997         * testsuite/25_algorithms/move_backward/95578.cc: Likewise.
2998         * testsuite/25_algorithms/move_backward/constrained.cc:
2999         Likewise.
3000         * testsuite/25_algorithms/next_permutation/constexpr.cc:
3001         Likewise.
3002         * testsuite/25_algorithms/next_permutation/constrained.cc:
3003         Likewise.
3004         * testsuite/25_algorithms/none_of/constexpr.cc: Likewise.
3005         * testsuite/25_algorithms/none_of/constrained.cc: Likewise.
3006         * testsuite/25_algorithms/nth_element/constexpr.cc: Likewise.
3007         * testsuite/25_algorithms/nth_element/constrained.cc: Likewise.
3008         * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
3009         * testsuite/25_algorithms/partial_sort/constrained.cc: Likewise.
3010         * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
3011         Likewise.
3012         * testsuite/25_algorithms/partial_sort_copy/constrained.cc:
3013         Likewise.
3014         * testsuite/25_algorithms/partition/constexpr.cc: Likewise.
3015         * testsuite/25_algorithms/partition/constrained.cc: Likewise.
3016         * testsuite/25_algorithms/partition_copy/constexpr.cc: Likewise.
3017         * testsuite/25_algorithms/partition_copy/constrained.cc:
3018         Likewise.
3019         * testsuite/25_algorithms/partition_point/constexpr.cc:
3020         Likewise.
3021         * testsuite/25_algorithms/partition_point/constrained.cc:
3022         Likewise.
3023         * testsuite/25_algorithms/pop_heap/constexpr.cc: Likewise.
3024         * testsuite/25_algorithms/prev_permutation/constexpr.cc:
3025         Likewise.
3026         * testsuite/25_algorithms/prev_permutation/constrained.cc:
3027         Likewise.
3028         * testsuite/25_algorithms/push_heap/constexpr.cc: Likewise.
3029         * testsuite/25_algorithms/remove/constexpr.cc: Likewise.
3030         * testsuite/25_algorithms/remove/constrained.cc: Likewise.
3031         * testsuite/25_algorithms/remove_copy/constexpr.cc: Likewise.
3032         * testsuite/25_algorithms/remove_copy/constrained.cc: Likewise.
3033         * testsuite/25_algorithms/remove_copy_if/constexpr.cc: Likewise.
3034         * testsuite/25_algorithms/remove_copy_if/constrained.cc:
3035         Likewise.
3036         * testsuite/25_algorithms/remove_if/constexpr.cc: Likewise.
3037         * testsuite/25_algorithms/remove_if/constrained.cc: Likewise.
3038         * testsuite/25_algorithms/replace/constrained.cc: Likewise.
3039         * testsuite/25_algorithms/replace_copy/constexpr.cc: Likewise.
3040         * testsuite/25_algorithms/replace_copy/constrained.cc: Likewise.
3041         * testsuite/25_algorithms/replace_copy_if/constexpr.cc:
3042         Likewise.
3043         * testsuite/25_algorithms/replace_copy_if/constrained.cc:
3044         Likewise.
3045         * testsuite/25_algorithms/replace_if/constexpr.cc: Likewise.
3046         * testsuite/25_algorithms/replace_if/constrained.cc: Likewise.
3047         * testsuite/25_algorithms/reverse/constexpr.cc: Likewise.
3048         * testsuite/25_algorithms/reverse/constrained.cc: Likewise.
3049         * testsuite/25_algorithms/reverse_copy/constexpr.cc: Likewise.
3050         * testsuite/25_algorithms/reverse_copy/constrained.cc: Likewise.
3051         * testsuite/25_algorithms/rotate/constexpr.cc: Likewise.
3052         * testsuite/25_algorithms/rotate/constrained.cc: Likewise.
3053         * testsuite/25_algorithms/rotate_copy/constexpr.cc: Likewise.
3054         * testsuite/25_algorithms/rotate_copy/constrained.cc: Likewise.
3055         * testsuite/25_algorithms/sample/constrained.cc: Likewise.
3056         * testsuite/25_algorithms/search/constexpr.cc: Likewise.
3057         * testsuite/25_algorithms/search/constrained.cc: Likewise.
3058         * testsuite/25_algorithms/search_n/97828.cc: Likewise.
3059         * testsuite/25_algorithms/search_n/constexpr.cc: Likewise.
3060         * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
3061         * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
3062         * testsuite/25_algorithms/set_difference/constrained.cc:
3063         Likewise.
3064         * testsuite/25_algorithms/set_intersection/constexpr.cc:
3065         Likewise.
3066         * testsuite/25_algorithms/set_intersection/constrained.cc:
3067         Likewise.
3068         * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
3069         Likewise.
3070         * testsuite/25_algorithms/set_symmetric_difference/constrained.cc:
3071         Likewise.
3072         * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
3073         * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
3074         * testsuite/25_algorithms/shift_left/1.cc: Likewise.
3075         * testsuite/25_algorithms/shift_right/1.cc: Likewise.
3076         * testsuite/25_algorithms/shuffle/constrained.cc: Likewise.
3077         * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
3078         * testsuite/25_algorithms/sort/constrained.cc: Likewise.
3079         * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
3080         * testsuite/25_algorithms/stable_partition/constrained.cc:
3081         Likewise.
3082         * testsuite/25_algorithms/stable_sort/constrained.cc: Likewise.
3083         * testsuite/25_algorithms/swap/constexpr.cc: Likewise.
3084         * testsuite/25_algorithms/swap_ranges/constexpr.cc: Likewise.
3085         * testsuite/25_algorithms/swap_ranges/constrained.cc: Likewise.
3086         * testsuite/25_algorithms/transform/constexpr.cc: Likewise.
3087         * testsuite/25_algorithms/transform/constrained.cc: Likewise.
3088         * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
3089         * testsuite/25_algorithms/unique/constrained.cc: Likewise.
3090         * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
3091         * testsuite/25_algorithms/unique_copy/constrained.cc: Likewise.
3092         * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
3093         * testsuite/25_algorithms/upper_bound/constrained.cc: Likewise.
3094         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
3095         Likewise.
3096         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
3097         Likewise.
3098         * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
3099         Likewise.
3101 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
3103         * testsuite/std/concepts/1.cc: Remove dg-options.
3104         * testsuite/std/concepts/2.cc: Likewise.
3105         * testsuite/std/concepts/concepts.callable/invocable.cc:
3106         Likewise.
3107         * testsuite/std/concepts/concepts.callable/regular_invocable.cc:
3108         Likewise.
3109         * testsuite/std/concepts/concepts.callable/relation.cc:
3110         Likewise.
3111         * testsuite/std/concepts/concepts.callable/strictweakorder.cc:
3112         Likewise.
3113         * testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc: Likewise.
3114         * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc: Likewise.
3115         * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc: Likewise.
3116         * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc: Likewise.
3117         * testsuite/std/concepts/concepts.lang/concept.assignable/1.cc:
3118         Likewise.
3119         * testsuite/std/concepts/concepts.lang/concept.common/1.cc:
3120         Likewise.
3121         * testsuite/std/concepts/concepts.lang/concept.commonref/1.cc:
3122         Likewise.
3123         * testsuite/std/concepts/concepts.lang/concept.constructible/1.cc: Likewise.
3124         * testsuite/std/concepts/concepts.lang/concept.convertible/1.cc:
3125         Likewise.
3126         * testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc: Likewise.
3127         * testsuite/std/concepts/concepts.lang/concept.defaultinitializable/1.cc: Likewise.
3128         * testsuite/std/concepts/concepts.lang/concept.defaultinitializable/lwg3149.cc: Likewise.
3129         * testsuite/std/concepts/concepts.lang/concept.derived/1.cc:
3130         Likewise.
3131         * testsuite/std/concepts/concepts.lang/concept.destructible/1.cc: Likewise.
3132         * testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc: Likewise.
3133         * testsuite/std/concepts/concepts.lang/concept.same/1.cc:
3134         Likewise.
3135         * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc: Likewise.
3136         * testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc: Likewise.
3137         * testsuite/std/concepts/concepts.lang/concept.swappable/swappable_with.cc: Likewise.
3138         * testsuite/std/concepts/concepts.object/copyable.cc: Likewise.
3139         * testsuite/std/concepts/concepts.object/movable.cc: Likewise.
3140         * testsuite/std/concepts/concepts.object/regular.cc: Likewise.
3141         * testsuite/std/concepts/concepts.object/semiregular.cc:
3142         Likewise.
3143         * testsuite/std/ranges/97600.cc: Likewise.
3144         * testsuite/std/ranges/access/101782.cc: Likewise.
3145         * testsuite/std/ranges/access/begin.cc: Likewise.
3146         * testsuite/std/ranges/access/begin_neg.cc: Likewise.
3147         * testsuite/std/ranges/access/cbegin.cc: Likewise.
3148         * testsuite/std/ranges/access/cdata.cc: Likewise.
3149         * testsuite/std/ranges/access/cend.cc: Likewise.
3150         * testsuite/std/ranges/access/crbegin.cc: Likewise.
3151         * testsuite/std/ranges/access/crend.cc: Likewise.
3152         * testsuite/std/ranges/access/data.cc: Likewise.
3153         * testsuite/std/ranges/access/empty.cc: Likewise.
3154         * testsuite/std/ranges/access/end.cc: Likewise.
3155         * testsuite/std/ranges/access/end_neg.cc: Likewise.
3156         * testsuite/std/ranges/access/lwg3467.cc: Likewise.
3157         * testsuite/std/ranges/access/p2602.cc: Likewise.
3158         * testsuite/std/ranges/access/rbegin.cc: Likewise.
3159         * testsuite/std/ranges/access/rend.cc: Likewise.
3160         * testsuite/std/ranges/access/size.cc: Likewise.
3161         * testsuite/std/ranges/access/size_neg.cc: Likewise.
3162         * testsuite/std/ranges/access/ssize.cc: Likewise.
3163         * testsuite/std/ranges/adaptors/100479.cc: Likewise.
3164         * testsuite/std/ranges/adaptors/100577.cc: Likewise.
3165         * testsuite/std/ranges/adaptors/93978.cc: Likewise.
3166         * testsuite/std/ranges/adaptors/95322.cc: Likewise.
3167         * testsuite/std/ranges/adaptors/99433.cc: Likewise.
3168         * testsuite/std/ranges/adaptors/all.cc: Likewise.
3169         * testsuite/std/ranges/adaptors/common.cc: Likewise.
3170         * testsuite/std/ranges/adaptors/conditionally_borrowed.cc:
3171         Likewise.
3172         * testsuite/std/ranges/adaptors/counted.cc: Likewise.
3173         * testsuite/std/ranges/adaptors/detail/copyable_box.cc:
3174         Likewise.
3175         * testsuite/std/ranges/adaptors/drop.cc: Likewise.
3176         * testsuite/std/ranges/adaptors/drop_while.cc: Likewise.
3177         * testsuite/std/ranges/adaptors/elements.cc: Likewise.
3178         * testsuite/std/ranges/adaptors/filter.cc: Likewise.
3179         * testsuite/std/ranges/adaptors/join.cc: Likewise.
3180         * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
3181         * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
3182         * testsuite/std/ranges/adaptors/lwg3286.cc: Likewise.
3183         * testsuite/std/ranges/adaptors/lwg3313_neg.cc: Likewise.
3184         * testsuite/std/ranges/adaptors/lwg3325_neg.cc: Likewise.
3185         * testsuite/std/ranges/adaptors/lwg3406.cc: Likewise.
3186         * testsuite/std/ranges/adaptors/p1739.cc: Likewise.
3187         * testsuite/std/ranges/adaptors/p2281.cc: Likewise.
3188         * testsuite/std/ranges/adaptors/p2770r0.cc: Likewise.
3189         * testsuite/std/ranges/adaptors/reverse.cc: Likewise.
3190         * testsuite/std/ranges/adaptors/sizeof.cc: Likewise.
3191         * testsuite/std/ranges/adaptors/split.cc: Likewise.
3192         * testsuite/std/ranges/adaptors/take.cc: Likewise.
3193         * testsuite/std/ranges/adaptors/take_while.cc: Likewise.
3194         * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3195         * testsuite/std/ranges/empty_view.cc: Likewise.
3196         * testsuite/std/ranges/headers/ranges/synopsis.cc: Likewise.
3197         * testsuite/std/ranges/iota/difference_type.cc: Likewise.
3198         * testsuite/std/ranges/iota/iota_view.cc: Likewise.
3199         * testsuite/std/ranges/iota/iterator.cc: Likewise.
3200         * testsuite/std/ranges/iota/lwg3292_neg.cc: Likewise.
3201         * testsuite/std/ranges/iota/max_size_type.cc: Likewise.
3202         * testsuite/std/ranges/istream_view.cc: Likewise.
3203         * testsuite/std/ranges/p2259.cc: Likewise.
3204         * testsuite/std/ranges/p2325.cc: Likewise.
3205         * testsuite/std/ranges/p2367.cc: Likewise.
3206         * testsuite/std/ranges/range.cc: Likewise.
3207         * testsuite/std/ranges/refinements.cc: Likewise.
3208         * testsuite/std/ranges/safe_range.cc: Likewise.
3209         * testsuite/std/ranges/safe_range_types.cc: Likewise.
3210         * testsuite/std/ranges/single_view.cc: Likewise.
3211         * testsuite/std/ranges/sized.cc: Likewise.
3212         * testsuite/std/ranges/subrange/1.cc: Likewise.
3213         * testsuite/std/ranges/subrange/97512.cc: Likewise.
3214         * testsuite/std/ranges/subrange/constexpr.cc: Likewise.
3215         * testsuite/std/ranges/subrange/lwg3282_neg.cc: Likewise.
3216         * testsuite/std/ranges/subrange/lwg3286.cc: Likewise.
3217         * testsuite/std/ranges/subrange/lwg3433.cc: Likewise.
3218         * testsuite/std/ranges/subrange/sizeof.cc: Likewise.
3219         * testsuite/std/ranges/subrange/tuple_like.cc: Likewise.
3220         * testsuite/std/ranges/view.cc: Likewise.
3222 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
3224         * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
3225         Remove dg-options.
3226         * testsuite/23_containers/span/contiguous_range_neg.cc:
3227         Likewise.
3228         * testsuite/23_containers/span/everything.cc: Likewise.
3230 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
3232         * testsuite/24_iterators/reverse_iterator/100639.cc: Remove
3233         dg-options and add dg-add-options strict_std.
3234         * testsuite/std/ranges/iota/93267.cc: Likewise.
3235         * testsuite/std/ranges/iota/96042.cc: Likewise.
3236         * testsuite/std/ranges/iota/size.cc: Likewise.
3237         * testsuite/std/ranges/subrange/96042.cc: Likewise.
3239 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
3241         * testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_cxx17.cc:
3242         Replace dg-options -std=c++17 with dg-add-options strict_std.
3243         * testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_cxx17.cc:
3244         Likewise.
3246 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
3248         * testsuite/23_containers/deque/48101-2_neg.cc: Replace
3249         dg-options with target selector.
3250         * testsuite/23_containers/forward_list/48101-2_neg.cc: Likewise.
3251         * testsuite/23_containers/list/48101-2_neg.cc: Likewise.
3252         * testsuite/23_containers/map/48101-2_neg.cc: Likewise.
3253         * testsuite/23_containers/map/48101_neg.cc: Likewise.
3254         * testsuite/23_containers/multimap/48101-2_neg.cc: Likewise.
3255         * testsuite/23_containers/multimap/48101_neg.cc: Likewise.
3256         * testsuite/23_containers/multiset/48101-2_neg.cc: Likewise.
3257         * testsuite/23_containers/set/48101-2_neg.cc: Likewise.
3258         * testsuite/23_containers/unordered_map/48101-2_neg.cc:
3259         Likewise.
3260         * testsuite/23_containers/unordered_multimap/48101-2_neg.cc:
3261         Likewise.
3262         * testsuite/23_containers/unordered_multiset/48101-2_neg.cc:
3263         Likewise.
3264         * testsuite/23_containers/unordered_set/48101-2_neg.cc:
3265         Likewise.
3266         * testsuite/23_containers/vector/48101-2_neg.cc: Likewise.
3268 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
3270         * doc/xml/manual/test.xml: Update documentation on running and
3271         writing tests.
3272         * doc/html/manual/test.html: Regenerate.
3273         * testsuite/Makefile.am: Add v3-use-std-list to site.tmp
3274         * testsuite/Makefile.in: Regenerate.
3275         * testsuite/lib/dg-options.exp (add_options_for_strict_std): New
3276         proc.
3277         * testsuite/lib/libstdc++.exp (search_for): New utility proc.
3278         (v3-dg-runtest): New proc to replace dg-runtest.
3279         * testsuite/libstdc++-dg/conformance.exp: Use v3-dg-runtest.
3281 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
3283         * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc:
3284         Fix test to work for C++23 and C++26 too.
3286 2023-09-15  Patrick Palka  <ppalka@redhat.com>
3288         * include/std/bit: Include <concepts>.
3289         (byteswap): Use a type-constraint instead of enable_if_t
3290         inside the return type, and use std::integral.
3291         (_If_is_unsigned_integer): Replace with ...
3292         (__unsigned_integer): ... this.
3293         (rotl): Use a type-constraint instead of enable_if_t inside
3294         the return type.
3295         (countl_zero): Likewise.
3296         (countl_one): Likewise.
3297         (countr_zero): Likewise.
3298         (countr_one): Likewise.
3299         (popcount): Likewise.
3300         (has_single_bit): Likewise.
3301         (bit_ceil): Likewise.
3302         (bit_floor): Likewise.
3303         (bit_width): Likewise.
3305 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
3307         * include/std/variant (variant): Remove derivation from
3308         _Enable_default_constructor base class.
3309         (variant::variant()): Constrain.
3310         * testsuite/20_util/variant/default_ctor.cc: New test.
3312 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
3314         PR libstdc++/111172
3315         * include/std/variant (get<T>): Remove !is_void static
3316         assertions.
3318 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
3320         * include/bits/version.def (to_chars): Define new value for
3321         C++26.
3322         * include/bits/version.h: Regenerate.
3323         * include/std/charconv (to_chars_result::operator bool): New
3324         function.
3325         (from_chars_result::operator bool): New function.
3326         * testsuite/20_util/to_chars/version.cc: Update expected value.
3327         * testsuite/20_util/from_chars/result.cc: New test.
3328         * testsuite/20_util/to_chars/result.cc: New test.
3330 2023-09-14  Jonathan Wakely  <jwakely@redhat.com>
3332         PR c++/111357
3333         * testsuite/20_util/integer_sequence/pr111357.cc: New test.
3335 2023-09-14  Jonathan Wakely  <jwakely@redhat.com>
3337         * testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc: Use
3338         dg-additional-files. Remove @require@ and @diff@ comments.
3339         * testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc: Likewise.
3340         * testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc: Likewise.
3341         * testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc: Likewise.
3342         * testsuite/lib/dg-options.exp (v3_additional_files): New
3343         global variable.
3344         (dg-additional-files): New proc.
3345         * testsuite/lib/libstdc++.exp (v3_target_compile): Copy
3346         additional files to test directory.
3348 2023-09-14  Jonathan Wakely  <jwakely@redhat.com>
3350         * include/experimental/io_context (io_context) [!_GLIBCXX_HAS_GTHREADS]:
3351         Use a plain integer for _M_work_count for single-threaded
3352         targets.
3353         * include/experimental/memory_resource (__get_default_resource)
3354         [!_GLIBCXX_HAS_GTHREADS]: Use unsynchronized type for
3355         single-threaded targets.
3356         * src/c++17/default_resource.h: Adjust preprocessor conditions
3357         to match memory_resource.cc.
3358         * src/c++17/memory_resource.cc [!_GLIBCXX_HAS_GTHREADS]
3359         (atomic_mem_res): Use unsynchronized type for single-threaded
3360         targets.
3362 2023-09-14  Christophe Lyon  <christophe.lyon@linaro.org>
3364         * testsuite/29_atomics/atomic/compare_exchange_padding.cc: Likewise.
3365         * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
3366         * testsuite/29_atomics/atomic_float/value_init.cc: Likewise.
3367         * testsuite/29_atomics/atomic_integral/cons/value_init.cc: Likewise.
3368         * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc: Likewise.
3369         * testsuite/29_atomics/atomic_ref/generic.cc: Likewise.
3370         * testsuite/29_atomics/atomic_ref/integral.cc: Likewise.
3371         * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise.
3373 2023-09-14  François Dumont  <fdumont@gcc.gnu.org>
3375         * testsuite/19_diagnostics/stacktrace/synopsis.cc: Add
3376         { dg-require-normal-namespace "" }.
3378 2023-09-13  François Dumont  <fdumont@gcc.gnu.org>
3380         * include/std/format (std::__format::_Arg_store): Explicit version
3381         namespace on make_format_args friend declaration.
3383 2023-09-12  Patrick Palka  <ppalka@redhat.com>
3385         PR libstdc++/111327
3386         * include/std/functional (_GLIBCXX_NOT_FN_CALL_OP): Also define
3387         a deleted fallback operator() overload.  Constrain both the
3388         enabled and deleted overloads accordingly.
3389         * testsuite/20_util/function_objects/not_fn/111327.cc: New test.
3391 2023-09-12  Patrick Palka  <ppalka@redhat.com>
3393         PR libstdc++/111327
3394         * include/std/functional (_Bind_front::operator()): Add deleted
3395         fallback overloads for each const/ref qualifier pair.  Give the
3396         enabled overloads dummy constraints to make each one more
3397         specialized than the corresponding deleted overload.
3398         * testsuite/20_util/function_objects/bind_front/111327.cc: New test.
3400 2023-09-12  Patrick Palka  <ppalka@redhat.com>
3402         * include/std/functional (_Bind_front0): Remove.
3403         (_Bind_front_t): Adjust.
3405 2023-09-12  Jonathan Wakely  <jwakely@redhat.com>
3407         * python/libstdcxx/v6/printers.py: Reformat.
3408         * python/libstdcxx/v6/xmethods.py: Likewise.
3410 2023-09-11  Jonathan Wakely  <jwakely@redhat.com>
3412         * src/c++11/debug.cc (acquire_sequence_ptr_for_lock): New
3413         function.
3414         (reset_sequence_ptr): New function.
3415         (_Safe_iterator_base::_M_detach)
3416         (_Safe_local_iterator_base::_M_detach): Replace bare atomic_load
3417         with acquire_sequence_ptr_for_lock.
3418         (_Safe_iterator_base::_M_reset): Replace bare atomic_store with
3419         reset_sequence_ptr.
3421 2023-09-11  Jonathan Wakely  <jwakely@redhat.com>
3423         * src/c++11/Makefile.am: Add new file.
3424         * src/c++11/Makefile.in: Regenerate.
3425         * src/c++11/debug.cc (__glibcxx_assert_fail): Move to ...
3426         * src/c++11/assert_fail.cc: New file.
3428 2023-09-11  Ken Matsui  <kmatsui@gcc.gnu.org>
3430         * include/bits/c++config (_GLIBCXX_HAS_BUILTIN): Do not undef.
3431         (_GLIBCXX_USE_BUILTIN_TRAIT): Define.
3433 2023-09-11  Jonathan Wakely  <jwakely@redhat.com>
3435         * include/bits/version.def (__cpp_lib_formatters): Define.
3436         * include/bits/version.h: Regenerate.
3437         * include/std/stacktrace (formatter<stacktrace_entry>)
3438         (formatter<basic_stacktrace<Alloc>>): Define.
3439         * include/std/thread (formatter<thread::id, charT>): Define.
3440         * testsuite/19_diagnostics/stacktrace/output.cc: New test.
3441         * testsuite/19_diagnostics/stacktrace/synopsis.cc: Add
3442         std::formatter specializations.
3443         * testsuite/19_diagnostics/stacktrace/version.cc: Check
3444         __cpp_lib_formatters macro.
3445         * testsuite/30_threads/thread/id/hash.cc: Remove gthreads
3446         dependency.
3447         * testsuite/30_threads/thread/id/operators.cc: Likewise.
3448         * testsuite/30_threads/thread/id/operators_c++20.cc: Likewise.
3449         * testsuite/30_threads/thread/id/output.cc: New test.
3451 2023-09-11  Pekka Seppänen  <pexu@gcc.mail.kapsi.fi>
3453         * src/c++11/cow-locale_init.cc: Add [[maybe_unused]] attribute.
3454         * src/c++17/fs_path.cc (path::_S_convert_loc): Likewise.
3455         * src/filesystem/path.cc (path::_S_convert_loc): Likewise.
3457 2023-09-08  Jonathan Wakely  <jwakely@redhat.com>
3459         * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++23 directory.
3460         * configure: Regenerate.
3461         * doc/html/manual/*: Regenerate.
3462         * doc/xml/manual/using.xml: Update documentation on linking.
3463         * include/std/stacktrace: Remove declarations of libbacktrace
3464         APIs.
3465         (stacktrace_entry::_S_err_handler, stacktrace_entry::_S_init):
3466         Remove.
3467         (stacktrace_entry::_Info): New class.
3468         (stacktrace_entry::_M_get_info): Use _Info.
3469         (__stacktrace_impl): New class.
3470         (basic_stacktrace): Derive from __stacktrace_impl.
3471         (basic_stacktrace::current): Use __stacktrace_impl::_S_current.
3472         * scripts/testsuite_flags.in: Adjust LDFLAGS to find
3473         libstdc++exp instead of libstdc++_libbacktrace.
3474         * src/Makefile.am (SUBDIRS): Add c++23 directory.
3475         * src/Makefile.in: Regenerate.
3476         * src/c++20/Makefile.am: Fix comment.
3477         * src/c++20/Makefile.in: Regenerate.
3478         * src/c++23/Makefile.am: New file.
3479         * src/c++23/Makefile.in: New file.
3480         * src/c++23/stacktrace.cc: New file with definitions of
3481         stacktrace_entry::_Info and __stacktrace_impl members.
3482         * src/experimental/Makefile.am: Use LIBADD to include other
3483         libraries.
3484         * src/experimental/Makefile.in: Regenerate.
3485         * src/libbacktrace/Makefile.am: Use noinst_LTLIBRARIES.
3486         * src/libbacktrace/Makefile.in: Regenerate.
3487         * testsuite/19_diagnostics/stacktrace/current.cc: Adjust
3488         dg-options to use -lstdc++exp.
3489         * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
3490         * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
3491         * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc:
3492         Likewise.
3494 2023-09-08  Alexey Lapshin  <alexey.lapshin@espressif.com>
3496         * src/libbacktrace/Makefile.am: Remove -Werror.
3497         * src/libbacktrace/Makefile.in: Regenerate.
3499 2023-09-08  Jonathan Wakely  <jwakely@redhat.com>
3501         * testsuite/Makefile.am (check-DEJAGNU): Use @ in recipe.
3502         * testsuite/Makefile.in: Regenerate.
3504 2023-09-08  Yang Yujie  <yangyujie@loongson.cn>
3506         * configure.host: Register t-loongarch in tmake_file.
3507         * config/cpu/loongarch/t-loongarch: New file.  Manually refresh
3508         MULTISUBDIR with $(shell $(CXX) --print-multi-directory).
3510 2023-09-07  Bruno Victal  <mirai@makinata.eu>
3512         * acinclude.m4: Update docbook xsl URI.
3513         * configure: Regenerate.
3515 2023-09-07  Bruno Victal  <mirai@makinata.eu>
3517         * doc/Makefile.am: Fix 'doc-install-info' rule.
3518         Fix typo in commment.
3519         * doc/Makefile.in: Regenerate.
3521 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
3523         * testsuite/27_io/filesystem/path/concat/94063.cc: Simplify
3524         dg-do target selector.
3526 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
3528         * testsuite/config/default.exp: Remove trailing whitespace.
3529         * testsuite/lib/dg-options.exp: Likewise.
3530         * testsuite/lib/prune.exp: Likewise.
3531         * testsuite/libstdc++-abi/abi.exp: Likewise.
3532         * testsuite/libstdc++-dg/conformance.exp: Likewise.
3533         * testsuite/libstdc++-prettyprinters/prettyprinters.exp:
3534         Likewise.
3535         * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
3536         * testsuite/lib/libstdc++.exp: Likewise.
3537         (check_v3_target_c_std): Fix filename for temporary source file.
3539 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
3541         * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for mkdir,
3542         chmod, chdir, and getcwd.
3543         * config.h.in: Regenerate.
3544         * configure: Regenerate.
3545         * src/c++17/fs_ops.cc (create_dir): Use USE_MKDIR macro.
3546         (fs::current_path): Use USE_GETCWD and USE_CHDIR macros.
3547         (fs::permissions): Use USE_CHMOD macro.
3548         * src/filesystem/ops-common.h [FILESYSTEM_IS_WINDOWS]
3549         (chmod, mkdir, getcwd, chdir): Define new macros.
3550         [FILESYSTEM_IS_WINDOWS] (chmod, mkdir, getcwd, chdir): Use
3551         new macros.
3552         * src/filesystem/ops.cc (create_dir): Use USE_MKDIR macro.
3553         (fs::current_path): Use USE_GETCWD and USE_CHDIR macros.
3554         (fs::permissions): Use USE_CHMOD macro.
3556 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
3558         * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Disable by default
3559         for avr.
3560         * configure: Regenerate.
3562 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
3564         * testsuite/23_containers/unordered_map/operations/1.cc: Add
3565         dg-options for C++20 mode.
3566         * testsuite/23_containers/unordered_multimap/operations/1.cc:
3567         Likewise.
3568         * testsuite/23_containers/unordered_multiset/operations/1.cc:
3569         Likewise.
3570         * testsuite/23_containers/unordered_set/operations/1.cc:
3571         Likewise.
3572         * testsuite/std/time/parse.cc: Move dg-options before dg-do.
3574 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
3576         * testsuite/std/ranges/access/cbegin.cc: Adjust for C++23
3577         compatibility.
3578         * testsuite/std/ranges/access/cdata.cc: Likewise.
3579         * testsuite/std/ranges/access/cend.cc: Likewise.
3580         * testsuite/std/ranges/access/crbegin.cc: Likewise.
3581         * testsuite/std/ranges/access/crend.cc: Likewise.
3582         * testsuite/std/ranges/adaptors/take.cc: Likewise.
3583         * testsuite/std/ranges/adaptors/take_while.cc: Likewise.
3584         * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3586 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
3588         * include/bits/iterator_concepts.h (__imove::iter_move): Define
3589         poison pill as deleted for consistency.
3590         (__access::begin): Replace with a single declaration.
3591         * include/bits/ranges_base.h (__access::end, __access::rbegin)
3592         (__access::rend, __access::size): Likewise.
3593         * include/bits/version.def (ranges): Update value for C++23.
3594         * include/bits/version.h: Regenerate.
3595         * libsupc++/compare (__compare): Add missing poison pill
3596         overloads.
3597         * testsuite/std/ranges/version_c++23.cc: Adjust expected value
3598         of __cpp_lib_ranges.
3599         * testsuite/std/ranges/access/p2602.cc: New test.
3601 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
3603         * include/bits/iterator_concepts.h (ranges::__cust_imove):
3604         Rename to ranges::__imove.
3605         (_IMove): Rename to _IterMove.
3606         (ranges::__cust_iswap): Rename to ranges::__iswap.
3607         (ranges::__cust): Rename to ranges::_Cpo.
3608         (ranges::__cust_access): Rename to ranges::__access.
3609         * include/bits/ranges_base.h (ranges::__cust_access): Rename to
3610         ranges::__access.
3611         (ranges::__cust): Rename to ranges::_Cpo.
3612         * include/std/concepts (ranges::__cust_swap):  Rename to
3613         ranges::__swap.
3614         (ranges::__cust): Rename to ranges::_Cpo.
3615         * libsupc++/compare (__cmp_cust): Rename to __compare.
3616         (__cmp_algo): Rename to _Cpo.
3618 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
3620         * include/bits/version.def (ranges): Update value.
3621         * include/bits/version.h: Regenerate.
3622         * include/std/ranges (__detail::__boxable): Use
3623         move_constructible instead of copy_constructible for C++23.
3624         (__detail::__box<T>): Adjust constraints for partial
3625         specialization.
3626         (single_view, transform_view): Use __box_constructible instead
3627         of copy_constructible in constraints.
3628         (zip_transform_view, adjacent_transform_view, repeat_view): Use
3629         move_constructible instead of copy_constructible in constraints.
3630         * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: Check
3631         construction from move-only argument.
3632         * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3633         * testsuite/std/ranges/repeat/1.cc: Likewise.
3634         * testsuite/std/ranges/single_view.cc: Likewise.
3635         * testsuite/std/ranges/zip_transform/1.cc: Likewise.
3636         * testsuite/std/ranges/version_c++23.cc: Adjust expected value
3637         of __cpp_lib_ranges.
3639 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
3641         * testsuite/util/testsuite_iterators.h (is_customization_point_object):
3642         Remove parameter name.
3644 2023-09-06  Jonathan Wakely  <jwakely@redhat.com>
3646         * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Disable by default
3647         for freestanding.
3648         * configure: Regenerate.
3650 2023-09-04  Christophe Lyon  <christophe.lyon@linaro.org>
3652         Revert
3653         2023-09-04  Christophe Lyon  <christophe.lyon@linaro.org>
3655         PR libstdc++/111238
3656         * configure: Regenerate.
3657         * configure.ac: Call GLIBCXX_CHECK_LINKER_FEATURES in cross,
3658         non-Canadian builds.
3660 2023-09-04  Christophe Lyon  <christophe.lyon@linaro.org>
3662         PR libstdc++/111238
3663         * configure: Regenerate.
3664         * configure.ac: Call GLIBCXX_CHECK_LINKER_FEATURES in cross,
3665         non-Canadian builds.
3667 2023-09-04  Jonathan Wakely  <jwakely@redhat.com>
3669         * testsuite/26_numerics/complex/literals/types.cc: Remove
3670         dg-options and add target selector instead.
3672 2023-09-04  Jonathan Wakely  <jwakely@redhat.com>
3674         * testsuite/tr1/6_containers/utility/pair.cc: Remove dg-options
3675         and qualify ambiguous calls to get.
3676         * testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc: Adjust
3677         expected result for std::pow(float, int) as per DR 550.
3679 2023-09-04  Jonathan Wakely  <jwakely@redhat.com>
3681         * testsuite/20_util/auto_ptr/1.cc: Remove dg-options -std=c++03
3682         and add dg-warning for deprecation warnings.
3683         * testsuite/20_util/auto_ptr/2.cc: Likewise.
3684         * testsuite/20_util/auto_ptr/3.cc: Likewise.
3685         * testsuite/20_util/auto_ptr/3946.cc: Likewise.
3686         * testsuite/20_util/auto_ptr/4.cc: Likewise.
3687         * testsuite/20_util/auto_ptr/5.cc: Likewise.
3688         * testsuite/20_util/auto_ptr/6.cc: Likewise.
3689         * testsuite/20_util/auto_ptr/7.cc: Likewise.
3690         * testsuite/20_util/auto_ptr/assign_neg.cc: Likewise.
3691         * testsuite/20_util/auto_ptr/requirements/explicit_instantiation/1.cc:
3692         Likewise.
3693         * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr.cc:
3694         Likewise.
3695         * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_neg.cc:
3696         Likewise.
3697         * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc:
3698         Likewise.
3699         * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
3700         Likewise.
3701         * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr.cc:
3702         Likewise.
3703         * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr_neg.cc:
3704         Likewise.
3706 2023-09-04  Jonathan Wakely  <jwakely@redhat.com>
3708         PR libstdc++/26142
3709         * testsuite/23_containers/vector/26412-1.cc: Moved to...
3710         * testsuite/23_containers/vector/26142-1.cc: ...here.
3711         * testsuite/23_containers/vector/26412-2.cc: Moved to...
3712         * testsuite/23_containers/vector/26142-2.cc: ...here.
3714 2023-09-04  Jonathan Wakely  <jwakely@redhat.com>
3716         * testsuite/20_util/bitset/107037.cc: Add c++98_only selector.
3717         * testsuite/26_numerics/complex/56111.cc: Likewise.
3719 2023-09-04  Jonathan Wakely  <jwakely@redhat.com>
3721         * testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc:
3722         Add dg-options to restrict the test to C++98 mode.
3723         * testsuite/23_containers/list/requirements/explicit_instantiation/2.cc:
3724         Likewise.
3726 2023-09-04  Jonathan Wakely  <jwakely@redhat.com>
3728         * testsuite/20_util/expected/bad.cc: Add missing target
3729         selector.
3731 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
3733         * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
3734         expected errors.
3735         * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
3736         Likewise.
3738 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
3740         * testsuite/27_io/filesystem/iterators/91067.cc: Add
3741         -Wno-self-move to options.
3742         * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
3744 2023-09-01  Vladimir Palevich  <palevichva@gmail.com>
3746         PR libstdc++/110879
3747         * include/bits/vector.tcc (_M_realloc_insert): End guard
3748         lifetime just before assignment to class members.
3749         (_M_default_append): Likewise.
3751 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
3753         * src/c++17/fs_ops.cc (fs::absolute) [FILESYSTEM_IS_WINDOWS]:
3754         Use __resize_and_overwrite to fill buffer.
3755         (fs::read_symlink) [HAVE_READLINK]: Likewise.
3756         * src/filesystem/ops-common.h (get_temp_directory_from_env)
3757         [FILESYSTEM_IS_WINDOWS]: Likewise.
3759 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
3761         PR libstdc++/111077
3762         * include/bits/atomic_base.h (__atomic_impl::__compare_exchange):
3763         Add _AtomicRef non-type template parameter and use a loop if it
3764         is true.
3765         (__atomic_impl::compare_exchange_weak): Add _AtomicRef NTTP.
3766         (__atomic_impl::compare_exchange_strong): Likewise.
3767         (atomic_ref::compare_exchange_weak): Use true for NTTP.
3768         (atomic_ref::compare_exchange_strong): Use true for NTTP.
3769         * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
3770         Fix test to not rely on atomic_ref::load() to return an object
3771         with padding preserved.
3773 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
3775         * testsuite/27_io/filesystem/path/108636.cc: Add dg-require for
3776         filesystem support.
3778 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
3780         * src/c++20/tzdb.cc (tzdb::current_zone): Check configure macros
3781         for POSIX readlink before using filesystem::read_symlink.
3783 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
3785         * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Default to yes.
3786         * configure: Regenerate.
3788 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
3790         * include/bits/chrono_io.h (_Parser::operator()): Set failbit
3791         early if invalid values are read when _M_need & _TimeOfDay is
3792         non-zero.
3793         * testsuite/std/time/parse.cc: Check that "25:59" cannot be
3794         parsed for "%H:%M".
3796 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
3798         PR libstdc++/111162
3799         * include/bits/chrono_io.h (_Parser::Operator()): Check %C
3800         values are in range of year::min() to year::max().
3801         * testsuite/std/time/parse.cc: Check out of range centuries.
3803 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
3805         * include/std/format (__format::_Sink::_M_reset): Change second
3806         argument from iterator to offset.
3808 2023-08-24  Paul Dreik  <gccpatches@pauldreik.se>
3810         PR libstdc++/111102
3811         * testsuite/std/format/string.cc: Check wide character format
3812         strings with out-of-range widths.
3814 2023-08-24  Paul Dreik  <gccpatches@pauldreik.se>
3816         PR libstdc++/111102
3817         * include/std/format (__format::__parse_integer): Check for
3818         non-null pointer.
3820 2023-08-24  Jonathan Wakely  <jwakely@redhat.com>
3822         * testsuite/std/format/functions/format_to.cc: Avoid warning for
3823         unused variables.
3825 2023-08-24  Jonathan Wakely  <jwakely@redhat.com>
3827         * include/std/atomic: Add comment to #ifdef and fix indentation.
3828         * include/std/ostream: Check __glibcxx_syncbuf instead of
3829         __cplusplus and _GLIBCXX_HOSTED.
3830         * include/std/thread: Add comment to #ifdef.
3832 2023-08-24  Jonathan Wakely  <jwakely@redhat.com>
3834         * include/bits/version.def (__cpp_lib_ratio): Define.
3835         * include/bits/version.h: Regenerate.
3836         * include/std/ratio (quecto, ronto, yocto, zepto)
3837         (zetta, yotta, ronna, quetta): Define.
3838         * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Adjust
3839         dg-error line numbers.
3841 2023-08-24  Jonathan Wakely  <jwakely@redhat.com>
3843         * python/libstdcxx/v6/printers.py (StdLocalePrinter): New
3844         printer class.
3845         * testsuite/libstdc++-prettyprinters/locale.cc: New test.
3847 2023-08-24  Jonathan Wakely  <jwakely@redhat.com>
3849         PR libstdc++/110944
3850         * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter): Do
3851         not show template arguments.
3852         (StdVariantPrinter): Likewise.
3853         * testsuite/libstdc++-prettyprinters/compat.cc: Adjust expected
3854         output.
3855         * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
3856         * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
3858 2023-08-23  François Dumont  <fdumont@gcc.gnu.org>
3860         * testsuite/util/replacement_memory_operators.h
3861         (counter::scope): New, capture and reset counter count at construction and
3862         restore it at destruction.
3863         (counter::check_new): Add scope instantiation.
3864         * testsuite/23_containers/unordered_map/96088.cc (main):
3865         Add counter::scope instantiation.
3866         * testsuite/23_containers/unordered_multimap/96088.cc (main): Likewise.
3867         * testsuite/23_containers/unordered_multiset/96088.cc (main): Likewise.
3868         * testsuite/23_containers/unordered_set/96088.cc (main): Likewise.
3869         * testsuite/ext/malloc_allocator/deallocate_local.cc (main): Likewise.
3870         * testsuite/ext/new_allocator/deallocate_local.cc (main): Likewise.
3871         * testsuite/ext/throw_allocator/deallocate_local.cc (main): Likewise.
3872         * testsuite/ext/pool_allocator/allocate_chunk.cc (started): New global.
3873         (operator new(size_t)): Check started.
3874         (main): Set/Unset started.
3875         * testsuite/17_intro/no_library_allocation.cc: New test case.
3877 2023-08-21  Jonathan Wakely  <jwakely@redhat.com>
3879         * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
3880         Call std::set_terminate before throwing the nested exception.
3882 2023-08-18  Jonathan Wakely  <jwakely@redhat.com>
3884         PR target/111060
3885         * include/std/format (formatter): Only define specializations
3886         for 16-bit floating-point types for C++23.
3887         * include/std/limits (numeric_limits): Likewise.
3889 2023-08-18  Jonathan Wakely  <jwakely@redhat.com>
3891         * include/bits/chrono_io.h (operator<<): Make uses of wide
3892         strings with streams and std::format type-dependent on _CharT.
3893         * include/std/format [!_GLIBCXX_USE_WCHAR_T] Do not use
3894         __to_wstring_numeric.
3896 2023-08-18  Jonathan Wakely  <jwakely@redhat.com>
3898         * include/bits/chrono_io.h (operator<<): Use __format_context.
3899         * include/std/format (__format::__format_context): New alias
3900         template.
3901         [!_GLIBCXX_USE_WCHAR_T] (wformat_args, make_wformat_arg):
3902         Disable.
3904 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
3906         Revert:
3907         2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
3909         * config/locale/generic/c_locale.cc (__convert_to_v): Reuse
3910         double overload for long double if possible.
3912 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
3914         * src/c++20/tzdb.cc (tzdata_file, leaps_file): Change type to
3915         std::string_view.
3917 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
3919         * config/locale/generic/c_locale.cc (__convert_to_v): Reuse
3920         double overload for long double if possible.
3922 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
3924         * src/c++98/localename.cc (is_C_locale): New function.
3925         (locale::locale(const char*)): Use is_C_locale.
3927 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
3929         PR libstdc++/110945
3930         * include/bits/basic_string.h (basic_string::assign(Iter, Iter)):
3931         Dispatch to _M_replace or move assignment from a temporary,
3932         based on the iterator type.
3934 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
3936         * include/std/format (formatter): Add partial specializations
3937         for extended floating-point types.
3938         * testsuite/std/format/functions/format.cc: Move test_float128()
3939         to ...
3940         * testsuite/std/format/formatter/ext_float.cc: New test.
3942 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
3944         * include/bits/c++config (__gnu_cxx::__bfloat16_t): Define
3945         whenever __BFLT16_DIG__ is defined, not only for C++23.
3946         * include/std/limits (numeric_limits<bfloat16_t>): Likewise.
3947         (numeric_limits<_Float16>, numeric_limits<_Float32>)
3948         (numeric_limits<_Float64>): Likewise for other extended
3949         floating-point types.
3951 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
3953         * include/experimental/internet (address_v4::to_string): Remove
3954         unused parameter name.
3956 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
3958         * libsupc++/compare (__cmp_cat::__unseq): Make ctor consteval.
3959         * testsuite/18_support/comparisons/categories/zero_neg.cc: Prune
3960         excess errors caused by invalid consteval calls.
3962 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
3964         * include/bits/chrono_io.h (__units_suffix_misc): Remove.
3965         (__units_suffix): Return a known suffix as string view, do not
3966         write unknown suffixes to a buffer.
3967         (__fmt_units_suffix): New function that formats the suffix using
3968         std::format_to.
3969         (operator<<, __chrono_formatter::_M_q): Use __fmt_units_suffix.
3970         (__chrono_formatter::_M_Z): Correct lifetime of wstring.
3972 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
3974         * include/std/format [_GLIBCXX_USE_WCHAR_T]: Guard all wide
3975         string formatters with this macro.
3976         (__formatter_int::_M_format_int, __formatter_fp::format)
3977         (formatter<const void*, C>::format): Use __to_wstring_numeric
3978         instead of std::ctype::widen.
3979         (__formatter_fp::_M_localize): Use hardcoded wchar_t values
3980         instead of std::ctype::widen.
3981         * testsuite/std/format/functions/format.cc: Add more checks for
3982         wstring formatting of arithmetic types.
3984 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
3986         * include/bits/basic_string.h (to_string(floating-point-type)):
3987         Implement using std::to_chars for C++26.
3988         * include/bits/version.def (__cpp_lib_to_string): Define.
3989         * include/bits/version.h: Regenerate.
3990         * testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc:
3991         Adjust expected result in C++26 mode.
3992         * testsuite/21_strings/basic_string/numeric_conversions/char/to_string.cc:
3993         Likewise.
3994         * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/dr1261.cc:
3995         Likewise.
3996         * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring.cc:
3997         Likewise.
3998         * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc:
3999         New test.
4000         * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring_float.cc:
4001         New test.
4002         * testsuite/21_strings/basic_string/numeric_conversions/version.cc:
4003         New test.
4005 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
4007         * include/bits/basic_string.h (to_string(integral-type)): Use
4008         resize_and_overwrite when available.
4009         (__to_wstring_numeric): New helper functions.
4010         (to_wstring): Use std::to_string then __to_wstring_numeric.
4011         * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_int.cc:
4012         Remove check for no excess capacity.
4014 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
4016         * include/bits/basic_string.h (__resize_and_overwrite): New
4017         function.
4018         * include/bits/basic_string.tcc (__resize_and_overwrite): New
4019         function.
4020         (resize_and_overwrite): Simplify by using reserve instead of
4021         growing the string manually. Adjust for C++11 compatibility.
4022         * include/bits/cow_string.h (resize_and_overwrite): New
4023         function.
4024         (__resize_and_overwrite): New function.
4025         * include/bits/version.def (__cpp_lib_string_resize_and_overwrite):
4026         Do not depend on cxx11abi.
4027         * include/bits/version.h: Regenerate.
4028         * include/std/format (__formatter_fp::_S_resize_and_overwrite):
4029         Remove.
4030         (__formatter_fp::format, __formatter_fp::_M_localize): Use
4031         __resize_and_overwrite instead of _S_resize_and_overwrite.
4032         * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
4033         Adjust for C++11 compatibility when included by ...
4034         * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite_ext.cc:
4035         New test.
4037 2023-08-17  Patrick Palka  <ppalka@redhat.com>
4039         * include/bits/regex.h (regex_iterator::iterator_concept):
4040         Define for C++20 as per P2770R0.
4041         (regex_token_iterator::iterator_concept): Likewise.
4042         * include/std/ranges (__detail::__as_lvalue): Define.
4043         (join_view::_Iterator): Befriend join_view.
4044         (join_view::_Iterator::_M_satisfy): Use _M_get_outer
4045         instead of _M_outer.
4046         (join_view::_Iterator::_M_get_outer): Define.
4047         (join_view::_Iterator::_Iterator): Split constructor taking
4048         _Parent argument into two as per P2770R0.  Remove constraint on
4049         default constructor.
4050         (join_view::_Iterator::_M_outer): Make this data member present
4051         only when the underlying range is forward.
4052         (join_view::_Iterator::operator++): Use _M_get_outer instead of
4053         _M_outer.
4054         (join_view::_Iterator::operator--): Use __as_lvalue helper.
4055         (join_view::_Iterator::operator==): Adjust constraints as per
4056         P2770R0.
4057         (join_view::_Sentinel::__equal): Use _M_get_outer instead of
4058         _M_outer.
4059         (join_view::_M_outer): New data member when the underlying range
4060         is non-forward.
4061         (join_view::begin): Adjust definition as per P2770R0.
4062         (join_view::end): Likewise.
4063         (join_with_view::_M_outer_it): New data member when the
4064         underlying range is non-forward.
4065         (join_with_view::begin): Adjust definition as per P2770R0.
4066         (join_with_view::end): Likewise.
4067         (join_with_view::_Iterator::_M_outer_it): Make this data member
4068         present only when the underlying range is forward.
4069         (join_with_view::_Iterator::_M_get_outer): Define.
4070         (join_with_view::_Iterator::_Iterator): Split constructor
4071         taking _Parent argument into two as per P2770R0.  Remove
4072         constraint on default constructor.
4073         (join_with_view::_Iterator::_M_update_inner): Adjust definition
4074         as per P2770R0.
4075         (join_with_view::_Iterator::_M_get_inner): Likewise.
4076         (join_with_view::_Iterator::_M_satisfy): Adjust calls to
4077         _M_get_inner.  Use _M_get_outer instead of _M_outer_it.
4078         (join_with_view::_Iterator::operator==): Adjust constraints
4079         as per P2770R0.
4080         (join_with_view::_Sentinel::operator==): Use _M_get_outer
4081         instead of _M_outer_it.
4082         * testsuite/std/ranges/adaptors/p2770r0.cc: New test.
4084 2023-08-17  Patrick Palka  <ppalka@redhat.com>
4086         PR libstdc++/108827
4087         * include/std/ranges (__adaptor::_RangeAdaptorClosure):
4088         Convert into a CRTP class template.  Move hidden operator|
4089         friends into namespace scope and adjust their constraints.
4090         (__closure::__is_range_adaptor_closure_fn): Define.
4091         (__closure::__is_range_adaptor_closure): Define.
4092         (__adaptor::_Partial): Adjust use of _RangeAdaptorClosure.
4093         (__adaptor::_Pipe): Likewise.
4094         (views::_All): Likewise.
4095         (views::_Join): Likewise.
4096         (views::_Common): Likewise.
4097         (views::_Reverse): Likewise.
4098         (views::_Elements): Likewise.
4099         (views::_Adjacent): Likewise.
4100         (views::_AsRvalue): Likewise.
4101         (views::_Enumerate): Likewise.
4102         (views::_AsConst): Likewise.
4103         * testsuite/std/ranges/adaptors/all.cc: Reinstate assertion
4104         expecting that adding empty range adaptor closure objects to a
4105         pipeline doesn't increase the size of a pipeline.
4107 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
4109         * include/std/format (__format::_Pres_type): Add _Pres_F.
4110         (__formatter_fp::parse): Use _Pres_F for 'F'.
4111         (__formatter_fp::format): Set __upper for _Pres_F.
4112         * testsuite/std/format/functions/format.cc: Check formatting of
4113         infinity and NaN for each presentation type.
4115 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
4117         * include/Makefile.in: Regenerate.
4119 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
4121         * testsuite/24_iterators/move_iterator/p2520r0.cc: Add no_pch.
4122         * testsuite/std/format/functions/format.cc: Likewise.
4123         * testsuite/std/format/functions/format_c++23.cc: Likewise.
4125 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
4127         * testsuite/lib/dg-options.exp (add_options_for_no_pch): Remove
4128         any "-include bits/stdc++.h" from options and add the macro to
4129         the existing options instead of replacing them.
4131 2023-08-16  Jonathan Wakely  <jwakely@redhat.com>
4133         * include/bits/basic_string.tcc (resize_and_overwrite): Invoke
4134         the callable with the same size as resize_and_overwrite was
4135         called with.
4136         * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
4137         Check with small values for the new size.
4138         * testsuite/std/format/functions/format.cc: Check wide
4139         formatting of double values that produce small strings.
4140         * testsuite/std/format/functions/format_c++23.cc: New test.
4142 2023-08-16  Jonathan Wakely  <jwakely@redhat.com>
4144         * include/bits/version.def (stds): Update value for C++23.
4145         * include/bits/version.h: Regenerate.
4147 2023-08-16  Jonathan Wakely  <jwakely@redhat.com>
4149         * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
4150         Fix name of upstream file this was derived from.
4151         * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
4152         Likewise.
4153         * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
4154         Likewise.
4155         * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
4156         Likewise.
4157         * testsuite/25_algorithms/pstl/alg_sorting/set_util.h: Likewise.
4159 2023-08-16  Arsen Arsenović  <arsen@aarsen.me>
4161         * libsupc++/typeinfo: Switch to bits/version.h for
4162         __cpp_lib_constexpr_typeinfo.
4163         * libsupc++/new: Switch to bits/version.h for
4164         __cpp_lib_{launder,hardware_interference_size,destroying_delete}.
4165         (launder): Guard behind __cpp_lib_launder.
4166         (hardware_destructive_interference_size)
4167         (hardware_constructive_interference_size): Guard behind
4168         __cpp_lib_hardware_interference_size.
4169         * libsupc++/exception: Switch to bits/version.h for
4170         __cpp_lib_uncaught_exceptions.
4171         (uncaught_exceptions): Guard behind __cpp_lib_uncaught_exceptions.
4172         * libsupc++/compare: Switch to bits/version.h for
4173         __cpp_lib_three_way_comparison.
4174         (three_way_comparable, three_way_comparable_with)
4175         (compare_three_way, weak_order, strong_order, partial_order):
4176         Guard behind __cpp_lib_three_way_comparison >= 201907L.
4177         * include/std/chrono: Drop __cpp_lib_chrono definition.
4178         * include/std/vector: Switch to bits/version.h for
4179         __cpp_lib_erase_if.
4180         (erase, erase_if): Guard behind __cpp_lib_erase_if.
4181         * include/std/variant: Switch to bits/version.h for
4182         __cpp_lib_variant.  Guard whole header behind that FTM.
4183         * include/std/utility: Switch to bits/version.h for
4184         __cpp_lib_{exchange_function,constexpr_algorithms,as_const},
4185         __cpp_lib_{integer_comparison_functions,to_underlying}, and
4186         __cpp_lib_unreachable.
4187         (exchange): Guard behind __cpp_lib_exchange_function.
4188         (cmp_equal, cmp_not_equal, cmp_less, cmp_greater, cmp_less_equal)
4189         (cmp_greater_equal, in_range): Guard behind
4190         __cpp_lib_integer_comparison_functions.
4191         (to_underlying): Guard behind __cpp_lib_to_underlying.
4192         (unreachable): Guard behind __cpp_lib_unreachable.
4193         * include/std/type_traits: Switch to bits/version.h for
4194         __cpp_lib_is_{null_pointer,final,nothrow_convertible,aggregate},
4195         __cpp_lib_is_{constant_evaluated,invocable,layout_compatible},
4196         __cpp_lib_is_{pointer_interconvertible,scoped_enum,swappable},
4197         __cpp_lib_{logical_traits,reference_from_temporary,remove_cvref},
4198         __cpp_lib_{result_of_sfinae,transformation_trait_aliases},
4199         __cpp_lib_{type_identity,type_trait_variable_templates},
4200         __cpp_lib_{unwrap_ref,void_t,integral_constant_callable},
4201         __cpp_lib_{bool_constant,bounded_array_traits}, and
4202         __cpp_lib_has_unique_object_representations.
4203         (integral_constant::operator()): Guard behind
4204         __cpp_lib_integral_constant_callable.
4205         (bool_constant): Guard behind __cpp_lib_bool_constant.
4206         (conjunction, disjunction, negation, conjunction_v, disjunction_v)
4207         (negation_v): Guard behind __cpp_lib_logical_traits.
4208         (is_null_pointer): Guard behind __cpp_lib_is_null_pointer.
4209         (is_final): Guard behind __cpp_lib_is_final.
4210         (is_nothrow_convertible, is_nothrow_convertible_v): Guard behind
4211         __cpp_lib_is_nothrow_convertible.
4212         (remove_const_t, remove_volatile_t, remove_cv_t)
4213         (add_const_t, add_volatile_t, add_cv_t): Guard behind
4214         __cpp_lib_transformation_trait_aliases.
4215         (void_t): Guard behind __cpp_lib_void_t.
4216         (is_swappable_with_v, is_nothrow_swappable_with_v)
4217         (is_swappable_with, is_nothrow_swappable_with): Guard behind
4218         __cpp_lib_is_swappable.
4219         (is_nothrow_invocable_r, is_invocable_r, invoke_result)
4220         (is_invocable, invoke_result_t): Guard behind
4221         __cpp_lib_is_invocable.
4222         (alignment_of_v, extent_v, has_virtual_destructor_v)
4223         (is_abstract_v, is_arithmetic_v, is_array_v)
4224         (is_assignable_v, is_base_of_v, is_class_v, is_compound_v)
4225         (is_constructible_v, is_const_v, is_convertible_v)
4226         (is_copy_assignable_v, is_copy_constructible_v)
4227         (is_default_constructible_v, is_destructible_v)
4228         (is_empty_v, is_enum_v, is_final_v, is_floating_point_v)
4229         (is_function_v, is_fundamental_v, is_integral_v)
4230         (is_invocable_r_v, is_invocable_v, is_literal_type_v)
4231         (is_lvalue_reference_v, is_member_function_pointer_v)
4232         (is_member_object_pointer_v, is_member_pointer_v)
4233         (is_move_assignable_v, is_move_constructible_v)
4234         (is_nothrow_assignable_v, is_nothrow_constructible_v)
4235         (is_nothrow_copy_assignable_v, is_nothrow_copy_constructible_v)
4236         (is_nothrow_default_constructible_v, is_nothrow_destructible_v)
4237         (is_nothrow_invocable_r_v, is_nothrow_invocable_v)
4238         (is_nothrow_move_assignable_v, is_nothrow_move_constructible_v)
4239         (is_null_pointer_v, is_object_v, is_pod_v, is_pointer_v)
4240         (is_polymorphic_v, is_reference_v, is_rvalue_reference_v)
4241         (is_same_v, is_scalar_v, is_signed_v, is_standard_layout_v)
4242         (is_trivially_assignable_v, is_trivially_constructible_v)
4243         (is_trivially_copyable_v, is_trivially_copy_assignable_v)
4244         (is_trivially_copy_constructible_v)
4245         (is_trivially_default_constructible_v)
4246         (is_trivially_destructible_v, is_trivially_move_assignable_v)
4247         (is_trivially_move_constructible_v, is_trivial_v, is_union_v)
4248         (is_unsigned_v, is_void_v, is_volatile_v, rank_v, as variadic):
4249         Guard behind __cpp_lib_type_trait_variable_templates.
4250         (has_unique_object_representations)
4251         (has_unique_object_representations_v): Guard behind
4252         __cpp_lib_has_unique_object_representation.
4253         (is_aggregate): Guard behind __cpp_lib_is_aggregate.
4254         (remove_cvref, remove_cvref_t): Guard behind
4255         __cpp_lib_remove_cvref.
4256         (type_identity, type_identity_t): Guard behind
4257         __cpp_lib_type_identity.
4258         (unwrap_reference, unwrap_reference_t, unwrap_ref_decay)
4259         (unwrap_ref_decay_t): Guard behind __cpp_lib_unwrap_ref.
4260         (is_bounded_array_v, is_unbounded_array_v, is_bounded_array)
4261         (is_unbounded_array): Guard behind __cpp_lib_bounded_array_traits.
4262         (is_scoped_enum, is_scoped_enum_v): Guard behind
4263         __cpp_lib_is_scoped_enum.
4264         (reference_constructs_from_temporary)
4265         (reference_constructs_from_temporary_v): Guard behind
4266         __cpp_lib_reference_from_temporary.
4267         * include/std/tuple: Switch to bits/version.h for
4268         __cpp_lib_{constexpr_tuple,tuple_by_type,apply_make_from_tuple}.
4269         (get<T>): Guard behind __cpp_lib_tuple_by_type.
4270         (apply): Guard behind __cpp_lib_apply.
4271         (make_from_tuple): Guard behind __cpp_lib_make_from_tuple.
4272         * include/std/syncstream: Switch to bits/version.h for
4273         __cpp_lib_syncbuf.  Guard header behind that FTM.
4274         * include/std/string_view: Switch to bits/version.h for
4275         __cpp_lib_{string_{view,contains},constexpr_string_view} and
4276         __cpp_lib_starts_ends_with.
4277         (basic_string_view::starts_with, basic_string_view::ends_with):
4278         Guard behind __cpp_lib_starts_ends_with.
4279         [C++23 && _GLIBCXX_HOSTED && !defined(__cpp_lib_string_contains)]:
4280         Assert as impossible ithout a bug in C++23.
4281         * include/std/string: Switch to bits/version.h for
4282         __cpp_lib_erase_if.
4283         (erase, erase_if): Guard behind __cpp_lib_erase_if.
4284         * include/std/thread: Switch to bits/version.h for
4285         __cpp_lib_jthread.
4286         * include/std/stop_token: Switch to bits/version.h for
4287         __cpp_lib_jthread.
4288         * include/std/spanstream: Switch to bits/version.h for
4289         __cpp_lib_spanstream.  Guard header behind that FTM.
4290         * include/std/span: Switch to bits/version.h for __cpp_lib_span.
4291         Guard header behind that FTM.
4292         * include/std/source_location: Switch to bits/version.h for
4293         __cpp_lib_source_location.  Guard header with that FTM.
4294         * include/std/shared_mutex: Switch to bits/version.h for
4295         __cpp_lib_shared{,_timed}_mutex.
4296         (shared_mutex): Guard behind __cpp_lib_shared_mutex.
4297         * include/std/semaphore: Switch to bits/version.h for
4298         __cpp_lib_semaphore.  Guard header behind that FTM.
4299         * include/std/ranges: Switch to bits/version.h for
4300         __cpp_lib_ranges_{zip,chunk{,_by},slide,join_with},
4301         __cpp_lib_ranges_{repeat_stride,cartesian_product,as_rvalue},
4302         and __cpp_lib_ranges_{as_const,enumerate,iota}.
4303         (ranges::zip et al, ranges::chunk et al, ranges::slide et al)
4304         (ranges::chunk_by et al, ranges::join_with et al)
4305         (ranges::stride et al, ranges::cartesian_product et al)
4306         (ranges::as_rvalue et al, ranges::as_const et al)
4307         (ranges::enumerate et al): Guard behind appropriate FTM.
4308         * include/std/optional: Switch to bits/version.h for
4309         __cpp_lib_optional.  Guard header behind that FTM.
4310         * include/std/numeric: Switch to bits/version.h for
4311         __cpp_lib_{gcd{,_lcm},lcm,constexpr_numeric,interpolate}
4312         and __cpp_lib_parallel_algorithm.
4313         (gcd, lcm): Guard behind __cpp_lib_gcd_lcm.
4314         (midpoint): Guard behind __cpp_lib_interpolate.
4315         * include/std/numbers: Switch to bits/version.h for
4316         __cpp_lib_math_constants.  Guard header behind that FTM.
4317         * include/std/mutex: Switch to bits/version.h for
4318         __cpp_lib_scoped_lock.
4319         (scoped_Lock): Guard behind __cpp_lib_scoped_lock.
4320         * include/std/memory_resource: Switch to bits/version.h for
4321         __cpp_lib_{polymorphic_allocator,memory_resource}.
4322         (synchronized_pool_resource): Guard behind
4323         __cpp_lib_memory_resource >= 201603L.
4324         (polymorphic_allocator): Guard behind
4325         __cpp_lib_polymorphic_allocator.
4326         * include/std/memory: Switch to bits/version.h for
4327         __cpp_lib_{parallel_algorithm,atomic_value_initialization}.
4328         * include/std/list: Switch to bits/version.h for
4329         __cpp_lib_erase_if.
4330         (erase, erase_if): Guard behind __cpp_lib_erase_if.
4331         * include/std/latch: Switch to bits/version.h for __cpp_lib_latch.
4332         Guard header behind that FTM.
4333         * include/std/iterator: Switch to bits/version.h for
4334         __cpp_lib_null_iterators.
4335         * include/std/iomanip: Switch to bits/version.h for
4336         __cpp_lib_quoted_string_io.
4337         (quoted): Guard behind __cpp_lib_quoted_string_io.
4338         * include/std/functional: Switch to bits/version.h for
4339         __cpp_lib_{invoke{,_r},constexpr_functional,bind_front} and
4340         __cpp_lib_{not_fn,booyer_moore_searcher}.
4341         (invoke): Guard behind __cpp_lib_invoke.
4342         (invoke_r): Guard behind __cpp_lib_invoke_r.
4343         (bind_front): Guard behind __cpp_lib_bind_front.
4344         (not_fn): Guard behind __cpp_lib_not_fn.
4345         (boyer_moore_searcher, boyer_moore_horspool_searcher): Guard
4346         definition behind __cpp_lib_boyer_moore_searcher.
4347         * include/std/forward_list: Switch to bits/version.h for
4348         __cpp_lib_erase_if.
4349         (erase, erase_if): Guard behind __cpp_lib_erase_if.
4350         * include/std/format: Switch to bits/version.h for
4351         __cpp_lib_format.  Guard header behind that FTM.
4352         * include/std/filesystem: Switch to bits/version.h for
4353         __cpp_lib_filesystem.  Guard header behind that FTM.
4354         * include/std/expected: Switch to bits/version.h for
4355         __cpp_lib_expected.  Guard header behind it.
4356         * include/std/execution: Switch to bits/version.h for
4357         __cpp_lib_{execution,parallel_algorithm}.  Guard header behind
4358         either.
4359         * include/std/deque: Switch to bits/version.h for
4360         __cpp_lib_erase_if.
4361         (erase, erase_if): Guard behind __cpp_lib_erase_if.
4362         * include/std/coroutine: Switch to bits/version.h for
4363         __cpp_lib_coroutine.  Guard header behind that FTM.
4364         * include/std/concepts: Switch to bits/version.h for
4365         __cpp_lib_concepts.  Guard header behind that FTM.
4366         * include/std/complex: Switch to bits/version.h for
4367         __cpp_lib_{complex_udls,constexpr_complex}.
4368         (operator""if, operator""i, operator""il): Guard behind
4369         __cpp_lib_complex_udls.
4370         * include/std/charconv: Swtich to bits/version.h for
4371         __cpp_lib_{to_chars,constexpr_charconv}.
4372         * include/std/bitset: Switch to bits/version.h for
4373         __cpp_lib_constexpr_bitset.
4374         * include/std/bit: Switch to bits/version.h for
4375         __cpp_lib_{bit_cast,byteswap,bitops,int_pow2,endian}.
4376         (bit_cast): Guard behind __cpp_lib_bit_cast.
4377         (byteswap): Guard behind __cpp_lib_byteswap.
4378         (rotl, rotr, countl_zero, countl_one, countr_zero, countr_one)
4379         (popcount): Guard behind __cpp_lib_bitops.
4380         (has_single_bit, bit_ceil, bit_floor, bit_width): Guard behind
4381         __cpp_lib_int_pow2.
4382         (endian): Guard behind __cpp_lib_endian.
4383         * include/std/barrier: Switch to bits/version.h for
4384         __cpp_lib_barrier.  Guard header behind that FTM.
4385         * include/std/atomic: Switch to bits/version.h for
4386         __cpp_lib_atomic_{is_always_lock_free,float,ref}
4387         and __cpp_lib_lock_free_type_aliases.
4388         (*::is_always_lock_free): Guard behind
4389         __cpp_lib_atomic_is_always_lock_free.
4390         (atomic<float>): Guard behind __cpp_lib_atomic_float.
4391         (atomic_ref): Guard behind __cpp_lib_atomic_ref.
4392         (atomic_signed_lock_free, atomic_unsigned_lock_free): Guard behind
4393         __cpp_lib_atomic_lock_free_type_aliases.
4394         * include/std/array: Switch to bits/version.h for
4395         __cpp_lib_to_array.
4396         (to_array): Guard behind __cpp_lib_to_array.
4397         * include/std/any: Switch to bits/version.h for __cpp_lib_any.
4398         Guard header behind that FTM.
4399         * include/std/algorithm: Switch to bits/version.h for
4400         __cpp_lib_parallel_algorithm.
4401         * include/c_global/cstddef: Switch to bits/version.h for
4402         __cpp_lib_byte.
4403         (byte): Guard behind __cpp_lib_byte.
4404         * include/c_global/cmath: Switch to bits/version.h for
4405         __cpp_lib_{hypot,interpolate}.
4406         (hypot3): Guard behind __cpp_lib_hypot.
4407         (lerp): Guard behind __cpp_lib_interpolate.
4408         * include/c_compatibility/stdatomic.h: Switch to
4409         bits/stl_version.h for __cpp_lib_atomic.  Guard header behind that
4410         FTM.
4411         * include/bits/utility.h: Switch to bits/version.h for
4412         __cpp_lib_{tuple_element_t,integer_sequence,ranges_zip}.
4413         (tuple_element_t): Guard behind __cpp_lib_tuple_element_t.
4414         (integer_sequence et al): Guard behind __cpp_lib_integer_sequence.
4415         * include/bits/uses_allocator_args.h: Switch to bits/version.h for
4416         __cpp_lib_make_obj_using_allocator.  Guard header behind that FTM.
4417         * include/bits/unordered_map.h: Switch to bits/version.h for
4418         __cpp_lib_unordered_map_try_emplace.
4419         (try_emplace): Guard behind __cpp_lib_unordered_map_try_emplace.
4420         * include/bits/unique_ptr.h: Switch to bits/version.h for
4421         __cpp_lib_{constexpr_memory,make_unique}.
4422         (make_unique): Guard behind __cpp_lib_make_unique.
4423         * include/bits/stl_vector.h: Switch to bits/version.h for
4424         __cpp_lib_constexpr_vector.
4425         * include/bits/stl_uninitialized.h: Switch to bits/version.h for
4426         __cpp_lib_raw_memory_algorithms.
4427         (uninitialized_default_construct)
4428         (uninitialized_default_construct_n, uninitialized_move)
4429         (uninitialized_move_n, uninitialized_value_construct)
4430         (uninitialized_value_construct_n): Guard behind
4431         __cpp_lib_raw_memory_algorithms.
4432         * include/bits/stl_tree.h: Switch to bits/version.h for
4433         __cpp_lib_generic_associative_lookup.
4434         * include/bits/stl_stack.h: Switch to bits/version.h for
4435         __cpp_lib_adaptor_iterator_pair_constructor.
4436         (stack): Guard iterator-pair constructor behind
4437         __cpp_lib_adaptor_iterator_pair_constructor.
4438         * include/bits/stl_queue.h: Switch to bits/version.h for
4439         __cpp_lib_adaptor_iterator_pair_constructor.
4440         (queue): Guard iterator-pair constructor behind
4441         __cpp_lib_adaptor_iterator_pair_constructor.
4442         * include/bits/stl_pair.h: Switch to bits/version.h for
4443         __cpp_lib_{concepts,tuples_by_type}.
4444         (get): Guard type-getting overloads behind
4445         __cpp_lib_tuples_by_type.
4446         * include/bits/stl_map.h: Switch to bits/version.h for
4447         __cpp_lib_map_try_emplace.
4448         (map<>::try_emplace): Guard behind __cpp_lib_map_try_emplace.
4449         * include/bits/stl_list.h: Switch to bits/version.h for
4450         __cpp_lib_list_remove_return_type.
4451         (__remove_return_type, _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG)
4452         [C++20]: guard behind __cpp_lib_list_remove_return_type instead.
4453         * include/bits/stl_iterator.h: Switch to bits/version.h for
4454         __cpp_lib_{constexpr_iterator,array_constexpr} and
4455         __cpp_lib_{make_reverse_iterator,move_iterator_concept}.
4456         (make_reverse_iterator): Guard behind
4457         __cpp_lib_make_reverse_iterator.
4458         (iterator_concept et al): Guard __cpp_lib_move_iterator_concept
4459         changes behind that FTM.
4460         * include/bits/stl_function.h: Switch to bits/version.h for
4461         __cpp_lib_transparent_operators.
4462         (equal_to, not_equal_to, greater, less, greater_equal)
4463         (less_equal, bit_and, bit_or, bit_xor, bit_not, logical_and)
4464         (logical_or, logical_not, plus, minus, multiplies, divides)
4465         (modulus, negate): Guard '= void' fwdecls behind
4466         __cpp_lib_transparent_operators.
4467         (plus<void>, minus<void>, multiplies<void>, divides<void>)
4468         (modulus<void>, negate<void>, logical_and<void>, logical_or<void>)
4469         (logical_not<void>, bit_and<void>, bit_or<void>, bit_xor<void>)
4470         (equal_to<void>, not_equal_to<void>, greater<void>, less<void>)
4471         (greater_equal<void>, less_equal<void>, bit_not<void>)
4472         (__has_is_transparent): Guard behind
4473         __cpp_lib_transparent_operators.
4474         * include/bits/stl_algobase.h: Switch to bits/version.h for
4475         __cpp_lib_robust_nonmodifying_seq_ops.
4476         (robust equal, mismatch): Guard behind
4477         __cpp_lib_nonmember_container_access.
4478         * include/bits/stl_algo.h: Swtich to bits/version.h for
4479         __cpp_lib_{clamp,sample}.
4480         (clamp): Guard behind __cpp_lib_clamp.
4481         (sample): Guard behind __cpp_lib_sample.
4482         * include/bits/specfun.h: Switch to bits/version.h for
4483         __cpp_lib_math_special_functions and __STDCPP_MATH_SPEC_FUNCS__.
4484         * include/bits/shared_ptr_base.h: Switch to bits/version.h for
4485         __cpp_lib_{smart_ptr_for_overwrite,shared_ptr_arrays}.
4486         (_Sp_overwrite_tag): Guard behind
4487         __cpp_lib_smart_ptr_for_overwrite.
4488         * include/bits/shared_ptr_atomic.h: Switch to bits/version.h for
4489         __cpp_lib_atomic_shared_ptr.
4490         * include/bits/shared_ptr.h: Switch to bits/version.h for
4491         __cpp_lib_{enable_shared_from_this,shared_ptr_weak_type}.
4492         (shared_ptr<T>::weak_type): Guard behind
4493         __cpp_lib_shared_ptr_weak_type.
4494         (enable_shared_from_this<T>::weak_from_this): Guard behind
4495         __cpp_lib_enable_shared_from_this.
4496         * include/bits/ranges_cmp.h: Switch to bits/version.h for
4497         __cpp_lib_ranges.
4498         * include/bits/ranges_algo.h: Switch to bits/version.h for
4499         __cpp_lib_{shift,ranges_{contains,find_last,fold,iota}}.
4500         * include/bits/range_access.h: Switch to bits/version.h for
4501         __cpp_lib_nonmember_container_access
4502         (size, empty, data): Guard behind
4503         __cpp_lib_nonmember_container_access.
4504         (ssize): Guard behind __cpp_lib_ssize.
4505         * include/bits/ptr_traits.h: Switch to bits/version.h. for
4506         __cpp_lib_{constexpr_memory,to_address}.
4507         (to_address): Guard behind __cpp_lib_to_address.
4508         * include/bits/node_handle.h: Switch to bits/version.h for
4509         __cpp_lib_node_extract.  Guard header behind that FTM.
4510         * include/bits/move_only_function.h: Switch to bits/version.h for
4511         __cpp_lib_move_only_function.  Guard header behind that FTM.
4512         * include/bits/move.h: Switch to bits/version.h for
4513         __cpp_lib_addressof_constexpr.
4514         * include/bits/ios_base.h: Switch to bits/version.h for
4515         __cpp_lib_ios_noreplace.
4516         (noreplace): Guard with __cpp_lib_ios_noreplace.
4517         * include/bits/hashtable.h: Switch to bits/version.h for
4518         __cpp_lib_generic_unordered_lookup.
4519         (_M_equal_range_tr, _M_count_tr, _M_find_tr): Guard behind
4520         __cpp_lib_generic_unordered_lookup.
4521         * include/bits/forward_list.h: Switch to bits/version.h for
4522         __cpp_lib_list_remove_return_type.
4523         (__remove_return_type): Guard behind
4524         __cpp_lib_list_remove_return_type.
4525         * include/bits/erase_if.h: Switch to bits/version.h for
4526         __cpp_lib_erase_if.
4527         * include/bits/cow_string.h: Switch to bits/version.h for
4528         __cpp_lib_constexpr_string.
4529         * include/bits/chrono.h: Swtich to bits/version.h for
4530         __cpp_lib_chrono{,_udls}.
4531         (ceil): Guard behind __cpp_lib_chrono.
4532         (operator""ns et al): Guard behind __cpp_lib_chrono_udls.
4533         * include/bits/char_traits.h: Switch to bits/version.h for
4534         __cpp_lib_constexpr_char_traits.
4535         * include/bits/basic_string.h: Switch to bits/version.h for
4536         __cpp_lib_{constexpr_string,string_{resize_and_overwrite,udls}}.
4537         (resize_and_overwrite): Guard behind
4538         __cpp_lib_string_resize_and_overwrite.
4539         (operator""s): Guard behind __cpp_lib_string_udls.
4540         * include/bits/atomic_wait.h: Switch to bits/version.h for
4541         __cpp_lib_atomic_wait.  Guard header behind that FTM.
4542         * include/bits/atomic_base.h: Switch to bits/version.h for
4543         __cpp_lib_atomic_value_initialization and
4544         __cpp_lib_atomic_flag_test.
4545         (atomic_flag::test): Guard behind __cpp_lib_atomic_flag_test,
4546         rather than C++20.
4547         * include/bits/allocator.h: Switch to bits/version.h for
4548         __cpp_lib_incomplete_container_elements.
4549         * include/bits/alloc_traits.h: Switch to using bits/version.h for
4550         __cpp_lib_constexpr_dynamic_alloc and
4551         __cpp_lib_allocator_traits_is_always_equal.
4552         * include/bits/align.h: Switch to bits/version.h for defining
4553         __cpp_lib_assume_aligned.
4554         (assume_aligned): Guard with __cpp_lib_assume_aligned.
4555         * include/bits/algorithmfwd.h: Switch to bits/version.h for
4556         defining __cpp_lib_constexpr_algorithms.
4557         * include/std/stacktrace: Switch to bits/version.h for
4558         __cpp_lib_stacktrace.  Guard header behind that FTM.
4559         * testsuite/23_containers/array/tuple_interface/get_neg.cc:
4560         Update line numbers.
4562 2023-08-16  Arsen Arsenović  <arsen@aarsen.me>
4564         * include/Makefile.am (bits_freestanding): Add version.h.
4565         (allcreated): Add version.h.
4566         (${bits_srcdir}/version.h): New rule.  Regenerates
4567         version.h out of version.{def,tpl}.
4568         * include/Makefile.in: Regenerate.
4569         * include/bits/version.def: New file.  Declares a list of
4570         all feature test macros, their values and their preconditions.
4571         * include/bits/version.tpl: New file.  Turns version.def
4572         into a sequence of #if blocks.
4573         * include/bits/version.h: New file.  Generated from
4574         version.def.
4575         * include/std/version: Replace with a __glibcxx_want_all define
4576         and bits/version.h include.
4578 2023-08-14  Paul Dreik  <gccpatches@pauldreik.se>
4580         PR libstdc++/110860
4581         * include/std/format (__formatter_fp::format): Use frexp instead
4582         of log10.
4584 2023-08-12  Ken Matsui  <kmatsui@gcc.gnu.org>
4586         * include/std/type_traits (true_type): Use __bool_constant
4587         instead.
4588         (false_type): Likewise.
4589         (bool_constant): Likewise.
4591 2023-08-11  Jonathan Wakely  <jwakely@redhat.com>
4593         PR libstdc++/110990
4594         * include/std/format (_Seq_sink::get): Only call _M_overflow if
4595         its precondition is met.
4596         (_Iter_sink::_M_finish): Likewise.
4597         (_Iter_sink<C, ContigIter>::_M_overflow): Only switch to the
4598         internal buffer after running out of space.
4599         (_Iter_sink<C, ContigIter>::_M_finish): Do not use _M_overflow.
4600         (_Counting_sink::count): Likewise.
4601         * testsuite/std/format/functions/format_to_n.cc: Check cases
4602         where the output fits into the buffer.
4604 2023-08-11  Jonathan Wakely  <jwakely@redhat.com>
4606         PR libstdc++/104167
4607         * include/bits/chrono_io.h (operator|=, operator|): Add noexcept
4608         to _ChronoParts operators.
4609         (from_stream, parse): Define new functions.
4610         (__detail::_Parse, __detail::_Parser): New class templates.
4611         * include/std/chrono (__cpp_lib_chrono): Define to 201907L for
4612         C++20.
4613         * include/std/version (__cpp_lib_chrono): Likewise.
4614         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
4615         Adjust expected value of feature test macro.
4616         * testsuite/20_util/duration/io.cc: Test parsing.
4617         * testsuite/std/time/clock/file/io.cc: Likewise.
4618         * testsuite/std/time/clock/gps/io.cc: Likewise.
4619         * testsuite/std/time/clock/system/io.cc: Likewise.
4620         * testsuite/std/time/clock/tai/io.cc: Likewise.
4621         * testsuite/std/time/clock/utc/io.cc: Likewise.
4622         * testsuite/std/time/day/io.cc: Likewise.
4623         * testsuite/std/time/month/io.cc: Likewise.
4624         * testsuite/std/time/month_day/io.cc: Likewise.
4625         * testsuite/std/time/weekday/io.cc: Likewise.
4626         * testsuite/std/time/year/io.cc: Likewise.
4627         * testsuite/std/time/year_month/io.cc: Likewise.
4628         * testsuite/std/time/year_month_day/io.cc: Likewise.
4629         * testsuite/std/time/syn_c++20.cc: Check value of macro and for
4630         the existence of parse and from_stream in namespace chrono.
4631         * testsuite/std/time/clock/local/io.cc: New test.
4632         * testsuite/std/time/parse.cc: New test.
4634 2023-08-11  Jonathan Wakely  <jwakely@redhat.com>
4636         PR libstdc++/110860
4637         * include/std/format (__formatter_fp::format): Do not call log10
4638         with zero values.
4640 2023-08-11  Jonathan Wakely  <jwakely@redhat.com>
4642         * python/libstdcxx/v6/printers.py (StdChronoCalendarPrinter):
4643         Check for out-of-range month an weekday indices.
4644         * testsuite/libstdc++-prettyprinters/chrono.cc: Check invalid
4645         month and weekday values.
4647 2023-08-11  Jonathan Wakely  <jwakely@redhat.com>
4649         * include/bits/stl_iterator.h (__clamped_iter_cat_t): Remove.
4651 2023-08-10  Jonathan Wakely  <jwakely@redhat.com>
4653         PR libstdc++/110974
4654         * include/std/format (_Spec::_S_parse_width_or_precision): Check
4655         for empty range before dereferencing iterator.
4656         * testsuite/std/format/string.cc: Check for expected exception.
4657         Fix expected exception message in test_pr110862() and actually
4658         call it.
4660 2023-08-10  Jonathan Wakely  <jwakely@redhat.com>
4662         PR libstdc++/110968
4663         * include/std/format (__formatter_fp::format): Check return
4664         value of _M_localize.
4665         * testsuite/std/format/functions/format.cc: Check classic
4666         locale.
4668 2023-08-10  Jonathan Wakely  <jwakely@redhat.com>
4670         PR libstdc++/110970
4671         * include/bits/stl_iterator.h (__detail::__move_iter_cat): Use
4672         __iter_category_t.
4673         (iterator_traits<common_iterator<I, S>>::_S_iter_cat): Likewise.
4674         (__detail::__basic_const_iterator_iter_cat): Likewise.
4675         * include/bits/stl_iterator_base_types.h (__iterator_category_t):
4676         Rename to __iter_category_t.
4678 2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
4680         * include/bits/chrono.h (duration_cast): Do not use braces
4681         around statements for C++11 constexpr rules.
4682         * include/bits/stl_algobase.h (__lg): Rewrite as a single
4683         statement for C++11 constexpr rules.
4684         * include/experimental/bits/fs_path.h (path::string): Use
4685         _GLIBCXX17_CONSTEXPR not _GLIBCXX_CONSTEXPR for 'if constexpr'.
4686         * include/std/charconv (__to_chars_8): Initialize variable for
4687         C++17 constexpr rules.
4689 2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
4691         * include/bits/list.tcc (list::sort(Cmp)): Fix -Wsign-compare
4692         warning for loop condition.
4694 2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
4696         * include/std/complex: Add diagnostic pragma for clang.
4698 2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
4700         * include/bits/shared_ptr_atomic.h (atomic): Change class-head
4701         to struct.
4702         * include/bits/stl_tree.h (_Rb_tree_merge_helper): Change
4703         class-head to struct in friend declaration.
4704         * include/std/chrono (tzdb_list::_Node): Likewise.
4705         * include/std/future (_Task_state_base, _Task_state): Likewise.
4706         * include/std/scoped_allocator (__inner_type_impl): Likewise.
4707         * include/std/valarray (_BinClos, _SClos, _GClos, _IClos)
4708         (_ValFunClos, _RefFunClos): Change class-head to struct.
4710 2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
4712         * include/bits/alloc_traits.h (allocate): Add [[maybe_unused]]
4713         attribute.
4714         * include/bits/regex_executor.tcc: Remove name of unused
4715         parameter.
4716         * include/bits/shared_ptr_atomic.h (atomic_is_lock_free):
4717         Likewise.
4718         * include/bits/stl_uninitialized.h: Likewise.
4719         * include/bits/streambuf_iterator.h (operator==): Likewise.
4720         * include/bits/uses_allocator.h: Likewise.
4721         * include/c_global/cmath (isfinite, isinf, isnan): Likewise.
4722         * include/std/chrono (zoned_time): Likewise.
4723         * include/std/future (__future_base::_S_allocate_result):
4724         Likewise.
4725         (packaged_task): Likewise.
4726         * include/std/optional (_Optional_payload_base): Likewise.
4727         * include/std/scoped_allocator (__inner_type_impl): Likewise.
4728         * include/std/tuple (_Tuple_impl): Likewise.
4730 2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
4732         * include/bits/new_allocator.h (__new_allocator): Define copy
4733         assignment operator as defaulted.
4734         * include/std/complex (complex<float>, complex<double>)
4735         (complex<long double>): Define copy constructor as defaulted.
4737 2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
4739         * include/std/format: Fix some warnings.
4740         (__format::__write(Ctx&, basic_string_view<CharT>)): Remove
4741         unused function template.
4743 2023-08-07  Jonathan Wakely  <jwakely@redhat.com>
4745         PR libstdc++/110860
4746         * include/std/format (__formatter_fp::format): Do not use
4747         __builtin_abs and __builtin_log10 with arbitrary floating-point
4748         types.
4750 2023-08-07  Jonathan Wakely  <jwakely@redhat.com>
4752         PR libstdc++/110917
4753         * include/std/format (__format::_Iter_sink<CharT, OutIter>):
4754         Constrain partial specialization for contiguous iterators to
4755         require the value type to be CharT.
4756         * testsuite/std/format/functions/format_to.cc: New test.
4758 2023-08-07  Jonathan Wakely  <jwakely@redhat.com>
4760         PR libstdc++/110862
4761         * include/std/format (_Scanner::_M_on_replacement_field):
4762         Check for expected '}' before incrementing iterator.
4763         * testsuite/std/format/string.cc: Check "{0:{0}" format string.
4765 2023-08-07  Nick Alcock  <nick.alcock@oracle.com>
4767         * configure: Regenerate.
4769 2023-08-07  Alan Modra  <amodra@gmail.com>
4771         * configure: Regenerate.
4773 2023-08-07  Alexander von Gluck IV  <kallisti5@unixzen.com>
4775         * configure: Regenerate.
4777 2023-08-07  Nick Alcock  <nick.alcock@oracle.com>
4779         * configure: Regenerate.
4781 2023-08-07  Nick Alcock  <nick.alcock@oracle.com>
4783         * configure: Regenerate.
4785 2023-08-07  H.J. Lu  <hjl.tools@gmail.com>
4787         * configure: Regenerate.
4789 2023-08-07  H.J. Lu  <hjl.tools@gmail.com>
4791         * configure: Regenerate.
4793 2023-08-06  François Dumont  <fdumont@gcc.gnu.org>
4795         * config/abi/pre/gnu-versioned-namespace.ver: Add __cxa_call_terminate
4796         symbol export.
4798 2023-07-30  François Dumont  <fdumont@gcc.gnu.org>
4800         * src/c++11/compatibility-ldbl-facets-aliases.h: Replace #define with
4801         proper #error.
4802         * src/c++11/locale-inst-monetary.h: Likewise.
4803         * src/c++11/locale-inst-numeric.h: Likewise.
4805 2023-07-27  Jonathan Wakely  <jwakely@redhat.com>
4807         PR libstdc++/108046
4808         * include/std/format (__formatter_fp::format): Ensure __expc is
4809         always set for all presentation types. Set __z correctly for
4810         zero precision.
4811         * testsuite/std/format/functions/format.cc: Check problem cases.
4813 2023-07-26  Jonathan Wakely  <jwakely@redhat.com>
4815         PR libstdc++/110807
4816         * testsuite/23_containers/vector/bool/110807.cc: Require c++11.
4818 2023-07-26  Jonathan Wakely  <jwakely@redhat.com>
4820         PR libstdc++/110807
4821         * include/bits/stl_bvector.h (vector(const vector&)): Access
4822         iterators before allocating.
4823         * include/bits/vector.tcc (vector<bool>::_M_insert_range):
4824         Likewise.
4825         * testsuite/23_containers/vector/bool/110807.cc: New test.
4827 2023-07-26  Jonathan Wakely  <jwakely@redhat.com>
4829         * include/bits/algorithmfwd.h (random_shuffle): Add deprecated
4830         attribute.
4831         * include/bits/stl_algo.h (random_shuffle): Correct comments.
4832         * testsuite/25_algorithms/random_shuffle/1.cc: Disable
4833         deprecated warnings.
4834         * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
4835         * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
4836         * testsuite/25_algorithms/random_shuffle/deprecated.cc: New
4837         test.
4839 2023-07-26  Nathaniel Shead  <nathanieloshead@gmail.com>
4841         * testsuite/25_algorithms/equal/constexpr_neg.cc: Update diagnostic
4842         locations.
4843         * testsuite/26_numerics/gcd/105844.cc: Likewise.
4844         * testsuite/26_numerics/lcm/105844.cc: Likewise.
4846 2023-07-24  Deev Patel  <pateldeev@nevada.unr.edu>
4848         * include/std/format (_Formatting_scanner::_M_on_chars): Add
4849         missing constexpr specifier.
4850         (_Formatting_scanner::_M_format_arg): Likewise.
4852 2023-07-24  Jonathan Wakely  <jwakely@redhat.com>
4854         PR libstdc++/110653
4855         * include/bits/basic_string.h [!HAVE_STOF] (stof): Do not
4856         throw an exception for zero result.
4857         [HAVE_BROKEN_STRTOLD] (stold): Do not use strtold.
4859 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
4861         PR libstdc++/110077
4862         * src/c++17/floating_from_chars.cc (from_chars): Only define
4863         _Float128 overload when using __strfromf128.
4865 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
4867         PR libstdc++/110593
4868         * include/bits/chrono.h (duration): Improve static assert
4869         messages.
4870         (__is_ratio): Move to ...
4871         * include/std/ratio (__is_ratio): ... here.
4872         (__is_ratio_v): New variable template and partial
4873         specialization.
4874         (__are_both_ratios): New function template.
4875         (__ratio_multiply, ratio_equal, ratio_less, __ratio_add):
4876         Add static assertion.
4877         * testsuite/20_util/ratio/requirements/type_constraints.cc:
4878         New test.
4879         * testsuite/20_util/duration/requirements/typedefs_neg1.cc:
4880         Adjust expected error.
4881         * testsuite/20_util/duration/requirements/typedefs_neg2.cc:
4882         Likewise.
4884 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
4886         * include/bits/chrono_io.h (__formatter_chrono::_M_format):
4887         Do not set __is_neg for hh_mm_ss before calling
4888         _M_format_to_ostream. Change __print_sign lambda to only check
4889         __is_neg for durations and hh_mm_ss types.
4890         (__formatter_chrono::_M_format_to_ostream): Only check __is_neg
4891         for duration types.
4892         * testsuite/std/time/hh_mm_ss/io.cc: Check negative values.
4894 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
4896         PR libstdc++/110719
4897         * include/bits/chrono_io.h (__formatter_chrono::_S_floor_seconds):
4898         Handle duration and hh_mm_ss.
4899         * testsuite/20_util/duration/io.cc: Check locale-specific
4900         formats.
4901         * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
4903 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
4905         * include/std/format (__write_padded): Initialize first element
4906         of array to avoid a -Wmaybe-uninitialized warning.
4908 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
4910         PR libstdc++/110719
4911         * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Fix
4912         allowed modifiers for %z and %Z. Fix -Wparentheses and
4913         -Wnarrowing warnings.
4914         (__formatter_chrono::_M_format): Call new functions for %d, %e,
4915         %H, %I, %m and %M.
4916         (__formatter_chrono::_M_c): Use _S_floor_seconds to remove
4917         subsecond precision.
4918         (__formatter_chrono::_M_C_y_Y): Use _M_locale_fmt to handle
4919         modifiers.
4920         (__formatter_chrono::_M_e): Replace with _M_d_e and use
4921         _M_locale_fmt.
4922         (__formatter_chrono::_M_I): Replace with _M_H_I and use
4923         _M_locale_fmt.
4924         (__formatter_chrono::_M_m): New function.
4925         (__formatter_chrono::_M_M): New function.
4926         (__formatter_chrono::_M_r): Use _M_locale_fmt.
4927         (__formatter_chrono::_M_S): Likewise.
4928         (__formatter_chrono::_M_u_w): Likewise.
4929         (__formatter_chrono::_M_U_V_W): Likewise.
4930         (__formatter_chrono::_M_X): Use _S_floor_seconds.
4931         (__formatter_chrono::_M_Z): Fix untested branch for wchar_t.
4932         (__formatter_chrono::_S_altnum): Remove function.
4933         (__formatter_chrono::_S_dd_zero_fill): Remove function.
4934         (__formatter_chrono::_S_floor_seconds): New function.
4935         (__formatter_chrono::_M_locale_fmt): New function.
4936         * testsuite/std/time/clock/system/io.cc: Adjust expected output
4937         for locale-specific formats and check modified formats.
4938         * testsuite/std/time/clock/utc/io.cc: Likewise.
4939         * testsuite/std/time/zoned_time/io.cc: New test.
4941 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
4943         PR libstdc++/110708
4944         * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Only
4945         allow a single modifier.
4946         * testsuite/std/time/format.cc: Check multiple modifiers.
4948 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
4950         PR libstdc++/110653
4951         * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
4952         Remove dg-require-string-conversions.
4953         * testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
4954         Likewise.
4955         * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
4956         Likewise.
4957         * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
4958         Likewise.
4959         * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
4960         Likewise.
4962 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
4964         PR libstdc++/110653
4965         * include/bits/basic_string.h [!_GLIBCXX_HAVE_STRTOF] (stof):
4966         Define in terms of std::stod.
4968 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
4970         PR libstdc++/110653
4971         * include/bits/basic_string.h [_GLIBCXX_HAVE_STRTOF] (stof):
4972         Define.
4973         [_GLIBCXX_HAVE_STRTOLD] (stold): Define.
4974         * include/c_global/cstdlib [_GLIBCXX_HAVE_STRTOF] (strtof):
4975         Declare in namespace std.
4976         [_GLIBCXX_HAVE_STRTOLD] (strtold): Likewise.
4978 2023-07-13  Jonathan Wakely  <jwakely@redhat.com>
4980         PR libstdc++/110653
4981         * include/bits/basic_string.h (stoi, stol, stoul, stod): Do not
4982         depend on _GLIBCXX_USE_C99_STDLIB.
4983         [__LONG_WIDTH__ == __LONG_LONG_WIDTH__] (stoll, stoull): Define
4984         in terms of stol and stoul respectively.
4985         [__DBL_MANT_DIG__ == __LDBL_MANT_DIG__] (stold): Define in terms
4986         of stod.
4988 2023-07-12  Jonathan Wakely  <jwakely@redhat.com>
4990         PR libstdc++/95048
4991         * testsuite/27_io/filesystem/path/construct/95048.cc: Check
4992         conversions to wide strings.
4993         * testsuite/experimental/filesystem/path/construct/95048.cc:
4994         Likewise.
4996 2023-07-12  Jonathan Wakely  <jwakely@redhat.com>
4998         * config/io/basic_file_stdio.cc: Define LFS macros.
4999         (__basic_file<char>::open): Use fopen unconditionally.
5000         (get_file_offset): Use lseek unconditionally.
5001         (__basic_file<char>::seekoff): Likewise.
5002         (__basic_file<char>::showmanyc): Use fstat unconditionally.
5004 2023-07-12  Jonathan Wakely  <jwakely@redhat.com>
5006         PR libstdc++/110574
5007         * acinclude.m4 (GLIBCXX_CHECK_LFS): Check for fseeko and ftello
5008         and define _GLIBCXX_USE_FSEEKO_FTELLO.
5009         * config.h.in: Regenerate.
5010         * configure: Regenerate.
5011         * config/io/basic_file_stdio.cc (xwrite) [_GLIBCXX_USE_STDIO_PURE]:
5012         Check for fwrite error correctly.
5013         (__basic_file<char>::xsgetn) [_GLIBCXX_USE_STDIO_PURE]: Check for
5014         fread error correctly.
5015         (get_file_offset): New function.
5016         (__basic_file<char>::seekoff) [_GLIBCXX_USE_STDIO_PURE]: Use
5017         fseeko if available. Use get_file_offset instead of return value
5018         of fseek.
5019         (__basic_file<char>::showmanyc): Use get_file_offset.
5021 2023-07-12  Ken Matsui  <kmatsui@gcc.gnu.org>
5023         * include/std/type_traits (__make_unsigned_selector): Use
5024         __is_enum built-in trait.
5025         (__make_signed_selector): Likewise.
5026         (__underlying_type_impl): Likewise.
5028 2023-07-06  Tianqiang Shuai  <1101282468@qq.com>
5030         * config/io/basic_file_stdio.cc (xwrite) [USE_STDIO_PURE]: Fix
5031         first argument.
5033 2023-07-06  Jonathan Wakely  <jwakely@redhat.com>
5035         PR libstdc++/110574
5036         * doc/xml/manual/configure.xml: Describe stdio_pure argument to
5037         --enable-cstdio.
5038         * doc/html/manual/configure.html: Regenerate.
5040 2023-07-05  Thomas Rodgers  <trodgers@redhat.com>
5042         * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Delete
5043         file.
5044         * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
5045         New file.
5046         * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
5047         Likewise.
5048         * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
5049         Likewise.
5050         * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
5051         Likewise.
5052         * testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
5053         Likewise.
5055 2023-07-05  Jonathan Wakely  <jwakely@redhat.com>
5057         * testsuite/23_containers/forward_list/debug/iterator1_neg.cc:
5058         Skip as UNSUPPORTED for C++98 mode.
5059         * testsuite/23_containers/forward_list/debug/iterator3_neg.cc:
5060         Likewise.
5062 2023-07-05  Jonathan Wakely  <jwakely@redhat.com>
5064         PR libstdc++/110542
5065         * include/bits/stl_uninitialized.h (__uninitialized_default_n):
5066         Do not use std::fill_n during constant evaluation.
5068 2023-07-05  Jonathan Wakely  <jwakely@redhat.com>
5070         * include/bits/vector.tcc (_M_default_append): Replace try-block
5071         with RAII types.
5073 2023-07-05  Jonathan Wakely  <jwakely@redhat.com>
5075         * include/bits/iterator_concepts.h (projected): Add typename.
5077 2023-07-03  Jonathan Wakely  <jwakely@redhat.com>
5079         * testsuite/27_io/headers/iosfwd/synopsis.cc: Make wsyncbuf and
5080         wosyncstream depend on _GLIBCXX_USE_CXX11_ABI.
5082 2023-07-03  Jonathan Wakely  <jwakely@redhat.com>
5084         * include/pstl/pstl_config.h (_PSTL_PRAGMA_SIMD_SCAN,
5085         _PSTL_PRAGMA_SIMD_INCLUSIVE_SCAN, _PSTL_PRAGMA_SIMD_EXCLUSIVE_SCAN):
5086         Define to OpenMP 5.0 pragmas even for GCC 10.0+.
5087         (_PSTL_UDS_PRESENT): Define to 1 for GCC 10.0+.
5089 2023-07-03  Jonathan Wakely  <jwakely@redhat.com>
5091         * include/bits/alloc_traits.h (_Destroy): Qualify call.
5092         * include/bits/stl_construct.h (_Destroy, _Destroy_n): Likewise.
5093         * testsuite/23_containers/vector/cons/destroy-adl.cc: New test.
5095 2023-07-03  Iain Sandoe  <iain@sandoe.co.uk>
5097         * testsuite/lib/libstdc++.exp: Remove additional flag handled
5098         by Darwin specs.
5100 2023-06-30  Jonathan Wakely  <jwakely@redhat.com>
5102         PR libstdc++/110432
5103         * acinclude.m4 (GLIBCXX_CHECK_INIT_PRIORITY): New.
5104         * config.h.in: Regenerate.
5105         * configure: Regenerate.
5106         * configure.ac: Use GLIBCXX_CHECK_INIT_PRIORITY.
5107         * include/std/iostream: Use new autoconf macro as well as
5108         __has_attribute.
5109         * src/c++98/ios_base_init.h: Use new autoconf macro instead of
5110         __has_attribute.
5112 2023-06-30  Jonathan Wakely  <jwakely@redhat.com>
5114         * src/c++11/random.cc (random_device::_M_init): Add maybe_unused
5115         attribute.
5117 2023-06-30  Jonathan Wakely  <jwakely@redhat.com>
5119         PR libstdc++/105081
5120         * src/c++11/random.cc (random_device::_M_init): Throw
5121         std::system_error when the requested device is a valid token but
5122         not available at runtime.
5124 2023-06-30  Hans-Peter Nilsson  <hp@axis.com>
5126         PR libstdc++/108672
5127         * include/pstl/unseq_backend_simd.h (__simd_or): Re-apply using
5128         __INT32_TYPE__ instead of int32_t.
5130 2023-06-29  Jonathan Wakely  <jwakely@redhat.com>
5132         * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define consistently
5133         with USE_ATOMIC_LIST_HEAD.
5134         (list_mutex): Replace global object with function. Use local
5135         static object when std::mutex constructor isn't constexpr.
5137 2023-06-29  Jonathan Wakely  <jwakely@redhat.com>
5139         PR libstdc++/110462
5140         * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check that
5141         copy_file_range can be called with loff_t* arguments.
5142         * configure: Regenerate.
5143         * src/filesystem/ops-common.h (copy_file_copy_file_range):
5144         Use loff_t for offsets.
5146 2023-06-29  Tom Tromey  <tromey@adacore.com>
5148         * testsuite/lib/gdb-test.exp (gdb-test): Relax type-printer
5149         regexp.
5151 2023-06-28  Jan Hubicka  <jh@suse.cz>
5153         PR middle-end/109849
5154         * include/bits/c++config (std::__terminate): Mark cold.
5155         * include/bits/functexcept.h: Mark everything as cold.
5156         * libsupc++/exception: Mark terminate and unexpected as cold.
5158 2023-06-26  Thomas Rodgers  <trodgers@redhat.com>
5160         * include/pstl/algorithm_fwd.h: Synchronize with upstream.
5161         * include/pstl/algorithm_impl.h: Likewise.
5162         * include/pstl/execution_defs.h: Likewise.
5163         * include/pstl/execution_impl.h: Likewise.
5164         * include/pstl/glue_algorithm_impl.h: Likewise.
5165         * include/pstl/glue_execution_defs.h: Likewise.
5166         * include/pstl/glue_memory_impl.h: Likewise.
5167         * include/pstl/glue_numeric_impl.h: Likewise.
5168         * include/pstl/memory_impl.h: Likewise.
5169         * include/pstl/numeric_fwd.h: Likewise.
5170         * include/pstl/numeric_impl.h: Likewise.
5171         * include/pstl/parallel_backend.h: Likewise.
5172         * include/pstl/parallel_backend_serial.h: Likewise.
5173         * include/pstl/parallel_backend_tbb.h: Likewise.
5174         * include/pstl/parallel_impl.h: Likewise.
5175         * include/pstl/pstl_config.h: Likewise.
5176         * include/pstl/unseq_backend_simd.h: Likewise.
5177         * include/pstl/utils.h: Likewise.
5178         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
5179         Likewise.
5180         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
5181         Likewise.
5182         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
5183         Likewise.
5184         * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
5185         Likewise.
5186         * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
5187         * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
5188         Likewise.
5189         * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
5190         Likewise.
5191         * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
5192         Likewise.
5193         * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
5194         Likewise.
5195         * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
5196         Likewise.
5197         * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
5198         Likewise.
5199         * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
5200         Likewise.
5201         * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
5202         Likewise.
5203         * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
5204         Likewise.
5205         * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
5206         Likewise.
5207         * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
5208         Likewise.
5209         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
5210         Likewise.
5211         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
5212         Likewise.
5213         * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
5214         Likewise.
5215         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
5216         Likewise.
5217         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
5218         Likewise.
5219         * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
5220         Likewise.
5221         * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
5222         Likewise.
5223         * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
5224         Likewise.
5225         * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
5226         Likewise.
5227         * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
5228         Likewise.
5229         * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
5230         Likewise.
5231         * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
5232         Likewise.
5233         * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
5234         Likewise.
5235         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
5236         Likewise.
5237         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
5238         Likewise.
5239         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
5240         Likewise.
5241         * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
5242         Likewise.
5243         * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
5244         Likewise.
5245         * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
5246         Likewise.
5247         * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
5248         Likewise.
5249         * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
5250         Likewise.
5251         * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
5252         Likewise.
5253         * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
5254         Likewise.
5255         * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
5256         Likewise.
5257         * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc:
5258         Likewise.
5259         * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
5260         Likewise.
5261         * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
5262         Likewise.
5263         * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
5264         Likewise.
5265         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
5266         Likewise.
5267         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
5268         Likewise.
5269         * testsuite/25_algorithms/pstl/alg_sorting/set.cc:
5270         Likewise.
5271         * testsuite/25_algorithms/pstl/alg_sorting/sort.cc:
5272         Likewise.
5273         * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
5274         Likewise.
5275         * testsuite/26_numerics/pstl/numeric_ops/reduce.cc:
5276         Likewise.
5277         * testsuite/26_numerics/pstl/numeric_ops/scan.cc:
5278         Likewise.
5279         * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
5280         Likewise.
5281         * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
5282         Likewise.
5283         * testsuite/util/pstl/test_utils.h:
5284         Likewise.
5286 2023-06-26  Jonathan Wakely  <jwakely@redhat.com>
5288         PR libstdc++/110239
5289         * include/std/format (__format::__parse_integer): Fix buffer
5290         overflow for wide chars.
5291         (formatter<const void*, C>::format): Cast to uintptr_t instead
5292         of uint64_t.
5293         * testsuite/std/format/string.cc: Test too-large widths.
5295 2023-06-26  Jonathan Wakely  <jwakely@redhat.com>
5297         * include/bits/iterator_concepts.h (projected): Replace class
5298         template with alias template denoting an ADL-proofed helper.
5299         (incremental_traits<projected<Iter, Proj>>): Remove.
5300         * testsuite/24_iterators/indirect_callable/projected-adl.cc:
5301         New test.
5303 2023-06-26  Jonathan Wakely  <jwakely@redhat.com>
5305         * include/debug/helper_functions.h (__get_distance)
5306         (__check_singular, __valid_range_aux, __valid_range): Qualify
5307         calls to disable ADL.
5308         (__check_singular_aux(const _Safe_iterator_base*)): Declare
5309         overload that was previously found via ADL.
5311 2023-06-23  Jonathan Wakely  <jwakely@redhat.com>
5313         * include/bits/vector.tcc (_M_realloc_insert): Replace try-block
5314         with RAII types.
5316 2023-06-20  Jonathan Wakely  <jwakely@redhat.com>
5318         * include/std/array (to_array(T(&)[N])): Remove redundant
5319         condition.
5320         (to_array(T(&&)[N])): Remove redundant std::move.
5322 2023-06-16  Alexandre Oliva  <oliva@adacore.com>
5324         * testsuite/20_util/from_chars/4.cc: Skip long double on
5325         aarch64-rtems.
5327 2023-06-16  Joel Brobecker  <brobecker@adacore.com>
5329         * configure.ac ["x${with_newlib}" = "xyes"]: Define
5330         HAVE_HYPOTF.  Add compile-checks for various long double
5331         math functions as well.
5332         * configure: Regenerate.
5334 2023-06-14  Jonny Grant  <jg@jguk.org>
5336         * doc/xml/manual/extensions.xml: Remove demangle exception
5337         description and include.
5338         * doc/html/manual/ext_demangling.html: Regenerate.
5340 2023-06-10  Hans-Peter Nilsson  <hp@axis.com>
5342         * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc (main)
5343         [! SIMULATOR_TEST]: Also exclude running test05.
5344         * testsuite/27_io/basic_istream/ignore/char/94749.cc: Ditto.
5346 2023-06-09  Ken Matsui  <kmatsui@cs.washington.edu>
5348         * include/std/type_traits: Use using instead of typedef
5350 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
5352         PR libstdc++/110077
5353         * src/c++17/floating_from_chars.cc (from_chars) <_Float128>:
5354         Only define if _Float128 and long double have different
5355         representations.
5357 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
5359         PR libstdc++/100285
5360         * include/experimental/internet [IPPROTO_TCP || IPPROTO_UDP]
5361         (basic_endpoint, basic_resolver_entry, resolver_base)
5362         (basic_resolver_results, basic_resolver): Only define if the tcp
5363         or udp protocols will be defined.
5365 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
5367         * acinclude.m4 (libtool_VERSION): Update to 6.0.33.
5368         * configure: Regenerate.
5369         * doc/xml/manual/abi.xml: Add libstdc++.so.6.0.33.
5370         * doc/html/manual/abi.html: Regenerate.
5372 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
5374         PR libstdc++/110149
5375         * include/std/format (formatter<const void*, charT>::parse):
5376         Only alow 0 and P for C++26 and non-strict modes.
5377         (formatter<const void*, charT>::format): Use toupper for P
5378         type, and insert zero-fill characters for 0 option.
5379         * testsuite/std/format/functions/format.cc: Check pointer
5380         formatting. Only check P2510R3 extensions conditionally.
5381         * testsuite/std/format/parse_ctx.cc: Only check P2510R3
5382         extensions conditionally.
5384 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
5386         PR libstdc++/110167
5387         * include/std/array (to_array): Initialize arrays of trivial
5388         types using memcpy. For non-trivial types, use lambda
5389         expressions instead of a separate helper function.
5390         (__to_array): Remove.
5391         * testsuite/23_containers/array/creation/110167.cc: New test.
5393 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
5395         * testsuite/23_containers/deque/modifiers/emplace/52799.cc:
5396         Removed.
5397         * testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc:
5398         Removed.
5399         * testsuite/23_containers/list/modifiers/emplace/52799.cc:
5400         Removed.
5401         * testsuite/23_containers/list/modifiers/emplace/const_iterator.cc:
5402         Removed.
5403         * testsuite/23_containers/vector/modifiers/emplace/52799.cc:
5404         Removed.
5405         * testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc:
5406         Removed.
5407         * testsuite/23_containers/deque/modifiers/emplace/1.cc: New
5408         test.
5409         * testsuite/23_containers/list/modifiers/emplace/1.cc: New
5410         test.
5411         * testsuite/23_containers/vector/modifiers/emplace/1.cc: New
5412         test.
5414 2023-06-07  Jakub Jelinek  <jakub@redhat.com>
5416         PR libstdc++/110145
5417         * testsuite/20_util/to_chars/double.cc: Include <cfloat>.
5418         (double_to_chars_test_cases,
5419         double_scientific_precision_to_chars_test_cases_2,
5420         double_fixed_precision_to_chars_test_cases_2): #if out 1e126, 4.91e-6
5421         and 5.547e-6 tests if FLT_EVAL_METHOD is negative or larger than 1.
5422         Add unconditional tests with corresponding double constants
5423         0x1.7a2ecc414a03fp+418, 0x1.4981285e98e79p-18 and
5424         0x1.7440bbff418b9p-18.
5426 2023-06-07  Jonathan Wakely  <jwakely@redhat.com>
5428         * testsuite/util/testsuite_abi.cc (check_version): Re-add
5429         CXXABI_1.3.14.
5431 2023-06-07  Jonathan Wakely  <jwakely@redhat.com>
5433         * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
5434         Require effective target exceptions_enabled instead of using
5435         dg-skip-if.
5436         * testsuite/23_containers/vector/capacity/constexpr.cc: Expect
5437         shrink_to_fit() to be a no-op without exceptions enabled.
5438         * testsuite/23_containers/vector/capacity/shrink_to_fit.cc:
5439         Likewise.
5440         * testsuite/ext/bitmap_allocator/check_allocate_max_size.cc:
5441         Require effective target exceptions_enabled.
5442         * testsuite/ext/malloc_allocator/check_allocate_max_size.cc:
5443         Likewise.
5444         * testsuite/ext/mt_allocator/check_allocate_max_size.cc:
5445         Likewise.
5446         * testsuite/ext/new_allocator/check_allocate_max_size.cc:
5447         Likewise.
5448         * testsuite/ext/pool_allocator/check_allocate_max_size.cc:
5449         Likewise.
5450         * testsuite/ext/throw_allocator/check_allocate_max_size.cc:
5451         Likewise.
5453 2023-06-07  Jonathan Wakely  <jwakely@redhat.com>
5455         * testsuite/20_util/duration/cons/2.cc: Use values that aren't
5456         affected by rounding.
5457         * testsuite/20_util/from_chars/5.cc: Cast arithmetic result to
5458         double before comparing for equality.
5459         * testsuite/20_util/from_chars/6.cc: Likewise.
5460         * testsuite/20_util/variant/86874.cc: Use values that aren't
5461         affected by rounding.
5462         * testsuite/25_algorithms/lower_bound/partitioned.cc: Compare to
5463         original value instead of to floating-point-literal.
5464         * testsuite/26_numerics/random/discrete_distribution/cons/range.cc:
5465         Cast arithmetic result to double before comparing for equality.
5466         * testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc:
5467         Likewise.
5468         * testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc:
5469         Likewise.
5470         * testsuite/26_numerics/valarray/transcend.cc (eq): Check that
5471         the absolute difference is less than 0.01 instead of comparing
5472         to two decimal places.
5473         * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
5474         Cast arithmetic result to double before comparing for equality.
5475         * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
5476         Likewise.
5477         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
5478         Likewise.
5479         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc:
5480         Likewise.
5481         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc:
5482         Likewise.
5483         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc:
5484         Likewise.
5485         * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
5487 2023-06-07  Jonathan Wakely  <jwakely@redhat.com>
5489         Revert:
5490         2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
5492         * configure.ac: Use AS_IF.
5493         * configure: Regenerate.
5495 2023-06-07  Thomas Schwinge  <thomas@codesourcery.com>
5497         * testsuite/lib/prune.exp (libstdc++-dg-prune): Support
5498         'UNSUPPORTED: [...]: exception handling disabled'.
5500 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
5502         * testsuite/util/testsuite_abi.cc (check_version): Add
5503         CXXABI_1.3.15 symver and make it the latestp. Remove
5504         GLIBCXX_IEEE128_3.4.31 and GLIBCXX_LDBL_3.4.31 from latestp.
5506 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
5507             Jakub Jelinek  <jakub@redhat.com>
5509         PR libstdc++/104772
5510         * include/std/limits: (numeric_limits<__float128>): Define
5511         for __STRICT_ANSI__ as well.
5512         * testsuite/18_support/numeric_limits/128bit.cc: Remove
5513         check for __STRICT_ANSI__.
5515 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
5517         * configure.ac: Use AS_IF.
5518         * configure: Regenerate.
5520 2023-06-06  Matthias Kretz  <m.kretz@gsi.de>
5522         PR libstdc++/109822
5523         * include/experimental/bits/simd_builtin.h (_S_store): Rewrite
5524         to avoid casts to other vector types. Implement store as
5525         succession of power-of-2 sized memcpy to avoid PR90424.
5527 2023-06-06  Matthias Kretz  <m.kretz@gsi.de>
5529         PR libstdc++/110054
5530         * include/experimental/bits/simd_builtin.h (_S_masked_store):
5531         Call into deduced ABI's SimdImpl after conversion.
5532         * include/experimental/bits/simd_x86.h (_S_masked_store_nocvt):
5533         Don't use _mm_maskmoveu_si128. Use the generic fall-back
5534         implementation. Also fix masked stores without SSE2, which
5535         were not doing anything before.
5537 2023-06-06  Matthias Kretz  <m.kretz@gsi.de>
5539         * include/experimental/bits/simd.h (__bit_cast): Use
5540         __gnu__::__vector_size__ instead of gnu::vector_size.
5542 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
5544         PR libstdc++/110139
5545         * include/std/array (__array_traits<T, 0>::operator T*()): Make
5546         conversion operator explicit.
5547         (array::front): Use size_type as subscript operand.
5548         (array::data): Use static_cast to make conversion explicit.
5549         * testsuite/23_containers/array/element_access/110139.cc: New
5550         test.
5552 2023-06-06  Joseph Faulls  <Joseph.Faulls@imgtec.com>
5554         * include/bits/locale_classes.tcc: Remove check for
5555         codecvt<char8_t, char, mbstate_t> facet.
5557 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
5559         * src/filesystem/ops-common.h (do_copy_file) [O_CLOEXEC]: Set
5560         close-on-exec flag on file descriptors.
5562 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
5564         PR libstdc++/108178
5565         * src/filesystem/ops-common.h (do_copy_file): Check for empty
5566         files by trying to read a character.
5567         * testsuite/27_io/filesystem/operations/copy_file_108178.cc:
5568         New test.
5570 2023-06-06  Jannik Glückert  <jannik.glueckert@gmail.com>
5572         * acinclude.m4 (_GLIBCXX_USE_COPY_FILE_RANGE): Define.
5573         * config.h.in: Regenerate.
5574         * configure: Regenerate.
5575         * src/filesystem/ops-common.h (copy_file_copy_file_range):
5576         Define new function.
5577         (do_copy_file): Use it.
5579 2023-06-06  Jannik Glückert  <jannik.glueckert@gmail.com>
5581         * acinclude.m4 (_GLIBCXX_HAVE_LSEEK): Define.
5582         * config.h.in: Regenerate.
5583         * configure: Regenerate.
5584         * src/filesystem/ops-common.h (copy_file_sendfile): Define new
5585         function for sendfile logic. Loop to support large files. Skip
5586         zero-length files.
5587         (do_copy_file): Use it.
5589 2023-06-04  Jason Merrill  <jason@redhat.com>
5591         PR c++/97720
5592         * libsupc++/eh_call.cc (__cxa_call_terminate): Take void*.
5593         * config/abi/pre/gnu.ver: Add it.
5595 2023-06-02  François Dumont  <fdumont@gcc.gnu.org>
5597         * include/parallel/algobase.h: Include <parallel/search.h>.
5599 2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
5601         * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
5602         Add const to equality operator.
5604 2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
5606         * include/std/expected (expected::and_then, expected::or_else)
5607         (expected::transform_error): Use _M_val and _M_unex instead of
5608         calling value() and error(), as per LWG 3938.
5609         (expected::transform): Likewise. Remove incorrect std::move
5610         calls from lvalue overloads.
5611         (expected<void, E>::and_then, expected<void, E>::or_else)
5612         (expected<void, E>::transform): Use _M_unex instead of calling
5613         error().
5614         * testsuite/20_util/expected/lwg3877.cc: Add checks for and_then
5615         and transform, and for std::expected<void, E>.
5616         * testsuite/20_util/expected/lwg3938.cc: New test.
5618 2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
5620         PR libstdc++/110060
5621         * include/bits/stl_vector.h (_Vector_base::_M_invariant):
5622         Remove.
5623         (vector::size, vector::capacity): Remove calls to _M_invariant.
5624         * include/bits/vector.tcc (vector::_M_fill_assign): Add
5625         optimization hint to reallocating path.
5626         (vector::_M_assign_aux(FwdIter, FwdIter, forward_iterator_tag)):
5627         Likewise.
5628         * testsuite/23_containers/vector/capacity/invariant.cc: Moved
5629         to...
5630         * testsuite/23_containers/vector/modifiers/assign/no_realloc.cc:
5631         ...here. Check assign(FwdIter, FwdIter) too.
5632         * testsuite/23_containers/vector/types/1.cc: Revert addition
5633         of -Wno-stringop-overread option.
5635 2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
5637         * doc/xml/manual/evolution.xml: Document removal of implicit
5638         allocator rebinding extensions in strict mode and for C++20.
5639         * doc/html/*: Regenerate.
5641 2023-06-01  Jason Merrill  <jason@redhat.com>
5643         * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Don't check
5644         handlers in the cleanup phase.
5646 2023-06-01  Matthias Kretz  <m.kretz@gsi.de>
5648         PR libstdc++/110050
5649         * include/experimental/bits/simd.h (__vectorized_sizeof): With
5650         __have_neon_a32 only single-precision float works (in addition
5651         to integers).
5653 2023-06-01  François Dumont  <fdumont@gcc.gnu.org>
5655         * include/bits/stl_algo.h
5656         (std::__search, std::search(_FwdIt1, _FwdIt1, _FwdIt2, _FwdIt2, _BinPred)): Move...
5657         * include/bits/stl_algobase.h: ...here.
5658         * include/std/functional: Replace <stl_algo.h> include by <stl_algobase.h>.
5659         * include/parallel/algo.h (std::__parallel::search<_FIt1, _FIt2, _BinaryPred>)
5660         (std::__parallel::__search_switch<_FIt1, _FIt2, _BinaryPred, _ItTag1, _ItTag2>):
5661         Move...
5662         * include/parallel/algobase.h: ...here.
5663         * include/experimental/functional: Remove <bits/stl_algo.h> and <parallel/algorithm>
5664         includes. Include <bits/stl_algobase.h>.
5666 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
5668         PR libstdc++/109818
5669         * acinclude.m4 (GLIBCXX_ENABLE_C99): Add separate check for
5670         float_t and double_t and define HAVE_C99_FLT_EVAL_TYPES.
5671         * config.h.in: Regenerate.
5672         * configure: Regenerate.
5673         * include/c_global/cmath (float_t, double_t): Guard using new
5674         _GLIBCXX_HAVE_C99_FLT_EVAL_TYPES macro.
5676 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
5678         * acinclude.m4 (GLIBCXX_ENABLE_C99): Add checks for C99 math
5679         functions and define _GLIBCXX_USE_C99_MATH_FUNCS. Move checks
5680         for C99 rounding functions to here.
5681         (GLIBCXX_CHECK_C99_TR1): Remove checks for C99 rounding
5682         functions from here.
5683         * config.h.in: Regenerate.
5684         * configure: Regenerate.
5685         * include/bits/random.h: Use _GLIBCXX_USE_C99_MATH_FUNCS instead
5686         of _GLIBCXX_USE_C99_MATH_TR1.
5687         * include/bits/random.tcc: Likewise.
5688         * include/c_compatibility/math.h: Likewise.
5689         * include/c_global/cmath: Likewise.
5690         * include/ext/random: Likewise.
5691         * include/ext/random.tcc: Likewise.
5692         * include/std/complex: Likewise.
5693         * testsuite/20_util/from_chars/4.cc: Likewise.
5694         * testsuite/20_util/from_chars/8.cc: Likewise.
5695         * testsuite/26_numerics/complex/proj.cc: Likewise.
5696         * testsuite/26_numerics/headers/cmath/60401.cc: Likewise.
5697         * testsuite/26_numerics/headers/cmath/types_std_c++0x.cc:
5698         Likewise.
5699         * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
5700         Likewise.
5701         * testsuite/util/testsuite_random.h: Likewise.
5703 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
5705         * include/bits/stl_vector.h (_Vector_base::_M_invariant()): New
5706         function.
5707         (vector::size(), vector::capacity()): Call _M_invariant().
5708         * testsuite/23_containers/vector/capacity/invariant.cc: New test.
5709         * testsuite/23_containers/vector/types/1.cc: Add suppression for
5710         false positive warning (PR110060).
5712 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
5714         PR libstdc++/109921
5715         * src/c++17/floating_from_chars.cc: Check __FLT128_MANT_DIG__ is
5716         defined before trying to use _Float128.
5718 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
5720         * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Fix for 32-bit pointers
5721         to check __INT_PTR_WIDTH__ instead of sizeof(void*).
5722         * configure: Regenerate.
5724 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
5726         * include/bits/unique_lock.h: Include <bits/error_constants.h>
5727         here for std::errc constants.
5728         * include/std/mutex: Do not include <bits/error_constants.h> and
5729         <exception> here.
5731 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
5733         * configure.ac: Replace use of -o operator for test.
5734         * configure: Regenerate.
5736 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
5738         * include/std/scoped_allocator (scoped_allocator_adaptor): Add
5739         noexcept to all constructors except the default constructor.
5740         (scoped_allocator_adaptor::inner_allocator): Add noexcept.
5741         (scoped_allocator_adaptor::outer_allocator): Likewise.
5742         * testsuite/20_util/scoped_allocator/noexcept.cc: New test.
5744 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
5746         PR libstdc++/104772
5747         * include/std/limits (numeric_limits<__float128>): Define.
5748         * testsuite/18_support/numeric_limits/128bit.cc: New test.
5750 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
5752         * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Extend logic for avr and
5753         msp430 to all 16-bit targets.
5754         * configure: Regenerate.
5756 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
5758         PR libstdc++/109921
5759         * src/c++17/floating_from_chars.cc (USE_STRTOF128_FOR_FROM_CHARS):
5760         Only define when USE_STRTOD_FOR_FROM_CHARS is also defined.
5761         (USE_STRTOD_FOR_FROM_CHARS): Do not undefine when long double is
5762         binary64.
5763         (from_chars(const char*, const char*, double&, chars_format)):
5764         Check __LDBL_MANT_DIG__ == __DBL_MANT_DIG__ here.
5765         (from_chars(const char*, const char*, _Float128&, chars_format))
5766         Only use from_chars_strtod when USE_STRTOD_FOR_FROM_CHARS is
5767         defined, otherwise parse a long double and convert to _Float128.
5769 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
5771         PR libstdc++/109922
5772         * include/std/iomanip (operator>>(basic_istream&, _Setfill)):
5773         Add deprecated attribute to non-standard overload.
5774         * doc/xml/manual/evolution.xml: Document deprecation.
5775         * doc/html/*: Regenerate.
5776         * testsuite/27_io/manipulators/standard/char/1.cc: Add
5777         dg-warning for expected deprecated warning.
5778         * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
5779         * testsuite/27_io/manipulators/standard/wchar_t/1.cc: Likewise.
5780         * testsuite/27_io/manipulators/standard/wchar_t/2.cc: Likewise.
5782 2023-05-30  Alexandre Oliva  <oliva@adacore.com>
5784         * testsuite/20_util/from_chars/4.cc: Skip long double test06
5785         on x86_64-vxworks.
5786         * testsuite/20_util/to_chars/long_double.cc: Xfail run on
5787         x86_64-vxworks.
5789 2023-05-30  Matthias Kretz  <m.kretz@gsi.de>
5791         PR libstdc++/109822
5792         * include/experimental/bits/simd.h (to_native): Use int NTTP
5793         as specified in PTS2.
5794         (to_compatible): Likewise. Add missing tag to call mask
5795         generator ctor.
5796         * testsuite/experimental/simd/pr109822_cast_functions.cc: New
5797         test.
5799 2023-05-30  Matthias Kretz  <m.kretz@gsi.de>
5801         * testsuite/experimental/simd/tests/integer_operators.cc:
5802         Compute expected value differently to avoid getting turned into
5803         a vector shift.
5805 2023-05-30  Matthias Kretz  <m.kretz@gsi.de>
5807         * testsuite/experimental/simd/tests/operator_cvt.cc: Make long
5808         double <-> (u)long conversion tests conditional on sizeof(long
5809         double) and sizeof(long).
5811 2023-05-26  Matthias Kretz  <m.kretz@gsi.de>
5813         * include/experimental/bits/simd_ppc.h (_S_bit_shift_left):
5814         Negative __y is UB, so prefer signed compare.
5816 2023-05-25  Jonathan Wakely  <jwakely@redhat.com>
5818         * testsuite/util/testsuite_allocator.h (PointerBase): Add
5819         relational operators.
5821 2023-05-25  Alexandre Oliva  <oliva@adacore.com>
5823         * testsuite/20_util/to_chars/long_double.cc: Expect execution
5824         fail on x86-vxworks.
5826 2023-05-24  Matthias Kretz  <m.kretz@gsi.de>
5828         PR libstdc++/109949
5829         * include/experimental/bits/simd.h (__intrinsic_type): If
5830         __ALTIVEC__ is defined, map gnu::vector_size types to their
5831         corresponding __vector T types without losing unsignedness of
5832         integer types. Also prefer long long over long.
5833         * include/experimental/bits/simd_ppc.h (_S_popcount): Cast mask
5834         object to the expected unsigned vector type.
5836 2023-05-24  Matthias Kretz  <m.kretz@gsi.de>
5838         PR libstdc++/109261
5839         * include/experimental/bits/simd.h (__intrinsic_type):
5840         Specialize __intrinsic_type<double, 8> and
5841         __intrinsic_type<double, 16> in any case, but provide the member
5842         type only with __aarch64__.
5844 2023-05-24  Matthias Kretz  <m.kretz@gsi.de>
5846         PR libstdc++/109261
5847         * include/experimental/bits/simd_neon.h (_S_reduce): Add
5848         constexpr and make NEON implementation conditional on
5849         not __builtin_is_constant_evaluated.
5851 2023-05-23  Matthias Kretz  <m.kretz@gsi.de>
5853         PR libstdc++/109261
5854         * include/experimental/bits/simd.h (_SimdWrapper::_M_set):
5855         Avoid vector builtin subscripting in constant expressions.
5856         (resizing_simd_cast): Avoid memcpy if constant_evaluated.
5857         (const_where_expression, where_expression, where)
5858         (__extract_part, simd_mask, _SimdIntOperators, simd): Add either
5859         _GLIBCXX_SIMD_CONSTEXPR (on public APIs), or constexpr (on
5860         internal APIs).
5861         * include/experimental/bits/simd_builtin.h (__vector_permute)
5862         (__vector_shuffle, __extract_part, _GnuTraits::_SimdCastType1)
5863         (_GnuTraits::_SimdCastType2, _SimdImplBuiltin)
5864         (_MaskImplBuiltin::_S_store): Add constexpr.
5865         (_CommonImplBuiltin::_S_store_bool_array)
5866         (_SimdImplBuiltin::_S_load, _SimdImplBuiltin::_S_store)
5867         (_SimdImplBuiltin::_S_reduce, _MaskImplBuiltin::_S_load): Add
5868         constant_evaluated case.
5869         * include/experimental/bits/simd_fixed_size.h
5870         (_S_masked_load): Reword comment.
5871         (__tuple_element_meta, __make_meta, _SimdTuple::_M_apply_r)
5872         (_SimdTuple::_M_subscript_read, _SimdTuple::_M_subscript_write)
5873         (__make_simd_tuple, __optimize_simd_tuple, __extract_part)
5874         (__autocvt_to_simd, _Fixed::__traits::_SimdBase)
5875         (_Fixed::__traits::_SimdCastType, _SimdImplFixedSize): Add
5876         constexpr.
5877         (_SimdTuple::operator[], _M_set): Add constexpr and add
5878         constant_evaluated case.
5879         (_MaskImplFixedSize::_S_load): Add constant_evaluated case.
5880         * include/experimental/bits/simd_scalar.h: Add constexpr.
5881         * include/experimental/bits/simd_x86.h (_CommonImplX86): Add
5882         constexpr and add constant_evaluated case.
5883         (_SimdImplX86::_S_equal_to, _S_not_equal_to, _S_less)
5884         (_S_less_equal): Value-initialize to satisfy constexpr
5885         evaluation.
5886         (_MaskImplX86::_S_load): Add constant_evaluated case.
5887         (_MaskImplX86::_S_store): Add constexpr and constant_evaluated
5888         case. Value-initialize local variables.
5889         (_MaskImplX86::_S_logical_and, _S_logical_or, _S_bit_not)
5890         (_S_bit_and, _S_bit_or, _S_bit_xor): Add constant_evaluated
5891         case.
5892         * testsuite/experimental/simd/pr109261_constexpr_simd.cc: New
5893         test.
5895 2023-05-22  Matthias Kretz  <m.kretz@gsi.de>
5897         * include/experimental/bits/simd_builtin.h (_S_fpclassify): Move
5898         __infn into #ifdef'ed block.
5899         * testsuite/experimental/simd/tests/fpclassify.cc: Declare
5900         constants only when used.
5901         * testsuite/experimental/simd/tests/frexp.cc: Likewise.
5902         * testsuite/experimental/simd/tests/logarithm.cc: Likewise.
5903         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc:
5904         Likewise.
5905         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
5906         Move totest and expect1 into #ifdef'ed block.
5908 2023-05-19  Gerald Pfeifer  <gerald@pfeifer.com>
5910         * doc/xml/manual/strings.xml: Move lafstern.org reference to https.
5911         * doc/html/manual/strings.html: Regenerate.
5913 2023-05-17  Jakub Jelinek  <jakub@redhat.com>
5915         PR libstdc++/109883
5916         * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc: New test.
5918 2023-05-17  Jakub Jelinek  <jakub@redhat.com>
5920         PR libstdc++/109883
5921         * include/c_global/cmath (atan2, fmod, pow): Move
5922         __gnu_cxx::__promote_2 using templates after _Float{16,32,64,128} and
5923         __gnu_cxx::__bfloat16_t overloads.
5924         (copysign, fdim, fmax, fmin, hypot, nextafter, remainder, remquo):
5925         Likewise.
5926         (fma): Move __gnu_cxx::__promote_3 using template after
5927         _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads.
5929 2023-05-17  Jonathan Wakely  <jwakely@redhat.com>
5931         * testsuite/18_support/headers/limits/synopsis.cc: Uncomment
5932         checks for float_round_style and float_denorm_style.
5934 2023-05-17  Jonathan Wakely  <jwakely@redhat.com>
5936         * include/bits/c++config: Add system_header pragma.
5938 2023-05-17  Jonathan Wakely  <jwakely@redhat.com>
5940         * include/std/expected (expected::and_then, expected::or_else)
5941         (expected::transform, expected::transform_error): Fix exception
5942         specifications as per LWG 3877.
5943         (expected<void, E>::and_then, expected<void, E>::transform):
5944         Likewise.
5945         * testsuite/20_util/expected/lwg3877.cc: New test.
5947 2023-05-17  Ken Matsui  <kmatsui@cs.washington.edu>
5949         * include/std/type_traits: Use __bool_constant instead of
5950         integral_constant.
5952 2023-05-17  Jonathan Wakely  <jwakely@redhat.com>
5954         * configure: Regenerate.
5956 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
5958         PR libstdc++/109741
5959         * acinclude.m4 (GLIBCXX_CHECK_ALIGNAS_CACHELINE): Define.
5960         * config.h.in: Regenerate.
5961         * configure: Regenerate.
5962         * configure.ac: Use GLIBCXX_CHECK_ALIGNAS_CACHELINE.
5963         * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex): Do not
5964         align lock table if not supported. use __GCC_DESTRUCTIVE_SIZE
5965         instead of hardcoded 64.
5967 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
5969         * acinclude.m4 (GLIBCXX_USE_C99): Check for isblank in C++11
5970         mode and define _GLIBCXX_USE_C99_CTYPE. Check for <fenv.h>
5971         functions in C++11 mode and define _GLIBCXX_USE_C99_FENV.
5972         * config.h.in: Regenerate.
5973         * configure: Regenerate.
5974         * include/c_compatibility/fenv.h: Check _GLIBCXX_USE_C99_FENV
5975         instead of _GLIBCXX_USE_C99_FENV_TR1.
5976         * include/c_global/cfenv: Likewise.
5977         * include/c_global/cctype: Check _GLIBCXX_USE_C99_CTYPE instead
5978         of _GLIBCXX_USE_C99_CTYPE_TR1.
5980 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
5982         * acinclude.m4 (GLIBCXX_USE_C99): Check for <stdint.h> types in
5983         C++11 mode and define _GLIBCXX_USE_C99_STDINT. Check for
5984         <inttypes.h> features in C++11 mode and define
5985         _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T.
5986         * config.h.in: Regenerate.
5987         * configure: Regenerate.
5988         * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
5989         * include/bits/chrono.h: Check _GLIBCXX_USE_C99_STDINT instead
5990         of _GLIBCXX_USE_C99_STDINT_TR1.
5991         * include/c_compatibility/inttypes.h: Check
5992         _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T
5993         instead of _GLIBCXX_USE_C99_INTTYPES_TR1 and
5994         _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
5995         * include/c_compatibility/stdatomic.h: Check
5996         _GLIBCXX_USE_C99_STDINT instead of _GLIBCXX_USE_C99_STDINT_TR1.
5997         * include/c_compatibility/stdint.h: Likewise.
5998         * include/c_global/cinttypes: Check _GLIBCXX_USE_C99_INTTYPES
5999         and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T instead of
6000         _GLIBCXX_USE_C99_INTTYPES_TR1 and
6001         _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
6002         * include/c_global/cstdint: Check _GLIBCXX_USE_C99_STDINT
6003         instead of _GLIBCXX_USE_C99_STDINT_TR1.
6004         * include/std/atomic: Likewise.
6005         * src/c++11/cow-stdexcept.cc: Likewise.
6006         * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
6007         Likewise.
6008         * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
6009         Likewise.
6011 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
6013         * acinclude.m4 (GLIBCXX_USE_C99): Check for complex inverse trig
6014         functions in C++11 mode and define _GLIBCXX_USE_C99_COMPLEX_ARC.
6015         * config.h.in: Regenerate.
6016         * configure: Regenerate.
6017         * doc/doxygen/user.cfg.in (PREDEFINED): Add new macro.
6018         * include/std/complex: Check _GLIBCXX_USE_C99_COMPLEX_ARC
6019         instead of _GLIBCXX_USE_C99_COMPLEX_TR1.
6021 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
6023         * testsuite/ext/debug_allocator/check_deallocate_null.cc: Add
6024         assertion to ensure expected exception is throw.
6026 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
6028         * testsuite/libstdc++-prettyprinters/chrono.cc: Only test
6029         printer for chrono::zoned_time for cx11 ABI and tzdb effective
6030         target.
6032 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
6034         * acinclude.m4 (GLIBCXX_CHECK_PTHREAD_MUTEX_CLOCKLOCK): Define
6035         _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK in terms of _GLIBCXX_TSAN.
6036         * configure: Regenerate.
6038 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
6040         * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Use a non-null pointer
6041         to check for nan, nanf, and nanl.
6042         * configure: Regenerate.
6044 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
6046         * include/bits/char_traits.h (char_traits<char16_t>): Do not
6047         depend on _GLIBCXX_USE_C99_STDINT_TR1.
6048         (char_traits<char32_t>): Likewise.
6049         * include/experimental/source_location: Likewise.
6051 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
6053         * include/std/atomic (atomic_int_least8_t, atomic_uint_least8_t)
6054         (atomic_int_least16_t, atomic_uint_least16_t)
6055         (atomic_int_least32_t, atomic_uint_least32_t)
6056         (atomic_int_least64_t, atomic_uint_least64_t)
6057         (atomic_int_fast16_t, atomic_uint_fast16_t)
6058         (atomic_int_fast32_t, atomic_uint_fast32_t)
6059         (atomic_int_fast64_t, atomic_uint_fast64_t)
6060         (atomic_intmax_t, atomic_uintmax_t): Define unconditionally.
6061         * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Adjust.
6063 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
6065         * include/bits/algorithmfwd.h (shuffle): Do not depend on
6066         _GLIBCXX_USE_C99_STDINT_TR1.
6067         * include/bits/ranges_algo.h (shuffle): Likewise.
6068         * include/bits/stl_algo.h (shuffle): Likewise.
6069         * include/ext/random: Likewise.
6070         * include/ext/throw_allocator.h (random_condition): Likewise.
6071         * include/std/random: Likewise.
6072         * src/c++11/cow-string-inst.cc: Likewise.
6073         * src/c++11/random.cc: Likewise.
6075 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
6077         * testsuite/experimental/feat-cxx14.cc: Remove dependency on
6078         _GLIBCXX_USE_C99_STDINT_TR1.
6080 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
6082         * testsuite/22_locale/locale/cons/unicode.cc: Remove dependency
6083         on _GLIBCXX_USE_C99_STDINT_TR1.
6085 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
6087         * testsuite/21_strings/basic_string_view/typedefs.cc: Remove
6088         dependency on _GLIBCXX_USE_C99_STDINT_TR1.
6089         * testsuite/experimental/string_view/typedefs.cc: Likewise.
6091 2023-05-11  Jonathan Wakely  <jwakely@redhat.com>
6093         * src/c++17/floating_from_chars.cc [USE_STRTOD_FOR_FROM_CHARS]
6094         (auto_locale, auto_ferounding): New class types.
6095         (from_chars_impl): Use auto_locale and auto_ferounding.
6097 2023-05-11  Jonathan Wakely  <jwakely@redhat.com>
6099         PR libstdc++/109772
6100         * include/std/chrono (hh_mm_ss::__fits): Remove variable
6101         template.
6102         (hh_mm_ss::__subseconds): Remove __fits from constraints.
6103         * testsuite/std/time/hh_mm_ss/109772.cc: New test.
6104         * testsuite/std/time/hh_mm_ss/1.cc: Adjust expected size for
6105         hh_mm_ss<duration<int, std::pico>>.
6107 2023-05-11  Jonathan Wakely  <jwakely@redhat.com>
6109         * config/abi/pre/gnu.ver: Export basic_string::_S_allocate.
6110         * include/bits/basic_ios.h: Add static assertion checking
6111         traits_type::value_type.
6112         * include/bits/basic_string.h: Likewise. Do not rebind
6113         allocator, and add static assertion checking its value_type.
6114         (basic_string::_Alloc_traits_impl): Remove class template.
6115         (basic_string::_S_allocate): New static member function.
6116         (basic_string::assign): Use _S_allocate.
6117         * include/bits/basic_string.tcc (basic_string::_M_create)
6118         (basic_string::reserve, basic_string::_M_replace): Likewise.
6119         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc:
6120         Disable for C++20 and later.
6121         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
6122         Likweise.
6124 2023-05-11  Jonathan Wakely  <jwakely@redhat.com>
6126         PR libstdc++/109758
6127         * include/bits/std_abs.h (abs(__float128)): Handle negative NaN
6128         and negative zero correctly.
6129         * testsuite/26_numerics/headers/cmath/109758.cc: New test.
6131 2023-05-10  François Dumont  <fdumont@gcc.gnu.org>
6133         * include/bits/hashtable_policy.h
6134         (_NodeBuilder<>::_S_build): Use __node_ptr.
6135         (_ReuseOrAllocNode<>): Use __node_ptr in place of __node_type*.
6136         (_AllocNode<>): Likewise.
6137         (_Equality<>::_M_equal): Remove const_iterator usages. Only preserved
6138         to call std::is_permutation in the non-unique key implementation.
6139         * include/bits/hashtable.h (_Hashtable<>::_M_update_begin()): Capture
6140         _M_begin() once.
6141         (_Hashtable<>::_M_bucket_begin(size_type)): Implement implicitly inline.
6142         (_Hashtable<>::_M_insert_bucket_begin): Likewise.
6143         (_Hashtable<>::_M_remove_bucket_begin): Likewise.
6144         (_Hashtable<>::_M_compute_hash_code): Use __node_ptr rather than
6145         const_iterator.
6146         (_Hashtable<>::find): Likewise.
6147         (_Hashtable<>::_M_emplace): Likewise.
6148         (_Hashtable<>::_M_insert_unique): Likewise.
6150 2023-05-09  Jonathan Wakely  <jwakely@redhat.com>
6152         * python/libstdcxx/v6/printers.py (StdChronoDurationPrinter):
6153         Print floating-point durations correctly.
6154         (StdChronoTimePointPrinter): Support printing only the value,
6155         not the type name. Uncomment handling for known clocks.
6156         (StdChronoZonedTimePrinter): Remove type names from output.
6157         (StdChronoCalendarPrinter): Fix hh_mm_ss member access.
6158         (StdChronoTimeZonePrinter): Add equals sign to output.
6159         * testsuite/libstdc++-prettyprinters/chrono.cc: New test.
6161 2023-05-05  Alexandre Oliva  <oliva@adacore.com>
6163         * testsuite/20_util/from_chars/4.cc: Skip long double test06
6164         on aarch64-vxworks.
6165         * testsuite/20_util/to_chars/long_double.cc: Xfail run on
6166         aarch64-vxworks.
6168 2023-05-04  Jonathan Wakely  <jwakely@redhat.com>
6170         * doc/xml/manual/abi.xml (abi.versioning.history): Document
6171         libstdc++.so.6.0.32 and GLIBCXX_3.4.32 version.
6172         * doc/html/manual/abi.html: Regenerate.
6174 2023-05-04  Florian Weimer  <fweimer@redhat.com>
6176         * doc/xml/manual/abi.xml (abi.versioning.history): Add
6177         GCC_7.0.0, GCC_9.0.0, GCC_11.0, GCC_12.0.0, GCC_13.0.0 for
6178         libgcc_s.
6180 2023-05-03  Jakub Jelinek  <jakub@redhat.com>
6182         * src/c++17/floating_from_chars.cc
6183         (_ZSt10from_charsPKcS0_RDF128_St12chars_format): New alias to
6184         _ZSt10from_charsPKcS0_Ru9__ieee128St12chars_format.
6185         * src/c++17/floating_to_chars.cc (_ZSt8to_charsPcS_DF128_): New alias to
6186         _ZSt8to_charsPcS_u9__ieee128.
6187         (_ZSt8to_charsPcS_DF128_St12chars_format): New alias to
6188         _ZSt8to_charsPcS_u9__ieee128St12chars_format.
6189         (_ZSt8to_charsPcS_DF128_St12chars_formati): New alias to
6190         _ZSt8to_charsPcS_u9__ieee128St12chars_formati.
6191         * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Updated.
6193 2023-05-03  Jakub Jelinek  <jakub@redhat.com>
6195         * configure.host (abi_baseline_pair): Use powerpc64le-linux-gnu
6196         rather than powerpc64-linux-gnu for powerpc64le*-linux*.
6197         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Remove
6198         _ZTI*DF128_, _ZTI*DF64x symbols and symbols in
6199         GLIBCXX_IEEE128_3.4.{29,30,31} and CXXABI_IEEE128_1.3.13 symbol
6200         versions.
6201         * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: New
6202         file.
6204 2023-05-03  Kefu Chai  <kefu.chai@scylladb.com>
6205             Jonathan Wakely  <jwakely@redhat.com>
6207         PR libstdc++/109703
6208         * include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)):
6209         Initialize _M_string_length.
6211 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
6213         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
6214         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
6215         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
6216         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
6217         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
6218         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
6219         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
6220         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
6222 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
6224         PR libstdc++/109694
6225         * src/c++98/ios_init.cc: Add #pragma GCC diagnostic ignored for
6226         -Wattribute-alias.
6228 2023-04-28  Jonathan Wakely  <jwakely@redhat.com>
6230         * include/bits/random.h (gamma_distribution): Add to the right
6231         doxygen group.
6232         (discrete_distribution, piecewise_constant_distribution)
6233         (piecewise_linear_distribution): Create a new doxygen group and
6234         fix the incomplete doxygen comments.
6235         * include/bits/uniform_int_dist.h (uniform_int_distribution):
6236         Add to doxygen group.
6238 2023-04-28  Jonathan Wakely  <jwakely@redhat.com>
6240         * include/bits/uses_allocator.h: Add missing @file comment.
6241         * include/bits/regex.tcc: Remove stray doxygen comments.
6242         * include/experimental/memory_resource: Likewise.
6243         * include/std/bit: Tweak doxygen @cond comments.
6244         * include/std/expected: Likewise.
6245         * include/std/numbers: Likewise.
6247 2023-04-28  Jonathan Wakely  <jwakely@redhat.com>
6249         * doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
6250         from header paths.
6252 2023-04-28  Jonathan Wakely  <jwakely@redhat.com>
6254         * include/bits/move.h: Simplify opening/closing namespace std.
6256 2023-04-28  Jakub Jelinek  <jakub@redhat.com>
6258         PR libstdc++/108969
6259         * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export
6260         _ZSt21ios_base_library_initv.
6261         * testsuite/util/testsuite_abi.cc (check_version): Add GLIBCXX_3.4.32
6262         symver and make it the latestp.
6263         * src/c++98/ios_init.cc (ios_base_library_init): New alias.
6264         * acinclude.m4 (libtool_VERSION): Change to 6:32:0.
6265         * include/std/iostream: If init_priority attribute is supported
6266         and _GLIBCXX_SYMVER_GNU, force undefined _ZSt21ios_base_library_initv
6267         symbol into the object.
6268         * configure: Regenerated.
6270 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
6272         * include/bits/mofunc_impl.h: Fix typo in doxygen comment.
6273         * include/std/format: Likewise.
6275 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
6277         * doc/doxygen/user.cfg.in (FORMULA_TRANSPARENT, DOT_FONTNAME)
6278         (DOT_FONTSIZE, DOT_TRANSPARENT): Remove obsolete options.
6280 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
6282         * doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
6283         HTML docs.
6284         * include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
6285         from doxygen docs.
6286         * include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
6287         Likewise.
6288         * include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
6289         Likewise.
6290         * include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
6291         Likewise.
6292         * include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
6293         (_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
6294         (_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
6295         (_DEFINE_BINARY_OPERATOR): Likewise.
6297 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
6299         * include/bits/memory_resource.h: Improve doxygen comments.
6300         * include/std/memory_resource: Likewise.
6302 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
6304         PR libstdc++/40380
6305         * include/bits/basic_string.h: Improve doxygen comments.
6306         * include/bits/cow_string.h: Likewise.
6307         * include/bits/forward_list.h: Likewise.
6308         * include/bits/fs_dir.h: Likewise.
6309         * include/bits/fs_path.h: Likewise.
6310         * include/bits/quoted_string.h: Likewise.
6311         * include/bits/stl_bvector.h: Likewise.
6312         * include/bits/stl_map.h: Likewise.
6313         * include/bits/stl_multimap.h: Likewise.
6314         * include/bits/stl_multiset.h: Likewise.
6315         * include/bits/stl_set.h: Likewise.
6316         * include/bits/stl_vector.h: Likewise.
6317         * include/bits/unordered_map.h: Likewise.
6318         * include/bits/unordered_set.h: Likewise.
6319         * include/std/filesystem: Likewise.
6320         * include/std/iomanip: Likewise.
6322 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
6324         PR libstdc++/105081
6325         * src/c++11/random.cc (__throw_syserr): New function.
6326         (random_device::_M_init, random_device::_M_init_pretr1): Use new
6327         function for bad tokens.
6328         (random_device::_M_getval): Use new function for read errors.
6329         * testsuite/util/testsuite_random.h (random_device_available):
6330         Change catch handler to use std::system_error.
6332 2023-04-24  Patrick Palka  <ppalka@redhat.com>
6334         * include/bits/max_size_type.h (__max_diff_type::operator>>=):
6335         Fix propagation of sign bit.
6336         * testsuite/std/ranges/iota/max_size_type.cc: Avoid using the
6337         non-standard 'signed typedef-name'.  Add some compile-time tests
6338         for right-shifting a negative __max_diff_type value by more than
6339         one.
6341 2023-04-19  Patrick Palka  <ppalka@redhat.com>
6342             Jonathan Wakely  <jwakely@redhat.com>
6344         PR c++/100157
6345         * include/bits/utility.h (_Nth_type): Conditionally define in
6346         terms of __type_pack_element if available.
6347         * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
6348         additional errors from the new built-in.
6350 2023-04-19  Jonathan Wakely  <jwakely@redhat.com>
6352         Revert:
6353         2023-04-18  Jonathan Wakely  <jwakely@redhat.com>
6355         PR libstdc++/108969
6356         * src/Makefile.am: Move globals_io.cc to here.
6357         * src/Makefile.in: Regenerate.
6358         * src/c++98/Makefile.am: Remove globals_io.cc from here.
6359         * src/c++98/Makefile.in: Regenerate.
6360         * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
6361         symbol name and then export with GLIBCXX_3.4.31 symver.
6362         (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
6363         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
6364         Regenerate.
6365         * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
6366         Regenerate.
6367         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
6368         Regenerate.
6369         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
6370         Regenerate.
6371         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
6372         Regenerate.
6373         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
6374         Regenerate.
6375         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
6376         Regenerate.
6377         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
6378         Regenerate.
6379         * config/abi/pre/gnu.ver: Add iostream objects to new symver.
6381 2023-04-19  Jonathan Wakely  <jwakely@redhat.com>
6383         Revert:
6384         2023-04-18  Jonathan Wakely  <jwakely@redhat.com>
6386         PR libstdc++/108969
6387         * config/abi/pre/gnu.ver: Fix preprocessor condition.
6389 2023-04-18  Jonathan Wakely  <jwakely@redhat.com>
6391         * doc/xml/manual/extensions.xml: Fix example to declare and
6392         qualify std::free, and use NULL instead of 0.
6393         * doc/html/manual/ext_demangling.html: Regenerate.
6394         * libsupc++/cxxabi.h: Adjust doxygen comments.
6396 2023-04-18  Jonathan Wakely  <jwakely@redhat.com>
6398         PR libstdc++/108969
6399         * config/abi/pre/gnu.ver: Fix preprocessor condition.
6401 2023-04-18  Jonathan Wakely  <jwakely@redhat.com>
6403         PR libstdc++/108969
6404         * src/Makefile.am: Move globals_io.cc to here.
6405         * src/Makefile.in: Regenerate.
6406         * src/c++98/Makefile.am: Remove globals_io.cc from here.
6407         * src/c++98/Makefile.in: Regenerate.
6408         * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
6409         symbol name and then export with GLIBCXX_3.4.31 symver.
6410         (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
6411         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
6412         Regenerate.
6413         * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
6414         Regenerate.
6415         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
6416         Regenerate.
6417         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
6418         Regenerate.
6419         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
6420         Regenerate.
6421         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
6422         Regenerate.
6423         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
6424         Regenerate.
6425         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
6426         Regenerate.
6427         * config/abi/pre/gnu.ver: Add iostream objects to new symver.
6429 2023-04-18  Patrick Palka  <ppalka@redhat.com>
6431         PR libstdc++/108827
6432         * include/bits/ranges_cmp.h (__cpp_lib_ranges): Bump value
6433         for C++23.
6434         * include/std/ranges (range_adaptor_closure): Define for C++23.
6435         * include/std/version (__cpp_lib_ranges): Bump value for
6436         C++23.
6437         * testsuite/std/ranges/version_c++23.cc: Bump expected value
6438         of __cpp_lib_ranges.
6439         * testsuite/std/ranges/range_adaptor_closure.cc: New test.
6441 2023-04-18  Patrick Palka  <ppalka@redhat.com>
6443         * include/bits/ranges_algo.h (__cpp_lib_ranges_contains):
6444         Define for C++23.
6445         (__cpp_lib_ranges_iota): Likewise.
6446         (__cpp_lib_ranges_find_last): Likewise.
6447         (__cpp_lib_fold): Rename to ...
6448         (__cpp_lib_ranges_fold): ... this.
6449         * include/std/version: As above.
6450         * testsuite/25_algorithms/fold_left/1.cc: Adjust after
6451         renaming __cpp_lib_fold.
6452         * testsuite/std/ranges/version_c++23.cc: Verify values
6453         of the above feature-test macros.
6455 2023-04-18  Patrick Palka  <ppalka@redhat.com>
6457         PR libstdc++/109525
6458         * include/std/ranges (views::_AsConst::operator()): Add
6459         missing const to constant_range test.
6460         * testsuite/std/ranges/adaptors/as_const/1.cc (test02):
6461         Improve formatting.  Adjust expected type of v2.
6462         (test03): New test.
6464 2023-04-14  Patrick Palka  <ppalka@redhat.com>
6466         * include/bits/ranges_base.h (const_iterator_t): Define for C++23.
6467         (const_sentinel_t): Likewise.
6468         (range_const_reference_t): Likewise.
6469         (constant_range): Likewise.
6470         (__cust_access::__possibly_const_range): Likewise, replacing ...
6471         (__cust_access::__as_const): ... this.
6472         (__cust_access::_CBegin::operator()): Redefine for C++23 as per P2278R4.
6473         (__cust_access::_CEnd::operator()): Likewise.
6474         (__cust_access::_CRBegin::operator()): Likewise.
6475         (__cust_access::_CREnd::operator()): Likewise.
6476         (__cust_access::_CData::operator()): Likewise.
6477         * include/bits/ranges_util.h (ranges::__detail::__different_from):
6478         Make it an alias of std::__detail::__different_from.
6479         (view_interface::cbegin): Define for C++23.
6480         (view_interface::cend): Likewise.
6481         * include/bits/stl_iterator.h (__detail::__different_from): Define.
6482         (iter_const_reference_t): Define for C++23.
6483         (__detail::__constant_iterator): Likewise.
6484         (__detail::__is_const_iterator): Likewise.
6485         (__detail::__not_a_const_iterator): Likewise.
6486         (__detail::__iter_const_rvalue_reference_t): Likewise.
6487         (__detail::__basic_const_iter_cat):: Likewise.
6488         (const_iterator): Likewise.
6489         (__detail::__const_sentinel): Likewise.
6490         (const_sentinel): Likewise.
6491         (basic_const_iterator): Likewise.
6492         (common_type<basic_const_iterator<_Tp>, _Up>): Likewise.
6493         (common_type<_Up, basic_const_iterator<_Tp>>): Likewise.
6494         (common_type<basic_const_iterator<_Tp>, basic_const_iterator<Up>>):
6495         Likewise.
6496         (make_const_iterator): Define for C++23.
6497         (make_const_sentinel): Likewise.
6498         * include/std/ranges (__cpp_lib_ranges_as_const): Likewise.
6499         (as_const_view): Likewise.
6500         (enable_borrowed_range<as_const_view>): Likewise.
6501         (views::__detail::__is_ref_view): Likewise.
6502         (views::__detail::__can_is_const_view): Likewise.
6503         (views::_AsConst, views::as_const): Likewise.
6504         * include/std/span (span::const_iterator): Likewise.
6505         (span::const_reverse_iterator): Likewise.
6506         (span::cbegin): Likewise.
6507         (span::cend): Likewise.
6508         (span::crbegin): Likewise.
6509         (span::crend): Likewise.
6510         * include/std/version (__cpp_lib_ranges_as_const): Likewise.
6511         * testsuite/std/ranges/adaptors/join.cc (test06): Adjust to
6512         behave independently of C++20 vs C++23.
6513         * testsuite/std/ranges/version_c++23.cc: Verify value of
6514         __cpp_lib_ranges_as_const macro.
6515         * testsuite/24_iterators/const_iterator/1.cc: New test.
6516         * testsuite/std/ranges/adaptors/as_const/1.cc: New test.
6518 2023-04-14  Patrick Palka  <ppalka@redhat.com>
6520         * include/bits/ranges_base.h (__cust_access::__as_const)
6521         (__cust_access::_CBegin, __cust::cbegin)
6522         (__cust_access::_CEnd, __cust::cend)
6523         (__cust_access::_CRBegin, __cust::crbegin)
6524         (__cust_access::_CREnd, __cust::crend)
6525         (__cust_access::_CData, __cust::cdata): Move down definitions to
6526         shortly after the definition of input_range.
6528 2023-04-14  Patrick Palka  <ppalka@redhat.com>
6530         * include/bits/ranges_algo.h: Include <optional> for C++23.
6531         (__cpp_lib_fold): Define for C++23.
6532         (in_value_result): Likewise.
6533         (__detail::__flipped): Likewise.
6534         (__detail::__indirectly_binary_left_foldable_impl): Likewise.
6535         (__detail::__indirectly_binary_left_foldable): Likewise.
6536         (___detail:__indirectly_binary_right_foldable): Likewise.
6537         (fold_left_with_iter_result): Likewise.
6538         (__fold_left_with_iter_fn, fold_left_with_iter): Likewise.
6539         (__fold_left_fn, fold_left): Likewise.
6540         (__fold_left_first_with_iter_fn, fold_left_first_with_iter):
6541         Likewise.
6542         (__fold_left_first_fn, fold_left_first): Likewise.
6543         (__fold_right_fn, fold_right): Likewise.
6544         (__fold_right_last_fn, fold_right_last): Likewise.
6545         * include/std/version (__cpp_lib_fold): Likewise.
6546         * testsuite/25_algorithms/fold_left/1.cc: New test.
6547         * testsuite/25_algorithms/fold_right/1.cc: New test.
6549 2023-04-14  Jonathan Wakely  <jwakely@redhat.com>
6551         * include/std/format (formatter): Add comment to deleted default
6552         constructor of primary template.
6553         (_Checking_scanner): Add static_assert.
6555 2023-04-12  Jonathan Wakely  <jwakely@redhat.com>
6557         * doc/xml/manual/using.xml: Document libstdc++exp.a library.
6558         * doc/html/*: Regenerate.
6560 2023-04-12  Jonathan Wakely  <jwakely@redhat.com>
6562         * testsuite/17_intro/names.cc [_AIX]: Do not define policy.
6563         * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Rename
6564         namespace to avoid clashing with libc struct.
6565         * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
6566         Likewise.
6567         * testsuite/23_containers/unordered_map/96088.cc: Skip on AIX.
6568         * testsuite/23_containers/unordered_multimap/96088.cc: Likewise.
6569         * testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
6570         * testsuite/23_containers/unordered_set/96088.cc: Likewise.
6571         * testsuite/experimental/synchronized_value.cc: Require gthreads
6572         and add missing option for pthreads targets.
6574 2023-04-12  Patrick Palka  <ppalka@redhat.com>
6576         * include/std/ranges (__cpp_lib_ranges_enumerate): Define
6577         for C++23.
6578         (__detail::__range_with_movable_reference): Likewise.
6579         (enumerate_view): Likewise.
6580         (enumerate_view::_Iterator): Likewise.
6581         (enumerate_view::_Sentinel): Likewise.
6582         (views::__detail::__can_enumerate_view): Likewise.
6583         (views::_Enumerate, views::enumerate): Likewise.
6584         * include/std/version (__cpp_lib_ranges_enumerate): Likewise.
6585         * testsuite/std/ranges/version_c++23.cc: Verify value of
6586         __cpp_lib_ranges_enumerate.
6587         * testsuite/std/ranges/adaptors/enumerate/1.cc: New test.
6589 2023-04-12  Patrick Palka  <ppalka@redhat.com>
6591         * include/std/ranges (lazy_split_view::_OuterIter::_OuterIter):
6592         Propagate _M_trailing_empty in the const-converting constructor
6593         as per LWG 3904.
6594         * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): Correct
6595         assertion.
6596         * testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test.
6598 2023-04-12  Patrick Palka  <ppalka@redhat.com>
6600         * src/c++17/floating_from_chars.cc: Include <algorithm>,
6601         <iterator>, <limits> and <cstdint>.
6603 2023-04-12  Patrick Palka  <ppalka@redhat.com>
6605         PR libstdc++/108291
6606         * include/std/ranges (chunk_by_view::_M_find_next): Generalize
6607         parameter types of the lambda wrapper passed to adjacent_find.
6608         (chunk_by_view::_M_find_prev): Likewise.
6609         * testsuite/std/ranges/adaptors/chunk_by/1.cc (test04, test05):
6610         New tests.
6612 2023-04-12  Jonathan Wakely  <jwakely@redhat.com>
6614         PR libstdc++/109482
6615         * include/experimental/internet (basic_endpoint::basic_endpoint()):
6616         Ensure that the required union members are active. Only define
6617         as constexpr for C++20 and later.
6618         (basic_endpoint::basic_endpoint(const protocol_type&, port_type)):
6619         Likewise.
6620         * testsuite/experimental/net/internet/endpoint/cons.cc: Only
6621         check constexpr default constructor for C++20 and later.
6622         * testsuite/experimental/net/internet/endpoint/extensible.cc:
6623         Likewise.
6625 2023-04-12  Jonathan Wakely  <jwakely@redhat.com>
6627         * src/c++20/tzdata.zi: Import new file from 2023c release.
6629 2023-04-05  Arsen Arsenović  <arsen@aarsen.me>
6631         * include/precompiled/stdc++.h (C++17): Don't double-include
6632         <charconv>, once with wrong conditions.
6633         * testsuite/18_support/96817.cc: Require hosted.
6634         * testsuite/18_support/bad_exception/59392.cc: Ditto.
6635         * testsuite/20_util/scoped_allocator/108952.cc: Ditto.
6636         * testsuite/20_util/uses_allocator/lwg3527.cc: Ditto.
6637         * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
6638         Ditto.
6640 2023-04-05  Arsen Arsenović  <arsen@aarsen.me>
6642         * include/bits/c++config: When __STDC_HOSTED__ is zero,
6643         disable _GLIBCXX_DEBUG and, if it was set, enable
6644         _GLIBCXX_ASSERTIONS.
6645         * testsuite/lib/libstdc++.exp (check_v3_target_debug_mode):
6646         Include <bits/c++config.h> when determining whether debug is
6647         set, in order to inherit the logic from above
6649 2023-04-05  Arsen Arsenović  <arsen@aarsen.me>
6651         * testsuite/17_intro/versionconflict.cc: New test.
6652         * include/std/version: Allow disabling the system_header pragma
6653         via _GLIBCXX_TESTING_SYSHDR.
6655 2023-04-05  Arsen Arsenović  <arsen@aarsen.me>
6657         * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
6658         Synchronize the definition block with...
6659         * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory):
6660         ... this one here.  Also define the 202202L value, rather than
6661         leaving it up to purely unique_ptr.h, so that the value is
6662         synchronized across all headers.
6663         (__gnu_debug::_Safe_iterator_base): Move into new conditional
6664         block.
6665         * include/std/memory (__cpp_lib_atomic_value_initialization):
6666         Define on freestanding under the same conditions as in
6667         atomic_base.h.
6668         * include/std/version (__cpp_lib_robust_nonmodifying_seq_ops):
6669         Also define on freestanding.
6670         (__cpp_lib_to_chars): Ditto.
6671         (__cpp_lib_gcd): Ditto.
6672         (__cpp_lib_gcd_lcm): Ditto.
6673         (__cpp_lib_raw_memory_algorithms): Ditto.
6674         (__cpp_lib_array_constexpr): Ditto.
6675         (__cpp_lib_nonmember_container_access): Ditto.
6676         (__cpp_lib_clamp): Ditto.
6677         (__cpp_lib_constexpr_char_traits): Ditto.
6678         (__cpp_lib_constexpr_string): Ditto.
6679         (__cpp_lib_sample): Ditto.
6680         (__cpp_lib_lcm): Ditto.
6681         (__cpp_lib_constexpr_iterator): Ditto.
6682         (__cpp_lib_constexpr_char_traits): Ditto.
6683         (__cpp_lib_interpolate): Ditto.
6684         (__cpp_lib_constexpr_utility): Ditto.
6685         (__cpp_lib_shift): Ditto.
6686         (__cpp_lib_ranges): Ditto.
6687         (__cpp_lib_move_iterator_concept): Ditto.
6688         (__cpp_lib_constexpr_numeric): Ditto.
6689         (__cpp_lib_constexpr_functional): Ditto.
6690         (__cpp_lib_constexpr_algorithms): Ditto.
6691         (__cpp_lib_constexpr_tuple): Ditto.
6692         (__cpp_lib_constexpr_memory): Ditto.
6694 2023-04-05  John David Anglin  <danglin@gcc.gnu.org>
6696         * testsuite/22_locale/locale/cons/12658_thread-2.cc: Double
6697         timeout factor on hppa*-*-*.
6699 2023-04-05  Jonathan Wakely  <jwakely@redhat.com>
6701         * include/bits/regex.h (sub_match::swap): New function.
6702         * testsuite/28_regex/sub_match/lwg3204.cc: New test.
6704 2023-04-04  Jonathan Wakely  <jwakely@redhat.com>
6706         * doc/xml/manual/extensions.xml: Remove std::bad_exception from
6707         example program.
6708         * doc/html/manual/ext_demangling.html: Regenerate.
6710 2023-03-31  Jonathan Wakely  <jwakely@redhat.com>
6712         PR tree-optimization/107087
6713         * include/bits/cow_string.h (basic_string::size()): Add
6714         optimizer hint that _S_empty_rep()._M_length is always zero.
6715         (basic_string::length()): Call size().
6717 2023-03-31  Jonathan Wakely  <jwakely@redhat.com>
6719         PR libstdc++/109339
6720         * include/std/stop_token (_Stop_state_ptr(const stop_source&)):
6721         Add attribute access with access-mode 'none'.
6722         * testsuite/30_threads/stop_token/stop_source/109339.cc: New test.
6724 2023-03-31  Jonathan Wakely  <jwakely@redhat.com>
6726         * include/experimental/internet (ip::basic_endpoint::_M_if_v6):
6727         Revert change from member function to data member. Fix for
6728         constant evaluation by detecting which union member is active.
6729         (ip::basic_endpoint::resize): Revert changes to update _M_is_v6
6730         flag.
6732 2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
6734         PR libstdc++/109242
6735         * testsuite/20_util/optional/monadic/pr109340.cc: Moved to...
6736         * testsuite/20_util/optional/monadic/pr109242.cc: ...here.
6738 2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
6740         * include/experimental/internet (ip::make_address): Implement
6741         missing overload.
6742         (ip::address_v4::broadcast()): Avoid undefined shift.
6743         (ip::basic_endpoint): Fix member functions for constexpr.
6744         (ip::basic_endpoint::_M_is_v6): Replace member function with
6745         data member, adjust member functions using it.
6746         (ip::basic_endpoint::resize): Update _M_is_v6 based on sockaddr
6747         content.
6748         * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
6749         constexpr checks to work in C++14.
6750         * testsuite/experimental/net/internet/address/v4/creation.cc:
6751         Likewise.
6752         * testsuite/experimental/net/internet/endpoint/cons.cc:
6753         Likewise.
6754         * testsuite/experimental/net/internet/network/v4/cons.cc:
6755         Likewise.
6756         * testsuite/experimental/net/internet/network/v4/members.cc:
6757         Likewise.
6758         * testsuite/experimental/net/internet/endpoint/extensible.cc: New test.
6760 2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
6762         * include/std/expected (expected::value() &): Use const lvalue
6763         for unex member passed to bad_expected_access constructor, as
6764         per LWG 3843.
6766 2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
6768         PR libstdc++/109340
6769         * include/std/expected (expected::transform): Use
6770         std::remove_cv_t instead of std::remove_cvref_t.
6771         (expected::transform_error): Likewise.
6772         (expected<cv void, E>::transform): Likewise.
6773         (expected<cv void, E>::transform_error): Likewise.
6774         * include/std/optional (transform): Use std::remove_cv_t.
6775         * testsuite/20_util/optional/monadic/pr109340.cc: New test.
6777 2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
6779         * include/std/optional (optional): Adjust static assertion to
6780         reject arrays and functions as well as references.
6781         * testsuite/20_util/optional/requirements_neg.cc: New test.
6783 2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
6785         PR libstdc++/103387
6786         * include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use
6787         std::use_facet instead of cached _M_num_get facet.
6788         (istream::operator>>(short&)): Likewise.
6789         (istream::operator>>(int&)): Likewise.
6790         * include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use
6791         std::use_facet instead of cached _M_num_put facet.
6793 2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
6795         * include/bits/char_traits.h (char_traits::copy): Return without
6796         using memcpy if n==0.
6797         (char_traits::assign): Likewise for memset.
6799 2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
6801         PR libstdc++/109299
6802         * include/bits/basic_string.h (basic_string::_M_is_local()): Add
6803         hint for compiler that local strings fit in the local buffer.
6805 2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
6807         PR libstdc++/109288
6808         * include/std/chrono (__detail::__get_leap_second_info): Update
6809         expiry date of hardcoded leapseconds list.
6810         * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds()):
6811         Likewise.
6812         * src/c++20/tzdata.zi: Import new file from 2023a release.
6813         * testsuite/std/time/time_zone/get_info_local.cc: Only check
6814         transitions for Egypt up to 2014.
6816 2023-03-28  Matthias Kretz  <m.kretz@gsi.de>
6818         * include/experimental/bits/simd.h (is_simd_flag_type): New.
6819         (_IsSimdFlagType): New.
6820         (copy_from, copy_to, load ctors): Constrain _Flags using
6821         _IsSimdFlagType.
6823 2023-03-28  Matthias Kretz  <m.kretz@gsi.de>
6825         * include/experimental/bits/simd_x86.h (_SimdImplX86): Use
6826         _Base::_S_divides if the optimized _S_divides function is hidden
6827         via the preprocessor.
6829 2023-03-27  Jakub Jelinek  <jakub@redhat.com>
6831         * testsuite/experimental/net/timer/waitable/dest.cc: Avoid -Wformat
6832         warning if size_t is not unsigned long.
6834 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
6836         * include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)):
6837         Add overload, as per LWG 3893.
6838         * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
6839         Check assignment from nullptr.
6841 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
6843         * include/std/format (formatter<const charT[N], charT>): Do not
6844         define partial speclialization, as per LWG 3833.
6845         * testsuite/std/format/formatter/requirements.cc: Check it.
6847 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
6849         * include/std/utility (__cpp_lib_constexpr_algorithms): Define,
6850         as per LWG 3792.
6851         * testsuite/20_util/exchange/constexpr.cc: Check for it.
6853 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
6855         * include/std/version (__cpp_lib_format): Define.
6856         * testsuite/std/format/functions/format.cc: Check it.
6858 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
6860         * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
6861         Pass rvalues to the callback, as now allowed by LWG 3645.
6862         Enforce preconditions on the return value.
6863         * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
6864         Adjust.
6866 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
6868         * include/std/format: Add a comment noting that the resolution
6869         of LWG 3720 has been applied..
6871 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
6873         * include/bits/regex.h (match_results): Add allocator-extended
6874         copy and move constructors, as per LWG 2195.
6875         * testsuite/28_regex/match_results/ctors/char/alloc.cc: New test.
6877 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
6879         * include/bits/stream_iterator.h (istream_iterator): Add
6880         constexpr to copy constructor, as per LWG 3600.
6881         * testsuite/24_iterators/istream_iterator/cons/constexpr.cc:
6882         Check copy construction.
6884 2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
6886         * include/experimental/bits/simd_x86.h
6887         (_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
6888         with __RECIPROCAL_MATH__.
6890 2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
6892         * include/experimental/bits/simd_detail.h: Don't define
6893         _GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang.
6894         * include/experimental/bits/simd_x86.h (_S_divides): Remove
6895         check for __clang__.
6897 2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
6899         * include/experimental/bits/simd_detail.h: Don't declare the
6900         simd API as constexpr with Clang.
6901         * include/experimental/bits/simd_x86.h (__movm): New.
6902         (_S_blend_avx512): Resolve FIXME. Implement blend using __movm
6903         and ?:.
6904         (_SimdImplX86::_S_masked_unary): Clang does not implement the
6905         same builtins. Implement the function using __movm, ?:, and -
6906         operators on vector_size types instead.
6908 2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
6910         * testsuite/experimental/simd/tests/operators.cc: Clang doesn't
6911         define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
6913 2023-03-20  Jonathan Wakely  <jwakely@redhat.com>
6915         * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix
6916         formatting.
6918 2023-03-20  Marek Polacek  <polacek@redhat.com>
6920         PR c++/109159
6921         * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust dg-error.
6922         * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
6923         * testsuite/23_containers/span/explicit.cc: Likewise.
6925 2023-03-20  Jonathan Wakely  <jwakely@redhat.com>
6927         PR libstdc++/109182
6928         * include/std/expected (expected<void>::expected(in_place_t)):
6929         Remove template-head.
6931 2023-03-18  Jonathan Wakely  <jwakely@redhat.com>
6933         PR libstdc++/109165
6934         * testsuite/18_support/coroutines/hash.cc: Use const object
6935         in second call.
6937 2023-03-17  Jonathan Wakely  <jwakely@redhat.com>
6939         PR libstdc++/109165
6940         * include/std/coroutine (hash<>::operator()): Add const.
6941         * testsuite/18_support/coroutines/hash.cc: New test.
6943 2023-03-14  Patrick Palka  <ppalka@redhat.com>
6945         PR libstdc++/109111
6946         * include/std/ranges (repeat_view): Remove redundant parentheses
6947         in requires-clause.
6948         (repeat_view::_Iterator): Correct the requires-clause.
6950 2023-03-14  Patrick Palka  <ppalka@redhat.com>
6952         * include/bits/stl_iterator.h (move_iterator::_S_iter_concept):
6953         Define.
6954         (__cpp_lib_move_iterator_concept): Define for C++20.
6955         (move_iterator::iterator_concept): Strengthen as per P2520R0.
6956         * include/std/version (__cpp_lib_move_iterator_concept): Define
6957         for C++20.
6958         * testsuite/24_iterators/move_iterator/p2520r0.cc: New test.
6960 2023-03-14  Patrick Palka  <ppalka@redhat.com>
6962         * include/bits/ranges_util.h (view_interface::empty): Add
6963         preferred overloads that use ranges::size when the range is
6964         sized as per LWG 3715.
6965         * testsuite/std/ranges/adaptors/lwg3715.cc: New test.
6967 2023-03-14  Jonathan Wakely  <jwakely@redhat.com>
6969         * include/bits/chrono.h (__is_duration_v, __is_time_point_v):
6970         Only define for C++17 and later.
6972 2023-03-14  Jonathan Wakely  <jwakely@redhat.com>
6974         * src/Makefile.am: Add comment about linker script fragments.
6975         * src/Makefile.in: Regenerate.
6977 2023-03-14  Jonathan Wakely  <jwakely@redhat.com>
6979         PR libstdc++/62196
6980         * include/bits/mask_array.h (mask_array): Add assertions to
6981         assignment operators.
6982         * include/std/valarray (valarray::operator[](valarray<bool>)):
6983         Add assertions.
6984         * testsuite/26_numerics/valarray/mask-1_neg.cc: New test.
6985         * testsuite/26_numerics/valarray/mask-2_neg.cc: New test.
6986         * testsuite/26_numerics/valarray/mask-3_neg.cc: New test.
6987         * testsuite/26_numerics/valarray/mask-4_neg.cc: New test.
6988         * testsuite/26_numerics/valarray/mask-5_neg.cc: New test.
6989         * testsuite/26_numerics/valarray/mask-6_neg.cc: New test.
6990         * testsuite/26_numerics/valarray/mask-7_neg.cc: New test.
6991         * testsuite/26_numerics/valarray/mask-8_neg.cc: New test.
6992         * testsuite/26_numerics/valarray/mask.cc: New test.
6994 2023-03-13  Jakub Jelinek  <jakub@redhat.com>
6996         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
6997         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
6999 2023-03-13  Jonathan Wakely  <jwakely@redhat.com>
7001         * doc/Makefile.am: Add comment referring to documentation.
7002         * doc/Makefile.in: Regenerate.
7004 2023-03-13  Jonathan Wakely  <jwakely@redhat.com>
7006         * doc/html/*: Regenerate.
7008 2023-03-13  Jonny Grant  <jg@jguk.org>
7010         * doc/xml/faq.xml: Update copyright year.
7012 2023-03-13  Jonathan Wakely  <jwakely@redhat.com>
7014         * include/bits/allocator.h: Fix typo in comment.
7016 2023-03-12  Jakub Jelinek  <jakub@redhat.com>
7018         * config/abi/pre/gnu.ver (CXXABI_1.3.14): Also export __bf16 tinfos
7019         if it isn't mangled as DF16b but u6__bf16.
7021 2023-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
7023         * doc/xml/manual/documentation_hacking.xml: Move www.graphviz.org
7024         to https.
7025         * doc/html/manual/documentation_hacking.html: Regenerate.
7027 2023-03-10  Jonathan Wakely  <jwakely@redhat.com>
7029         PR libstdc++/109064
7030         * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
7031         Remove self-recursion in __init__. Add missing _supports.
7032         * testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
7033         and unique().
7035 2023-03-09  Patrick Palka  <ppalka@redhat.com>
7037         * include/std/ranges
7038         (cartesian_product_view::_Iterator::_Iterator): Remove
7039         constraint on default constructor as per LWG 3849.
7040         (cartesian_product_view::_Iterator::_M_prev): Adjust position
7041         of _Nm > 0 test as per LWG 3820.
7042         (cartesian_product_view::_Iterator::_M_advance): Perform bounds
7043         checking only on sized cartesian products.
7044         * testsuite/std/ranges/cartesian_product/1.cc (test08): New test.
7046 2023-03-09  Patrick Palka  <ppalka@redhat.com>
7048         PR libstdc++/109024
7049         * include/std/ranges (chunk_by_view::_M_pred): Remove DMI as per
7050         LWG 3796.
7051         (repeat_view::_M_pred): Likewise.
7052         * testsuite/std/ranges/adaptors/chunk_by/1.cc (test03): New test.
7053         * testsuite/std/ranges/repeat/1.cc (test05): New test.
7055 2023-03-09  Patrick Palka  <ppalka@redhat.com>
7057         PR libstdc++/108362
7058         * include/std/ranges (__detail::__can_single_view): New concept.
7059         (_Single::operator()): Constrain it.  Move [[nodiscard]] to the
7060         end of the function declarator.
7061         (__detail::__can_iota_view): New concept.
7062         (_Iota::operator()): Constrain it.  Move [[nodiscard]] to the
7063         end of the function declarator.
7064         (__detail::__can_istream_view): New concept.
7065         (_Istream::operator()): Constrain it.  Move [[nodiscard]] to the
7066         end of the function declarator.
7067         * testsuite/std/ranges/iota/iota_view.cc (test07): New test.
7068         * testsuite/std/ranges/istream_view.cc (test08): New test.
7069         * testsuite/std/ranges/single_view.cc (test07): New test.
7071 2023-03-09  Patrick Palka  <ppalka@redhat.com>
7073         PR libstdc++/107572
7074         * include/std/ranges (cartesian_product_view::end): When
7075         building the tuple of iterators, avoid calling ranges::begin on
7076         the first range if __empty_tail is false.
7077         * testsuite/std/ranges/cartesian_product/1.cc (test07): New test.
7079 2023-03-09  Jonathan Wakely  <jwakely@redhat.com>
7081         PR libstdc++/108882
7082         * config/os/gnu-linux/ldbl-ieee128-extra.ver: Fix incorrect
7083         patterns.
7085 2023-03-07  Jakub Jelinek  <jakub@redhat.com>
7087         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
7088         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
7089         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
7090         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
7091         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
7093 2023-03-07  Jonathan Wakely  <jwakely@redhat.com>
7095         PR libstdc++/108882
7096         * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Adjust patterns to
7097         not match symbols in namespace std::__gnu_cxx11_ieee128.
7098         * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add patterns for
7099         std::__gnu_cxx11_ieee128::money_{get,put}.
7101 2023-03-07  Jonathan Wakely  <jwakely@redhat.com>
7103         * libsupc++/eh_personality.cc: Fix spelling in comment.
7105 2023-03-03  Alexandre Oliva  <oliva@adacore.com>
7107         * testsuite/30_threads/async/async.cc (test04): Initialize
7108         steady_start, renamed from steady_begin, next to slow_start.
7109         Increase tolerance for final wait.
7111 2023-03-03  Alexandre Oliva  <oliva@adacore.com>
7113         * testsuite/libstdc++-prettyprinters/80276.cc: Add
7114         std::string to debug info.
7115         * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
7117 2023-03-03  Alexandre Oliva  <oliva@adacore.com>
7119         PR libstdc++/104852
7120         PR libstdc++/95989
7121         PR libstdc++/52590
7122         * include/bits/std_thread.h (thread::_M_thread_deps): New
7123         static implicitly-inline member function.
7124         (std::thread template ctor): Pass it to _M_start_thread.
7125         * src/c++11/thread.cc (thread::_M_start_thread): Name depend
7126         parameter, force it live on entry.
7128 2023-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7130         * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
7131         * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
7132         Likewise.
7133         * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
7134         * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
7135         Likewise.
7137 2023-03-01  Jonathan Wakely  <jwakely@redhat.com>
7139         * include/bits/cow_string.h: Fix typo in comment.
7141 2023-03-01  Jonathan Wakely  <jwakely@redhat.com>
7143         * src/c++20/tzdb.cc (chrono::tzdb::current_zone()) Use "UTC" if
7144         current time zone cannot be determined.
7145         * testsuite/std/time/tzdb/1.cc: Remove conditions based on
7146         HAVE_TZDB macro and test all members unconditionally.
7148 2023-02-28  Jonathan Wakely  <jwakely@redhat.com>
7150         PR libstdc++/108952
7151         * include/bits/uses_allocator_args.h
7152         (uses_allocator_construction_args): Implement LWG 3527.
7153         * testsuite/20_util/pair/astuple/get-2.cc: New test.
7154         * testsuite/20_util/scoped_allocator/108952.cc: New test.
7155         * testsuite/20_util/uses_allocator/lwg3527.cc: New test.
7157 2023-02-28  Jonathan Wakely  <jwakely@redhat.com>
7159         PR libstdc++/108846
7160         * include/bits/stl_algobase.h (__copy_move<false, false, RA>)
7161         Add __assign_one static member function.
7162         (__copy_move<true, false, RA>): Likewise.
7163         (__copy_move<IsMove, true, RA>): Do not use memmove for a single
7164         value.
7165         (__copy_move_backward<IsMove, true, RA>): Likewise.
7166         * testsuite/25_algorithms/copy/108846.cc: New test.
7167         * testsuite/25_algorithms/copy_backward/108846.cc: New test.
7168         * testsuite/25_algorithms/copy_n/108846.cc: New test.
7169         * testsuite/25_algorithms/move/108846.cc: New test.
7170         * testsuite/25_algorithms/move_backward/108846.cc: New test.
7172 2023-02-28  Jonathan Wakely  <jwakely@redhat.com>
7174         * src/c++11/codecvt.cc: Add [[likely]] and [[unlikely]]
7175         attributes.
7177 2023-02-27  Jonathan Wakely  <jwakely@redhat.com>
7179         * include/bits/basic_ios.h (basic_ios::_M_setstate): Add
7180         caveat to comment.
7181         * include/bits/basic_string.h (resize_and_overwrite): Add
7182         doxygen comment.
7184 2023-02-24  Matthias Kretz  <m.kretz@gsi.de>
7186         * include/experimental/bits/simd.h: Line breaks and indenting
7187         fixed to follow the libstdc++ standard.
7188         * include/experimental/bits/simd_builtin.h: Likewise.
7189         * include/experimental/bits/simd_fixed_size.h: Likewise.
7190         * include/experimental/bits/simd_neon.h: Likewise.
7191         * include/experimental/bits/simd_ppc.h: Likewise.
7192         * include/experimental/bits/simd_scalar.h: Likewise.
7193         * include/experimental/bits/simd_x86.h: Likewise.
7195 2023-02-24  Matthias Kretz  <m.kretz@gsi.de>
7197         PR libstdc++/108030
7198         * include/experimental/bits/simd_fixed_size.h
7199         (_SimdImplFixedSize::_S_broadcast): Replace inline with
7200         _GLIBCXX_SIMD_INTRINSIC.
7201         (_SimdImplFixedSize::_S_generate): Likewise.
7202         (_SimdImplFixedSize::_S_load): Likewise.
7203         (_SimdImplFixedSize::_S_masked_load): Likewise.
7204         (_SimdImplFixedSize::_S_store): Likewise.
7205         (_SimdImplFixedSize::_S_masked_store): Likewise.
7206         (_SimdImplFixedSize::_S_min): Likewise.
7207         (_SimdImplFixedSize::_S_max): Likewise.
7208         (_SimdImplFixedSize::_S_complement): Likewise.
7209         (_SimdImplFixedSize::_S_unary_minus): Likewise.
7210         (_SimdImplFixedSize::_S_plus): Likewise.
7211         (_SimdImplFixedSize::_S_minus): Likewise.
7212         (_SimdImplFixedSize::_S_multiplies): Likewise.
7213         (_SimdImplFixedSize::_S_divides): Likewise.
7214         (_SimdImplFixedSize::_S_modulus): Likewise.
7215         (_SimdImplFixedSize::_S_bit_and): Likewise.
7216         (_SimdImplFixedSize::_S_bit_or): Likewise.
7217         (_SimdImplFixedSize::_S_bit_xor): Likewise.
7218         (_SimdImplFixedSize::_S_bit_shift_left): Likewise.
7219         (_SimdImplFixedSize::_S_bit_shift_right): Likewise.
7220         (_SimdImplFixedSize::_S_remquo): Add inline keyword (to be
7221         explicit about not always-inline, yet).
7222         (_SimdImplFixedSize::_S_isinf): Likewise.
7223         (_SimdImplFixedSize::_S_isfinite): Likewise.
7224         (_SimdImplFixedSize::_S_isnan): Likewise.
7225         (_SimdImplFixedSize::_S_isnormal): Likewise.
7226         (_SimdImplFixedSize::_S_signbit): Likewise.
7228 2023-02-24  Matthias Kretz  <m.kretz@gsi.de>
7230         PR libstdc++/108856
7231         * include/experimental/bits/simd_builtin.h
7232         (_SimdImplBuiltin::_S_masked_unary): More efficient
7233         implementation of masked inc-/decrement for integers and floats
7234         without AVX2.
7235         * include/experimental/bits/simd_x86.h
7236         (_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract
7237         builtins for masked inc-/decrement.
7239 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
7241         * include/experimental/executor (executor): Constrain template
7242         constructors.
7244 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
7246         * include/experimental/internet (basic_endpoint): Add missing
7247         constexpr to comparison operators.
7248         * testsuite/experimental/net/internet/endpoint/cons.cc: New test.
7250 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
7252         * include/experimental/internet (network_v4::netmask()): Avoid
7253         undefined shift.
7254         (network_v4::broadcast()): Optimize and fix for targets with
7255         uint_least32_t wider than 32 bits.
7256         (network_v4::to_string(const Allocator&)): Fix for custom
7257         allocators and optimize using to_chars.
7258         (operator==(const network_v4&, const network_v4&)): Add missing
7259         constexpr.
7260         (operator==(const network_v6&, const network_v6&)): Likewise.
7261         * testsuite/experimental/net/internet/network/v4/cons.cc: New test.
7262         * testsuite/experimental/net/internet/network/v4/members.cc: New test.
7264 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
7266         * include/experimental/internet (address_4(const bytes_type&)):
7267         Use __builtin_bit_cast if available, otherwise convert to
7268         network byte order.
7269         (address_v4::to_bytes()): Likewise, but convert from network
7270         byte order.
7271         * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
7272         incorrect tests. Check for constexpr too.
7273         * testsuite/experimental/net/internet/address/v4/creation.cc:
7274         Likewise.
7275         * testsuite/experimental/net/internet/address/v4/members.cc:
7276         Check that bytes_type is a standard-layout type.
7278 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
7280         * include/experimental/internet (address_v4::to_string):
7281         Optimize.
7282         * testsuite/experimental/net/internet/address/v4/members.cc:
7283         Check more addresses.
7285 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
7287         * include/ext/aligned_buffer.h (__aligned_buffer): Add
7288         diagnostic pragmas.
7290 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
7292         * testsuite/std/format/arguments/lwg3810.cc: Move dg-options
7293         before dg-do.
7295 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
7297         * testsuite/experimental/simd/tests/reductions.cc: Introduce
7298         max_distance as the type-dependent max error.
7300 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
7302         * include/experimental/bits/simd_builtin.h (_S_set): Compare as
7303         int. The actual range of these indexes is very small.
7305 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
7307         * include/experimental/bits/simd_x86.h (_S_bit_shift_left)
7308         (_S_bit_shift_right): Declare constexpr. The implementation was
7309         already expecting constexpr evaluation.
7311 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
7313         PR libstdc++/108030
7314         * include/experimental/bits/simd_detail.h
7315         (_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for
7316         __clang__.
7318 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
7320         PR libstdc++/108030
7321         * include/experimental/bits/simd.h (__vector_broadcast):
7322         Implement via __vector_broadcast_impl instead of
7323         __call_with_n_evaluations + 2 lambdas.
7324         (__vector_broadcast_impl): New.
7326 2023-02-22  Alexandre Oliva  <oliva@adacore.com>
7328         * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex):
7329         Avoid destruction of the mutex pool.
7331 2023-02-22  Alexandre Oliva  <oliva@adacore.com>
7333         * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: xfail
7334         on vxworks.
7335         * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
7336         Likewise.
7338 2023-02-22  Alexandre Oliva  <oliva@adacore.com>
7340         * testsuite/17_intro/names.cc: Undef func on vxworks >= 7 in
7341         kernel mode.
7343 2023-02-20  Andreas Schwab  <schwab@linux-m68k.org>
7345         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
7347 2023-02-20  Matthias Kretz  <m.kretz@gsi.de>
7349         * include/experimental/bits/simd.h (__extract_part, split):
7350         Use reserved name for template parameter.
7352 2023-02-20  Andreas Schwab  <schwab@suse.de>
7354         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
7356 2023-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
7358         * doc/xml/faq.xml: Switch two links to www.open-std.org to https.
7359         * doc/html/faq.html: Regenerate.
7361 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
7363         * include/experimental/bits/simd_math.h (__hypot): Bitcasting
7364         between scalars requires the __bit_cast helper function instead
7365         of simd_bit_cast.
7367 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
7369         * include/experimental/bits/simd_x86.h
7370         (_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
7371         (_SimdImplX86::_S_less_equal): Do not call
7372         __builtin_is_constant_evaluated in constexpr-if.
7374 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
7376         * testsuite/experimental/simd/tests/bits/verify.h
7377         (verify::verify): Use %zx for size_t in format string.
7379 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
7381         * testsuite/experimental/simd/generate_makefile.sh: Generate and
7382         pre-compile pch.h, which includes all headers that do not depend
7383         on command-line macros.
7384         * testsuite/experimental/simd/tests/bits/main.h: New file.
7385         (iterate_abis, main): Moved from verify.h.
7386         * testsuite/experimental/simd/tests/bits/verify.h
7387         (iterate_abis, main): Moved to main.h.
7388         * testsuite/experimental/simd/tests/bits/conversions.h: Add
7389         include guard.
7390         (genHalfBits): Simplify.
7391         * testsuite/experimental/simd/tests/bits/make_vec.h: Add include
7392         guard.
7393         (make_alternating_mask): Moved from mask_loadstore.
7394         * testsuite/experimental/simd/tests/bits/mathreference.h: Add
7395         include guard.
7396         * testsuite/experimental/simd/tests/bits/test_values.h: Ditto.
7397         * testsuite/experimental/simd/tests/mask_loadstore.cc
7398         (make_mask, make_alternating_mask): Removed.
7399         * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
7400         * testsuite/experimental/simd/tests/operators.cc (genHalfBits):
7401         Removed.
7402         * testsuite/experimental/simd/tests/abs.cc: Only include
7403         bits/main.h.
7404         Ditto.
7405         * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
7406         * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
7407         * testsuite/experimental/simd/tests/casts.cc: Ditto.
7408         * testsuite/experimental/simd/tests/fpclassify.cc: Ditto.
7409         * testsuite/experimental/simd/tests/frexp.cc: Ditto.
7410         * testsuite/experimental/simd/tests/generator.cc: Ditto.
7411         * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
7412         * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
7413         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
7414         * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
7415         * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
7416         * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
7417         * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
7418         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
7419         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
7420         * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
7421         * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
7422         * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
7423         * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
7424         * testsuite/experimental/simd/tests/reductions.cc: Ditto.
7425         * testsuite/experimental/simd/tests/remqo.cc: Ditto.
7426         * testsuite/experimental/simd/tests/simd.cc: Ditto.
7427         * testsuite/experimental/simd/tests/sincos.cc: Ditto.
7428         * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
7429         * testsuite/experimental/simd/tests/splits.cc: Ditto.
7430         * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
7431         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
7432         * testsuite/experimental/simd/tests/where.cc: Ditto.
7434 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
7436         * testsuite/experimental/simd/README.md: Document the timeout
7437         and timeout-factor directives. Minor typo fixed.
7439 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
7441         PR libstdc++/108030
7442         * include/experimental/bits/simd_detail.h: Define
7443         _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
7444         * include/experimental/bits/simd.h: Annotate lambdas with
7445         _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
7446         * include/experimental/bits/simd_builtin.h: Ditto.
7447         * include/experimental/bits/simd_converter.h: Ditto.
7448         * include/experimental/bits/simd_fixed_size.h: Ditto.
7449         * include/experimental/bits/simd_math.h: Ditto.
7450         * include/experimental/bits/simd_neon.h: Ditto.
7451         * include/experimental/bits/simd_x86.h: Ditto.
7453 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
7455         * include/experimental/bits/simd.h
7456         (_SimdWrapper::_M_is_constprop_none_of)
7457         (_SimdWrapper::_M_is_constprop_all_of): Return false unless the
7458         computed result still satisfies __builtin_constant_p.
7460 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
7462         * testsuite/std/format/arguments/lwg3810.cc: Replace UTF-8
7463         ellipsis character.
7465 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
7467         * include/Makefile.am: Add new header.
7468         * include/Makefile.in: Regenerate.
7469         * include/experimental/synchronized_value: New file.
7470         * testsuite/experimental/synchronized_value.cc: New test.
7472 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
7474         * include/experimental/optional: Fix header name in comment.
7476 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
7478         * include/std/format (__format::_Arg_store): New class template.
7479         (basic_format_args): Remove nested type _Store and add deduction
7480         guide from _Arg_store.
7481         (basic_format_arg, make_format_args): Adjust.
7482         * testsuite/std/format/arguments/lwg3810.cc: New test.
7484 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
7486         * include/bits/stl_pair.h (pair) [C++20]: Add non-dangling
7487         constraints to constructors and add deleted overloads for the
7488         dangling cases, as per P2255R2.
7489         (pair) [!C++20 && _GLIBCXX_DEBUG]: Add static assertions to
7490         make dangling cases ill-formed.
7491         * testsuite/20_util/pair/dangling_ref.cc: New test.
7493 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
7495         * testsuite/17_intro/names_pstl.cc: Require et tbb_backend.
7497 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
7499         * include/ext/throw_allocator.h: Use reserved names for
7500         parameters.
7502 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
7504         * testsuite/17_intro/names_pstl.cc: Add space after effective
7505         target name.
7507 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
7509         * include/pstl/algorithm_fwd.h (__pattern_search_n)
7510         (__brick_unique_copy, __brick_adjacent_find)
7511         (__brick_generate_n, __pattern_generate_n): Use reserved names
7512         for parameters.
7513         * include/pstl/algorithm_impl.h (__brick_unique_copy)
7514         (__pattern_reverse, __brick_generate_n): Likewise.
7515         * include/pstl/execution_impl.h (__prefer_unsequenced_tag)
7516         (__prefer_parallel_tag): Likewise.
7517         * include/pstl/glue_algorithm_impl.h (transform): Likewise.
7518         * include/pstl/glue_numeric_defs.h (adjacent_difference):
7519         Likewise.
7520         * include/pstl/numeric_impl.h (__brick_adjacent_difference):
7521         Likewise.
7522         * include/pstl/parallel_backend_tbb.h (__merge_func): Likewise.
7523         * include/pstl/unseq_backend_simd.h (_Combiner)
7524         (__simd_min_element, __simd_minmax_element): Likewise.
7525         * testsuite/17_intro/names_pstl.cc: New test.
7527 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
7529         * include/bits/fs_ops.h (create_directory): Use reserved name
7530         for parameter.
7531         * include/bits/ranges_algo.h (__contains_subrange_fn):
7532         Likewise.
7533         * include/bits/regex_automaton.h (_State_base::_M_print):
7534         Likewise.
7535         * include/bits/regex_automaton.tcc(_State_base::_M_print):
7536         Likewise.
7537         * include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise.
7538         * include/experimental/bits/fs_ops.h (create_directory):
7539         Likewise.
7540         * include/std/mutex (timed_mutex::_M_clocklock): Likewise.
7541         (recursive_timed_mutex:_M_clocklock): Likewise.
7542         * include/std/tuple (basic_common_reference): Likewise.
7543         * libsupc++/cxxabi_init_exception.h
7544         (__cxa_init_primary_exception): Likewise.
7545         * testsuite/17_intro/names.cc: Add checks.
7547 2023-02-14  Gerald Pfeifer  <gerald@pfeifer.com>
7549         * doc/xml/manual/status_cxx2017.xml: Update an open-std.org link
7550         to www.open-std.org and https.
7551         * doc/html/manual/status.html: Regenerate.
7553 2023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>
7555         PR libstdc++/103934
7556         * include/std/atomic (atomic_flag_wait): Add.
7557         (atomic_flag_wait_explicit): Add.
7558         (atomic_flag_notify): Add.
7559         (atomic_flag_notify_explicit): Add.
7560         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc:
7561         Add test case to cover missing atomic_flag free functions.
7563 2023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>
7565         PR libstdc++/103934
7566         * include/std/atomic (atomic_flag_test): Add.
7567         (atomic_flag_test_explicit): Add.
7568         * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
7569         test case to cover missing atomic_flag free functions.
7570         * testsuite/29_atomics/atomic_flag/test/implicit.cc:
7571         Likewise.
7573 2023-02-13  Gerald Pfeifer  <gerald@pfeifer.com>
7575         * doc/xml/manual/policy_data_structures_biblio.xml: Adjust
7576         "The Component Object Model" reference.
7577         * doc/html/manual/policy_data_structures.html: Regenerate.
7579 2023-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
7581         * doc/xml/manual/containers.xml: Tweak a link to N1780
7582         (C++ standard).
7583         * doc/html/manual/associative.html: Regenerate.
7585 2023-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
7587         * doc/xml/manual/ctype.xml: Change www.unix.org to unix.org.
7588         * doc/html/manual/facets.html: Regenerate.
7590 2023-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
7592         * doc/xml/manual/policy_data_structures_biblio.xml: Update
7593         link to "Worst-case efficient priority queues".
7594         * doc/html/manual/policy_data_structures.html: Regenerate.
7596 2023-02-06  Arsen Arsenović  <arsen@aarsen.me>
7598         * doc/xml/manual/using.xml: Document newly-freestanding
7599         headers and the effect of the -ffreestanding flag.
7600         * doc/xml/manual/status_cxx2023.xml: Document P1642R11 as
7601         completed.
7602         * doc/xml/manual/configure.xml: Document that hosted installs
7603         respect __STDC_HOSTED__.
7604         * doc/xml/manual/test.xml: Document how to run tests in
7605         freestanding mode.
7606         * doc/html/*: Regenerate.
7608 2023-02-06  Jonathan Wakely  <jwakely@redhat.com>
7610         * include/bits/ranges_algo.h (__find_last_fn): Rename T to _Tp.
7611         (__find_last_if_fn): Likewise.
7613 2023-02-06  Jonathan Wakely  <jwakely@redhat.com>
7615         * include/std/type_traits: Add diagnostic pragmas around
7616         references to deprecated std::aligned_storage and
7617         std::aligned_union traits.
7618         * testsuite/20_util/aligned_storage/requirements/alias_decl.cc:
7619         Add dg-warning for et c++23.
7620         * testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc:
7621         Likewise.
7622         * testsuite/20_util/aligned_storage/value.cc: Likewise.
7623         * testsuite/20_util/aligned_union/1.cc: Likewise.
7624         * testsuite/20_util/aligned_union/requirements/alias_decl.cc:
7625         Likewise.
7627 2023-02-06  Nathaniel Shead  <nathanieloshead@gmail.com>
7629         * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
7630         * include/bits/c++config (_GLIBCXX23_DEPRECATED)
7631         (_GLIBCXX23_DEPRECATED_SUGGEST): New macros.
7632         * include/std/type_traits (aligned_storage, aligned_union)
7633         (aligned_storage_t, aligned_union_t): Deprecate for C++23.
7634         * testsuite/20_util/aligned_storage/deprecated-2b.cc: New test.
7635         * testsuite/20_util/aligned_union/deprecated-2b.cc: New test.
7637 2023-02-06  Nathaniel Shead  <nathanieloshead@gmail.com>
7639         * doc/doxygen/user.cfg.in (PREDEFINED): Update macros.
7640         * include/bits/c++config (_GLIBCXX20_DEPRECATED): Make
7641         consistent with other 'deprecated' macros.
7642         * include/std/type_traits (is_pod, is_pod_v): Use
7643         _GLIBCXX20_DEPRECATED_SUGGEST instead.
7645 2023-02-06  Arsen Arsenović  <arsen@aarsen.me>
7647         * Makefile.am [!_GLIBCXX_HOSTED]: Enable src/ subdirectory.
7648         * Makefile.in: Regenerate.
7649         * src/Makefile.am [!_GLIBCXX_HOSTED]: Omit compatibility files.
7650         There's no history to be compatible with.
7651         * src/c++11/Makefile.am [!_GLIBCXX_HOSTED]: Omit hosted-only
7652         source files from the build.
7653         * src/c++17/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
7654         * src/c++20/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
7655         * src/c++98/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
7656         * src/Makefile.in: Regenerate.
7657         * src/c++11/Makefile.in: Regenerate.
7658         * src/c++17/Makefile.in: Regenerate.
7659         * src/c++20/Makefile.in: Regenerate.
7660         * src/c++98/Makefile.in: Regenerate.
7662 2023-02-06  Jonathan Wakely  <jwakely@redhat.com>
7664         * src/Makefile.am [GLIBCXX_HOSTED] (SUBDIRS): Do not add
7665         filesystem, libbacktrace and experimental.
7666         * src/Makefile.in: Regenerate.
7668 2023-02-04  Hans-Peter Nilsson  <hp@axis.com>
7670         PR libstdc++/108672
7671         * include/pstl/unseq_backend_simd.h (__simd_or): Use __INT32_TYPE__
7672         instead of int32_t.
7674 2023-02-04  Gerald Pfeifer  <gerald@pfeifer.com>
7676         * doc/xml/manual/documentation_hacking.xml: Adjust link to pdftex.
7677         * doc/html/manual/documentation_hacking.html: Regenerate.
7679 2023-02-04  François Dumont  <fdumont@gcc.gnu.org>
7681         * include/bits/basic_string.h (operator=(basic_string&&)): Transfer move-to
7682         storage to the move-from instance when allocators are equal.
7683         * testsuite/21_strings/basic_string/allocator/char/move_assign.cc (test04):
7684         New test case.
7686 2023-02-03  Samuel Thibault  <samuel.thibault@gnu.org>
7688         * config/os/gnu-linux/os_defines.h [!__linux__]
7689         (_GLIBCXX_NATIVE_THREAD_ID, _GLIBCXX_GTHREAD_USE_WEAK): Do not define.
7691 2023-02-03  Patrick Palka  <ppalka@redhat.com>
7693         * include/bits/ranges_algo.h (__find_last_fn, find_last):
7694         Define.
7695         (__find_last_if_fn, find_last_if): Define.
7696         (__find_last_if_not_fn, find_last_if_not): Define.
7697         * testsuite/25_algorithms/find_last/1.cc: New test.
7698         * testsuite/25_algorithms/find_last_if/1.cc: New test.
7699         * testsuite/25_algorithms/find_last_if_not/1.cc: New test.
7701 2023-02-03  Patrick Palka  <ppalka@redhat.com>
7703         * include/bits/ranges_algo.h (out_value_result): Define.
7704         (iota_result): Define.
7705         (__iota_fn, iota): Define.
7706         * testsuite/25_algorithms/iota/1.cc: New test.
7708 2023-02-03  Patrick Palka  <ppalka@redhat.com>
7710         * include/bits/ranges_algo.h (__contains_fn, contains): Define.
7711         (__contains_subrange_fn, contains_subrange): Define.
7712         * testsuite/25_algorithms/contains/1.cc: New test.
7713         * testsuite/25_algorithms/contains_subrange/1.cc: New test.
7715 2023-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
7717         * doc/xml/manual/abi.xml: Tweak link to ABIcheck project.
7718         * doc/html/manual/abi.html: Regenerate.
7720 2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
7722         * src/filesystem/ops-common.h [AVR] (__unsupported): Always use
7723         errc::function_not_supported instead of errc::not_supported.
7725 2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
7727         * include/std/sstream  (basic_stringbuf::view): Define for old
7728         std::string ABI.
7729         (basic_istringstream::view, basic_0stringstream::view)
7730         (basic_stringstream::view): Likewise.
7731         * testsuite/27_io/basic_istringstream/view/char/1.cc: Remove
7732         { dg-require-effective-target cxx11_abi }.
7733         * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
7734         Likewise.
7735         * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
7736         * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
7737         Likewise.
7738         * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
7739         * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
7740         * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
7741         * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
7742         Likewise.
7744 2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
7746         PR libstdc++/108636
7747         * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export shared_ptr
7748         conversion operators for directory iterator comparisons with
7749         std::default_sentinel_t.
7750         * include/bits/fs_path.h (path::path(string_view, _Type))
7751         (path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
7752         definitions to ...
7753         * src/c++17/fs_path.cc: ... here.
7754         * testsuite/27_io/filesystem/path/108636.cc: New test.
7756 2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
7758         * include/std/variant (variant::operator=): Implement resolution
7759         of LWG 3585.
7760         * testsuite/20_util/variant/lwg3585.cc: New test.
7762 2023-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
7764         * doc/xml/manual/using_exceptions.xml: Update a www.open-std.org
7765         link to https.
7766         * doc/html/manual/using_exceptions.html: Regenerate.
7768 2023-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
7770         * doc/xml/manual/debug.xml: Fix link to online GDB manual.
7771         * doc/html/manual/debug.html: Regenerate.
7773 2023-02-01  Jonathan Wakely  <jwakely@redhat.com>
7775         * src/c++11/random.cc (random_device::_M_fini): Do not try to
7776         close the file handle if the target doesn't support the
7777         /dev/random and /dev/urandom files.
7779 2023-02-01  Jonathan Wakely  <jwakely@redhat.com>
7781         * config/os/generic/error_constants.h (errc::value_too_large)
7782         [__AVR__]: Define.
7783         * src/c++11/system_error.cc
7784         (system_category::default_error_condition) [__AVR__]: Only match
7785         recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
7786         * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
7787         for ENOENT etc. in switch.
7788         (fs::remove_all) [__AVR__]: Likewise.
7789         * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
7790         close etc.
7792 2023-02-01  Jonathan Wakely  <jwakely@redhat.com>
7794         * acinclude.m4 (GLIBCXX_ZONEINFO_DIR) [avr-*-*, msp430-*-*]: Set
7795         embed_zoneinfo=no
7796         * configure: Regenerate.
7798 2023-02-01  Hans-Peter Nilsson  <hp@axis.com>
7800         PR testsuite/108632
7801         * testsuite/std/time/hh_mm_ss/1.cc (size): Add empty
7802         struct at end of S0.
7804 2023-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
7806         * doc/xml/manual/shared_ptr.xml: Move links from both
7807         http://open-std.org and http://www.open-std.org to
7808         https://www.open-std.org.
7809         * doc/html/manual/memory.html: Regenerate.
7811 2023-01-28  Gerald Pfeifer  <gerald@pfeifer.com>
7813         * doc/xml/manual/appendix_contributing.xml: Adjust link to
7814         ISO C++ standard at ANSI.
7815         Move link to www.open-std.org to https.
7816         * doc/html/manual/appendix_contributing.html: Regenerate.
7818 2023-01-28  Gerald Pfeifer  <gerald@pfeifer.com>
7820         * doc/xml/manual/documentation_hacking.xml: Move sourceforge.net
7821         links to https.
7822         * doc/html/manual/documentation_hacking.html: Regenerate.
7824 2023-01-28  Gerald Pfeifer  <gerald@pfeifer.com>
7826         * doc/xml/manual/abi.xml: Update www.open-std.org link to https.
7827         * doc/html/manual/abi.html: Regenerate.
7829 2023-01-27  Jakub Jelinek  <jakub@redhat.com>
7831         PR libstdc++/108568
7832         * testsuite/17_intro/names.cc (__unused): For linux or GNU hurd
7833         include features.h if present and then check __GLIBC__ and
7834         __GLIBC_MINOR__ macros for glibc prior to 2.19, instead of testing
7835         __GLIBC_PREREQ which isn't defined yet.
7837 2023-01-27  Jonathan Wakely  <jwakely@redhat.com>
7839         * src/c++20/tzdb.cc (tzdata_stream): Use constant instead of
7840         string literal.
7842 2023-01-27  Jonathan Wakely  <jwakely@redhat.com>
7844         PR libstdc++/108554
7845         * testsuite/23_containers/map/modifiers/108554.cc: Use dg-bogus.
7847 2023-01-26  Jonathan Wakely  <jwakely@redhat.com>
7849         * src/c++20/tzdb.cc (operator>>(istream&, ZoneInfo&)): Allow
7850         rules named "+" for compatibility with older tzdata.zi files.
7852 2023-01-26  Jonathan Wakely  <jwakely@redhat.com>
7854         PR libstdc++/108554
7855         * include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add
7856         nonnull attribute.
7857         (_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull
7858         attributes.
7859         * testsuite/23_containers/map/modifiers/108554.cc: New test.
7861 2023-01-26  Jonathan Wakely  <jwakely@redhat.com>
7863         PR libstdc++/108530
7864         * src/c++20/tzdb.cc (current_zone): Look for TIMEZONE or ZONE in
7865         /etc/sysconfig/clock, not DEFAULT_TIMEZONE.
7867 2023-01-26  Gerald Pfeifer  <gerald@pfeifer.com>
7869         * doc/xml/manual/intro.xml: Update links to www.open-std.org to
7870         use https.
7871         * doc/html/manual/bugs.html: Regenerate.
7873 2023-01-24  Jonathan Wakely  <jwakely@redhat.com>
7875         PR libstdc++/108530
7876         * src/c++20/tzdb.cc (current_zone): Look for DEFAULT_TIMEZONE in
7877         /etc/sysconfig/clock.
7879 2023-01-24  Jonathan Wakely  <jwakely@redhat.com>
7881         PR libstdc++/102301
7882         * include/bits/ranges_base.h: Include <bits/stl_iterator.h> for
7883         std::make_reverse_iterator.
7884         * include/std/tuple: Include <bits/ranges_util.h> for subrange.
7885         (make_from_tuple): Add static assertion from P2255 to diagnose
7886         dangling references.
7887         * testsuite/20_util/tuple/make_from_tuple/dangling_ref.cc: New test.
7888         * testsuite/20_util/tuple/make_from_tuple/tuple_like.cc: New test.
7890 2023-01-23  François Dumont  <fdumont@gcc.gnu.org>
7892         * include/debug/safe_iterator.h (_Safe_iterator<>::_Unchecked): New.
7893         (_Safe_iterator(const _Safe_iterator&, _Unchecked)): New.
7894         (_Safe_iterator::operator++(int)): Use latter.
7895         (_Safe_iterator::operator--(int)): Likewise.
7896         (_Safe_iterator(_Iterator, const _Safe_sequence_base*)): Remove !_M_insular()
7897         check.
7898         * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_Unchecked):
7899         New.
7900         (_Safe_local_iterator(const _Safe_local_iterator&, _Unchecked)): New.
7901         (_Safe_local_iterator::operator++(int)): Use latter.
7902         * src/c++11/debug.cc (_S_debug_messages): Add as comment the _Debug_msg_id
7903         entry associated to the array entry.
7905 2023-01-18  Jonathan Wakely  <jwakely@redhat.com>
7907         * include/bits/fs_path.h (u8path): Add deprecated attribute.
7908         * testsuite/27_io/filesystem/path/construct/90281.cc: Add
7909         -Wno-deprecated-declarations for C++20 and later.
7910         * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
7911         Likewise.
7912         * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
7913         * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
7914         * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: New test.
7916 2023-01-18  Jonathan Wakely  <jwakely@redhat.com>
7918         * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
7919         Always call _M_fini and _M_getentropy.
7921 2023-01-18  Gerald Pfeifer  <gerald@pfeifer.com>
7923         * doc/xml/manual/policy_data_structures_biblio.xml: Adjust links
7924         to www.open-std.org to use https.
7925         (COM: Component Model Object Technologies): Rename from...
7926         (The Component Object Model): ...to.
7927         * doc/html/manual/policy_data_structures.html: Regenerate.
7929 2023-01-18  Dimitrij Mijoski  <dmjpp@hotmail.com>
7931         * testsuite/22_locale/codecvt/codecvt_unicode.cc: Simplify.
7932         * testsuite/22_locale/codecvt/codecvt_unicode.h: Simplify.
7933         * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: Simplify.
7935 2023-01-17  Jonathan Wakely  <jwakely@redhat.com>
7937         * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Check $target_os instead
7938         of $host. Fix check for file being present during native build.
7939         * configure: Regenerate.
7941 2023-01-17  Martin Liska  <mliska@suse.cz>
7943         * src/libbacktrace/Makefile.in: Regenerate.
7945 2023-01-16  Jonathan Wakely  <jwakely@redhat.com>
7947         * src/c++20/tzdb.cc (_GLIBCXX_USE_CXX11_ABI): Define to 1.
7949 2023-01-16  Jonathan Wakely  <jwakely@redhat.com>
7951         PR libstdc++/108413
7952         * include/c_compatibility/stdatomic.h: Change copyright line to
7953         be consistent with other headers contributed under DCO terms.
7954         * include/std/expected: Add full stop to copyright line.
7955         * src/c++20/tzdb.cc: Likewise.
7957 2023-01-15  Gerald Pfeifer  <gerald@pfeifer.com>
7959         * doc/xml/manual/status_cxx2014.xml: Switch www.open-std.org to
7960         https.
7961         * doc/xml/manual/status_cxx2017.xml: Ditto.
7962         * doc/xml/manual/status_cxx2020.xml: Ditto.
7963         * doc/xml/manual/status_cxx2023.xml: Ditto.
7964         * doc/html/manual/status.html: Regenerate.
7966 2023-01-15  Jonathan Wakely  <jwakely@redhat.com>
7968         * testsuite/std/time/tzdb_list/1.cc: Remove dg-xfail-run-if
7969         and fail gracefully if defining the weak symbol doesn't work.
7971 2023-01-15  François Dumont  <fdumont@gcc.gnu.org>
7973         PR libstdc++/108288
7974         * include/debug/safe_iterator.h (_Safe_iterator<>::operator++(int)): Extend deadlock
7975         fix to other iterator category.
7976         (_Safe_iterator<>::operator--(int)): Likewise.
7977         * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::operator++(int)):
7978         Fix deadlock.
7979         * testsuite/util/debug/unordered_checks.h (invalid_local_iterator_pre_increment): New.
7980         (invalid_local_iterator_post_increment): New.
7981         * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_post_increment_neg.cc:
7982         New test.
7983         * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_pre_increment_neg.cc:
7984         New test.
7986 2023-01-15  Jonathan Wakely  <jwakely@redhat.com>
7988         * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
7989         dg-options.
7991 2023-01-15  Jonathan Wakely  <jwakely@redhat.com>
7993         * testsuite/std/time/clock/utc/io.cc: Use ctype to widen char.
7995 2023-01-14  Björn Schäpers  <bjoern@hazardy.de>
7997         * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Add check for
7998         windows.h. Add pecoff as FORMAT_FILE.
7999         * config.h.in: Regenerate.
8000         * configure: Regenerate.
8001         * src/libbacktrace/Makefile.am: Regenerate.
8002         * src/libbacktrace/Makefile.in: Add pecoff.c as FORMAT_FILE.
8004 2023-01-14  Björn Schäpers  <bjoern@hazardy.de>
8006         * include/std/stacktrace (stacktrace_entry::_S_demangle): Use
8007         raw __name if __cxa_demangle could not demangle it.
8009 2023-01-14  Jonathan Wakely  <jwakely@redhat.com>
8011         PR libstdc++/108409
8012         * src/c++20/tzdb.cc (current_zone()) [_AIX]: Use TZ environment
8013         variable.
8015 2023-01-14  Jonathan Wakely  <jwakely@redhat.com>
8017         * src/c++20/tzdb.cc (TZDB_DISABLED): Disable all code for
8018         loading tzdb.
8019         * testsuite/std/time/tzdb/leap_seconds.cc: Require tzdb
8020         effective target.
8021         * testsuite/std/time/tzdb_list/1.cc: Likewise.
8023 2023-01-14  Jonathan Wakely  <jwakely@redhat.com>
8025         * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Replace the
8026         --with-libstdcxx-zoneinfo-dir configure option with
8027         --with-libstdcxx-zoneinfo with yes/no/static choices as well as
8028         a directory.
8029         * config.h.in: Regenerate.
8030         * configure: Regenerate.
8031         * doc/xml/manual/configure.xml: Document configure option.
8032         * doc/html/manual/configure.html: Regenerate.
8033         * src/c++20/Makefile.am: Generate tzdata.zi.h header.
8034         * src/c++20/Makefile.in: Regenerate.
8035         * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Return a
8036         null pointer if no directory is configured.
8037         (zoneinfo_dir): Replace with ...
8038         (zoneinfo_file): New function.
8039         (tzdata_stream): New istream class.
8040         (remote_version, reload_tzdb): Use tzdata_stream.
8041         * testsuite/lib/libstdc++.exp (check_effective_target_tzdb):
8042         Check new _GLIBCXX_STATIC_TZDATA macro and ignore presence of
8043         tzdata.zi file in default location.
8044         * src/c++20/tzdata.zi: New file.
8046 2023-01-14  Jonathan Wakely  <jwakely@redhat.com>
8048         * include/bits/chrono_io.h (operator<<): Fix syntax errors.
8049         * testsuite/std/time/month_day/io.cc: New test.
8050         * testsuite/std/time/month_day_last/io.cc: New test.
8051         * testsuite/std/time/month_weekday/io.cc: New test.
8052         * testsuite/std/time/month_weekday_last/io.cc: New test.
8053         * testsuite/std/time/weekday_indexed/io.cc: New test.
8054         * testsuite/std/time/weekday_last/io.cc: New test.
8055         * testsuite/std/time/year_month/io.cc: New test.
8056         * testsuite/std/time/year_month_day_last/io.cc: New test.
8057         * testsuite/std/time/year_month_weekday/io.cc: New test.
8058         * testsuite/std/time/year_month_weekday_last/io.cc: New test.
8060 2023-01-14  François Dumont  <fdumont@gcc.gnu.org>
8062         * include/std/format [_GLIBCXX_INLINE_VERSION](to_chars): Adapt __asm symbol
8063         specifications.
8064         * config/abi/pre/gnu-versioned-namespace.ver: Add to_chars/from_chars symbols
8065         export.
8067 2023-01-13  Jonathan Wakely  <jwakely@redhat.com>
8069         * include/bits/std_mutex.h: Include <errno.h>.
8071 2023-01-13  Arsen Arsenović  <arsen@aarsen.me>
8073         * testsuite/20_util/to_chars/version.cc: Mark hosted-only.
8074         * testsuite/20_util/uses_allocator/lwg3677.cc: Ditto.
8075         * testsuite/20_util/weak_ptr/cons/self_move.cc: Ditto.
8076         * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Replace usage of
8077         std::make_unique with a freestanding-compatible wrapper around
8078         unique_ptr.
8079         * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
8080         Don't test for presence of __cpp_lib_string_contains on !HOSTED.
8081         * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
8082         Ditto.
8083         * testsuite/std/ranges/version_c++23.cc: Don't test for presence
8084         of __cpp_lib_ranges in !HOSTED.
8086 2023-01-13  Arsen Arsenović  <arsen@aarsen.me>
8088         * include/Makefile.am: Install bits/char_traits.h,
8089         std/string_view
8090         * include/Makefile.in: Regenerate.
8091         * include/bits/char_traits.h: Gate hosted-only, wchar-only and
8092         mbstate-only bits behind appropriate #ifs.
8093         * include/std/string_view: Gate <iostream> functionality behind
8094         HOSTED.
8095         * include/std/version: Enable __cpp_lib_constexpr_string_view
8096         and __cpp_lib_starts_ends_with in !HOSTED.
8097         * include/std/ranges: Re-enable __is_basic_string_view on
8098         freestanding, include <string_view> directly.
8099         * include/precompiled/stdc++.h: Include <string_view> when
8100         !HOSTED too.
8101         * testsuite/20_util/function_objects/searchers.cc: Skip testing
8102         boyer_moore searchers on freestanding
8103         * testsuite/21_strings/basic_string_view/capacity/1.cc: Guard
8104         <string>-related tests behind __STDC_HOSTED__.
8105         * testsuite/21_strings/basic_string_view/cons/char/1.cc: Ditto.
8106         * testsuite/21_strings/basic_string_view/cons/char/2.cc: Remove
8107         unused <stdexcept> include.
8108         * testsuite/21_strings/basic_string_view/cons/char/3.cc: Remove
8109         unused <vector> include.
8110         * testsuite/21_strings/basic_string_view/cons/char/range.cc:
8111         Guard <string> related testing behind __STDC_HOSTED__.
8112         * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
8113         Guard <stdexcept> related tests behind __STDC_HOSTED__.
8114         * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
8115         Ditto.
8116         * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
8117         Guard <stdexcept> tests behind __STDC_HOSTED__.
8118         * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
8119         Enable test on freestanding, guard <stdexcept> bits behind
8120         __STDC_HOSTED__.
8121         * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
8122         Guard <stdexcept> bits behind __STDC_HOSTED__.
8123         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
8124         Ditto.
8126 2023-01-13  Dimitrij Mijoski  <dmjpp@hotmail.com>
8128         PR libstdc++/86419
8129         * src/c++11/codecvt.cc (read_utf8_code_point): Correctly detect
8130         errors in incomplete multibyte sequences.
8131         (utf16_in): Remove surrogates parameter. Fix conditions for
8132         returning partial.
8133         (utf16_out): Fix condition for returning partial.
8134         (ucs2_in): Do not pass surrogates argument to utf16_in.
8135         * testsuite/22_locale/codecvt/codecvt_unicode.cc: New test.
8136         * testsuite/22_locale/codecvt/codecvt_unicode.h: New header for
8137         tests.
8138         * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: New
8139         test.
8141 2023-01-13  Jonathan Wakely  <jwakely@redhat.com>
8143         PR libstdc++/108331
8144         * config/io/c_io_stdio.h (__c_lock): Define as a typedef for
8145         __GTHREAD_LEGACY_MUTEX_T if defined.
8147 2023-01-13  Jonathan Wakely  <jwakely@redhat.com>
8149         PR libstdc++/108327
8150         * config/os/gnu-linux/ldbl-extra.ver (GLIBCXX_LDBL_3.4.31):
8151         Export __try_use_facet specializations for facets in namespace
8152         __gnu_cxx_ldbl128.
8153         * config/os/gnu-linux/ldbl-ieee128-extra.ver
8154         (GLIBCXX_IEEE128_3.4.31): Likewise for facets in namespace
8155         __gnu_cxx_ieee128.
8156         * testsuite/util/testsuite_abi.cc: Add to lists of known and
8157         latest versions.
8159 2023-01-13  Jonathan Wakely  <jwakely@redhat.com>
8161         * include/bits/std_mutex.h: Remove <system_error> include.
8162         * include/std/condition_variable: Add <bits/error_constants.h>
8163         include.
8164         * include/std/mutex: Likewise.
8165         * include/std/shared_mutex: Likewise.
8167 2023-01-12  Jonathan Wakely  <jwakely@redhat.com>
8169         PR libstdc++/77691
8170         * include/experimental/memory_resource
8171         (_GLIBCXX_MAX_ALIGN_MATCHES_MALLOC): Define.
8172         (do_allocate, do_deallocate): Check it.
8173         * testsuite/experimental/memory_resource/new_delete_resource.cc:
8174         Relax expected behaviour for 64-bit hppa-hp-hpux11.11.
8176 2023-01-12  Jonathan Wakely  <jwakely@redhat.com>
8178         * doc/xml/manual/abi.xml: Add latest library versions.
8179         * doc/html/manual/abi.html: Regenerate.
8181 2023-01-12  François Dumont  <fdumont@gcc.gnu.org>
8183         PR libstdc++/107189
8184         * include/bits/stl_tree.h (_Rb_tree<>::_M_insert_range_equal): Remove
8185         unused _Alloc_node instance.
8187 2023-01-12  Jonathan Wakely  <jwakely@redhat.com>
8189         * include/bits/atomic_wait.h (__detail::__platform_wait_t):
8190         Define as unsigned long if always lock-free, and unsigned int
8191         otherwise.
8193 2023-01-10  Jonathan Wakely  <jwakely@redhat.com>
8195         * src/c++20/tzdb.cc (tzdb_list::_S_init_tzdb): Use __try and
8196         __catch macros for exception handling.
8198 2023-01-10  Jonathan Wakely  <jwakely@redhat.com>
8200         PR libstdc++/108221
8201         * include/bits/stl_algobase.h (__lg): Replace six overloads with
8202         a single function template for all integer types.
8203         * include/bits/stl_algo.h (__merge_adaptive_resize): Cast
8204         arithmetic results back to _Distance.
8206 2023-01-10  Jonathan Wakely  <jwakely@redhat.com>
8208         PR libstdc++/108221
8209         * include/std/span (span::span()): Un-simplify constraint to
8210         work for size_t of lesser rank than int.
8212 2023-01-07  LIU Hao  <lh_mouse@126.com>
8214         PR middle-end/108300
8215         * src/c++11/system_error.cc: Define `WIN32_LEAN_AND_MEAN` before
8216         <windows.h>.
8217         * src/c++11/thread.cc: Likewise.
8218         * src/c++17/fs_ops.cc: Likewise.
8219         * src/filesystem/ops.cc: Likewise.
8221 2023-01-06  Jonathan Wakely  <jwakely@redhat.com>
8223         PR libstdc++/108228
8224         * src/c++20/tzdb.cc (zoneinfo_dir): Add diagnostic pragma.
8226 2023-01-06  Jonathan Wakely  <jwakely@redhat.com>
8228         PR libstdc++/108235
8229         * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): New class
8230         template and partial specialization for synchronizing access to
8231         time_zone::_Impl::infos.
8232         (time_zone::_M_get_sys_info, reload_tzdb): Adjust uses of
8233         rules_counter.
8235 2023-01-06  Patrick Palka  <ppalka@redhat.com>
8237         PR libstdc++/108260
8238         * include/bits/utility.h (__cpp_lib_ranges_zip): Define for C++23.
8239         * include/std/ranges (__cpp_lib_ranges_zip): Likewise.
8240         (__cpp_lib_ranges_chunk): Likewise.
8241         (__cpp_lib_ranges_slide): Likewise.
8242         (__cpp_lib_ranges_chunk_by): Likewise.
8243         (__cpp_lib_ranges_join_with): Likewise.
8244         (__cpp_lib_ranges_repeat): Likewise.
8245         (__cpp_lib_ranges_stride): Likewise.
8246         (__cpp_lib_ranges_cartesian_product): Likewise.
8247         (__cpp_lib_ranges_as_rvalue): Likewise.
8248         * include/std/version: Ditto.
8249         * testsuite/20_util/tuple/p2321r2.cc: Verify value of
8250         feature-test macro.
8251         * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
8252         * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
8253         * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
8254         * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
8255         * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
8256         * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
8257         * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
8258         * testsuite/std/ranges/repeat/1.cc: Likewise.
8259         * testsuite/std/ranges/zip/1.cc: Likewise.
8260         * testsuite/std/ranges/version_c++23.cc: New test.
8262 2023-01-06  Jonathan Wakely  <jwakely@redhat.com>
8264         PR libstdc++/108214
8265         * include/std/bitset (operator>>): Use alloca in the right
8266         scope, not in a constructor.
8267         * testsuite/20_util/bitset/io/input.cc: Check case from PR.
8269 2023-01-06  Jonathan Wakely  <jwakely@redhat.com>
8271         PR libstdc++/108221
8272         * include/std/format (basic_format_arg) [!__cpp_lib_to_chars]:
8273         Disable visiting floating-point types.
8275 2023-01-06  Jonathan Wakely  <jwakely@redhat.com>
8277         PR libstdc++/108288
8278         * include/debug/safe_iterator.h (_Safe_iterator::operator++(int))
8279         (_Safe_iterator::operator--(int)): Do not hold lock around
8280         construction of return value.
8282 2023-01-05  John David Anglin  <danglin@gcc.gnu.org>
8284         * config/cpu/hppa/atomicity.h (_PA_LDCW_INSN): Define.
8285         (__exchange_and_add): Use _PA_LDCW_INSN.  Use ordered store for
8286         lock release.  Revise loop.
8287         (__atomic_add): Likewise.
8289 2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
8291         PR libstdc++/108212
8292         * python/libstdcxx/v6/printers.py (_utc_timezone): New global
8293         variable.
8294         (StdChronoTimePointPrinter::to_string): Use it.
8296 2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
8298         PR libstdc++/108290
8299         * include/std/functional (_Bind_front): Add no_unique_address
8300         attribute to data members.
8301         * testsuite/20_util/function_objects/bind_front/107784.cc: Check
8302         size of call wrappers with empty types for targets and bound
8303         arguments.
8305 2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
8307         PR libstdc++/108211
8308         * src/c++20/tzdb.cc (chrono::current_zone()): Check for zone
8309         using only last component of the name.
8311 2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
8313         PR libstdc++/108228
8314         PR libstdc++/108235
8315         * config/abi/pre/gnu.ver: Move zoneinfo_dir_override export to
8316         the latest symbol version.
8317         * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define to 0 if
8318         atomic<_Node*> is not always lock free.
8319         (USE_ATOMIC_LIST_HEAD): New macro.
8320         [__hpux__] (__gnu_cxx::zoneinfo_dir_override()): Provide
8321         definition of weak symbol.
8322         (tzdb_list::_Node::_S_head): Rename to _S_head_cache.
8323         (tzdb_list::_Node::_S_list_head): New function for accessing
8324         list head efficiently.
8325         (tzdb_list::_Node::_S_cache_list_head): New function for
8326         updating _S_list_head.
8328 2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
8330         PR libstdc++/108265
8331         * include/std/chrono (hh_mm_ss): Do not use chrono::abs if
8332         duration rep is unsigned.
8333         * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep.
8335 2023-01-04  Iain Sandoe  <iain@sandoe.co.uk>
8337         PR libstdc++/108228
8338         * config/abi/pre/gnu.ver (GLIBCXX_3.4):
8339         Add __gnu_cxx::zoneinfo_dir_override().
8341 2023-01-04  Jonathan Wakely  <jwakely@redhat.com>
8343         PR libstdc++/108258
8344         * include/std/array (__array_traits<T, 0>::operator T*()): Add
8345         constexpr.
8346         * testsuite/23_containers/array/element_access/constexpr_c++17.cc: Check
8347         std::array<T, 0>::data().
8350 Copyright (C) 2023 Free Software Foundation, Inc.
8352 Copying and distribution of this file, with or without modification,
8353 are permitted in any medium without royalty provided the copyright
8354 notice and this notice are preserved.