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