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