Daily bump.
[official-gcc.git] / libstdc++-v3 / ChangeLog
blobfa00651462fa11ac6d3ca1290c2a806e9f481ee4
1 2023-11-06  Ian Lance Taylor  <iant@golang.org>
3         PR libbacktrace/111315
4         PR libbacktrace/112263
5         * acinclude.m4: Set -D_GNU_SOURCE in BACKTRACE_CPPFLAGS and when
6         grepping link.h for dl_iterate_phdr.
7         * configure: Regenerate.
9 2023-11-06  Jonathan Wakely  <jwakely@redhat.com>
11         * include/std/expected (expected::and_then, expected::or_else):
12         Add string literals to static assertions.
13         * include/std/optional (optional::and_then, optional::or_else):
14         Likewise.
16 2023-11-04  Feng Jisen  <J1senn@outlook.com>
18         * include/bits/utility.h (_Nth_type): Remove redundant partial
19         specialization.
21 2023-11-04  Jonathan Wakely  <jwakely@redhat.com>
23         PR libstdc++/110133
24         * include/std/system_error (system_error::system_error): Group
25         arguments so that concatenation can reuse rvalue's capacity.
26         * src/c++11/system_error.cc (strerror_string): New function.
27         [_GLIBCXX_HAVE_STRERROR_R] (use_strerror_result): New functions.
28         (generic_error_category::message): Use strerror_string.
29         (system_error_category::message): Likewise.
31 2023-11-04  Jonathan Wakely  <jwakely@redhat.com>
33         * doc/xml/manual/appendix_contributing.xml: Replace example that
34         uses a BADNAME.
35         * doc/html/manual/source_code_style.html: Regenerate.
37 2023-11-02  Jonathan Wakely  <jwakely@redhat.com>
39         PR libstdc++/112314
40         * include/std/string_view (string_view::remove_suffix): Add
41         debug assertion.
42         * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc:
43         New test.
44         * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc:
45         New test.
47 2023-11-02  Jonathan Wakely  <jwakely@redhat.com>
49         * acinclude.m4 (GLIBCXX_ENABLE_C99): Fix snprintf checks.
50         * configure: Regenerate.
52 2023-10-30  François Dumont  <fdumont@gcc.gnu.org>
54         * config/abi/pre/gnu-versioned-namespace.ver: Add comment on recently
55         added emul TLS symbols.
57 2023-10-30  François Dumont  <fdumont@gcc.gnu.org>
59         * src/experimental/contract.cc
60         [_GLIBCXX_INLINE_VERSION](handle_contract_violation): Rework comment.
61         Remove weak attribute.
63 2023-10-29  François Dumont  <fdumont@gcc.gnu.org>
65         * config/abi/pre/gnu-versioned-namespace.ver: Add missing emul TLS
66         symbols.
68 2023-10-29  François Dumont  <fdumont@gcc.gnu.org>
70         * src/experimental/contract.cc
71         [_GLIBCXX_INLINE_VERSION](handle_contract_violation): Provide symbol
72         without version namespace decoration for gcc.
74 2023-10-26  Jonathan Wakely  <jwakely@redhat.com>
76         PR libstdc++/112089
77         * include/std/shared_mutex (shared_lock::unlock): Change errc
78         constant to operation_not_permitted.
79         * testsuite/30_threads/shared_lock/locking/112089.cc: New test.
81 2023-10-26  Jonathan Wakely  <jwakely@redhat.com>
83         * testsuite/20_util/duration/io.cc: Double timeout using
84         dg-timeout-factor.
85         * testsuite/std/time/day/io.cc: Likewise.
86         * testsuite/std/time/format.cc: Likewise.
87         * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
88         * testsuite/std/time/month/io.cc: Likewise.
89         * testsuite/std/time/month_day/io.cc: Likewise.
90         * testsuite/std/time/month_day_last/io.cc: Likewise.
91         * testsuite/std/time/month_weekday/io.cc: Likewise.
92         * testsuite/std/time/month_weekday_last/io.cc: Likewise.
93         * testsuite/std/time/weekday/io.cc: Likewise.
94         * testsuite/std/time/weekday_indexed/io.cc: Likewise.
95         * testsuite/std/time/weekday_last/io.cc: Likewise.
96         * testsuite/std/time/year/io.cc: Likewise.
97         * testsuite/std/time/year_month/io.cc: Likewise.
98         * testsuite/std/time/year_month_day/io.cc: Likewise.
99         * testsuite/std/time/year_month_day_last/io.cc: Likewise.
100         * testsuite/std/time/year_month_weekday/io.cc: Likewise.
101         * testsuite/std/time/year_month_weekday_last/io.cc: Likewise.
102         * testsuite/std/time/zoned_time/io.cc: Likewise.
104 2023-10-25  Jonathan Wakely  <jwakely@redhat.com>
106         PR libstdc++/111936
107         * src/libbacktrace/Makefile.am: Add -prefer-pic to libtool
108         compile commands.
109         * src/libbacktrace/Makefile.in: Regenerate.
111 2023-10-24  Paul M. Bendixen  <paulbendixen@gmail.com>
113         * include/Makefile.am: Move cstdarg, cstdalign and cstdbool to
114         freestanding.
115         * include/Makefile.in: Regenerate.
117 2023-10-22  Iain Sandoe  <iain@sandoe.co.uk>
119         * configure: Regenerate.
120         * configure.ac: Handle Darwin rpaths.
121         * src/Makefile.am: Handle Darwin rpaths.
122         * src/Makefile.in: Regenerate.
124 2023-10-21  Jonathan Wakely  <jwakely@redhat.com>
126         * include/bits/basic_string.h (_M_init_local_buf()): New
127         function.
128         (_M_use_local_data()): Use _M_init_local_buf.
129         (basic_string(), basic_string(const Alloc&))
130         (basic_string(basic_string&&))
131         (basic_string(basic_string&&, const Alloc&)): Use
132         _M_init_local_buf instead of _M_use_local_data().
133         * include/bits/basic_string.tcc (swap(basic_string&))
134         (_M_construct(InIter, InIter, input_iterator_tag))
135         (_M_construct(InIter, InIter, forward_iterator_tag))
136         (_M_construct(size_type, CharT), reserve()): Likewise.
138 2023-10-21  Benjamin Brock  <brock@cs.berkeley.edu>
140         * include/std/ranges (zip_view, adjacent_view): Implement
141         workaround for LLVM-61763.
143 2023-10-21  Dimitrij Mijoski  <dmjpp@hotmail.com>
145         * testsuite/22_locale/codecvt/codecvt_unicode.h: Test length()
147 2023-10-21  Jonathan Wakely  <jwakely@redhat.com>
149         * include/bits/fs_dir.h (operator==(default_sentinel_t)): Fix
150         indentation.
152 2023-10-20  Marek Polacek  <polacek@redhat.com>
154         PR testsuite/111883
155         * include/std/charconv (from_chars): Add explicit casts.
157 2023-10-19  François Dumont  <fdumont@gcc.gnu.org>
159         * include/bits/hashtable_policy.h
160         (_Hash_code_base::_M_hash_code(const _Hash&, const _Hash_node_value<>&)): Remove.
161         (_Hash_code_base::_M_hash_code<_H2>(const _H2&, const _Hash_node_value<>&)): Remove.
162         * include/bits/hashtable.h
163         (_M_src_hash_code<_H2>(const _H2&, const key_type&, const __node_value_type&)): New.
164         (_M_merge_unique<>, _M_merge_multi<>): Use latter.
165         * testsuite/23_containers/unordered_map/modifiers/merge.cc
166         (test04, test05, test06): New test cases.
168 2023-10-13  Jakub Jelinek  <jakub@redhat.com>
170         * testsuite/tr1/8_c_compatibility/cstdio/functions.cc (test01):
171         Initialize stream to va_arg(ap, FILE*) rather than 0.
172         * testsuite/tr1/8_c_compatibility/cwchar/functions.cc (test01):
173         Likewise.
175 2023-10-13  Hans-Peter Nilsson  <hp@axis.com>
177         * testsuite/29_atomics/atomic/compare_exchange_padding.cc,
178         testsuite/29_atomics/atomic_flag/clear/1.cc,
179         testsuite/29_atomics/atomic_flag/cons/value_init.cc,
180         testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc,
181         testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc,
182         testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc,
183         testsuite/29_atomics/atomic_ref/generic.cc,
184         testsuite/29_atomics/atomic_ref/integral.cc,
185         testsuite/29_atomics/atomic_ref/pointer.cc: Replace
186         dg-require-thread-fence with dg-require-atomic-cmpxchg-word.
188 2023-10-13  Hans-Peter Nilsson  <hp@axis.com>
190         * testsuite/lib/dg-options.exp (dg-require-atomic-cmpxchg-word):
191         New proc.
192         * testsuite/lib/libstdc++.exp (check_v3_target_atomic_cmpxchg_word):
193         Ditto.
195 2023-10-05  François Dumont  <fdumont@gcc.gnu.org>
197         * config/abi/pre/gnu-versioned-namespace.ver: Add missing symbols
198         for _Float{16,32,64,128,32x,64x,128x}.
200 2023-10-04  Tom Tromey  <tromey@adacore.com>
202         * python/libstdcxx/v6/printers.py
203         (StdExpAnyPrinter.__init__): Qualify call to
204         _string_types.
206 2023-10-04  Tom Tromey  <tromey@adacore.com>
208         * python/libstdcxx/v6/printers.py: Assume that
209         _versioned_namespace is non-None.
210         * python/libstdcxx/v6/xmethods.py (is_specialization_of):
211         Assume that _versioned_namespace is non-None.
213 2023-10-04  Tom Tromey  <tromey@adacore.com>
215         * python/libstdcxx/v6/xmethods.py (_versioned_namespace):
216         Define.
218 2023-09-29  Dimitrij Mijoski  <dmjpp@hotmail.com>
220         PR libstdc++/108976
221         * src/c++11/codecvt.cc (read_utf8_code_point): Fix handing of
222         surrogates in UTF-8.
223         (ucs4_out): Fix handling of surrogates in UCS-4 -> UTF-8.
224         (ucs4_in): Fix handling of range with odd number of bytes.
225         (ucs4_out): Fix handling of surrogates in UCS-4 -> UTF-16.
226         (ucs2_out): Fix handling of surrogates in UCS-2 -> UTF-16.
227         (ucs2_in): Fix handling of range with odd number of bytes.
228         (__codecvt_utf16_base<char16_t>::do_in): Likewise.
229         (__codecvt_utf16_base<char32_t>::do_in): Likewise.
230         (__codecvt_utf16_base<wchar_t>::do_in): Likewise.
231         * testsuite/22_locale/codecvt/codecvt_unicode.cc: Renames, add
232         tests for codecvt_utf16<char16_t> and codecvt_utf16<char32_t>.
233         * testsuite/22_locale/codecvt/codecvt_unicode.h: Refactor UTF-8
234         testing functions for char8_t, add more test cases for errors,
235         add testing functions for codecvt_utf16.
236         * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc:
237         Renames, add tests for codecvt_utf16<whchar_t>.
238         * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc (test06):
239         Fix test.
240         * testsuite/22_locale/codecvt/codecvt_unicode_char8_t.cc: New
241         test.
243 2023-09-29  Nathaniel Shead  <nathanieloshead@gmail.com>
245         * include/bits/basic_string.h: (basic_string(basic_string&&)):
246         Activate _M_local_buf when needed.
247         (basic_string(basic_string&&, const _Alloc&)): Likewise.
248         * include/bits/basic_string.tcc: (basic_string::swap): Likewise.
249         * include/std/variant: (__detail::__variant::__construct_n): New.
250         (__detail::__variant::__emplace): Use __construct_n.
252 2023-09-28  Tom Tromey  <tromey@adacore.com>
254         * python/libstdcxx/v6/printers.py (Printer.add_version)
255         (add_one_template_type_printer)
256         (FilteringTypePrinter.add_one_type_printer): Use Python
257         "not in" operator.
259 2023-09-28  Tom Tromey  <tromey@adacore.com>
261         * python/libstdcxx/v6/printers.py (std_ratio_t_tuple):
262         Remove.
264 2023-09-28  Tom Tromey  <tromey@adacore.com>
266         * python/libstdcxx/v6/printers.py
267         (StdExpOptionalPrinter.__init__, lookup_node_type):
268         Remove unused variables.
270 2023-09-28  Tom Tromey  <tromey@adacore.com>
272         * python/libstdcxx/v6/printers.py: Don't import 'os'.
273         * python/libstdcxx/v6/__init__.py: Don't import 'gdb'.
275 2023-09-28  Tom Tromey  <tromey@adacore.com>
277         * python/libstdcxx/v6/printers.py: Use gdb.ValuePrinter
278         everywhere.  Rename members to start with "_".
280 2023-09-28  Tom Tromey  <tromey@adacore.com>
282         * testsuite/lib/gdb-test.exp (gdb-test): Enable Python
283         stack traces from gdb.
285 2023-09-28  Jonathan Wakely  <jwakely@redhat.com>
287         * python/libstdcxx/v6/xmethods.py (is_specialization_of): Define
288         new function.
289         (ArrayMethodsMatcher, DequeMethodsMatcher)
290         (ForwardListMethodsMatcher, ListMethodsMatcher)
291         (VectorMethodsMatcher, AssociativeContainerMethodsMatcher)
292         (UniquePtrGetWorker, UniquePtrMethodsMatcher)
293         (SharedPtrSubscriptWorker, SharedPtrMethodsMatcher): Use
294         is_specialization_of instead of re.match.
296 2023-09-28  Jonathan Wakely  <jwakely@redhat.com>
298         * python/libstdcxx/v6/printers.py: Break long lines. Use raw
299         strings for regular expressions. Add whitespace around
300         operators.
301         (is_member_of_namespace): Use isinstance to check type.
302         (is_specialization_of): Likewise. Adjust template_name
303         for versioned namespace instead of duplicating the re.match
304         call.
305         (StdExpAnyPrinter._string_types): New static method.
306         (StdExpAnyPrinter.to_string): Use _string_types.
308 2023-09-28  Jonathan Wakely  <jwakely@redhat.com>
310         * python/libstdcxx/v6/printers.py: Format docstrings according
311         to PEP 257.
312         * python/libstdcxx/v6/xmethods.py: Likewise.
314 2023-09-28  Tim Song  <t.canens.cpp@gmail.com>
316         PR libstdc++/111050
317         * include/bits/hashtable_policy.h
318         (_Hash_node_value_base<>::_M_valptr(), _Hash_node_value_base<>::_M_v())
319         Add [[__gnu__::__always_inline__]].
321 2023-09-27  Jonathan Wakely  <jwakely@redhat.com>
323         * python/libstdcxx/v6/printers.py (StdChronoTimeZoneRulePrinter):
324         Fix incorrect number of replacement fields.
326 2023-09-26  Hans-Peter Nilsson  <hp@axis.com>
328         * testsuite/29_atomics/atomic_flag/cons/value_init.cc: Add
329         dg-require-thread-fence.
331 2023-09-25  Patrick Palka  <ppalka@redhat.com>
333         * include/std/charconv (__detail::__integer_to_chars_result_type):
334         Remove.
335         (__detail::__to_chars_16): Use to_chars_result as return type.
336         (__detail::__to_chars_10): Likewise.
337         (__detail::__to_chars_8): Likewise.
338         (__detail::__to_chars_2): Likewise.
339         (__detail::__to_chars_i): Likewise.
340         (__detail::__integer_from_chars_result_type): Inline the
341         constraint into ...
342         (from_chars): ... here.  Use __is_standard_integer in the
343         constraint.  Encode constraint as a defaulted non-type template
344         parameter instead of within the return type.
346 2023-09-25  John David Anglin  <danglin@gcc.gnu.org>
348         * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
350 2023-09-25  Jonathan Wakely  <jwakely@redhat.com>
352         PR libstdc++/111511
353         PR c++/111512
354         * include/std/array (to_array): Cast memcpy arguments to void*.
355         * testsuite/23_containers/array/creation/111512.cc: New test.
357 2023-09-25  Jonathan Wakely  <jwakely@redhat.com>
359         * include/bits/move.h (forward_list): Define for C++23.
360         * include/bits/version.def (forward_like): Define.
361         * include/bits/version.h: Regenerate.
362         * include/std/utility (__glibcxx_want_forward_like): Define.
363         * testsuite/20_util/forward_like/1.cc: New test.
364         * testsuite/20_util/forward_like/2_neg.cc: New test.
365         * testsuite/20_util/forward_like/version.cc: New test.
367 2023-09-19  Marek Polacek  <polacek@redhat.com>
369         * testsuite/20_util/allocator/105975.cc: Add dg-error.
371 2023-09-18  Patrick Palka  <ppalka@redhat.com>
373         PR c++/63198
374         PR c++/18474
375         * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
376         Make data member seed_seq::called mutable.
377         * testsuite/26_numerics/random/independent_bits_engine/cons/seed_seq2.cc:
378         Likewise.
379         * testsuite/26_numerics/random/linear_congruential_engine/cons/seed_seq2.cc:
380         Likewise.
381         * testsuite/26_numerics/random/mersenne_twister_engine/cons/seed_seq2.cc:
382         Likewise.
383         * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
384         Likewise.
385         * testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed_seq2.cc:
386         Likewise.
387         * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed_seq2.cc:
388         Likewise.
390 2023-09-18  Jonathan Wakely  <jwakely@redhat.com>
392         * doc/xml/manual/status_cxx2020.xml: Tweak P1466R3 status.
393         * doc/html/manual/status.html: Regenerate.
395 2023-09-18  Jonathan Wakely  <jwakely@redhat.com>
397         * doc/xml/manual/configure.xml: Use conventional option name.
398         * doc/xml/manual/status_cxx2020.xml: Update.
399         * doc/xml/manual/status_cxx2023.xml: Update.
400         * doc/html/*: Regenerate.
402 2023-09-18  Jonathan Wakely  <jwakely@redhat.com>
404         * doc/xml/manual/intro.xml: Clarify that building libstdc++
405         separately from GCC is not supported.
406         * doc/xml/manual/prerequisites.xml: Note msgfmt prerequisite for
407         testing.
408         * doc/html/manual/setup.html: Regenerate.
410 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
412         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Do not
413         restrict to pthreads targets.
414         * testsuite/30_threads/jthread/3.cc: Likewise.
415         * testsuite/30_threads/semaphore/100806.cc: Likewise.
416         * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
417         * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
418         * testsuite/30_threads/semaphore/try_acquire_posix.cc: Likewise.
420 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
422         * testsuite/18_support/coroutines/95917.cc: Remove dg-options
423         -std=gnu++2a.
424         * testsuite/18_support/coroutines/hash.cc: Likewise.
425         * testsuite/18_support/coroutines/lwg3460.cc: Likewise.
426         * testsuite/18_support/destroying_delete.cc: Likewise.
427         * testsuite/18_support/source_location/1.cc: Likewise.
428         * testsuite/18_support/source_location/consteval.cc: Likewise.
429         * testsuite/18_support/source_location/version.cc: Likewise.
430         * testsuite/19_diagnostics/error_category/operators/three_way.cc:
431         Likewise.
432         * testsuite/19_diagnostics/error_code/operators/three_way.cc:
433         Likewise.
434         * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
435         Likewise.
436         * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
437         * testsuite/26_numerics/adjacent_difference/lwg2055.cc:
438         Likewise.
439         * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
440         * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
441         * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
442         * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
443         * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
444         * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
445         Likewise.
446         * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
447         Likewise.
448         * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
449         Likewise.
450         * testsuite/28_regex/sub_match/compare_c++20.cc: Likewise.
451         * testsuite/experimental/filesystem/iterators/106201.cc:
452         Likewise.
453         * testsuite/experimental/scopeguard/exit.cc: Likewise.
454         * testsuite/experimental/scopeguard/uniqueres.cc: Likewise.
456 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
458         * testsuite/30_threads/barrier/1.cc: Remove dg-options
459         -std=gnu++20.
460         * testsuite/30_threads/barrier/2.cc: Likewise.
461         * testsuite/30_threads/barrier/arrive.cc: Likewise.
462         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
463         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
464         * testsuite/30_threads/barrier/completion.cc: Likewise.
465         * testsuite/30_threads/condition_variable/members/clock_neg.cc:
466         Likewise.
467         * testsuite/30_threads/condition_variable_any/members/clock_neg.cc:
468         Likewise.
469         * testsuite/30_threads/condition_variable_any/stop_token/1.cc:
470         Likewise.
471         * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
472         Likewise.
473         * testsuite/30_threads/future/members/clock_neg.cc: Likewise.
474         * testsuite/30_threads/headers/stop_token/synopsis.cc: Likewise.
475         * testsuite/30_threads/headers/thread/types_std_c++20.cc:
476         Likewise.
477         * testsuite/30_threads/jthread/1.cc: Likewise.
478         * testsuite/30_threads/jthread/100612.cc: Likewise.
479         * testsuite/30_threads/jthread/95989.cc: Likewise.
480         * testsuite/30_threads/jthread/jthread.cc: Likewise.
481         * testsuite/30_threads/jthread/version.cc: Likewise.
482         * testsuite/30_threads/latch/1.cc: Likewise.
483         * testsuite/30_threads/latch/2.cc: Likewise.
484         * testsuite/30_threads/latch/3.cc: Likewise.
485         * testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc:
486         Likewise.
487         * testsuite/30_threads/semaphore/1.cc: Likewise.
488         * testsuite/30_threads/semaphore/2.cc: Likewise.
489         * testsuite/30_threads/semaphore/least_max_value_neg.cc:
490         Likewise.
491         * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
492         * testsuite/30_threads/shared_future/members/clock_neg.cc:
493         Likewise.
494         * testsuite/30_threads/shared_lock/locking/clock_neg.cc:
495         Likewise.
496         * testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc:
497         Likewise.
498         * testsuite/30_threads/stop_token/1.cc: Likewise.
499         * testsuite/30_threads/stop_token/2.cc: Likewise.
500         * testsuite/30_threads/stop_token/stop_callback.cc: Likewise.
501         * testsuite/30_threads/stop_token/stop_callback/deadlock.cc:
502         Likewise.
503         * testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc:
504         Likewise.
505         * testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc:
506         Likewise.
507         * testsuite/30_threads/stop_token/stop_callback/invoke.cc:
508         Likewise.
509         * testsuite/30_threads/stop_token/stop_source.cc: Likewise.
510         * testsuite/30_threads/stop_token/stop_source/assign.cc:
511         Likewise.
512         * testsuite/30_threads/stop_token/stop_token.cc: Likewise.
513         * testsuite/30_threads/stop_token/stop_token/stop_possible.cc:
514         Likewise.
515         * testsuite/30_threads/thread/id/operators_c++20.cc: Likewise.
516         * testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc:
517         Likewise.
518         * testsuite/30_threads/unique_lock/locking/clock_neg.cc:
519         Likewise.
521 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
523         * testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc:
524         Remove dg-options -std=gnu++2a.
525         * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
526         Likewise.
527         * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc:
528         Likewise.
529         * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
530         Likewise.
531         * testsuite/27_io/basic_istringstream/cons/char/1.cc: Likewise.
532         * testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc:
533         Likewise.
534         * testsuite/27_io/basic_istringstream/str/char/2.cc: Likewise.
535         * testsuite/27_io/basic_istringstream/str/wchar_t/2.cc:
536         Likewise.
537         * testsuite/27_io/basic_istringstream/view/char/1.cc: Likewise.
538         * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
539         Likewise.
540         * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
541         * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc:
542         Likewise.
543         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc:
544         Likewise.
545         * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise.
546         * testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc:
547         Likewise.
548         * testsuite/27_io/basic_ostringstream/str/char/3.cc: Likewise.
549         * testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc:
550         Likewise.
551         * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
552         * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
553         Likewise.
554         * testsuite/27_io/basic_stringbuf/cons/char/2.cc: Likewise.
555         * testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc: Likewise.
556         * testsuite/27_io/basic_stringbuf/str/char/4.cc: Likewise.
557         * testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc: Likewise.
558         * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
559         * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
560         * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise.
561         * testsuite/27_io/basic_stringstream/cons/char/97719.cc:
562         Likewise.
563         * testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc:
564         Likewise.
565         * testsuite/27_io/basic_stringstream/str/char/5.cc: Likewise.
566         * testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc:
567         Likewise.
568         * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
569         * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
570         Likewise.
571         * testsuite/27_io/basic_syncbuf/1.cc: Likewise.
572         * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
573         * testsuite/27_io/basic_syncbuf/basic_ops/1.cc: Likewise.
574         * testsuite/27_io/basic_syncbuf/requirements/types.cc: Likewise.
575         * testsuite/27_io/basic_syncbuf/sync_ops/1.cc: Likewise.
576         * testsuite/27_io/basic_syncstream/1.cc: Likewise.
577         * testsuite/27_io/basic_syncstream/2.cc: Likewise.
578         * testsuite/27_io/basic_syncstream/basic_ops/1.cc: Likewise.
579         * testsuite/27_io/basic_syncstream/requirements/types.cc:
580         Likewise.
581         * testsuite/27_io/filesystem/iterators/106201.cc: Likewise.
582         * testsuite/27_io/filesystem/iterators/lwg3719.cc: Likewise.
583         * testsuite/27_io/filesystem/path/factory/u8path-depr.cc:
584         Likewise.
585         * testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc:
586         Likewise.
588 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
590         * testsuite/26_numerics/accumulate/constexpr.cc: Remove
591         dg-options -std=gnu++2a.
592         * testsuite/26_numerics/accumulate/lwg2055.cc: Likewise.
593         * testsuite/26_numerics/adjacent_difference/constexpr.cc:
594         Likewise.
595         * testsuite/26_numerics/bit/bit.cast/105027.cc: Likewise.
596         * testsuite/26_numerics/bit/bit.cast/bit_cast.cc: Likewise.
597         * testsuite/26_numerics/bit/bit.cast/version.cc: Likewise.
598         * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
599         * testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc:
600         Likewise.
601         * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
602         * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
603         * testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc: Likewise.
604         * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
605         * testsuite/26_numerics/bit/bit.rotate/rotr.cc: Likewise.
606         * testsuite/26_numerics/bit/header-2.cc: Likewise.
607         * testsuite/26_numerics/bit/header.cc: Likewise.
608         * testsuite/26_numerics/complex/1.cc: Likewise.
609         * testsuite/26_numerics/complex/2.cc: Likewise.
610         * testsuite/26_numerics/complex/comparison_operators/more_constexpr.cc:
611         Likewise.
612         * testsuite/26_numerics/complex/operators/more_constexpr.cc:
613         Likewise.
614         * testsuite/26_numerics/complex/requirements/more_constexpr.cc:
615         Likewise.
616         * testsuite/26_numerics/complex/value_operations/more_constexpr.cc:
617         Likewise.
618         * testsuite/26_numerics/endian/1.cc: Likewise.
619         * testsuite/26_numerics/endian/2.cc: Likewise.
620         * testsuite/26_numerics/endian/3.cc: Likewise.
621         * testsuite/26_numerics/exclusive_scan/constexpr.cc: Likewise.
622         * testsuite/26_numerics/inclusive_scan/constexpr.cc: Likewise.
623         * testsuite/26_numerics/inner_product/constexpr.cc: Likewise.
624         * testsuite/26_numerics/inner_product/lwg2055.cc: Likewise.
625         * testsuite/26_numerics/iota/constexpr.cc: Likewise.
626         * testsuite/26_numerics/lerp/1.cc: Likewise.
627         * testsuite/26_numerics/lerp/constexpr.cc: Likewise.
628         * testsuite/26_numerics/lerp/version.cc: Likewise.
629         * testsuite/26_numerics/midpoint/floating.cc: Likewise.
630         * testsuite/26_numerics/midpoint/integral.cc: Likewise.
631         * testsuite/26_numerics/midpoint/pointer.cc: Likewise.
632         * testsuite/26_numerics/midpoint/pointer_neg.cc: Likewise.
633         * testsuite/26_numerics/midpoint/version.cc: Likewise.
634         * testsuite/26_numerics/numbers/1.cc: Likewise.
635         * testsuite/26_numerics/numbers/2.cc: Likewise.
636         * testsuite/26_numerics/numbers/3.cc: Likewise.
637         * testsuite/26_numerics/numbers/float128.cc: Likewise.
638         * testsuite/26_numerics/numbers/nonfloat_neg.cc: Likewise.
639         * testsuite/26_numerics/partial_sum/constexpr.cc: Likewise.
640         * testsuite/26_numerics/partial_sum/lwg2055.cc: Likewise.
641         * testsuite/26_numerics/random/concept.cc: Likewise.
642         * testsuite/26_numerics/reduce/constexpr.cc: Likewise.
643         * testsuite/26_numerics/slice/compare.cc: Likewise.
644         * testsuite/26_numerics/transform_exclusive_scan/constexpr.cc:
645         Likewise.
646         * testsuite/26_numerics/transform_inclusive_scan/constexpr.cc:
647         Likewise.
648         * testsuite/26_numerics/transform_reduce/constexpr.cc: Likewise.
650 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
652         * testsuite/24_iterators/aliases.cc: Remove dg-options
653         -std=gnu++2a.
654         * testsuite/24_iterators/associated_types/incrementable.traits.cc:
655         Likewise.
656         * testsuite/24_iterators/associated_types/iterator.traits.cc:
657         Likewise.
658         * testsuite/24_iterators/associated_types/readable.traits.cc:
659         Likewise.
660         * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
661         Likewise.
662         * testsuite/24_iterators/back_insert_iterator/pr93884.cc:
663         Likewise.
664         * testsuite/24_iterators/bidirectional/concept.cc: Likewise.
665         * testsuite/24_iterators/common_iterator/1.cc: Likewise.
666         * testsuite/24_iterators/common_iterator/100823.cc: Likewise.
667         * testsuite/24_iterators/common_iterator/2.cc: Likewise.
668         * testsuite/24_iterators/contiguous/concept.cc: Likewise.
669         * testsuite/24_iterators/contiguous/tag.cc: Likewise.
670         * testsuite/24_iterators/counted_iterator/1.cc: Likewise.
671         * testsuite/24_iterators/counted_iterator/lwg3389.cc: Likewise.
672         * testsuite/24_iterators/counted_iterator/lwg3643.cc: Likewise.
673         * testsuite/24_iterators/customization_points/92894.cc:
674         Likewise.
675         * testsuite/24_iterators/customization_points/iter_move.cc:
676         Likewise.
677         * testsuite/24_iterators/customization_points/iter_swap.cc:
678         Likewise.
679         * testsuite/24_iterators/customization_points/lwg3420.cc:
680         Likewise.
681         * testsuite/24_iterators/forward/concept.cc: Likewise.
682         * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
683         Likewise.
684         * testsuite/24_iterators/front_insert_iterator/pr93884.cc:
685         Likewise.
686         * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
687         Likewise.
688         * testsuite/24_iterators/indirect_callable/92894.cc: Likewise.
689         * testsuite/24_iterators/indirect_callable/projected-adl.cc:
690         Likewise.
691         * testsuite/24_iterators/indirect_callable/projected.cc:
692         Likewise.
693         * testsuite/24_iterators/input/concept.cc: Likewise.
694         * testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise.
695         * testsuite/24_iterators/istream_iterator/cons/sentinel.cc:
696         Likewise.
697         * testsuite/24_iterators/istream_iterator/sentinel.cc: Likewise.
698         * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc:
699         Likewise.
700         * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
701         Likewise.
702         * testsuite/24_iterators/move_iterator/cust.cc: Likewise.
703         * testsuite/24_iterators/move_iterator/dr3435.cc: Likewise.
704         * testsuite/24_iterators/move_iterator/input_iterator.cc:
705         Likewise.
706         * testsuite/24_iterators/move_iterator/lwg3390.cc: Likewise.
707         * testsuite/24_iterators/move_iterator/lwg3391.cc: Likewise.
708         * testsuite/24_iterators/move_iterator/move_only.cc: Likewise.
709         * testsuite/24_iterators/move_iterator/p2520r0.cc: Likewise.
710         * testsuite/24_iterators/move_iterator/rel_ops_c++20.cc:
711         Likewise.
712         * testsuite/24_iterators/move_iterator/sentinel.cc: Likewise.
713         * testsuite/24_iterators/normal_iterator/cmp_c++20.cc: Likewise.
714         * testsuite/24_iterators/output/concept.cc: Likewise.
715         * testsuite/24_iterators/random_access/concept.cc: Likewise.
716         * testsuite/24_iterators/range_access/range_access_cpp20.cc:
717         Likewise.
718         * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
719         Likewise.
720         * testsuite/24_iterators/range_operations/100768.cc: Likewise.
721         * testsuite/24_iterators/range_operations/advance.cc: Likewise.
722         * testsuite/24_iterators/range_operations/advance_overflow.cc:
723         Likewise.
724         * testsuite/24_iterators/range_operations/distance.cc: Likewise.
725         * testsuite/24_iterators/range_operations/lwg3392.cc: Likewise.
726         * testsuite/24_iterators/range_operations/next.cc: Likewise.
727         * testsuite/24_iterators/range_operations/prev.cc: Likewise.
728         * testsuite/24_iterators/reverse_iterator/cust.cc: Likewise.
729         * testsuite/24_iterators/reverse_iterator/dr3435.cc: Likewise.
730         * testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc:
731         Likewise.
733 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
735         * testsuite/23_containers/array/comparison_operators/96851.cc:
736         Remove dg-options -std=gnu++2a.
737         * testsuite/23_containers/array/comparison_operators/constexpr.cc:
738         Likewise.
739         * testsuite/23_containers/array/creation/1.cc: Likewise.
740         * testsuite/23_containers/array/creation/110167.cc: Likewise.
741         * testsuite/23_containers/array/creation/2.cc: Likewise.
742         * testsuite/23_containers/array/creation/3_neg.cc: Likewise.
743         * testsuite/23_containers/array/requirements/constexpr_fill.cc:
744         Likewise.
745         * testsuite/23_containers/array/requirements/constexpr_swap.cc:
746         Likewise.
747         * testsuite/23_containers/deque/48101-3_neg.cc: Likewise.
748         * testsuite/23_containers/deque/erasure.cc: Likewise.
749         * testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc:
750         Likewise.
751         * testsuite/23_containers/deque/operators/cmp_c++20.cc:
752         Likewise.
753         * testsuite/23_containers/forward_list/48101-3_neg.cc: Likewise.
754         * testsuite/23_containers/forward_list/cmp_c++20.cc: Likewise.
755         * testsuite/23_containers/forward_list/erasure.cc: Likewise.
756         * testsuite/23_containers/forward_list/modifiers/92878_92947.cc:
757         Likewise.
758         * testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc:
759         Likewise.
760         * testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc:
761         Likewise.
762         * testsuite/23_containers/list/48101-3_neg.cc: Likewise.
763         * testsuite/23_containers/list/cmp_c++20.cc: Likewise.
764         * testsuite/23_containers/list/erasure.cc: Likewise.
765         * testsuite/23_containers/list/modifiers/emplace/92878_92947.cc:
766         Likewise.
767         * testsuite/23_containers/list/operations/remove_cxx20_return.cc:
768         Likewise.
769         * testsuite/23_containers/list/operations/unique_cxx20_return.cc:
770         Likewise.
771         * testsuite/23_containers/map/48101-3_neg.cc: Likewise.
772         * testsuite/23_containers/map/erasure.cc: Likewise.
773         * testsuite/23_containers/map/modifiers/emplace/92878_92947.cc:
774         Likewise.
775         * testsuite/23_containers/map/operations/contains.cc: Likewise.
776         * testsuite/23_containers/map/operators/cmp_c++20.cc: Likewise.
777         * testsuite/23_containers/multimap/48101-3_neg.cc: Likewise.
778         * testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc:
779         Likewise.
780         * testsuite/23_containers/multimap/operations/contains.cc:
781         Likewise.
782         * testsuite/23_containers/multimap/operators/cmp_c++20.cc:
783         Likewise.
784         * testsuite/23_containers/multiset/48101-3_neg.cc: Likewise.
785         * testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc:
786         Likewise.
787         * testsuite/23_containers/multiset/operations/contains.cc:
788         Likewise.
789         * testsuite/23_containers/multiset/operators/cmp_c++20.cc:
790         Likewise.
791         * testsuite/23_containers/priority_queue/92878_92947.cc:
792         Likewise.
793         * testsuite/23_containers/queue/92878_92947.cc: Likewise.
794         * testsuite/23_containers/queue/cmp_c++20.cc: Likewise.
795         * testsuite/23_containers/set/48101-3_neg.cc: Likewise.
796         * testsuite/23_containers/set/erasure.cc: Likewise.
797         * testsuite/23_containers/set/modifiers/emplace/92878_92947.cc:
798         Likewise.
799         * testsuite/23_containers/set/operations/contains.cc: Likewise.
800         * testsuite/23_containers/set/operators/cmp_c++20.cc: Likewise.
801         * testsuite/23_containers/span/1.cc: Likewise.
802         * testsuite/23_containers/span/101411.cc: Likewise.
803         * testsuite/23_containers/span/2.cc: Likewise.
804         * testsuite/23_containers/span/deduction.cc: Likewise.
805         * testsuite/23_containers/span/explicit.cc: Likewise.
806         * testsuite/23_containers/span/layout_compat.cc: Likewise.
807         * testsuite/23_containers/span/lwg3255.cc: Likewise.
808         * testsuite/23_containers/span/nothrow_cons.cc: Likewise.
809         * testsuite/23_containers/span/trivially_copyable.cc: Likewise.
810         * testsuite/23_containers/stack/92878_92947.cc: Likewise.
811         * testsuite/23_containers/stack/cmp_c++20.cc: Likewise.
812         * testsuite/23_containers/unordered_map/48101-3_neg.cc:
813         Likewise.
814         * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
815         * testsuite/23_containers/unordered_map/modifiers/92878_92947.cc:
816         Likewise.
817         * testsuite/23_containers/unordered_map/operations/1.cc:
818         Likewise.
819         * testsuite/23_containers/unordered_map/operations/contains.cc:
820         Likewise.
821         * testsuite/23_containers/unordered_multimap/48101-3_neg.cc:
822         Likewise.
823         * testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc:
824         Likewise.
825         * testsuite/23_containers/unordered_multimap/operations/1.cc:
826         Likewise.
827         * testsuite/23_containers/unordered_multimap/operations/contains.cc:
828         Likewise.
829         * testsuite/23_containers/unordered_multiset/48101-3_neg.cc:
830         Likewise.
831         * testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc:
832         Likewise.
833         * testsuite/23_containers/unordered_multiset/operations/1.cc:
834         Likewise.
835         * testsuite/23_containers/unordered_multiset/operations/contains.cc:
836         Likewise.
837         * testsuite/23_containers/unordered_set/48101-3_neg.cc:
838         Likewise.
839         * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
840         * testsuite/23_containers/unordered_set/modifiers/92878_92947.cc:
841         Likewise.
842         * testsuite/23_containers/unordered_set/operations/1.cc:
843         Likewise.
844         * testsuite/23_containers/unordered_set/operations/contains.cc:
845         Likewise.
846         * testsuite/23_containers/vector/48101-3_neg.cc: Likewise.
847         * testsuite/23_containers/vector/bool/capacity/constexpr.cc:
848         Likewise.
849         * testsuite/23_containers/vector/bool/cmp_c++20.cc: Likewise.
850         * testsuite/23_containers/vector/bool/cons/constexpr.cc:
851         Likewise.
852         * testsuite/23_containers/vector/bool/element_access/constexpr.cc:
853         Likewise.
854         * testsuite/23_containers/vector/bool/iterator_c++20.cc:
855         Likewise.
856         * testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc:
857         Likewise.
858         * testsuite/23_containers/vector/bool/modifiers/constexpr.cc:
859         Likewise.
860         * testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc:
861         Likewise.
862         * testsuite/23_containers/vector/capacity/constexpr.cc:
863         Likewise.
864         * testsuite/23_containers/vector/cmp_c++20.cc: Likewise.
865         * testsuite/23_containers/vector/cons/constexpr.cc: Likewise.
866         * testsuite/23_containers/vector/data_access/constexpr.cc:
867         Likewise.
868         * testsuite/23_containers/vector/element_access/constexpr.cc:
869         Likewise.
870         * testsuite/23_containers/vector/erasure.cc: Likewise.
871         * testsuite/23_containers/vector/modifiers/assign/constexpr.cc:
872         Likewise.
873         * testsuite/23_containers/vector/modifiers/constexpr.cc:
874         Likewise.
875         * testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc:
876         Likewise.
877         * testsuite/23_containers/vector/modifiers/swap/constexpr.cc:
878         Likewise.
879         * testsuite/23_containers/vector/requirements/version.cc:
880         Likewise.
882 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
884         * testsuite/21_strings/basic_string/cons/char/105995.cc: Remove
885         dg-options -std=gnu++20.
886         * testsuite/21_strings/basic_string/cons/char/constexpr.cc:
887         Likewise.
888         * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc:
889         Likewise.
890         * testsuite/21_strings/basic_string/erasure.cc: Likewise.
891         * testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
892         Likewise.
893         * testsuite/21_strings/basic_string/literals/constexpr.cc:
894         Likewise.
895         * testsuite/21_strings/basic_string/modifiers/constexpr.cc:
896         Likewise.
897         * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
898         Likewise.
899         * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
900         Likewise.
901         * testsuite/21_strings/basic_string/operations/ends_with/char.cc:
902         Likewise.
903         * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc:
904         Likewise.
905         * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
906         Likewise.
907         * testsuite/21_strings/basic_string/operations/starts_with/char.cc:
908         Likewise.
909         * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc:
910         Likewise.
911         * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
912         Likewise.
913         * testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc:
914         Likewise.
915         * testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc:
916         Likewise.
917         * testsuite/21_strings/basic_string_view/cons/char/range.cc:
918         Likewise.
919         * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
920         Likewise.
921         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc:
922         Likewise.
923         * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
924         Likewise.
925         * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc:
926         Likewise.
927         * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
928         Likewise.
929         * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
930         Likewise.
931         * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc:
932         Likewise.
933         * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
934         Likewise.
935         * testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc:
936         Likewise.
937         * testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc:
938         Likewise.
939         * testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc:
940         Likewise.
941         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
942         Likewise.
944 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
946         * testsuite/20_util/allocator/105975.cc: Remove dg-options
947         -std=gnu++2a.
948         * testsuite/20_util/allocator/rebind_c++20.cc: Likewise.
949         * testsuite/20_util/allocator/requirements/constexpr.cc:
950         Likewise.
951         * testsuite/20_util/allocator/requirements/typedefs_c++20.cc:
952         Likewise.
953         * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
954         * testsuite/20_util/allocator_traits/header.cc: Likewise.
955         * testsuite/20_util/allocator_traits/members/92878_92947.cc:
956         Likewise.
957         * testsuite/20_util/any/assign/92878_92947.cc: Likewise.
958         * testsuite/20_util/any/cons/92878_92947.cc: Likewise.
959         * testsuite/20_util/assume_aligned/1.cc: Likewise.
960         * testsuite/20_util/assume_aligned/2_neg.cc: Likewise.
961         * testsuite/20_util/assume_aligned/3.cc: Likewise.
962         * testsuite/20_util/assume_aligned/97132.cc: Likewise.
963         * testsuite/20_util/bind/constexpr.cc: Likewise.
964         * testsuite/20_util/bitset/operations/96303.cc: Likewise.
965         * testsuite/20_util/common_reference/100894.cc: Likewise.
966         * testsuite/20_util/common_reference/requirements/alias_decl.cc:
967         Likewise.
968         * testsuite/20_util/common_reference/requirements/explicit_instantiation.cc:
969         Likewise.
970         * testsuite/20_util/common_reference/requirements/typedefs.cc:
971         Likewise.
972         * testsuite/20_util/duration/comparison_operators/three_way.cc:
973         Likewise.
974         * testsuite/20_util/exchange/constexpr.cc: Likewise.
975         * testsuite/20_util/exchange/noexcept.cc: Likewise.
976         * testsuite/20_util/from_chars/1_c++20_neg.cc: Likewise.
977         * testsuite/20_util/from_chars/compare.cc: Likewise.
978         * testsuite/20_util/function_objects/bind_front/1.cc: Likewise.
979         * testsuite/20_util/function_objects/bind_front/107784.cc:
980         Likewise.
981         * testsuite/20_util/function_objects/bind_front/111327.cc:
982         Likewise.
983         * testsuite/20_util/function_objects/bind_front/2.cc: Likewise.
984         * testsuite/20_util/function_objects/bind_front/97101.cc:
985         Likewise.
986         * testsuite/20_util/function_objects/bind_front/constexpr.cc:
987         Likewise.
988         * testsuite/20_util/function_objects/constexpr_searcher.cc:
989         Likewise.
990         * testsuite/20_util/function_objects/identity/1.cc: Likewise.
991         * testsuite/20_util/function_objects/invoke/constexpr.cc:
992         Likewise.
993         * testsuite/20_util/function_objects/mem_fn/constexpr.cc:
994         Likewise.
995         * testsuite/20_util/function_objects/not_fn/constexpr.cc:
996         Likewise.
997         * testsuite/20_util/integer_comparisons/1.cc: Likewise.
998         * testsuite/20_util/integer_comparisons/2.cc: Likewise.
999         * testsuite/20_util/integer_comparisons/equal.cc: Likewise.
1000         * testsuite/20_util/integer_comparisons/equal_neg.cc: Likewise.
1001         * testsuite/20_util/integer_comparisons/greater.cc: Likewise.
1002         * testsuite/20_util/integer_comparisons/greater_equal.cc:
1003         Likewise.
1004         * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
1005         Likewise.
1006         * testsuite/20_util/integer_comparisons/greater_neg.cc:
1007         Likewise.
1008         * testsuite/20_util/integer_comparisons/in_range.cc: Likewise.
1009         * testsuite/20_util/integer_comparisons/in_range_neg.cc:
1010         Likewise.
1011         * testsuite/20_util/integer_comparisons/less.cc: Likewise.
1012         * testsuite/20_util/integer_comparisons/less_equal.cc: Likewise.
1013         * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
1014         Likewise.
1015         * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise.
1016         * testsuite/20_util/integer_comparisons/not_equal.cc: Likewise.
1017         * testsuite/20_util/integer_comparisons/not_equal_neg.cc:
1018         Likewise.
1019         * testsuite/20_util/is_bounded_array/requirements/explicit_instantiation.cc:
1020         Likewise.
1021         * testsuite/20_util/is_bounded_array/requirements/typedefs.cc:
1022         Likewise.
1023         * testsuite/20_util/is_bounded_array/value.cc: Likewise.
1024         * testsuite/20_util/is_constant_evaluated/1.cc: Likewise.
1025         * testsuite/20_util/is_constant_evaluated/noexcept.cc: Likewise.
1026         * testsuite/20_util/is_constructible/92878_92947.cc: Likewise.
1027         * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
1028         Likewise.
1029         * testsuite/20_util/is_layout_compatible/value.cc: Likewise.
1030         * testsuite/20_util/is_layout_compatible/version.cc: Likewise.
1031         * testsuite/20_util/is_nothrow_constructible/value_c++20.cc:
1032         Likewise.
1033         * testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc:
1034         Likewise.
1035         * testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc:
1036         Likewise.
1037         * testsuite/20_util/is_nothrow_convertible/value.cc: Likewise.
1038         * testsuite/20_util/is_pod/deprecated-2a.cc: Likewise.
1039         * testsuite/20_util/is_pointer_interconvertible/value.cc:
1040         Likewise.
1041         * testsuite/20_util/is_pointer_interconvertible/version.cc:
1042         Likewise.
1043         * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
1044         Likewise.
1045         * testsuite/20_util/is_unbounded_array/requirements/explicit_instantiation.cc:
1046         Likewise.
1047         * testsuite/20_util/is_unbounded_array/requirements/typedefs.cc:
1048         Likewise.
1049         * testsuite/20_util/is_unbounded_array/value.cc: Likewise.
1050         * testsuite/20_util/optional/assignment/92878_92947.cc:
1051         Likewise.
1052         * testsuite/20_util/optional/cons/92878_92947.cc: Likewise.
1053         * testsuite/20_util/optional/constexpr/assign.cc: Likewise.
1054         * testsuite/20_util/optional/constexpr/cons/conv.cc: Likewise.
1055         * testsuite/20_util/optional/constexpr/modifiers.cc: Likewise.
1056         * testsuite/20_util/optional/constexpr/swap.cc: Likewise.
1057         * testsuite/20_util/optional/relops/96269.cc: Likewise.
1058         * testsuite/20_util/optional/relops/three_way.cc: Likewise.
1059         * testsuite/20_util/pair/comparison_operators/constexpr_c++20.cc:
1060         Likewise.
1061         * testsuite/20_util/pair/cons/92878_92947.cc: Likewise.
1062         * testsuite/20_util/pair/constexpr_assign.cc: Likewise.
1063         * testsuite/20_util/pair/constexpr_swap.cc: Likewise.
1064         * testsuite/20_util/pair/requirements/structural.cc: Likewise.
1065         * testsuite/20_util/pointer_traits/pointer_to_constexpr.cc:
1066         Likewise.
1067         * testsuite/20_util/polymorphic_allocator/allocate_object.cc:
1068         Likewise.
1069         * testsuite/20_util/polymorphic_allocator/construct_c++2a.cc:
1070         Likewise.
1071         * testsuite/20_util/polymorphic_allocator/lwg3237.cc: Likewise.
1072         * testsuite/20_util/reference_wrapper/constexpr.cc: Likewise.
1073         * testsuite/20_util/reference_wrapper/incomplete.cc: Likewise.
1074         * testsuite/20_util/remove_cvref/requirements/alias_decl.cc:
1075         Likewise.
1076         * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
1077         Likewise.
1078         * testsuite/20_util/remove_cvref/value.cc: Likewise.
1079         * testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc:
1080         Likewise.
1081         * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
1082         Likewise.
1083         * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
1084         * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc:
1085         Likewise.
1086         * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Likewise.
1087         * testsuite/20_util/shared_ptr/creation/92878_92947.cc:
1088         Likewise.
1089         * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
1090         * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
1091         * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
1092         * testsuite/20_util/time_point/4.cc: Likewise.
1093         * testsuite/20_util/time_point/comparison_operators/three_way.cc:
1094         Likewise.
1095         * testsuite/20_util/to_address/1.cc: Likewise.
1096         * testsuite/20_util/to_address/1_neg.cc: Likewise.
1097         * testsuite/20_util/to_address/debug.cc: Likewise.
1098         * testsuite/20_util/to_address/lwg3545.cc: Likewise.
1099         * testsuite/20_util/to_chars/compare.cc: Likewise.
1100         * testsuite/20_util/tuple/comparison_operators/three_way.cc:
1101         Likewise.
1102         * testsuite/20_util/tuple/cons/102270.cc: Likewise.
1103         * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
1104         Likewise.
1105         * testsuite/20_util/tuple/constexpr_swap.cc: Likewise.
1106         * testsuite/20_util/type_identity/requirements/alias_decl.cc:
1107         Likewise.
1108         * testsuite/20_util/type_identity/requirements/explicit_instantiation.cc:
1109         Likewise.
1110         * testsuite/20_util/type_identity/requirements/typedefs.cc:
1111         Likewise.
1112         * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
1113         Likewise.
1114         * testsuite/20_util/unique_ptr/comparison/compare_c++20.cc:
1115         Likewise.
1116         * testsuite/20_util/unique_ptr/creation/92878_92947.cc:
1117         Likewise.
1118         * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
1119         Likewise.
1120         * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc:
1121         Likewise.
1122         * testsuite/20_util/unique_ptr/io/lwg2948.cc: Likewise.
1123         * testsuite/20_util/unwrap_reference/1.cc: Likewise.
1124         * testsuite/20_util/unwrap_reference/2.cc: Likewise.
1125         * testsuite/20_util/unwrap_reference/3.cc: Likewise.
1126         * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise.
1127         * testsuite/20_util/uses_allocator/lwg3527.cc: Likewise.
1128         * testsuite/20_util/uses_allocator/make_obj.cc: Likewise.
1129         * testsuite/20_util/uses_allocator/uninitialized_construct.cc:
1130         Likewise.
1131         * testsuite/20_util/variant/92878_92947.cc: Likewise.
1132         * testsuite/20_util/variant/95915.cc: Likewise.
1133         * testsuite/20_util/variant/constexpr.cc: Likewise.
1134         * testsuite/20_util/variant/relops/three_way.cc: Likewise.
1135         * testsuite/20_util/variant/visit_neg.cc: Likewise.
1136         * testsuite/20_util/variant/visit_r.cc: Likewise.
1137         * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
1139 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1141         * testsuite/18_support/comparisons/algorithms/fallback.cc:
1142         Remove dg-options -std=gnu++2a.
1143         * testsuite/18_support/comparisons/algorithms/partial_order.cc:
1144         Likewise.
1145         * testsuite/18_support/comparisons/algorithms/strong_order.cc:
1146         Likewise.
1147         * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
1148         Likewise.
1149         * testsuite/18_support/comparisons/algorithms/weak_order.cc:
1150         Likewise.
1151         * testsuite/18_support/comparisons/categories/94565.cc:
1152         Likewise.
1153         * testsuite/18_support/comparisons/categories/partialord.cc:
1154         Likewise.
1155         * testsuite/18_support/comparisons/categories/strongord.cc:
1156         Likewise.
1157         * testsuite/18_support/comparisons/categories/weakord.cc:
1158         Likewise.
1159         * testsuite/18_support/comparisons/categories/zero_neg.cc:
1160         Likewise.
1161         * testsuite/18_support/comparisons/common/1.cc: Likewise.
1162         * testsuite/18_support/comparisons/object/93479.cc: Likewise.
1163         * testsuite/18_support/comparisons/object/lwg3530.cc: Likewise.
1165 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1167         * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
1168         Remove dg-options -std=gnu++2a.
1169         * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
1170         * testsuite/29_atomics/atomic/lock_free_aliases.cc: Likewise.
1171         * testsuite/29_atomics/atomic/requirements/types_neg.cc:
1172         Likewise.
1173         * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
1174         * testsuite/29_atomics/atomic/wait_notify/100334.cc: Likewise.
1175         * testsuite/29_atomics/atomic/wait_notify/102994.cc: Likewise.
1176         * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
1177         * testsuite/29_atomics/atomic/wait_notify/bool.cc: Likewise.
1178         * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
1179         * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
1180         * testsuite/29_atomics/atomic_flag/cons/value_init.cc: Likewise.
1181         * testsuite/29_atomics/atomic_flag/test/explicit.cc: Likewise.
1182         * testsuite/29_atomics/atomic_flag/test/implicit.cc: Likewise.
1183         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
1184         * testsuite/29_atomics/atomic_float/1.cc: Likewise.
1185         * testsuite/29_atomics/atomic_float/95282.cc: Likewise.
1186         * testsuite/29_atomics/atomic_float/requirements.cc: Likewise.
1187         * testsuite/29_atomics/atomic_float/value_init.cc: Likewise.
1188         * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
1189         * testsuite/29_atomics/atomic_integral/cons/value_init.cc:
1190         Likewise.
1191         * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
1192         * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
1193         Likewise.
1194         * testsuite/29_atomics/atomic_ref/deduction.cc: Likewise.
1195         * testsuite/29_atomics/atomic_ref/float.cc: Likewise.
1196         * testsuite/29_atomics/atomic_ref/generic.cc: Likewise.
1197         * testsuite/29_atomics/atomic_ref/integral.cc: Likewise.
1198         * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise.
1199         * testsuite/29_atomics/atomic_ref/requirements.cc: Likewise.
1200         * testsuite/29_atomics/headers/atomic/types_std_c++20.cc:
1201         Likewise.
1202         * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc:
1203         Likewise.
1204         * testsuite/29_atomics/headers/atomic/types_std_c++2a.cc:
1205         Likewise.
1206         * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc:
1207         Likewise.
1209 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1211         * testsuite/27_io/basic_filebuf/native_handle/char/1.cc: New test.
1212         * testsuite/27_io/basic_filebuf/native_handle/wchar_t/1.cc: New test.
1214 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1216         * acinclude.m4 (GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES): New
1217         macro.
1218         * config.h.in: Regenerate.
1219         * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export new
1220         basic_filebuf members.
1221         * config/io/basic_file_stdio.cc (__basic_file::native_handle):
1222         Define new function.
1223         * config/io/basic_file_stdio.h (__basic_file::native_handle):
1224         Declare new function.
1225         * configure: Regenerate.
1226         * configure.ac: Use GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES.
1227         * include/bits/version.def (fstream_native_handles): New macro.
1228         * include/bits/version.h: Regenerate.
1229         * include/std/fstream (basic_filebuf::native_handle)
1230         (basic_fstream::native_handle, basic_ifstream::native_handle)
1231         (basic_ofstream::native_handle): New functions.
1232         * src/c++11/Makefile.am: Move compilation of basic_file.cc,
1233         locale_init.cc and localename.cc to here.
1234         * src/c++11/Makefile.in: Regenerate.
1235         * src/c++98/locale_init.cc: Moved to...
1236         * src/c++11/locale_init.cc: ...here.
1237         * src/c++98/localename.cc: Moved to...
1238         * src/c++11/localename.cc: ...here.
1239         * src/c++98/Makefile.am: Remove basic_file.cc, locale_init.cc
1240         and localename.cc from here.
1241         * src/c++98/Makefile.in: Regenerate.
1242         * testsuite/27_io/basic_filebuf/native_handle/version.cc: New test.
1243         * testsuite/27_io/basic_fstream/native_handle/char/1.cc: New test.
1244         * testsuite/27_io/basic_fstream/native_handle/wchar_t/1.cc: New test.
1245         * testsuite/27_io/basic_ifstream/native_handle/char/1.cc: New test.
1246         * testsuite/27_io/basic_ifstream/native_handle/wchar_t/1.cc: New test.
1247         * testsuite/27_io/basic_ofstream/native_handle/char/1.cc: New test.
1248         * testsuite/27_io/basic_ofstream/native_handle/wchar_t/1.cc: New test.
1250 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1252         * testsuite/libstdc++-dg/conformance.exp: Add log line when
1253         using testsuite_files.
1255 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1257         * testsuite/20_util/shared_ptr/atomic/3.cc: Simplify dg
1258         directives.
1259         * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
1260         Likewise.
1261         * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc:
1262         Likewise.
1263         * testsuite/20_util/synchronized_pool_resource/allocate.cc:
1264         Likewise.
1265         * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
1266         Likewise.
1267         * testsuite/20_util/synchronized_pool_resource/cons.cc:
1268         Likewise.
1269         * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
1270         Likewise.
1271         * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
1272         Likewise.
1273         * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
1274         Likewise.
1275         * testsuite/20_util/synchronized_pool_resource/options.cc:
1276         Likewise.
1277         * testsuite/20_util/synchronized_pool_resource/release.cc:
1278         Likewise.
1279         * testsuite/20_util/synchronized_pool_resource/release_single.cc:
1280         Likewise.
1281         * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
1282         Likewise.
1283         * testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc:
1284         Likewise.
1285         * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
1286         Likewise.
1288 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1290         * testsuite/23_containers/span/back_assert_neg.cc: Remove
1291         dg-options and add effective target selector to dg-do. Add
1292         no_pch.
1293         * testsuite/23_containers/span/back_neg.cc: Likewise.
1294         * testsuite/23_containers/span/cons_1_assert_neg.cc: Likewise.
1295         * testsuite/23_containers/span/cons_2_assert_neg.cc: Likewise.
1296         * testsuite/23_containers/span/first_2_assert_neg.cc: Likewise.
1297         * testsuite/23_containers/span/first_assert_neg.cc: Likewise.
1298         * testsuite/23_containers/span/first_neg.cc: Likewise.
1299         * testsuite/23_containers/span/front_assert_neg.cc: Likewise.
1300         * testsuite/23_containers/span/front_neg.cc: Likewise.
1301         * testsuite/23_containers/span/index_op_assert_neg.cc: Likewise.
1302         * testsuite/23_containers/span/index_op_neg.cc: Likewise.
1303         * testsuite/23_containers/span/last_2_assert_neg.cc: Likewise.
1304         * testsuite/23_containers/span/last_assert_neg.cc: Likewise.
1305         * testsuite/23_containers/span/last_neg.cc: Likewise.
1306         * testsuite/23_containers/span/subspan_2_assert_neg.cc:
1307         Likewise.
1308         * testsuite/23_containers/span/subspan_3_assert_neg.cc:
1309         Likewise.
1310         * testsuite/23_containers/span/subspan_4_assert_neg.cc:
1311         Likewise.
1312         * testsuite/23_containers/span/subspan_5_assert_neg.cc:
1313         Likewise.
1314         * testsuite/23_containers/span/subspan_6_assert_neg.cc:
1315         Likewise.
1316         * testsuite/23_containers/span/subspan_assert_neg.cc: Likewise.
1317         * testsuite/23_containers/span/subspan_neg.cc: Likewise.
1318         * testsuite/24_iterators/range_operations/advance_debug_neg.cc:
1319         Likewise.
1321 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1323         * testsuite/18_support/headers/limits/synopsis_cxx23.cc: Remove
1324         dg-options.
1325         * testsuite/18_support/headers/stdfloat/types_std.cc: Likewise.
1326         * testsuite/18_support/type_info/constexpr.cc: Likewise.
1327         * testsuite/19_diagnostics/stacktrace/current.cc: Likewise.
1328         * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
1329         * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
1330         * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
1331         * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
1332         * testsuite/20_util/aligned_storage/deprecated-2b.cc: Likewise.
1333         * testsuite/20_util/aligned_union/deprecated-2b.cc: Likewise.
1334         * testsuite/20_util/bitset/access/constexpr.cc: Likewise.
1335         * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
1336         * testsuite/20_util/bitset/count/constexpr.cc: Likewise.
1337         * testsuite/20_util/bitset/ext/constexpr.cc: Likewise.
1338         * testsuite/20_util/bitset/operations/constexpr_c++23.cc:
1339         Likewise.
1340         * testsuite/20_util/bitset/version.cc: Likewise.
1341         * testsuite/20_util/from_chars/8.cc: Likewise.
1342         * testsuite/20_util/from_chars/constexpr.cc: Likewise.
1343         * testsuite/20_util/function/cons/deduction_c++23.cc: Likewise.
1344         * testsuite/20_util/function_objects/invoke/4.cc: Likewise.
1345         * testsuite/20_util/function_objects/invoke/dangling_ref.cc:
1346         Likewise.
1347         * testsuite/20_util/is_scoped_enum/value.cc: Likewise.
1348         * testsuite/20_util/is_scoped_enum/version.cc: Likewise.
1349         * testsuite/20_util/move_only_function/call.cc: Likewise.
1350         * testsuite/20_util/move_only_function/cons.cc: Likewise.
1351         * testsuite/20_util/move_only_function/move.cc: Likewise.
1352         * testsuite/20_util/move_only_function/version.cc: Likewise.
1353         * testsuite/20_util/optional/monadic/and_then.cc: Likewise.
1354         * testsuite/20_util/optional/monadic/or_else.cc: Likewise.
1355         * testsuite/20_util/optional/monadic/or_else_neg.cc: Likewise.
1356         * testsuite/20_util/optional/monadic/pr109242.cc: Likewise.
1357         * testsuite/20_util/optional/monadic/transform.cc: Likewise.
1358         * testsuite/20_util/pair/p2321r2.cc: Likewise.
1359         * testsuite/20_util/reference_from_temporary/value.cc: Likewise.
1360         * testsuite/20_util/reference_from_temporary/value2.cc:
1361         Likewise.
1362         * testsuite/20_util/reference_from_temporary/version.cc:
1363         Likewise.
1364         * testsuite/20_util/to_chars/constexpr.cc: Likewise.
1365         * testsuite/20_util/to_chars/float128_c++23.cc: Likewise.
1366         * testsuite/20_util/to_chars/float16_c++23.cc: Likewise.
1367         * testsuite/20_util/to_chars/version.cc: Likewise.
1368         * testsuite/20_util/to_underlying/1.cc: Likewise.
1369         * testsuite/20_util/to_underlying/version.cc: Likewise.
1370         * testsuite/20_util/tuple/p2321r2.cc: Likewise.
1371         * testsuite/20_util/unique_ptr/assign/constexpr.cc: Likewise.
1372         * testsuite/20_util/unique_ptr/comparison/constexpr.cc:
1373         Likewise.
1374         * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc:
1375         Likewise.
1376         * testsuite/20_util/unique_ptr/creation/constexpr.cc: Likewise.
1377         * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: Likewise.
1378         * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc: Likewise.
1379         * testsuite/20_util/unreachable/1.cc: Likewise.
1380         * testsuite/20_util/unreachable/version.cc: Likewise.
1381         * testsuite/20_util/uses_allocator/lwg3677.cc: Likewise.
1382         * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc: Likewise.
1383         * testsuite/21_strings/basic_string/operations/contains/char.cc:
1384         Likewise.
1385         * testsuite/21_strings/basic_string/operations/contains/nonnull.cc: Likewise.
1386         * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc: Likewise.
1387         * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: Likewise.
1388         * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: Likewise.
1389         * testsuite/21_strings/basic_string_view/operations/contains/char.cc: Likewise.
1390         * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: Likewise.
1391         * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc: Likewise.
1392         * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc: Likewise.
1393         * testsuite/23_containers/queue/cons_from_iters.cc: Likewise.
1394         * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
1395         * testsuite/23_containers/vector/bool/element_access/1.cc:
1396         Likewise.
1397         * testsuite/24_iterators/const_iterator/1.cc: Likewise.
1398         * testsuite/25_algorithms/contains/1.cc: Likewise.
1399         * testsuite/25_algorithms/contains_subrange/1.cc: Likewise.
1400         * testsuite/25_algorithms/find_last/1.cc: Likewise.
1401         * testsuite/25_algorithms/find_last_if/1.cc: Likewise.
1402         * testsuite/25_algorithms/find_last_if_not/1.cc: Likewise.
1403         * testsuite/25_algorithms/fold_left/1.cc: Likewise.
1404         * testsuite/25_algorithms/fold_right/1.cc: Likewise.
1405         * testsuite/25_algorithms/iota/1.cc: Likewise.
1406         * testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: Likewise.
1407         * testsuite/26_numerics/bit/bit.byteswap/version.cc: Likewise.
1408         * testsuite/26_numerics/complex/ext_c++23.cc: Likewise.
1409         * testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc: Likewise.
1410         * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc:
1411         Likewise.
1412         * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc:
1413         Likewise.
1414         * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc:
1415         Likewise.
1416         * testsuite/26_numerics/numbers/4.cc: Likewise.
1417         * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc: Likewise.
1418         * testsuite/27_io/filesystem/path/native/conv_c++23.cc:
1419         Likewise.
1420         * testsuite/27_io/spanstream/1.cc: Likewise.
1421         * testsuite/27_io/spanstream/2.cc: Likewise.
1422         * testsuite/27_io/spanstream/version.cc: Likewise.
1423         * testsuite/29_atomics/atomic_float/requirements_cxx23.cc:
1424         Likewise.
1425         * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
1426         Likewise.
1427         * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
1428         * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
1429         Likewise.
1430         * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
1431         Likewise.
1432         * testsuite/std/ranges/adaptors/adjacent/1.cc: Likewise.
1433         * testsuite/std/ranges/adaptors/adjacent_transform/1.cc:
1434         Likewise.
1435         * testsuite/std/ranges/adaptors/as_const/1.cc: Likewise.
1436         * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
1437         * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
1438         * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
1439         * testsuite/std/ranges/adaptors/enumerate/1.cc: Likewise.
1440         * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
1441         * testsuite/std/ranges/adaptors/lwg3715.cc: Likewise.
1442         * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
1443         * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
1444         * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
1445         * testsuite/std/ranges/range_adaptor_closure.cc: Likewise.
1446         * testsuite/std/ranges/repeat/1.cc: Likewise.
1447         * testsuite/std/ranges/version_c++23.cc: Likewise.
1448         * testsuite/std/ranges/zip/1.cc: Likewise.
1449         * testsuite/std/ranges/zip_transform/1.cc: Likewise.
1451 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1453         * testsuite/20_util/expected/assign.cc: Remove dg-options.
1454         * testsuite/20_util/expected/bad.cc: Likewise.
1455         * testsuite/20_util/expected/cons.cc: Likewise.
1456         * testsuite/20_util/expected/equality.cc: Likewise.
1457         * testsuite/20_util/expected/illformed_neg.cc: Likewise.
1458         * testsuite/20_util/expected/lwg3877.cc: Likewise.
1459         * testsuite/20_util/expected/lwg3938.cc: Likewise.
1460         * testsuite/20_util/expected/monadic.cc: Likewise.
1461         * testsuite/20_util/expected/observers.cc: Likewise.
1462         * testsuite/20_util/expected/requirements.cc: Likewise.
1463         * testsuite/20_util/expected/swap.cc: Likewise.
1464         * testsuite/20_util/expected/synopsis.cc: Likewise.
1465         * testsuite/20_util/expected/unexpected.cc: Likewise.
1466         * testsuite/20_util/expected/version.cc: Likewise.
1468 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1470         * testsuite/20_util/duration/arithmetic/overflow_c++20.cc:
1471         Remove dg-options.
1472         * testsuite/20_util/duration/io.cc: Likewise.
1473         * testsuite/std/time/clock/file/io.cc: Likewise.
1474         * testsuite/std/time/clock/file/members.cc: Likewise.
1475         * testsuite/std/time/clock/file/overview.cc: Likewise.
1476         * testsuite/std/time/clock/gps/1.cc: Likewise.
1477         * testsuite/std/time/clock/gps/io.cc: Likewise.
1478         * testsuite/std/time/clock/local/io.cc: Likewise.
1479         * testsuite/std/time/clock/system/io.cc: Likewise.
1480         * testsuite/std/time/clock/tai/1.cc: Likewise.
1481         * testsuite/std/time/clock/tai/io.cc: Likewise.
1482         * testsuite/std/time/clock/utc/1.cc: Likewise.
1483         * testsuite/std/time/clock/utc/io.cc: Likewise.
1484         * testsuite/std/time/clock/utc/leap_second_info.cc: Likewise.
1485         * testsuite/std/time/day/1.cc: Likewise.
1486         * testsuite/std/time/day/io.cc: Likewise.
1487         * testsuite/std/time/exceptions.cc: Likewise.
1488         * testsuite/std/time/format.cc: Likewise.
1489         * testsuite/std/time/hh_mm_ss/1.cc: Likewise.
1490         * testsuite/std/time/hh_mm_ss/109772.cc: Likewise.
1491         * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
1492         * testsuite/std/time/is_am/1.cc: Likewise.
1493         * testsuite/std/time/is_pm/1.cc: Likewise.
1494         * testsuite/std/time/make12/1.cc: Likewise.
1495         * testsuite/std/time/make24/1.cc: Likewise.
1496         * testsuite/std/time/month/1.cc: Likewise.
1497         * testsuite/std/time/month/io.cc: Likewise.
1498         * testsuite/std/time/month_day/1.cc: Likewise.
1499         * testsuite/std/time/month_day/io.cc: Likewise.
1500         * testsuite/std/time/month_day_last/1.cc: Likewise.
1501         * testsuite/std/time/month_day_last/io.cc: Likewise.
1502         * testsuite/std/time/month_weekday/1.cc: Likewise.
1503         * testsuite/std/time/month_weekday/io.cc: Likewise.
1504         * testsuite/std/time/month_weekday_last/1.cc: Likewise.
1505         * testsuite/std/time/month_weekday_last/io.cc: Likewise.
1506         * testsuite/std/time/parse.cc: Likewise.
1507         * testsuite/std/time/syn_c++20.cc: Likewise.
1508         * testsuite/std/time/time_zone/get_info_local.cc: Likewise.
1509         * testsuite/std/time/time_zone/get_info_sys.cc: Likewise.
1510         * testsuite/std/time/time_zone/requirements.cc: Likewise.
1511         * testsuite/std/time/traits/is_clock.cc: Likewise.
1512         * testsuite/std/time/tzdb/1.cc: Likewise.
1513         * testsuite/std/time/tzdb/leap_seconds.cc: Likewise.
1514         * testsuite/std/time/tzdb_list/1.cc: Likewise.
1515         * testsuite/std/time/tzdb_list/requirements.cc: Likewise.
1516         * testsuite/std/time/weekday/1.cc: Likewise.
1517         * testsuite/std/time/weekday/io.cc: Likewise.
1518         * testsuite/std/time/weekday_indexed/io.cc: Likewise.
1519         * testsuite/std/time/weekday_last/1.cc: Likewise.
1520         * testsuite/std/time/weekday_last/io.cc: Likewise.
1521         * testsuite/std/time/year/1.cc: Likewise.
1522         * testsuite/std/time/year/2.cc: Likewise.
1523         * testsuite/std/time/year/io.cc: Likewise.
1524         * testsuite/std/time/weekday_indexed/1.cc: Likewise.
1525         * testsuite/std/time/year_month/1.cc: Likewise.
1526         * testsuite/std/time/year_month/2.cc: Likewise.
1527         * testsuite/std/time/year_month/io.cc: Likewise.
1528         * testsuite/std/time/year_month_day/1.cc: Likewise.
1529         * testsuite/std/time/year_month_day/2.cc: Likewise.
1530         * testsuite/std/time/year_month_day/3.cc: Likewise.
1531         * testsuite/std/time/year_month_day/4.cc: Likewise.
1532         * testsuite/std/time/year_month_day/io.cc: Likewise.
1533         * testsuite/std/time/year_month_day_last/1.cc: Likewise.
1534         * testsuite/std/time/year_month_day_last/2.cc: Likewise.
1535         * testsuite/std/time/year_month_day_last/io.cc: Likewise.
1536         * testsuite/std/time/year_month_weekday/1.cc: Likewise.
1537         * testsuite/std/time/year_month_weekday/2.cc: Likewise.
1538         * testsuite/std/time/year_month_weekday/3.cc: Likewise.
1539         * testsuite/std/time/year_month_weekday/io.cc: Likewise.
1540         * testsuite/std/time/year_month_weekday_last/1.cc: Likewise.
1541         * testsuite/std/time/year_month_weekday_last/2.cc: Likewise.
1542         * testsuite/std/time/year_month_weekday_last/io.cc: Likewise.
1543         * testsuite/std/time/zoned_time/1.cc: Likewise.
1544         * testsuite/std/time/zoned_time/custom.cc: Likewise.
1545         * testsuite/std/time/zoned_time/deduction.cc: Likewise.
1546         * testsuite/std/time/zoned_time/io.cc: Likewise.
1547         * testsuite/std/time/zoned_time/req_neg.cc: Likewise.
1548         * testsuite/std/time/zoned_time/requirements.cc: Likewise.
1549         * testsuite/std/time/zoned_traits.cc: Likewise.
1551 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1553         * testsuite/std/format/arguments/args.cc: Remove dg-options.
1554         * testsuite/std/format/arguments/lwg3810.cc: Likewise.
1555         * testsuite/std/format/error.cc: Likewise.
1556         * testsuite/std/format/format_string.cc: Likewise.
1557         * testsuite/std/format/formatter/concept.cc: Likewise.
1558         * testsuite/std/format/formatter/ext_float.cc: Likewise.
1559         * testsuite/std/format/formatter/requirements.cc: Likewise.
1560         * testsuite/std/format/functions/107871.cc: Likewise.
1561         * testsuite/std/format/functions/format.cc: Likewise.
1562         * testsuite/std/format/functions/format_to.cc: Likewise.
1563         * testsuite/std/format/functions/format_to_n.cc: Likewise.
1564         * testsuite/std/format/functions/size.cc: Likewise.
1565         * testsuite/std/format/functions/vformat_to.cc: Likewise.
1566         * testsuite/std/format/parse_ctx.cc: Likewise.
1567         * testsuite/std/format/string.cc: Likewise.
1568         * testsuite/std/format/string_neg.cc: Likewise.
1569         * testsuite/std/format/functions/format_c++23.cc: Removed.
1571 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1573         * testsuite/20_util/function_objects/range.cmp/equal_to.cc:
1574         Remove dg-options.
1575         * testsuite/20_util/function_objects/range.cmp/greater.cc:
1576         Likewise.
1577         * testsuite/20_util/function_objects/range.cmp/greater_equal.cc:
1578         Likewise.
1579         * testsuite/20_util/function_objects/range.cmp/less.cc:
1580         Likewise.
1581         * testsuite/20_util/function_objects/range.cmp/less_equal.cc:
1582         Likewise.
1583         * testsuite/20_util/function_objects/range.cmp/lwg3530.cc:
1584         Likewise.
1585         * testsuite/20_util/function_objects/range.cmp/not_equal_to.cc:
1586         Likewise.
1587         * testsuite/20_util/specialized_algorithms/construct_at/1.cc:
1588         Likewise.
1589         * testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc:
1590         Likewise.
1591         * testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
1592         Likewise.
1593         * testsuite/20_util/specialized_algorithms/destroy/constrained.cc:
1594         Likewise.
1595         * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
1596         Likewise.
1597         * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
1598         Likewise.
1599         * testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc:
1600         Likewise.
1601         * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
1602         Likewise.
1603         * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc:
1604         Likewise.
1605         * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
1606         Likewise.
1607         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
1608         Likewise.
1609         * testsuite/25_algorithms/adjacent_find/constexpr.cc: Likewise.
1610         * testsuite/25_algorithms/adjacent_find/constrained.cc:
1611         Likewise.
1612         * testsuite/25_algorithms/all_of/constexpr.cc: Likewise.
1613         * testsuite/25_algorithms/all_of/constrained.cc: Likewise.
1614         * testsuite/25_algorithms/any_of/constexpr.cc: Likewise.
1615         * testsuite/25_algorithms/any_of/constrained.cc: Likewise.
1616         * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
1617         * testsuite/25_algorithms/binary_search/constrained.cc:
1618         Likewise.
1619         * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
1620         * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
1621         * testsuite/25_algorithms/copy/95578.cc: Likewise.
1622         * testsuite/25_algorithms/copy/constexpr.cc: Likewise.
1623         * testsuite/25_algorithms/copy/constrained.cc: Likewise.
1624         * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Likewise.
1625         * testsuite/25_algorithms/copy_backward/95578.cc: Likewise.
1626         * testsuite/25_algorithms/copy_backward/constexpr.cc: Likewise.
1627         * testsuite/25_algorithms/copy_backward/constrained.cc:
1628         Likewise.
1629         * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
1630         Likewise.
1631         * testsuite/25_algorithms/copy_if/constexpr.cc: Likewise.
1632         * testsuite/25_algorithms/copy_if/constrained.cc: Likewise.
1633         * testsuite/25_algorithms/copy_n/constexpr.cc: Likewise.
1634         * testsuite/25_algorithms/copy_n/constrained.cc: Likewise.
1635         * testsuite/25_algorithms/count/constexpr.cc: Likewise.
1636         * testsuite/25_algorithms/count/constrained.cc: Likewise.
1637         * testsuite/25_algorithms/count_if/constexpr.cc: Likewise.
1638         * testsuite/25_algorithms/count_if/constrained.cc: Likewise.
1639         * testsuite/25_algorithms/cpp_lib_constexpr.cc: Likewise.
1640         * testsuite/25_algorithms/equal/95578.cc: Likewise.
1641         * testsuite/25_algorithms/equal/constexpr.cc: Likewise.
1642         * testsuite/25_algorithms/equal/constexpr_neg.cc: Likewise.
1643         * testsuite/25_algorithms/equal/constrained.cc: Likewise.
1644         * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
1645         Likewise.
1646         * testsuite/25_algorithms/equal_range/constexpr.cc: Likewise.
1647         * testsuite/25_algorithms/equal_range/constrained.cc: Likewise.
1648         * testsuite/25_algorithms/fill/94017.cc: Likewise.
1649         * testsuite/25_algorithms/fill/constexpr.cc: Likewise.
1650         * testsuite/25_algorithms/fill/constrained.cc: Likewise.
1651         * testsuite/25_algorithms/fill_n/94017.cc: Likewise.
1652         * testsuite/25_algorithms/fill_n/constexpr.cc: Likewise.
1653         * testsuite/25_algorithms/fill_n/constrained.cc: Likewise.
1654         * testsuite/25_algorithms/find/constexpr.cc: Likewise.
1655         * testsuite/25_algorithms/find/constrained.cc: Likewise.
1656         * testsuite/25_algorithms/find_end/constexpr.cc: Likewise.
1657         * testsuite/25_algorithms/find_end/constrained.cc: Likewise.
1658         * testsuite/25_algorithms/find_first_of/constexpr.cc: Likewise.
1659         * testsuite/25_algorithms/find_first_of/constrained.cc:
1660         Likewise.
1661         * testsuite/25_algorithms/find_if/constexpr.cc: Likewise.
1662         * testsuite/25_algorithms/find_if/constrained.cc: Likewise.
1663         * testsuite/25_algorithms/find_if_not/constexpr.cc: Likewise.
1664         * testsuite/25_algorithms/find_if_not/constrained.cc: Likewise.
1665         * testsuite/25_algorithms/for_each/constexpr.cc: Likewise.
1666         * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
1667         * testsuite/25_algorithms/generate/constexpr.cc: Likewise.
1668         * testsuite/25_algorithms/generate/constrained.cc: Likewise.
1669         * testsuite/25_algorithms/generate_n/constexpr.cc: Likewise.
1670         * testsuite/25_algorithms/generate_n/constrained.cc: Likewise.
1671         * testsuite/25_algorithms/heap/constrained.cc: Likewise.
1672         * testsuite/25_algorithms/includes/constrained.cc: Likewise.
1673         * testsuite/25_algorithms/inplace_merge/constrained.cc:
1674         Likewise.
1675         * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
1676         * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
1677         * testsuite/25_algorithms/is_partitioned/constexpr.cc: Likewise.
1678         * testsuite/25_algorithms/is_partitioned/constrained.cc:
1679         Likewise.
1680         * testsuite/25_algorithms/is_permutation/constexpr.cc: Likewise.
1681         * testsuite/25_algorithms/is_permutation/constrained.cc:
1682         Likewise.
1683         * testsuite/25_algorithms/is_sorted/constexpr.cc: Likewise.
1684         * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
1685         * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
1686         Likewise.
1687         * testsuite/25_algorithms/is_sorted_until/constrained.cc:
1688         Likewise.
1689         * testsuite/25_algorithms/iter_swap/constexpr.cc: Likewise.
1690         * testsuite/25_algorithms/lexicographical_compare/93972.cc:
1691         Likewise.
1692         * testsuite/25_algorithms/lexicographical_compare/95578.cc:
1693         Likewise.
1694         * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
1695         Likewise.
1696         * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
1697         Likewise.
1698         * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
1699         Likewise.
1700         * testsuite/25_algorithms/lexicographical_compare_three_way/constexpr.cc:
1701         Likewise.
1702         * testsuite/25_algorithms/lower_bound/constexpr.cc: Likewise.
1703         * testsuite/25_algorithms/lower_bound/constrained.cc: Likewise.
1704         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
1705         Likewise.
1706         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
1707         Likewise.
1708         * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
1709         Likewise.
1710         * testsuite/25_algorithms/make_heap/constexpr.cc: Likewise.
1711         * testsuite/25_algorithms/max/constrained.cc: Likewise.
1712         * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
1713         * testsuite/25_algorithms/merge/constexpr.cc: Likewise.
1714         * testsuite/25_algorithms/merge/constrained.cc: Likewise.
1715         * testsuite/25_algorithms/min/constrained.cc: Likewise.
1716         * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
1717         * testsuite/25_algorithms/minmax/constrained.cc: Likewise.
1718         * testsuite/25_algorithms/minmax_element/constrained.cc:
1719         Likewise.
1720         * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
1721         * testsuite/25_algorithms/mismatch/constrained.cc: Likewise.
1722         * testsuite/25_algorithms/move/93872.cc: Likewise.
1723         * testsuite/25_algorithms/move/95578.cc: Likewise.
1724         * testsuite/25_algorithms/move/constexpr.cc: Likewise.
1725         * testsuite/25_algorithms/move/constrained.cc: Likewise.
1726         * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
1727         * testsuite/25_algorithms/move_backward/95578.cc: Likewise.
1728         * testsuite/25_algorithms/move_backward/constrained.cc:
1729         Likewise.
1730         * testsuite/25_algorithms/next_permutation/constexpr.cc:
1731         Likewise.
1732         * testsuite/25_algorithms/next_permutation/constrained.cc:
1733         Likewise.
1734         * testsuite/25_algorithms/none_of/constexpr.cc: Likewise.
1735         * testsuite/25_algorithms/none_of/constrained.cc: Likewise.
1736         * testsuite/25_algorithms/nth_element/constexpr.cc: Likewise.
1737         * testsuite/25_algorithms/nth_element/constrained.cc: Likewise.
1738         * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
1739         * testsuite/25_algorithms/partial_sort/constrained.cc: Likewise.
1740         * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
1741         Likewise.
1742         * testsuite/25_algorithms/partial_sort_copy/constrained.cc:
1743         Likewise.
1744         * testsuite/25_algorithms/partition/constexpr.cc: Likewise.
1745         * testsuite/25_algorithms/partition/constrained.cc: Likewise.
1746         * testsuite/25_algorithms/partition_copy/constexpr.cc: Likewise.
1747         * testsuite/25_algorithms/partition_copy/constrained.cc:
1748         Likewise.
1749         * testsuite/25_algorithms/partition_point/constexpr.cc:
1750         Likewise.
1751         * testsuite/25_algorithms/partition_point/constrained.cc:
1752         Likewise.
1753         * testsuite/25_algorithms/pop_heap/constexpr.cc: Likewise.
1754         * testsuite/25_algorithms/prev_permutation/constexpr.cc:
1755         Likewise.
1756         * testsuite/25_algorithms/prev_permutation/constrained.cc:
1757         Likewise.
1758         * testsuite/25_algorithms/push_heap/constexpr.cc: Likewise.
1759         * testsuite/25_algorithms/remove/constexpr.cc: Likewise.
1760         * testsuite/25_algorithms/remove/constrained.cc: Likewise.
1761         * testsuite/25_algorithms/remove_copy/constexpr.cc: Likewise.
1762         * testsuite/25_algorithms/remove_copy/constrained.cc: Likewise.
1763         * testsuite/25_algorithms/remove_copy_if/constexpr.cc: Likewise.
1764         * testsuite/25_algorithms/remove_copy_if/constrained.cc:
1765         Likewise.
1766         * testsuite/25_algorithms/remove_if/constexpr.cc: Likewise.
1767         * testsuite/25_algorithms/remove_if/constrained.cc: Likewise.
1768         * testsuite/25_algorithms/replace/constrained.cc: Likewise.
1769         * testsuite/25_algorithms/replace_copy/constexpr.cc: Likewise.
1770         * testsuite/25_algorithms/replace_copy/constrained.cc: Likewise.
1771         * testsuite/25_algorithms/replace_copy_if/constexpr.cc:
1772         Likewise.
1773         * testsuite/25_algorithms/replace_copy_if/constrained.cc:
1774         Likewise.
1775         * testsuite/25_algorithms/replace_if/constexpr.cc: Likewise.
1776         * testsuite/25_algorithms/replace_if/constrained.cc: Likewise.
1777         * testsuite/25_algorithms/reverse/constexpr.cc: Likewise.
1778         * testsuite/25_algorithms/reverse/constrained.cc: Likewise.
1779         * testsuite/25_algorithms/reverse_copy/constexpr.cc: Likewise.
1780         * testsuite/25_algorithms/reverse_copy/constrained.cc: Likewise.
1781         * testsuite/25_algorithms/rotate/constexpr.cc: Likewise.
1782         * testsuite/25_algorithms/rotate/constrained.cc: Likewise.
1783         * testsuite/25_algorithms/rotate_copy/constexpr.cc: Likewise.
1784         * testsuite/25_algorithms/rotate_copy/constrained.cc: Likewise.
1785         * testsuite/25_algorithms/sample/constrained.cc: Likewise.
1786         * testsuite/25_algorithms/search/constexpr.cc: Likewise.
1787         * testsuite/25_algorithms/search/constrained.cc: Likewise.
1788         * testsuite/25_algorithms/search_n/97828.cc: Likewise.
1789         * testsuite/25_algorithms/search_n/constexpr.cc: Likewise.
1790         * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
1791         * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
1792         * testsuite/25_algorithms/set_difference/constrained.cc:
1793         Likewise.
1794         * testsuite/25_algorithms/set_intersection/constexpr.cc:
1795         Likewise.
1796         * testsuite/25_algorithms/set_intersection/constrained.cc:
1797         Likewise.
1798         * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
1799         Likewise.
1800         * testsuite/25_algorithms/set_symmetric_difference/constrained.cc:
1801         Likewise.
1802         * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
1803         * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
1804         * testsuite/25_algorithms/shift_left/1.cc: Likewise.
1805         * testsuite/25_algorithms/shift_right/1.cc: Likewise.
1806         * testsuite/25_algorithms/shuffle/constrained.cc: Likewise.
1807         * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
1808         * testsuite/25_algorithms/sort/constrained.cc: Likewise.
1809         * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
1810         * testsuite/25_algorithms/stable_partition/constrained.cc:
1811         Likewise.
1812         * testsuite/25_algorithms/stable_sort/constrained.cc: Likewise.
1813         * testsuite/25_algorithms/swap/constexpr.cc: Likewise.
1814         * testsuite/25_algorithms/swap_ranges/constexpr.cc: Likewise.
1815         * testsuite/25_algorithms/swap_ranges/constrained.cc: Likewise.
1816         * testsuite/25_algorithms/transform/constexpr.cc: Likewise.
1817         * testsuite/25_algorithms/transform/constrained.cc: Likewise.
1818         * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
1819         * testsuite/25_algorithms/unique/constrained.cc: Likewise.
1820         * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
1821         * testsuite/25_algorithms/unique_copy/constrained.cc: Likewise.
1822         * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
1823         * testsuite/25_algorithms/upper_bound/constrained.cc: Likewise.
1824         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
1825         Likewise.
1826         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
1827         Likewise.
1828         * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
1829         Likewise.
1831 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1833         * testsuite/std/concepts/1.cc: Remove dg-options.
1834         * testsuite/std/concepts/2.cc: Likewise.
1835         * testsuite/std/concepts/concepts.callable/invocable.cc:
1836         Likewise.
1837         * testsuite/std/concepts/concepts.callable/regular_invocable.cc:
1838         Likewise.
1839         * testsuite/std/concepts/concepts.callable/relation.cc:
1840         Likewise.
1841         * testsuite/std/concepts/concepts.callable/strictweakorder.cc:
1842         Likewise.
1843         * testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc: Likewise.
1844         * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc: Likewise.
1845         * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc: Likewise.
1846         * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc: Likewise.
1847         * testsuite/std/concepts/concepts.lang/concept.assignable/1.cc:
1848         Likewise.
1849         * testsuite/std/concepts/concepts.lang/concept.common/1.cc:
1850         Likewise.
1851         * testsuite/std/concepts/concepts.lang/concept.commonref/1.cc:
1852         Likewise.
1853         * testsuite/std/concepts/concepts.lang/concept.constructible/1.cc: Likewise.
1854         * testsuite/std/concepts/concepts.lang/concept.convertible/1.cc:
1855         Likewise.
1856         * testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc: Likewise.
1857         * testsuite/std/concepts/concepts.lang/concept.defaultinitializable/1.cc: Likewise.
1858         * testsuite/std/concepts/concepts.lang/concept.defaultinitializable/lwg3149.cc: Likewise.
1859         * testsuite/std/concepts/concepts.lang/concept.derived/1.cc:
1860         Likewise.
1861         * testsuite/std/concepts/concepts.lang/concept.destructible/1.cc: Likewise.
1862         * testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc: Likewise.
1863         * testsuite/std/concepts/concepts.lang/concept.same/1.cc:
1864         Likewise.
1865         * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc: Likewise.
1866         * testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc: Likewise.
1867         * testsuite/std/concepts/concepts.lang/concept.swappable/swappable_with.cc: Likewise.
1868         * testsuite/std/concepts/concepts.object/copyable.cc: Likewise.
1869         * testsuite/std/concepts/concepts.object/movable.cc: Likewise.
1870         * testsuite/std/concepts/concepts.object/regular.cc: Likewise.
1871         * testsuite/std/concepts/concepts.object/semiregular.cc:
1872         Likewise.
1873         * testsuite/std/ranges/97600.cc: Likewise.
1874         * testsuite/std/ranges/access/101782.cc: Likewise.
1875         * testsuite/std/ranges/access/begin.cc: Likewise.
1876         * testsuite/std/ranges/access/begin_neg.cc: Likewise.
1877         * testsuite/std/ranges/access/cbegin.cc: Likewise.
1878         * testsuite/std/ranges/access/cdata.cc: Likewise.
1879         * testsuite/std/ranges/access/cend.cc: Likewise.
1880         * testsuite/std/ranges/access/crbegin.cc: Likewise.
1881         * testsuite/std/ranges/access/crend.cc: Likewise.
1882         * testsuite/std/ranges/access/data.cc: Likewise.
1883         * testsuite/std/ranges/access/empty.cc: Likewise.
1884         * testsuite/std/ranges/access/end.cc: Likewise.
1885         * testsuite/std/ranges/access/end_neg.cc: Likewise.
1886         * testsuite/std/ranges/access/lwg3467.cc: Likewise.
1887         * testsuite/std/ranges/access/p2602.cc: Likewise.
1888         * testsuite/std/ranges/access/rbegin.cc: Likewise.
1889         * testsuite/std/ranges/access/rend.cc: Likewise.
1890         * testsuite/std/ranges/access/size.cc: Likewise.
1891         * testsuite/std/ranges/access/size_neg.cc: Likewise.
1892         * testsuite/std/ranges/access/ssize.cc: Likewise.
1893         * testsuite/std/ranges/adaptors/100479.cc: Likewise.
1894         * testsuite/std/ranges/adaptors/100577.cc: Likewise.
1895         * testsuite/std/ranges/adaptors/93978.cc: Likewise.
1896         * testsuite/std/ranges/adaptors/95322.cc: Likewise.
1897         * testsuite/std/ranges/adaptors/99433.cc: Likewise.
1898         * testsuite/std/ranges/adaptors/all.cc: Likewise.
1899         * testsuite/std/ranges/adaptors/common.cc: Likewise.
1900         * testsuite/std/ranges/adaptors/conditionally_borrowed.cc:
1901         Likewise.
1902         * testsuite/std/ranges/adaptors/counted.cc: Likewise.
1903         * testsuite/std/ranges/adaptors/detail/copyable_box.cc:
1904         Likewise.
1905         * testsuite/std/ranges/adaptors/drop.cc: Likewise.
1906         * testsuite/std/ranges/adaptors/drop_while.cc: Likewise.
1907         * testsuite/std/ranges/adaptors/elements.cc: Likewise.
1908         * testsuite/std/ranges/adaptors/filter.cc: Likewise.
1909         * testsuite/std/ranges/adaptors/join.cc: Likewise.
1910         * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
1911         * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
1912         * testsuite/std/ranges/adaptors/lwg3286.cc: Likewise.
1913         * testsuite/std/ranges/adaptors/lwg3313_neg.cc: Likewise.
1914         * testsuite/std/ranges/adaptors/lwg3325_neg.cc: Likewise.
1915         * testsuite/std/ranges/adaptors/lwg3406.cc: Likewise.
1916         * testsuite/std/ranges/adaptors/p1739.cc: Likewise.
1917         * testsuite/std/ranges/adaptors/p2281.cc: Likewise.
1918         * testsuite/std/ranges/adaptors/p2770r0.cc: Likewise.
1919         * testsuite/std/ranges/adaptors/reverse.cc: Likewise.
1920         * testsuite/std/ranges/adaptors/sizeof.cc: Likewise.
1921         * testsuite/std/ranges/adaptors/split.cc: Likewise.
1922         * testsuite/std/ranges/adaptors/take.cc: Likewise.
1923         * testsuite/std/ranges/adaptors/take_while.cc: Likewise.
1924         * testsuite/std/ranges/adaptors/transform.cc: Likewise.
1925         * testsuite/std/ranges/empty_view.cc: Likewise.
1926         * testsuite/std/ranges/headers/ranges/synopsis.cc: Likewise.
1927         * testsuite/std/ranges/iota/difference_type.cc: Likewise.
1928         * testsuite/std/ranges/iota/iota_view.cc: Likewise.
1929         * testsuite/std/ranges/iota/iterator.cc: Likewise.
1930         * testsuite/std/ranges/iota/lwg3292_neg.cc: Likewise.
1931         * testsuite/std/ranges/iota/max_size_type.cc: Likewise.
1932         * testsuite/std/ranges/istream_view.cc: Likewise.
1933         * testsuite/std/ranges/p2259.cc: Likewise.
1934         * testsuite/std/ranges/p2325.cc: Likewise.
1935         * testsuite/std/ranges/p2367.cc: Likewise.
1936         * testsuite/std/ranges/range.cc: Likewise.
1937         * testsuite/std/ranges/refinements.cc: Likewise.
1938         * testsuite/std/ranges/safe_range.cc: Likewise.
1939         * testsuite/std/ranges/safe_range_types.cc: Likewise.
1940         * testsuite/std/ranges/single_view.cc: Likewise.
1941         * testsuite/std/ranges/sized.cc: Likewise.
1942         * testsuite/std/ranges/subrange/1.cc: Likewise.
1943         * testsuite/std/ranges/subrange/97512.cc: Likewise.
1944         * testsuite/std/ranges/subrange/constexpr.cc: Likewise.
1945         * testsuite/std/ranges/subrange/lwg3282_neg.cc: Likewise.
1946         * testsuite/std/ranges/subrange/lwg3286.cc: Likewise.
1947         * testsuite/std/ranges/subrange/lwg3433.cc: Likewise.
1948         * testsuite/std/ranges/subrange/sizeof.cc: Likewise.
1949         * testsuite/std/ranges/subrange/tuple_like.cc: Likewise.
1950         * testsuite/std/ranges/view.cc: Likewise.
1952 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1954         * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
1955         Remove dg-options.
1956         * testsuite/23_containers/span/contiguous_range_neg.cc:
1957         Likewise.
1958         * testsuite/23_containers/span/everything.cc: Likewise.
1960 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1962         * testsuite/24_iterators/reverse_iterator/100639.cc: Remove
1963         dg-options and add dg-add-options strict_std.
1964         * testsuite/std/ranges/iota/93267.cc: Likewise.
1965         * testsuite/std/ranges/iota/96042.cc: Likewise.
1966         * testsuite/std/ranges/iota/size.cc: Likewise.
1967         * testsuite/std/ranges/subrange/96042.cc: Likewise.
1969 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1971         * testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_cxx17.cc:
1972         Replace dg-options -std=c++17 with dg-add-options strict_std.
1973         * testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_cxx17.cc:
1974         Likewise.
1976 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1978         * testsuite/23_containers/deque/48101-2_neg.cc: Replace
1979         dg-options with target selector.
1980         * testsuite/23_containers/forward_list/48101-2_neg.cc: Likewise.
1981         * testsuite/23_containers/list/48101-2_neg.cc: Likewise.
1982         * testsuite/23_containers/map/48101-2_neg.cc: Likewise.
1983         * testsuite/23_containers/map/48101_neg.cc: Likewise.
1984         * testsuite/23_containers/multimap/48101-2_neg.cc: Likewise.
1985         * testsuite/23_containers/multimap/48101_neg.cc: Likewise.
1986         * testsuite/23_containers/multiset/48101-2_neg.cc: Likewise.
1987         * testsuite/23_containers/set/48101-2_neg.cc: Likewise.
1988         * testsuite/23_containers/unordered_map/48101-2_neg.cc:
1989         Likewise.
1990         * testsuite/23_containers/unordered_multimap/48101-2_neg.cc:
1991         Likewise.
1992         * testsuite/23_containers/unordered_multiset/48101-2_neg.cc:
1993         Likewise.
1994         * testsuite/23_containers/unordered_set/48101-2_neg.cc:
1995         Likewise.
1996         * testsuite/23_containers/vector/48101-2_neg.cc: Likewise.
1998 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
2000         * doc/xml/manual/test.xml: Update documentation on running and
2001         writing tests.
2002         * doc/html/manual/test.html: Regenerate.
2003         * testsuite/Makefile.am: Add v3-use-std-list to site.tmp
2004         * testsuite/Makefile.in: Regenerate.
2005         * testsuite/lib/dg-options.exp (add_options_for_strict_std): New
2006         proc.
2007         * testsuite/lib/libstdc++.exp (search_for): New utility proc.
2008         (v3-dg-runtest): New proc to replace dg-runtest.
2009         * testsuite/libstdc++-dg/conformance.exp: Use v3-dg-runtest.
2011 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
2013         * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc:
2014         Fix test to work for C++23 and C++26 too.
2016 2023-09-15  Patrick Palka  <ppalka@redhat.com>
2018         * include/std/bit: Include <concepts>.
2019         (byteswap): Use a type-constraint instead of enable_if_t
2020         inside the return type, and use std::integral.
2021         (_If_is_unsigned_integer): Replace with ...
2022         (__unsigned_integer): ... this.
2023         (rotl): Use a type-constraint instead of enable_if_t inside
2024         the return type.
2025         (countl_zero): Likewise.
2026         (countl_one): Likewise.
2027         (countr_zero): Likewise.
2028         (countr_one): Likewise.
2029         (popcount): Likewise.
2030         (has_single_bit): Likewise.
2031         (bit_ceil): Likewise.
2032         (bit_floor): Likewise.
2033         (bit_width): Likewise.
2035 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
2037         * include/std/variant (variant): Remove derivation from
2038         _Enable_default_constructor base class.
2039         (variant::variant()): Constrain.
2040         * testsuite/20_util/variant/default_ctor.cc: New test.
2042 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
2044         PR libstdc++/111172
2045         * include/std/variant (get<T>): Remove !is_void static
2046         assertions.
2048 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
2050         * include/bits/version.def (to_chars): Define new value for
2051         C++26.
2052         * include/bits/version.h: Regenerate.
2053         * include/std/charconv (to_chars_result::operator bool): New
2054         function.
2055         (from_chars_result::operator bool): New function.
2056         * testsuite/20_util/to_chars/version.cc: Update expected value.
2057         * testsuite/20_util/from_chars/result.cc: New test.
2058         * testsuite/20_util/to_chars/result.cc: New test.
2060 2023-09-14  Jonathan Wakely  <jwakely@redhat.com>
2062         PR c++/111357
2063         * testsuite/20_util/integer_sequence/pr111357.cc: New test.
2065 2023-09-14  Jonathan Wakely  <jwakely@redhat.com>
2067         * testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc: Use
2068         dg-additional-files. Remove @require@ and @diff@ comments.
2069         * testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc: Likewise.
2070         * testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc: Likewise.
2071         * testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc: Likewise.
2072         * testsuite/lib/dg-options.exp (v3_additional_files): New
2073         global variable.
2074         (dg-additional-files): New proc.
2075         * testsuite/lib/libstdc++.exp (v3_target_compile): Copy
2076         additional files to test directory.
2078 2023-09-14  Jonathan Wakely  <jwakely@redhat.com>
2080         * include/experimental/io_context (io_context) [!_GLIBCXX_HAS_GTHREADS]:
2081         Use a plain integer for _M_work_count for single-threaded
2082         targets.
2083         * include/experimental/memory_resource (__get_default_resource)
2084         [!_GLIBCXX_HAS_GTHREADS]: Use unsynchronized type for
2085         single-threaded targets.
2086         * src/c++17/default_resource.h: Adjust preprocessor conditions
2087         to match memory_resource.cc.
2088         * src/c++17/memory_resource.cc [!_GLIBCXX_HAS_GTHREADS]
2089         (atomic_mem_res): Use unsynchronized type for single-threaded
2090         targets.
2092 2023-09-14  Christophe Lyon  <christophe.lyon@linaro.org>
2094         * testsuite/29_atomics/atomic/compare_exchange_padding.cc: Likewise.
2095         * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
2096         * testsuite/29_atomics/atomic_float/value_init.cc: Likewise.
2097         * testsuite/29_atomics/atomic_integral/cons/value_init.cc: Likewise.
2098         * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc: Likewise.
2099         * testsuite/29_atomics/atomic_ref/generic.cc: Likewise.
2100         * testsuite/29_atomics/atomic_ref/integral.cc: Likewise.
2101         * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise.
2103 2023-09-14  François Dumont  <fdumont@gcc.gnu.org>
2105         * testsuite/19_diagnostics/stacktrace/synopsis.cc: Add
2106         { dg-require-normal-namespace "" }.
2108 2023-09-13  François Dumont  <fdumont@gcc.gnu.org>
2110         * include/std/format (std::__format::_Arg_store): Explicit version
2111         namespace on make_format_args friend declaration.
2113 2023-09-12  Patrick Palka  <ppalka@redhat.com>
2115         PR libstdc++/111327
2116         * include/std/functional (_GLIBCXX_NOT_FN_CALL_OP): Also define
2117         a deleted fallback operator() overload.  Constrain both the
2118         enabled and deleted overloads accordingly.
2119         * testsuite/20_util/function_objects/not_fn/111327.cc: New test.
2121 2023-09-12  Patrick Palka  <ppalka@redhat.com>
2123         PR libstdc++/111327
2124         * include/std/functional (_Bind_front::operator()): Add deleted
2125         fallback overloads for each const/ref qualifier pair.  Give the
2126         enabled overloads dummy constraints to make each one more
2127         specialized than the corresponding deleted overload.
2128         * testsuite/20_util/function_objects/bind_front/111327.cc: New test.
2130 2023-09-12  Patrick Palka  <ppalka@redhat.com>
2132         * include/std/functional (_Bind_front0): Remove.
2133         (_Bind_front_t): Adjust.
2135 2023-09-12  Jonathan Wakely  <jwakely@redhat.com>
2137         * python/libstdcxx/v6/printers.py: Reformat.
2138         * python/libstdcxx/v6/xmethods.py: Likewise.
2140 2023-09-11  Jonathan Wakely  <jwakely@redhat.com>
2142         * src/c++11/debug.cc (acquire_sequence_ptr_for_lock): New
2143         function.
2144         (reset_sequence_ptr): New function.
2145         (_Safe_iterator_base::_M_detach)
2146         (_Safe_local_iterator_base::_M_detach): Replace bare atomic_load
2147         with acquire_sequence_ptr_for_lock.
2148         (_Safe_iterator_base::_M_reset): Replace bare atomic_store with
2149         reset_sequence_ptr.
2151 2023-09-11  Jonathan Wakely  <jwakely@redhat.com>
2153         * src/c++11/Makefile.am: Add new file.
2154         * src/c++11/Makefile.in: Regenerate.
2155         * src/c++11/debug.cc (__glibcxx_assert_fail): Move to ...
2156         * src/c++11/assert_fail.cc: New file.
2158 2023-09-11  Ken Matsui  <kmatsui@gcc.gnu.org>
2160         * include/bits/c++config (_GLIBCXX_HAS_BUILTIN): Do not undef.
2161         (_GLIBCXX_USE_BUILTIN_TRAIT): Define.
2163 2023-09-11  Jonathan Wakely  <jwakely@redhat.com>
2165         * include/bits/version.def (__cpp_lib_formatters): Define.
2166         * include/bits/version.h: Regenerate.
2167         * include/std/stacktrace (formatter<stacktrace_entry>)
2168         (formatter<basic_stacktrace<Alloc>>): Define.
2169         * include/std/thread (formatter<thread::id, charT>): Define.
2170         * testsuite/19_diagnostics/stacktrace/output.cc: New test.
2171         * testsuite/19_diagnostics/stacktrace/synopsis.cc: Add
2172         std::formatter specializations.
2173         * testsuite/19_diagnostics/stacktrace/version.cc: Check
2174         __cpp_lib_formatters macro.
2175         * testsuite/30_threads/thread/id/hash.cc: Remove gthreads
2176         dependency.
2177         * testsuite/30_threads/thread/id/operators.cc: Likewise.
2178         * testsuite/30_threads/thread/id/operators_c++20.cc: Likewise.
2179         * testsuite/30_threads/thread/id/output.cc: New test.
2181 2023-09-11  Pekka Seppänen  <pexu@gcc.mail.kapsi.fi>
2183         * src/c++11/cow-locale_init.cc: Add [[maybe_unused]] attribute.
2184         * src/c++17/fs_path.cc (path::_S_convert_loc): Likewise.
2185         * src/filesystem/path.cc (path::_S_convert_loc): Likewise.
2187 2023-09-08  Jonathan Wakely  <jwakely@redhat.com>
2189         * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++23 directory.
2190         * configure: Regenerate.
2191         * doc/html/manual/*: Regenerate.
2192         * doc/xml/manual/using.xml: Update documentation on linking.
2193         * include/std/stacktrace: Remove declarations of libbacktrace
2194         APIs.
2195         (stacktrace_entry::_S_err_handler, stacktrace_entry::_S_init):
2196         Remove.
2197         (stacktrace_entry::_Info): New class.
2198         (stacktrace_entry::_M_get_info): Use _Info.
2199         (__stacktrace_impl): New class.
2200         (basic_stacktrace): Derive from __stacktrace_impl.
2201         (basic_stacktrace::current): Use __stacktrace_impl::_S_current.
2202         * scripts/testsuite_flags.in: Adjust LDFLAGS to find
2203         libstdc++exp instead of libstdc++_libbacktrace.
2204         * src/Makefile.am (SUBDIRS): Add c++23 directory.
2205         * src/Makefile.in: Regenerate.
2206         * src/c++20/Makefile.am: Fix comment.
2207         * src/c++20/Makefile.in: Regenerate.
2208         * src/c++23/Makefile.am: New file.
2209         * src/c++23/Makefile.in: New file.
2210         * src/c++23/stacktrace.cc: New file with definitions of
2211         stacktrace_entry::_Info and __stacktrace_impl members.
2212         * src/experimental/Makefile.am: Use LIBADD to include other
2213         libraries.
2214         * src/experimental/Makefile.in: Regenerate.
2215         * src/libbacktrace/Makefile.am: Use noinst_LTLIBRARIES.
2216         * src/libbacktrace/Makefile.in: Regenerate.
2217         * testsuite/19_diagnostics/stacktrace/current.cc: Adjust
2218         dg-options to use -lstdc++exp.
2219         * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
2220         * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
2221         * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc:
2222         Likewise.
2224 2023-09-08  Alexey Lapshin  <alexey.lapshin@espressif.com>
2226         * src/libbacktrace/Makefile.am: Remove -Werror.
2227         * src/libbacktrace/Makefile.in: Regenerate.
2229 2023-09-08  Jonathan Wakely  <jwakely@redhat.com>
2231         * testsuite/Makefile.am (check-DEJAGNU): Use @ in recipe.
2232         * testsuite/Makefile.in: Regenerate.
2234 2023-09-08  Yang Yujie  <yangyujie@loongson.cn>
2236         * configure.host: Register t-loongarch in tmake_file.
2237         * config/cpu/loongarch/t-loongarch: New file.  Manually refresh
2238         MULTISUBDIR with $(shell $(CXX) --print-multi-directory).
2240 2023-09-07  Bruno Victal  <mirai@makinata.eu>
2242         * acinclude.m4: Update docbook xsl URI.
2243         * configure: Regenerate.
2245 2023-09-07  Bruno Victal  <mirai@makinata.eu>
2247         * doc/Makefile.am: Fix 'doc-install-info' rule.
2248         Fix typo in commment.
2249         * doc/Makefile.in: Regenerate.
2251 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
2253         * testsuite/27_io/filesystem/path/concat/94063.cc: Simplify
2254         dg-do target selector.
2256 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
2258         * testsuite/config/default.exp: Remove trailing whitespace.
2259         * testsuite/lib/dg-options.exp: Likewise.
2260         * testsuite/lib/prune.exp: Likewise.
2261         * testsuite/libstdc++-abi/abi.exp: Likewise.
2262         * testsuite/libstdc++-dg/conformance.exp: Likewise.
2263         * testsuite/libstdc++-prettyprinters/prettyprinters.exp:
2264         Likewise.
2265         * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
2266         * testsuite/lib/libstdc++.exp: Likewise.
2267         (check_v3_target_c_std): Fix filename for temporary source file.
2269 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
2271         * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for mkdir,
2272         chmod, chdir, and getcwd.
2273         * config.h.in: Regenerate.
2274         * configure: Regenerate.
2275         * src/c++17/fs_ops.cc (create_dir): Use USE_MKDIR macro.
2276         (fs::current_path): Use USE_GETCWD and USE_CHDIR macros.
2277         (fs::permissions): Use USE_CHMOD macro.
2278         * src/filesystem/ops-common.h [FILESYSTEM_IS_WINDOWS]
2279         (chmod, mkdir, getcwd, chdir): Define new macros.
2280         [FILESYSTEM_IS_WINDOWS] (chmod, mkdir, getcwd, chdir): Use
2281         new macros.
2282         * src/filesystem/ops.cc (create_dir): Use USE_MKDIR macro.
2283         (fs::current_path): Use USE_GETCWD and USE_CHDIR macros.
2284         (fs::permissions): Use USE_CHMOD macro.
2286 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
2288         * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Disable by default
2289         for avr.
2290         * configure: Regenerate.
2292 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
2294         * testsuite/23_containers/unordered_map/operations/1.cc: Add
2295         dg-options for C++20 mode.
2296         * testsuite/23_containers/unordered_multimap/operations/1.cc:
2297         Likewise.
2298         * testsuite/23_containers/unordered_multiset/operations/1.cc:
2299         Likewise.
2300         * testsuite/23_containers/unordered_set/operations/1.cc:
2301         Likewise.
2302         * testsuite/std/time/parse.cc: Move dg-options before dg-do.
2304 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
2306         * testsuite/std/ranges/access/cbegin.cc: Adjust for C++23
2307         compatibility.
2308         * testsuite/std/ranges/access/cdata.cc: Likewise.
2309         * testsuite/std/ranges/access/cend.cc: Likewise.
2310         * testsuite/std/ranges/access/crbegin.cc: Likewise.
2311         * testsuite/std/ranges/access/crend.cc: Likewise.
2312         * testsuite/std/ranges/adaptors/take.cc: Likewise.
2313         * testsuite/std/ranges/adaptors/take_while.cc: Likewise.
2314         * testsuite/std/ranges/adaptors/transform.cc: Likewise.
2316 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
2318         * include/bits/iterator_concepts.h (__imove::iter_move): Define
2319         poison pill as deleted for consistency.
2320         (__access::begin): Replace with a single declaration.
2321         * include/bits/ranges_base.h (__access::end, __access::rbegin)
2322         (__access::rend, __access::size): Likewise.
2323         * include/bits/version.def (ranges): Update value for C++23.
2324         * include/bits/version.h: Regenerate.
2325         * libsupc++/compare (__compare): Add missing poison pill
2326         overloads.
2327         * testsuite/std/ranges/version_c++23.cc: Adjust expected value
2328         of __cpp_lib_ranges.
2329         * testsuite/std/ranges/access/p2602.cc: New test.
2331 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
2333         * include/bits/iterator_concepts.h (ranges::__cust_imove):
2334         Rename to ranges::__imove.
2335         (_IMove): Rename to _IterMove.
2336         (ranges::__cust_iswap): Rename to ranges::__iswap.
2337         (ranges::__cust): Rename to ranges::_Cpo.
2338         (ranges::__cust_access): Rename to ranges::__access.
2339         * include/bits/ranges_base.h (ranges::__cust_access): Rename to
2340         ranges::__access.
2341         (ranges::__cust): Rename to ranges::_Cpo.
2342         * include/std/concepts (ranges::__cust_swap):  Rename to
2343         ranges::__swap.
2344         (ranges::__cust): Rename to ranges::_Cpo.
2345         * libsupc++/compare (__cmp_cust): Rename to __compare.
2346         (__cmp_algo): Rename to _Cpo.
2348 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
2350         * include/bits/version.def (ranges): Update value.
2351         * include/bits/version.h: Regenerate.
2352         * include/std/ranges (__detail::__boxable): Use
2353         move_constructible instead of copy_constructible for C++23.
2354         (__detail::__box<T>): Adjust constraints for partial
2355         specialization.
2356         (single_view, transform_view): Use __box_constructible instead
2357         of copy_constructible in constraints.
2358         (zip_transform_view, adjacent_transform_view, repeat_view): Use
2359         move_constructible instead of copy_constructible in constraints.
2360         * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: Check
2361         construction from move-only argument.
2362         * testsuite/std/ranges/adaptors/transform.cc: Likewise.
2363         * testsuite/std/ranges/repeat/1.cc: Likewise.
2364         * testsuite/std/ranges/single_view.cc: Likewise.
2365         * testsuite/std/ranges/zip_transform/1.cc: Likewise.
2366         * testsuite/std/ranges/version_c++23.cc: Adjust expected value
2367         of __cpp_lib_ranges.
2369 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
2371         * testsuite/util/testsuite_iterators.h (is_customization_point_object):
2372         Remove parameter name.
2374 2023-09-06  Jonathan Wakely  <jwakely@redhat.com>
2376         * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Disable by default
2377         for freestanding.
2378         * configure: Regenerate.
2380 2023-09-04  Christophe Lyon  <christophe.lyon@linaro.org>
2382         Revert
2383         2023-09-04  Christophe Lyon  <christophe.lyon@linaro.org>
2385         PR libstdc++/111238
2386         * configure: Regenerate.
2387         * configure.ac: Call GLIBCXX_CHECK_LINKER_FEATURES in cross,
2388         non-Canadian builds.
2390 2023-09-04  Christophe Lyon  <christophe.lyon@linaro.org>
2392         PR libstdc++/111238
2393         * configure: Regenerate.
2394         * configure.ac: Call GLIBCXX_CHECK_LINKER_FEATURES in cross,
2395         non-Canadian builds.
2397 2023-09-04  Jonathan Wakely  <jwakely@redhat.com>
2399         * testsuite/26_numerics/complex/literals/types.cc: Remove
2400         dg-options and add target selector instead.
2402 2023-09-04  Jonathan Wakely  <jwakely@redhat.com>
2404         * testsuite/tr1/6_containers/utility/pair.cc: Remove dg-options
2405         and qualify ambiguous calls to get.
2406         * testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc: Adjust
2407         expected result for std::pow(float, int) as per DR 550.
2409 2023-09-04  Jonathan Wakely  <jwakely@redhat.com>
2411         * testsuite/20_util/auto_ptr/1.cc: Remove dg-options -std=c++03
2412         and add dg-warning for deprecation warnings.
2413         * testsuite/20_util/auto_ptr/2.cc: Likewise.
2414         * testsuite/20_util/auto_ptr/3.cc: Likewise.
2415         * testsuite/20_util/auto_ptr/3946.cc: Likewise.
2416         * testsuite/20_util/auto_ptr/4.cc: Likewise.
2417         * testsuite/20_util/auto_ptr/5.cc: Likewise.
2418         * testsuite/20_util/auto_ptr/6.cc: Likewise.
2419         * testsuite/20_util/auto_ptr/7.cc: Likewise.
2420         * testsuite/20_util/auto_ptr/assign_neg.cc: Likewise.
2421         * testsuite/20_util/auto_ptr/requirements/explicit_instantiation/1.cc:
2422         Likewise.
2423         * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr.cc:
2424         Likewise.
2425         * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_neg.cc:
2426         Likewise.
2427         * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc:
2428         Likewise.
2429         * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
2430         Likewise.
2431         * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr.cc:
2432         Likewise.
2433         * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr_neg.cc:
2434         Likewise.
2436 2023-09-04  Jonathan Wakely  <jwakely@redhat.com>
2438         PR libstdc++/26142
2439         * testsuite/23_containers/vector/26412-1.cc: Moved to...
2440         * testsuite/23_containers/vector/26142-1.cc: ...here.
2441         * testsuite/23_containers/vector/26412-2.cc: Moved to...
2442         * testsuite/23_containers/vector/26142-2.cc: ...here.
2444 2023-09-04  Jonathan Wakely  <jwakely@redhat.com>
2446         * testsuite/20_util/bitset/107037.cc: Add c++98_only selector.
2447         * testsuite/26_numerics/complex/56111.cc: Likewise.
2449 2023-09-04  Jonathan Wakely  <jwakely@redhat.com>
2451         * testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc:
2452         Add dg-options to restrict the test to C++98 mode.
2453         * testsuite/23_containers/list/requirements/explicit_instantiation/2.cc:
2454         Likewise.
2456 2023-09-04  Jonathan Wakely  <jwakely@redhat.com>
2458         * testsuite/20_util/expected/bad.cc: Add missing target
2459         selector.
2461 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
2463         * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
2464         expected errors.
2465         * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
2466         Likewise.
2468 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
2470         * testsuite/27_io/filesystem/iterators/91067.cc: Add
2471         -Wno-self-move to options.
2472         * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
2474 2023-09-01  Vladimir Palevich  <palevichva@gmail.com>
2476         PR libstdc++/110879
2477         * include/bits/vector.tcc (_M_realloc_insert): End guard
2478         lifetime just before assignment to class members.
2479         (_M_default_append): Likewise.
2481 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
2483         * src/c++17/fs_ops.cc (fs::absolute) [FILESYSTEM_IS_WINDOWS]:
2484         Use __resize_and_overwrite to fill buffer.
2485         (fs::read_symlink) [HAVE_READLINK]: Likewise.
2486         * src/filesystem/ops-common.h (get_temp_directory_from_env)
2487         [FILESYSTEM_IS_WINDOWS]: Likewise.
2489 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
2491         PR libstdc++/111077
2492         * include/bits/atomic_base.h (__atomic_impl::__compare_exchange):
2493         Add _AtomicRef non-type template parameter and use a loop if it
2494         is true.
2495         (__atomic_impl::compare_exchange_weak): Add _AtomicRef NTTP.
2496         (__atomic_impl::compare_exchange_strong): Likewise.
2497         (atomic_ref::compare_exchange_weak): Use true for NTTP.
2498         (atomic_ref::compare_exchange_strong): Use true for NTTP.
2499         * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
2500         Fix test to not rely on atomic_ref::load() to return an object
2501         with padding preserved.
2503 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
2505         * testsuite/27_io/filesystem/path/108636.cc: Add dg-require for
2506         filesystem support.
2508 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
2510         * src/c++20/tzdb.cc (tzdb::current_zone): Check configure macros
2511         for POSIX readlink before using filesystem::read_symlink.
2513 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
2515         * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Default to yes.
2516         * configure: Regenerate.
2518 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
2520         * include/bits/chrono_io.h (_Parser::operator()): Set failbit
2521         early if invalid values are read when _M_need & _TimeOfDay is
2522         non-zero.
2523         * testsuite/std/time/parse.cc: Check that "25:59" cannot be
2524         parsed for "%H:%M".
2526 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
2528         PR libstdc++/111162
2529         * include/bits/chrono_io.h (_Parser::Operator()): Check %C
2530         values are in range of year::min() to year::max().
2531         * testsuite/std/time/parse.cc: Check out of range centuries.
2533 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
2535         * include/std/format (__format::_Sink::_M_reset): Change second
2536         argument from iterator to offset.
2538 2023-08-24  Paul Dreik  <gccpatches@pauldreik.se>
2540         PR libstdc++/111102
2541         * testsuite/std/format/string.cc: Check wide character format
2542         strings with out-of-range widths.
2544 2023-08-24  Paul Dreik  <gccpatches@pauldreik.se>
2546         PR libstdc++/111102
2547         * include/std/format (__format::__parse_integer): Check for
2548         non-null pointer.
2550 2023-08-24  Jonathan Wakely  <jwakely@redhat.com>
2552         * testsuite/std/format/functions/format_to.cc: Avoid warning for
2553         unused variables.
2555 2023-08-24  Jonathan Wakely  <jwakely@redhat.com>
2557         * include/std/atomic: Add comment to #ifdef and fix indentation.
2558         * include/std/ostream: Check __glibcxx_syncbuf instead of
2559         __cplusplus and _GLIBCXX_HOSTED.
2560         * include/std/thread: Add comment to #ifdef.
2562 2023-08-24  Jonathan Wakely  <jwakely@redhat.com>
2564         * include/bits/version.def (__cpp_lib_ratio): Define.
2565         * include/bits/version.h: Regenerate.
2566         * include/std/ratio (quecto, ronto, yocto, zepto)
2567         (zetta, yotta, ronna, quetta): Define.
2568         * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Adjust
2569         dg-error line numbers.
2571 2023-08-24  Jonathan Wakely  <jwakely@redhat.com>
2573         * python/libstdcxx/v6/printers.py (StdLocalePrinter): New
2574         printer class.
2575         * testsuite/libstdc++-prettyprinters/locale.cc: New test.
2577 2023-08-24  Jonathan Wakely  <jwakely@redhat.com>
2579         PR libstdc++/110944
2580         * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter): Do
2581         not show template arguments.
2582         (StdVariantPrinter): Likewise.
2583         * testsuite/libstdc++-prettyprinters/compat.cc: Adjust expected
2584         output.
2585         * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
2586         * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
2588 2023-08-23  François Dumont  <fdumont@gcc.gnu.org>
2590         * testsuite/util/replacement_memory_operators.h
2591         (counter::scope): New, capture and reset counter count at construction and
2592         restore it at destruction.
2593         (counter::check_new): Add scope instantiation.
2594         * testsuite/23_containers/unordered_map/96088.cc (main):
2595         Add counter::scope instantiation.
2596         * testsuite/23_containers/unordered_multimap/96088.cc (main): Likewise.
2597         * testsuite/23_containers/unordered_multiset/96088.cc (main): Likewise.
2598         * testsuite/23_containers/unordered_set/96088.cc (main): Likewise.
2599         * testsuite/ext/malloc_allocator/deallocate_local.cc (main): Likewise.
2600         * testsuite/ext/new_allocator/deallocate_local.cc (main): Likewise.
2601         * testsuite/ext/throw_allocator/deallocate_local.cc (main): Likewise.
2602         * testsuite/ext/pool_allocator/allocate_chunk.cc (started): New global.
2603         (operator new(size_t)): Check started.
2604         (main): Set/Unset started.
2605         * testsuite/17_intro/no_library_allocation.cc: New test case.
2607 2023-08-21  Jonathan Wakely  <jwakely@redhat.com>
2609         * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
2610         Call std::set_terminate before throwing the nested exception.
2612 2023-08-18  Jonathan Wakely  <jwakely@redhat.com>
2614         PR target/111060
2615         * include/std/format (formatter): Only define specializations
2616         for 16-bit floating-point types for C++23.
2617         * include/std/limits (numeric_limits): Likewise.
2619 2023-08-18  Jonathan Wakely  <jwakely@redhat.com>
2621         * include/bits/chrono_io.h (operator<<): Make uses of wide
2622         strings with streams and std::format type-dependent on _CharT.
2623         * include/std/format [!_GLIBCXX_USE_WCHAR_T] Do not use
2624         __to_wstring_numeric.
2626 2023-08-18  Jonathan Wakely  <jwakely@redhat.com>
2628         * include/bits/chrono_io.h (operator<<): Use __format_context.
2629         * include/std/format (__format::__format_context): New alias
2630         template.
2631         [!_GLIBCXX_USE_WCHAR_T] (wformat_args, make_wformat_arg):
2632         Disable.
2634 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2636         Revert:
2637         2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2639         * config/locale/generic/c_locale.cc (__convert_to_v): Reuse
2640         double overload for long double if possible.
2642 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2644         * src/c++20/tzdb.cc (tzdata_file, leaps_file): Change type to
2645         std::string_view.
2647 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2649         * config/locale/generic/c_locale.cc (__convert_to_v): Reuse
2650         double overload for long double if possible.
2652 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2654         * src/c++98/localename.cc (is_C_locale): New function.
2655         (locale::locale(const char*)): Use is_C_locale.
2657 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2659         PR libstdc++/110945
2660         * include/bits/basic_string.h (basic_string::assign(Iter, Iter)):
2661         Dispatch to _M_replace or move assignment from a temporary,
2662         based on the iterator type.
2664 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2666         * include/std/format (formatter): Add partial specializations
2667         for extended floating-point types.
2668         * testsuite/std/format/functions/format.cc: Move test_float128()
2669         to ...
2670         * testsuite/std/format/formatter/ext_float.cc: New test.
2672 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2674         * include/bits/c++config (__gnu_cxx::__bfloat16_t): Define
2675         whenever __BFLT16_DIG__ is defined, not only for C++23.
2676         * include/std/limits (numeric_limits<bfloat16_t>): Likewise.
2677         (numeric_limits<_Float16>, numeric_limits<_Float32>)
2678         (numeric_limits<_Float64>): Likewise for other extended
2679         floating-point types.
2681 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2683         * include/experimental/internet (address_v4::to_string): Remove
2684         unused parameter name.
2686 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2688         * libsupc++/compare (__cmp_cat::__unseq): Make ctor consteval.
2689         * testsuite/18_support/comparisons/categories/zero_neg.cc: Prune
2690         excess errors caused by invalid consteval calls.
2692 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2694         * include/bits/chrono_io.h (__units_suffix_misc): Remove.
2695         (__units_suffix): Return a known suffix as string view, do not
2696         write unknown suffixes to a buffer.
2697         (__fmt_units_suffix): New function that formats the suffix using
2698         std::format_to.
2699         (operator<<, __chrono_formatter::_M_q): Use __fmt_units_suffix.
2700         (__chrono_formatter::_M_Z): Correct lifetime of wstring.
2702 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2704         * include/std/format [_GLIBCXX_USE_WCHAR_T]: Guard all wide
2705         string formatters with this macro.
2706         (__formatter_int::_M_format_int, __formatter_fp::format)
2707         (formatter<const void*, C>::format): Use __to_wstring_numeric
2708         instead of std::ctype::widen.
2709         (__formatter_fp::_M_localize): Use hardcoded wchar_t values
2710         instead of std::ctype::widen.
2711         * testsuite/std/format/functions/format.cc: Add more checks for
2712         wstring formatting of arithmetic types.
2714 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2716         * include/bits/basic_string.h (to_string(floating-point-type)):
2717         Implement using std::to_chars for C++26.
2718         * include/bits/version.def (__cpp_lib_to_string): Define.
2719         * include/bits/version.h: Regenerate.
2720         * testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc:
2721         Adjust expected result in C++26 mode.
2722         * testsuite/21_strings/basic_string/numeric_conversions/char/to_string.cc:
2723         Likewise.
2724         * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/dr1261.cc:
2725         Likewise.
2726         * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring.cc:
2727         Likewise.
2728         * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc:
2729         New test.
2730         * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring_float.cc:
2731         New test.
2732         * testsuite/21_strings/basic_string/numeric_conversions/version.cc:
2733         New test.
2735 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2737         * include/bits/basic_string.h (to_string(integral-type)): Use
2738         resize_and_overwrite when available.
2739         (__to_wstring_numeric): New helper functions.
2740         (to_wstring): Use std::to_string then __to_wstring_numeric.
2741         * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_int.cc:
2742         Remove check for no excess capacity.
2744 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2746         * include/bits/basic_string.h (__resize_and_overwrite): New
2747         function.
2748         * include/bits/basic_string.tcc (__resize_and_overwrite): New
2749         function.
2750         (resize_and_overwrite): Simplify by using reserve instead of
2751         growing the string manually. Adjust for C++11 compatibility.
2752         * include/bits/cow_string.h (resize_and_overwrite): New
2753         function.
2754         (__resize_and_overwrite): New function.
2755         * include/bits/version.def (__cpp_lib_string_resize_and_overwrite):
2756         Do not depend on cxx11abi.
2757         * include/bits/version.h: Regenerate.
2758         * include/std/format (__formatter_fp::_S_resize_and_overwrite):
2759         Remove.
2760         (__formatter_fp::format, __formatter_fp::_M_localize): Use
2761         __resize_and_overwrite instead of _S_resize_and_overwrite.
2762         * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
2763         Adjust for C++11 compatibility when included by ...
2764         * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite_ext.cc:
2765         New test.
2767 2023-08-17  Patrick Palka  <ppalka@redhat.com>
2769         * include/bits/regex.h (regex_iterator::iterator_concept):
2770         Define for C++20 as per P2770R0.
2771         (regex_token_iterator::iterator_concept): Likewise.
2772         * include/std/ranges (__detail::__as_lvalue): Define.
2773         (join_view::_Iterator): Befriend join_view.
2774         (join_view::_Iterator::_M_satisfy): Use _M_get_outer
2775         instead of _M_outer.
2776         (join_view::_Iterator::_M_get_outer): Define.
2777         (join_view::_Iterator::_Iterator): Split constructor taking
2778         _Parent argument into two as per P2770R0.  Remove constraint on
2779         default constructor.
2780         (join_view::_Iterator::_M_outer): Make this data member present
2781         only when the underlying range is forward.
2782         (join_view::_Iterator::operator++): Use _M_get_outer instead of
2783         _M_outer.
2784         (join_view::_Iterator::operator--): Use __as_lvalue helper.
2785         (join_view::_Iterator::operator==): Adjust constraints as per
2786         P2770R0.
2787         (join_view::_Sentinel::__equal): Use _M_get_outer instead of
2788         _M_outer.
2789         (join_view::_M_outer): New data member when the underlying range
2790         is non-forward.
2791         (join_view::begin): Adjust definition as per P2770R0.
2792         (join_view::end): Likewise.
2793         (join_with_view::_M_outer_it): New data member when the
2794         underlying range is non-forward.
2795         (join_with_view::begin): Adjust definition as per P2770R0.
2796         (join_with_view::end): Likewise.
2797         (join_with_view::_Iterator::_M_outer_it): Make this data member
2798         present only when the underlying range is forward.
2799         (join_with_view::_Iterator::_M_get_outer): Define.
2800         (join_with_view::_Iterator::_Iterator): Split constructor
2801         taking _Parent argument into two as per P2770R0.  Remove
2802         constraint on default constructor.
2803         (join_with_view::_Iterator::_M_update_inner): Adjust definition
2804         as per P2770R0.
2805         (join_with_view::_Iterator::_M_get_inner): Likewise.
2806         (join_with_view::_Iterator::_M_satisfy): Adjust calls to
2807         _M_get_inner.  Use _M_get_outer instead of _M_outer_it.
2808         (join_with_view::_Iterator::operator==): Adjust constraints
2809         as per P2770R0.
2810         (join_with_view::_Sentinel::operator==): Use _M_get_outer
2811         instead of _M_outer_it.
2812         * testsuite/std/ranges/adaptors/p2770r0.cc: New test.
2814 2023-08-17  Patrick Palka  <ppalka@redhat.com>
2816         PR libstdc++/108827
2817         * include/std/ranges (__adaptor::_RangeAdaptorClosure):
2818         Convert into a CRTP class template.  Move hidden operator|
2819         friends into namespace scope and adjust their constraints.
2820         (__closure::__is_range_adaptor_closure_fn): Define.
2821         (__closure::__is_range_adaptor_closure): Define.
2822         (__adaptor::_Partial): Adjust use of _RangeAdaptorClosure.
2823         (__adaptor::_Pipe): Likewise.
2824         (views::_All): Likewise.
2825         (views::_Join): Likewise.
2826         (views::_Common): Likewise.
2827         (views::_Reverse): Likewise.
2828         (views::_Elements): Likewise.
2829         (views::_Adjacent): Likewise.
2830         (views::_AsRvalue): Likewise.
2831         (views::_Enumerate): Likewise.
2832         (views::_AsConst): Likewise.
2833         * testsuite/std/ranges/adaptors/all.cc: Reinstate assertion
2834         expecting that adding empty range adaptor closure objects to a
2835         pipeline doesn't increase the size of a pipeline.
2837 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2839         * include/std/format (__format::_Pres_type): Add _Pres_F.
2840         (__formatter_fp::parse): Use _Pres_F for 'F'.
2841         (__formatter_fp::format): Set __upper for _Pres_F.
2842         * testsuite/std/format/functions/format.cc: Check formatting of
2843         infinity and NaN for each presentation type.
2845 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2847         * include/Makefile.in: Regenerate.
2849 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2851         * testsuite/24_iterators/move_iterator/p2520r0.cc: Add no_pch.
2852         * testsuite/std/format/functions/format.cc: Likewise.
2853         * testsuite/std/format/functions/format_c++23.cc: Likewise.
2855 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2857         * testsuite/lib/dg-options.exp (add_options_for_no_pch): Remove
2858         any "-include bits/stdc++.h" from options and add the macro to
2859         the existing options instead of replacing them.
2861 2023-08-16  Jonathan Wakely  <jwakely@redhat.com>
2863         * include/bits/basic_string.tcc (resize_and_overwrite): Invoke
2864         the callable with the same size as resize_and_overwrite was
2865         called with.
2866         * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
2867         Check with small values for the new size.
2868         * testsuite/std/format/functions/format.cc: Check wide
2869         formatting of double values that produce small strings.
2870         * testsuite/std/format/functions/format_c++23.cc: New test.
2872 2023-08-16  Jonathan Wakely  <jwakely@redhat.com>
2874         * include/bits/version.def (stds): Update value for C++23.
2875         * include/bits/version.h: Regenerate.
2877 2023-08-16  Jonathan Wakely  <jwakely@redhat.com>
2879         * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
2880         Fix name of upstream file this was derived from.
2881         * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
2882         Likewise.
2883         * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
2884         Likewise.
2885         * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
2886         Likewise.
2887         * testsuite/25_algorithms/pstl/alg_sorting/set_util.h: Likewise.
2889 2023-08-16  Arsen Arsenović  <arsen@aarsen.me>
2891         * libsupc++/typeinfo: Switch to bits/version.h for
2892         __cpp_lib_constexpr_typeinfo.
2893         * libsupc++/new: Switch to bits/version.h for
2894         __cpp_lib_{launder,hardware_interference_size,destroying_delete}.
2895         (launder): Guard behind __cpp_lib_launder.
2896         (hardware_destructive_interference_size)
2897         (hardware_constructive_interference_size): Guard behind
2898         __cpp_lib_hardware_interference_size.
2899         * libsupc++/exception: Switch to bits/version.h for
2900         __cpp_lib_uncaught_exceptions.
2901         (uncaught_exceptions): Guard behind __cpp_lib_uncaught_exceptions.
2902         * libsupc++/compare: Switch to bits/version.h for
2903         __cpp_lib_three_way_comparison.
2904         (three_way_comparable, three_way_comparable_with)
2905         (compare_three_way, weak_order, strong_order, partial_order):
2906         Guard behind __cpp_lib_three_way_comparison >= 201907L.
2907         * include/std/chrono: Drop __cpp_lib_chrono definition.
2908         * include/std/vector: Switch to bits/version.h for
2909         __cpp_lib_erase_if.
2910         (erase, erase_if): Guard behind __cpp_lib_erase_if.
2911         * include/std/variant: Switch to bits/version.h for
2912         __cpp_lib_variant.  Guard whole header behind that FTM.
2913         * include/std/utility: Switch to bits/version.h for
2914         __cpp_lib_{exchange_function,constexpr_algorithms,as_const},
2915         __cpp_lib_{integer_comparison_functions,to_underlying}, and
2916         __cpp_lib_unreachable.
2917         (exchange): Guard behind __cpp_lib_exchange_function.
2918         (cmp_equal, cmp_not_equal, cmp_less, cmp_greater, cmp_less_equal)
2919         (cmp_greater_equal, in_range): Guard behind
2920         __cpp_lib_integer_comparison_functions.
2921         (to_underlying): Guard behind __cpp_lib_to_underlying.
2922         (unreachable): Guard behind __cpp_lib_unreachable.
2923         * include/std/type_traits: Switch to bits/version.h for
2924         __cpp_lib_is_{null_pointer,final,nothrow_convertible,aggregate},
2925         __cpp_lib_is_{constant_evaluated,invocable,layout_compatible},
2926         __cpp_lib_is_{pointer_interconvertible,scoped_enum,swappable},
2927         __cpp_lib_{logical_traits,reference_from_temporary,remove_cvref},
2928         __cpp_lib_{result_of_sfinae,transformation_trait_aliases},
2929         __cpp_lib_{type_identity,type_trait_variable_templates},
2930         __cpp_lib_{unwrap_ref,void_t,integral_constant_callable},
2931         __cpp_lib_{bool_constant,bounded_array_traits}, and
2932         __cpp_lib_has_unique_object_representations.
2933         (integral_constant::operator()): Guard behind
2934         __cpp_lib_integral_constant_callable.
2935         (bool_constant): Guard behind __cpp_lib_bool_constant.
2936         (conjunction, disjunction, negation, conjunction_v, disjunction_v)
2937         (negation_v): Guard behind __cpp_lib_logical_traits.
2938         (is_null_pointer): Guard behind __cpp_lib_is_null_pointer.
2939         (is_final): Guard behind __cpp_lib_is_final.
2940         (is_nothrow_convertible, is_nothrow_convertible_v): Guard behind
2941         __cpp_lib_is_nothrow_convertible.
2942         (remove_const_t, remove_volatile_t, remove_cv_t)
2943         (add_const_t, add_volatile_t, add_cv_t): Guard behind
2944         __cpp_lib_transformation_trait_aliases.
2945         (void_t): Guard behind __cpp_lib_void_t.
2946         (is_swappable_with_v, is_nothrow_swappable_with_v)
2947         (is_swappable_with, is_nothrow_swappable_with): Guard behind
2948         __cpp_lib_is_swappable.
2949         (is_nothrow_invocable_r, is_invocable_r, invoke_result)
2950         (is_invocable, invoke_result_t): Guard behind
2951         __cpp_lib_is_invocable.
2952         (alignment_of_v, extent_v, has_virtual_destructor_v)
2953         (is_abstract_v, is_arithmetic_v, is_array_v)
2954         (is_assignable_v, is_base_of_v, is_class_v, is_compound_v)
2955         (is_constructible_v, is_const_v, is_convertible_v)
2956         (is_copy_assignable_v, is_copy_constructible_v)
2957         (is_default_constructible_v, is_destructible_v)
2958         (is_empty_v, is_enum_v, is_final_v, is_floating_point_v)
2959         (is_function_v, is_fundamental_v, is_integral_v)
2960         (is_invocable_r_v, is_invocable_v, is_literal_type_v)
2961         (is_lvalue_reference_v, is_member_function_pointer_v)
2962         (is_member_object_pointer_v, is_member_pointer_v)
2963         (is_move_assignable_v, is_move_constructible_v)
2964         (is_nothrow_assignable_v, is_nothrow_constructible_v)
2965         (is_nothrow_copy_assignable_v, is_nothrow_copy_constructible_v)
2966         (is_nothrow_default_constructible_v, is_nothrow_destructible_v)
2967         (is_nothrow_invocable_r_v, is_nothrow_invocable_v)
2968         (is_nothrow_move_assignable_v, is_nothrow_move_constructible_v)
2969         (is_null_pointer_v, is_object_v, is_pod_v, is_pointer_v)
2970         (is_polymorphic_v, is_reference_v, is_rvalue_reference_v)
2971         (is_same_v, is_scalar_v, is_signed_v, is_standard_layout_v)
2972         (is_trivially_assignable_v, is_trivially_constructible_v)
2973         (is_trivially_copyable_v, is_trivially_copy_assignable_v)
2974         (is_trivially_copy_constructible_v)
2975         (is_trivially_default_constructible_v)
2976         (is_trivially_destructible_v, is_trivially_move_assignable_v)
2977         (is_trivially_move_constructible_v, is_trivial_v, is_union_v)
2978         (is_unsigned_v, is_void_v, is_volatile_v, rank_v, as variadic):
2979         Guard behind __cpp_lib_type_trait_variable_templates.
2980         (has_unique_object_representations)
2981         (has_unique_object_representations_v): Guard behind
2982         __cpp_lib_has_unique_object_representation.
2983         (is_aggregate): Guard behind __cpp_lib_is_aggregate.
2984         (remove_cvref, remove_cvref_t): Guard behind
2985         __cpp_lib_remove_cvref.
2986         (type_identity, type_identity_t): Guard behind
2987         __cpp_lib_type_identity.
2988         (unwrap_reference, unwrap_reference_t, unwrap_ref_decay)
2989         (unwrap_ref_decay_t): Guard behind __cpp_lib_unwrap_ref.
2990         (is_bounded_array_v, is_unbounded_array_v, is_bounded_array)
2991         (is_unbounded_array): Guard behind __cpp_lib_bounded_array_traits.
2992         (is_scoped_enum, is_scoped_enum_v): Guard behind
2993         __cpp_lib_is_scoped_enum.
2994         (reference_constructs_from_temporary)
2995         (reference_constructs_from_temporary_v): Guard behind
2996         __cpp_lib_reference_from_temporary.
2997         * include/std/tuple: Switch to bits/version.h for
2998         __cpp_lib_{constexpr_tuple,tuple_by_type,apply_make_from_tuple}.
2999         (get<T>): Guard behind __cpp_lib_tuple_by_type.
3000         (apply): Guard behind __cpp_lib_apply.
3001         (make_from_tuple): Guard behind __cpp_lib_make_from_tuple.
3002         * include/std/syncstream: Switch to bits/version.h for
3003         __cpp_lib_syncbuf.  Guard header behind that FTM.
3004         * include/std/string_view: Switch to bits/version.h for
3005         __cpp_lib_{string_{view,contains},constexpr_string_view} and
3006         __cpp_lib_starts_ends_with.
3007         (basic_string_view::starts_with, basic_string_view::ends_with):
3008         Guard behind __cpp_lib_starts_ends_with.
3009         [C++23 && _GLIBCXX_HOSTED && !defined(__cpp_lib_string_contains)]:
3010         Assert as impossible ithout a bug in C++23.
3011         * include/std/string: Switch to bits/version.h for
3012         __cpp_lib_erase_if.
3013         (erase, erase_if): Guard behind __cpp_lib_erase_if.
3014         * include/std/thread: Switch to bits/version.h for
3015         __cpp_lib_jthread.
3016         * include/std/stop_token: Switch to bits/version.h for
3017         __cpp_lib_jthread.
3018         * include/std/spanstream: Switch to bits/version.h for
3019         __cpp_lib_spanstream.  Guard header behind that FTM.
3020         * include/std/span: Switch to bits/version.h for __cpp_lib_span.
3021         Guard header behind that FTM.
3022         * include/std/source_location: Switch to bits/version.h for
3023         __cpp_lib_source_location.  Guard header with that FTM.
3024         * include/std/shared_mutex: Switch to bits/version.h for
3025         __cpp_lib_shared{,_timed}_mutex.
3026         (shared_mutex): Guard behind __cpp_lib_shared_mutex.
3027         * include/std/semaphore: Switch to bits/version.h for
3028         __cpp_lib_semaphore.  Guard header behind that FTM.
3029         * include/std/ranges: Switch to bits/version.h for
3030         __cpp_lib_ranges_{zip,chunk{,_by},slide,join_with},
3031         __cpp_lib_ranges_{repeat_stride,cartesian_product,as_rvalue},
3032         and __cpp_lib_ranges_{as_const,enumerate,iota}.
3033         (ranges::zip et al, ranges::chunk et al, ranges::slide et al)
3034         (ranges::chunk_by et al, ranges::join_with et al)
3035         (ranges::stride et al, ranges::cartesian_product et al)
3036         (ranges::as_rvalue et al, ranges::as_const et al)
3037         (ranges::enumerate et al): Guard behind appropriate FTM.
3038         * include/std/optional: Switch to bits/version.h for
3039         __cpp_lib_optional.  Guard header behind that FTM.
3040         * include/std/numeric: Switch to bits/version.h for
3041         __cpp_lib_{gcd{,_lcm},lcm,constexpr_numeric,interpolate}
3042         and __cpp_lib_parallel_algorithm.
3043         (gcd, lcm): Guard behind __cpp_lib_gcd_lcm.
3044         (midpoint): Guard behind __cpp_lib_interpolate.
3045         * include/std/numbers: Switch to bits/version.h for
3046         __cpp_lib_math_constants.  Guard header behind that FTM.
3047         * include/std/mutex: Switch to bits/version.h for
3048         __cpp_lib_scoped_lock.
3049         (scoped_Lock): Guard behind __cpp_lib_scoped_lock.
3050         * include/std/memory_resource: Switch to bits/version.h for
3051         __cpp_lib_{polymorphic_allocator,memory_resource}.
3052         (synchronized_pool_resource): Guard behind
3053         __cpp_lib_memory_resource >= 201603L.
3054         (polymorphic_allocator): Guard behind
3055         __cpp_lib_polymorphic_allocator.
3056         * include/std/memory: Switch to bits/version.h for
3057         __cpp_lib_{parallel_algorithm,atomic_value_initialization}.
3058         * include/std/list: Switch to bits/version.h for
3059         __cpp_lib_erase_if.
3060         (erase, erase_if): Guard behind __cpp_lib_erase_if.
3061         * include/std/latch: Switch to bits/version.h for __cpp_lib_latch.
3062         Guard header behind that FTM.
3063         * include/std/iterator: Switch to bits/version.h for
3064         __cpp_lib_null_iterators.
3065         * include/std/iomanip: Switch to bits/version.h for
3066         __cpp_lib_quoted_string_io.
3067         (quoted): Guard behind __cpp_lib_quoted_string_io.
3068         * include/std/functional: Switch to bits/version.h for
3069         __cpp_lib_{invoke{,_r},constexpr_functional,bind_front} and
3070         __cpp_lib_{not_fn,booyer_moore_searcher}.
3071         (invoke): Guard behind __cpp_lib_invoke.
3072         (invoke_r): Guard behind __cpp_lib_invoke_r.
3073         (bind_front): Guard behind __cpp_lib_bind_front.
3074         (not_fn): Guard behind __cpp_lib_not_fn.
3075         (boyer_moore_searcher, boyer_moore_horspool_searcher): Guard
3076         definition behind __cpp_lib_boyer_moore_searcher.
3077         * include/std/forward_list: Switch to bits/version.h for
3078         __cpp_lib_erase_if.
3079         (erase, erase_if): Guard behind __cpp_lib_erase_if.
3080         * include/std/format: Switch to bits/version.h for
3081         __cpp_lib_format.  Guard header behind that FTM.
3082         * include/std/filesystem: Switch to bits/version.h for
3083         __cpp_lib_filesystem.  Guard header behind that FTM.
3084         * include/std/expected: Switch to bits/version.h for
3085         __cpp_lib_expected.  Guard header behind it.
3086         * include/std/execution: Switch to bits/version.h for
3087         __cpp_lib_{execution,parallel_algorithm}.  Guard header behind
3088         either.
3089         * include/std/deque: Switch to bits/version.h for
3090         __cpp_lib_erase_if.
3091         (erase, erase_if): Guard behind __cpp_lib_erase_if.
3092         * include/std/coroutine: Switch to bits/version.h for
3093         __cpp_lib_coroutine.  Guard header behind that FTM.
3094         * include/std/concepts: Switch to bits/version.h for
3095         __cpp_lib_concepts.  Guard header behind that FTM.
3096         * include/std/complex: Switch to bits/version.h for
3097         __cpp_lib_{complex_udls,constexpr_complex}.
3098         (operator""if, operator""i, operator""il): Guard behind
3099         __cpp_lib_complex_udls.
3100         * include/std/charconv: Swtich to bits/version.h for
3101         __cpp_lib_{to_chars,constexpr_charconv}.
3102         * include/std/bitset: Switch to bits/version.h for
3103         __cpp_lib_constexpr_bitset.
3104         * include/std/bit: Switch to bits/version.h for
3105         __cpp_lib_{bit_cast,byteswap,bitops,int_pow2,endian}.
3106         (bit_cast): Guard behind __cpp_lib_bit_cast.
3107         (byteswap): Guard behind __cpp_lib_byteswap.
3108         (rotl, rotr, countl_zero, countl_one, countr_zero, countr_one)
3109         (popcount): Guard behind __cpp_lib_bitops.
3110         (has_single_bit, bit_ceil, bit_floor, bit_width): Guard behind
3111         __cpp_lib_int_pow2.
3112         (endian): Guard behind __cpp_lib_endian.
3113         * include/std/barrier: Switch to bits/version.h for
3114         __cpp_lib_barrier.  Guard header behind that FTM.
3115         * include/std/atomic: Switch to bits/version.h for
3116         __cpp_lib_atomic_{is_always_lock_free,float,ref}
3117         and __cpp_lib_lock_free_type_aliases.
3118         (*::is_always_lock_free): Guard behind
3119         __cpp_lib_atomic_is_always_lock_free.
3120         (atomic<float>): Guard behind __cpp_lib_atomic_float.
3121         (atomic_ref): Guard behind __cpp_lib_atomic_ref.
3122         (atomic_signed_lock_free, atomic_unsigned_lock_free): Guard behind
3123         __cpp_lib_atomic_lock_free_type_aliases.
3124         * include/std/array: Switch to bits/version.h for
3125         __cpp_lib_to_array.
3126         (to_array): Guard behind __cpp_lib_to_array.
3127         * include/std/any: Switch to bits/version.h for __cpp_lib_any.
3128         Guard header behind that FTM.
3129         * include/std/algorithm: Switch to bits/version.h for
3130         __cpp_lib_parallel_algorithm.
3131         * include/c_global/cstddef: Switch to bits/version.h for
3132         __cpp_lib_byte.
3133         (byte): Guard behind __cpp_lib_byte.
3134         * include/c_global/cmath: Switch to bits/version.h for
3135         __cpp_lib_{hypot,interpolate}.
3136         (hypot3): Guard behind __cpp_lib_hypot.
3137         (lerp): Guard behind __cpp_lib_interpolate.
3138         * include/c_compatibility/stdatomic.h: Switch to
3139         bits/stl_version.h for __cpp_lib_atomic.  Guard header behind that
3140         FTM.
3141         * include/bits/utility.h: Switch to bits/version.h for
3142         __cpp_lib_{tuple_element_t,integer_sequence,ranges_zip}.
3143         (tuple_element_t): Guard behind __cpp_lib_tuple_element_t.
3144         (integer_sequence et al): Guard behind __cpp_lib_integer_sequence.
3145         * include/bits/uses_allocator_args.h: Switch to bits/version.h for
3146         __cpp_lib_make_obj_using_allocator.  Guard header behind that FTM.
3147         * include/bits/unordered_map.h: Switch to bits/version.h for
3148         __cpp_lib_unordered_map_try_emplace.
3149         (try_emplace): Guard behind __cpp_lib_unordered_map_try_emplace.
3150         * include/bits/unique_ptr.h: Switch to bits/version.h for
3151         __cpp_lib_{constexpr_memory,make_unique}.
3152         (make_unique): Guard behind __cpp_lib_make_unique.
3153         * include/bits/stl_vector.h: Switch to bits/version.h for
3154         __cpp_lib_constexpr_vector.
3155         * include/bits/stl_uninitialized.h: Switch to bits/version.h for
3156         __cpp_lib_raw_memory_algorithms.
3157         (uninitialized_default_construct)
3158         (uninitialized_default_construct_n, uninitialized_move)
3159         (uninitialized_move_n, uninitialized_value_construct)
3160         (uninitialized_value_construct_n): Guard behind
3161         __cpp_lib_raw_memory_algorithms.
3162         * include/bits/stl_tree.h: Switch to bits/version.h for
3163         __cpp_lib_generic_associative_lookup.
3164         * include/bits/stl_stack.h: Switch to bits/version.h for
3165         __cpp_lib_adaptor_iterator_pair_constructor.
3166         (stack): Guard iterator-pair constructor behind
3167         __cpp_lib_adaptor_iterator_pair_constructor.
3168         * include/bits/stl_queue.h: Switch to bits/version.h for
3169         __cpp_lib_adaptor_iterator_pair_constructor.
3170         (queue): Guard iterator-pair constructor behind
3171         __cpp_lib_adaptor_iterator_pair_constructor.
3172         * include/bits/stl_pair.h: Switch to bits/version.h for
3173         __cpp_lib_{concepts,tuples_by_type}.
3174         (get): Guard type-getting overloads behind
3175         __cpp_lib_tuples_by_type.
3176         * include/bits/stl_map.h: Switch to bits/version.h for
3177         __cpp_lib_map_try_emplace.
3178         (map<>::try_emplace): Guard behind __cpp_lib_map_try_emplace.
3179         * include/bits/stl_list.h: Switch to bits/version.h for
3180         __cpp_lib_list_remove_return_type.
3181         (__remove_return_type, _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG)
3182         [C++20]: guard behind __cpp_lib_list_remove_return_type instead.
3183         * include/bits/stl_iterator.h: Switch to bits/version.h for
3184         __cpp_lib_{constexpr_iterator,array_constexpr} and
3185         __cpp_lib_{make_reverse_iterator,move_iterator_concept}.
3186         (make_reverse_iterator): Guard behind
3187         __cpp_lib_make_reverse_iterator.
3188         (iterator_concept et al): Guard __cpp_lib_move_iterator_concept
3189         changes behind that FTM.
3190         * include/bits/stl_function.h: Switch to bits/version.h for
3191         __cpp_lib_transparent_operators.
3192         (equal_to, not_equal_to, greater, less, greater_equal)
3193         (less_equal, bit_and, bit_or, bit_xor, bit_not, logical_and)
3194         (logical_or, logical_not, plus, minus, multiplies, divides)
3195         (modulus, negate): Guard '= void' fwdecls behind
3196         __cpp_lib_transparent_operators.
3197         (plus<void>, minus<void>, multiplies<void>, divides<void>)
3198         (modulus<void>, negate<void>, logical_and<void>, logical_or<void>)
3199         (logical_not<void>, bit_and<void>, bit_or<void>, bit_xor<void>)
3200         (equal_to<void>, not_equal_to<void>, greater<void>, less<void>)
3201         (greater_equal<void>, less_equal<void>, bit_not<void>)
3202         (__has_is_transparent): Guard behind
3203         __cpp_lib_transparent_operators.
3204         * include/bits/stl_algobase.h: Switch to bits/version.h for
3205         __cpp_lib_robust_nonmodifying_seq_ops.
3206         (robust equal, mismatch): Guard behind
3207         __cpp_lib_nonmember_container_access.
3208         * include/bits/stl_algo.h: Swtich to bits/version.h for
3209         __cpp_lib_{clamp,sample}.
3210         (clamp): Guard behind __cpp_lib_clamp.
3211         (sample): Guard behind __cpp_lib_sample.
3212         * include/bits/specfun.h: Switch to bits/version.h for
3213         __cpp_lib_math_special_functions and __STDCPP_MATH_SPEC_FUNCS__.
3214         * include/bits/shared_ptr_base.h: Switch to bits/version.h for
3215         __cpp_lib_{smart_ptr_for_overwrite,shared_ptr_arrays}.
3216         (_Sp_overwrite_tag): Guard behind
3217         __cpp_lib_smart_ptr_for_overwrite.
3218         * include/bits/shared_ptr_atomic.h: Switch to bits/version.h for
3219         __cpp_lib_atomic_shared_ptr.
3220         * include/bits/shared_ptr.h: Switch to bits/version.h for
3221         __cpp_lib_{enable_shared_from_this,shared_ptr_weak_type}.
3222         (shared_ptr<T>::weak_type): Guard behind
3223         __cpp_lib_shared_ptr_weak_type.
3224         (enable_shared_from_this<T>::weak_from_this): Guard behind
3225         __cpp_lib_enable_shared_from_this.
3226         * include/bits/ranges_cmp.h: Switch to bits/version.h for
3227         __cpp_lib_ranges.
3228         * include/bits/ranges_algo.h: Switch to bits/version.h for
3229         __cpp_lib_{shift,ranges_{contains,find_last,fold,iota}}.
3230         * include/bits/range_access.h: Switch to bits/version.h for
3231         __cpp_lib_nonmember_container_access
3232         (size, empty, data): Guard behind
3233         __cpp_lib_nonmember_container_access.
3234         (ssize): Guard behind __cpp_lib_ssize.
3235         * include/bits/ptr_traits.h: Switch to bits/version.h. for
3236         __cpp_lib_{constexpr_memory,to_address}.
3237         (to_address): Guard behind __cpp_lib_to_address.
3238         * include/bits/node_handle.h: Switch to bits/version.h for
3239         __cpp_lib_node_extract.  Guard header behind that FTM.
3240         * include/bits/move_only_function.h: Switch to bits/version.h for
3241         __cpp_lib_move_only_function.  Guard header behind that FTM.
3242         * include/bits/move.h: Switch to bits/version.h for
3243         __cpp_lib_addressof_constexpr.
3244         * include/bits/ios_base.h: Switch to bits/version.h for
3245         __cpp_lib_ios_noreplace.
3246         (noreplace): Guard with __cpp_lib_ios_noreplace.
3247         * include/bits/hashtable.h: Switch to bits/version.h for
3248         __cpp_lib_generic_unordered_lookup.
3249         (_M_equal_range_tr, _M_count_tr, _M_find_tr): Guard behind
3250         __cpp_lib_generic_unordered_lookup.
3251         * include/bits/forward_list.h: Switch to bits/version.h for
3252         __cpp_lib_list_remove_return_type.
3253         (__remove_return_type): Guard behind
3254         __cpp_lib_list_remove_return_type.
3255         * include/bits/erase_if.h: Switch to bits/version.h for
3256         __cpp_lib_erase_if.
3257         * include/bits/cow_string.h: Switch to bits/version.h for
3258         __cpp_lib_constexpr_string.
3259         * include/bits/chrono.h: Swtich to bits/version.h for
3260         __cpp_lib_chrono{,_udls}.
3261         (ceil): Guard behind __cpp_lib_chrono.
3262         (operator""ns et al): Guard behind __cpp_lib_chrono_udls.
3263         * include/bits/char_traits.h: Switch to bits/version.h for
3264         __cpp_lib_constexpr_char_traits.
3265         * include/bits/basic_string.h: Switch to bits/version.h for
3266         __cpp_lib_{constexpr_string,string_{resize_and_overwrite,udls}}.
3267         (resize_and_overwrite): Guard behind
3268         __cpp_lib_string_resize_and_overwrite.
3269         (operator""s): Guard behind __cpp_lib_string_udls.
3270         * include/bits/atomic_wait.h: Switch to bits/version.h for
3271         __cpp_lib_atomic_wait.  Guard header behind that FTM.
3272         * include/bits/atomic_base.h: Switch to bits/version.h for
3273         __cpp_lib_atomic_value_initialization and
3274         __cpp_lib_atomic_flag_test.
3275         (atomic_flag::test): Guard behind __cpp_lib_atomic_flag_test,
3276         rather than C++20.
3277         * include/bits/allocator.h: Switch to bits/version.h for
3278         __cpp_lib_incomplete_container_elements.
3279         * include/bits/alloc_traits.h: Switch to using bits/version.h for
3280         __cpp_lib_constexpr_dynamic_alloc and
3281         __cpp_lib_allocator_traits_is_always_equal.
3282         * include/bits/align.h: Switch to bits/version.h for defining
3283         __cpp_lib_assume_aligned.
3284         (assume_aligned): Guard with __cpp_lib_assume_aligned.
3285         * include/bits/algorithmfwd.h: Switch to bits/version.h for
3286         defining __cpp_lib_constexpr_algorithms.
3287         * include/std/stacktrace: Switch to bits/version.h for
3288         __cpp_lib_stacktrace.  Guard header behind that FTM.
3289         * testsuite/23_containers/array/tuple_interface/get_neg.cc:
3290         Update line numbers.
3292 2023-08-16  Arsen Arsenović  <arsen@aarsen.me>
3294         * include/Makefile.am (bits_freestanding): Add version.h.
3295         (allcreated): Add version.h.
3296         (${bits_srcdir}/version.h): New rule.  Regenerates
3297         version.h out of version.{def,tpl}.
3298         * include/Makefile.in: Regenerate.
3299         * include/bits/version.def: New file.  Declares a list of
3300         all feature test macros, their values and their preconditions.
3301         * include/bits/version.tpl: New file.  Turns version.def
3302         into a sequence of #if blocks.
3303         * include/bits/version.h: New file.  Generated from
3304         version.def.
3305         * include/std/version: Replace with a __glibcxx_want_all define
3306         and bits/version.h include.
3308 2023-08-14  Paul Dreik  <gccpatches@pauldreik.se>
3310         PR libstdc++/110860
3311         * include/std/format (__formatter_fp::format): Use frexp instead
3312         of log10.
3314 2023-08-12  Ken Matsui  <kmatsui@gcc.gnu.org>
3316         * include/std/type_traits (true_type): Use __bool_constant
3317         instead.
3318         (false_type): Likewise.
3319         (bool_constant): Likewise.
3321 2023-08-11  Jonathan Wakely  <jwakely@redhat.com>
3323         PR libstdc++/110990
3324         * include/std/format (_Seq_sink::get): Only call _M_overflow if
3325         its precondition is met.
3326         (_Iter_sink::_M_finish): Likewise.
3327         (_Iter_sink<C, ContigIter>::_M_overflow): Only switch to the
3328         internal buffer after running out of space.
3329         (_Iter_sink<C, ContigIter>::_M_finish): Do not use _M_overflow.
3330         (_Counting_sink::count): Likewise.
3331         * testsuite/std/format/functions/format_to_n.cc: Check cases
3332         where the output fits into the buffer.
3334 2023-08-11  Jonathan Wakely  <jwakely@redhat.com>
3336         PR libstdc++/104167
3337         * include/bits/chrono_io.h (operator|=, operator|): Add noexcept
3338         to _ChronoParts operators.
3339         (from_stream, parse): Define new functions.
3340         (__detail::_Parse, __detail::_Parser): New class templates.
3341         * include/std/chrono (__cpp_lib_chrono): Define to 201907L for
3342         C++20.
3343         * include/std/version (__cpp_lib_chrono): Likewise.
3344         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
3345         Adjust expected value of feature test macro.
3346         * testsuite/20_util/duration/io.cc: Test parsing.
3347         * testsuite/std/time/clock/file/io.cc: Likewise.
3348         * testsuite/std/time/clock/gps/io.cc: Likewise.
3349         * testsuite/std/time/clock/system/io.cc: Likewise.
3350         * testsuite/std/time/clock/tai/io.cc: Likewise.
3351         * testsuite/std/time/clock/utc/io.cc: Likewise.
3352         * testsuite/std/time/day/io.cc: Likewise.
3353         * testsuite/std/time/month/io.cc: Likewise.
3354         * testsuite/std/time/month_day/io.cc: Likewise.
3355         * testsuite/std/time/weekday/io.cc: Likewise.
3356         * testsuite/std/time/year/io.cc: Likewise.
3357         * testsuite/std/time/year_month/io.cc: Likewise.
3358         * testsuite/std/time/year_month_day/io.cc: Likewise.
3359         * testsuite/std/time/syn_c++20.cc: Check value of macro and for
3360         the existence of parse and from_stream in namespace chrono.
3361         * testsuite/std/time/clock/local/io.cc: New test.
3362         * testsuite/std/time/parse.cc: New test.
3364 2023-08-11  Jonathan Wakely  <jwakely@redhat.com>
3366         PR libstdc++/110860
3367         * include/std/format (__formatter_fp::format): Do not call log10
3368         with zero values.
3370 2023-08-11  Jonathan Wakely  <jwakely@redhat.com>
3372         * python/libstdcxx/v6/printers.py (StdChronoCalendarPrinter):
3373         Check for out-of-range month an weekday indices.
3374         * testsuite/libstdc++-prettyprinters/chrono.cc: Check invalid
3375         month and weekday values.
3377 2023-08-11  Jonathan Wakely  <jwakely@redhat.com>
3379         * include/bits/stl_iterator.h (__clamped_iter_cat_t): Remove.
3381 2023-08-10  Jonathan Wakely  <jwakely@redhat.com>
3383         PR libstdc++/110974
3384         * include/std/format (_Spec::_S_parse_width_or_precision): Check
3385         for empty range before dereferencing iterator.
3386         * testsuite/std/format/string.cc: Check for expected exception.
3387         Fix expected exception message in test_pr110862() and actually
3388         call it.
3390 2023-08-10  Jonathan Wakely  <jwakely@redhat.com>
3392         PR libstdc++/110968
3393         * include/std/format (__formatter_fp::format): Check return
3394         value of _M_localize.
3395         * testsuite/std/format/functions/format.cc: Check classic
3396         locale.
3398 2023-08-10  Jonathan Wakely  <jwakely@redhat.com>
3400         PR libstdc++/110970
3401         * include/bits/stl_iterator.h (__detail::__move_iter_cat): Use
3402         __iter_category_t.
3403         (iterator_traits<common_iterator<I, S>>::_S_iter_cat): Likewise.
3404         (__detail::__basic_const_iterator_iter_cat): Likewise.
3405         * include/bits/stl_iterator_base_types.h (__iterator_category_t):
3406         Rename to __iter_category_t.
3408 2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
3410         * include/bits/chrono.h (duration_cast): Do not use braces
3411         around statements for C++11 constexpr rules.
3412         * include/bits/stl_algobase.h (__lg): Rewrite as a single
3413         statement for C++11 constexpr rules.
3414         * include/experimental/bits/fs_path.h (path::string): Use
3415         _GLIBCXX17_CONSTEXPR not _GLIBCXX_CONSTEXPR for 'if constexpr'.
3416         * include/std/charconv (__to_chars_8): Initialize variable for
3417         C++17 constexpr rules.
3419 2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
3421         * include/bits/list.tcc (list::sort(Cmp)): Fix -Wsign-compare
3422         warning for loop condition.
3424 2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
3426         * include/std/complex: Add diagnostic pragma for clang.
3428 2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
3430         * include/bits/shared_ptr_atomic.h (atomic): Change class-head
3431         to struct.
3432         * include/bits/stl_tree.h (_Rb_tree_merge_helper): Change
3433         class-head to struct in friend declaration.
3434         * include/std/chrono (tzdb_list::_Node): Likewise.
3435         * include/std/future (_Task_state_base, _Task_state): Likewise.
3436         * include/std/scoped_allocator (__inner_type_impl): Likewise.
3437         * include/std/valarray (_BinClos, _SClos, _GClos, _IClos)
3438         (_ValFunClos, _RefFunClos): Change class-head to struct.
3440 2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
3442         * include/bits/alloc_traits.h (allocate): Add [[maybe_unused]]
3443         attribute.
3444         * include/bits/regex_executor.tcc: Remove name of unused
3445         parameter.
3446         * include/bits/shared_ptr_atomic.h (atomic_is_lock_free):
3447         Likewise.
3448         * include/bits/stl_uninitialized.h: Likewise.
3449         * include/bits/streambuf_iterator.h (operator==): Likewise.
3450         * include/bits/uses_allocator.h: Likewise.
3451         * include/c_global/cmath (isfinite, isinf, isnan): Likewise.
3452         * include/std/chrono (zoned_time): Likewise.
3453         * include/std/future (__future_base::_S_allocate_result):
3454         Likewise.
3455         (packaged_task): Likewise.
3456         * include/std/optional (_Optional_payload_base): Likewise.
3457         * include/std/scoped_allocator (__inner_type_impl): Likewise.
3458         * include/std/tuple (_Tuple_impl): Likewise.
3460 2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
3462         * include/bits/new_allocator.h (__new_allocator): Define copy
3463         assignment operator as defaulted.
3464         * include/std/complex (complex<float>, complex<double>)
3465         (complex<long double>): Define copy constructor as defaulted.
3467 2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
3469         * include/std/format: Fix some warnings.
3470         (__format::__write(Ctx&, basic_string_view<CharT>)): Remove
3471         unused function template.
3473 2023-08-07  Jonathan Wakely  <jwakely@redhat.com>
3475         PR libstdc++/110860
3476         * include/std/format (__formatter_fp::format): Do not use
3477         __builtin_abs and __builtin_log10 with arbitrary floating-point
3478         types.
3480 2023-08-07  Jonathan Wakely  <jwakely@redhat.com>
3482         PR libstdc++/110917
3483         * include/std/format (__format::_Iter_sink<CharT, OutIter>):
3484         Constrain partial specialization for contiguous iterators to
3485         require the value type to be CharT.
3486         * testsuite/std/format/functions/format_to.cc: New test.
3488 2023-08-07  Jonathan Wakely  <jwakely@redhat.com>
3490         PR libstdc++/110862
3491         * include/std/format (_Scanner::_M_on_replacement_field):
3492         Check for expected '}' before incrementing iterator.
3493         * testsuite/std/format/string.cc: Check "{0:{0}" format string.
3495 2023-08-07  Nick Alcock  <nick.alcock@oracle.com>
3497         * configure: Regenerate.
3499 2023-08-07  Alan Modra  <amodra@gmail.com>
3501         * configure: Regenerate.
3503 2023-08-07  Alexander von Gluck IV  <kallisti5@unixzen.com>
3505         * configure: Regenerate.
3507 2023-08-07  Nick Alcock  <nick.alcock@oracle.com>
3509         * configure: Regenerate.
3511 2023-08-07  Nick Alcock  <nick.alcock@oracle.com>
3513         * configure: Regenerate.
3515 2023-08-07  H.J. Lu  <hjl.tools@gmail.com>
3517         * configure: Regenerate.
3519 2023-08-07  H.J. Lu  <hjl.tools@gmail.com>
3521         * configure: Regenerate.
3523 2023-08-06  François Dumont  <fdumont@gcc.gnu.org>
3525         * config/abi/pre/gnu-versioned-namespace.ver: Add __cxa_call_terminate
3526         symbol export.
3528 2023-07-30  François Dumont  <fdumont@gcc.gnu.org>
3530         * src/c++11/compatibility-ldbl-facets-aliases.h: Replace #define with
3531         proper #error.
3532         * src/c++11/locale-inst-monetary.h: Likewise.
3533         * src/c++11/locale-inst-numeric.h: Likewise.
3535 2023-07-27  Jonathan Wakely  <jwakely@redhat.com>
3537         PR libstdc++/108046
3538         * include/std/format (__formatter_fp::format): Ensure __expc is
3539         always set for all presentation types. Set __z correctly for
3540         zero precision.
3541         * testsuite/std/format/functions/format.cc: Check problem cases.
3543 2023-07-26  Jonathan Wakely  <jwakely@redhat.com>
3545         PR libstdc++/110807
3546         * testsuite/23_containers/vector/bool/110807.cc: Require c++11.
3548 2023-07-26  Jonathan Wakely  <jwakely@redhat.com>
3550         PR libstdc++/110807
3551         * include/bits/stl_bvector.h (vector(const vector&)): Access
3552         iterators before allocating.
3553         * include/bits/vector.tcc (vector<bool>::_M_insert_range):
3554         Likewise.
3555         * testsuite/23_containers/vector/bool/110807.cc: New test.
3557 2023-07-26  Jonathan Wakely  <jwakely@redhat.com>
3559         * include/bits/algorithmfwd.h (random_shuffle): Add deprecated
3560         attribute.
3561         * include/bits/stl_algo.h (random_shuffle): Correct comments.
3562         * testsuite/25_algorithms/random_shuffle/1.cc: Disable
3563         deprecated warnings.
3564         * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
3565         * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
3566         * testsuite/25_algorithms/random_shuffle/deprecated.cc: New
3567         test.
3569 2023-07-26  Nathaniel Shead  <nathanieloshead@gmail.com>
3571         * testsuite/25_algorithms/equal/constexpr_neg.cc: Update diagnostic
3572         locations.
3573         * testsuite/26_numerics/gcd/105844.cc: Likewise.
3574         * testsuite/26_numerics/lcm/105844.cc: Likewise.
3576 2023-07-24  Deev Patel  <pateldeev@nevada.unr.edu>
3578         * include/std/format (_Formatting_scanner::_M_on_chars): Add
3579         missing constexpr specifier.
3580         (_Formatting_scanner::_M_format_arg): Likewise.
3582 2023-07-24  Jonathan Wakely  <jwakely@redhat.com>
3584         PR libstdc++/110653
3585         * include/bits/basic_string.h [!HAVE_STOF] (stof): Do not
3586         throw an exception for zero result.
3587         [HAVE_BROKEN_STRTOLD] (stold): Do not use strtold.
3589 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
3591         PR libstdc++/110077
3592         * src/c++17/floating_from_chars.cc (from_chars): Only define
3593         _Float128 overload when using __strfromf128.
3595 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
3597         PR libstdc++/110593
3598         * include/bits/chrono.h (duration): Improve static assert
3599         messages.
3600         (__is_ratio): Move to ...
3601         * include/std/ratio (__is_ratio): ... here.
3602         (__is_ratio_v): New variable template and partial
3603         specialization.
3604         (__are_both_ratios): New function template.
3605         (__ratio_multiply, ratio_equal, ratio_less, __ratio_add):
3606         Add static assertion.
3607         * testsuite/20_util/ratio/requirements/type_constraints.cc:
3608         New test.
3609         * testsuite/20_util/duration/requirements/typedefs_neg1.cc:
3610         Adjust expected error.
3611         * testsuite/20_util/duration/requirements/typedefs_neg2.cc:
3612         Likewise.
3614 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
3616         * include/bits/chrono_io.h (__formatter_chrono::_M_format):
3617         Do not set __is_neg for hh_mm_ss before calling
3618         _M_format_to_ostream. Change __print_sign lambda to only check
3619         __is_neg for durations and hh_mm_ss types.
3620         (__formatter_chrono::_M_format_to_ostream): Only check __is_neg
3621         for duration types.
3622         * testsuite/std/time/hh_mm_ss/io.cc: Check negative values.
3624 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
3626         PR libstdc++/110719
3627         * include/bits/chrono_io.h (__formatter_chrono::_S_floor_seconds):
3628         Handle duration and hh_mm_ss.
3629         * testsuite/20_util/duration/io.cc: Check locale-specific
3630         formats.
3631         * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
3633 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
3635         * include/std/format (__write_padded): Initialize first element
3636         of array to avoid a -Wmaybe-uninitialized warning.
3638 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
3640         PR libstdc++/110719
3641         * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Fix
3642         allowed modifiers for %z and %Z. Fix -Wparentheses and
3643         -Wnarrowing warnings.
3644         (__formatter_chrono::_M_format): Call new functions for %d, %e,
3645         %H, %I, %m and %M.
3646         (__formatter_chrono::_M_c): Use _S_floor_seconds to remove
3647         subsecond precision.
3648         (__formatter_chrono::_M_C_y_Y): Use _M_locale_fmt to handle
3649         modifiers.
3650         (__formatter_chrono::_M_e): Replace with _M_d_e and use
3651         _M_locale_fmt.
3652         (__formatter_chrono::_M_I): Replace with _M_H_I and use
3653         _M_locale_fmt.
3654         (__formatter_chrono::_M_m): New function.
3655         (__formatter_chrono::_M_M): New function.
3656         (__formatter_chrono::_M_r): Use _M_locale_fmt.
3657         (__formatter_chrono::_M_S): Likewise.
3658         (__formatter_chrono::_M_u_w): Likewise.
3659         (__formatter_chrono::_M_U_V_W): Likewise.
3660         (__formatter_chrono::_M_X): Use _S_floor_seconds.
3661         (__formatter_chrono::_M_Z): Fix untested branch for wchar_t.
3662         (__formatter_chrono::_S_altnum): Remove function.
3663         (__formatter_chrono::_S_dd_zero_fill): Remove function.
3664         (__formatter_chrono::_S_floor_seconds): New function.
3665         (__formatter_chrono::_M_locale_fmt): New function.
3666         * testsuite/std/time/clock/system/io.cc: Adjust expected output
3667         for locale-specific formats and check modified formats.
3668         * testsuite/std/time/clock/utc/io.cc: Likewise.
3669         * testsuite/std/time/zoned_time/io.cc: New test.
3671 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
3673         PR libstdc++/110708
3674         * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Only
3675         allow a single modifier.
3676         * testsuite/std/time/format.cc: Check multiple modifiers.
3678 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
3680         PR libstdc++/110653
3681         * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
3682         Remove dg-require-string-conversions.
3683         * testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
3684         Likewise.
3685         * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
3686         Likewise.
3687         * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
3688         Likewise.
3689         * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
3690         Likewise.
3692 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
3694         PR libstdc++/110653
3695         * include/bits/basic_string.h [!_GLIBCXX_HAVE_STRTOF] (stof):
3696         Define in terms of std::stod.
3698 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
3700         PR libstdc++/110653
3701         * include/bits/basic_string.h [_GLIBCXX_HAVE_STRTOF] (stof):
3702         Define.
3703         [_GLIBCXX_HAVE_STRTOLD] (stold): Define.
3704         * include/c_global/cstdlib [_GLIBCXX_HAVE_STRTOF] (strtof):
3705         Declare in namespace std.
3706         [_GLIBCXX_HAVE_STRTOLD] (strtold): Likewise.
3708 2023-07-13  Jonathan Wakely  <jwakely@redhat.com>
3710         PR libstdc++/110653
3711         * include/bits/basic_string.h (stoi, stol, stoul, stod): Do not
3712         depend on _GLIBCXX_USE_C99_STDLIB.
3713         [__LONG_WIDTH__ == __LONG_LONG_WIDTH__] (stoll, stoull): Define
3714         in terms of stol and stoul respectively.
3715         [__DBL_MANT_DIG__ == __LDBL_MANT_DIG__] (stold): Define in terms
3716         of stod.
3718 2023-07-12  Jonathan Wakely  <jwakely@redhat.com>
3720         PR libstdc++/95048
3721         * testsuite/27_io/filesystem/path/construct/95048.cc: Check
3722         conversions to wide strings.
3723         * testsuite/experimental/filesystem/path/construct/95048.cc:
3724         Likewise.
3726 2023-07-12  Jonathan Wakely  <jwakely@redhat.com>
3728         * config/io/basic_file_stdio.cc: Define LFS macros.
3729         (__basic_file<char>::open): Use fopen unconditionally.
3730         (get_file_offset): Use lseek unconditionally.
3731         (__basic_file<char>::seekoff): Likewise.
3732         (__basic_file<char>::showmanyc): Use fstat unconditionally.
3734 2023-07-12  Jonathan Wakely  <jwakely@redhat.com>
3736         PR libstdc++/110574
3737         * acinclude.m4 (GLIBCXX_CHECK_LFS): Check for fseeko and ftello
3738         and define _GLIBCXX_USE_FSEEKO_FTELLO.
3739         * config.h.in: Regenerate.
3740         * configure: Regenerate.
3741         * config/io/basic_file_stdio.cc (xwrite) [_GLIBCXX_USE_STDIO_PURE]:
3742         Check for fwrite error correctly.
3743         (__basic_file<char>::xsgetn) [_GLIBCXX_USE_STDIO_PURE]: Check for
3744         fread error correctly.
3745         (get_file_offset): New function.
3746         (__basic_file<char>::seekoff) [_GLIBCXX_USE_STDIO_PURE]: Use
3747         fseeko if available. Use get_file_offset instead of return value
3748         of fseek.
3749         (__basic_file<char>::showmanyc): Use get_file_offset.
3751 2023-07-12  Ken Matsui  <kmatsui@gcc.gnu.org>
3753         * include/std/type_traits (__make_unsigned_selector): Use
3754         __is_enum built-in trait.
3755         (__make_signed_selector): Likewise.
3756         (__underlying_type_impl): Likewise.
3758 2023-07-06  Tianqiang Shuai  <1101282468@qq.com>
3760         * config/io/basic_file_stdio.cc (xwrite) [USE_STDIO_PURE]: Fix
3761         first argument.
3763 2023-07-06  Jonathan Wakely  <jwakely@redhat.com>
3765         PR libstdc++/110574
3766         * doc/xml/manual/configure.xml: Describe stdio_pure argument to
3767         --enable-cstdio.
3768         * doc/html/manual/configure.html: Regenerate.
3770 2023-07-05  Thomas Rodgers  <trodgers@redhat.com>
3772         * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Delete
3773         file.
3774         * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
3775         New file.
3776         * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
3777         Likewise.
3778         * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
3779         Likewise.
3780         * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
3781         Likewise.
3782         * testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
3783         Likewise.
3785 2023-07-05  Jonathan Wakely  <jwakely@redhat.com>
3787         * testsuite/23_containers/forward_list/debug/iterator1_neg.cc:
3788         Skip as UNSUPPORTED for C++98 mode.
3789         * testsuite/23_containers/forward_list/debug/iterator3_neg.cc:
3790         Likewise.
3792 2023-07-05  Jonathan Wakely  <jwakely@redhat.com>
3794         PR libstdc++/110542
3795         * include/bits/stl_uninitialized.h (__uninitialized_default_n):
3796         Do not use std::fill_n during constant evaluation.
3798 2023-07-05  Jonathan Wakely  <jwakely@redhat.com>
3800         * include/bits/vector.tcc (_M_default_append): Replace try-block
3801         with RAII types.
3803 2023-07-05  Jonathan Wakely  <jwakely@redhat.com>
3805         * include/bits/iterator_concepts.h (projected): Add typename.
3807 2023-07-03  Jonathan Wakely  <jwakely@redhat.com>
3809         * testsuite/27_io/headers/iosfwd/synopsis.cc: Make wsyncbuf and
3810         wosyncstream depend on _GLIBCXX_USE_CXX11_ABI.
3812 2023-07-03  Jonathan Wakely  <jwakely@redhat.com>
3814         * include/pstl/pstl_config.h (_PSTL_PRAGMA_SIMD_SCAN,
3815         _PSTL_PRAGMA_SIMD_INCLUSIVE_SCAN, _PSTL_PRAGMA_SIMD_EXCLUSIVE_SCAN):
3816         Define to OpenMP 5.0 pragmas even for GCC 10.0+.
3817         (_PSTL_UDS_PRESENT): Define to 1 for GCC 10.0+.
3819 2023-07-03  Jonathan Wakely  <jwakely@redhat.com>
3821         * include/bits/alloc_traits.h (_Destroy): Qualify call.
3822         * include/bits/stl_construct.h (_Destroy, _Destroy_n): Likewise.
3823         * testsuite/23_containers/vector/cons/destroy-adl.cc: New test.
3825 2023-07-03  Iain Sandoe  <iain@sandoe.co.uk>
3827         * testsuite/lib/libstdc++.exp: Remove additional flag handled
3828         by Darwin specs.
3830 2023-06-30  Jonathan Wakely  <jwakely@redhat.com>
3832         PR libstdc++/110432
3833         * acinclude.m4 (GLIBCXX_CHECK_INIT_PRIORITY): New.
3834         * config.h.in: Regenerate.
3835         * configure: Regenerate.
3836         * configure.ac: Use GLIBCXX_CHECK_INIT_PRIORITY.
3837         * include/std/iostream: Use new autoconf macro as well as
3838         __has_attribute.
3839         * src/c++98/ios_base_init.h: Use new autoconf macro instead of
3840         __has_attribute.
3842 2023-06-30  Jonathan Wakely  <jwakely@redhat.com>
3844         * src/c++11/random.cc (random_device::_M_init): Add maybe_unused
3845         attribute.
3847 2023-06-30  Jonathan Wakely  <jwakely@redhat.com>
3849         PR libstdc++/105081
3850         * src/c++11/random.cc (random_device::_M_init): Throw
3851         std::system_error when the requested device is a valid token but
3852         not available at runtime.
3854 2023-06-30  Hans-Peter Nilsson  <hp@axis.com>
3856         PR libstdc++/108672
3857         * include/pstl/unseq_backend_simd.h (__simd_or): Re-apply using
3858         __INT32_TYPE__ instead of int32_t.
3860 2023-06-29  Jonathan Wakely  <jwakely@redhat.com>
3862         * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define consistently
3863         with USE_ATOMIC_LIST_HEAD.
3864         (list_mutex): Replace global object with function. Use local
3865         static object when std::mutex constructor isn't constexpr.
3867 2023-06-29  Jonathan Wakely  <jwakely@redhat.com>
3869         PR libstdc++/110462
3870         * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check that
3871         copy_file_range can be called with loff_t* arguments.
3872         * configure: Regenerate.
3873         * src/filesystem/ops-common.h (copy_file_copy_file_range):
3874         Use loff_t for offsets.
3876 2023-06-29  Tom Tromey  <tromey@adacore.com>
3878         * testsuite/lib/gdb-test.exp (gdb-test): Relax type-printer
3879         regexp.
3881 2023-06-28  Jan Hubicka  <jh@suse.cz>
3883         PR middle-end/109849
3884         * include/bits/c++config (std::__terminate): Mark cold.
3885         * include/bits/functexcept.h: Mark everything as cold.
3886         * libsupc++/exception: Mark terminate and unexpected as cold.
3888 2023-06-26  Thomas Rodgers  <trodgers@redhat.com>
3890         * include/pstl/algorithm_fwd.h: Synchronize with upstream.
3891         * include/pstl/algorithm_impl.h: Likewise.
3892         * include/pstl/execution_defs.h: Likewise.
3893         * include/pstl/execution_impl.h: Likewise.
3894         * include/pstl/glue_algorithm_impl.h: Likewise.
3895         * include/pstl/glue_execution_defs.h: Likewise.
3896         * include/pstl/glue_memory_impl.h: Likewise.
3897         * include/pstl/glue_numeric_impl.h: Likewise.
3898         * include/pstl/memory_impl.h: Likewise.
3899         * include/pstl/numeric_fwd.h: Likewise.
3900         * include/pstl/numeric_impl.h: Likewise.
3901         * include/pstl/parallel_backend.h: Likewise.
3902         * include/pstl/parallel_backend_serial.h: Likewise.
3903         * include/pstl/parallel_backend_tbb.h: Likewise.
3904         * include/pstl/parallel_impl.h: Likewise.
3905         * include/pstl/pstl_config.h: Likewise.
3906         * include/pstl/unseq_backend_simd.h: Likewise.
3907         * include/pstl/utils.h: Likewise.
3908         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
3909         Likewise.
3910         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
3911         Likewise.
3912         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
3913         Likewise.
3914         * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
3915         Likewise.
3916         * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
3917         * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
3918         Likewise.
3919         * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
3920         Likewise.
3921         * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
3922         Likewise.
3923         * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
3924         Likewise.
3925         * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
3926         Likewise.
3927         * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
3928         Likewise.
3929         * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
3930         Likewise.
3931         * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
3932         Likewise.
3933         * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
3934         Likewise.
3935         * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
3936         Likewise.
3937         * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
3938         Likewise.
3939         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
3940         Likewise.
3941         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
3942         Likewise.
3943         * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
3944         Likewise.
3945         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
3946         Likewise.
3947         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
3948         Likewise.
3949         * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
3950         Likewise.
3951         * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
3952         Likewise.
3953         * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
3954         Likewise.
3955         * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
3956         Likewise.
3957         * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
3958         Likewise.
3959         * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
3960         Likewise.
3961         * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
3962         Likewise.
3963         * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
3964         Likewise.
3965         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
3966         Likewise.
3967         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
3968         Likewise.
3969         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
3970         Likewise.
3971         * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
3972         Likewise.
3973         * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
3974         Likewise.
3975         * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
3976         Likewise.
3977         * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
3978         Likewise.
3979         * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
3980         Likewise.
3981         * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
3982         Likewise.
3983         * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
3984         Likewise.
3985         * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
3986         Likewise.
3987         * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc:
3988         Likewise.
3989         * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
3990         Likewise.
3991         * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
3992         Likewise.
3993         * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
3994         Likewise.
3995         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
3996         Likewise.
3997         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
3998         Likewise.
3999         * testsuite/25_algorithms/pstl/alg_sorting/set.cc:
4000         Likewise.
4001         * testsuite/25_algorithms/pstl/alg_sorting/sort.cc:
4002         Likewise.
4003         * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
4004         Likewise.
4005         * testsuite/26_numerics/pstl/numeric_ops/reduce.cc:
4006         Likewise.
4007         * testsuite/26_numerics/pstl/numeric_ops/scan.cc:
4008         Likewise.
4009         * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
4010         Likewise.
4011         * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
4012         Likewise.
4013         * testsuite/util/pstl/test_utils.h:
4014         Likewise.
4016 2023-06-26  Jonathan Wakely  <jwakely@redhat.com>
4018         PR libstdc++/110239
4019         * include/std/format (__format::__parse_integer): Fix buffer
4020         overflow for wide chars.
4021         (formatter<const void*, C>::format): Cast to uintptr_t instead
4022         of uint64_t.
4023         * testsuite/std/format/string.cc: Test too-large widths.
4025 2023-06-26  Jonathan Wakely  <jwakely@redhat.com>
4027         * include/bits/iterator_concepts.h (projected): Replace class
4028         template with alias template denoting an ADL-proofed helper.
4029         (incremental_traits<projected<Iter, Proj>>): Remove.
4030         * testsuite/24_iterators/indirect_callable/projected-adl.cc:
4031         New test.
4033 2023-06-26  Jonathan Wakely  <jwakely@redhat.com>
4035         * include/debug/helper_functions.h (__get_distance)
4036         (__check_singular, __valid_range_aux, __valid_range): Qualify
4037         calls to disable ADL.
4038         (__check_singular_aux(const _Safe_iterator_base*)): Declare
4039         overload that was previously found via ADL.
4041 2023-06-23  Jonathan Wakely  <jwakely@redhat.com>
4043         * include/bits/vector.tcc (_M_realloc_insert): Replace try-block
4044         with RAII types.
4046 2023-06-20  Jonathan Wakely  <jwakely@redhat.com>
4048         * include/std/array (to_array(T(&)[N])): Remove redundant
4049         condition.
4050         (to_array(T(&&)[N])): Remove redundant std::move.
4052 2023-06-16  Alexandre Oliva  <oliva@adacore.com>
4054         * testsuite/20_util/from_chars/4.cc: Skip long double on
4055         aarch64-rtems.
4057 2023-06-16  Joel Brobecker  <brobecker@adacore.com>
4059         * configure.ac ["x${with_newlib}" = "xyes"]: Define
4060         HAVE_HYPOTF.  Add compile-checks for various long double
4061         math functions as well.
4062         * configure: Regenerate.
4064 2023-06-14  Jonny Grant  <jg@jguk.org>
4066         * doc/xml/manual/extensions.xml: Remove demangle exception
4067         description and include.
4068         * doc/html/manual/ext_demangling.html: Regenerate.
4070 2023-06-10  Hans-Peter Nilsson  <hp@axis.com>
4072         * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc (main)
4073         [! SIMULATOR_TEST]: Also exclude running test05.
4074         * testsuite/27_io/basic_istream/ignore/char/94749.cc: Ditto.
4076 2023-06-09  Ken Matsui  <kmatsui@cs.washington.edu>
4078         * include/std/type_traits: Use using instead of typedef
4080 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
4082         PR libstdc++/110077
4083         * src/c++17/floating_from_chars.cc (from_chars) <_Float128>:
4084         Only define if _Float128 and long double have different
4085         representations.
4087 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
4089         PR libstdc++/100285
4090         * include/experimental/internet [IPPROTO_TCP || IPPROTO_UDP]
4091         (basic_endpoint, basic_resolver_entry, resolver_base)
4092         (basic_resolver_results, basic_resolver): Only define if the tcp
4093         or udp protocols will be defined.
4095 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
4097         * acinclude.m4 (libtool_VERSION): Update to 6.0.33.
4098         * configure: Regenerate.
4099         * doc/xml/manual/abi.xml: Add libstdc++.so.6.0.33.
4100         * doc/html/manual/abi.html: Regenerate.
4102 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
4104         PR libstdc++/110149
4105         * include/std/format (formatter<const void*, charT>::parse):
4106         Only alow 0 and P for C++26 and non-strict modes.
4107         (formatter<const void*, charT>::format): Use toupper for P
4108         type, and insert zero-fill characters for 0 option.
4109         * testsuite/std/format/functions/format.cc: Check pointer
4110         formatting. Only check P2510R3 extensions conditionally.
4111         * testsuite/std/format/parse_ctx.cc: Only check P2510R3
4112         extensions conditionally.
4114 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
4116         PR libstdc++/110167
4117         * include/std/array (to_array): Initialize arrays of trivial
4118         types using memcpy. For non-trivial types, use lambda
4119         expressions instead of a separate helper function.
4120         (__to_array): Remove.
4121         * testsuite/23_containers/array/creation/110167.cc: New test.
4123 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
4125         * testsuite/23_containers/deque/modifiers/emplace/52799.cc:
4126         Removed.
4127         * testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc:
4128         Removed.
4129         * testsuite/23_containers/list/modifiers/emplace/52799.cc:
4130         Removed.
4131         * testsuite/23_containers/list/modifiers/emplace/const_iterator.cc:
4132         Removed.
4133         * testsuite/23_containers/vector/modifiers/emplace/52799.cc:
4134         Removed.
4135         * testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc:
4136         Removed.
4137         * testsuite/23_containers/deque/modifiers/emplace/1.cc: New
4138         test.
4139         * testsuite/23_containers/list/modifiers/emplace/1.cc: New
4140         test.
4141         * testsuite/23_containers/vector/modifiers/emplace/1.cc: New
4142         test.
4144 2023-06-07  Jakub Jelinek  <jakub@redhat.com>
4146         PR libstdc++/110145
4147         * testsuite/20_util/to_chars/double.cc: Include <cfloat>.
4148         (double_to_chars_test_cases,
4149         double_scientific_precision_to_chars_test_cases_2,
4150         double_fixed_precision_to_chars_test_cases_2): #if out 1e126, 4.91e-6
4151         and 5.547e-6 tests if FLT_EVAL_METHOD is negative or larger than 1.
4152         Add unconditional tests with corresponding double constants
4153         0x1.7a2ecc414a03fp+418, 0x1.4981285e98e79p-18 and
4154         0x1.7440bbff418b9p-18.
4156 2023-06-07  Jonathan Wakely  <jwakely@redhat.com>
4158         * testsuite/util/testsuite_abi.cc (check_version): Re-add
4159         CXXABI_1.3.14.
4161 2023-06-07  Jonathan Wakely  <jwakely@redhat.com>
4163         * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
4164         Require effective target exceptions_enabled instead of using
4165         dg-skip-if.
4166         * testsuite/23_containers/vector/capacity/constexpr.cc: Expect
4167         shrink_to_fit() to be a no-op without exceptions enabled.
4168         * testsuite/23_containers/vector/capacity/shrink_to_fit.cc:
4169         Likewise.
4170         * testsuite/ext/bitmap_allocator/check_allocate_max_size.cc:
4171         Require effective target exceptions_enabled.
4172         * testsuite/ext/malloc_allocator/check_allocate_max_size.cc:
4173         Likewise.
4174         * testsuite/ext/mt_allocator/check_allocate_max_size.cc:
4175         Likewise.
4176         * testsuite/ext/new_allocator/check_allocate_max_size.cc:
4177         Likewise.
4178         * testsuite/ext/pool_allocator/check_allocate_max_size.cc:
4179         Likewise.
4180         * testsuite/ext/throw_allocator/check_allocate_max_size.cc:
4181         Likewise.
4183 2023-06-07  Jonathan Wakely  <jwakely@redhat.com>
4185         * testsuite/20_util/duration/cons/2.cc: Use values that aren't
4186         affected by rounding.
4187         * testsuite/20_util/from_chars/5.cc: Cast arithmetic result to
4188         double before comparing for equality.
4189         * testsuite/20_util/from_chars/6.cc: Likewise.
4190         * testsuite/20_util/variant/86874.cc: Use values that aren't
4191         affected by rounding.
4192         * testsuite/25_algorithms/lower_bound/partitioned.cc: Compare to
4193         original value instead of to floating-point-literal.
4194         * testsuite/26_numerics/random/discrete_distribution/cons/range.cc:
4195         Cast arithmetic result to double before comparing for equality.
4196         * testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc:
4197         Likewise.
4198         * testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc:
4199         Likewise.
4200         * testsuite/26_numerics/valarray/transcend.cc (eq): Check that
4201         the absolute difference is less than 0.01 instead of comparing
4202         to two decimal places.
4203         * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
4204         Cast arithmetic result to double before comparing for equality.
4205         * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
4206         Likewise.
4207         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
4208         Likewise.
4209         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc:
4210         Likewise.
4211         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc:
4212         Likewise.
4213         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc:
4214         Likewise.
4215         * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
4217 2023-06-07  Jonathan Wakely  <jwakely@redhat.com>
4219         Revert:
4220         2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
4222         * configure.ac: Use AS_IF.
4223         * configure: Regenerate.
4225 2023-06-07  Thomas Schwinge  <thomas@codesourcery.com>
4227         * testsuite/lib/prune.exp (libstdc++-dg-prune): Support
4228         'UNSUPPORTED: [...]: exception handling disabled'.
4230 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
4232         * testsuite/util/testsuite_abi.cc (check_version): Add
4233         CXXABI_1.3.15 symver and make it the latestp. Remove
4234         GLIBCXX_IEEE128_3.4.31 and GLIBCXX_LDBL_3.4.31 from latestp.
4236 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
4237             Jakub Jelinek  <jakub@redhat.com>
4239         PR libstdc++/104772
4240         * include/std/limits: (numeric_limits<__float128>): Define
4241         for __STRICT_ANSI__ as well.
4242         * testsuite/18_support/numeric_limits/128bit.cc: Remove
4243         check for __STRICT_ANSI__.
4245 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
4247         * configure.ac: Use AS_IF.
4248         * configure: Regenerate.
4250 2023-06-06  Matthias Kretz  <m.kretz@gsi.de>
4252         PR libstdc++/109822
4253         * include/experimental/bits/simd_builtin.h (_S_store): Rewrite
4254         to avoid casts to other vector types. Implement store as
4255         succession of power-of-2 sized memcpy to avoid PR90424.
4257 2023-06-06  Matthias Kretz  <m.kretz@gsi.de>
4259         PR libstdc++/110054
4260         * include/experimental/bits/simd_builtin.h (_S_masked_store):
4261         Call into deduced ABI's SimdImpl after conversion.
4262         * include/experimental/bits/simd_x86.h (_S_masked_store_nocvt):
4263         Don't use _mm_maskmoveu_si128. Use the generic fall-back
4264         implementation. Also fix masked stores without SSE2, which
4265         were not doing anything before.
4267 2023-06-06  Matthias Kretz  <m.kretz@gsi.de>
4269         * include/experimental/bits/simd.h (__bit_cast): Use
4270         __gnu__::__vector_size__ instead of gnu::vector_size.
4272 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
4274         PR libstdc++/110139
4275         * include/std/array (__array_traits<T, 0>::operator T*()): Make
4276         conversion operator explicit.
4277         (array::front): Use size_type as subscript operand.
4278         (array::data): Use static_cast to make conversion explicit.
4279         * testsuite/23_containers/array/element_access/110139.cc: New
4280         test.
4282 2023-06-06  Joseph Faulls  <Joseph.Faulls@imgtec.com>
4284         * include/bits/locale_classes.tcc: Remove check for
4285         codecvt<char8_t, char, mbstate_t> facet.
4287 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
4289         * src/filesystem/ops-common.h (do_copy_file) [O_CLOEXEC]: Set
4290         close-on-exec flag on file descriptors.
4292 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
4294         PR libstdc++/108178
4295         * src/filesystem/ops-common.h (do_copy_file): Check for empty
4296         files by trying to read a character.
4297         * testsuite/27_io/filesystem/operations/copy_file_108178.cc:
4298         New test.
4300 2023-06-06  Jannik Glückert  <jannik.glueckert@gmail.com>
4302         * acinclude.m4 (_GLIBCXX_USE_COPY_FILE_RANGE): Define.
4303         * config.h.in: Regenerate.
4304         * configure: Regenerate.
4305         * src/filesystem/ops-common.h (copy_file_copy_file_range):
4306         Define new function.
4307         (do_copy_file): Use it.
4309 2023-06-06  Jannik Glückert  <jannik.glueckert@gmail.com>
4311         * acinclude.m4 (_GLIBCXX_HAVE_LSEEK): Define.
4312         * config.h.in: Regenerate.
4313         * configure: Regenerate.
4314         * src/filesystem/ops-common.h (copy_file_sendfile): Define new
4315         function for sendfile logic. Loop to support large files. Skip
4316         zero-length files.
4317         (do_copy_file): Use it.
4319 2023-06-04  Jason Merrill  <jason@redhat.com>
4321         PR c++/97720
4322         * libsupc++/eh_call.cc (__cxa_call_terminate): Take void*.
4323         * config/abi/pre/gnu.ver: Add it.
4325 2023-06-02  François Dumont  <fdumont@gcc.gnu.org>
4327         * include/parallel/algobase.h: Include <parallel/search.h>.
4329 2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
4331         * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
4332         Add const to equality operator.
4334 2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
4336         * include/std/expected (expected::and_then, expected::or_else)
4337         (expected::transform_error): Use _M_val and _M_unex instead of
4338         calling value() and error(), as per LWG 3938.
4339         (expected::transform): Likewise. Remove incorrect std::move
4340         calls from lvalue overloads.
4341         (expected<void, E>::and_then, expected<void, E>::or_else)
4342         (expected<void, E>::transform): Use _M_unex instead of calling
4343         error().
4344         * testsuite/20_util/expected/lwg3877.cc: Add checks for and_then
4345         and transform, and for std::expected<void, E>.
4346         * testsuite/20_util/expected/lwg3938.cc: New test.
4348 2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
4350         PR libstdc++/110060
4351         * include/bits/stl_vector.h (_Vector_base::_M_invariant):
4352         Remove.
4353         (vector::size, vector::capacity): Remove calls to _M_invariant.
4354         * include/bits/vector.tcc (vector::_M_fill_assign): Add
4355         optimization hint to reallocating path.
4356         (vector::_M_assign_aux(FwdIter, FwdIter, forward_iterator_tag)):
4357         Likewise.
4358         * testsuite/23_containers/vector/capacity/invariant.cc: Moved
4359         to...
4360         * testsuite/23_containers/vector/modifiers/assign/no_realloc.cc:
4361         ...here. Check assign(FwdIter, FwdIter) too.
4362         * testsuite/23_containers/vector/types/1.cc: Revert addition
4363         of -Wno-stringop-overread option.
4365 2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
4367         * doc/xml/manual/evolution.xml: Document removal of implicit
4368         allocator rebinding extensions in strict mode and for C++20.
4369         * doc/html/*: Regenerate.
4371 2023-06-01  Jason Merrill  <jason@redhat.com>
4373         * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Don't check
4374         handlers in the cleanup phase.
4376 2023-06-01  Matthias Kretz  <m.kretz@gsi.de>
4378         PR libstdc++/110050
4379         * include/experimental/bits/simd.h (__vectorized_sizeof): With
4380         __have_neon_a32 only single-precision float works (in addition
4381         to integers).
4383 2023-06-01  François Dumont  <fdumont@gcc.gnu.org>
4385         * include/bits/stl_algo.h
4386         (std::__search, std::search(_FwdIt1, _FwdIt1, _FwdIt2, _FwdIt2, _BinPred)): Move...
4387         * include/bits/stl_algobase.h: ...here.
4388         * include/std/functional: Replace <stl_algo.h> include by <stl_algobase.h>.
4389         * include/parallel/algo.h (std::__parallel::search<_FIt1, _FIt2, _BinaryPred>)
4390         (std::__parallel::__search_switch<_FIt1, _FIt2, _BinaryPred, _ItTag1, _ItTag2>):
4391         Move...
4392         * include/parallel/algobase.h: ...here.
4393         * include/experimental/functional: Remove <bits/stl_algo.h> and <parallel/algorithm>
4394         includes. Include <bits/stl_algobase.h>.
4396 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
4398         PR libstdc++/109818
4399         * acinclude.m4 (GLIBCXX_ENABLE_C99): Add separate check for
4400         float_t and double_t and define HAVE_C99_FLT_EVAL_TYPES.
4401         * config.h.in: Regenerate.
4402         * configure: Regenerate.
4403         * include/c_global/cmath (float_t, double_t): Guard using new
4404         _GLIBCXX_HAVE_C99_FLT_EVAL_TYPES macro.
4406 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
4408         * acinclude.m4 (GLIBCXX_ENABLE_C99): Add checks for C99 math
4409         functions and define _GLIBCXX_USE_C99_MATH_FUNCS. Move checks
4410         for C99 rounding functions to here.
4411         (GLIBCXX_CHECK_C99_TR1): Remove checks for C99 rounding
4412         functions from here.
4413         * config.h.in: Regenerate.
4414         * configure: Regenerate.
4415         * include/bits/random.h: Use _GLIBCXX_USE_C99_MATH_FUNCS instead
4416         of _GLIBCXX_USE_C99_MATH_TR1.
4417         * include/bits/random.tcc: Likewise.
4418         * include/c_compatibility/math.h: Likewise.
4419         * include/c_global/cmath: Likewise.
4420         * include/ext/random: Likewise.
4421         * include/ext/random.tcc: Likewise.
4422         * include/std/complex: Likewise.
4423         * testsuite/20_util/from_chars/4.cc: Likewise.
4424         * testsuite/20_util/from_chars/8.cc: Likewise.
4425         * testsuite/26_numerics/complex/proj.cc: Likewise.
4426         * testsuite/26_numerics/headers/cmath/60401.cc: Likewise.
4427         * testsuite/26_numerics/headers/cmath/types_std_c++0x.cc:
4428         Likewise.
4429         * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
4430         Likewise.
4431         * testsuite/util/testsuite_random.h: Likewise.
4433 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
4435         * include/bits/stl_vector.h (_Vector_base::_M_invariant()): New
4436         function.
4437         (vector::size(), vector::capacity()): Call _M_invariant().
4438         * testsuite/23_containers/vector/capacity/invariant.cc: New test.
4439         * testsuite/23_containers/vector/types/1.cc: Add suppression for
4440         false positive warning (PR110060).
4442 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
4444         PR libstdc++/109921
4445         * src/c++17/floating_from_chars.cc: Check __FLT128_MANT_DIG__ is
4446         defined before trying to use _Float128.
4448 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
4450         * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Fix for 32-bit pointers
4451         to check __INT_PTR_WIDTH__ instead of sizeof(void*).
4452         * configure: Regenerate.
4454 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
4456         * include/bits/unique_lock.h: Include <bits/error_constants.h>
4457         here for std::errc constants.
4458         * include/std/mutex: Do not include <bits/error_constants.h> and
4459         <exception> here.
4461 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
4463         * configure.ac: Replace use of -o operator for test.
4464         * configure: Regenerate.
4466 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
4468         * include/std/scoped_allocator (scoped_allocator_adaptor): Add
4469         noexcept to all constructors except the default constructor.
4470         (scoped_allocator_adaptor::inner_allocator): Add noexcept.
4471         (scoped_allocator_adaptor::outer_allocator): Likewise.
4472         * testsuite/20_util/scoped_allocator/noexcept.cc: New test.
4474 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
4476         PR libstdc++/104772
4477         * include/std/limits (numeric_limits<__float128>): Define.
4478         * testsuite/18_support/numeric_limits/128bit.cc: New test.
4480 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
4482         * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Extend logic for avr and
4483         msp430 to all 16-bit targets.
4484         * configure: Regenerate.
4486 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
4488         PR libstdc++/109921
4489         * src/c++17/floating_from_chars.cc (USE_STRTOF128_FOR_FROM_CHARS):
4490         Only define when USE_STRTOD_FOR_FROM_CHARS is also defined.
4491         (USE_STRTOD_FOR_FROM_CHARS): Do not undefine when long double is
4492         binary64.
4493         (from_chars(const char*, const char*, double&, chars_format)):
4494         Check __LDBL_MANT_DIG__ == __DBL_MANT_DIG__ here.
4495         (from_chars(const char*, const char*, _Float128&, chars_format))
4496         Only use from_chars_strtod when USE_STRTOD_FOR_FROM_CHARS is
4497         defined, otherwise parse a long double and convert to _Float128.
4499 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
4501         PR libstdc++/109922
4502         * include/std/iomanip (operator>>(basic_istream&, _Setfill)):
4503         Add deprecated attribute to non-standard overload.
4504         * doc/xml/manual/evolution.xml: Document deprecation.
4505         * doc/html/*: Regenerate.
4506         * testsuite/27_io/manipulators/standard/char/1.cc: Add
4507         dg-warning for expected deprecated warning.
4508         * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
4509         * testsuite/27_io/manipulators/standard/wchar_t/1.cc: Likewise.
4510         * testsuite/27_io/manipulators/standard/wchar_t/2.cc: Likewise.
4512 2023-05-30  Alexandre Oliva  <oliva@adacore.com>
4514         * testsuite/20_util/from_chars/4.cc: Skip long double test06
4515         on x86_64-vxworks.
4516         * testsuite/20_util/to_chars/long_double.cc: Xfail run on
4517         x86_64-vxworks.
4519 2023-05-30  Matthias Kretz  <m.kretz@gsi.de>
4521         PR libstdc++/109822
4522         * include/experimental/bits/simd.h (to_native): Use int NTTP
4523         as specified in PTS2.
4524         (to_compatible): Likewise. Add missing tag to call mask
4525         generator ctor.
4526         * testsuite/experimental/simd/pr109822_cast_functions.cc: New
4527         test.
4529 2023-05-30  Matthias Kretz  <m.kretz@gsi.de>
4531         * testsuite/experimental/simd/tests/integer_operators.cc:
4532         Compute expected value differently to avoid getting turned into
4533         a vector shift.
4535 2023-05-30  Matthias Kretz  <m.kretz@gsi.de>
4537         * testsuite/experimental/simd/tests/operator_cvt.cc: Make long
4538         double <-> (u)long conversion tests conditional on sizeof(long
4539         double) and sizeof(long).
4541 2023-05-26  Matthias Kretz  <m.kretz@gsi.de>
4543         * include/experimental/bits/simd_ppc.h (_S_bit_shift_left):
4544         Negative __y is UB, so prefer signed compare.
4546 2023-05-25  Jonathan Wakely  <jwakely@redhat.com>
4548         * testsuite/util/testsuite_allocator.h (PointerBase): Add
4549         relational operators.
4551 2023-05-25  Alexandre Oliva  <oliva@adacore.com>
4553         * testsuite/20_util/to_chars/long_double.cc: Expect execution
4554         fail on x86-vxworks.
4556 2023-05-24  Matthias Kretz  <m.kretz@gsi.de>
4558         PR libstdc++/109949
4559         * include/experimental/bits/simd.h (__intrinsic_type): If
4560         __ALTIVEC__ is defined, map gnu::vector_size types to their
4561         corresponding __vector T types without losing unsignedness of
4562         integer types. Also prefer long long over long.
4563         * include/experimental/bits/simd_ppc.h (_S_popcount): Cast mask
4564         object to the expected unsigned vector type.
4566 2023-05-24  Matthias Kretz  <m.kretz@gsi.de>
4568         PR libstdc++/109261
4569         * include/experimental/bits/simd.h (__intrinsic_type):
4570         Specialize __intrinsic_type<double, 8> and
4571         __intrinsic_type<double, 16> in any case, but provide the member
4572         type only with __aarch64__.
4574 2023-05-24  Matthias Kretz  <m.kretz@gsi.de>
4576         PR libstdc++/109261
4577         * include/experimental/bits/simd_neon.h (_S_reduce): Add
4578         constexpr and make NEON implementation conditional on
4579         not __builtin_is_constant_evaluated.
4581 2023-05-23  Matthias Kretz  <m.kretz@gsi.de>
4583         PR libstdc++/109261
4584         * include/experimental/bits/simd.h (_SimdWrapper::_M_set):
4585         Avoid vector builtin subscripting in constant expressions.
4586         (resizing_simd_cast): Avoid memcpy if constant_evaluated.
4587         (const_where_expression, where_expression, where)
4588         (__extract_part, simd_mask, _SimdIntOperators, simd): Add either
4589         _GLIBCXX_SIMD_CONSTEXPR (on public APIs), or constexpr (on
4590         internal APIs).
4591         * include/experimental/bits/simd_builtin.h (__vector_permute)
4592         (__vector_shuffle, __extract_part, _GnuTraits::_SimdCastType1)
4593         (_GnuTraits::_SimdCastType2, _SimdImplBuiltin)
4594         (_MaskImplBuiltin::_S_store): Add constexpr.
4595         (_CommonImplBuiltin::_S_store_bool_array)
4596         (_SimdImplBuiltin::_S_load, _SimdImplBuiltin::_S_store)
4597         (_SimdImplBuiltin::_S_reduce, _MaskImplBuiltin::_S_load): Add
4598         constant_evaluated case.
4599         * include/experimental/bits/simd_fixed_size.h
4600         (_S_masked_load): Reword comment.
4601         (__tuple_element_meta, __make_meta, _SimdTuple::_M_apply_r)
4602         (_SimdTuple::_M_subscript_read, _SimdTuple::_M_subscript_write)
4603         (__make_simd_tuple, __optimize_simd_tuple, __extract_part)
4604         (__autocvt_to_simd, _Fixed::__traits::_SimdBase)
4605         (_Fixed::__traits::_SimdCastType, _SimdImplFixedSize): Add
4606         constexpr.
4607         (_SimdTuple::operator[], _M_set): Add constexpr and add
4608         constant_evaluated case.
4609         (_MaskImplFixedSize::_S_load): Add constant_evaluated case.
4610         * include/experimental/bits/simd_scalar.h: Add constexpr.
4611         * include/experimental/bits/simd_x86.h (_CommonImplX86): Add
4612         constexpr and add constant_evaluated case.
4613         (_SimdImplX86::_S_equal_to, _S_not_equal_to, _S_less)
4614         (_S_less_equal): Value-initialize to satisfy constexpr
4615         evaluation.
4616         (_MaskImplX86::_S_load): Add constant_evaluated case.
4617         (_MaskImplX86::_S_store): Add constexpr and constant_evaluated
4618         case. Value-initialize local variables.
4619         (_MaskImplX86::_S_logical_and, _S_logical_or, _S_bit_not)
4620         (_S_bit_and, _S_bit_or, _S_bit_xor): Add constant_evaluated
4621         case.
4622         * testsuite/experimental/simd/pr109261_constexpr_simd.cc: New
4623         test.
4625 2023-05-22  Matthias Kretz  <m.kretz@gsi.de>
4627         * include/experimental/bits/simd_builtin.h (_S_fpclassify): Move
4628         __infn into #ifdef'ed block.
4629         * testsuite/experimental/simd/tests/fpclassify.cc: Declare
4630         constants only when used.
4631         * testsuite/experimental/simd/tests/frexp.cc: Likewise.
4632         * testsuite/experimental/simd/tests/logarithm.cc: Likewise.
4633         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc:
4634         Likewise.
4635         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
4636         Move totest and expect1 into #ifdef'ed block.
4638 2023-05-19  Gerald Pfeifer  <gerald@pfeifer.com>
4640         * doc/xml/manual/strings.xml: Move lafstern.org reference to https.
4641         * doc/html/manual/strings.html: Regenerate.
4643 2023-05-17  Jakub Jelinek  <jakub@redhat.com>
4645         PR libstdc++/109883
4646         * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc: New test.
4648 2023-05-17  Jakub Jelinek  <jakub@redhat.com>
4650         PR libstdc++/109883
4651         * include/c_global/cmath (atan2, fmod, pow): Move
4652         __gnu_cxx::__promote_2 using templates after _Float{16,32,64,128} and
4653         __gnu_cxx::__bfloat16_t overloads.
4654         (copysign, fdim, fmax, fmin, hypot, nextafter, remainder, remquo):
4655         Likewise.
4656         (fma): Move __gnu_cxx::__promote_3 using template after
4657         _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads.
4659 2023-05-17  Jonathan Wakely  <jwakely@redhat.com>
4661         * testsuite/18_support/headers/limits/synopsis.cc: Uncomment
4662         checks for float_round_style and float_denorm_style.
4664 2023-05-17  Jonathan Wakely  <jwakely@redhat.com>
4666         * include/bits/c++config: Add system_header pragma.
4668 2023-05-17  Jonathan Wakely  <jwakely@redhat.com>
4670         * include/std/expected (expected::and_then, expected::or_else)
4671         (expected::transform, expected::transform_error): Fix exception
4672         specifications as per LWG 3877.
4673         (expected<void, E>::and_then, expected<void, E>::transform):
4674         Likewise.
4675         * testsuite/20_util/expected/lwg3877.cc: New test.
4677 2023-05-17  Ken Matsui  <kmatsui@cs.washington.edu>
4679         * include/std/type_traits: Use __bool_constant instead of
4680         integral_constant.
4682 2023-05-17  Jonathan Wakely  <jwakely@redhat.com>
4684         * configure: Regenerate.
4686 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
4688         PR libstdc++/109741
4689         * acinclude.m4 (GLIBCXX_CHECK_ALIGNAS_CACHELINE): Define.
4690         * config.h.in: Regenerate.
4691         * configure: Regenerate.
4692         * configure.ac: Use GLIBCXX_CHECK_ALIGNAS_CACHELINE.
4693         * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex): Do not
4694         align lock table if not supported. use __GCC_DESTRUCTIVE_SIZE
4695         instead of hardcoded 64.
4697 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
4699         * acinclude.m4 (GLIBCXX_USE_C99): Check for isblank in C++11
4700         mode and define _GLIBCXX_USE_C99_CTYPE. Check for <fenv.h>
4701         functions in C++11 mode and define _GLIBCXX_USE_C99_FENV.
4702         * config.h.in: Regenerate.
4703         * configure: Regenerate.
4704         * include/c_compatibility/fenv.h: Check _GLIBCXX_USE_C99_FENV
4705         instead of _GLIBCXX_USE_C99_FENV_TR1.
4706         * include/c_global/cfenv: Likewise.
4707         * include/c_global/cctype: Check _GLIBCXX_USE_C99_CTYPE instead
4708         of _GLIBCXX_USE_C99_CTYPE_TR1.
4710 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
4712         * acinclude.m4 (GLIBCXX_USE_C99): Check for <stdint.h> types in
4713         C++11 mode and define _GLIBCXX_USE_C99_STDINT. Check for
4714         <inttypes.h> features in C++11 mode and define
4715         _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T.
4716         * config.h.in: Regenerate.
4717         * configure: Regenerate.
4718         * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
4719         * include/bits/chrono.h: Check _GLIBCXX_USE_C99_STDINT instead
4720         of _GLIBCXX_USE_C99_STDINT_TR1.
4721         * include/c_compatibility/inttypes.h: Check
4722         _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T
4723         instead of _GLIBCXX_USE_C99_INTTYPES_TR1 and
4724         _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
4725         * include/c_compatibility/stdatomic.h: Check
4726         _GLIBCXX_USE_C99_STDINT instead of _GLIBCXX_USE_C99_STDINT_TR1.
4727         * include/c_compatibility/stdint.h: Likewise.
4728         * include/c_global/cinttypes: Check _GLIBCXX_USE_C99_INTTYPES
4729         and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T instead of
4730         _GLIBCXX_USE_C99_INTTYPES_TR1 and
4731         _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
4732         * include/c_global/cstdint: Check _GLIBCXX_USE_C99_STDINT
4733         instead of _GLIBCXX_USE_C99_STDINT_TR1.
4734         * include/std/atomic: Likewise.
4735         * src/c++11/cow-stdexcept.cc: Likewise.
4736         * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
4737         Likewise.
4738         * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
4739         Likewise.
4741 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
4743         * acinclude.m4 (GLIBCXX_USE_C99): Check for complex inverse trig
4744         functions in C++11 mode and define _GLIBCXX_USE_C99_COMPLEX_ARC.
4745         * config.h.in: Regenerate.
4746         * configure: Regenerate.
4747         * doc/doxygen/user.cfg.in (PREDEFINED): Add new macro.
4748         * include/std/complex: Check _GLIBCXX_USE_C99_COMPLEX_ARC
4749         instead of _GLIBCXX_USE_C99_COMPLEX_TR1.
4751 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
4753         * testsuite/ext/debug_allocator/check_deallocate_null.cc: Add
4754         assertion to ensure expected exception is throw.
4756 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
4758         * testsuite/libstdc++-prettyprinters/chrono.cc: Only test
4759         printer for chrono::zoned_time for cx11 ABI and tzdb effective
4760         target.
4762 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
4764         * acinclude.m4 (GLIBCXX_CHECK_PTHREAD_MUTEX_CLOCKLOCK): Define
4765         _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK in terms of _GLIBCXX_TSAN.
4766         * configure: Regenerate.
4768 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
4770         * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Use a non-null pointer
4771         to check for nan, nanf, and nanl.
4772         * configure: Regenerate.
4774 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
4776         * include/bits/char_traits.h (char_traits<char16_t>): Do not
4777         depend on _GLIBCXX_USE_C99_STDINT_TR1.
4778         (char_traits<char32_t>): Likewise.
4779         * include/experimental/source_location: Likewise.
4781 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
4783         * include/std/atomic (atomic_int_least8_t, atomic_uint_least8_t)
4784         (atomic_int_least16_t, atomic_uint_least16_t)
4785         (atomic_int_least32_t, atomic_uint_least32_t)
4786         (atomic_int_least64_t, atomic_uint_least64_t)
4787         (atomic_int_fast16_t, atomic_uint_fast16_t)
4788         (atomic_int_fast32_t, atomic_uint_fast32_t)
4789         (atomic_int_fast64_t, atomic_uint_fast64_t)
4790         (atomic_intmax_t, atomic_uintmax_t): Define unconditionally.
4791         * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Adjust.
4793 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
4795         * include/bits/algorithmfwd.h (shuffle): Do not depend on
4796         _GLIBCXX_USE_C99_STDINT_TR1.
4797         * include/bits/ranges_algo.h (shuffle): Likewise.
4798         * include/bits/stl_algo.h (shuffle): Likewise.
4799         * include/ext/random: Likewise.
4800         * include/ext/throw_allocator.h (random_condition): Likewise.
4801         * include/std/random: Likewise.
4802         * src/c++11/cow-string-inst.cc: Likewise.
4803         * src/c++11/random.cc: Likewise.
4805 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
4807         * testsuite/experimental/feat-cxx14.cc: Remove dependency on
4808         _GLIBCXX_USE_C99_STDINT_TR1.
4810 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
4812         * testsuite/22_locale/locale/cons/unicode.cc: Remove dependency
4813         on _GLIBCXX_USE_C99_STDINT_TR1.
4815 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
4817         * testsuite/21_strings/basic_string_view/typedefs.cc: Remove
4818         dependency on _GLIBCXX_USE_C99_STDINT_TR1.
4819         * testsuite/experimental/string_view/typedefs.cc: Likewise.
4821 2023-05-11  Jonathan Wakely  <jwakely@redhat.com>
4823         * src/c++17/floating_from_chars.cc [USE_STRTOD_FOR_FROM_CHARS]
4824         (auto_locale, auto_ferounding): New class types.
4825         (from_chars_impl): Use auto_locale and auto_ferounding.
4827 2023-05-11  Jonathan Wakely  <jwakely@redhat.com>
4829         PR libstdc++/109772
4830         * include/std/chrono (hh_mm_ss::__fits): Remove variable
4831         template.
4832         (hh_mm_ss::__subseconds): Remove __fits from constraints.
4833         * testsuite/std/time/hh_mm_ss/109772.cc: New test.
4834         * testsuite/std/time/hh_mm_ss/1.cc: Adjust expected size for
4835         hh_mm_ss<duration<int, std::pico>>.
4837 2023-05-11  Jonathan Wakely  <jwakely@redhat.com>
4839         * config/abi/pre/gnu.ver: Export basic_string::_S_allocate.
4840         * include/bits/basic_ios.h: Add static assertion checking
4841         traits_type::value_type.
4842         * include/bits/basic_string.h: Likewise. Do not rebind
4843         allocator, and add static assertion checking its value_type.
4844         (basic_string::_Alloc_traits_impl): Remove class template.
4845         (basic_string::_S_allocate): New static member function.
4846         (basic_string::assign): Use _S_allocate.
4847         * include/bits/basic_string.tcc (basic_string::_M_create)
4848         (basic_string::reserve, basic_string::_M_replace): Likewise.
4849         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc:
4850         Disable for C++20 and later.
4851         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
4852         Likweise.
4854 2023-05-11  Jonathan Wakely  <jwakely@redhat.com>
4856         PR libstdc++/109758
4857         * include/bits/std_abs.h (abs(__float128)): Handle negative NaN
4858         and negative zero correctly.
4859         * testsuite/26_numerics/headers/cmath/109758.cc: New test.
4861 2023-05-10  François Dumont  <fdumont@gcc.gnu.org>
4863         * include/bits/hashtable_policy.h
4864         (_NodeBuilder<>::_S_build): Use __node_ptr.
4865         (_ReuseOrAllocNode<>): Use __node_ptr in place of __node_type*.
4866         (_AllocNode<>): Likewise.
4867         (_Equality<>::_M_equal): Remove const_iterator usages. Only preserved
4868         to call std::is_permutation in the non-unique key implementation.
4869         * include/bits/hashtable.h (_Hashtable<>::_M_update_begin()): Capture
4870         _M_begin() once.
4871         (_Hashtable<>::_M_bucket_begin(size_type)): Implement implicitly inline.
4872         (_Hashtable<>::_M_insert_bucket_begin): Likewise.
4873         (_Hashtable<>::_M_remove_bucket_begin): Likewise.
4874         (_Hashtable<>::_M_compute_hash_code): Use __node_ptr rather than
4875         const_iterator.
4876         (_Hashtable<>::find): Likewise.
4877         (_Hashtable<>::_M_emplace): Likewise.
4878         (_Hashtable<>::_M_insert_unique): Likewise.
4880 2023-05-09  Jonathan Wakely  <jwakely@redhat.com>
4882         * python/libstdcxx/v6/printers.py (StdChronoDurationPrinter):
4883         Print floating-point durations correctly.
4884         (StdChronoTimePointPrinter): Support printing only the value,
4885         not the type name. Uncomment handling for known clocks.
4886         (StdChronoZonedTimePrinter): Remove type names from output.
4887         (StdChronoCalendarPrinter): Fix hh_mm_ss member access.
4888         (StdChronoTimeZonePrinter): Add equals sign to output.
4889         * testsuite/libstdc++-prettyprinters/chrono.cc: New test.
4891 2023-05-05  Alexandre Oliva  <oliva@adacore.com>
4893         * testsuite/20_util/from_chars/4.cc: Skip long double test06
4894         on aarch64-vxworks.
4895         * testsuite/20_util/to_chars/long_double.cc: Xfail run on
4896         aarch64-vxworks.
4898 2023-05-04  Jonathan Wakely  <jwakely@redhat.com>
4900         * doc/xml/manual/abi.xml (abi.versioning.history): Document
4901         libstdc++.so.6.0.32 and GLIBCXX_3.4.32 version.
4902         * doc/html/manual/abi.html: Regenerate.
4904 2023-05-04  Florian Weimer  <fweimer@redhat.com>
4906         * doc/xml/manual/abi.xml (abi.versioning.history): Add
4907         GCC_7.0.0, GCC_9.0.0, GCC_11.0, GCC_12.0.0, GCC_13.0.0 for
4908         libgcc_s.
4910 2023-05-03  Jakub Jelinek  <jakub@redhat.com>
4912         * src/c++17/floating_from_chars.cc
4913         (_ZSt10from_charsPKcS0_RDF128_St12chars_format): New alias to
4914         _ZSt10from_charsPKcS0_Ru9__ieee128St12chars_format.
4915         * src/c++17/floating_to_chars.cc (_ZSt8to_charsPcS_DF128_): New alias to
4916         _ZSt8to_charsPcS_u9__ieee128.
4917         (_ZSt8to_charsPcS_DF128_St12chars_format): New alias to
4918         _ZSt8to_charsPcS_u9__ieee128St12chars_format.
4919         (_ZSt8to_charsPcS_DF128_St12chars_formati): New alias to
4920         _ZSt8to_charsPcS_u9__ieee128St12chars_formati.
4921         * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Updated.
4923 2023-05-03  Jakub Jelinek  <jakub@redhat.com>
4925         * configure.host (abi_baseline_pair): Use powerpc64le-linux-gnu
4926         rather than powerpc64-linux-gnu for powerpc64le*-linux*.
4927         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Remove
4928         _ZTI*DF128_, _ZTI*DF64x symbols and symbols in
4929         GLIBCXX_IEEE128_3.4.{29,30,31} and CXXABI_IEEE128_1.3.13 symbol
4930         versions.
4931         * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: New
4932         file.
4934 2023-05-03  Kefu Chai  <kefu.chai@scylladb.com>
4935             Jonathan Wakely  <jwakely@redhat.com>
4937         PR libstdc++/109703
4938         * include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)):
4939         Initialize _M_string_length.
4941 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
4943         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
4944         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
4945         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
4946         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
4947         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
4948         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
4949         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
4950         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
4952 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
4954         PR libstdc++/109694
4955         * src/c++98/ios_init.cc: Add #pragma GCC diagnostic ignored for
4956         -Wattribute-alias.
4958 2023-04-28  Jonathan Wakely  <jwakely@redhat.com>
4960         * include/bits/random.h (gamma_distribution): Add to the right
4961         doxygen group.
4962         (discrete_distribution, piecewise_constant_distribution)
4963         (piecewise_linear_distribution): Create a new doxygen group and
4964         fix the incomplete doxygen comments.
4965         * include/bits/uniform_int_dist.h (uniform_int_distribution):
4966         Add to doxygen group.
4968 2023-04-28  Jonathan Wakely  <jwakely@redhat.com>
4970         * include/bits/uses_allocator.h: Add missing @file comment.
4971         * include/bits/regex.tcc: Remove stray doxygen comments.
4972         * include/experimental/memory_resource: Likewise.
4973         * include/std/bit: Tweak doxygen @cond comments.
4974         * include/std/expected: Likewise.
4975         * include/std/numbers: Likewise.
4977 2023-04-28  Jonathan Wakely  <jwakely@redhat.com>
4979         * doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
4980         from header paths.
4982 2023-04-28  Jonathan Wakely  <jwakely@redhat.com>
4984         * include/bits/move.h: Simplify opening/closing namespace std.
4986 2023-04-28  Jakub Jelinek  <jakub@redhat.com>
4988         PR libstdc++/108969
4989         * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export
4990         _ZSt21ios_base_library_initv.
4991         * testsuite/util/testsuite_abi.cc (check_version): Add GLIBCXX_3.4.32
4992         symver and make it the latestp.
4993         * src/c++98/ios_init.cc (ios_base_library_init): New alias.
4994         * acinclude.m4 (libtool_VERSION): Change to 6:32:0.
4995         * include/std/iostream: If init_priority attribute is supported
4996         and _GLIBCXX_SYMVER_GNU, force undefined _ZSt21ios_base_library_initv
4997         symbol into the object.
4998         * configure: Regenerated.
5000 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
5002         * include/bits/mofunc_impl.h: Fix typo in doxygen comment.
5003         * include/std/format: Likewise.
5005 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
5007         * doc/doxygen/user.cfg.in (FORMULA_TRANSPARENT, DOT_FONTNAME)
5008         (DOT_FONTSIZE, DOT_TRANSPARENT): Remove obsolete options.
5010 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
5012         * doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
5013         HTML docs.
5014         * include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
5015         from doxygen docs.
5016         * include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
5017         Likewise.
5018         * include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
5019         Likewise.
5020         * include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
5021         Likewise.
5022         * include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
5023         (_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
5024         (_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
5025         (_DEFINE_BINARY_OPERATOR): Likewise.
5027 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
5029         * include/bits/memory_resource.h: Improve doxygen comments.
5030         * include/std/memory_resource: Likewise.
5032 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
5034         PR libstdc++/40380
5035         * include/bits/basic_string.h: Improve doxygen comments.
5036         * include/bits/cow_string.h: Likewise.
5037         * include/bits/forward_list.h: Likewise.
5038         * include/bits/fs_dir.h: Likewise.
5039         * include/bits/fs_path.h: Likewise.
5040         * include/bits/quoted_string.h: Likewise.
5041         * include/bits/stl_bvector.h: Likewise.
5042         * include/bits/stl_map.h: Likewise.
5043         * include/bits/stl_multimap.h: Likewise.
5044         * include/bits/stl_multiset.h: Likewise.
5045         * include/bits/stl_set.h: Likewise.
5046         * include/bits/stl_vector.h: Likewise.
5047         * include/bits/unordered_map.h: Likewise.
5048         * include/bits/unordered_set.h: Likewise.
5049         * include/std/filesystem: Likewise.
5050         * include/std/iomanip: Likewise.
5052 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
5054         PR libstdc++/105081
5055         * src/c++11/random.cc (__throw_syserr): New function.
5056         (random_device::_M_init, random_device::_M_init_pretr1): Use new
5057         function for bad tokens.
5058         (random_device::_M_getval): Use new function for read errors.
5059         * testsuite/util/testsuite_random.h (random_device_available):
5060         Change catch handler to use std::system_error.
5062 2023-04-24  Patrick Palka  <ppalka@redhat.com>
5064         * include/bits/max_size_type.h (__max_diff_type::operator>>=):
5065         Fix propagation of sign bit.
5066         * testsuite/std/ranges/iota/max_size_type.cc: Avoid using the
5067         non-standard 'signed typedef-name'.  Add some compile-time tests
5068         for right-shifting a negative __max_diff_type value by more than
5069         one.
5071 2023-04-19  Patrick Palka  <ppalka@redhat.com>
5072             Jonathan Wakely  <jwakely@redhat.com>
5074         PR c++/100157
5075         * include/bits/utility.h (_Nth_type): Conditionally define in
5076         terms of __type_pack_element if available.
5077         * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
5078         additional errors from the new built-in.
5080 2023-04-19  Jonathan Wakely  <jwakely@redhat.com>
5082         Revert:
5083         2023-04-18  Jonathan Wakely  <jwakely@redhat.com>
5085         PR libstdc++/108969
5086         * src/Makefile.am: Move globals_io.cc to here.
5087         * src/Makefile.in: Regenerate.
5088         * src/c++98/Makefile.am: Remove globals_io.cc from here.
5089         * src/c++98/Makefile.in: Regenerate.
5090         * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
5091         symbol name and then export with GLIBCXX_3.4.31 symver.
5092         (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
5093         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
5094         Regenerate.
5095         * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
5096         Regenerate.
5097         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
5098         Regenerate.
5099         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
5100         Regenerate.
5101         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
5102         Regenerate.
5103         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
5104         Regenerate.
5105         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
5106         Regenerate.
5107         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
5108         Regenerate.
5109         * config/abi/pre/gnu.ver: Add iostream objects to new symver.
5111 2023-04-19  Jonathan Wakely  <jwakely@redhat.com>
5113         Revert:
5114         2023-04-18  Jonathan Wakely  <jwakely@redhat.com>
5116         PR libstdc++/108969
5117         * config/abi/pre/gnu.ver: Fix preprocessor condition.
5119 2023-04-18  Jonathan Wakely  <jwakely@redhat.com>
5121         * doc/xml/manual/extensions.xml: Fix example to declare and
5122         qualify std::free, and use NULL instead of 0.
5123         * doc/html/manual/ext_demangling.html: Regenerate.
5124         * libsupc++/cxxabi.h: Adjust doxygen comments.
5126 2023-04-18  Jonathan Wakely  <jwakely@redhat.com>
5128         PR libstdc++/108969
5129         * config/abi/pre/gnu.ver: Fix preprocessor condition.
5131 2023-04-18  Jonathan Wakely  <jwakely@redhat.com>
5133         PR libstdc++/108969
5134         * src/Makefile.am: Move globals_io.cc to here.
5135         * src/Makefile.in: Regenerate.
5136         * src/c++98/Makefile.am: Remove globals_io.cc from here.
5137         * src/c++98/Makefile.in: Regenerate.
5138         * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
5139         symbol name and then export with GLIBCXX_3.4.31 symver.
5140         (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
5141         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
5142         Regenerate.
5143         * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
5144         Regenerate.
5145         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
5146         Regenerate.
5147         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
5148         Regenerate.
5149         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
5150         Regenerate.
5151         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
5152         Regenerate.
5153         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
5154         Regenerate.
5155         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
5156         Regenerate.
5157         * config/abi/pre/gnu.ver: Add iostream objects to new symver.
5159 2023-04-18  Patrick Palka  <ppalka@redhat.com>
5161         PR libstdc++/108827
5162         * include/bits/ranges_cmp.h (__cpp_lib_ranges): Bump value
5163         for C++23.
5164         * include/std/ranges (range_adaptor_closure): Define for C++23.
5165         * include/std/version (__cpp_lib_ranges): Bump value for
5166         C++23.
5167         * testsuite/std/ranges/version_c++23.cc: Bump expected value
5168         of __cpp_lib_ranges.
5169         * testsuite/std/ranges/range_adaptor_closure.cc: New test.
5171 2023-04-18  Patrick Palka  <ppalka@redhat.com>
5173         * include/bits/ranges_algo.h (__cpp_lib_ranges_contains):
5174         Define for C++23.
5175         (__cpp_lib_ranges_iota): Likewise.
5176         (__cpp_lib_ranges_find_last): Likewise.
5177         (__cpp_lib_fold): Rename to ...
5178         (__cpp_lib_ranges_fold): ... this.
5179         * include/std/version: As above.
5180         * testsuite/25_algorithms/fold_left/1.cc: Adjust after
5181         renaming __cpp_lib_fold.
5182         * testsuite/std/ranges/version_c++23.cc: Verify values
5183         of the above feature-test macros.
5185 2023-04-18  Patrick Palka  <ppalka@redhat.com>
5187         PR libstdc++/109525
5188         * include/std/ranges (views::_AsConst::operator()): Add
5189         missing const to constant_range test.
5190         * testsuite/std/ranges/adaptors/as_const/1.cc (test02):
5191         Improve formatting.  Adjust expected type of v2.
5192         (test03): New test.
5194 2023-04-14  Patrick Palka  <ppalka@redhat.com>
5196         * include/bits/ranges_base.h (const_iterator_t): Define for C++23.
5197         (const_sentinel_t): Likewise.
5198         (range_const_reference_t): Likewise.
5199         (constant_range): Likewise.
5200         (__cust_access::__possibly_const_range): Likewise, replacing ...
5201         (__cust_access::__as_const): ... this.
5202         (__cust_access::_CBegin::operator()): Redefine for C++23 as per P2278R4.
5203         (__cust_access::_CEnd::operator()): Likewise.
5204         (__cust_access::_CRBegin::operator()): Likewise.
5205         (__cust_access::_CREnd::operator()): Likewise.
5206         (__cust_access::_CData::operator()): Likewise.
5207         * include/bits/ranges_util.h (ranges::__detail::__different_from):
5208         Make it an alias of std::__detail::__different_from.
5209         (view_interface::cbegin): Define for C++23.
5210         (view_interface::cend): Likewise.
5211         * include/bits/stl_iterator.h (__detail::__different_from): Define.
5212         (iter_const_reference_t): Define for C++23.
5213         (__detail::__constant_iterator): Likewise.
5214         (__detail::__is_const_iterator): Likewise.
5215         (__detail::__not_a_const_iterator): Likewise.
5216         (__detail::__iter_const_rvalue_reference_t): Likewise.
5217         (__detail::__basic_const_iter_cat):: Likewise.
5218         (const_iterator): Likewise.
5219         (__detail::__const_sentinel): Likewise.
5220         (const_sentinel): Likewise.
5221         (basic_const_iterator): Likewise.
5222         (common_type<basic_const_iterator<_Tp>, _Up>): Likewise.
5223         (common_type<_Up, basic_const_iterator<_Tp>>): Likewise.
5224         (common_type<basic_const_iterator<_Tp>, basic_const_iterator<Up>>):
5225         Likewise.
5226         (make_const_iterator): Define for C++23.
5227         (make_const_sentinel): Likewise.
5228         * include/std/ranges (__cpp_lib_ranges_as_const): Likewise.
5229         (as_const_view): Likewise.
5230         (enable_borrowed_range<as_const_view>): Likewise.
5231         (views::__detail::__is_ref_view): Likewise.
5232         (views::__detail::__can_is_const_view): Likewise.
5233         (views::_AsConst, views::as_const): Likewise.
5234         * include/std/span (span::const_iterator): Likewise.
5235         (span::const_reverse_iterator): Likewise.
5236         (span::cbegin): Likewise.
5237         (span::cend): Likewise.
5238         (span::crbegin): Likewise.
5239         (span::crend): Likewise.
5240         * include/std/version (__cpp_lib_ranges_as_const): Likewise.
5241         * testsuite/std/ranges/adaptors/join.cc (test06): Adjust to
5242         behave independently of C++20 vs C++23.
5243         * testsuite/std/ranges/version_c++23.cc: Verify value of
5244         __cpp_lib_ranges_as_const macro.
5245         * testsuite/24_iterators/const_iterator/1.cc: New test.
5246         * testsuite/std/ranges/adaptors/as_const/1.cc: New test.
5248 2023-04-14  Patrick Palka  <ppalka@redhat.com>
5250         * include/bits/ranges_base.h (__cust_access::__as_const)
5251         (__cust_access::_CBegin, __cust::cbegin)
5252         (__cust_access::_CEnd, __cust::cend)
5253         (__cust_access::_CRBegin, __cust::crbegin)
5254         (__cust_access::_CREnd, __cust::crend)
5255         (__cust_access::_CData, __cust::cdata): Move down definitions to
5256         shortly after the definition of input_range.
5258 2023-04-14  Patrick Palka  <ppalka@redhat.com>
5260         * include/bits/ranges_algo.h: Include <optional> for C++23.
5261         (__cpp_lib_fold): Define for C++23.
5262         (in_value_result): Likewise.
5263         (__detail::__flipped): Likewise.
5264         (__detail::__indirectly_binary_left_foldable_impl): Likewise.
5265         (__detail::__indirectly_binary_left_foldable): Likewise.
5266         (___detail:__indirectly_binary_right_foldable): Likewise.
5267         (fold_left_with_iter_result): Likewise.
5268         (__fold_left_with_iter_fn, fold_left_with_iter): Likewise.
5269         (__fold_left_fn, fold_left): Likewise.
5270         (__fold_left_first_with_iter_fn, fold_left_first_with_iter):
5271         Likewise.
5272         (__fold_left_first_fn, fold_left_first): Likewise.
5273         (__fold_right_fn, fold_right): Likewise.
5274         (__fold_right_last_fn, fold_right_last): Likewise.
5275         * include/std/version (__cpp_lib_fold): Likewise.
5276         * testsuite/25_algorithms/fold_left/1.cc: New test.
5277         * testsuite/25_algorithms/fold_right/1.cc: New test.
5279 2023-04-14  Jonathan Wakely  <jwakely@redhat.com>
5281         * include/std/format (formatter): Add comment to deleted default
5282         constructor of primary template.
5283         (_Checking_scanner): Add static_assert.
5285 2023-04-12  Jonathan Wakely  <jwakely@redhat.com>
5287         * doc/xml/manual/using.xml: Document libstdc++exp.a library.
5288         * doc/html/*: Regenerate.
5290 2023-04-12  Jonathan Wakely  <jwakely@redhat.com>
5292         * testsuite/17_intro/names.cc [_AIX]: Do not define policy.
5293         * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Rename
5294         namespace to avoid clashing with libc struct.
5295         * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
5296         Likewise.
5297         * testsuite/23_containers/unordered_map/96088.cc: Skip on AIX.
5298         * testsuite/23_containers/unordered_multimap/96088.cc: Likewise.
5299         * testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
5300         * testsuite/23_containers/unordered_set/96088.cc: Likewise.
5301         * testsuite/experimental/synchronized_value.cc: Require gthreads
5302         and add missing option for pthreads targets.
5304 2023-04-12  Patrick Palka  <ppalka@redhat.com>
5306         * include/std/ranges (__cpp_lib_ranges_enumerate): Define
5307         for C++23.
5308         (__detail::__range_with_movable_reference): Likewise.
5309         (enumerate_view): Likewise.
5310         (enumerate_view::_Iterator): Likewise.
5311         (enumerate_view::_Sentinel): Likewise.
5312         (views::__detail::__can_enumerate_view): Likewise.
5313         (views::_Enumerate, views::enumerate): Likewise.
5314         * include/std/version (__cpp_lib_ranges_enumerate): Likewise.
5315         * testsuite/std/ranges/version_c++23.cc: Verify value of
5316         __cpp_lib_ranges_enumerate.
5317         * testsuite/std/ranges/adaptors/enumerate/1.cc: New test.
5319 2023-04-12  Patrick Palka  <ppalka@redhat.com>
5321         * include/std/ranges (lazy_split_view::_OuterIter::_OuterIter):
5322         Propagate _M_trailing_empty in the const-converting constructor
5323         as per LWG 3904.
5324         * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): Correct
5325         assertion.
5326         * testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test.
5328 2023-04-12  Patrick Palka  <ppalka@redhat.com>
5330         * src/c++17/floating_from_chars.cc: Include <algorithm>,
5331         <iterator>, <limits> and <cstdint>.
5333 2023-04-12  Patrick Palka  <ppalka@redhat.com>
5335         PR libstdc++/108291
5336         * include/std/ranges (chunk_by_view::_M_find_next): Generalize
5337         parameter types of the lambda wrapper passed to adjacent_find.
5338         (chunk_by_view::_M_find_prev): Likewise.
5339         * testsuite/std/ranges/adaptors/chunk_by/1.cc (test04, test05):
5340         New tests.
5342 2023-04-12  Jonathan Wakely  <jwakely@redhat.com>
5344         PR libstdc++/109482
5345         * include/experimental/internet (basic_endpoint::basic_endpoint()):
5346         Ensure that the required union members are active. Only define
5347         as constexpr for C++20 and later.
5348         (basic_endpoint::basic_endpoint(const protocol_type&, port_type)):
5349         Likewise.
5350         * testsuite/experimental/net/internet/endpoint/cons.cc: Only
5351         check constexpr default constructor for C++20 and later.
5352         * testsuite/experimental/net/internet/endpoint/extensible.cc:
5353         Likewise.
5355 2023-04-12  Jonathan Wakely  <jwakely@redhat.com>
5357         * src/c++20/tzdata.zi: Import new file from 2023c release.
5359 2023-04-05  Arsen Arsenović  <arsen@aarsen.me>
5361         * include/precompiled/stdc++.h (C++17): Don't double-include
5362         <charconv>, once with wrong conditions.
5363         * testsuite/18_support/96817.cc: Require hosted.
5364         * testsuite/18_support/bad_exception/59392.cc: Ditto.
5365         * testsuite/20_util/scoped_allocator/108952.cc: Ditto.
5366         * testsuite/20_util/uses_allocator/lwg3527.cc: Ditto.
5367         * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
5368         Ditto.
5370 2023-04-05  Arsen Arsenović  <arsen@aarsen.me>
5372         * include/bits/c++config: When __STDC_HOSTED__ is zero,
5373         disable _GLIBCXX_DEBUG and, if it was set, enable
5374         _GLIBCXX_ASSERTIONS.
5375         * testsuite/lib/libstdc++.exp (check_v3_target_debug_mode):
5376         Include <bits/c++config.h> when determining whether debug is
5377         set, in order to inherit the logic from above
5379 2023-04-05  Arsen Arsenović  <arsen@aarsen.me>
5381         * testsuite/17_intro/versionconflict.cc: New test.
5382         * include/std/version: Allow disabling the system_header pragma
5383         via _GLIBCXX_TESTING_SYSHDR.
5385 2023-04-05  Arsen Arsenović  <arsen@aarsen.me>
5387         * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
5388         Synchronize the definition block with...
5389         * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory):
5390         ... this one here.  Also define the 202202L value, rather than
5391         leaving it up to purely unique_ptr.h, so that the value is
5392         synchronized across all headers.
5393         (__gnu_debug::_Safe_iterator_base): Move into new conditional
5394         block.
5395         * include/std/memory (__cpp_lib_atomic_value_initialization):
5396         Define on freestanding under the same conditions as in
5397         atomic_base.h.
5398         * include/std/version (__cpp_lib_robust_nonmodifying_seq_ops):
5399         Also define on freestanding.
5400         (__cpp_lib_to_chars): Ditto.
5401         (__cpp_lib_gcd): Ditto.
5402         (__cpp_lib_gcd_lcm): Ditto.
5403         (__cpp_lib_raw_memory_algorithms): Ditto.
5404         (__cpp_lib_array_constexpr): Ditto.
5405         (__cpp_lib_nonmember_container_access): Ditto.
5406         (__cpp_lib_clamp): Ditto.
5407         (__cpp_lib_constexpr_char_traits): Ditto.
5408         (__cpp_lib_constexpr_string): Ditto.
5409         (__cpp_lib_sample): Ditto.
5410         (__cpp_lib_lcm): Ditto.
5411         (__cpp_lib_constexpr_iterator): Ditto.
5412         (__cpp_lib_constexpr_char_traits): Ditto.
5413         (__cpp_lib_interpolate): Ditto.
5414         (__cpp_lib_constexpr_utility): Ditto.
5415         (__cpp_lib_shift): Ditto.
5416         (__cpp_lib_ranges): Ditto.
5417         (__cpp_lib_move_iterator_concept): Ditto.
5418         (__cpp_lib_constexpr_numeric): Ditto.
5419         (__cpp_lib_constexpr_functional): Ditto.
5420         (__cpp_lib_constexpr_algorithms): Ditto.
5421         (__cpp_lib_constexpr_tuple): Ditto.
5422         (__cpp_lib_constexpr_memory): Ditto.
5424 2023-04-05  John David Anglin  <danglin@gcc.gnu.org>
5426         * testsuite/22_locale/locale/cons/12658_thread-2.cc: Double
5427         timeout factor on hppa*-*-*.
5429 2023-04-05  Jonathan Wakely  <jwakely@redhat.com>
5431         * include/bits/regex.h (sub_match::swap): New function.
5432         * testsuite/28_regex/sub_match/lwg3204.cc: New test.
5434 2023-04-04  Jonathan Wakely  <jwakely@redhat.com>
5436         * doc/xml/manual/extensions.xml: Remove std::bad_exception from
5437         example program.
5438         * doc/html/manual/ext_demangling.html: Regenerate.
5440 2023-03-31  Jonathan Wakely  <jwakely@redhat.com>
5442         PR tree-optimization/107087
5443         * include/bits/cow_string.h (basic_string::size()): Add
5444         optimizer hint that _S_empty_rep()._M_length is always zero.
5445         (basic_string::length()): Call size().
5447 2023-03-31  Jonathan Wakely  <jwakely@redhat.com>
5449         PR libstdc++/109339
5450         * include/std/stop_token (_Stop_state_ptr(const stop_source&)):
5451         Add attribute access with access-mode 'none'.
5452         * testsuite/30_threads/stop_token/stop_source/109339.cc: New test.
5454 2023-03-31  Jonathan Wakely  <jwakely@redhat.com>
5456         * include/experimental/internet (ip::basic_endpoint::_M_if_v6):
5457         Revert change from member function to data member. Fix for
5458         constant evaluation by detecting which union member is active.
5459         (ip::basic_endpoint::resize): Revert changes to update _M_is_v6
5460         flag.
5462 2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
5464         PR libstdc++/109242
5465         * testsuite/20_util/optional/monadic/pr109340.cc: Moved to...
5466         * testsuite/20_util/optional/monadic/pr109242.cc: ...here.
5468 2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
5470         * include/experimental/internet (ip::make_address): Implement
5471         missing overload.
5472         (ip::address_v4::broadcast()): Avoid undefined shift.
5473         (ip::basic_endpoint): Fix member functions for constexpr.
5474         (ip::basic_endpoint::_M_is_v6): Replace member function with
5475         data member, adjust member functions using it.
5476         (ip::basic_endpoint::resize): Update _M_is_v6 based on sockaddr
5477         content.
5478         * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
5479         constexpr checks to work in C++14.
5480         * testsuite/experimental/net/internet/address/v4/creation.cc:
5481         Likewise.
5482         * testsuite/experimental/net/internet/endpoint/cons.cc:
5483         Likewise.
5484         * testsuite/experimental/net/internet/network/v4/cons.cc:
5485         Likewise.
5486         * testsuite/experimental/net/internet/network/v4/members.cc:
5487         Likewise.
5488         * testsuite/experimental/net/internet/endpoint/extensible.cc: New test.
5490 2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
5492         * include/std/expected (expected::value() &): Use const lvalue
5493         for unex member passed to bad_expected_access constructor, as
5494         per LWG 3843.
5496 2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
5498         PR libstdc++/109340
5499         * include/std/expected (expected::transform): Use
5500         std::remove_cv_t instead of std::remove_cvref_t.
5501         (expected::transform_error): Likewise.
5502         (expected<cv void, E>::transform): Likewise.
5503         (expected<cv void, E>::transform_error): Likewise.
5504         * include/std/optional (transform): Use std::remove_cv_t.
5505         * testsuite/20_util/optional/monadic/pr109340.cc: New test.
5507 2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
5509         * include/std/optional (optional): Adjust static assertion to
5510         reject arrays and functions as well as references.
5511         * testsuite/20_util/optional/requirements_neg.cc: New test.
5513 2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
5515         PR libstdc++/103387
5516         * include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use
5517         std::use_facet instead of cached _M_num_get facet.
5518         (istream::operator>>(short&)): Likewise.
5519         (istream::operator>>(int&)): Likewise.
5520         * include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use
5521         std::use_facet instead of cached _M_num_put facet.
5523 2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
5525         * include/bits/char_traits.h (char_traits::copy): Return without
5526         using memcpy if n==0.
5527         (char_traits::assign): Likewise for memset.
5529 2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
5531         PR libstdc++/109299
5532         * include/bits/basic_string.h (basic_string::_M_is_local()): Add
5533         hint for compiler that local strings fit in the local buffer.
5535 2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
5537         PR libstdc++/109288
5538         * include/std/chrono (__detail::__get_leap_second_info): Update
5539         expiry date of hardcoded leapseconds list.
5540         * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds()):
5541         Likewise.
5542         * src/c++20/tzdata.zi: Import new file from 2023a release.
5543         * testsuite/std/time/time_zone/get_info_local.cc: Only check
5544         transitions for Egypt up to 2014.
5546 2023-03-28  Matthias Kretz  <m.kretz@gsi.de>
5548         * include/experimental/bits/simd.h (is_simd_flag_type): New.
5549         (_IsSimdFlagType): New.
5550         (copy_from, copy_to, load ctors): Constrain _Flags using
5551         _IsSimdFlagType.
5553 2023-03-28  Matthias Kretz  <m.kretz@gsi.de>
5555         * include/experimental/bits/simd_x86.h (_SimdImplX86): Use
5556         _Base::_S_divides if the optimized _S_divides function is hidden
5557         via the preprocessor.
5559 2023-03-27  Jakub Jelinek  <jakub@redhat.com>
5561         * testsuite/experimental/net/timer/waitable/dest.cc: Avoid -Wformat
5562         warning if size_t is not unsigned long.
5564 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
5566         * include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)):
5567         Add overload, as per LWG 3893.
5568         * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
5569         Check assignment from nullptr.
5571 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
5573         * include/std/format (formatter<const charT[N], charT>): Do not
5574         define partial speclialization, as per LWG 3833.
5575         * testsuite/std/format/formatter/requirements.cc: Check it.
5577 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
5579         * include/std/utility (__cpp_lib_constexpr_algorithms): Define,
5580         as per LWG 3792.
5581         * testsuite/20_util/exchange/constexpr.cc: Check for it.
5583 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
5585         * include/std/version (__cpp_lib_format): Define.
5586         * testsuite/std/format/functions/format.cc: Check it.
5588 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
5590         * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
5591         Pass rvalues to the callback, as now allowed by LWG 3645.
5592         Enforce preconditions on the return value.
5593         * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
5594         Adjust.
5596 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
5598         * include/std/format: Add a comment noting that the resolution
5599         of LWG 3720 has been applied..
5601 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
5603         * include/bits/regex.h (match_results): Add allocator-extended
5604         copy and move constructors, as per LWG 2195.
5605         * testsuite/28_regex/match_results/ctors/char/alloc.cc: New test.
5607 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
5609         * include/bits/stream_iterator.h (istream_iterator): Add
5610         constexpr to copy constructor, as per LWG 3600.
5611         * testsuite/24_iterators/istream_iterator/cons/constexpr.cc:
5612         Check copy construction.
5614 2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
5616         * include/experimental/bits/simd_x86.h
5617         (_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
5618         with __RECIPROCAL_MATH__.
5620 2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
5622         * include/experimental/bits/simd_detail.h: Don't define
5623         _GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang.
5624         * include/experimental/bits/simd_x86.h (_S_divides): Remove
5625         check for __clang__.
5627 2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
5629         * include/experimental/bits/simd_detail.h: Don't declare the
5630         simd API as constexpr with Clang.
5631         * include/experimental/bits/simd_x86.h (__movm): New.
5632         (_S_blend_avx512): Resolve FIXME. Implement blend using __movm
5633         and ?:.
5634         (_SimdImplX86::_S_masked_unary): Clang does not implement the
5635         same builtins. Implement the function using __movm, ?:, and -
5636         operators on vector_size types instead.
5638 2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
5640         * testsuite/experimental/simd/tests/operators.cc: Clang doesn't
5641         define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
5643 2023-03-20  Jonathan Wakely  <jwakely@redhat.com>
5645         * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix
5646         formatting.
5648 2023-03-20  Marek Polacek  <polacek@redhat.com>
5650         PR c++/109159
5651         * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust dg-error.
5652         * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
5653         * testsuite/23_containers/span/explicit.cc: Likewise.
5655 2023-03-20  Jonathan Wakely  <jwakely@redhat.com>
5657         PR libstdc++/109182
5658         * include/std/expected (expected<void>::expected(in_place_t)):
5659         Remove template-head.
5661 2023-03-18  Jonathan Wakely  <jwakely@redhat.com>
5663         PR libstdc++/109165
5664         * testsuite/18_support/coroutines/hash.cc: Use const object
5665         in second call.
5667 2023-03-17  Jonathan Wakely  <jwakely@redhat.com>
5669         PR libstdc++/109165
5670         * include/std/coroutine (hash<>::operator()): Add const.
5671         * testsuite/18_support/coroutines/hash.cc: New test.
5673 2023-03-14  Patrick Palka  <ppalka@redhat.com>
5675         PR libstdc++/109111
5676         * include/std/ranges (repeat_view): Remove redundant parentheses
5677         in requires-clause.
5678         (repeat_view::_Iterator): Correct the requires-clause.
5680 2023-03-14  Patrick Palka  <ppalka@redhat.com>
5682         * include/bits/stl_iterator.h (move_iterator::_S_iter_concept):
5683         Define.
5684         (__cpp_lib_move_iterator_concept): Define for C++20.
5685         (move_iterator::iterator_concept): Strengthen as per P2520R0.
5686         * include/std/version (__cpp_lib_move_iterator_concept): Define
5687         for C++20.
5688         * testsuite/24_iterators/move_iterator/p2520r0.cc: New test.
5690 2023-03-14  Patrick Palka  <ppalka@redhat.com>
5692         * include/bits/ranges_util.h (view_interface::empty): Add
5693         preferred overloads that use ranges::size when the range is
5694         sized as per LWG 3715.
5695         * testsuite/std/ranges/adaptors/lwg3715.cc: New test.
5697 2023-03-14  Jonathan Wakely  <jwakely@redhat.com>
5699         * include/bits/chrono.h (__is_duration_v, __is_time_point_v):
5700         Only define for C++17 and later.
5702 2023-03-14  Jonathan Wakely  <jwakely@redhat.com>
5704         * src/Makefile.am: Add comment about linker script fragments.
5705         * src/Makefile.in: Regenerate.
5707 2023-03-14  Jonathan Wakely  <jwakely@redhat.com>
5709         PR libstdc++/62196
5710         * include/bits/mask_array.h (mask_array): Add assertions to
5711         assignment operators.
5712         * include/std/valarray (valarray::operator[](valarray<bool>)):
5713         Add assertions.
5714         * testsuite/26_numerics/valarray/mask-1_neg.cc: New test.
5715         * testsuite/26_numerics/valarray/mask-2_neg.cc: New test.
5716         * testsuite/26_numerics/valarray/mask-3_neg.cc: New test.
5717         * testsuite/26_numerics/valarray/mask-4_neg.cc: New test.
5718         * testsuite/26_numerics/valarray/mask-5_neg.cc: New test.
5719         * testsuite/26_numerics/valarray/mask-6_neg.cc: New test.
5720         * testsuite/26_numerics/valarray/mask-7_neg.cc: New test.
5721         * testsuite/26_numerics/valarray/mask-8_neg.cc: New test.
5722         * testsuite/26_numerics/valarray/mask.cc: New test.
5724 2023-03-13  Jakub Jelinek  <jakub@redhat.com>
5726         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
5727         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5729 2023-03-13  Jonathan Wakely  <jwakely@redhat.com>
5731         * doc/Makefile.am: Add comment referring to documentation.
5732         * doc/Makefile.in: Regenerate.
5734 2023-03-13  Jonathan Wakely  <jwakely@redhat.com>
5736         * doc/html/*: Regenerate.
5738 2023-03-13  Jonny Grant  <jg@jguk.org>
5740         * doc/xml/faq.xml: Update copyright year.
5742 2023-03-13  Jonathan Wakely  <jwakely@redhat.com>
5744         * include/bits/allocator.h: Fix typo in comment.
5746 2023-03-12  Jakub Jelinek  <jakub@redhat.com>
5748         * config/abi/pre/gnu.ver (CXXABI_1.3.14): Also export __bf16 tinfos
5749         if it isn't mangled as DF16b but u6__bf16.
5751 2023-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
5753         * doc/xml/manual/documentation_hacking.xml: Move www.graphviz.org
5754         to https.
5755         * doc/html/manual/documentation_hacking.html: Regenerate.
5757 2023-03-10  Jonathan Wakely  <jwakely@redhat.com>
5759         PR libstdc++/109064
5760         * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
5761         Remove self-recursion in __init__. Add missing _supports.
5762         * testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
5763         and unique().
5765 2023-03-09  Patrick Palka  <ppalka@redhat.com>
5767         * include/std/ranges
5768         (cartesian_product_view::_Iterator::_Iterator): Remove
5769         constraint on default constructor as per LWG 3849.
5770         (cartesian_product_view::_Iterator::_M_prev): Adjust position
5771         of _Nm > 0 test as per LWG 3820.
5772         (cartesian_product_view::_Iterator::_M_advance): Perform bounds
5773         checking only on sized cartesian products.
5774         * testsuite/std/ranges/cartesian_product/1.cc (test08): New test.
5776 2023-03-09  Patrick Palka  <ppalka@redhat.com>
5778         PR libstdc++/109024
5779         * include/std/ranges (chunk_by_view::_M_pred): Remove DMI as per
5780         LWG 3796.
5781         (repeat_view::_M_pred): Likewise.
5782         * testsuite/std/ranges/adaptors/chunk_by/1.cc (test03): New test.
5783         * testsuite/std/ranges/repeat/1.cc (test05): New test.
5785 2023-03-09  Patrick Palka  <ppalka@redhat.com>
5787         PR libstdc++/108362
5788         * include/std/ranges (__detail::__can_single_view): New concept.
5789         (_Single::operator()): Constrain it.  Move [[nodiscard]] to the
5790         end of the function declarator.
5791         (__detail::__can_iota_view): New concept.
5792         (_Iota::operator()): Constrain it.  Move [[nodiscard]] to the
5793         end of the function declarator.
5794         (__detail::__can_istream_view): New concept.
5795         (_Istream::operator()): Constrain it.  Move [[nodiscard]] to the
5796         end of the function declarator.
5797         * testsuite/std/ranges/iota/iota_view.cc (test07): New test.
5798         * testsuite/std/ranges/istream_view.cc (test08): New test.
5799         * testsuite/std/ranges/single_view.cc (test07): New test.
5801 2023-03-09  Patrick Palka  <ppalka@redhat.com>
5803         PR libstdc++/107572
5804         * include/std/ranges (cartesian_product_view::end): When
5805         building the tuple of iterators, avoid calling ranges::begin on
5806         the first range if __empty_tail is false.
5807         * testsuite/std/ranges/cartesian_product/1.cc (test07): New test.
5809 2023-03-09  Jonathan Wakely  <jwakely@redhat.com>
5811         PR libstdc++/108882
5812         * config/os/gnu-linux/ldbl-ieee128-extra.ver: Fix incorrect
5813         patterns.
5815 2023-03-07  Jakub Jelinek  <jakub@redhat.com>
5817         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
5818         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
5819         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
5820         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
5821         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
5823 2023-03-07  Jonathan Wakely  <jwakely@redhat.com>
5825         PR libstdc++/108882
5826         * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Adjust patterns to
5827         not match symbols in namespace std::__gnu_cxx11_ieee128.
5828         * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add patterns for
5829         std::__gnu_cxx11_ieee128::money_{get,put}.
5831 2023-03-07  Jonathan Wakely  <jwakely@redhat.com>
5833         * libsupc++/eh_personality.cc: Fix spelling in comment.
5835 2023-03-03  Alexandre Oliva  <oliva@adacore.com>
5837         * testsuite/30_threads/async/async.cc (test04): Initialize
5838         steady_start, renamed from steady_begin, next to slow_start.
5839         Increase tolerance for final wait.
5841 2023-03-03  Alexandre Oliva  <oliva@adacore.com>
5843         * testsuite/libstdc++-prettyprinters/80276.cc: Add
5844         std::string to debug info.
5845         * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
5847 2023-03-03  Alexandre Oliva  <oliva@adacore.com>
5849         PR libstdc++/104852
5850         PR libstdc++/95989
5851         PR libstdc++/52590
5852         * include/bits/std_thread.h (thread::_M_thread_deps): New
5853         static implicitly-inline member function.
5854         (std::thread template ctor): Pass it to _M_start_thread.
5855         * src/c++11/thread.cc (thread::_M_start_thread): Name depend
5856         parameter, force it live on entry.
5858 2023-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5860         * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
5861         * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
5862         Likewise.
5863         * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
5864         * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
5865         Likewise.
5867 2023-03-01  Jonathan Wakely  <jwakely@redhat.com>
5869         * include/bits/cow_string.h: Fix typo in comment.
5871 2023-03-01  Jonathan Wakely  <jwakely@redhat.com>
5873         * src/c++20/tzdb.cc (chrono::tzdb::current_zone()) Use "UTC" if
5874         current time zone cannot be determined.
5875         * testsuite/std/time/tzdb/1.cc: Remove conditions based on
5876         HAVE_TZDB macro and test all members unconditionally.
5878 2023-02-28  Jonathan Wakely  <jwakely@redhat.com>
5880         PR libstdc++/108952
5881         * include/bits/uses_allocator_args.h
5882         (uses_allocator_construction_args): Implement LWG 3527.
5883         * testsuite/20_util/pair/astuple/get-2.cc: New test.
5884         * testsuite/20_util/scoped_allocator/108952.cc: New test.
5885         * testsuite/20_util/uses_allocator/lwg3527.cc: New test.
5887 2023-02-28  Jonathan Wakely  <jwakely@redhat.com>
5889         PR libstdc++/108846
5890         * include/bits/stl_algobase.h (__copy_move<false, false, RA>)
5891         Add __assign_one static member function.
5892         (__copy_move<true, false, RA>): Likewise.
5893         (__copy_move<IsMove, true, RA>): Do not use memmove for a single
5894         value.
5895         (__copy_move_backward<IsMove, true, RA>): Likewise.
5896         * testsuite/25_algorithms/copy/108846.cc: New test.
5897         * testsuite/25_algorithms/copy_backward/108846.cc: New test.
5898         * testsuite/25_algorithms/copy_n/108846.cc: New test.
5899         * testsuite/25_algorithms/move/108846.cc: New test.
5900         * testsuite/25_algorithms/move_backward/108846.cc: New test.
5902 2023-02-28  Jonathan Wakely  <jwakely@redhat.com>
5904         * src/c++11/codecvt.cc: Add [[likely]] and [[unlikely]]
5905         attributes.
5907 2023-02-27  Jonathan Wakely  <jwakely@redhat.com>
5909         * include/bits/basic_ios.h (basic_ios::_M_setstate): Add
5910         caveat to comment.
5911         * include/bits/basic_string.h (resize_and_overwrite): Add
5912         doxygen comment.
5914 2023-02-24  Matthias Kretz  <m.kretz@gsi.de>
5916         * include/experimental/bits/simd.h: Line breaks and indenting
5917         fixed to follow the libstdc++ standard.
5918         * include/experimental/bits/simd_builtin.h: Likewise.
5919         * include/experimental/bits/simd_fixed_size.h: Likewise.
5920         * include/experimental/bits/simd_neon.h: Likewise.
5921         * include/experimental/bits/simd_ppc.h: Likewise.
5922         * include/experimental/bits/simd_scalar.h: Likewise.
5923         * include/experimental/bits/simd_x86.h: Likewise.
5925 2023-02-24  Matthias Kretz  <m.kretz@gsi.de>
5927         PR libstdc++/108030
5928         * include/experimental/bits/simd_fixed_size.h
5929         (_SimdImplFixedSize::_S_broadcast): Replace inline with
5930         _GLIBCXX_SIMD_INTRINSIC.
5931         (_SimdImplFixedSize::_S_generate): Likewise.
5932         (_SimdImplFixedSize::_S_load): Likewise.
5933         (_SimdImplFixedSize::_S_masked_load): Likewise.
5934         (_SimdImplFixedSize::_S_store): Likewise.
5935         (_SimdImplFixedSize::_S_masked_store): Likewise.
5936         (_SimdImplFixedSize::_S_min): Likewise.
5937         (_SimdImplFixedSize::_S_max): Likewise.
5938         (_SimdImplFixedSize::_S_complement): Likewise.
5939         (_SimdImplFixedSize::_S_unary_minus): Likewise.
5940         (_SimdImplFixedSize::_S_plus): Likewise.
5941         (_SimdImplFixedSize::_S_minus): Likewise.
5942         (_SimdImplFixedSize::_S_multiplies): Likewise.
5943         (_SimdImplFixedSize::_S_divides): Likewise.
5944         (_SimdImplFixedSize::_S_modulus): Likewise.
5945         (_SimdImplFixedSize::_S_bit_and): Likewise.
5946         (_SimdImplFixedSize::_S_bit_or): Likewise.
5947         (_SimdImplFixedSize::_S_bit_xor): Likewise.
5948         (_SimdImplFixedSize::_S_bit_shift_left): Likewise.
5949         (_SimdImplFixedSize::_S_bit_shift_right): Likewise.
5950         (_SimdImplFixedSize::_S_remquo): Add inline keyword (to be
5951         explicit about not always-inline, yet).
5952         (_SimdImplFixedSize::_S_isinf): Likewise.
5953         (_SimdImplFixedSize::_S_isfinite): Likewise.
5954         (_SimdImplFixedSize::_S_isnan): Likewise.
5955         (_SimdImplFixedSize::_S_isnormal): Likewise.
5956         (_SimdImplFixedSize::_S_signbit): Likewise.
5958 2023-02-24  Matthias Kretz  <m.kretz@gsi.de>
5960         PR libstdc++/108856
5961         * include/experimental/bits/simd_builtin.h
5962         (_SimdImplBuiltin::_S_masked_unary): More efficient
5963         implementation of masked inc-/decrement for integers and floats
5964         without AVX2.
5965         * include/experimental/bits/simd_x86.h
5966         (_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract
5967         builtins for masked inc-/decrement.
5969 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
5971         * include/experimental/executor (executor): Constrain template
5972         constructors.
5974 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
5976         * include/experimental/internet (basic_endpoint): Add missing
5977         constexpr to comparison operators.
5978         * testsuite/experimental/net/internet/endpoint/cons.cc: New test.
5980 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
5982         * include/experimental/internet (network_v4::netmask()): Avoid
5983         undefined shift.
5984         (network_v4::broadcast()): Optimize and fix for targets with
5985         uint_least32_t wider than 32 bits.
5986         (network_v4::to_string(const Allocator&)): Fix for custom
5987         allocators and optimize using to_chars.
5988         (operator==(const network_v4&, const network_v4&)): Add missing
5989         constexpr.
5990         (operator==(const network_v6&, const network_v6&)): Likewise.
5991         * testsuite/experimental/net/internet/network/v4/cons.cc: New test.
5992         * testsuite/experimental/net/internet/network/v4/members.cc: New test.
5994 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
5996         * include/experimental/internet (address_4(const bytes_type&)):
5997         Use __builtin_bit_cast if available, otherwise convert to
5998         network byte order.
5999         (address_v4::to_bytes()): Likewise, but convert from network
6000         byte order.
6001         * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
6002         incorrect tests. Check for constexpr too.
6003         * testsuite/experimental/net/internet/address/v4/creation.cc:
6004         Likewise.
6005         * testsuite/experimental/net/internet/address/v4/members.cc:
6006         Check that bytes_type is a standard-layout type.
6008 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
6010         * include/experimental/internet (address_v4::to_string):
6011         Optimize.
6012         * testsuite/experimental/net/internet/address/v4/members.cc:
6013         Check more addresses.
6015 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
6017         * include/ext/aligned_buffer.h (__aligned_buffer): Add
6018         diagnostic pragmas.
6020 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
6022         * testsuite/std/format/arguments/lwg3810.cc: Move dg-options
6023         before dg-do.
6025 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
6027         * testsuite/experimental/simd/tests/reductions.cc: Introduce
6028         max_distance as the type-dependent max error.
6030 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
6032         * include/experimental/bits/simd_builtin.h (_S_set): Compare as
6033         int. The actual range of these indexes is very small.
6035 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
6037         * include/experimental/bits/simd_x86.h (_S_bit_shift_left)
6038         (_S_bit_shift_right): Declare constexpr. The implementation was
6039         already expecting constexpr evaluation.
6041 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
6043         PR libstdc++/108030
6044         * include/experimental/bits/simd_detail.h
6045         (_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for
6046         __clang__.
6048 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
6050         PR libstdc++/108030
6051         * include/experimental/bits/simd.h (__vector_broadcast):
6052         Implement via __vector_broadcast_impl instead of
6053         __call_with_n_evaluations + 2 lambdas.
6054         (__vector_broadcast_impl): New.
6056 2023-02-22  Alexandre Oliva  <oliva@adacore.com>
6058         * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex):
6059         Avoid destruction of the mutex pool.
6061 2023-02-22  Alexandre Oliva  <oliva@adacore.com>
6063         * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: xfail
6064         on vxworks.
6065         * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
6066         Likewise.
6068 2023-02-22  Alexandre Oliva  <oliva@adacore.com>
6070         * testsuite/17_intro/names.cc: Undef func on vxworks >= 7 in
6071         kernel mode.
6073 2023-02-20  Andreas Schwab  <schwab@linux-m68k.org>
6075         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
6077 2023-02-20  Matthias Kretz  <m.kretz@gsi.de>
6079         * include/experimental/bits/simd.h (__extract_part, split):
6080         Use reserved name for template parameter.
6082 2023-02-20  Andreas Schwab  <schwab@suse.de>
6084         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
6086 2023-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
6088         * doc/xml/faq.xml: Switch two links to www.open-std.org to https.
6089         * doc/html/faq.html: Regenerate.
6091 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
6093         * include/experimental/bits/simd_math.h (__hypot): Bitcasting
6094         between scalars requires the __bit_cast helper function instead
6095         of simd_bit_cast.
6097 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
6099         * include/experimental/bits/simd_x86.h
6100         (_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
6101         (_SimdImplX86::_S_less_equal): Do not call
6102         __builtin_is_constant_evaluated in constexpr-if.
6104 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
6106         * testsuite/experimental/simd/tests/bits/verify.h
6107         (verify::verify): Use %zx for size_t in format string.
6109 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
6111         * testsuite/experimental/simd/generate_makefile.sh: Generate and
6112         pre-compile pch.h, which includes all headers that do not depend
6113         on command-line macros.
6114         * testsuite/experimental/simd/tests/bits/main.h: New file.
6115         (iterate_abis, main): Moved from verify.h.
6116         * testsuite/experimental/simd/tests/bits/verify.h
6117         (iterate_abis, main): Moved to main.h.
6118         * testsuite/experimental/simd/tests/bits/conversions.h: Add
6119         include guard.
6120         (genHalfBits): Simplify.
6121         * testsuite/experimental/simd/tests/bits/make_vec.h: Add include
6122         guard.
6123         (make_alternating_mask): Moved from mask_loadstore.
6124         * testsuite/experimental/simd/tests/bits/mathreference.h: Add
6125         include guard.
6126         * testsuite/experimental/simd/tests/bits/test_values.h: Ditto.
6127         * testsuite/experimental/simd/tests/mask_loadstore.cc
6128         (make_mask, make_alternating_mask): Removed.
6129         * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
6130         * testsuite/experimental/simd/tests/operators.cc (genHalfBits):
6131         Removed.
6132         * testsuite/experimental/simd/tests/abs.cc: Only include
6133         bits/main.h.
6134         Ditto.
6135         * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
6136         * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
6137         * testsuite/experimental/simd/tests/casts.cc: Ditto.
6138         * testsuite/experimental/simd/tests/fpclassify.cc: Ditto.
6139         * testsuite/experimental/simd/tests/frexp.cc: Ditto.
6140         * testsuite/experimental/simd/tests/generator.cc: Ditto.
6141         * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
6142         * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
6143         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
6144         * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
6145         * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
6146         * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
6147         * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
6148         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
6149         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
6150         * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
6151         * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
6152         * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
6153         * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
6154         * testsuite/experimental/simd/tests/reductions.cc: Ditto.
6155         * testsuite/experimental/simd/tests/remqo.cc: Ditto.
6156         * testsuite/experimental/simd/tests/simd.cc: Ditto.
6157         * testsuite/experimental/simd/tests/sincos.cc: Ditto.
6158         * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
6159         * testsuite/experimental/simd/tests/splits.cc: Ditto.
6160         * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
6161         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
6162         * testsuite/experimental/simd/tests/where.cc: Ditto.
6164 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
6166         * testsuite/experimental/simd/README.md: Document the timeout
6167         and timeout-factor directives. Minor typo fixed.
6169 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
6171         PR libstdc++/108030
6172         * include/experimental/bits/simd_detail.h: Define
6173         _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
6174         * include/experimental/bits/simd.h: Annotate lambdas with
6175         _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
6176         * include/experimental/bits/simd_builtin.h: Ditto.
6177         * include/experimental/bits/simd_converter.h: Ditto.
6178         * include/experimental/bits/simd_fixed_size.h: Ditto.
6179         * include/experimental/bits/simd_math.h: Ditto.
6180         * include/experimental/bits/simd_neon.h: Ditto.
6181         * include/experimental/bits/simd_x86.h: Ditto.
6183 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
6185         * include/experimental/bits/simd.h
6186         (_SimdWrapper::_M_is_constprop_none_of)
6187         (_SimdWrapper::_M_is_constprop_all_of): Return false unless the
6188         computed result still satisfies __builtin_constant_p.
6190 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
6192         * testsuite/std/format/arguments/lwg3810.cc: Replace UTF-8
6193         ellipsis character.
6195 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
6197         * include/Makefile.am: Add new header.
6198         * include/Makefile.in: Regenerate.
6199         * include/experimental/synchronized_value: New file.
6200         * testsuite/experimental/synchronized_value.cc: New test.
6202 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
6204         * include/experimental/optional: Fix header name in comment.
6206 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
6208         * include/std/format (__format::_Arg_store): New class template.
6209         (basic_format_args): Remove nested type _Store and add deduction
6210         guide from _Arg_store.
6211         (basic_format_arg, make_format_args): Adjust.
6212         * testsuite/std/format/arguments/lwg3810.cc: New test.
6214 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
6216         * include/bits/stl_pair.h (pair) [C++20]: Add non-dangling
6217         constraints to constructors and add deleted overloads for the
6218         dangling cases, as per P2255R2.
6219         (pair) [!C++20 && _GLIBCXX_DEBUG]: Add static assertions to
6220         make dangling cases ill-formed.
6221         * testsuite/20_util/pair/dangling_ref.cc: New test.
6223 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
6225         * testsuite/17_intro/names_pstl.cc: Require et tbb_backend.
6227 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
6229         * include/ext/throw_allocator.h: Use reserved names for
6230         parameters.
6232 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
6234         * testsuite/17_intro/names_pstl.cc: Add space after effective
6235         target name.
6237 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
6239         * include/pstl/algorithm_fwd.h (__pattern_search_n)
6240         (__brick_unique_copy, __brick_adjacent_find)
6241         (__brick_generate_n, __pattern_generate_n): Use reserved names
6242         for parameters.
6243         * include/pstl/algorithm_impl.h (__brick_unique_copy)
6244         (__pattern_reverse, __brick_generate_n): Likewise.
6245         * include/pstl/execution_impl.h (__prefer_unsequenced_tag)
6246         (__prefer_parallel_tag): Likewise.
6247         * include/pstl/glue_algorithm_impl.h (transform): Likewise.
6248         * include/pstl/glue_numeric_defs.h (adjacent_difference):
6249         Likewise.
6250         * include/pstl/numeric_impl.h (__brick_adjacent_difference):
6251         Likewise.
6252         * include/pstl/parallel_backend_tbb.h (__merge_func): Likewise.
6253         * include/pstl/unseq_backend_simd.h (_Combiner)
6254         (__simd_min_element, __simd_minmax_element): Likewise.
6255         * testsuite/17_intro/names_pstl.cc: New test.
6257 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
6259         * include/bits/fs_ops.h (create_directory): Use reserved name
6260         for parameter.
6261         * include/bits/ranges_algo.h (__contains_subrange_fn):
6262         Likewise.
6263         * include/bits/regex_automaton.h (_State_base::_M_print):
6264         Likewise.
6265         * include/bits/regex_automaton.tcc(_State_base::_M_print):
6266         Likewise.
6267         * include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise.
6268         * include/experimental/bits/fs_ops.h (create_directory):
6269         Likewise.
6270         * include/std/mutex (timed_mutex::_M_clocklock): Likewise.
6271         (recursive_timed_mutex:_M_clocklock): Likewise.
6272         * include/std/tuple (basic_common_reference): Likewise.
6273         * libsupc++/cxxabi_init_exception.h
6274         (__cxa_init_primary_exception): Likewise.
6275         * testsuite/17_intro/names.cc: Add checks.
6277 2023-02-14  Gerald Pfeifer  <gerald@pfeifer.com>
6279         * doc/xml/manual/status_cxx2017.xml: Update an open-std.org link
6280         to www.open-std.org and https.
6281         * doc/html/manual/status.html: Regenerate.
6283 2023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>
6285         PR libstdc++/103934
6286         * include/std/atomic (atomic_flag_wait): Add.
6287         (atomic_flag_wait_explicit): Add.
6288         (atomic_flag_notify): Add.
6289         (atomic_flag_notify_explicit): Add.
6290         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc:
6291         Add test case to cover missing atomic_flag free functions.
6293 2023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>
6295         PR libstdc++/103934
6296         * include/std/atomic (atomic_flag_test): Add.
6297         (atomic_flag_test_explicit): Add.
6298         * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
6299         test case to cover missing atomic_flag free functions.
6300         * testsuite/29_atomics/atomic_flag/test/implicit.cc:
6301         Likewise.
6303 2023-02-13  Gerald Pfeifer  <gerald@pfeifer.com>
6305         * doc/xml/manual/policy_data_structures_biblio.xml: Adjust
6306         "The Component Object Model" reference.
6307         * doc/html/manual/policy_data_structures.html: Regenerate.
6309 2023-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
6311         * doc/xml/manual/containers.xml: Tweak a link to N1780
6312         (C++ standard).
6313         * doc/html/manual/associative.html: Regenerate.
6315 2023-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
6317         * doc/xml/manual/ctype.xml: Change www.unix.org to unix.org.
6318         * doc/html/manual/facets.html: Regenerate.
6320 2023-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
6322         * doc/xml/manual/policy_data_structures_biblio.xml: Update
6323         link to "Worst-case efficient priority queues".
6324         * doc/html/manual/policy_data_structures.html: Regenerate.
6326 2023-02-06  Arsen Arsenović  <arsen@aarsen.me>
6328         * doc/xml/manual/using.xml: Document newly-freestanding
6329         headers and the effect of the -ffreestanding flag.
6330         * doc/xml/manual/status_cxx2023.xml: Document P1642R11 as
6331         completed.
6332         * doc/xml/manual/configure.xml: Document that hosted installs
6333         respect __STDC_HOSTED__.
6334         * doc/xml/manual/test.xml: Document how to run tests in
6335         freestanding mode.
6336         * doc/html/*: Regenerate.
6338 2023-02-06  Jonathan Wakely  <jwakely@redhat.com>
6340         * include/bits/ranges_algo.h (__find_last_fn): Rename T to _Tp.
6341         (__find_last_if_fn): Likewise.
6343 2023-02-06  Jonathan Wakely  <jwakely@redhat.com>
6345         * include/std/type_traits: Add diagnostic pragmas around
6346         references to deprecated std::aligned_storage and
6347         std::aligned_union traits.
6348         * testsuite/20_util/aligned_storage/requirements/alias_decl.cc:
6349         Add dg-warning for et c++23.
6350         * testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc:
6351         Likewise.
6352         * testsuite/20_util/aligned_storage/value.cc: Likewise.
6353         * testsuite/20_util/aligned_union/1.cc: Likewise.
6354         * testsuite/20_util/aligned_union/requirements/alias_decl.cc:
6355         Likewise.
6357 2023-02-06  Nathaniel Shead  <nathanieloshead@gmail.com>
6359         * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
6360         * include/bits/c++config (_GLIBCXX23_DEPRECATED)
6361         (_GLIBCXX23_DEPRECATED_SUGGEST): New macros.
6362         * include/std/type_traits (aligned_storage, aligned_union)
6363         (aligned_storage_t, aligned_union_t): Deprecate for C++23.
6364         * testsuite/20_util/aligned_storage/deprecated-2b.cc: New test.
6365         * testsuite/20_util/aligned_union/deprecated-2b.cc: New test.
6367 2023-02-06  Nathaniel Shead  <nathanieloshead@gmail.com>
6369         * doc/doxygen/user.cfg.in (PREDEFINED): Update macros.
6370         * include/bits/c++config (_GLIBCXX20_DEPRECATED): Make
6371         consistent with other 'deprecated' macros.
6372         * include/std/type_traits (is_pod, is_pod_v): Use
6373         _GLIBCXX20_DEPRECATED_SUGGEST instead.
6375 2023-02-06  Arsen Arsenović  <arsen@aarsen.me>
6377         * Makefile.am [!_GLIBCXX_HOSTED]: Enable src/ subdirectory.
6378         * Makefile.in: Regenerate.
6379         * src/Makefile.am [!_GLIBCXX_HOSTED]: Omit compatibility files.
6380         There's no history to be compatible with.
6381         * src/c++11/Makefile.am [!_GLIBCXX_HOSTED]: Omit hosted-only
6382         source files from the build.
6383         * src/c++17/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
6384         * src/c++20/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
6385         * src/c++98/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
6386         * src/Makefile.in: Regenerate.
6387         * src/c++11/Makefile.in: Regenerate.
6388         * src/c++17/Makefile.in: Regenerate.
6389         * src/c++20/Makefile.in: Regenerate.
6390         * src/c++98/Makefile.in: Regenerate.
6392 2023-02-06  Jonathan Wakely  <jwakely@redhat.com>
6394         * src/Makefile.am [GLIBCXX_HOSTED] (SUBDIRS): Do not add
6395         filesystem, libbacktrace and experimental.
6396         * src/Makefile.in: Regenerate.
6398 2023-02-04  Hans-Peter Nilsson  <hp@axis.com>
6400         PR libstdc++/108672
6401         * include/pstl/unseq_backend_simd.h (__simd_or): Use __INT32_TYPE__
6402         instead of int32_t.
6404 2023-02-04  Gerald Pfeifer  <gerald@pfeifer.com>
6406         * doc/xml/manual/documentation_hacking.xml: Adjust link to pdftex.
6407         * doc/html/manual/documentation_hacking.html: Regenerate.
6409 2023-02-04  François Dumont  <fdumont@gcc.gnu.org>
6411         * include/bits/basic_string.h (operator=(basic_string&&)): Transfer move-to
6412         storage to the move-from instance when allocators are equal.
6413         * testsuite/21_strings/basic_string/allocator/char/move_assign.cc (test04):
6414         New test case.
6416 2023-02-03  Samuel Thibault  <samuel.thibault@gnu.org>
6418         * config/os/gnu-linux/os_defines.h [!__linux__]
6419         (_GLIBCXX_NATIVE_THREAD_ID, _GLIBCXX_GTHREAD_USE_WEAK): Do not define.
6421 2023-02-03  Patrick Palka  <ppalka@redhat.com>
6423         * include/bits/ranges_algo.h (__find_last_fn, find_last):
6424         Define.
6425         (__find_last_if_fn, find_last_if): Define.
6426         (__find_last_if_not_fn, find_last_if_not): Define.
6427         * testsuite/25_algorithms/find_last/1.cc: New test.
6428         * testsuite/25_algorithms/find_last_if/1.cc: New test.
6429         * testsuite/25_algorithms/find_last_if_not/1.cc: New test.
6431 2023-02-03  Patrick Palka  <ppalka@redhat.com>
6433         * include/bits/ranges_algo.h (out_value_result): Define.
6434         (iota_result): Define.
6435         (__iota_fn, iota): Define.
6436         * testsuite/25_algorithms/iota/1.cc: New test.
6438 2023-02-03  Patrick Palka  <ppalka@redhat.com>
6440         * include/bits/ranges_algo.h (__contains_fn, contains): Define.
6441         (__contains_subrange_fn, contains_subrange): Define.
6442         * testsuite/25_algorithms/contains/1.cc: New test.
6443         * testsuite/25_algorithms/contains_subrange/1.cc: New test.
6445 2023-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
6447         * doc/xml/manual/abi.xml: Tweak link to ABIcheck project.
6448         * doc/html/manual/abi.html: Regenerate.
6450 2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
6452         * src/filesystem/ops-common.h [AVR] (__unsupported): Always use
6453         errc::function_not_supported instead of errc::not_supported.
6455 2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
6457         * include/std/sstream  (basic_stringbuf::view): Define for old
6458         std::string ABI.
6459         (basic_istringstream::view, basic_0stringstream::view)
6460         (basic_stringstream::view): Likewise.
6461         * testsuite/27_io/basic_istringstream/view/char/1.cc: Remove
6462         { dg-require-effective-target cxx11_abi }.
6463         * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
6464         Likewise.
6465         * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
6466         * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
6467         Likewise.
6468         * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
6469         * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
6470         * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
6471         * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
6472         Likewise.
6474 2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
6476         PR libstdc++/108636
6477         * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export shared_ptr
6478         conversion operators for directory iterator comparisons with
6479         std::default_sentinel_t.
6480         * include/bits/fs_path.h (path::path(string_view, _Type))
6481         (path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
6482         definitions to ...
6483         * src/c++17/fs_path.cc: ... here.
6484         * testsuite/27_io/filesystem/path/108636.cc: New test.
6486 2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
6488         * include/std/variant (variant::operator=): Implement resolution
6489         of LWG 3585.
6490         * testsuite/20_util/variant/lwg3585.cc: New test.
6492 2023-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
6494         * doc/xml/manual/using_exceptions.xml: Update a www.open-std.org
6495         link to https.
6496         * doc/html/manual/using_exceptions.html: Regenerate.
6498 2023-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
6500         * doc/xml/manual/debug.xml: Fix link to online GDB manual.
6501         * doc/html/manual/debug.html: Regenerate.
6503 2023-02-01  Jonathan Wakely  <jwakely@redhat.com>
6505         * src/c++11/random.cc (random_device::_M_fini): Do not try to
6506         close the file handle if the target doesn't support the
6507         /dev/random and /dev/urandom files.
6509 2023-02-01  Jonathan Wakely  <jwakely@redhat.com>
6511         * config/os/generic/error_constants.h (errc::value_too_large)
6512         [__AVR__]: Define.
6513         * src/c++11/system_error.cc
6514         (system_category::default_error_condition) [__AVR__]: Only match
6515         recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
6516         * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
6517         for ENOENT etc. in switch.
6518         (fs::remove_all) [__AVR__]: Likewise.
6519         * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
6520         close etc.
6522 2023-02-01  Jonathan Wakely  <jwakely@redhat.com>
6524         * acinclude.m4 (GLIBCXX_ZONEINFO_DIR) [avr-*-*, msp430-*-*]: Set
6525         embed_zoneinfo=no
6526         * configure: Regenerate.
6528 2023-02-01  Hans-Peter Nilsson  <hp@axis.com>
6530         PR testsuite/108632
6531         * testsuite/std/time/hh_mm_ss/1.cc (size): Add empty
6532         struct at end of S0.
6534 2023-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
6536         * doc/xml/manual/shared_ptr.xml: Move links from both
6537         http://open-std.org and http://www.open-std.org to
6538         https://www.open-std.org.
6539         * doc/html/manual/memory.html: Regenerate.
6541 2023-01-28  Gerald Pfeifer  <gerald@pfeifer.com>
6543         * doc/xml/manual/appendix_contributing.xml: Adjust link to
6544         ISO C++ standard at ANSI.
6545         Move link to www.open-std.org to https.
6546         * doc/html/manual/appendix_contributing.html: Regenerate.
6548 2023-01-28  Gerald Pfeifer  <gerald@pfeifer.com>
6550         * doc/xml/manual/documentation_hacking.xml: Move sourceforge.net
6551         links to https.
6552         * doc/html/manual/documentation_hacking.html: Regenerate.
6554 2023-01-28  Gerald Pfeifer  <gerald@pfeifer.com>
6556         * doc/xml/manual/abi.xml: Update www.open-std.org link to https.
6557         * doc/html/manual/abi.html: Regenerate.
6559 2023-01-27  Jakub Jelinek  <jakub@redhat.com>
6561         PR libstdc++/108568
6562         * testsuite/17_intro/names.cc (__unused): For linux or GNU hurd
6563         include features.h if present and then check __GLIBC__ and
6564         __GLIBC_MINOR__ macros for glibc prior to 2.19, instead of testing
6565         __GLIBC_PREREQ which isn't defined yet.
6567 2023-01-27  Jonathan Wakely  <jwakely@redhat.com>
6569         * src/c++20/tzdb.cc (tzdata_stream): Use constant instead of
6570         string literal.
6572 2023-01-27  Jonathan Wakely  <jwakely@redhat.com>
6574         PR libstdc++/108554
6575         * testsuite/23_containers/map/modifiers/108554.cc: Use dg-bogus.
6577 2023-01-26  Jonathan Wakely  <jwakely@redhat.com>
6579         * src/c++20/tzdb.cc (operator>>(istream&, ZoneInfo&)): Allow
6580         rules named "+" for compatibility with older tzdata.zi files.
6582 2023-01-26  Jonathan Wakely  <jwakely@redhat.com>
6584         PR libstdc++/108554
6585         * include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add
6586         nonnull attribute.
6587         (_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull
6588         attributes.
6589         * testsuite/23_containers/map/modifiers/108554.cc: New test.
6591 2023-01-26  Jonathan Wakely  <jwakely@redhat.com>
6593         PR libstdc++/108530
6594         * src/c++20/tzdb.cc (current_zone): Look for TIMEZONE or ZONE in
6595         /etc/sysconfig/clock, not DEFAULT_TIMEZONE.
6597 2023-01-26  Gerald Pfeifer  <gerald@pfeifer.com>
6599         * doc/xml/manual/intro.xml: Update links to www.open-std.org to
6600         use https.
6601         * doc/html/manual/bugs.html: Regenerate.
6603 2023-01-24  Jonathan Wakely  <jwakely@redhat.com>
6605         PR libstdc++/108530
6606         * src/c++20/tzdb.cc (current_zone): Look for DEFAULT_TIMEZONE in
6607         /etc/sysconfig/clock.
6609 2023-01-24  Jonathan Wakely  <jwakely@redhat.com>
6611         PR libstdc++/102301
6612         * include/bits/ranges_base.h: Include <bits/stl_iterator.h> for
6613         std::make_reverse_iterator.
6614         * include/std/tuple: Include <bits/ranges_util.h> for subrange.
6615         (make_from_tuple): Add static assertion from P2255 to diagnose
6616         dangling references.
6617         * testsuite/20_util/tuple/make_from_tuple/dangling_ref.cc: New test.
6618         * testsuite/20_util/tuple/make_from_tuple/tuple_like.cc: New test.
6620 2023-01-23  François Dumont  <fdumont@gcc.gnu.org>
6622         * include/debug/safe_iterator.h (_Safe_iterator<>::_Unchecked): New.
6623         (_Safe_iterator(const _Safe_iterator&, _Unchecked)): New.
6624         (_Safe_iterator::operator++(int)): Use latter.
6625         (_Safe_iterator::operator--(int)): Likewise.
6626         (_Safe_iterator(_Iterator, const _Safe_sequence_base*)): Remove !_M_insular()
6627         check.
6628         * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_Unchecked):
6629         New.
6630         (_Safe_local_iterator(const _Safe_local_iterator&, _Unchecked)): New.
6631         (_Safe_local_iterator::operator++(int)): Use latter.
6632         * src/c++11/debug.cc (_S_debug_messages): Add as comment the _Debug_msg_id
6633         entry associated to the array entry.
6635 2023-01-18  Jonathan Wakely  <jwakely@redhat.com>
6637         * include/bits/fs_path.h (u8path): Add deprecated attribute.
6638         * testsuite/27_io/filesystem/path/construct/90281.cc: Add
6639         -Wno-deprecated-declarations for C++20 and later.
6640         * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
6641         Likewise.
6642         * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
6643         * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
6644         * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: New test.
6646 2023-01-18  Jonathan Wakely  <jwakely@redhat.com>
6648         * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
6649         Always call _M_fini and _M_getentropy.
6651 2023-01-18  Gerald Pfeifer  <gerald@pfeifer.com>
6653         * doc/xml/manual/policy_data_structures_biblio.xml: Adjust links
6654         to www.open-std.org to use https.
6655         (COM: Component Model Object Technologies): Rename from...
6656         (The Component Object Model): ...to.
6657         * doc/html/manual/policy_data_structures.html: Regenerate.
6659 2023-01-18  Dimitrij Mijoski  <dmjpp@hotmail.com>
6661         * testsuite/22_locale/codecvt/codecvt_unicode.cc: Simplify.
6662         * testsuite/22_locale/codecvt/codecvt_unicode.h: Simplify.
6663         * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: Simplify.
6665 2023-01-17  Jonathan Wakely  <jwakely@redhat.com>
6667         * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Check $target_os instead
6668         of $host. Fix check for file being present during native build.
6669         * configure: Regenerate.
6671 2023-01-17  Martin Liska  <mliska@suse.cz>
6673         * src/libbacktrace/Makefile.in: Regenerate.
6675 2023-01-16  Jonathan Wakely  <jwakely@redhat.com>
6677         * src/c++20/tzdb.cc (_GLIBCXX_USE_CXX11_ABI): Define to 1.
6679 2023-01-16  Jonathan Wakely  <jwakely@redhat.com>
6681         PR libstdc++/108413
6682         * include/c_compatibility/stdatomic.h: Change copyright line to
6683         be consistent with other headers contributed under DCO terms.
6684         * include/std/expected: Add full stop to copyright line.
6685         * src/c++20/tzdb.cc: Likewise.
6687 2023-01-15  Gerald Pfeifer  <gerald@pfeifer.com>
6689         * doc/xml/manual/status_cxx2014.xml: Switch www.open-std.org to
6690         https.
6691         * doc/xml/manual/status_cxx2017.xml: Ditto.
6692         * doc/xml/manual/status_cxx2020.xml: Ditto.
6693         * doc/xml/manual/status_cxx2023.xml: Ditto.
6694         * doc/html/manual/status.html: Regenerate.
6696 2023-01-15  Jonathan Wakely  <jwakely@redhat.com>
6698         * testsuite/std/time/tzdb_list/1.cc: Remove dg-xfail-run-if
6699         and fail gracefully if defining the weak symbol doesn't work.
6701 2023-01-15  François Dumont  <fdumont@gcc.gnu.org>
6703         PR libstdc++/108288
6704         * include/debug/safe_iterator.h (_Safe_iterator<>::operator++(int)): Extend deadlock
6705         fix to other iterator category.
6706         (_Safe_iterator<>::operator--(int)): Likewise.
6707         * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::operator++(int)):
6708         Fix deadlock.
6709         * testsuite/util/debug/unordered_checks.h (invalid_local_iterator_pre_increment): New.
6710         (invalid_local_iterator_post_increment): New.
6711         * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_post_increment_neg.cc:
6712         New test.
6713         * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_pre_increment_neg.cc:
6714         New test.
6716 2023-01-15  Jonathan Wakely  <jwakely@redhat.com>
6718         * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
6719         dg-options.
6721 2023-01-15  Jonathan Wakely  <jwakely@redhat.com>
6723         * testsuite/std/time/clock/utc/io.cc: Use ctype to widen char.
6725 2023-01-14  Björn Schäpers  <bjoern@hazardy.de>
6727         * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Add check for
6728         windows.h. Add pecoff as FORMAT_FILE.
6729         * config.h.in: Regenerate.
6730         * configure: Regenerate.
6731         * src/libbacktrace/Makefile.am: Regenerate.
6732         * src/libbacktrace/Makefile.in: Add pecoff.c as FORMAT_FILE.
6734 2023-01-14  Björn Schäpers  <bjoern@hazardy.de>
6736         * include/std/stacktrace (stacktrace_entry::_S_demangle): Use
6737         raw __name if __cxa_demangle could not demangle it.
6739 2023-01-14  Jonathan Wakely  <jwakely@redhat.com>
6741         PR libstdc++/108409
6742         * src/c++20/tzdb.cc (current_zone()) [_AIX]: Use TZ environment
6743         variable.
6745 2023-01-14  Jonathan Wakely  <jwakely@redhat.com>
6747         * src/c++20/tzdb.cc (TZDB_DISABLED): Disable all code for
6748         loading tzdb.
6749         * testsuite/std/time/tzdb/leap_seconds.cc: Require tzdb
6750         effective target.
6751         * testsuite/std/time/tzdb_list/1.cc: Likewise.
6753 2023-01-14  Jonathan Wakely  <jwakely@redhat.com>
6755         * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Replace the
6756         --with-libstdcxx-zoneinfo-dir configure option with
6757         --with-libstdcxx-zoneinfo with yes/no/static choices as well as
6758         a directory.
6759         * config.h.in: Regenerate.
6760         * configure: Regenerate.
6761         * doc/xml/manual/configure.xml: Document configure option.
6762         * doc/html/manual/configure.html: Regenerate.
6763         * src/c++20/Makefile.am: Generate tzdata.zi.h header.
6764         * src/c++20/Makefile.in: Regenerate.
6765         * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Return a
6766         null pointer if no directory is configured.
6767         (zoneinfo_dir): Replace with ...
6768         (zoneinfo_file): New function.
6769         (tzdata_stream): New istream class.
6770         (remote_version, reload_tzdb): Use tzdata_stream.
6771         * testsuite/lib/libstdc++.exp (check_effective_target_tzdb):
6772         Check new _GLIBCXX_STATIC_TZDATA macro and ignore presence of
6773         tzdata.zi file in default location.
6774         * src/c++20/tzdata.zi: New file.
6776 2023-01-14  Jonathan Wakely  <jwakely@redhat.com>
6778         * include/bits/chrono_io.h (operator<<): Fix syntax errors.
6779         * testsuite/std/time/month_day/io.cc: New test.
6780         * testsuite/std/time/month_day_last/io.cc: New test.
6781         * testsuite/std/time/month_weekday/io.cc: New test.
6782         * testsuite/std/time/month_weekday_last/io.cc: New test.
6783         * testsuite/std/time/weekday_indexed/io.cc: New test.
6784         * testsuite/std/time/weekday_last/io.cc: New test.
6785         * testsuite/std/time/year_month/io.cc: New test.
6786         * testsuite/std/time/year_month_day_last/io.cc: New test.
6787         * testsuite/std/time/year_month_weekday/io.cc: New test.
6788         * testsuite/std/time/year_month_weekday_last/io.cc: New test.
6790 2023-01-14  François Dumont  <fdumont@gcc.gnu.org>
6792         * include/std/format [_GLIBCXX_INLINE_VERSION](to_chars): Adapt __asm symbol
6793         specifications.
6794         * config/abi/pre/gnu-versioned-namespace.ver: Add to_chars/from_chars symbols
6795         export.
6797 2023-01-13  Jonathan Wakely  <jwakely@redhat.com>
6799         * include/bits/std_mutex.h: Include <errno.h>.
6801 2023-01-13  Arsen Arsenović  <arsen@aarsen.me>
6803         * testsuite/20_util/to_chars/version.cc: Mark hosted-only.
6804         * testsuite/20_util/uses_allocator/lwg3677.cc: Ditto.
6805         * testsuite/20_util/weak_ptr/cons/self_move.cc: Ditto.
6806         * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Replace usage of
6807         std::make_unique with a freestanding-compatible wrapper around
6808         unique_ptr.
6809         * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
6810         Don't test for presence of __cpp_lib_string_contains on !HOSTED.
6811         * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
6812         Ditto.
6813         * testsuite/std/ranges/version_c++23.cc: Don't test for presence
6814         of __cpp_lib_ranges in !HOSTED.
6816 2023-01-13  Arsen Arsenović  <arsen@aarsen.me>
6818         * include/Makefile.am: Install bits/char_traits.h,
6819         std/string_view
6820         * include/Makefile.in: Regenerate.
6821         * include/bits/char_traits.h: Gate hosted-only, wchar-only and
6822         mbstate-only bits behind appropriate #ifs.
6823         * include/std/string_view: Gate <iostream> functionality behind
6824         HOSTED.
6825         * include/std/version: Enable __cpp_lib_constexpr_string_view
6826         and __cpp_lib_starts_ends_with in !HOSTED.
6827         * include/std/ranges: Re-enable __is_basic_string_view on
6828         freestanding, include <string_view> directly.
6829         * include/precompiled/stdc++.h: Include <string_view> when
6830         !HOSTED too.
6831         * testsuite/20_util/function_objects/searchers.cc: Skip testing
6832         boyer_moore searchers on freestanding
6833         * testsuite/21_strings/basic_string_view/capacity/1.cc: Guard
6834         <string>-related tests behind __STDC_HOSTED__.
6835         * testsuite/21_strings/basic_string_view/cons/char/1.cc: Ditto.
6836         * testsuite/21_strings/basic_string_view/cons/char/2.cc: Remove
6837         unused <stdexcept> include.
6838         * testsuite/21_strings/basic_string_view/cons/char/3.cc: Remove
6839         unused <vector> include.
6840         * testsuite/21_strings/basic_string_view/cons/char/range.cc:
6841         Guard <string> related testing behind __STDC_HOSTED__.
6842         * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
6843         Guard <stdexcept> related tests behind __STDC_HOSTED__.
6844         * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
6845         Ditto.
6846         * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
6847         Guard <stdexcept> tests behind __STDC_HOSTED__.
6848         * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
6849         Enable test on freestanding, guard <stdexcept> bits behind
6850         __STDC_HOSTED__.
6851         * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
6852         Guard <stdexcept> bits behind __STDC_HOSTED__.
6853         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
6854         Ditto.
6856 2023-01-13  Dimitrij Mijoski  <dmjpp@hotmail.com>
6858         PR libstdc++/86419
6859         * src/c++11/codecvt.cc (read_utf8_code_point): Correctly detect
6860         errors in incomplete multibyte sequences.
6861         (utf16_in): Remove surrogates parameter. Fix conditions for
6862         returning partial.
6863         (utf16_out): Fix condition for returning partial.
6864         (ucs2_in): Do not pass surrogates argument to utf16_in.
6865         * testsuite/22_locale/codecvt/codecvt_unicode.cc: New test.
6866         * testsuite/22_locale/codecvt/codecvt_unicode.h: New header for
6867         tests.
6868         * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: New
6869         test.
6871 2023-01-13  Jonathan Wakely  <jwakely@redhat.com>
6873         PR libstdc++/108331
6874         * config/io/c_io_stdio.h (__c_lock): Define as a typedef for
6875         __GTHREAD_LEGACY_MUTEX_T if defined.
6877 2023-01-13  Jonathan Wakely  <jwakely@redhat.com>
6879         PR libstdc++/108327
6880         * config/os/gnu-linux/ldbl-extra.ver (GLIBCXX_LDBL_3.4.31):
6881         Export __try_use_facet specializations for facets in namespace
6882         __gnu_cxx_ldbl128.
6883         * config/os/gnu-linux/ldbl-ieee128-extra.ver
6884         (GLIBCXX_IEEE128_3.4.31): Likewise for facets in namespace
6885         __gnu_cxx_ieee128.
6886         * testsuite/util/testsuite_abi.cc: Add to lists of known and
6887         latest versions.
6889 2023-01-13  Jonathan Wakely  <jwakely@redhat.com>
6891         * include/bits/std_mutex.h: Remove <system_error> include.
6892         * include/std/condition_variable: Add <bits/error_constants.h>
6893         include.
6894         * include/std/mutex: Likewise.
6895         * include/std/shared_mutex: Likewise.
6897 2023-01-12  Jonathan Wakely  <jwakely@redhat.com>
6899         PR libstdc++/77691
6900         * include/experimental/memory_resource
6901         (_GLIBCXX_MAX_ALIGN_MATCHES_MALLOC): Define.
6902         (do_allocate, do_deallocate): Check it.
6903         * testsuite/experimental/memory_resource/new_delete_resource.cc:
6904         Relax expected behaviour for 64-bit hppa-hp-hpux11.11.
6906 2023-01-12  Jonathan Wakely  <jwakely@redhat.com>
6908         * doc/xml/manual/abi.xml: Add latest library versions.
6909         * doc/html/manual/abi.html: Regenerate.
6911 2023-01-12  François Dumont  <fdumont@gcc.gnu.org>
6913         PR libstdc++/107189
6914         * include/bits/stl_tree.h (_Rb_tree<>::_M_insert_range_equal): Remove
6915         unused _Alloc_node instance.
6917 2023-01-12  Jonathan Wakely  <jwakely@redhat.com>
6919         * include/bits/atomic_wait.h (__detail::__platform_wait_t):
6920         Define as unsigned long if always lock-free, and unsigned int
6921         otherwise.
6923 2023-01-10  Jonathan Wakely  <jwakely@redhat.com>
6925         * src/c++20/tzdb.cc (tzdb_list::_S_init_tzdb): Use __try and
6926         __catch macros for exception handling.
6928 2023-01-10  Jonathan Wakely  <jwakely@redhat.com>
6930         PR libstdc++/108221
6931         * include/bits/stl_algobase.h (__lg): Replace six overloads with
6932         a single function template for all integer types.
6933         * include/bits/stl_algo.h (__merge_adaptive_resize): Cast
6934         arithmetic results back to _Distance.
6936 2023-01-10  Jonathan Wakely  <jwakely@redhat.com>
6938         PR libstdc++/108221
6939         * include/std/span (span::span()): Un-simplify constraint to
6940         work for size_t of lesser rank than int.
6942 2023-01-07  LIU Hao  <lh_mouse@126.com>
6944         PR middle-end/108300
6945         * src/c++11/system_error.cc: Define `WIN32_LEAN_AND_MEAN` before
6946         <windows.h>.
6947         * src/c++11/thread.cc: Likewise.
6948         * src/c++17/fs_ops.cc: Likewise.
6949         * src/filesystem/ops.cc: Likewise.
6951 2023-01-06  Jonathan Wakely  <jwakely@redhat.com>
6953         PR libstdc++/108228
6954         * src/c++20/tzdb.cc (zoneinfo_dir): Add diagnostic pragma.
6956 2023-01-06  Jonathan Wakely  <jwakely@redhat.com>
6958         PR libstdc++/108235
6959         * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): New class
6960         template and partial specialization for synchronizing access to
6961         time_zone::_Impl::infos.
6962         (time_zone::_M_get_sys_info, reload_tzdb): Adjust uses of
6963         rules_counter.
6965 2023-01-06  Patrick Palka  <ppalka@redhat.com>
6967         PR libstdc++/108260
6968         * include/bits/utility.h (__cpp_lib_ranges_zip): Define for C++23.
6969         * include/std/ranges (__cpp_lib_ranges_zip): Likewise.
6970         (__cpp_lib_ranges_chunk): Likewise.
6971         (__cpp_lib_ranges_slide): Likewise.
6972         (__cpp_lib_ranges_chunk_by): Likewise.
6973         (__cpp_lib_ranges_join_with): Likewise.
6974         (__cpp_lib_ranges_repeat): Likewise.
6975         (__cpp_lib_ranges_stride): Likewise.
6976         (__cpp_lib_ranges_cartesian_product): Likewise.
6977         (__cpp_lib_ranges_as_rvalue): Likewise.
6978         * include/std/version: Ditto.
6979         * testsuite/20_util/tuple/p2321r2.cc: Verify value of
6980         feature-test macro.
6981         * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
6982         * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
6983         * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
6984         * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
6985         * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
6986         * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
6987         * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
6988         * testsuite/std/ranges/repeat/1.cc: Likewise.
6989         * testsuite/std/ranges/zip/1.cc: Likewise.
6990         * testsuite/std/ranges/version_c++23.cc: New test.
6992 2023-01-06  Jonathan Wakely  <jwakely@redhat.com>
6994         PR libstdc++/108214
6995         * include/std/bitset (operator>>): Use alloca in the right
6996         scope, not in a constructor.
6997         * testsuite/20_util/bitset/io/input.cc: Check case from PR.
6999 2023-01-06  Jonathan Wakely  <jwakely@redhat.com>
7001         PR libstdc++/108221
7002         * include/std/format (basic_format_arg) [!__cpp_lib_to_chars]:
7003         Disable visiting floating-point types.
7005 2023-01-06  Jonathan Wakely  <jwakely@redhat.com>
7007         PR libstdc++/108288
7008         * include/debug/safe_iterator.h (_Safe_iterator::operator++(int))
7009         (_Safe_iterator::operator--(int)): Do not hold lock around
7010         construction of return value.
7012 2023-01-05  John David Anglin  <danglin@gcc.gnu.org>
7014         * config/cpu/hppa/atomicity.h (_PA_LDCW_INSN): Define.
7015         (__exchange_and_add): Use _PA_LDCW_INSN.  Use ordered store for
7016         lock release.  Revise loop.
7017         (__atomic_add): Likewise.
7019 2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
7021         PR libstdc++/108212
7022         * python/libstdcxx/v6/printers.py (_utc_timezone): New global
7023         variable.
7024         (StdChronoTimePointPrinter::to_string): Use it.
7026 2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
7028         PR libstdc++/108290
7029         * include/std/functional (_Bind_front): Add no_unique_address
7030         attribute to data members.
7031         * testsuite/20_util/function_objects/bind_front/107784.cc: Check
7032         size of call wrappers with empty types for targets and bound
7033         arguments.
7035 2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
7037         PR libstdc++/108211
7038         * src/c++20/tzdb.cc (chrono::current_zone()): Check for zone
7039         using only last component of the name.
7041 2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
7043         PR libstdc++/108228
7044         PR libstdc++/108235
7045         * config/abi/pre/gnu.ver: Move zoneinfo_dir_override export to
7046         the latest symbol version.
7047         * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define to 0 if
7048         atomic<_Node*> is not always lock free.
7049         (USE_ATOMIC_LIST_HEAD): New macro.
7050         [__hpux__] (__gnu_cxx::zoneinfo_dir_override()): Provide
7051         definition of weak symbol.
7052         (tzdb_list::_Node::_S_head): Rename to _S_head_cache.
7053         (tzdb_list::_Node::_S_list_head): New function for accessing
7054         list head efficiently.
7055         (tzdb_list::_Node::_S_cache_list_head): New function for
7056         updating _S_list_head.
7058 2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
7060         PR libstdc++/108265
7061         * include/std/chrono (hh_mm_ss): Do not use chrono::abs if
7062         duration rep is unsigned.
7063         * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep.
7065 2023-01-04  Iain Sandoe  <iain@sandoe.co.uk>
7067         PR libstdc++/108228
7068         * config/abi/pre/gnu.ver (GLIBCXX_3.4):
7069         Add __gnu_cxx::zoneinfo_dir_override().
7071 2023-01-04  Jonathan Wakely  <jwakely@redhat.com>
7073         PR libstdc++/108258
7074         * include/std/array (__array_traits<T, 0>::operator T*()): Add
7075         constexpr.
7076         * testsuite/23_containers/array/element_access/constexpr_c++17.cc: Check
7077         std::array<T, 0>::data().
7080 Copyright (C) 2023 Free Software Foundation, Inc.
7082 Copying and distribution of this file, with or without modification,
7083 are permitted in any medium without royalty provided the copyright
7084 notice and this notice are preserved.