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