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