c++: optimize unifying nested templated classes [PR89231]
[official-gcc.git] / libstdc++-v3 / ChangeLog
blob6ed7ddb708042e4c40539501be981f47c8204a64
1 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
3         * testsuite/29_atomics/atomic_ref/wait_notify.cc: Do not
4         restrict to pthreads targets.
5         * testsuite/30_threads/jthread/3.cc: Likewise.
6         * testsuite/30_threads/semaphore/100806.cc: Likewise.
7         * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
8         * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
9         * testsuite/30_threads/semaphore/try_acquire_posix.cc: Likewise.
11 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
13         * testsuite/18_support/coroutines/95917.cc: Remove dg-options
14         -std=gnu++2a.
15         * testsuite/18_support/coroutines/hash.cc: Likewise.
16         * testsuite/18_support/coroutines/lwg3460.cc: Likewise.
17         * testsuite/18_support/destroying_delete.cc: Likewise.
18         * testsuite/18_support/source_location/1.cc: Likewise.
19         * testsuite/18_support/source_location/consteval.cc: Likewise.
20         * testsuite/18_support/source_location/version.cc: Likewise.
21         * testsuite/19_diagnostics/error_category/operators/three_way.cc:
22         Likewise.
23         * testsuite/19_diagnostics/error_code/operators/three_way.cc:
24         Likewise.
25         * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
26         Likewise.
27         * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
28         * testsuite/26_numerics/adjacent_difference/lwg2055.cc:
29         Likewise.
30         * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
31         * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
32         * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
33         * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
34         * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
35         * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
36         Likewise.
37         * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
38         Likewise.
39         * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
40         Likewise.
41         * testsuite/28_regex/sub_match/compare_c++20.cc: Likewise.
42         * testsuite/experimental/filesystem/iterators/106201.cc:
43         Likewise.
44         * testsuite/experimental/scopeguard/exit.cc: Likewise.
45         * testsuite/experimental/scopeguard/uniqueres.cc: Likewise.
47 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
49         * testsuite/30_threads/barrier/1.cc: Remove dg-options
50         -std=gnu++20.
51         * testsuite/30_threads/barrier/2.cc: Likewise.
52         * testsuite/30_threads/barrier/arrive.cc: Likewise.
53         * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
54         * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
55         * testsuite/30_threads/barrier/completion.cc: Likewise.
56         * testsuite/30_threads/condition_variable/members/clock_neg.cc:
57         Likewise.
58         * testsuite/30_threads/condition_variable_any/members/clock_neg.cc:
59         Likewise.
60         * testsuite/30_threads/condition_variable_any/stop_token/1.cc:
61         Likewise.
62         * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
63         Likewise.
64         * testsuite/30_threads/future/members/clock_neg.cc: Likewise.
65         * testsuite/30_threads/headers/stop_token/synopsis.cc: Likewise.
66         * testsuite/30_threads/headers/thread/types_std_c++20.cc:
67         Likewise.
68         * testsuite/30_threads/jthread/1.cc: Likewise.
69         * testsuite/30_threads/jthread/100612.cc: Likewise.
70         * testsuite/30_threads/jthread/95989.cc: Likewise.
71         * testsuite/30_threads/jthread/jthread.cc: Likewise.
72         * testsuite/30_threads/jthread/version.cc: Likewise.
73         * testsuite/30_threads/latch/1.cc: Likewise.
74         * testsuite/30_threads/latch/2.cc: Likewise.
75         * testsuite/30_threads/latch/3.cc: Likewise.
76         * testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc:
77         Likewise.
78         * testsuite/30_threads/semaphore/1.cc: Likewise.
79         * testsuite/30_threads/semaphore/2.cc: Likewise.
80         * testsuite/30_threads/semaphore/least_max_value_neg.cc:
81         Likewise.
82         * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
83         * testsuite/30_threads/shared_future/members/clock_neg.cc:
84         Likewise.
85         * testsuite/30_threads/shared_lock/locking/clock_neg.cc:
86         Likewise.
87         * testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc:
88         Likewise.
89         * testsuite/30_threads/stop_token/1.cc: Likewise.
90         * testsuite/30_threads/stop_token/2.cc: Likewise.
91         * testsuite/30_threads/stop_token/stop_callback.cc: Likewise.
92         * testsuite/30_threads/stop_token/stop_callback/deadlock.cc:
93         Likewise.
94         * testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc:
95         Likewise.
96         * testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc:
97         Likewise.
98         * testsuite/30_threads/stop_token/stop_callback/invoke.cc:
99         Likewise.
100         * testsuite/30_threads/stop_token/stop_source.cc: Likewise.
101         * testsuite/30_threads/stop_token/stop_source/assign.cc:
102         Likewise.
103         * testsuite/30_threads/stop_token/stop_token.cc: Likewise.
104         * testsuite/30_threads/stop_token/stop_token/stop_possible.cc:
105         Likewise.
106         * testsuite/30_threads/thread/id/operators_c++20.cc: Likewise.
107         * testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc:
108         Likewise.
109         * testsuite/30_threads/unique_lock/locking/clock_neg.cc:
110         Likewise.
112 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
114         * testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc:
115         Remove dg-options -std=gnu++2a.
116         * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
117         Likewise.
118         * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc:
119         Likewise.
120         * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
121         Likewise.
122         * testsuite/27_io/basic_istringstream/cons/char/1.cc: Likewise.
123         * testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc:
124         Likewise.
125         * testsuite/27_io/basic_istringstream/str/char/2.cc: Likewise.
126         * testsuite/27_io/basic_istringstream/str/wchar_t/2.cc:
127         Likewise.
128         * testsuite/27_io/basic_istringstream/view/char/1.cc: Likewise.
129         * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
130         Likewise.
131         * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
132         * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc:
133         Likewise.
134         * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc:
135         Likewise.
136         * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise.
137         * testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc:
138         Likewise.
139         * testsuite/27_io/basic_ostringstream/str/char/3.cc: Likewise.
140         * testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc:
141         Likewise.
142         * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
143         * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
144         Likewise.
145         * testsuite/27_io/basic_stringbuf/cons/char/2.cc: Likewise.
146         * testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc: Likewise.
147         * testsuite/27_io/basic_stringbuf/str/char/4.cc: Likewise.
148         * testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc: Likewise.
149         * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
150         * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
151         * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise.
152         * testsuite/27_io/basic_stringstream/cons/char/97719.cc:
153         Likewise.
154         * testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc:
155         Likewise.
156         * testsuite/27_io/basic_stringstream/str/char/5.cc: Likewise.
157         * testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc:
158         Likewise.
159         * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
160         * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
161         Likewise.
162         * testsuite/27_io/basic_syncbuf/1.cc: Likewise.
163         * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
164         * testsuite/27_io/basic_syncbuf/basic_ops/1.cc: Likewise.
165         * testsuite/27_io/basic_syncbuf/requirements/types.cc: Likewise.
166         * testsuite/27_io/basic_syncbuf/sync_ops/1.cc: Likewise.
167         * testsuite/27_io/basic_syncstream/1.cc: Likewise.
168         * testsuite/27_io/basic_syncstream/2.cc: Likewise.
169         * testsuite/27_io/basic_syncstream/basic_ops/1.cc: Likewise.
170         * testsuite/27_io/basic_syncstream/requirements/types.cc:
171         Likewise.
172         * testsuite/27_io/filesystem/iterators/106201.cc: Likewise.
173         * testsuite/27_io/filesystem/iterators/lwg3719.cc: Likewise.
174         * testsuite/27_io/filesystem/path/factory/u8path-depr.cc:
175         Likewise.
176         * testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc:
177         Likewise.
179 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
181         * testsuite/26_numerics/accumulate/constexpr.cc: Remove
182         dg-options -std=gnu++2a.
183         * testsuite/26_numerics/accumulate/lwg2055.cc: Likewise.
184         * testsuite/26_numerics/adjacent_difference/constexpr.cc:
185         Likewise.
186         * testsuite/26_numerics/bit/bit.cast/105027.cc: Likewise.
187         * testsuite/26_numerics/bit/bit.cast/bit_cast.cc: Likewise.
188         * testsuite/26_numerics/bit/bit.cast/version.cc: Likewise.
189         * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
190         * testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc:
191         Likewise.
192         * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
193         * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
194         * testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc: Likewise.
195         * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
196         * testsuite/26_numerics/bit/bit.rotate/rotr.cc: Likewise.
197         * testsuite/26_numerics/bit/header-2.cc: Likewise.
198         * testsuite/26_numerics/bit/header.cc: Likewise.
199         * testsuite/26_numerics/complex/1.cc: Likewise.
200         * testsuite/26_numerics/complex/2.cc: Likewise.
201         * testsuite/26_numerics/complex/comparison_operators/more_constexpr.cc:
202         Likewise.
203         * testsuite/26_numerics/complex/operators/more_constexpr.cc:
204         Likewise.
205         * testsuite/26_numerics/complex/requirements/more_constexpr.cc:
206         Likewise.
207         * testsuite/26_numerics/complex/value_operations/more_constexpr.cc:
208         Likewise.
209         * testsuite/26_numerics/endian/1.cc: Likewise.
210         * testsuite/26_numerics/endian/2.cc: Likewise.
211         * testsuite/26_numerics/endian/3.cc: Likewise.
212         * testsuite/26_numerics/exclusive_scan/constexpr.cc: Likewise.
213         * testsuite/26_numerics/inclusive_scan/constexpr.cc: Likewise.
214         * testsuite/26_numerics/inner_product/constexpr.cc: Likewise.
215         * testsuite/26_numerics/inner_product/lwg2055.cc: Likewise.
216         * testsuite/26_numerics/iota/constexpr.cc: Likewise.
217         * testsuite/26_numerics/lerp/1.cc: Likewise.
218         * testsuite/26_numerics/lerp/constexpr.cc: Likewise.
219         * testsuite/26_numerics/lerp/version.cc: Likewise.
220         * testsuite/26_numerics/midpoint/floating.cc: Likewise.
221         * testsuite/26_numerics/midpoint/integral.cc: Likewise.
222         * testsuite/26_numerics/midpoint/pointer.cc: Likewise.
223         * testsuite/26_numerics/midpoint/pointer_neg.cc: Likewise.
224         * testsuite/26_numerics/midpoint/version.cc: Likewise.
225         * testsuite/26_numerics/numbers/1.cc: Likewise.
226         * testsuite/26_numerics/numbers/2.cc: Likewise.
227         * testsuite/26_numerics/numbers/3.cc: Likewise.
228         * testsuite/26_numerics/numbers/float128.cc: Likewise.
229         * testsuite/26_numerics/numbers/nonfloat_neg.cc: Likewise.
230         * testsuite/26_numerics/partial_sum/constexpr.cc: Likewise.
231         * testsuite/26_numerics/partial_sum/lwg2055.cc: Likewise.
232         * testsuite/26_numerics/random/concept.cc: Likewise.
233         * testsuite/26_numerics/reduce/constexpr.cc: Likewise.
234         * testsuite/26_numerics/slice/compare.cc: Likewise.
235         * testsuite/26_numerics/transform_exclusive_scan/constexpr.cc:
236         Likewise.
237         * testsuite/26_numerics/transform_inclusive_scan/constexpr.cc:
238         Likewise.
239         * testsuite/26_numerics/transform_reduce/constexpr.cc: Likewise.
241 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
243         * testsuite/24_iterators/aliases.cc: Remove dg-options
244         -std=gnu++2a.
245         * testsuite/24_iterators/associated_types/incrementable.traits.cc:
246         Likewise.
247         * testsuite/24_iterators/associated_types/iterator.traits.cc:
248         Likewise.
249         * testsuite/24_iterators/associated_types/readable.traits.cc:
250         Likewise.
251         * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
252         Likewise.
253         * testsuite/24_iterators/back_insert_iterator/pr93884.cc:
254         Likewise.
255         * testsuite/24_iterators/bidirectional/concept.cc: Likewise.
256         * testsuite/24_iterators/common_iterator/1.cc: Likewise.
257         * testsuite/24_iterators/common_iterator/100823.cc: Likewise.
258         * testsuite/24_iterators/common_iterator/2.cc: Likewise.
259         * testsuite/24_iterators/contiguous/concept.cc: Likewise.
260         * testsuite/24_iterators/contiguous/tag.cc: Likewise.
261         * testsuite/24_iterators/counted_iterator/1.cc: Likewise.
262         * testsuite/24_iterators/counted_iterator/lwg3389.cc: Likewise.
263         * testsuite/24_iterators/counted_iterator/lwg3643.cc: Likewise.
264         * testsuite/24_iterators/customization_points/92894.cc:
265         Likewise.
266         * testsuite/24_iterators/customization_points/iter_move.cc:
267         Likewise.
268         * testsuite/24_iterators/customization_points/iter_swap.cc:
269         Likewise.
270         * testsuite/24_iterators/customization_points/lwg3420.cc:
271         Likewise.
272         * testsuite/24_iterators/forward/concept.cc: Likewise.
273         * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
274         Likewise.
275         * testsuite/24_iterators/front_insert_iterator/pr93884.cc:
276         Likewise.
277         * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
278         Likewise.
279         * testsuite/24_iterators/indirect_callable/92894.cc: Likewise.
280         * testsuite/24_iterators/indirect_callable/projected-adl.cc:
281         Likewise.
282         * testsuite/24_iterators/indirect_callable/projected.cc:
283         Likewise.
284         * testsuite/24_iterators/input/concept.cc: Likewise.
285         * testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise.
286         * testsuite/24_iterators/istream_iterator/cons/sentinel.cc:
287         Likewise.
288         * testsuite/24_iterators/istream_iterator/sentinel.cc: Likewise.
289         * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc:
290         Likewise.
291         * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
292         Likewise.
293         * testsuite/24_iterators/move_iterator/cust.cc: Likewise.
294         * testsuite/24_iterators/move_iterator/dr3435.cc: Likewise.
295         * testsuite/24_iterators/move_iterator/input_iterator.cc:
296         Likewise.
297         * testsuite/24_iterators/move_iterator/lwg3390.cc: Likewise.
298         * testsuite/24_iterators/move_iterator/lwg3391.cc: Likewise.
299         * testsuite/24_iterators/move_iterator/move_only.cc: Likewise.
300         * testsuite/24_iterators/move_iterator/p2520r0.cc: Likewise.
301         * testsuite/24_iterators/move_iterator/rel_ops_c++20.cc:
302         Likewise.
303         * testsuite/24_iterators/move_iterator/sentinel.cc: Likewise.
304         * testsuite/24_iterators/normal_iterator/cmp_c++20.cc: Likewise.
305         * testsuite/24_iterators/output/concept.cc: Likewise.
306         * testsuite/24_iterators/random_access/concept.cc: Likewise.
307         * testsuite/24_iterators/range_access/range_access_cpp20.cc:
308         Likewise.
309         * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
310         Likewise.
311         * testsuite/24_iterators/range_operations/100768.cc: Likewise.
312         * testsuite/24_iterators/range_operations/advance.cc: Likewise.
313         * testsuite/24_iterators/range_operations/advance_overflow.cc:
314         Likewise.
315         * testsuite/24_iterators/range_operations/distance.cc: Likewise.
316         * testsuite/24_iterators/range_operations/lwg3392.cc: Likewise.
317         * testsuite/24_iterators/range_operations/next.cc: Likewise.
318         * testsuite/24_iterators/range_operations/prev.cc: Likewise.
319         * testsuite/24_iterators/reverse_iterator/cust.cc: Likewise.
320         * testsuite/24_iterators/reverse_iterator/dr3435.cc: Likewise.
321         * testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc:
322         Likewise.
324 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
326         * testsuite/23_containers/array/comparison_operators/96851.cc:
327         Remove dg-options -std=gnu++2a.
328         * testsuite/23_containers/array/comparison_operators/constexpr.cc:
329         Likewise.
330         * testsuite/23_containers/array/creation/1.cc: Likewise.
331         * testsuite/23_containers/array/creation/110167.cc: Likewise.
332         * testsuite/23_containers/array/creation/2.cc: Likewise.
333         * testsuite/23_containers/array/creation/3_neg.cc: Likewise.
334         * testsuite/23_containers/array/requirements/constexpr_fill.cc:
335         Likewise.
336         * testsuite/23_containers/array/requirements/constexpr_swap.cc:
337         Likewise.
338         * testsuite/23_containers/deque/48101-3_neg.cc: Likewise.
339         * testsuite/23_containers/deque/erasure.cc: Likewise.
340         * testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc:
341         Likewise.
342         * testsuite/23_containers/deque/operators/cmp_c++20.cc:
343         Likewise.
344         * testsuite/23_containers/forward_list/48101-3_neg.cc: Likewise.
345         * testsuite/23_containers/forward_list/cmp_c++20.cc: Likewise.
346         * testsuite/23_containers/forward_list/erasure.cc: Likewise.
347         * testsuite/23_containers/forward_list/modifiers/92878_92947.cc:
348         Likewise.
349         * testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc:
350         Likewise.
351         * testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc:
352         Likewise.
353         * testsuite/23_containers/list/48101-3_neg.cc: Likewise.
354         * testsuite/23_containers/list/cmp_c++20.cc: Likewise.
355         * testsuite/23_containers/list/erasure.cc: Likewise.
356         * testsuite/23_containers/list/modifiers/emplace/92878_92947.cc:
357         Likewise.
358         * testsuite/23_containers/list/operations/remove_cxx20_return.cc:
359         Likewise.
360         * testsuite/23_containers/list/operations/unique_cxx20_return.cc:
361         Likewise.
362         * testsuite/23_containers/map/48101-3_neg.cc: Likewise.
363         * testsuite/23_containers/map/erasure.cc: Likewise.
364         * testsuite/23_containers/map/modifiers/emplace/92878_92947.cc:
365         Likewise.
366         * testsuite/23_containers/map/operations/contains.cc: Likewise.
367         * testsuite/23_containers/map/operators/cmp_c++20.cc: Likewise.
368         * testsuite/23_containers/multimap/48101-3_neg.cc: Likewise.
369         * testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc:
370         Likewise.
371         * testsuite/23_containers/multimap/operations/contains.cc:
372         Likewise.
373         * testsuite/23_containers/multimap/operators/cmp_c++20.cc:
374         Likewise.
375         * testsuite/23_containers/multiset/48101-3_neg.cc: Likewise.
376         * testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc:
377         Likewise.
378         * testsuite/23_containers/multiset/operations/contains.cc:
379         Likewise.
380         * testsuite/23_containers/multiset/operators/cmp_c++20.cc:
381         Likewise.
382         * testsuite/23_containers/priority_queue/92878_92947.cc:
383         Likewise.
384         * testsuite/23_containers/queue/92878_92947.cc: Likewise.
385         * testsuite/23_containers/queue/cmp_c++20.cc: Likewise.
386         * testsuite/23_containers/set/48101-3_neg.cc: Likewise.
387         * testsuite/23_containers/set/erasure.cc: Likewise.
388         * testsuite/23_containers/set/modifiers/emplace/92878_92947.cc:
389         Likewise.
390         * testsuite/23_containers/set/operations/contains.cc: Likewise.
391         * testsuite/23_containers/set/operators/cmp_c++20.cc: Likewise.
392         * testsuite/23_containers/span/1.cc: Likewise.
393         * testsuite/23_containers/span/101411.cc: Likewise.
394         * testsuite/23_containers/span/2.cc: Likewise.
395         * testsuite/23_containers/span/deduction.cc: Likewise.
396         * testsuite/23_containers/span/explicit.cc: Likewise.
397         * testsuite/23_containers/span/layout_compat.cc: Likewise.
398         * testsuite/23_containers/span/lwg3255.cc: Likewise.
399         * testsuite/23_containers/span/nothrow_cons.cc: Likewise.
400         * testsuite/23_containers/span/trivially_copyable.cc: Likewise.
401         * testsuite/23_containers/stack/92878_92947.cc: Likewise.
402         * testsuite/23_containers/stack/cmp_c++20.cc: Likewise.
403         * testsuite/23_containers/unordered_map/48101-3_neg.cc:
404         Likewise.
405         * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
406         * testsuite/23_containers/unordered_map/modifiers/92878_92947.cc:
407         Likewise.
408         * testsuite/23_containers/unordered_map/operations/1.cc:
409         Likewise.
410         * testsuite/23_containers/unordered_map/operations/contains.cc:
411         Likewise.
412         * testsuite/23_containers/unordered_multimap/48101-3_neg.cc:
413         Likewise.
414         * testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc:
415         Likewise.
416         * testsuite/23_containers/unordered_multimap/operations/1.cc:
417         Likewise.
418         * testsuite/23_containers/unordered_multimap/operations/contains.cc:
419         Likewise.
420         * testsuite/23_containers/unordered_multiset/48101-3_neg.cc:
421         Likewise.
422         * testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc:
423         Likewise.
424         * testsuite/23_containers/unordered_multiset/operations/1.cc:
425         Likewise.
426         * testsuite/23_containers/unordered_multiset/operations/contains.cc:
427         Likewise.
428         * testsuite/23_containers/unordered_set/48101-3_neg.cc:
429         Likewise.
430         * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
431         * testsuite/23_containers/unordered_set/modifiers/92878_92947.cc:
432         Likewise.
433         * testsuite/23_containers/unordered_set/operations/1.cc:
434         Likewise.
435         * testsuite/23_containers/unordered_set/operations/contains.cc:
436         Likewise.
437         * testsuite/23_containers/vector/48101-3_neg.cc: Likewise.
438         * testsuite/23_containers/vector/bool/capacity/constexpr.cc:
439         Likewise.
440         * testsuite/23_containers/vector/bool/cmp_c++20.cc: Likewise.
441         * testsuite/23_containers/vector/bool/cons/constexpr.cc:
442         Likewise.
443         * testsuite/23_containers/vector/bool/element_access/constexpr.cc:
444         Likewise.
445         * testsuite/23_containers/vector/bool/iterator_c++20.cc:
446         Likewise.
447         * testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc:
448         Likewise.
449         * testsuite/23_containers/vector/bool/modifiers/constexpr.cc:
450         Likewise.
451         * testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc:
452         Likewise.
453         * testsuite/23_containers/vector/capacity/constexpr.cc:
454         Likewise.
455         * testsuite/23_containers/vector/cmp_c++20.cc: Likewise.
456         * testsuite/23_containers/vector/cons/constexpr.cc: Likewise.
457         * testsuite/23_containers/vector/data_access/constexpr.cc:
458         Likewise.
459         * testsuite/23_containers/vector/element_access/constexpr.cc:
460         Likewise.
461         * testsuite/23_containers/vector/erasure.cc: Likewise.
462         * testsuite/23_containers/vector/modifiers/assign/constexpr.cc:
463         Likewise.
464         * testsuite/23_containers/vector/modifiers/constexpr.cc:
465         Likewise.
466         * testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc:
467         Likewise.
468         * testsuite/23_containers/vector/modifiers/swap/constexpr.cc:
469         Likewise.
470         * testsuite/23_containers/vector/requirements/version.cc:
471         Likewise.
473 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
475         * testsuite/21_strings/basic_string/cons/char/105995.cc: Remove
476         dg-options -std=gnu++20.
477         * testsuite/21_strings/basic_string/cons/char/constexpr.cc:
478         Likewise.
479         * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc:
480         Likewise.
481         * testsuite/21_strings/basic_string/erasure.cc: Likewise.
482         * testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
483         Likewise.
484         * testsuite/21_strings/basic_string/literals/constexpr.cc:
485         Likewise.
486         * testsuite/21_strings/basic_string/modifiers/constexpr.cc:
487         Likewise.
488         * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
489         Likewise.
490         * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
491         Likewise.
492         * testsuite/21_strings/basic_string/operations/ends_with/char.cc:
493         Likewise.
494         * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc:
495         Likewise.
496         * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
497         Likewise.
498         * testsuite/21_strings/basic_string/operations/starts_with/char.cc:
499         Likewise.
500         * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc:
501         Likewise.
502         * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
503         Likewise.
504         * testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc:
505         Likewise.
506         * testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc:
507         Likewise.
508         * testsuite/21_strings/basic_string_view/cons/char/range.cc:
509         Likewise.
510         * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
511         Likewise.
512         * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc:
513         Likewise.
514         * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
515         Likewise.
516         * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc:
517         Likewise.
518         * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
519         Likewise.
520         * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
521         Likewise.
522         * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc:
523         Likewise.
524         * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
525         Likewise.
526         * testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc:
527         Likewise.
528         * testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc:
529         Likewise.
530         * testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc:
531         Likewise.
532         * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
533         Likewise.
535 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
537         * testsuite/20_util/allocator/105975.cc: Remove dg-options
538         -std=gnu++2a.
539         * testsuite/20_util/allocator/rebind_c++20.cc: Likewise.
540         * testsuite/20_util/allocator/requirements/constexpr.cc:
541         Likewise.
542         * testsuite/20_util/allocator/requirements/typedefs_c++20.cc:
543         Likewise.
544         * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
545         * testsuite/20_util/allocator_traits/header.cc: Likewise.
546         * testsuite/20_util/allocator_traits/members/92878_92947.cc:
547         Likewise.
548         * testsuite/20_util/any/assign/92878_92947.cc: Likewise.
549         * testsuite/20_util/any/cons/92878_92947.cc: Likewise.
550         * testsuite/20_util/assume_aligned/1.cc: Likewise.
551         * testsuite/20_util/assume_aligned/2_neg.cc: Likewise.
552         * testsuite/20_util/assume_aligned/3.cc: Likewise.
553         * testsuite/20_util/assume_aligned/97132.cc: Likewise.
554         * testsuite/20_util/bind/constexpr.cc: Likewise.
555         * testsuite/20_util/bitset/operations/96303.cc: Likewise.
556         * testsuite/20_util/common_reference/100894.cc: Likewise.
557         * testsuite/20_util/common_reference/requirements/alias_decl.cc:
558         Likewise.
559         * testsuite/20_util/common_reference/requirements/explicit_instantiation.cc:
560         Likewise.
561         * testsuite/20_util/common_reference/requirements/typedefs.cc:
562         Likewise.
563         * testsuite/20_util/duration/comparison_operators/three_way.cc:
564         Likewise.
565         * testsuite/20_util/exchange/constexpr.cc: Likewise.
566         * testsuite/20_util/exchange/noexcept.cc: Likewise.
567         * testsuite/20_util/from_chars/1_c++20_neg.cc: Likewise.
568         * testsuite/20_util/from_chars/compare.cc: Likewise.
569         * testsuite/20_util/function_objects/bind_front/1.cc: Likewise.
570         * testsuite/20_util/function_objects/bind_front/107784.cc:
571         Likewise.
572         * testsuite/20_util/function_objects/bind_front/111327.cc:
573         Likewise.
574         * testsuite/20_util/function_objects/bind_front/2.cc: Likewise.
575         * testsuite/20_util/function_objects/bind_front/97101.cc:
576         Likewise.
577         * testsuite/20_util/function_objects/bind_front/constexpr.cc:
578         Likewise.
579         * testsuite/20_util/function_objects/constexpr_searcher.cc:
580         Likewise.
581         * testsuite/20_util/function_objects/identity/1.cc: Likewise.
582         * testsuite/20_util/function_objects/invoke/constexpr.cc:
583         Likewise.
584         * testsuite/20_util/function_objects/mem_fn/constexpr.cc:
585         Likewise.
586         * testsuite/20_util/function_objects/not_fn/constexpr.cc:
587         Likewise.
588         * testsuite/20_util/integer_comparisons/1.cc: Likewise.
589         * testsuite/20_util/integer_comparisons/2.cc: Likewise.
590         * testsuite/20_util/integer_comparisons/equal.cc: Likewise.
591         * testsuite/20_util/integer_comparisons/equal_neg.cc: Likewise.
592         * testsuite/20_util/integer_comparisons/greater.cc: Likewise.
593         * testsuite/20_util/integer_comparisons/greater_equal.cc:
594         Likewise.
595         * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
596         Likewise.
597         * testsuite/20_util/integer_comparisons/greater_neg.cc:
598         Likewise.
599         * testsuite/20_util/integer_comparisons/in_range.cc: Likewise.
600         * testsuite/20_util/integer_comparisons/in_range_neg.cc:
601         Likewise.
602         * testsuite/20_util/integer_comparisons/less.cc: Likewise.
603         * testsuite/20_util/integer_comparisons/less_equal.cc: Likewise.
604         * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
605         Likewise.
606         * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise.
607         * testsuite/20_util/integer_comparisons/not_equal.cc: Likewise.
608         * testsuite/20_util/integer_comparisons/not_equal_neg.cc:
609         Likewise.
610         * testsuite/20_util/is_bounded_array/requirements/explicit_instantiation.cc:
611         Likewise.
612         * testsuite/20_util/is_bounded_array/requirements/typedefs.cc:
613         Likewise.
614         * testsuite/20_util/is_bounded_array/value.cc: Likewise.
615         * testsuite/20_util/is_constant_evaluated/1.cc: Likewise.
616         * testsuite/20_util/is_constant_evaluated/noexcept.cc: Likewise.
617         * testsuite/20_util/is_constructible/92878_92947.cc: Likewise.
618         * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
619         Likewise.
620         * testsuite/20_util/is_layout_compatible/value.cc: Likewise.
621         * testsuite/20_util/is_layout_compatible/version.cc: Likewise.
622         * testsuite/20_util/is_nothrow_constructible/value_c++20.cc:
623         Likewise.
624         * testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc:
625         Likewise.
626         * testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc:
627         Likewise.
628         * testsuite/20_util/is_nothrow_convertible/value.cc: Likewise.
629         * testsuite/20_util/is_pod/deprecated-2a.cc: Likewise.
630         * testsuite/20_util/is_pointer_interconvertible/value.cc:
631         Likewise.
632         * testsuite/20_util/is_pointer_interconvertible/version.cc:
633         Likewise.
634         * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
635         Likewise.
636         * testsuite/20_util/is_unbounded_array/requirements/explicit_instantiation.cc:
637         Likewise.
638         * testsuite/20_util/is_unbounded_array/requirements/typedefs.cc:
639         Likewise.
640         * testsuite/20_util/is_unbounded_array/value.cc: Likewise.
641         * testsuite/20_util/optional/assignment/92878_92947.cc:
642         Likewise.
643         * testsuite/20_util/optional/cons/92878_92947.cc: Likewise.
644         * testsuite/20_util/optional/constexpr/assign.cc: Likewise.
645         * testsuite/20_util/optional/constexpr/cons/conv.cc: Likewise.
646         * testsuite/20_util/optional/constexpr/modifiers.cc: Likewise.
647         * testsuite/20_util/optional/constexpr/swap.cc: Likewise.
648         * testsuite/20_util/optional/relops/96269.cc: Likewise.
649         * testsuite/20_util/optional/relops/three_way.cc: Likewise.
650         * testsuite/20_util/pair/comparison_operators/constexpr_c++20.cc:
651         Likewise.
652         * testsuite/20_util/pair/cons/92878_92947.cc: Likewise.
653         * testsuite/20_util/pair/constexpr_assign.cc: Likewise.
654         * testsuite/20_util/pair/constexpr_swap.cc: Likewise.
655         * testsuite/20_util/pair/requirements/structural.cc: Likewise.
656         * testsuite/20_util/pointer_traits/pointer_to_constexpr.cc:
657         Likewise.
658         * testsuite/20_util/polymorphic_allocator/allocate_object.cc:
659         Likewise.
660         * testsuite/20_util/polymorphic_allocator/construct_c++2a.cc:
661         Likewise.
662         * testsuite/20_util/polymorphic_allocator/lwg3237.cc: Likewise.
663         * testsuite/20_util/reference_wrapper/constexpr.cc: Likewise.
664         * testsuite/20_util/reference_wrapper/incomplete.cc: Likewise.
665         * testsuite/20_util/remove_cvref/requirements/alias_decl.cc:
666         Likewise.
667         * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
668         Likewise.
669         * testsuite/20_util/remove_cvref/value.cc: Likewise.
670         * testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc:
671         Likewise.
672         * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
673         Likewise.
674         * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
675         * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc:
676         Likewise.
677         * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Likewise.
678         * testsuite/20_util/shared_ptr/creation/92878_92947.cc:
679         Likewise.
680         * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
681         * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
682         * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
683         * testsuite/20_util/time_point/4.cc: Likewise.
684         * testsuite/20_util/time_point/comparison_operators/three_way.cc:
685         Likewise.
686         * testsuite/20_util/to_address/1.cc: Likewise.
687         * testsuite/20_util/to_address/1_neg.cc: Likewise.
688         * testsuite/20_util/to_address/debug.cc: Likewise.
689         * testsuite/20_util/to_address/lwg3545.cc: Likewise.
690         * testsuite/20_util/to_chars/compare.cc: Likewise.
691         * testsuite/20_util/tuple/comparison_operators/three_way.cc:
692         Likewise.
693         * testsuite/20_util/tuple/cons/102270.cc: Likewise.
694         * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
695         Likewise.
696         * testsuite/20_util/tuple/constexpr_swap.cc: Likewise.
697         * testsuite/20_util/type_identity/requirements/alias_decl.cc:
698         Likewise.
699         * testsuite/20_util/type_identity/requirements/explicit_instantiation.cc:
700         Likewise.
701         * testsuite/20_util/type_identity/requirements/typedefs.cc:
702         Likewise.
703         * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
704         Likewise.
705         * testsuite/20_util/unique_ptr/comparison/compare_c++20.cc:
706         Likewise.
707         * testsuite/20_util/unique_ptr/creation/92878_92947.cc:
708         Likewise.
709         * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
710         Likewise.
711         * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc:
712         Likewise.
713         * testsuite/20_util/unique_ptr/io/lwg2948.cc: Likewise.
714         * testsuite/20_util/unwrap_reference/1.cc: Likewise.
715         * testsuite/20_util/unwrap_reference/2.cc: Likewise.
716         * testsuite/20_util/unwrap_reference/3.cc: Likewise.
717         * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise.
718         * testsuite/20_util/uses_allocator/lwg3527.cc: Likewise.
719         * testsuite/20_util/uses_allocator/make_obj.cc: Likewise.
720         * testsuite/20_util/uses_allocator/uninitialized_construct.cc:
721         Likewise.
722         * testsuite/20_util/variant/92878_92947.cc: Likewise.
723         * testsuite/20_util/variant/95915.cc: Likewise.
724         * testsuite/20_util/variant/constexpr.cc: Likewise.
725         * testsuite/20_util/variant/relops/three_way.cc: Likewise.
726         * testsuite/20_util/variant/visit_neg.cc: Likewise.
727         * testsuite/20_util/variant/visit_r.cc: Likewise.
728         * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
730 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
732         * testsuite/18_support/comparisons/algorithms/fallback.cc:
733         Remove dg-options -std=gnu++2a.
734         * testsuite/18_support/comparisons/algorithms/partial_order.cc:
735         Likewise.
736         * testsuite/18_support/comparisons/algorithms/strong_order.cc:
737         Likewise.
738         * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
739         Likewise.
740         * testsuite/18_support/comparisons/algorithms/weak_order.cc:
741         Likewise.
742         * testsuite/18_support/comparisons/categories/94565.cc:
743         Likewise.
744         * testsuite/18_support/comparisons/categories/partialord.cc:
745         Likewise.
746         * testsuite/18_support/comparisons/categories/strongord.cc:
747         Likewise.
748         * testsuite/18_support/comparisons/categories/weakord.cc:
749         Likewise.
750         * testsuite/18_support/comparisons/categories/zero_neg.cc:
751         Likewise.
752         * testsuite/18_support/comparisons/common/1.cc: Likewise.
753         * testsuite/18_support/comparisons/object/93479.cc: Likewise.
754         * testsuite/18_support/comparisons/object/lwg3530.cc: Likewise.
756 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
758         * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
759         Remove dg-options -std=gnu++2a.
760         * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
761         * testsuite/29_atomics/atomic/lock_free_aliases.cc: Likewise.
762         * testsuite/29_atomics/atomic/requirements/types_neg.cc:
763         Likewise.
764         * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
765         * testsuite/29_atomics/atomic/wait_notify/100334.cc: Likewise.
766         * testsuite/29_atomics/atomic/wait_notify/102994.cc: Likewise.
767         * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
768         * testsuite/29_atomics/atomic/wait_notify/bool.cc: Likewise.
769         * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
770         * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
771         * testsuite/29_atomics/atomic_flag/cons/value_init.cc: Likewise.
772         * testsuite/29_atomics/atomic_flag/test/explicit.cc: Likewise.
773         * testsuite/29_atomics/atomic_flag/test/implicit.cc: Likewise.
774         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
775         * testsuite/29_atomics/atomic_float/1.cc: Likewise.
776         * testsuite/29_atomics/atomic_float/95282.cc: Likewise.
777         * testsuite/29_atomics/atomic_float/requirements.cc: Likewise.
778         * testsuite/29_atomics/atomic_float/value_init.cc: Likewise.
779         * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
780         * testsuite/29_atomics/atomic_integral/cons/value_init.cc:
781         Likewise.
782         * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
783         * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
784         Likewise.
785         * testsuite/29_atomics/atomic_ref/deduction.cc: Likewise.
786         * testsuite/29_atomics/atomic_ref/float.cc: Likewise.
787         * testsuite/29_atomics/atomic_ref/generic.cc: Likewise.
788         * testsuite/29_atomics/atomic_ref/integral.cc: Likewise.
789         * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise.
790         * testsuite/29_atomics/atomic_ref/requirements.cc: Likewise.
791         * testsuite/29_atomics/headers/atomic/types_std_c++20.cc:
792         Likewise.
793         * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc:
794         Likewise.
795         * testsuite/29_atomics/headers/atomic/types_std_c++2a.cc:
796         Likewise.
797         * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc:
798         Likewise.
800 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
802         * testsuite/27_io/basic_filebuf/native_handle/char/1.cc: New test.
803         * testsuite/27_io/basic_filebuf/native_handle/wchar_t/1.cc: New test.
805 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
807         * acinclude.m4 (GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES): New
808         macro.
809         * config.h.in: Regenerate.
810         * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export new
811         basic_filebuf members.
812         * config/io/basic_file_stdio.cc (__basic_file::native_handle):
813         Define new function.
814         * config/io/basic_file_stdio.h (__basic_file::native_handle):
815         Declare new function.
816         * configure: Regenerate.
817         * configure.ac: Use GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES.
818         * include/bits/version.def (fstream_native_handles): New macro.
819         * include/bits/version.h: Regenerate.
820         * include/std/fstream (basic_filebuf::native_handle)
821         (basic_fstream::native_handle, basic_ifstream::native_handle)
822         (basic_ofstream::native_handle): New functions.
823         * src/c++11/Makefile.am: Move compilation of basic_file.cc,
824         locale_init.cc and localename.cc to here.
825         * src/c++11/Makefile.in: Regenerate.
826         * src/c++98/locale_init.cc: Moved to...
827         * src/c++11/locale_init.cc: ...here.
828         * src/c++98/localename.cc: Moved to...
829         * src/c++11/localename.cc: ...here.
830         * src/c++98/Makefile.am: Remove basic_file.cc, locale_init.cc
831         and localename.cc from here.
832         * src/c++98/Makefile.in: Regenerate.
833         * testsuite/27_io/basic_filebuf/native_handle/version.cc: New test.
834         * testsuite/27_io/basic_fstream/native_handle/char/1.cc: New test.
835         * testsuite/27_io/basic_fstream/native_handle/wchar_t/1.cc: New test.
836         * testsuite/27_io/basic_ifstream/native_handle/char/1.cc: New test.
837         * testsuite/27_io/basic_ifstream/native_handle/wchar_t/1.cc: New test.
838         * testsuite/27_io/basic_ofstream/native_handle/char/1.cc: New test.
839         * testsuite/27_io/basic_ofstream/native_handle/wchar_t/1.cc: New test.
841 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
843         * testsuite/libstdc++-dg/conformance.exp: Add log line when
844         using testsuite_files.
846 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
848         * testsuite/20_util/shared_ptr/atomic/3.cc: Simplify dg
849         directives.
850         * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
851         Likewise.
852         * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc:
853         Likewise.
854         * testsuite/20_util/synchronized_pool_resource/allocate.cc:
855         Likewise.
856         * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
857         Likewise.
858         * testsuite/20_util/synchronized_pool_resource/cons.cc:
859         Likewise.
860         * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
861         Likewise.
862         * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
863         Likewise.
864         * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
865         Likewise.
866         * testsuite/20_util/synchronized_pool_resource/options.cc:
867         Likewise.
868         * testsuite/20_util/synchronized_pool_resource/release.cc:
869         Likewise.
870         * testsuite/20_util/synchronized_pool_resource/release_single.cc:
871         Likewise.
872         * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
873         Likewise.
874         * testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc:
875         Likewise.
876         * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
877         Likewise.
879 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
881         * testsuite/23_containers/span/back_assert_neg.cc: Remove
882         dg-options and add effective target selector to dg-do. Add
883         no_pch.
884         * testsuite/23_containers/span/back_neg.cc: Likewise.
885         * testsuite/23_containers/span/cons_1_assert_neg.cc: Likewise.
886         * testsuite/23_containers/span/cons_2_assert_neg.cc: Likewise.
887         * testsuite/23_containers/span/first_2_assert_neg.cc: Likewise.
888         * testsuite/23_containers/span/first_assert_neg.cc: Likewise.
889         * testsuite/23_containers/span/first_neg.cc: Likewise.
890         * testsuite/23_containers/span/front_assert_neg.cc: Likewise.
891         * testsuite/23_containers/span/front_neg.cc: Likewise.
892         * testsuite/23_containers/span/index_op_assert_neg.cc: Likewise.
893         * testsuite/23_containers/span/index_op_neg.cc: Likewise.
894         * testsuite/23_containers/span/last_2_assert_neg.cc: Likewise.
895         * testsuite/23_containers/span/last_assert_neg.cc: Likewise.
896         * testsuite/23_containers/span/last_neg.cc: Likewise.
897         * testsuite/23_containers/span/subspan_2_assert_neg.cc:
898         Likewise.
899         * testsuite/23_containers/span/subspan_3_assert_neg.cc:
900         Likewise.
901         * testsuite/23_containers/span/subspan_4_assert_neg.cc:
902         Likewise.
903         * testsuite/23_containers/span/subspan_5_assert_neg.cc:
904         Likewise.
905         * testsuite/23_containers/span/subspan_6_assert_neg.cc:
906         Likewise.
907         * testsuite/23_containers/span/subspan_assert_neg.cc: Likewise.
908         * testsuite/23_containers/span/subspan_neg.cc: Likewise.
909         * testsuite/24_iterators/range_operations/advance_debug_neg.cc:
910         Likewise.
912 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
914         * testsuite/18_support/headers/limits/synopsis_cxx23.cc: Remove
915         dg-options.
916         * testsuite/18_support/headers/stdfloat/types_std.cc: Likewise.
917         * testsuite/18_support/type_info/constexpr.cc: Likewise.
918         * testsuite/19_diagnostics/stacktrace/current.cc: Likewise.
919         * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
920         * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
921         * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
922         * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
923         * testsuite/20_util/aligned_storage/deprecated-2b.cc: Likewise.
924         * testsuite/20_util/aligned_union/deprecated-2b.cc: Likewise.
925         * testsuite/20_util/bitset/access/constexpr.cc: Likewise.
926         * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
927         * testsuite/20_util/bitset/count/constexpr.cc: Likewise.
928         * testsuite/20_util/bitset/ext/constexpr.cc: Likewise.
929         * testsuite/20_util/bitset/operations/constexpr_c++23.cc:
930         Likewise.
931         * testsuite/20_util/bitset/version.cc: Likewise.
932         * testsuite/20_util/from_chars/8.cc: Likewise.
933         * testsuite/20_util/from_chars/constexpr.cc: Likewise.
934         * testsuite/20_util/function/cons/deduction_c++23.cc: Likewise.
935         * testsuite/20_util/function_objects/invoke/4.cc: Likewise.
936         * testsuite/20_util/function_objects/invoke/dangling_ref.cc:
937         Likewise.
938         * testsuite/20_util/is_scoped_enum/value.cc: Likewise.
939         * testsuite/20_util/is_scoped_enum/version.cc: Likewise.
940         * testsuite/20_util/move_only_function/call.cc: Likewise.
941         * testsuite/20_util/move_only_function/cons.cc: Likewise.
942         * testsuite/20_util/move_only_function/move.cc: Likewise.
943         * testsuite/20_util/move_only_function/version.cc: Likewise.
944         * testsuite/20_util/optional/monadic/and_then.cc: Likewise.
945         * testsuite/20_util/optional/monadic/or_else.cc: Likewise.
946         * testsuite/20_util/optional/monadic/or_else_neg.cc: Likewise.
947         * testsuite/20_util/optional/monadic/pr109242.cc: Likewise.
948         * testsuite/20_util/optional/monadic/transform.cc: Likewise.
949         * testsuite/20_util/pair/p2321r2.cc: Likewise.
950         * testsuite/20_util/reference_from_temporary/value.cc: Likewise.
951         * testsuite/20_util/reference_from_temporary/value2.cc:
952         Likewise.
953         * testsuite/20_util/reference_from_temporary/version.cc:
954         Likewise.
955         * testsuite/20_util/to_chars/constexpr.cc: Likewise.
956         * testsuite/20_util/to_chars/float128_c++23.cc: Likewise.
957         * testsuite/20_util/to_chars/float16_c++23.cc: Likewise.
958         * testsuite/20_util/to_chars/version.cc: Likewise.
959         * testsuite/20_util/to_underlying/1.cc: Likewise.
960         * testsuite/20_util/to_underlying/version.cc: Likewise.
961         * testsuite/20_util/tuple/p2321r2.cc: Likewise.
962         * testsuite/20_util/unique_ptr/assign/constexpr.cc: Likewise.
963         * testsuite/20_util/unique_ptr/comparison/constexpr.cc:
964         Likewise.
965         * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc:
966         Likewise.
967         * testsuite/20_util/unique_ptr/creation/constexpr.cc: Likewise.
968         * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: Likewise.
969         * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc: Likewise.
970         * testsuite/20_util/unreachable/1.cc: Likewise.
971         * testsuite/20_util/unreachable/version.cc: Likewise.
972         * testsuite/20_util/uses_allocator/lwg3677.cc: Likewise.
973         * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc: Likewise.
974         * testsuite/21_strings/basic_string/operations/contains/char.cc:
975         Likewise.
976         * testsuite/21_strings/basic_string/operations/contains/nonnull.cc: Likewise.
977         * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc: Likewise.
978         * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: Likewise.
979         * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: Likewise.
980         * testsuite/21_strings/basic_string_view/operations/contains/char.cc: Likewise.
981         * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: Likewise.
982         * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc: Likewise.
983         * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc: Likewise.
984         * testsuite/23_containers/queue/cons_from_iters.cc: Likewise.
985         * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
986         * testsuite/23_containers/vector/bool/element_access/1.cc:
987         Likewise.
988         * testsuite/24_iterators/const_iterator/1.cc: Likewise.
989         * testsuite/25_algorithms/contains/1.cc: Likewise.
990         * testsuite/25_algorithms/contains_subrange/1.cc: Likewise.
991         * testsuite/25_algorithms/find_last/1.cc: Likewise.
992         * testsuite/25_algorithms/find_last_if/1.cc: Likewise.
993         * testsuite/25_algorithms/find_last_if_not/1.cc: Likewise.
994         * testsuite/25_algorithms/fold_left/1.cc: Likewise.
995         * testsuite/25_algorithms/fold_right/1.cc: Likewise.
996         * testsuite/25_algorithms/iota/1.cc: Likewise.
997         * testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: Likewise.
998         * testsuite/26_numerics/bit/bit.byteswap/version.cc: Likewise.
999         * testsuite/26_numerics/complex/ext_c++23.cc: Likewise.
1000         * testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc: Likewise.
1001         * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc:
1002         Likewise.
1003         * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc:
1004         Likewise.
1005         * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc:
1006         Likewise.
1007         * testsuite/26_numerics/numbers/4.cc: Likewise.
1008         * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc: Likewise.
1009         * testsuite/27_io/filesystem/path/native/conv_c++23.cc:
1010         Likewise.
1011         * testsuite/27_io/spanstream/1.cc: Likewise.
1012         * testsuite/27_io/spanstream/2.cc: Likewise.
1013         * testsuite/27_io/spanstream/version.cc: Likewise.
1014         * testsuite/29_atomics/atomic_float/requirements_cxx23.cc:
1015         Likewise.
1016         * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
1017         Likewise.
1018         * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
1019         * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
1020         Likewise.
1021         * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
1022         Likewise.
1023         * testsuite/std/ranges/adaptors/adjacent/1.cc: Likewise.
1024         * testsuite/std/ranges/adaptors/adjacent_transform/1.cc:
1025         Likewise.
1026         * testsuite/std/ranges/adaptors/as_const/1.cc: Likewise.
1027         * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
1028         * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
1029         * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
1030         * testsuite/std/ranges/adaptors/enumerate/1.cc: Likewise.
1031         * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
1032         * testsuite/std/ranges/adaptors/lwg3715.cc: Likewise.
1033         * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
1034         * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
1035         * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
1036         * testsuite/std/ranges/range_adaptor_closure.cc: Likewise.
1037         * testsuite/std/ranges/repeat/1.cc: Likewise.
1038         * testsuite/std/ranges/version_c++23.cc: Likewise.
1039         * testsuite/std/ranges/zip/1.cc: Likewise.
1040         * testsuite/std/ranges/zip_transform/1.cc: Likewise.
1042 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1044         * testsuite/20_util/expected/assign.cc: Remove dg-options.
1045         * testsuite/20_util/expected/bad.cc: Likewise.
1046         * testsuite/20_util/expected/cons.cc: Likewise.
1047         * testsuite/20_util/expected/equality.cc: Likewise.
1048         * testsuite/20_util/expected/illformed_neg.cc: Likewise.
1049         * testsuite/20_util/expected/lwg3877.cc: Likewise.
1050         * testsuite/20_util/expected/lwg3938.cc: Likewise.
1051         * testsuite/20_util/expected/monadic.cc: Likewise.
1052         * testsuite/20_util/expected/observers.cc: Likewise.
1053         * testsuite/20_util/expected/requirements.cc: Likewise.
1054         * testsuite/20_util/expected/swap.cc: Likewise.
1055         * testsuite/20_util/expected/synopsis.cc: Likewise.
1056         * testsuite/20_util/expected/unexpected.cc: Likewise.
1057         * testsuite/20_util/expected/version.cc: Likewise.
1059 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1061         * testsuite/20_util/duration/arithmetic/overflow_c++20.cc:
1062         Remove dg-options.
1063         * testsuite/20_util/duration/io.cc: Likewise.
1064         * testsuite/std/time/clock/file/io.cc: Likewise.
1065         * testsuite/std/time/clock/file/members.cc: Likewise.
1066         * testsuite/std/time/clock/file/overview.cc: Likewise.
1067         * testsuite/std/time/clock/gps/1.cc: Likewise.
1068         * testsuite/std/time/clock/gps/io.cc: Likewise.
1069         * testsuite/std/time/clock/local/io.cc: Likewise.
1070         * testsuite/std/time/clock/system/io.cc: Likewise.
1071         * testsuite/std/time/clock/tai/1.cc: Likewise.
1072         * testsuite/std/time/clock/tai/io.cc: Likewise.
1073         * testsuite/std/time/clock/utc/1.cc: Likewise.
1074         * testsuite/std/time/clock/utc/io.cc: Likewise.
1075         * testsuite/std/time/clock/utc/leap_second_info.cc: Likewise.
1076         * testsuite/std/time/day/1.cc: Likewise.
1077         * testsuite/std/time/day/io.cc: Likewise.
1078         * testsuite/std/time/exceptions.cc: Likewise.
1079         * testsuite/std/time/format.cc: Likewise.
1080         * testsuite/std/time/hh_mm_ss/1.cc: Likewise.
1081         * testsuite/std/time/hh_mm_ss/109772.cc: Likewise.
1082         * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
1083         * testsuite/std/time/is_am/1.cc: Likewise.
1084         * testsuite/std/time/is_pm/1.cc: Likewise.
1085         * testsuite/std/time/make12/1.cc: Likewise.
1086         * testsuite/std/time/make24/1.cc: Likewise.
1087         * testsuite/std/time/month/1.cc: Likewise.
1088         * testsuite/std/time/month/io.cc: Likewise.
1089         * testsuite/std/time/month_day/1.cc: Likewise.
1090         * testsuite/std/time/month_day/io.cc: Likewise.
1091         * testsuite/std/time/month_day_last/1.cc: Likewise.
1092         * testsuite/std/time/month_day_last/io.cc: Likewise.
1093         * testsuite/std/time/month_weekday/1.cc: Likewise.
1094         * testsuite/std/time/month_weekday/io.cc: Likewise.
1095         * testsuite/std/time/month_weekday_last/1.cc: Likewise.
1096         * testsuite/std/time/month_weekday_last/io.cc: Likewise.
1097         * testsuite/std/time/parse.cc: Likewise.
1098         * testsuite/std/time/syn_c++20.cc: Likewise.
1099         * testsuite/std/time/time_zone/get_info_local.cc: Likewise.
1100         * testsuite/std/time/time_zone/get_info_sys.cc: Likewise.
1101         * testsuite/std/time/time_zone/requirements.cc: Likewise.
1102         * testsuite/std/time/traits/is_clock.cc: Likewise.
1103         * testsuite/std/time/tzdb/1.cc: Likewise.
1104         * testsuite/std/time/tzdb/leap_seconds.cc: Likewise.
1105         * testsuite/std/time/tzdb_list/1.cc: Likewise.
1106         * testsuite/std/time/tzdb_list/requirements.cc: Likewise.
1107         * testsuite/std/time/weekday/1.cc: Likewise.
1108         * testsuite/std/time/weekday/io.cc: Likewise.
1109         * testsuite/std/time/weekday_indexed/io.cc: Likewise.
1110         * testsuite/std/time/weekday_last/1.cc: Likewise.
1111         * testsuite/std/time/weekday_last/io.cc: Likewise.
1112         * testsuite/std/time/year/1.cc: Likewise.
1113         * testsuite/std/time/year/2.cc: Likewise.
1114         * testsuite/std/time/year/io.cc: Likewise.
1115         * testsuite/std/time/weekday_indexed/1.cc: Likewise.
1116         * testsuite/std/time/year_month/1.cc: Likewise.
1117         * testsuite/std/time/year_month/2.cc: Likewise.
1118         * testsuite/std/time/year_month/io.cc: Likewise.
1119         * testsuite/std/time/year_month_day/1.cc: Likewise.
1120         * testsuite/std/time/year_month_day/2.cc: Likewise.
1121         * testsuite/std/time/year_month_day/3.cc: Likewise.
1122         * testsuite/std/time/year_month_day/4.cc: Likewise.
1123         * testsuite/std/time/year_month_day/io.cc: Likewise.
1124         * testsuite/std/time/year_month_day_last/1.cc: Likewise.
1125         * testsuite/std/time/year_month_day_last/2.cc: Likewise.
1126         * testsuite/std/time/year_month_day_last/io.cc: Likewise.
1127         * testsuite/std/time/year_month_weekday/1.cc: Likewise.
1128         * testsuite/std/time/year_month_weekday/2.cc: Likewise.
1129         * testsuite/std/time/year_month_weekday/3.cc: Likewise.
1130         * testsuite/std/time/year_month_weekday/io.cc: Likewise.
1131         * testsuite/std/time/year_month_weekday_last/1.cc: Likewise.
1132         * testsuite/std/time/year_month_weekday_last/2.cc: Likewise.
1133         * testsuite/std/time/year_month_weekday_last/io.cc: Likewise.
1134         * testsuite/std/time/zoned_time/1.cc: Likewise.
1135         * testsuite/std/time/zoned_time/custom.cc: Likewise.
1136         * testsuite/std/time/zoned_time/deduction.cc: Likewise.
1137         * testsuite/std/time/zoned_time/io.cc: Likewise.
1138         * testsuite/std/time/zoned_time/req_neg.cc: Likewise.
1139         * testsuite/std/time/zoned_time/requirements.cc: Likewise.
1140         * testsuite/std/time/zoned_traits.cc: Likewise.
1142 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1144         * testsuite/std/format/arguments/args.cc: Remove dg-options.
1145         * testsuite/std/format/arguments/lwg3810.cc: Likewise.
1146         * testsuite/std/format/error.cc: Likewise.
1147         * testsuite/std/format/format_string.cc: Likewise.
1148         * testsuite/std/format/formatter/concept.cc: Likewise.
1149         * testsuite/std/format/formatter/ext_float.cc: Likewise.
1150         * testsuite/std/format/formatter/requirements.cc: Likewise.
1151         * testsuite/std/format/functions/107871.cc: Likewise.
1152         * testsuite/std/format/functions/format.cc: Likewise.
1153         * testsuite/std/format/functions/format_to.cc: Likewise.
1154         * testsuite/std/format/functions/format_to_n.cc: Likewise.
1155         * testsuite/std/format/functions/size.cc: Likewise.
1156         * testsuite/std/format/functions/vformat_to.cc: Likewise.
1157         * testsuite/std/format/parse_ctx.cc: Likewise.
1158         * testsuite/std/format/string.cc: Likewise.
1159         * testsuite/std/format/string_neg.cc: Likewise.
1160         * testsuite/std/format/functions/format_c++23.cc: Removed.
1162 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1164         * testsuite/20_util/function_objects/range.cmp/equal_to.cc:
1165         Remove dg-options.
1166         * testsuite/20_util/function_objects/range.cmp/greater.cc:
1167         Likewise.
1168         * testsuite/20_util/function_objects/range.cmp/greater_equal.cc:
1169         Likewise.
1170         * testsuite/20_util/function_objects/range.cmp/less.cc:
1171         Likewise.
1172         * testsuite/20_util/function_objects/range.cmp/less_equal.cc:
1173         Likewise.
1174         * testsuite/20_util/function_objects/range.cmp/lwg3530.cc:
1175         Likewise.
1176         * testsuite/20_util/function_objects/range.cmp/not_equal_to.cc:
1177         Likewise.
1178         * testsuite/20_util/specialized_algorithms/construct_at/1.cc:
1179         Likewise.
1180         * testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc:
1181         Likewise.
1182         * testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
1183         Likewise.
1184         * testsuite/20_util/specialized_algorithms/destroy/constrained.cc:
1185         Likewise.
1186         * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
1187         Likewise.
1188         * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
1189         Likewise.
1190         * testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc:
1191         Likewise.
1192         * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
1193         Likewise.
1194         * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc:
1195         Likewise.
1196         * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
1197         Likewise.
1198         * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
1199         Likewise.
1200         * testsuite/25_algorithms/adjacent_find/constexpr.cc: Likewise.
1201         * testsuite/25_algorithms/adjacent_find/constrained.cc:
1202         Likewise.
1203         * testsuite/25_algorithms/all_of/constexpr.cc: Likewise.
1204         * testsuite/25_algorithms/all_of/constrained.cc: Likewise.
1205         * testsuite/25_algorithms/any_of/constexpr.cc: Likewise.
1206         * testsuite/25_algorithms/any_of/constrained.cc: Likewise.
1207         * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
1208         * testsuite/25_algorithms/binary_search/constrained.cc:
1209         Likewise.
1210         * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
1211         * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
1212         * testsuite/25_algorithms/copy/95578.cc: Likewise.
1213         * testsuite/25_algorithms/copy/constexpr.cc: Likewise.
1214         * testsuite/25_algorithms/copy/constrained.cc: Likewise.
1215         * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Likewise.
1216         * testsuite/25_algorithms/copy_backward/95578.cc: Likewise.
1217         * testsuite/25_algorithms/copy_backward/constexpr.cc: Likewise.
1218         * testsuite/25_algorithms/copy_backward/constrained.cc:
1219         Likewise.
1220         * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
1221         Likewise.
1222         * testsuite/25_algorithms/copy_if/constexpr.cc: Likewise.
1223         * testsuite/25_algorithms/copy_if/constrained.cc: Likewise.
1224         * testsuite/25_algorithms/copy_n/constexpr.cc: Likewise.
1225         * testsuite/25_algorithms/copy_n/constrained.cc: Likewise.
1226         * testsuite/25_algorithms/count/constexpr.cc: Likewise.
1227         * testsuite/25_algorithms/count/constrained.cc: Likewise.
1228         * testsuite/25_algorithms/count_if/constexpr.cc: Likewise.
1229         * testsuite/25_algorithms/count_if/constrained.cc: Likewise.
1230         * testsuite/25_algorithms/cpp_lib_constexpr.cc: Likewise.
1231         * testsuite/25_algorithms/equal/95578.cc: Likewise.
1232         * testsuite/25_algorithms/equal/constexpr.cc: Likewise.
1233         * testsuite/25_algorithms/equal/constexpr_neg.cc: Likewise.
1234         * testsuite/25_algorithms/equal/constrained.cc: Likewise.
1235         * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
1236         Likewise.
1237         * testsuite/25_algorithms/equal_range/constexpr.cc: Likewise.
1238         * testsuite/25_algorithms/equal_range/constrained.cc: Likewise.
1239         * testsuite/25_algorithms/fill/94017.cc: Likewise.
1240         * testsuite/25_algorithms/fill/constexpr.cc: Likewise.
1241         * testsuite/25_algorithms/fill/constrained.cc: Likewise.
1242         * testsuite/25_algorithms/fill_n/94017.cc: Likewise.
1243         * testsuite/25_algorithms/fill_n/constexpr.cc: Likewise.
1244         * testsuite/25_algorithms/fill_n/constrained.cc: Likewise.
1245         * testsuite/25_algorithms/find/constexpr.cc: Likewise.
1246         * testsuite/25_algorithms/find/constrained.cc: Likewise.
1247         * testsuite/25_algorithms/find_end/constexpr.cc: Likewise.
1248         * testsuite/25_algorithms/find_end/constrained.cc: Likewise.
1249         * testsuite/25_algorithms/find_first_of/constexpr.cc: Likewise.
1250         * testsuite/25_algorithms/find_first_of/constrained.cc:
1251         Likewise.
1252         * testsuite/25_algorithms/find_if/constexpr.cc: Likewise.
1253         * testsuite/25_algorithms/find_if/constrained.cc: Likewise.
1254         * testsuite/25_algorithms/find_if_not/constexpr.cc: Likewise.
1255         * testsuite/25_algorithms/find_if_not/constrained.cc: Likewise.
1256         * testsuite/25_algorithms/for_each/constexpr.cc: Likewise.
1257         * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
1258         * testsuite/25_algorithms/generate/constexpr.cc: Likewise.
1259         * testsuite/25_algorithms/generate/constrained.cc: Likewise.
1260         * testsuite/25_algorithms/generate_n/constexpr.cc: Likewise.
1261         * testsuite/25_algorithms/generate_n/constrained.cc: Likewise.
1262         * testsuite/25_algorithms/heap/constrained.cc: Likewise.
1263         * testsuite/25_algorithms/includes/constrained.cc: Likewise.
1264         * testsuite/25_algorithms/inplace_merge/constrained.cc:
1265         Likewise.
1266         * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
1267         * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
1268         * testsuite/25_algorithms/is_partitioned/constexpr.cc: Likewise.
1269         * testsuite/25_algorithms/is_partitioned/constrained.cc:
1270         Likewise.
1271         * testsuite/25_algorithms/is_permutation/constexpr.cc: Likewise.
1272         * testsuite/25_algorithms/is_permutation/constrained.cc:
1273         Likewise.
1274         * testsuite/25_algorithms/is_sorted/constexpr.cc: Likewise.
1275         * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
1276         * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
1277         Likewise.
1278         * testsuite/25_algorithms/is_sorted_until/constrained.cc:
1279         Likewise.
1280         * testsuite/25_algorithms/iter_swap/constexpr.cc: Likewise.
1281         * testsuite/25_algorithms/lexicographical_compare/93972.cc:
1282         Likewise.
1283         * testsuite/25_algorithms/lexicographical_compare/95578.cc:
1284         Likewise.
1285         * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
1286         Likewise.
1287         * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
1288         Likewise.
1289         * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
1290         Likewise.
1291         * testsuite/25_algorithms/lexicographical_compare_three_way/constexpr.cc:
1292         Likewise.
1293         * testsuite/25_algorithms/lower_bound/constexpr.cc: Likewise.
1294         * testsuite/25_algorithms/lower_bound/constrained.cc: Likewise.
1295         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
1296         Likewise.
1297         * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
1298         Likewise.
1299         * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
1300         Likewise.
1301         * testsuite/25_algorithms/make_heap/constexpr.cc: Likewise.
1302         * testsuite/25_algorithms/max/constrained.cc: Likewise.
1303         * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
1304         * testsuite/25_algorithms/merge/constexpr.cc: Likewise.
1305         * testsuite/25_algorithms/merge/constrained.cc: Likewise.
1306         * testsuite/25_algorithms/min/constrained.cc: Likewise.
1307         * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
1308         * testsuite/25_algorithms/minmax/constrained.cc: Likewise.
1309         * testsuite/25_algorithms/minmax_element/constrained.cc:
1310         Likewise.
1311         * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
1312         * testsuite/25_algorithms/mismatch/constrained.cc: Likewise.
1313         * testsuite/25_algorithms/move/93872.cc: Likewise.
1314         * testsuite/25_algorithms/move/95578.cc: Likewise.
1315         * testsuite/25_algorithms/move/constexpr.cc: Likewise.
1316         * testsuite/25_algorithms/move/constrained.cc: Likewise.
1317         * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
1318         * testsuite/25_algorithms/move_backward/95578.cc: Likewise.
1319         * testsuite/25_algorithms/move_backward/constrained.cc:
1320         Likewise.
1321         * testsuite/25_algorithms/next_permutation/constexpr.cc:
1322         Likewise.
1323         * testsuite/25_algorithms/next_permutation/constrained.cc:
1324         Likewise.
1325         * testsuite/25_algorithms/none_of/constexpr.cc: Likewise.
1326         * testsuite/25_algorithms/none_of/constrained.cc: Likewise.
1327         * testsuite/25_algorithms/nth_element/constexpr.cc: Likewise.
1328         * testsuite/25_algorithms/nth_element/constrained.cc: Likewise.
1329         * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
1330         * testsuite/25_algorithms/partial_sort/constrained.cc: Likewise.
1331         * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
1332         Likewise.
1333         * testsuite/25_algorithms/partial_sort_copy/constrained.cc:
1334         Likewise.
1335         * testsuite/25_algorithms/partition/constexpr.cc: Likewise.
1336         * testsuite/25_algorithms/partition/constrained.cc: Likewise.
1337         * testsuite/25_algorithms/partition_copy/constexpr.cc: Likewise.
1338         * testsuite/25_algorithms/partition_copy/constrained.cc:
1339         Likewise.
1340         * testsuite/25_algorithms/partition_point/constexpr.cc:
1341         Likewise.
1342         * testsuite/25_algorithms/partition_point/constrained.cc:
1343         Likewise.
1344         * testsuite/25_algorithms/pop_heap/constexpr.cc: Likewise.
1345         * testsuite/25_algorithms/prev_permutation/constexpr.cc:
1346         Likewise.
1347         * testsuite/25_algorithms/prev_permutation/constrained.cc:
1348         Likewise.
1349         * testsuite/25_algorithms/push_heap/constexpr.cc: Likewise.
1350         * testsuite/25_algorithms/remove/constexpr.cc: Likewise.
1351         * testsuite/25_algorithms/remove/constrained.cc: Likewise.
1352         * testsuite/25_algorithms/remove_copy/constexpr.cc: Likewise.
1353         * testsuite/25_algorithms/remove_copy/constrained.cc: Likewise.
1354         * testsuite/25_algorithms/remove_copy_if/constexpr.cc: Likewise.
1355         * testsuite/25_algorithms/remove_copy_if/constrained.cc:
1356         Likewise.
1357         * testsuite/25_algorithms/remove_if/constexpr.cc: Likewise.
1358         * testsuite/25_algorithms/remove_if/constrained.cc: Likewise.
1359         * testsuite/25_algorithms/replace/constrained.cc: Likewise.
1360         * testsuite/25_algorithms/replace_copy/constexpr.cc: Likewise.
1361         * testsuite/25_algorithms/replace_copy/constrained.cc: Likewise.
1362         * testsuite/25_algorithms/replace_copy_if/constexpr.cc:
1363         Likewise.
1364         * testsuite/25_algorithms/replace_copy_if/constrained.cc:
1365         Likewise.
1366         * testsuite/25_algorithms/replace_if/constexpr.cc: Likewise.
1367         * testsuite/25_algorithms/replace_if/constrained.cc: Likewise.
1368         * testsuite/25_algorithms/reverse/constexpr.cc: Likewise.
1369         * testsuite/25_algorithms/reverse/constrained.cc: Likewise.
1370         * testsuite/25_algorithms/reverse_copy/constexpr.cc: Likewise.
1371         * testsuite/25_algorithms/reverse_copy/constrained.cc: Likewise.
1372         * testsuite/25_algorithms/rotate/constexpr.cc: Likewise.
1373         * testsuite/25_algorithms/rotate/constrained.cc: Likewise.
1374         * testsuite/25_algorithms/rotate_copy/constexpr.cc: Likewise.
1375         * testsuite/25_algorithms/rotate_copy/constrained.cc: Likewise.
1376         * testsuite/25_algorithms/sample/constrained.cc: Likewise.
1377         * testsuite/25_algorithms/search/constexpr.cc: Likewise.
1378         * testsuite/25_algorithms/search/constrained.cc: Likewise.
1379         * testsuite/25_algorithms/search_n/97828.cc: Likewise.
1380         * testsuite/25_algorithms/search_n/constexpr.cc: Likewise.
1381         * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
1382         * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
1383         * testsuite/25_algorithms/set_difference/constrained.cc:
1384         Likewise.
1385         * testsuite/25_algorithms/set_intersection/constexpr.cc:
1386         Likewise.
1387         * testsuite/25_algorithms/set_intersection/constrained.cc:
1388         Likewise.
1389         * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
1390         Likewise.
1391         * testsuite/25_algorithms/set_symmetric_difference/constrained.cc:
1392         Likewise.
1393         * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
1394         * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
1395         * testsuite/25_algorithms/shift_left/1.cc: Likewise.
1396         * testsuite/25_algorithms/shift_right/1.cc: Likewise.
1397         * testsuite/25_algorithms/shuffle/constrained.cc: Likewise.
1398         * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
1399         * testsuite/25_algorithms/sort/constrained.cc: Likewise.
1400         * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
1401         * testsuite/25_algorithms/stable_partition/constrained.cc:
1402         Likewise.
1403         * testsuite/25_algorithms/stable_sort/constrained.cc: Likewise.
1404         * testsuite/25_algorithms/swap/constexpr.cc: Likewise.
1405         * testsuite/25_algorithms/swap_ranges/constexpr.cc: Likewise.
1406         * testsuite/25_algorithms/swap_ranges/constrained.cc: Likewise.
1407         * testsuite/25_algorithms/transform/constexpr.cc: Likewise.
1408         * testsuite/25_algorithms/transform/constrained.cc: Likewise.
1409         * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
1410         * testsuite/25_algorithms/unique/constrained.cc: Likewise.
1411         * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
1412         * testsuite/25_algorithms/unique_copy/constrained.cc: Likewise.
1413         * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
1414         * testsuite/25_algorithms/upper_bound/constrained.cc: Likewise.
1415         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
1416         Likewise.
1417         * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
1418         Likewise.
1419         * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
1420         Likewise.
1422 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1424         * testsuite/std/concepts/1.cc: Remove dg-options.
1425         * testsuite/std/concepts/2.cc: Likewise.
1426         * testsuite/std/concepts/concepts.callable/invocable.cc:
1427         Likewise.
1428         * testsuite/std/concepts/concepts.callable/regular_invocable.cc:
1429         Likewise.
1430         * testsuite/std/concepts/concepts.callable/relation.cc:
1431         Likewise.
1432         * testsuite/std/concepts/concepts.callable/strictweakorder.cc:
1433         Likewise.
1434         * testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc: Likewise.
1435         * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc: Likewise.
1436         * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc: Likewise.
1437         * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc: Likewise.
1438         * testsuite/std/concepts/concepts.lang/concept.assignable/1.cc:
1439         Likewise.
1440         * testsuite/std/concepts/concepts.lang/concept.common/1.cc:
1441         Likewise.
1442         * testsuite/std/concepts/concepts.lang/concept.commonref/1.cc:
1443         Likewise.
1444         * testsuite/std/concepts/concepts.lang/concept.constructible/1.cc: Likewise.
1445         * testsuite/std/concepts/concepts.lang/concept.convertible/1.cc:
1446         Likewise.
1447         * testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc: Likewise.
1448         * testsuite/std/concepts/concepts.lang/concept.defaultinitializable/1.cc: Likewise.
1449         * testsuite/std/concepts/concepts.lang/concept.defaultinitializable/lwg3149.cc: Likewise.
1450         * testsuite/std/concepts/concepts.lang/concept.derived/1.cc:
1451         Likewise.
1452         * testsuite/std/concepts/concepts.lang/concept.destructible/1.cc: Likewise.
1453         * testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc: Likewise.
1454         * testsuite/std/concepts/concepts.lang/concept.same/1.cc:
1455         Likewise.
1456         * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc: Likewise.
1457         * testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc: Likewise.
1458         * testsuite/std/concepts/concepts.lang/concept.swappable/swappable_with.cc: Likewise.
1459         * testsuite/std/concepts/concepts.object/copyable.cc: Likewise.
1460         * testsuite/std/concepts/concepts.object/movable.cc: Likewise.
1461         * testsuite/std/concepts/concepts.object/regular.cc: Likewise.
1462         * testsuite/std/concepts/concepts.object/semiregular.cc:
1463         Likewise.
1464         * testsuite/std/ranges/97600.cc: Likewise.
1465         * testsuite/std/ranges/access/101782.cc: Likewise.
1466         * testsuite/std/ranges/access/begin.cc: Likewise.
1467         * testsuite/std/ranges/access/begin_neg.cc: Likewise.
1468         * testsuite/std/ranges/access/cbegin.cc: Likewise.
1469         * testsuite/std/ranges/access/cdata.cc: Likewise.
1470         * testsuite/std/ranges/access/cend.cc: Likewise.
1471         * testsuite/std/ranges/access/crbegin.cc: Likewise.
1472         * testsuite/std/ranges/access/crend.cc: Likewise.
1473         * testsuite/std/ranges/access/data.cc: Likewise.
1474         * testsuite/std/ranges/access/empty.cc: Likewise.
1475         * testsuite/std/ranges/access/end.cc: Likewise.
1476         * testsuite/std/ranges/access/end_neg.cc: Likewise.
1477         * testsuite/std/ranges/access/lwg3467.cc: Likewise.
1478         * testsuite/std/ranges/access/p2602.cc: Likewise.
1479         * testsuite/std/ranges/access/rbegin.cc: Likewise.
1480         * testsuite/std/ranges/access/rend.cc: Likewise.
1481         * testsuite/std/ranges/access/size.cc: Likewise.
1482         * testsuite/std/ranges/access/size_neg.cc: Likewise.
1483         * testsuite/std/ranges/access/ssize.cc: Likewise.
1484         * testsuite/std/ranges/adaptors/100479.cc: Likewise.
1485         * testsuite/std/ranges/adaptors/100577.cc: Likewise.
1486         * testsuite/std/ranges/adaptors/93978.cc: Likewise.
1487         * testsuite/std/ranges/adaptors/95322.cc: Likewise.
1488         * testsuite/std/ranges/adaptors/99433.cc: Likewise.
1489         * testsuite/std/ranges/adaptors/all.cc: Likewise.
1490         * testsuite/std/ranges/adaptors/common.cc: Likewise.
1491         * testsuite/std/ranges/adaptors/conditionally_borrowed.cc:
1492         Likewise.
1493         * testsuite/std/ranges/adaptors/counted.cc: Likewise.
1494         * testsuite/std/ranges/adaptors/detail/copyable_box.cc:
1495         Likewise.
1496         * testsuite/std/ranges/adaptors/drop.cc: Likewise.
1497         * testsuite/std/ranges/adaptors/drop_while.cc: Likewise.
1498         * testsuite/std/ranges/adaptors/elements.cc: Likewise.
1499         * testsuite/std/ranges/adaptors/filter.cc: Likewise.
1500         * testsuite/std/ranges/adaptors/join.cc: Likewise.
1501         * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
1502         * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
1503         * testsuite/std/ranges/adaptors/lwg3286.cc: Likewise.
1504         * testsuite/std/ranges/adaptors/lwg3313_neg.cc: Likewise.
1505         * testsuite/std/ranges/adaptors/lwg3325_neg.cc: Likewise.
1506         * testsuite/std/ranges/adaptors/lwg3406.cc: Likewise.
1507         * testsuite/std/ranges/adaptors/p1739.cc: Likewise.
1508         * testsuite/std/ranges/adaptors/p2281.cc: Likewise.
1509         * testsuite/std/ranges/adaptors/p2770r0.cc: Likewise.
1510         * testsuite/std/ranges/adaptors/reverse.cc: Likewise.
1511         * testsuite/std/ranges/adaptors/sizeof.cc: Likewise.
1512         * testsuite/std/ranges/adaptors/split.cc: Likewise.
1513         * testsuite/std/ranges/adaptors/take.cc: Likewise.
1514         * testsuite/std/ranges/adaptors/take_while.cc: Likewise.
1515         * testsuite/std/ranges/adaptors/transform.cc: Likewise.
1516         * testsuite/std/ranges/empty_view.cc: Likewise.
1517         * testsuite/std/ranges/headers/ranges/synopsis.cc: Likewise.
1518         * testsuite/std/ranges/iota/difference_type.cc: Likewise.
1519         * testsuite/std/ranges/iota/iota_view.cc: Likewise.
1520         * testsuite/std/ranges/iota/iterator.cc: Likewise.
1521         * testsuite/std/ranges/iota/lwg3292_neg.cc: Likewise.
1522         * testsuite/std/ranges/iota/max_size_type.cc: Likewise.
1523         * testsuite/std/ranges/istream_view.cc: Likewise.
1524         * testsuite/std/ranges/p2259.cc: Likewise.
1525         * testsuite/std/ranges/p2325.cc: Likewise.
1526         * testsuite/std/ranges/p2367.cc: Likewise.
1527         * testsuite/std/ranges/range.cc: Likewise.
1528         * testsuite/std/ranges/refinements.cc: Likewise.
1529         * testsuite/std/ranges/safe_range.cc: Likewise.
1530         * testsuite/std/ranges/safe_range_types.cc: Likewise.
1531         * testsuite/std/ranges/single_view.cc: Likewise.
1532         * testsuite/std/ranges/sized.cc: Likewise.
1533         * testsuite/std/ranges/subrange/1.cc: Likewise.
1534         * testsuite/std/ranges/subrange/97512.cc: Likewise.
1535         * testsuite/std/ranges/subrange/constexpr.cc: Likewise.
1536         * testsuite/std/ranges/subrange/lwg3282_neg.cc: Likewise.
1537         * testsuite/std/ranges/subrange/lwg3286.cc: Likewise.
1538         * testsuite/std/ranges/subrange/lwg3433.cc: Likewise.
1539         * testsuite/std/ranges/subrange/sizeof.cc: Likewise.
1540         * testsuite/std/ranges/subrange/tuple_like.cc: Likewise.
1541         * testsuite/std/ranges/view.cc: Likewise.
1543 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1545         * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
1546         Remove dg-options.
1547         * testsuite/23_containers/span/contiguous_range_neg.cc:
1548         Likewise.
1549         * testsuite/23_containers/span/everything.cc: Likewise.
1551 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1553         * testsuite/24_iterators/reverse_iterator/100639.cc: Remove
1554         dg-options and add dg-add-options strict_std.
1555         * testsuite/std/ranges/iota/93267.cc: Likewise.
1556         * testsuite/std/ranges/iota/96042.cc: Likewise.
1557         * testsuite/std/ranges/iota/size.cc: Likewise.
1558         * testsuite/std/ranges/subrange/96042.cc: Likewise.
1560 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1562         * testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_cxx17.cc:
1563         Replace dg-options -std=c++17 with dg-add-options strict_std.
1564         * testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_cxx17.cc:
1565         Likewise.
1567 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1569         * testsuite/23_containers/deque/48101-2_neg.cc: Replace
1570         dg-options with target selector.
1571         * testsuite/23_containers/forward_list/48101-2_neg.cc: Likewise.
1572         * testsuite/23_containers/list/48101-2_neg.cc: Likewise.
1573         * testsuite/23_containers/map/48101-2_neg.cc: Likewise.
1574         * testsuite/23_containers/map/48101_neg.cc: Likewise.
1575         * testsuite/23_containers/multimap/48101-2_neg.cc: Likewise.
1576         * testsuite/23_containers/multimap/48101_neg.cc: Likewise.
1577         * testsuite/23_containers/multiset/48101-2_neg.cc: Likewise.
1578         * testsuite/23_containers/set/48101-2_neg.cc: Likewise.
1579         * testsuite/23_containers/unordered_map/48101-2_neg.cc:
1580         Likewise.
1581         * testsuite/23_containers/unordered_multimap/48101-2_neg.cc:
1582         Likewise.
1583         * testsuite/23_containers/unordered_multiset/48101-2_neg.cc:
1584         Likewise.
1585         * testsuite/23_containers/unordered_set/48101-2_neg.cc:
1586         Likewise.
1587         * testsuite/23_containers/vector/48101-2_neg.cc: Likewise.
1589 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1591         * doc/xml/manual/test.xml: Update documentation on running and
1592         writing tests.
1593         * doc/html/manual/test.html: Regenerate.
1594         * testsuite/Makefile.am: Add v3-use-std-list to site.tmp
1595         * testsuite/Makefile.in: Regenerate.
1596         * testsuite/lib/dg-options.exp (add_options_for_strict_std): New
1597         proc.
1598         * testsuite/lib/libstdc++.exp (search_for): New utility proc.
1599         (v3-dg-runtest): New proc to replace dg-runtest.
1600         * testsuite/libstdc++-dg/conformance.exp: Use v3-dg-runtest.
1602 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1604         * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc:
1605         Fix test to work for C++23 and C++26 too.
1607 2023-09-15  Patrick Palka  <ppalka@redhat.com>
1609         * include/std/bit: Include <concepts>.
1610         (byteswap): Use a type-constraint instead of enable_if_t
1611         inside the return type, and use std::integral.
1612         (_If_is_unsigned_integer): Replace with ...
1613         (__unsigned_integer): ... this.
1614         (rotl): Use a type-constraint instead of enable_if_t inside
1615         the return type.
1616         (countl_zero): Likewise.
1617         (countl_one): Likewise.
1618         (countr_zero): Likewise.
1619         (countr_one): Likewise.
1620         (popcount): Likewise.
1621         (has_single_bit): Likewise.
1622         (bit_ceil): Likewise.
1623         (bit_floor): Likewise.
1624         (bit_width): Likewise.
1626 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1628         * include/std/variant (variant): Remove derivation from
1629         _Enable_default_constructor base class.
1630         (variant::variant()): Constrain.
1631         * testsuite/20_util/variant/default_ctor.cc: New test.
1633 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1635         PR libstdc++/111172
1636         * include/std/variant (get<T>): Remove !is_void static
1637         assertions.
1639 2023-09-15  Jonathan Wakely  <jwakely@redhat.com>
1641         * include/bits/version.def (to_chars): Define new value for
1642         C++26.
1643         * include/bits/version.h: Regenerate.
1644         * include/std/charconv (to_chars_result::operator bool): New
1645         function.
1646         (from_chars_result::operator bool): New function.
1647         * testsuite/20_util/to_chars/version.cc: Update expected value.
1648         * testsuite/20_util/from_chars/result.cc: New test.
1649         * testsuite/20_util/to_chars/result.cc: New test.
1651 2023-09-14  Jonathan Wakely  <jwakely@redhat.com>
1653         PR c++/111357
1654         * testsuite/20_util/integer_sequence/pr111357.cc: New test.
1656 2023-09-14  Jonathan Wakely  <jwakely@redhat.com>
1658         * testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc: Use
1659         dg-additional-files. Remove @require@ and @diff@ comments.
1660         * testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc: Likewise.
1661         * testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc: Likewise.
1662         * testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc: Likewise.
1663         * testsuite/lib/dg-options.exp (v3_additional_files): New
1664         global variable.
1665         (dg-additional-files): New proc.
1666         * testsuite/lib/libstdc++.exp (v3_target_compile): Copy
1667         additional files to test directory.
1669 2023-09-14  Jonathan Wakely  <jwakely@redhat.com>
1671         * include/experimental/io_context (io_context) [!_GLIBCXX_HAS_GTHREADS]:
1672         Use a plain integer for _M_work_count for single-threaded
1673         targets.
1674         * include/experimental/memory_resource (__get_default_resource)
1675         [!_GLIBCXX_HAS_GTHREADS]: Use unsynchronized type for
1676         single-threaded targets.
1677         * src/c++17/default_resource.h: Adjust preprocessor conditions
1678         to match memory_resource.cc.
1679         * src/c++17/memory_resource.cc [!_GLIBCXX_HAS_GTHREADS]
1680         (atomic_mem_res): Use unsynchronized type for single-threaded
1681         targets.
1683 2023-09-14  Christophe Lyon  <christophe.lyon@linaro.org>
1685         * testsuite/29_atomics/atomic/compare_exchange_padding.cc: Likewise.
1686         * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
1687         * testsuite/29_atomics/atomic_float/value_init.cc: Likewise.
1688         * testsuite/29_atomics/atomic_integral/cons/value_init.cc: Likewise.
1689         * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc: Likewise.
1690         * testsuite/29_atomics/atomic_ref/generic.cc: Likewise.
1691         * testsuite/29_atomics/atomic_ref/integral.cc: Likewise.
1692         * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise.
1694 2023-09-14  François Dumont  <fdumont@gcc.gnu.org>
1696         * testsuite/19_diagnostics/stacktrace/synopsis.cc: Add
1697         { dg-require-normal-namespace "" }.
1699 2023-09-13  François Dumont  <fdumont@gcc.gnu.org>
1701         * include/std/format (std::__format::_Arg_store): Explicit version
1702         namespace on make_format_args friend declaration.
1704 2023-09-12  Patrick Palka  <ppalka@redhat.com>
1706         PR libstdc++/111327
1707         * include/std/functional (_GLIBCXX_NOT_FN_CALL_OP): Also define
1708         a deleted fallback operator() overload.  Constrain both the
1709         enabled and deleted overloads accordingly.
1710         * testsuite/20_util/function_objects/not_fn/111327.cc: New test.
1712 2023-09-12  Patrick Palka  <ppalka@redhat.com>
1714         PR libstdc++/111327
1715         * include/std/functional (_Bind_front::operator()): Add deleted
1716         fallback overloads for each const/ref qualifier pair.  Give the
1717         enabled overloads dummy constraints to make each one more
1718         specialized than the corresponding deleted overload.
1719         * testsuite/20_util/function_objects/bind_front/111327.cc: New test.
1721 2023-09-12  Patrick Palka  <ppalka@redhat.com>
1723         * include/std/functional (_Bind_front0): Remove.
1724         (_Bind_front_t): Adjust.
1726 2023-09-12  Jonathan Wakely  <jwakely@redhat.com>
1728         * python/libstdcxx/v6/printers.py: Reformat.
1729         * python/libstdcxx/v6/xmethods.py: Likewise.
1731 2023-09-11  Jonathan Wakely  <jwakely@redhat.com>
1733         * src/c++11/debug.cc (acquire_sequence_ptr_for_lock): New
1734         function.
1735         (reset_sequence_ptr): New function.
1736         (_Safe_iterator_base::_M_detach)
1737         (_Safe_local_iterator_base::_M_detach): Replace bare atomic_load
1738         with acquire_sequence_ptr_for_lock.
1739         (_Safe_iterator_base::_M_reset): Replace bare atomic_store with
1740         reset_sequence_ptr.
1742 2023-09-11  Jonathan Wakely  <jwakely@redhat.com>
1744         * src/c++11/Makefile.am: Add new file.
1745         * src/c++11/Makefile.in: Regenerate.
1746         * src/c++11/debug.cc (__glibcxx_assert_fail): Move to ...
1747         * src/c++11/assert_fail.cc: New file.
1749 2023-09-11  Ken Matsui  <kmatsui@gcc.gnu.org>
1751         * include/bits/c++config (_GLIBCXX_HAS_BUILTIN): Do not undef.
1752         (_GLIBCXX_USE_BUILTIN_TRAIT): Define.
1754 2023-09-11  Jonathan Wakely  <jwakely@redhat.com>
1756         * include/bits/version.def (__cpp_lib_formatters): Define.
1757         * include/bits/version.h: Regenerate.
1758         * include/std/stacktrace (formatter<stacktrace_entry>)
1759         (formatter<basic_stacktrace<Alloc>>): Define.
1760         * include/std/thread (formatter<thread::id, charT>): Define.
1761         * testsuite/19_diagnostics/stacktrace/output.cc: New test.
1762         * testsuite/19_diagnostics/stacktrace/synopsis.cc: Add
1763         std::formatter specializations.
1764         * testsuite/19_diagnostics/stacktrace/version.cc: Check
1765         __cpp_lib_formatters macro.
1766         * testsuite/30_threads/thread/id/hash.cc: Remove gthreads
1767         dependency.
1768         * testsuite/30_threads/thread/id/operators.cc: Likewise.
1769         * testsuite/30_threads/thread/id/operators_c++20.cc: Likewise.
1770         * testsuite/30_threads/thread/id/output.cc: New test.
1772 2023-09-11  Pekka Seppänen  <pexu@gcc.mail.kapsi.fi>
1774         * src/c++11/cow-locale_init.cc: Add [[maybe_unused]] attribute.
1775         * src/c++17/fs_path.cc (path::_S_convert_loc): Likewise.
1776         * src/filesystem/path.cc (path::_S_convert_loc): Likewise.
1778 2023-09-08  Jonathan Wakely  <jwakely@redhat.com>
1780         * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++23 directory.
1781         * configure: Regenerate.
1782         * doc/html/manual/*: Regenerate.
1783         * doc/xml/manual/using.xml: Update documentation on linking.
1784         * include/std/stacktrace: Remove declarations of libbacktrace
1785         APIs.
1786         (stacktrace_entry::_S_err_handler, stacktrace_entry::_S_init):
1787         Remove.
1788         (stacktrace_entry::_Info): New class.
1789         (stacktrace_entry::_M_get_info): Use _Info.
1790         (__stacktrace_impl): New class.
1791         (basic_stacktrace): Derive from __stacktrace_impl.
1792         (basic_stacktrace::current): Use __stacktrace_impl::_S_current.
1793         * scripts/testsuite_flags.in: Adjust LDFLAGS to find
1794         libstdc++exp instead of libstdc++_libbacktrace.
1795         * src/Makefile.am (SUBDIRS): Add c++23 directory.
1796         * src/Makefile.in: Regenerate.
1797         * src/c++20/Makefile.am: Fix comment.
1798         * src/c++20/Makefile.in: Regenerate.
1799         * src/c++23/Makefile.am: New file.
1800         * src/c++23/Makefile.in: New file.
1801         * src/c++23/stacktrace.cc: New file with definitions of
1802         stacktrace_entry::_Info and __stacktrace_impl members.
1803         * src/experimental/Makefile.am: Use LIBADD to include other
1804         libraries.
1805         * src/experimental/Makefile.in: Regenerate.
1806         * src/libbacktrace/Makefile.am: Use noinst_LTLIBRARIES.
1807         * src/libbacktrace/Makefile.in: Regenerate.
1808         * testsuite/19_diagnostics/stacktrace/current.cc: Adjust
1809         dg-options to use -lstdc++exp.
1810         * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
1811         * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
1812         * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc:
1813         Likewise.
1815 2023-09-08  Alexey Lapshin  <alexey.lapshin@espressif.com>
1817         * src/libbacktrace/Makefile.am: Remove -Werror.
1818         * src/libbacktrace/Makefile.in: Regenerate.
1820 2023-09-08  Jonathan Wakely  <jwakely@redhat.com>
1822         * testsuite/Makefile.am (check-DEJAGNU): Use @ in recipe.
1823         * testsuite/Makefile.in: Regenerate.
1825 2023-09-08  Yang Yujie  <yangyujie@loongson.cn>
1827         * configure.host: Register t-loongarch in tmake_file.
1828         * config/cpu/loongarch/t-loongarch: New file.  Manually refresh
1829         MULTISUBDIR with $(shell $(CXX) --print-multi-directory).
1831 2023-09-07  Bruno Victal  <mirai@makinata.eu>
1833         * acinclude.m4: Update docbook xsl URI.
1834         * configure: Regenerate.
1836 2023-09-07  Bruno Victal  <mirai@makinata.eu>
1838         * doc/Makefile.am: Fix 'doc-install-info' rule.
1839         Fix typo in commment.
1840         * doc/Makefile.in: Regenerate.
1842 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
1844         * testsuite/27_io/filesystem/path/concat/94063.cc: Simplify
1845         dg-do target selector.
1847 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
1849         * testsuite/config/default.exp: Remove trailing whitespace.
1850         * testsuite/lib/dg-options.exp: Likewise.
1851         * testsuite/lib/prune.exp: Likewise.
1852         * testsuite/libstdc++-abi/abi.exp: Likewise.
1853         * testsuite/libstdc++-dg/conformance.exp: Likewise.
1854         * testsuite/libstdc++-prettyprinters/prettyprinters.exp:
1855         Likewise.
1856         * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
1857         * testsuite/lib/libstdc++.exp: Likewise.
1858         (check_v3_target_c_std): Fix filename for temporary source file.
1860 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
1862         * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for mkdir,
1863         chmod, chdir, and getcwd.
1864         * config.h.in: Regenerate.
1865         * configure: Regenerate.
1866         * src/c++17/fs_ops.cc (create_dir): Use USE_MKDIR macro.
1867         (fs::current_path): Use USE_GETCWD and USE_CHDIR macros.
1868         (fs::permissions): Use USE_CHMOD macro.
1869         * src/filesystem/ops-common.h [FILESYSTEM_IS_WINDOWS]
1870         (chmod, mkdir, getcwd, chdir): Define new macros.
1871         [FILESYSTEM_IS_WINDOWS] (chmod, mkdir, getcwd, chdir): Use
1872         new macros.
1873         * src/filesystem/ops.cc (create_dir): Use USE_MKDIR macro.
1874         (fs::current_path): Use USE_GETCWD and USE_CHDIR macros.
1875         (fs::permissions): Use USE_CHMOD macro.
1877 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
1879         * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Disable by default
1880         for avr.
1881         * configure: Regenerate.
1883 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
1885         * testsuite/23_containers/unordered_map/operations/1.cc: Add
1886         dg-options for C++20 mode.
1887         * testsuite/23_containers/unordered_multimap/operations/1.cc:
1888         Likewise.
1889         * testsuite/23_containers/unordered_multiset/operations/1.cc:
1890         Likewise.
1891         * testsuite/23_containers/unordered_set/operations/1.cc:
1892         Likewise.
1893         * testsuite/std/time/parse.cc: Move dg-options before dg-do.
1895 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
1897         * testsuite/std/ranges/access/cbegin.cc: Adjust for C++23
1898         compatibility.
1899         * testsuite/std/ranges/access/cdata.cc: Likewise.
1900         * testsuite/std/ranges/access/cend.cc: Likewise.
1901         * testsuite/std/ranges/access/crbegin.cc: Likewise.
1902         * testsuite/std/ranges/access/crend.cc: Likewise.
1903         * testsuite/std/ranges/adaptors/take.cc: Likewise.
1904         * testsuite/std/ranges/adaptors/take_while.cc: Likewise.
1905         * testsuite/std/ranges/adaptors/transform.cc: Likewise.
1907 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
1909         * include/bits/iterator_concepts.h (__imove::iter_move): Define
1910         poison pill as deleted for consistency.
1911         (__access::begin): Replace with a single declaration.
1912         * include/bits/ranges_base.h (__access::end, __access::rbegin)
1913         (__access::rend, __access::size): Likewise.
1914         * include/bits/version.def (ranges): Update value for C++23.
1915         * include/bits/version.h: Regenerate.
1916         * libsupc++/compare (__compare): Add missing poison pill
1917         overloads.
1918         * testsuite/std/ranges/version_c++23.cc: Adjust expected value
1919         of __cpp_lib_ranges.
1920         * testsuite/std/ranges/access/p2602.cc: New test.
1922 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
1924         * include/bits/iterator_concepts.h (ranges::__cust_imove):
1925         Rename to ranges::__imove.
1926         (_IMove): Rename to _IterMove.
1927         (ranges::__cust_iswap): Rename to ranges::__iswap.
1928         (ranges::__cust): Rename to ranges::_Cpo.
1929         (ranges::__cust_access): Rename to ranges::__access.
1930         * include/bits/ranges_base.h (ranges::__cust_access): Rename to
1931         ranges::__access.
1932         (ranges::__cust): Rename to ranges::_Cpo.
1933         * include/std/concepts (ranges::__cust_swap):  Rename to
1934         ranges::__swap.
1935         (ranges::__cust): Rename to ranges::_Cpo.
1936         * libsupc++/compare (__cmp_cust): Rename to __compare.
1937         (__cmp_algo): Rename to _Cpo.
1939 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
1941         * include/bits/version.def (ranges): Update value.
1942         * include/bits/version.h: Regenerate.
1943         * include/std/ranges (__detail::__boxable): Use
1944         move_constructible instead of copy_constructible for C++23.
1945         (__detail::__box<T>): Adjust constraints for partial
1946         specialization.
1947         (single_view, transform_view): Use __box_constructible instead
1948         of copy_constructible in constraints.
1949         (zip_transform_view, adjacent_transform_view, repeat_view): Use
1950         move_constructible instead of copy_constructible in constraints.
1951         * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: Check
1952         construction from move-only argument.
1953         * testsuite/std/ranges/adaptors/transform.cc: Likewise.
1954         * testsuite/std/ranges/repeat/1.cc: Likewise.
1955         * testsuite/std/ranges/single_view.cc: Likewise.
1956         * testsuite/std/ranges/zip_transform/1.cc: Likewise.
1957         * testsuite/std/ranges/version_c++23.cc: Adjust expected value
1958         of __cpp_lib_ranges.
1960 2023-09-07  Jonathan Wakely  <jwakely@redhat.com>
1962         * testsuite/util/testsuite_iterators.h (is_customization_point_object):
1963         Remove parameter name.
1965 2023-09-06  Jonathan Wakely  <jwakely@redhat.com>
1967         * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Disable by default
1968         for freestanding.
1969         * configure: Regenerate.
1971 2023-09-04  Christophe Lyon  <christophe.lyon@linaro.org>
1973         Revert
1974         2023-09-04  Christophe Lyon  <christophe.lyon@linaro.org>
1976         PR libstdc++/111238
1977         * configure: Regenerate.
1978         * configure.ac: Call GLIBCXX_CHECK_LINKER_FEATURES in cross,
1979         non-Canadian builds.
1981 2023-09-04  Christophe Lyon  <christophe.lyon@linaro.org>
1983         PR libstdc++/111238
1984         * configure: Regenerate.
1985         * configure.ac: Call GLIBCXX_CHECK_LINKER_FEATURES in cross,
1986         non-Canadian builds.
1988 2023-09-04  Jonathan Wakely  <jwakely@redhat.com>
1990         * testsuite/26_numerics/complex/literals/types.cc: Remove
1991         dg-options and add target selector instead.
1993 2023-09-04  Jonathan Wakely  <jwakely@redhat.com>
1995         * testsuite/tr1/6_containers/utility/pair.cc: Remove dg-options
1996         and qualify ambiguous calls to get.
1997         * testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc: Adjust
1998         expected result for std::pow(float, int) as per DR 550.
2000 2023-09-04  Jonathan Wakely  <jwakely@redhat.com>
2002         * testsuite/20_util/auto_ptr/1.cc: Remove dg-options -std=c++03
2003         and add dg-warning for deprecation warnings.
2004         * testsuite/20_util/auto_ptr/2.cc: Likewise.
2005         * testsuite/20_util/auto_ptr/3.cc: Likewise.
2006         * testsuite/20_util/auto_ptr/3946.cc: Likewise.
2007         * testsuite/20_util/auto_ptr/4.cc: Likewise.
2008         * testsuite/20_util/auto_ptr/5.cc: Likewise.
2009         * testsuite/20_util/auto_ptr/6.cc: Likewise.
2010         * testsuite/20_util/auto_ptr/7.cc: Likewise.
2011         * testsuite/20_util/auto_ptr/assign_neg.cc: Likewise.
2012         * testsuite/20_util/auto_ptr/requirements/explicit_instantiation/1.cc:
2013         Likewise.
2014         * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr.cc:
2015         Likewise.
2016         * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_neg.cc:
2017         Likewise.
2018         * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc:
2019         Likewise.
2020         * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
2021         Likewise.
2022         * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr.cc:
2023         Likewise.
2024         * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr_neg.cc:
2025         Likewise.
2027 2023-09-04  Jonathan Wakely  <jwakely@redhat.com>
2029         PR libstdc++/26142
2030         * testsuite/23_containers/vector/26412-1.cc: Moved to...
2031         * testsuite/23_containers/vector/26142-1.cc: ...here.
2032         * testsuite/23_containers/vector/26412-2.cc: Moved to...
2033         * testsuite/23_containers/vector/26142-2.cc: ...here.
2035 2023-09-04  Jonathan Wakely  <jwakely@redhat.com>
2037         * testsuite/20_util/bitset/107037.cc: Add c++98_only selector.
2038         * testsuite/26_numerics/complex/56111.cc: Likewise.
2040 2023-09-04  Jonathan Wakely  <jwakely@redhat.com>
2042         * testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc:
2043         Add dg-options to restrict the test to C++98 mode.
2044         * testsuite/23_containers/list/requirements/explicit_instantiation/2.cc:
2045         Likewise.
2047 2023-09-04  Jonathan Wakely  <jwakely@redhat.com>
2049         * testsuite/20_util/expected/bad.cc: Add missing target
2050         selector.
2052 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
2054         * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
2055         expected errors.
2056         * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
2057         Likewise.
2059 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
2061         * testsuite/27_io/filesystem/iterators/91067.cc: Add
2062         -Wno-self-move to options.
2063         * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
2065 2023-09-01  Vladimir Palevich  <palevichva@gmail.com>
2067         PR libstdc++/110879
2068         * include/bits/vector.tcc (_M_realloc_insert): End guard
2069         lifetime just before assignment to class members.
2070         (_M_default_append): Likewise.
2072 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
2074         * src/c++17/fs_ops.cc (fs::absolute) [FILESYSTEM_IS_WINDOWS]:
2075         Use __resize_and_overwrite to fill buffer.
2076         (fs::read_symlink) [HAVE_READLINK]: Likewise.
2077         * src/filesystem/ops-common.h (get_temp_directory_from_env)
2078         [FILESYSTEM_IS_WINDOWS]: Likewise.
2080 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
2082         PR libstdc++/111077
2083         * include/bits/atomic_base.h (__atomic_impl::__compare_exchange):
2084         Add _AtomicRef non-type template parameter and use a loop if it
2085         is true.
2086         (__atomic_impl::compare_exchange_weak): Add _AtomicRef NTTP.
2087         (__atomic_impl::compare_exchange_strong): Likewise.
2088         (atomic_ref::compare_exchange_weak): Use true for NTTP.
2089         (atomic_ref::compare_exchange_strong): Use true for NTTP.
2090         * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
2091         Fix test to not rely on atomic_ref::load() to return an object
2092         with padding preserved.
2094 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
2096         * testsuite/27_io/filesystem/path/108636.cc: Add dg-require for
2097         filesystem support.
2099 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
2101         * src/c++20/tzdb.cc (tzdb::current_zone): Check configure macros
2102         for POSIX readlink before using filesystem::read_symlink.
2104 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
2106         * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Default to yes.
2107         * configure: Regenerate.
2109 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
2111         * include/bits/chrono_io.h (_Parser::operator()): Set failbit
2112         early if invalid values are read when _M_need & _TimeOfDay is
2113         non-zero.
2114         * testsuite/std/time/parse.cc: Check that "25:59" cannot be
2115         parsed for "%H:%M".
2117 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
2119         PR libstdc++/111162
2120         * include/bits/chrono_io.h (_Parser::Operator()): Check %C
2121         values are in range of year::min() to year::max().
2122         * testsuite/std/time/parse.cc: Check out of range centuries.
2124 2023-09-01  Jonathan Wakely  <jwakely@redhat.com>
2126         * include/std/format (__format::_Sink::_M_reset): Change second
2127         argument from iterator to offset.
2129 2023-08-24  Paul Dreik  <gccpatches@pauldreik.se>
2131         PR libstdc++/111102
2132         * testsuite/std/format/string.cc: Check wide character format
2133         strings with out-of-range widths.
2135 2023-08-24  Paul Dreik  <gccpatches@pauldreik.se>
2137         PR libstdc++/111102
2138         * include/std/format (__format::__parse_integer): Check for
2139         non-null pointer.
2141 2023-08-24  Jonathan Wakely  <jwakely@redhat.com>
2143         * testsuite/std/format/functions/format_to.cc: Avoid warning for
2144         unused variables.
2146 2023-08-24  Jonathan Wakely  <jwakely@redhat.com>
2148         * include/std/atomic: Add comment to #ifdef and fix indentation.
2149         * include/std/ostream: Check __glibcxx_syncbuf instead of
2150         __cplusplus and _GLIBCXX_HOSTED.
2151         * include/std/thread: Add comment to #ifdef.
2153 2023-08-24  Jonathan Wakely  <jwakely@redhat.com>
2155         * include/bits/version.def (__cpp_lib_ratio): Define.
2156         * include/bits/version.h: Regenerate.
2157         * include/std/ratio (quecto, ronto, yocto, zepto)
2158         (zetta, yotta, ronna, quetta): Define.
2159         * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Adjust
2160         dg-error line numbers.
2162 2023-08-24  Jonathan Wakely  <jwakely@redhat.com>
2164         * python/libstdcxx/v6/printers.py (StdLocalePrinter): New
2165         printer class.
2166         * testsuite/libstdc++-prettyprinters/locale.cc: New test.
2168 2023-08-24  Jonathan Wakely  <jwakely@redhat.com>
2170         PR libstdc++/110944
2171         * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter): Do
2172         not show template arguments.
2173         (StdVariantPrinter): Likewise.
2174         * testsuite/libstdc++-prettyprinters/compat.cc: Adjust expected
2175         output.
2176         * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
2177         * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
2179 2023-08-23  François Dumont  <fdumont@gcc.gnu.org>
2181         * testsuite/util/replacement_memory_operators.h
2182         (counter::scope): New, capture and reset counter count at construction and
2183         restore it at destruction.
2184         (counter::check_new): Add scope instantiation.
2185         * testsuite/23_containers/unordered_map/96088.cc (main):
2186         Add counter::scope instantiation.
2187         * testsuite/23_containers/unordered_multimap/96088.cc (main): Likewise.
2188         * testsuite/23_containers/unordered_multiset/96088.cc (main): Likewise.
2189         * testsuite/23_containers/unordered_set/96088.cc (main): Likewise.
2190         * testsuite/ext/malloc_allocator/deallocate_local.cc (main): Likewise.
2191         * testsuite/ext/new_allocator/deallocate_local.cc (main): Likewise.
2192         * testsuite/ext/throw_allocator/deallocate_local.cc (main): Likewise.
2193         * testsuite/ext/pool_allocator/allocate_chunk.cc (started): New global.
2194         (operator new(size_t)): Check started.
2195         (main): Set/Unset started.
2196         * testsuite/17_intro/no_library_allocation.cc: New test case.
2198 2023-08-21  Jonathan Wakely  <jwakely@redhat.com>
2200         * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
2201         Call std::set_terminate before throwing the nested exception.
2203 2023-08-18  Jonathan Wakely  <jwakely@redhat.com>
2205         PR target/111060
2206         * include/std/format (formatter): Only define specializations
2207         for 16-bit floating-point types for C++23.
2208         * include/std/limits (numeric_limits): Likewise.
2210 2023-08-18  Jonathan Wakely  <jwakely@redhat.com>
2212         * include/bits/chrono_io.h (operator<<): Make uses of wide
2213         strings with streams and std::format type-dependent on _CharT.
2214         * include/std/format [!_GLIBCXX_USE_WCHAR_T] Do not use
2215         __to_wstring_numeric.
2217 2023-08-18  Jonathan Wakely  <jwakely@redhat.com>
2219         * include/bits/chrono_io.h (operator<<): Use __format_context.
2220         * include/std/format (__format::__format_context): New alias
2221         template.
2222         [!_GLIBCXX_USE_WCHAR_T] (wformat_args, make_wformat_arg):
2223         Disable.
2225 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2227         Revert:
2228         2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2230         * config/locale/generic/c_locale.cc (__convert_to_v): Reuse
2231         double overload for long double if possible.
2233 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2235         * src/c++20/tzdb.cc (tzdata_file, leaps_file): Change type to
2236         std::string_view.
2238 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2240         * config/locale/generic/c_locale.cc (__convert_to_v): Reuse
2241         double overload for long double if possible.
2243 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2245         * src/c++98/localename.cc (is_C_locale): New function.
2246         (locale::locale(const char*)): Use is_C_locale.
2248 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2250         PR libstdc++/110945
2251         * include/bits/basic_string.h (basic_string::assign(Iter, Iter)):
2252         Dispatch to _M_replace or move assignment from a temporary,
2253         based on the iterator type.
2255 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2257         * include/std/format (formatter): Add partial specializations
2258         for extended floating-point types.
2259         * testsuite/std/format/functions/format.cc: Move test_float128()
2260         to ...
2261         * testsuite/std/format/formatter/ext_float.cc: New test.
2263 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2265         * include/bits/c++config (__gnu_cxx::__bfloat16_t): Define
2266         whenever __BFLT16_DIG__ is defined, not only for C++23.
2267         * include/std/limits (numeric_limits<bfloat16_t>): Likewise.
2268         (numeric_limits<_Float16>, numeric_limits<_Float32>)
2269         (numeric_limits<_Float64>): Likewise for other extended
2270         floating-point types.
2272 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2274         * include/experimental/internet (address_v4::to_string): Remove
2275         unused parameter name.
2277 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2279         * libsupc++/compare (__cmp_cat::__unseq): Make ctor consteval.
2280         * testsuite/18_support/comparisons/categories/zero_neg.cc: Prune
2281         excess errors caused by invalid consteval calls.
2283 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2285         * include/bits/chrono_io.h (__units_suffix_misc): Remove.
2286         (__units_suffix): Return a known suffix as string view, do not
2287         write unknown suffixes to a buffer.
2288         (__fmt_units_suffix): New function that formats the suffix using
2289         std::format_to.
2290         (operator<<, __chrono_formatter::_M_q): Use __fmt_units_suffix.
2291         (__chrono_formatter::_M_Z): Correct lifetime of wstring.
2293 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2295         * include/std/format [_GLIBCXX_USE_WCHAR_T]: Guard all wide
2296         string formatters with this macro.
2297         (__formatter_int::_M_format_int, __formatter_fp::format)
2298         (formatter<const void*, C>::format): Use __to_wstring_numeric
2299         instead of std::ctype::widen.
2300         (__formatter_fp::_M_localize): Use hardcoded wchar_t values
2301         instead of std::ctype::widen.
2302         * testsuite/std/format/functions/format.cc: Add more checks for
2303         wstring formatting of arithmetic types.
2305 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2307         * include/bits/basic_string.h (to_string(floating-point-type)):
2308         Implement using std::to_chars for C++26.
2309         * include/bits/version.def (__cpp_lib_to_string): Define.
2310         * include/bits/version.h: Regenerate.
2311         * testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc:
2312         Adjust expected result in C++26 mode.
2313         * testsuite/21_strings/basic_string/numeric_conversions/char/to_string.cc:
2314         Likewise.
2315         * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/dr1261.cc:
2316         Likewise.
2317         * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring.cc:
2318         Likewise.
2319         * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc:
2320         New test.
2321         * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring_float.cc:
2322         New test.
2323         * testsuite/21_strings/basic_string/numeric_conversions/version.cc:
2324         New test.
2326 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2328         * include/bits/basic_string.h (to_string(integral-type)): Use
2329         resize_and_overwrite when available.
2330         (__to_wstring_numeric): New helper functions.
2331         (to_wstring): Use std::to_string then __to_wstring_numeric.
2332         * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_int.cc:
2333         Remove check for no excess capacity.
2335 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2337         * include/bits/basic_string.h (__resize_and_overwrite): New
2338         function.
2339         * include/bits/basic_string.tcc (__resize_and_overwrite): New
2340         function.
2341         (resize_and_overwrite): Simplify by using reserve instead of
2342         growing the string manually. Adjust for C++11 compatibility.
2343         * include/bits/cow_string.h (resize_and_overwrite): New
2344         function.
2345         (__resize_and_overwrite): New function.
2346         * include/bits/version.def (__cpp_lib_string_resize_and_overwrite):
2347         Do not depend on cxx11abi.
2348         * include/bits/version.h: Regenerate.
2349         * include/std/format (__formatter_fp::_S_resize_and_overwrite):
2350         Remove.
2351         (__formatter_fp::format, __formatter_fp::_M_localize): Use
2352         __resize_and_overwrite instead of _S_resize_and_overwrite.
2353         * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
2354         Adjust for C++11 compatibility when included by ...
2355         * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite_ext.cc:
2356         New test.
2358 2023-08-17  Patrick Palka  <ppalka@redhat.com>
2360         * include/bits/regex.h (regex_iterator::iterator_concept):
2361         Define for C++20 as per P2770R0.
2362         (regex_token_iterator::iterator_concept): Likewise.
2363         * include/std/ranges (__detail::__as_lvalue): Define.
2364         (join_view::_Iterator): Befriend join_view.
2365         (join_view::_Iterator::_M_satisfy): Use _M_get_outer
2366         instead of _M_outer.
2367         (join_view::_Iterator::_M_get_outer): Define.
2368         (join_view::_Iterator::_Iterator): Split constructor taking
2369         _Parent argument into two as per P2770R0.  Remove constraint on
2370         default constructor.
2371         (join_view::_Iterator::_M_outer): Make this data member present
2372         only when the underlying range is forward.
2373         (join_view::_Iterator::operator++): Use _M_get_outer instead of
2374         _M_outer.
2375         (join_view::_Iterator::operator--): Use __as_lvalue helper.
2376         (join_view::_Iterator::operator==): Adjust constraints as per
2377         P2770R0.
2378         (join_view::_Sentinel::__equal): Use _M_get_outer instead of
2379         _M_outer.
2380         (join_view::_M_outer): New data member when the underlying range
2381         is non-forward.
2382         (join_view::begin): Adjust definition as per P2770R0.
2383         (join_view::end): Likewise.
2384         (join_with_view::_M_outer_it): New data member when the
2385         underlying range is non-forward.
2386         (join_with_view::begin): Adjust definition as per P2770R0.
2387         (join_with_view::end): Likewise.
2388         (join_with_view::_Iterator::_M_outer_it): Make this data member
2389         present only when the underlying range is forward.
2390         (join_with_view::_Iterator::_M_get_outer): Define.
2391         (join_with_view::_Iterator::_Iterator): Split constructor
2392         taking _Parent argument into two as per P2770R0.  Remove
2393         constraint on default constructor.
2394         (join_with_view::_Iterator::_M_update_inner): Adjust definition
2395         as per P2770R0.
2396         (join_with_view::_Iterator::_M_get_inner): Likewise.
2397         (join_with_view::_Iterator::_M_satisfy): Adjust calls to
2398         _M_get_inner.  Use _M_get_outer instead of _M_outer_it.
2399         (join_with_view::_Iterator::operator==): Adjust constraints
2400         as per P2770R0.
2401         (join_with_view::_Sentinel::operator==): Use _M_get_outer
2402         instead of _M_outer_it.
2403         * testsuite/std/ranges/adaptors/p2770r0.cc: New test.
2405 2023-08-17  Patrick Palka  <ppalka@redhat.com>
2407         PR libstdc++/108827
2408         * include/std/ranges (__adaptor::_RangeAdaptorClosure):
2409         Convert into a CRTP class template.  Move hidden operator|
2410         friends into namespace scope and adjust their constraints.
2411         (__closure::__is_range_adaptor_closure_fn): Define.
2412         (__closure::__is_range_adaptor_closure): Define.
2413         (__adaptor::_Partial): Adjust use of _RangeAdaptorClosure.
2414         (__adaptor::_Pipe): Likewise.
2415         (views::_All): Likewise.
2416         (views::_Join): Likewise.
2417         (views::_Common): Likewise.
2418         (views::_Reverse): Likewise.
2419         (views::_Elements): Likewise.
2420         (views::_Adjacent): Likewise.
2421         (views::_AsRvalue): Likewise.
2422         (views::_Enumerate): Likewise.
2423         (views::_AsConst): Likewise.
2424         * testsuite/std/ranges/adaptors/all.cc: Reinstate assertion
2425         expecting that adding empty range adaptor closure objects to a
2426         pipeline doesn't increase the size of a pipeline.
2428 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2430         * include/std/format (__format::_Pres_type): Add _Pres_F.
2431         (__formatter_fp::parse): Use _Pres_F for 'F'.
2432         (__formatter_fp::format): Set __upper for _Pres_F.
2433         * testsuite/std/format/functions/format.cc: Check formatting of
2434         infinity and NaN for each presentation type.
2436 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2438         * include/Makefile.in: Regenerate.
2440 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2442         * testsuite/24_iterators/move_iterator/p2520r0.cc: Add no_pch.
2443         * testsuite/std/format/functions/format.cc: Likewise.
2444         * testsuite/std/format/functions/format_c++23.cc: Likewise.
2446 2023-08-17  Jonathan Wakely  <jwakely@redhat.com>
2448         * testsuite/lib/dg-options.exp (add_options_for_no_pch): Remove
2449         any "-include bits/stdc++.h" from options and add the macro to
2450         the existing options instead of replacing them.
2452 2023-08-16  Jonathan Wakely  <jwakely@redhat.com>
2454         * include/bits/basic_string.tcc (resize_and_overwrite): Invoke
2455         the callable with the same size as resize_and_overwrite was
2456         called with.
2457         * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
2458         Check with small values for the new size.
2459         * testsuite/std/format/functions/format.cc: Check wide
2460         formatting of double values that produce small strings.
2461         * testsuite/std/format/functions/format_c++23.cc: New test.
2463 2023-08-16  Jonathan Wakely  <jwakely@redhat.com>
2465         * include/bits/version.def (stds): Update value for C++23.
2466         * include/bits/version.h: Regenerate.
2468 2023-08-16  Jonathan Wakely  <jwakely@redhat.com>
2470         * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
2471         Fix name of upstream file this was derived from.
2472         * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
2473         Likewise.
2474         * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
2475         Likewise.
2476         * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
2477         Likewise.
2478         * testsuite/25_algorithms/pstl/alg_sorting/set_util.h: Likewise.
2480 2023-08-16  Arsen Arsenović  <arsen@aarsen.me>
2482         * libsupc++/typeinfo: Switch to bits/version.h for
2483         __cpp_lib_constexpr_typeinfo.
2484         * libsupc++/new: Switch to bits/version.h for
2485         __cpp_lib_{launder,hardware_interference_size,destroying_delete}.
2486         (launder): Guard behind __cpp_lib_launder.
2487         (hardware_destructive_interference_size)
2488         (hardware_constructive_interference_size): Guard behind
2489         __cpp_lib_hardware_interference_size.
2490         * libsupc++/exception: Switch to bits/version.h for
2491         __cpp_lib_uncaught_exceptions.
2492         (uncaught_exceptions): Guard behind __cpp_lib_uncaught_exceptions.
2493         * libsupc++/compare: Switch to bits/version.h for
2494         __cpp_lib_three_way_comparison.
2495         (three_way_comparable, three_way_comparable_with)
2496         (compare_three_way, weak_order, strong_order, partial_order):
2497         Guard behind __cpp_lib_three_way_comparison >= 201907L.
2498         * include/std/chrono: Drop __cpp_lib_chrono definition.
2499         * include/std/vector: Switch to bits/version.h for
2500         __cpp_lib_erase_if.
2501         (erase, erase_if): Guard behind __cpp_lib_erase_if.
2502         * include/std/variant: Switch to bits/version.h for
2503         __cpp_lib_variant.  Guard whole header behind that FTM.
2504         * include/std/utility: Switch to bits/version.h for
2505         __cpp_lib_{exchange_function,constexpr_algorithms,as_const},
2506         __cpp_lib_{integer_comparison_functions,to_underlying}, and
2507         __cpp_lib_unreachable.
2508         (exchange): Guard behind __cpp_lib_exchange_function.
2509         (cmp_equal, cmp_not_equal, cmp_less, cmp_greater, cmp_less_equal)
2510         (cmp_greater_equal, in_range): Guard behind
2511         __cpp_lib_integer_comparison_functions.
2512         (to_underlying): Guard behind __cpp_lib_to_underlying.
2513         (unreachable): Guard behind __cpp_lib_unreachable.
2514         * include/std/type_traits: Switch to bits/version.h for
2515         __cpp_lib_is_{null_pointer,final,nothrow_convertible,aggregate},
2516         __cpp_lib_is_{constant_evaluated,invocable,layout_compatible},
2517         __cpp_lib_is_{pointer_interconvertible,scoped_enum,swappable},
2518         __cpp_lib_{logical_traits,reference_from_temporary,remove_cvref},
2519         __cpp_lib_{result_of_sfinae,transformation_trait_aliases},
2520         __cpp_lib_{type_identity,type_trait_variable_templates},
2521         __cpp_lib_{unwrap_ref,void_t,integral_constant_callable},
2522         __cpp_lib_{bool_constant,bounded_array_traits}, and
2523         __cpp_lib_has_unique_object_representations.
2524         (integral_constant::operator()): Guard behind
2525         __cpp_lib_integral_constant_callable.
2526         (bool_constant): Guard behind __cpp_lib_bool_constant.
2527         (conjunction, disjunction, negation, conjunction_v, disjunction_v)
2528         (negation_v): Guard behind __cpp_lib_logical_traits.
2529         (is_null_pointer): Guard behind __cpp_lib_is_null_pointer.
2530         (is_final): Guard behind __cpp_lib_is_final.
2531         (is_nothrow_convertible, is_nothrow_convertible_v): Guard behind
2532         __cpp_lib_is_nothrow_convertible.
2533         (remove_const_t, remove_volatile_t, remove_cv_t)
2534         (add_const_t, add_volatile_t, add_cv_t): Guard behind
2535         __cpp_lib_transformation_trait_aliases.
2536         (void_t): Guard behind __cpp_lib_void_t.
2537         (is_swappable_with_v, is_nothrow_swappable_with_v)
2538         (is_swappable_with, is_nothrow_swappable_with): Guard behind
2539         __cpp_lib_is_swappable.
2540         (is_nothrow_invocable_r, is_invocable_r, invoke_result)
2541         (is_invocable, invoke_result_t): Guard behind
2542         __cpp_lib_is_invocable.
2543         (alignment_of_v, extent_v, has_virtual_destructor_v)
2544         (is_abstract_v, is_arithmetic_v, is_array_v)
2545         (is_assignable_v, is_base_of_v, is_class_v, is_compound_v)
2546         (is_constructible_v, is_const_v, is_convertible_v)
2547         (is_copy_assignable_v, is_copy_constructible_v)
2548         (is_default_constructible_v, is_destructible_v)
2549         (is_empty_v, is_enum_v, is_final_v, is_floating_point_v)
2550         (is_function_v, is_fundamental_v, is_integral_v)
2551         (is_invocable_r_v, is_invocable_v, is_literal_type_v)
2552         (is_lvalue_reference_v, is_member_function_pointer_v)
2553         (is_member_object_pointer_v, is_member_pointer_v)
2554         (is_move_assignable_v, is_move_constructible_v)
2555         (is_nothrow_assignable_v, is_nothrow_constructible_v)
2556         (is_nothrow_copy_assignable_v, is_nothrow_copy_constructible_v)
2557         (is_nothrow_default_constructible_v, is_nothrow_destructible_v)
2558         (is_nothrow_invocable_r_v, is_nothrow_invocable_v)
2559         (is_nothrow_move_assignable_v, is_nothrow_move_constructible_v)
2560         (is_null_pointer_v, is_object_v, is_pod_v, is_pointer_v)
2561         (is_polymorphic_v, is_reference_v, is_rvalue_reference_v)
2562         (is_same_v, is_scalar_v, is_signed_v, is_standard_layout_v)
2563         (is_trivially_assignable_v, is_trivially_constructible_v)
2564         (is_trivially_copyable_v, is_trivially_copy_assignable_v)
2565         (is_trivially_copy_constructible_v)
2566         (is_trivially_default_constructible_v)
2567         (is_trivially_destructible_v, is_trivially_move_assignable_v)
2568         (is_trivially_move_constructible_v, is_trivial_v, is_union_v)
2569         (is_unsigned_v, is_void_v, is_volatile_v, rank_v, as variadic):
2570         Guard behind __cpp_lib_type_trait_variable_templates.
2571         (has_unique_object_representations)
2572         (has_unique_object_representations_v): Guard behind
2573         __cpp_lib_has_unique_object_representation.
2574         (is_aggregate): Guard behind __cpp_lib_is_aggregate.
2575         (remove_cvref, remove_cvref_t): Guard behind
2576         __cpp_lib_remove_cvref.
2577         (type_identity, type_identity_t): Guard behind
2578         __cpp_lib_type_identity.
2579         (unwrap_reference, unwrap_reference_t, unwrap_ref_decay)
2580         (unwrap_ref_decay_t): Guard behind __cpp_lib_unwrap_ref.
2581         (is_bounded_array_v, is_unbounded_array_v, is_bounded_array)
2582         (is_unbounded_array): Guard behind __cpp_lib_bounded_array_traits.
2583         (is_scoped_enum, is_scoped_enum_v): Guard behind
2584         __cpp_lib_is_scoped_enum.
2585         (reference_constructs_from_temporary)
2586         (reference_constructs_from_temporary_v): Guard behind
2587         __cpp_lib_reference_from_temporary.
2588         * include/std/tuple: Switch to bits/version.h for
2589         __cpp_lib_{constexpr_tuple,tuple_by_type,apply_make_from_tuple}.
2590         (get<T>): Guard behind __cpp_lib_tuple_by_type.
2591         (apply): Guard behind __cpp_lib_apply.
2592         (make_from_tuple): Guard behind __cpp_lib_make_from_tuple.
2593         * include/std/syncstream: Switch to bits/version.h for
2594         __cpp_lib_syncbuf.  Guard header behind that FTM.
2595         * include/std/string_view: Switch to bits/version.h for
2596         __cpp_lib_{string_{view,contains},constexpr_string_view} and
2597         __cpp_lib_starts_ends_with.
2598         (basic_string_view::starts_with, basic_string_view::ends_with):
2599         Guard behind __cpp_lib_starts_ends_with.
2600         [C++23 && _GLIBCXX_HOSTED && !defined(__cpp_lib_string_contains)]:
2601         Assert as impossible ithout a bug in C++23.
2602         * include/std/string: Switch to bits/version.h for
2603         __cpp_lib_erase_if.
2604         (erase, erase_if): Guard behind __cpp_lib_erase_if.
2605         * include/std/thread: Switch to bits/version.h for
2606         __cpp_lib_jthread.
2607         * include/std/stop_token: Switch to bits/version.h for
2608         __cpp_lib_jthread.
2609         * include/std/spanstream: Switch to bits/version.h for
2610         __cpp_lib_spanstream.  Guard header behind that FTM.
2611         * include/std/span: Switch to bits/version.h for __cpp_lib_span.
2612         Guard header behind that FTM.
2613         * include/std/source_location: Switch to bits/version.h for
2614         __cpp_lib_source_location.  Guard header with that FTM.
2615         * include/std/shared_mutex: Switch to bits/version.h for
2616         __cpp_lib_shared{,_timed}_mutex.
2617         (shared_mutex): Guard behind __cpp_lib_shared_mutex.
2618         * include/std/semaphore: Switch to bits/version.h for
2619         __cpp_lib_semaphore.  Guard header behind that FTM.
2620         * include/std/ranges: Switch to bits/version.h for
2621         __cpp_lib_ranges_{zip,chunk{,_by},slide,join_with},
2622         __cpp_lib_ranges_{repeat_stride,cartesian_product,as_rvalue},
2623         and __cpp_lib_ranges_{as_const,enumerate,iota}.
2624         (ranges::zip et al, ranges::chunk et al, ranges::slide et al)
2625         (ranges::chunk_by et al, ranges::join_with et al)
2626         (ranges::stride et al, ranges::cartesian_product et al)
2627         (ranges::as_rvalue et al, ranges::as_const et al)
2628         (ranges::enumerate et al): Guard behind appropriate FTM.
2629         * include/std/optional: Switch to bits/version.h for
2630         __cpp_lib_optional.  Guard header behind that FTM.
2631         * include/std/numeric: Switch to bits/version.h for
2632         __cpp_lib_{gcd{,_lcm},lcm,constexpr_numeric,interpolate}
2633         and __cpp_lib_parallel_algorithm.
2634         (gcd, lcm): Guard behind __cpp_lib_gcd_lcm.
2635         (midpoint): Guard behind __cpp_lib_interpolate.
2636         * include/std/numbers: Switch to bits/version.h for
2637         __cpp_lib_math_constants.  Guard header behind that FTM.
2638         * include/std/mutex: Switch to bits/version.h for
2639         __cpp_lib_scoped_lock.
2640         (scoped_Lock): Guard behind __cpp_lib_scoped_lock.
2641         * include/std/memory_resource: Switch to bits/version.h for
2642         __cpp_lib_{polymorphic_allocator,memory_resource}.
2643         (synchronized_pool_resource): Guard behind
2644         __cpp_lib_memory_resource >= 201603L.
2645         (polymorphic_allocator): Guard behind
2646         __cpp_lib_polymorphic_allocator.
2647         * include/std/memory: Switch to bits/version.h for
2648         __cpp_lib_{parallel_algorithm,atomic_value_initialization}.
2649         * include/std/list: Switch to bits/version.h for
2650         __cpp_lib_erase_if.
2651         (erase, erase_if): Guard behind __cpp_lib_erase_if.
2652         * include/std/latch: Switch to bits/version.h for __cpp_lib_latch.
2653         Guard header behind that FTM.
2654         * include/std/iterator: Switch to bits/version.h for
2655         __cpp_lib_null_iterators.
2656         * include/std/iomanip: Switch to bits/version.h for
2657         __cpp_lib_quoted_string_io.
2658         (quoted): Guard behind __cpp_lib_quoted_string_io.
2659         * include/std/functional: Switch to bits/version.h for
2660         __cpp_lib_{invoke{,_r},constexpr_functional,bind_front} and
2661         __cpp_lib_{not_fn,booyer_moore_searcher}.
2662         (invoke): Guard behind __cpp_lib_invoke.
2663         (invoke_r): Guard behind __cpp_lib_invoke_r.
2664         (bind_front): Guard behind __cpp_lib_bind_front.
2665         (not_fn): Guard behind __cpp_lib_not_fn.
2666         (boyer_moore_searcher, boyer_moore_horspool_searcher): Guard
2667         definition behind __cpp_lib_boyer_moore_searcher.
2668         * include/std/forward_list: Switch to bits/version.h for
2669         __cpp_lib_erase_if.
2670         (erase, erase_if): Guard behind __cpp_lib_erase_if.
2671         * include/std/format: Switch to bits/version.h for
2672         __cpp_lib_format.  Guard header behind that FTM.
2673         * include/std/filesystem: Switch to bits/version.h for
2674         __cpp_lib_filesystem.  Guard header behind that FTM.
2675         * include/std/expected: Switch to bits/version.h for
2676         __cpp_lib_expected.  Guard header behind it.
2677         * include/std/execution: Switch to bits/version.h for
2678         __cpp_lib_{execution,parallel_algorithm}.  Guard header behind
2679         either.
2680         * include/std/deque: Switch to bits/version.h for
2681         __cpp_lib_erase_if.
2682         (erase, erase_if): Guard behind __cpp_lib_erase_if.
2683         * include/std/coroutine: Switch to bits/version.h for
2684         __cpp_lib_coroutine.  Guard header behind that FTM.
2685         * include/std/concepts: Switch to bits/version.h for
2686         __cpp_lib_concepts.  Guard header behind that FTM.
2687         * include/std/complex: Switch to bits/version.h for
2688         __cpp_lib_{complex_udls,constexpr_complex}.
2689         (operator""if, operator""i, operator""il): Guard behind
2690         __cpp_lib_complex_udls.
2691         * include/std/charconv: Swtich to bits/version.h for
2692         __cpp_lib_{to_chars,constexpr_charconv}.
2693         * include/std/bitset: Switch to bits/version.h for
2694         __cpp_lib_constexpr_bitset.
2695         * include/std/bit: Switch to bits/version.h for
2696         __cpp_lib_{bit_cast,byteswap,bitops,int_pow2,endian}.
2697         (bit_cast): Guard behind __cpp_lib_bit_cast.
2698         (byteswap): Guard behind __cpp_lib_byteswap.
2699         (rotl, rotr, countl_zero, countl_one, countr_zero, countr_one)
2700         (popcount): Guard behind __cpp_lib_bitops.
2701         (has_single_bit, bit_ceil, bit_floor, bit_width): Guard behind
2702         __cpp_lib_int_pow2.
2703         (endian): Guard behind __cpp_lib_endian.
2704         * include/std/barrier: Switch to bits/version.h for
2705         __cpp_lib_barrier.  Guard header behind that FTM.
2706         * include/std/atomic: Switch to bits/version.h for
2707         __cpp_lib_atomic_{is_always_lock_free,float,ref}
2708         and __cpp_lib_lock_free_type_aliases.
2709         (*::is_always_lock_free): Guard behind
2710         __cpp_lib_atomic_is_always_lock_free.
2711         (atomic<float>): Guard behind __cpp_lib_atomic_float.
2712         (atomic_ref): Guard behind __cpp_lib_atomic_ref.
2713         (atomic_signed_lock_free, atomic_unsigned_lock_free): Guard behind
2714         __cpp_lib_atomic_lock_free_type_aliases.
2715         * include/std/array: Switch to bits/version.h for
2716         __cpp_lib_to_array.
2717         (to_array): Guard behind __cpp_lib_to_array.
2718         * include/std/any: Switch to bits/version.h for __cpp_lib_any.
2719         Guard header behind that FTM.
2720         * include/std/algorithm: Switch to bits/version.h for
2721         __cpp_lib_parallel_algorithm.
2722         * include/c_global/cstddef: Switch to bits/version.h for
2723         __cpp_lib_byte.
2724         (byte): Guard behind __cpp_lib_byte.
2725         * include/c_global/cmath: Switch to bits/version.h for
2726         __cpp_lib_{hypot,interpolate}.
2727         (hypot3): Guard behind __cpp_lib_hypot.
2728         (lerp): Guard behind __cpp_lib_interpolate.
2729         * include/c_compatibility/stdatomic.h: Switch to
2730         bits/stl_version.h for __cpp_lib_atomic.  Guard header behind that
2731         FTM.
2732         * include/bits/utility.h: Switch to bits/version.h for
2733         __cpp_lib_{tuple_element_t,integer_sequence,ranges_zip}.
2734         (tuple_element_t): Guard behind __cpp_lib_tuple_element_t.
2735         (integer_sequence et al): Guard behind __cpp_lib_integer_sequence.
2736         * include/bits/uses_allocator_args.h: Switch to bits/version.h for
2737         __cpp_lib_make_obj_using_allocator.  Guard header behind that FTM.
2738         * include/bits/unordered_map.h: Switch to bits/version.h for
2739         __cpp_lib_unordered_map_try_emplace.
2740         (try_emplace): Guard behind __cpp_lib_unordered_map_try_emplace.
2741         * include/bits/unique_ptr.h: Switch to bits/version.h for
2742         __cpp_lib_{constexpr_memory,make_unique}.
2743         (make_unique): Guard behind __cpp_lib_make_unique.
2744         * include/bits/stl_vector.h: Switch to bits/version.h for
2745         __cpp_lib_constexpr_vector.
2746         * include/bits/stl_uninitialized.h: Switch to bits/version.h for
2747         __cpp_lib_raw_memory_algorithms.
2748         (uninitialized_default_construct)
2749         (uninitialized_default_construct_n, uninitialized_move)
2750         (uninitialized_move_n, uninitialized_value_construct)
2751         (uninitialized_value_construct_n): Guard behind
2752         __cpp_lib_raw_memory_algorithms.
2753         * include/bits/stl_tree.h: Switch to bits/version.h for
2754         __cpp_lib_generic_associative_lookup.
2755         * include/bits/stl_stack.h: Switch to bits/version.h for
2756         __cpp_lib_adaptor_iterator_pair_constructor.
2757         (stack): Guard iterator-pair constructor behind
2758         __cpp_lib_adaptor_iterator_pair_constructor.
2759         * include/bits/stl_queue.h: Switch to bits/version.h for
2760         __cpp_lib_adaptor_iterator_pair_constructor.
2761         (queue): Guard iterator-pair constructor behind
2762         __cpp_lib_adaptor_iterator_pair_constructor.
2763         * include/bits/stl_pair.h: Switch to bits/version.h for
2764         __cpp_lib_{concepts,tuples_by_type}.
2765         (get): Guard type-getting overloads behind
2766         __cpp_lib_tuples_by_type.
2767         * include/bits/stl_map.h: Switch to bits/version.h for
2768         __cpp_lib_map_try_emplace.
2769         (map<>::try_emplace): Guard behind __cpp_lib_map_try_emplace.
2770         * include/bits/stl_list.h: Switch to bits/version.h for
2771         __cpp_lib_list_remove_return_type.
2772         (__remove_return_type, _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG)
2773         [C++20]: guard behind __cpp_lib_list_remove_return_type instead.
2774         * include/bits/stl_iterator.h: Switch to bits/version.h for
2775         __cpp_lib_{constexpr_iterator,array_constexpr} and
2776         __cpp_lib_{make_reverse_iterator,move_iterator_concept}.
2777         (make_reverse_iterator): Guard behind
2778         __cpp_lib_make_reverse_iterator.
2779         (iterator_concept et al): Guard __cpp_lib_move_iterator_concept
2780         changes behind that FTM.
2781         * include/bits/stl_function.h: Switch to bits/version.h for
2782         __cpp_lib_transparent_operators.
2783         (equal_to, not_equal_to, greater, less, greater_equal)
2784         (less_equal, bit_and, bit_or, bit_xor, bit_not, logical_and)
2785         (logical_or, logical_not, plus, minus, multiplies, divides)
2786         (modulus, negate): Guard '= void' fwdecls behind
2787         __cpp_lib_transparent_operators.
2788         (plus<void>, minus<void>, multiplies<void>, divides<void>)
2789         (modulus<void>, negate<void>, logical_and<void>, logical_or<void>)
2790         (logical_not<void>, bit_and<void>, bit_or<void>, bit_xor<void>)
2791         (equal_to<void>, not_equal_to<void>, greater<void>, less<void>)
2792         (greater_equal<void>, less_equal<void>, bit_not<void>)
2793         (__has_is_transparent): Guard behind
2794         __cpp_lib_transparent_operators.
2795         * include/bits/stl_algobase.h: Switch to bits/version.h for
2796         __cpp_lib_robust_nonmodifying_seq_ops.
2797         (robust equal, mismatch): Guard behind
2798         __cpp_lib_nonmember_container_access.
2799         * include/bits/stl_algo.h: Swtich to bits/version.h for
2800         __cpp_lib_{clamp,sample}.
2801         (clamp): Guard behind __cpp_lib_clamp.
2802         (sample): Guard behind __cpp_lib_sample.
2803         * include/bits/specfun.h: Switch to bits/version.h for
2804         __cpp_lib_math_special_functions and __STDCPP_MATH_SPEC_FUNCS__.
2805         * include/bits/shared_ptr_base.h: Switch to bits/version.h for
2806         __cpp_lib_{smart_ptr_for_overwrite,shared_ptr_arrays}.
2807         (_Sp_overwrite_tag): Guard behind
2808         __cpp_lib_smart_ptr_for_overwrite.
2809         * include/bits/shared_ptr_atomic.h: Switch to bits/version.h for
2810         __cpp_lib_atomic_shared_ptr.
2811         * include/bits/shared_ptr.h: Switch to bits/version.h for
2812         __cpp_lib_{enable_shared_from_this,shared_ptr_weak_type}.
2813         (shared_ptr<T>::weak_type): Guard behind
2814         __cpp_lib_shared_ptr_weak_type.
2815         (enable_shared_from_this<T>::weak_from_this): Guard behind
2816         __cpp_lib_enable_shared_from_this.
2817         * include/bits/ranges_cmp.h: Switch to bits/version.h for
2818         __cpp_lib_ranges.
2819         * include/bits/ranges_algo.h: Switch to bits/version.h for
2820         __cpp_lib_{shift,ranges_{contains,find_last,fold,iota}}.
2821         * include/bits/range_access.h: Switch to bits/version.h for
2822         __cpp_lib_nonmember_container_access
2823         (size, empty, data): Guard behind
2824         __cpp_lib_nonmember_container_access.
2825         (ssize): Guard behind __cpp_lib_ssize.
2826         * include/bits/ptr_traits.h: Switch to bits/version.h. for
2827         __cpp_lib_{constexpr_memory,to_address}.
2828         (to_address): Guard behind __cpp_lib_to_address.
2829         * include/bits/node_handle.h: Switch to bits/version.h for
2830         __cpp_lib_node_extract.  Guard header behind that FTM.
2831         * include/bits/move_only_function.h: Switch to bits/version.h for
2832         __cpp_lib_move_only_function.  Guard header behind that FTM.
2833         * include/bits/move.h: Switch to bits/version.h for
2834         __cpp_lib_addressof_constexpr.
2835         * include/bits/ios_base.h: Switch to bits/version.h for
2836         __cpp_lib_ios_noreplace.
2837         (noreplace): Guard with __cpp_lib_ios_noreplace.
2838         * include/bits/hashtable.h: Switch to bits/version.h for
2839         __cpp_lib_generic_unordered_lookup.
2840         (_M_equal_range_tr, _M_count_tr, _M_find_tr): Guard behind
2841         __cpp_lib_generic_unordered_lookup.
2842         * include/bits/forward_list.h: Switch to bits/version.h for
2843         __cpp_lib_list_remove_return_type.
2844         (__remove_return_type): Guard behind
2845         __cpp_lib_list_remove_return_type.
2846         * include/bits/erase_if.h: Switch to bits/version.h for
2847         __cpp_lib_erase_if.
2848         * include/bits/cow_string.h: Switch to bits/version.h for
2849         __cpp_lib_constexpr_string.
2850         * include/bits/chrono.h: Swtich to bits/version.h for
2851         __cpp_lib_chrono{,_udls}.
2852         (ceil): Guard behind __cpp_lib_chrono.
2853         (operator""ns et al): Guard behind __cpp_lib_chrono_udls.
2854         * include/bits/char_traits.h: Switch to bits/version.h for
2855         __cpp_lib_constexpr_char_traits.
2856         * include/bits/basic_string.h: Switch to bits/version.h for
2857         __cpp_lib_{constexpr_string,string_{resize_and_overwrite,udls}}.
2858         (resize_and_overwrite): Guard behind
2859         __cpp_lib_string_resize_and_overwrite.
2860         (operator""s): Guard behind __cpp_lib_string_udls.
2861         * include/bits/atomic_wait.h: Switch to bits/version.h for
2862         __cpp_lib_atomic_wait.  Guard header behind that FTM.
2863         * include/bits/atomic_base.h: Switch to bits/version.h for
2864         __cpp_lib_atomic_value_initialization and
2865         __cpp_lib_atomic_flag_test.
2866         (atomic_flag::test): Guard behind __cpp_lib_atomic_flag_test,
2867         rather than C++20.
2868         * include/bits/allocator.h: Switch to bits/version.h for
2869         __cpp_lib_incomplete_container_elements.
2870         * include/bits/alloc_traits.h: Switch to using bits/version.h for
2871         __cpp_lib_constexpr_dynamic_alloc and
2872         __cpp_lib_allocator_traits_is_always_equal.
2873         * include/bits/align.h: Switch to bits/version.h for defining
2874         __cpp_lib_assume_aligned.
2875         (assume_aligned): Guard with __cpp_lib_assume_aligned.
2876         * include/bits/algorithmfwd.h: Switch to bits/version.h for
2877         defining __cpp_lib_constexpr_algorithms.
2878         * include/std/stacktrace: Switch to bits/version.h for
2879         __cpp_lib_stacktrace.  Guard header behind that FTM.
2880         * testsuite/23_containers/array/tuple_interface/get_neg.cc:
2881         Update line numbers.
2883 2023-08-16  Arsen Arsenović  <arsen@aarsen.me>
2885         * include/Makefile.am (bits_freestanding): Add version.h.
2886         (allcreated): Add version.h.
2887         (${bits_srcdir}/version.h): New rule.  Regenerates
2888         version.h out of version.{def,tpl}.
2889         * include/Makefile.in: Regenerate.
2890         * include/bits/version.def: New file.  Declares a list of
2891         all feature test macros, their values and their preconditions.
2892         * include/bits/version.tpl: New file.  Turns version.def
2893         into a sequence of #if blocks.
2894         * include/bits/version.h: New file.  Generated from
2895         version.def.
2896         * include/std/version: Replace with a __glibcxx_want_all define
2897         and bits/version.h include.
2899 2023-08-14  Paul Dreik  <gccpatches@pauldreik.se>
2901         PR libstdc++/110860
2902         * include/std/format (__formatter_fp::format): Use frexp instead
2903         of log10.
2905 2023-08-12  Ken Matsui  <kmatsui@gcc.gnu.org>
2907         * include/std/type_traits (true_type): Use __bool_constant
2908         instead.
2909         (false_type): Likewise.
2910         (bool_constant): Likewise.
2912 2023-08-11  Jonathan Wakely  <jwakely@redhat.com>
2914         PR libstdc++/110990
2915         * include/std/format (_Seq_sink::get): Only call _M_overflow if
2916         its precondition is met.
2917         (_Iter_sink::_M_finish): Likewise.
2918         (_Iter_sink<C, ContigIter>::_M_overflow): Only switch to the
2919         internal buffer after running out of space.
2920         (_Iter_sink<C, ContigIter>::_M_finish): Do not use _M_overflow.
2921         (_Counting_sink::count): Likewise.
2922         * testsuite/std/format/functions/format_to_n.cc: Check cases
2923         where the output fits into the buffer.
2925 2023-08-11  Jonathan Wakely  <jwakely@redhat.com>
2927         PR libstdc++/104167
2928         * include/bits/chrono_io.h (operator|=, operator|): Add noexcept
2929         to _ChronoParts operators.
2930         (from_stream, parse): Define new functions.
2931         (__detail::_Parse, __detail::_Parser): New class templates.
2932         * include/std/chrono (__cpp_lib_chrono): Define to 201907L for
2933         C++20.
2934         * include/std/version (__cpp_lib_chrono): Likewise.
2935         * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
2936         Adjust expected value of feature test macro.
2937         * testsuite/20_util/duration/io.cc: Test parsing.
2938         * testsuite/std/time/clock/file/io.cc: Likewise.
2939         * testsuite/std/time/clock/gps/io.cc: Likewise.
2940         * testsuite/std/time/clock/system/io.cc: Likewise.
2941         * testsuite/std/time/clock/tai/io.cc: Likewise.
2942         * testsuite/std/time/clock/utc/io.cc: Likewise.
2943         * testsuite/std/time/day/io.cc: Likewise.
2944         * testsuite/std/time/month/io.cc: Likewise.
2945         * testsuite/std/time/month_day/io.cc: Likewise.
2946         * testsuite/std/time/weekday/io.cc: Likewise.
2947         * testsuite/std/time/year/io.cc: Likewise.
2948         * testsuite/std/time/year_month/io.cc: Likewise.
2949         * testsuite/std/time/year_month_day/io.cc: Likewise.
2950         * testsuite/std/time/syn_c++20.cc: Check value of macro and for
2951         the existence of parse and from_stream in namespace chrono.
2952         * testsuite/std/time/clock/local/io.cc: New test.
2953         * testsuite/std/time/parse.cc: New test.
2955 2023-08-11  Jonathan Wakely  <jwakely@redhat.com>
2957         PR libstdc++/110860
2958         * include/std/format (__formatter_fp::format): Do not call log10
2959         with zero values.
2961 2023-08-11  Jonathan Wakely  <jwakely@redhat.com>
2963         * python/libstdcxx/v6/printers.py (StdChronoCalendarPrinter):
2964         Check for out-of-range month an weekday indices.
2965         * testsuite/libstdc++-prettyprinters/chrono.cc: Check invalid
2966         month and weekday values.
2968 2023-08-11  Jonathan Wakely  <jwakely@redhat.com>
2970         * include/bits/stl_iterator.h (__clamped_iter_cat_t): Remove.
2972 2023-08-10  Jonathan Wakely  <jwakely@redhat.com>
2974         PR libstdc++/110974
2975         * include/std/format (_Spec::_S_parse_width_or_precision): Check
2976         for empty range before dereferencing iterator.
2977         * testsuite/std/format/string.cc: Check for expected exception.
2978         Fix expected exception message in test_pr110862() and actually
2979         call it.
2981 2023-08-10  Jonathan Wakely  <jwakely@redhat.com>
2983         PR libstdc++/110968
2984         * include/std/format (__formatter_fp::format): Check return
2985         value of _M_localize.
2986         * testsuite/std/format/functions/format.cc: Check classic
2987         locale.
2989 2023-08-10  Jonathan Wakely  <jwakely@redhat.com>
2991         PR libstdc++/110970
2992         * include/bits/stl_iterator.h (__detail::__move_iter_cat): Use
2993         __iter_category_t.
2994         (iterator_traits<common_iterator<I, S>>::_S_iter_cat): Likewise.
2995         (__detail::__basic_const_iterator_iter_cat): Likewise.
2996         * include/bits/stl_iterator_base_types.h (__iterator_category_t):
2997         Rename to __iter_category_t.
2999 2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
3001         * include/bits/chrono.h (duration_cast): Do not use braces
3002         around statements for C++11 constexpr rules.
3003         * include/bits/stl_algobase.h (__lg): Rewrite as a single
3004         statement for C++11 constexpr rules.
3005         * include/experimental/bits/fs_path.h (path::string): Use
3006         _GLIBCXX17_CONSTEXPR not _GLIBCXX_CONSTEXPR for 'if constexpr'.
3007         * include/std/charconv (__to_chars_8): Initialize variable for
3008         C++17 constexpr rules.
3010 2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
3012         * include/bits/list.tcc (list::sort(Cmp)): Fix -Wsign-compare
3013         warning for loop condition.
3015 2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
3017         * include/std/complex: Add diagnostic pragma for clang.
3019 2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
3021         * include/bits/shared_ptr_atomic.h (atomic): Change class-head
3022         to struct.
3023         * include/bits/stl_tree.h (_Rb_tree_merge_helper): Change
3024         class-head to struct in friend declaration.
3025         * include/std/chrono (tzdb_list::_Node): Likewise.
3026         * include/std/future (_Task_state_base, _Task_state): Likewise.
3027         * include/std/scoped_allocator (__inner_type_impl): Likewise.
3028         * include/std/valarray (_BinClos, _SClos, _GClos, _IClos)
3029         (_ValFunClos, _RefFunClos): Change class-head to struct.
3031 2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
3033         * include/bits/alloc_traits.h (allocate): Add [[maybe_unused]]
3034         attribute.
3035         * include/bits/regex_executor.tcc: Remove name of unused
3036         parameter.
3037         * include/bits/shared_ptr_atomic.h (atomic_is_lock_free):
3038         Likewise.
3039         * include/bits/stl_uninitialized.h: Likewise.
3040         * include/bits/streambuf_iterator.h (operator==): Likewise.
3041         * include/bits/uses_allocator.h: Likewise.
3042         * include/c_global/cmath (isfinite, isinf, isnan): Likewise.
3043         * include/std/chrono (zoned_time): Likewise.
3044         * include/std/future (__future_base::_S_allocate_result):
3045         Likewise.
3046         (packaged_task): Likewise.
3047         * include/std/optional (_Optional_payload_base): Likewise.
3048         * include/std/scoped_allocator (__inner_type_impl): Likewise.
3049         * include/std/tuple (_Tuple_impl): Likewise.
3051 2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
3053         * include/bits/new_allocator.h (__new_allocator): Define copy
3054         assignment operator as defaulted.
3055         * include/std/complex (complex<float>, complex<double>)
3056         (complex<long double>): Define copy constructor as defaulted.
3058 2023-08-09  Jonathan Wakely  <jwakely@redhat.com>
3060         * include/std/format: Fix some warnings.
3061         (__format::__write(Ctx&, basic_string_view<CharT>)): Remove
3062         unused function template.
3064 2023-08-07  Jonathan Wakely  <jwakely@redhat.com>
3066         PR libstdc++/110860
3067         * include/std/format (__formatter_fp::format): Do not use
3068         __builtin_abs and __builtin_log10 with arbitrary floating-point
3069         types.
3071 2023-08-07  Jonathan Wakely  <jwakely@redhat.com>
3073         PR libstdc++/110917
3074         * include/std/format (__format::_Iter_sink<CharT, OutIter>):
3075         Constrain partial specialization for contiguous iterators to
3076         require the value type to be CharT.
3077         * testsuite/std/format/functions/format_to.cc: New test.
3079 2023-08-07  Jonathan Wakely  <jwakely@redhat.com>
3081         PR libstdc++/110862
3082         * include/std/format (_Scanner::_M_on_replacement_field):
3083         Check for expected '}' before incrementing iterator.
3084         * testsuite/std/format/string.cc: Check "{0:{0}" format string.
3086 2023-08-07  Nick Alcock  <nick.alcock@oracle.com>
3088         * configure: Regenerate.
3090 2023-08-07  Alan Modra  <amodra@gmail.com>
3092         * configure: Regenerate.
3094 2023-08-07  Alexander von Gluck IV  <kallisti5@unixzen.com>
3096         * configure: Regenerate.
3098 2023-08-07  Nick Alcock  <nick.alcock@oracle.com>
3100         * configure: Regenerate.
3102 2023-08-07  Nick Alcock  <nick.alcock@oracle.com>
3104         * configure: Regenerate.
3106 2023-08-07  H.J. Lu  <hjl.tools@gmail.com>
3108         * configure: Regenerate.
3110 2023-08-07  H.J. Lu  <hjl.tools@gmail.com>
3112         * configure: Regenerate.
3114 2023-08-06  François Dumont  <fdumont@gcc.gnu.org>
3116         * config/abi/pre/gnu-versioned-namespace.ver: Add __cxa_call_terminate
3117         symbol export.
3119 2023-07-30  François Dumont  <fdumont@gcc.gnu.org>
3121         * src/c++11/compatibility-ldbl-facets-aliases.h: Replace #define with
3122         proper #error.
3123         * src/c++11/locale-inst-monetary.h: Likewise.
3124         * src/c++11/locale-inst-numeric.h: Likewise.
3126 2023-07-27  Jonathan Wakely  <jwakely@redhat.com>
3128         PR libstdc++/108046
3129         * include/std/format (__formatter_fp::format): Ensure __expc is
3130         always set for all presentation types. Set __z correctly for
3131         zero precision.
3132         * testsuite/std/format/functions/format.cc: Check problem cases.
3134 2023-07-26  Jonathan Wakely  <jwakely@redhat.com>
3136         PR libstdc++/110807
3137         * testsuite/23_containers/vector/bool/110807.cc: Require c++11.
3139 2023-07-26  Jonathan Wakely  <jwakely@redhat.com>
3141         PR libstdc++/110807
3142         * include/bits/stl_bvector.h (vector(const vector&)): Access
3143         iterators before allocating.
3144         * include/bits/vector.tcc (vector<bool>::_M_insert_range):
3145         Likewise.
3146         * testsuite/23_containers/vector/bool/110807.cc: New test.
3148 2023-07-26  Jonathan Wakely  <jwakely@redhat.com>
3150         * include/bits/algorithmfwd.h (random_shuffle): Add deprecated
3151         attribute.
3152         * include/bits/stl_algo.h (random_shuffle): Correct comments.
3153         * testsuite/25_algorithms/random_shuffle/1.cc: Disable
3154         deprecated warnings.
3155         * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
3156         * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
3157         * testsuite/25_algorithms/random_shuffle/deprecated.cc: New
3158         test.
3160 2023-07-26  Nathaniel Shead  <nathanieloshead@gmail.com>
3162         * testsuite/25_algorithms/equal/constexpr_neg.cc: Update diagnostic
3163         locations.
3164         * testsuite/26_numerics/gcd/105844.cc: Likewise.
3165         * testsuite/26_numerics/lcm/105844.cc: Likewise.
3167 2023-07-24  Deev Patel  <pateldeev@nevada.unr.edu>
3169         * include/std/format (_Formatting_scanner::_M_on_chars): Add
3170         missing constexpr specifier.
3171         (_Formatting_scanner::_M_format_arg): Likewise.
3173 2023-07-24  Jonathan Wakely  <jwakely@redhat.com>
3175         PR libstdc++/110653
3176         * include/bits/basic_string.h [!HAVE_STOF] (stof): Do not
3177         throw an exception for zero result.
3178         [HAVE_BROKEN_STRTOLD] (stold): Do not use strtold.
3180 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
3182         PR libstdc++/110077
3183         * src/c++17/floating_from_chars.cc (from_chars): Only define
3184         _Float128 overload when using __strfromf128.
3186 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
3188         PR libstdc++/110593
3189         * include/bits/chrono.h (duration): Improve static assert
3190         messages.
3191         (__is_ratio): Move to ...
3192         * include/std/ratio (__is_ratio): ... here.
3193         (__is_ratio_v): New variable template and partial
3194         specialization.
3195         (__are_both_ratios): New function template.
3196         (__ratio_multiply, ratio_equal, ratio_less, __ratio_add):
3197         Add static assertion.
3198         * testsuite/20_util/ratio/requirements/type_constraints.cc:
3199         New test.
3200         * testsuite/20_util/duration/requirements/typedefs_neg1.cc:
3201         Adjust expected error.
3202         * testsuite/20_util/duration/requirements/typedefs_neg2.cc:
3203         Likewise.
3205 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
3207         * include/bits/chrono_io.h (__formatter_chrono::_M_format):
3208         Do not set __is_neg for hh_mm_ss before calling
3209         _M_format_to_ostream. Change __print_sign lambda to only check
3210         __is_neg for durations and hh_mm_ss types.
3211         (__formatter_chrono::_M_format_to_ostream): Only check __is_neg
3212         for duration types.
3213         * testsuite/std/time/hh_mm_ss/io.cc: Check negative values.
3215 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
3217         PR libstdc++/110719
3218         * include/bits/chrono_io.h (__formatter_chrono::_S_floor_seconds):
3219         Handle duration and hh_mm_ss.
3220         * testsuite/20_util/duration/io.cc: Check locale-specific
3221         formats.
3222         * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
3224 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
3226         * include/std/format (__write_padded): Initialize first element
3227         of array to avoid a -Wmaybe-uninitialized warning.
3229 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
3231         PR libstdc++/110719
3232         * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Fix
3233         allowed modifiers for %z and %Z. Fix -Wparentheses and
3234         -Wnarrowing warnings.
3235         (__formatter_chrono::_M_format): Call new functions for %d, %e,
3236         %H, %I, %m and %M.
3237         (__formatter_chrono::_M_c): Use _S_floor_seconds to remove
3238         subsecond precision.
3239         (__formatter_chrono::_M_C_y_Y): Use _M_locale_fmt to handle
3240         modifiers.
3241         (__formatter_chrono::_M_e): Replace with _M_d_e and use
3242         _M_locale_fmt.
3243         (__formatter_chrono::_M_I): Replace with _M_H_I and use
3244         _M_locale_fmt.
3245         (__formatter_chrono::_M_m): New function.
3246         (__formatter_chrono::_M_M): New function.
3247         (__formatter_chrono::_M_r): Use _M_locale_fmt.
3248         (__formatter_chrono::_M_S): Likewise.
3249         (__formatter_chrono::_M_u_w): Likewise.
3250         (__formatter_chrono::_M_U_V_W): Likewise.
3251         (__formatter_chrono::_M_X): Use _S_floor_seconds.
3252         (__formatter_chrono::_M_Z): Fix untested branch for wchar_t.
3253         (__formatter_chrono::_S_altnum): Remove function.
3254         (__formatter_chrono::_S_dd_zero_fill): Remove function.
3255         (__formatter_chrono::_S_floor_seconds): New function.
3256         (__formatter_chrono::_M_locale_fmt): New function.
3257         * testsuite/std/time/clock/system/io.cc: Adjust expected output
3258         for locale-specific formats and check modified formats.
3259         * testsuite/std/time/clock/utc/io.cc: Likewise.
3260         * testsuite/std/time/zoned_time/io.cc: New test.
3262 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
3264         PR libstdc++/110708
3265         * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Only
3266         allow a single modifier.
3267         * testsuite/std/time/format.cc: Check multiple modifiers.
3269 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
3271         PR libstdc++/110653
3272         * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
3273         Remove dg-require-string-conversions.
3274         * testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
3275         Likewise.
3276         * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
3277         Likewise.
3278         * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
3279         Likewise.
3280         * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
3281         Likewise.
3283 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
3285         PR libstdc++/110653
3286         * include/bits/basic_string.h [!_GLIBCXX_HAVE_STRTOF] (stof):
3287         Define in terms of std::stod.
3289 2023-07-19  Jonathan Wakely  <jwakely@redhat.com>
3291         PR libstdc++/110653
3292         * include/bits/basic_string.h [_GLIBCXX_HAVE_STRTOF] (stof):
3293         Define.
3294         [_GLIBCXX_HAVE_STRTOLD] (stold): Define.
3295         * include/c_global/cstdlib [_GLIBCXX_HAVE_STRTOF] (strtof):
3296         Declare in namespace std.
3297         [_GLIBCXX_HAVE_STRTOLD] (strtold): Likewise.
3299 2023-07-13  Jonathan Wakely  <jwakely@redhat.com>
3301         PR libstdc++/110653
3302         * include/bits/basic_string.h (stoi, stol, stoul, stod): Do not
3303         depend on _GLIBCXX_USE_C99_STDLIB.
3304         [__LONG_WIDTH__ == __LONG_LONG_WIDTH__] (stoll, stoull): Define
3305         in terms of stol and stoul respectively.
3306         [__DBL_MANT_DIG__ == __LDBL_MANT_DIG__] (stold): Define in terms
3307         of stod.
3309 2023-07-12  Jonathan Wakely  <jwakely@redhat.com>
3311         PR libstdc++/95048
3312         * testsuite/27_io/filesystem/path/construct/95048.cc: Check
3313         conversions to wide strings.
3314         * testsuite/experimental/filesystem/path/construct/95048.cc:
3315         Likewise.
3317 2023-07-12  Jonathan Wakely  <jwakely@redhat.com>
3319         * config/io/basic_file_stdio.cc: Define LFS macros.
3320         (__basic_file<char>::open): Use fopen unconditionally.
3321         (get_file_offset): Use lseek unconditionally.
3322         (__basic_file<char>::seekoff): Likewise.
3323         (__basic_file<char>::showmanyc): Use fstat unconditionally.
3325 2023-07-12  Jonathan Wakely  <jwakely@redhat.com>
3327         PR libstdc++/110574
3328         * acinclude.m4 (GLIBCXX_CHECK_LFS): Check for fseeko and ftello
3329         and define _GLIBCXX_USE_FSEEKO_FTELLO.
3330         * config.h.in: Regenerate.
3331         * configure: Regenerate.
3332         * config/io/basic_file_stdio.cc (xwrite) [_GLIBCXX_USE_STDIO_PURE]:
3333         Check for fwrite error correctly.
3334         (__basic_file<char>::xsgetn) [_GLIBCXX_USE_STDIO_PURE]: Check for
3335         fread error correctly.
3336         (get_file_offset): New function.
3337         (__basic_file<char>::seekoff) [_GLIBCXX_USE_STDIO_PURE]: Use
3338         fseeko if available. Use get_file_offset instead of return value
3339         of fseek.
3340         (__basic_file<char>::showmanyc): Use get_file_offset.
3342 2023-07-12  Ken Matsui  <kmatsui@gcc.gnu.org>
3344         * include/std/type_traits (__make_unsigned_selector): Use
3345         __is_enum built-in trait.
3346         (__make_signed_selector): Likewise.
3347         (__underlying_type_impl): Likewise.
3349 2023-07-06  Tianqiang Shuai  <1101282468@qq.com>
3351         * config/io/basic_file_stdio.cc (xwrite) [USE_STDIO_PURE]: Fix
3352         first argument.
3354 2023-07-06  Jonathan Wakely  <jwakely@redhat.com>
3356         PR libstdc++/110574
3357         * doc/xml/manual/configure.xml: Describe stdio_pure argument to
3358         --enable-cstdio.
3359         * doc/html/manual/configure.html: Regenerate.
3361 2023-07-05  Thomas Rodgers  <trodgers@redhat.com>
3363         * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Delete
3364         file.
3365         * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
3366         New file.
3367         * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
3368         Likewise.
3369         * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
3370         Likewise.
3371         * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
3372         Likewise.
3373         * testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
3374         Likewise.
3376 2023-07-05  Jonathan Wakely  <jwakely@redhat.com>
3378         * testsuite/23_containers/forward_list/debug/iterator1_neg.cc:
3379         Skip as UNSUPPORTED for C++98 mode.
3380         * testsuite/23_containers/forward_list/debug/iterator3_neg.cc:
3381         Likewise.
3383 2023-07-05  Jonathan Wakely  <jwakely@redhat.com>
3385         PR libstdc++/110542
3386         * include/bits/stl_uninitialized.h (__uninitialized_default_n):
3387         Do not use std::fill_n during constant evaluation.
3389 2023-07-05  Jonathan Wakely  <jwakely@redhat.com>
3391         * include/bits/vector.tcc (_M_default_append): Replace try-block
3392         with RAII types.
3394 2023-07-05  Jonathan Wakely  <jwakely@redhat.com>
3396         * include/bits/iterator_concepts.h (projected): Add typename.
3398 2023-07-03  Jonathan Wakely  <jwakely@redhat.com>
3400         * testsuite/27_io/headers/iosfwd/synopsis.cc: Make wsyncbuf and
3401         wosyncstream depend on _GLIBCXX_USE_CXX11_ABI.
3403 2023-07-03  Jonathan Wakely  <jwakely@redhat.com>
3405         * include/pstl/pstl_config.h (_PSTL_PRAGMA_SIMD_SCAN,
3406         _PSTL_PRAGMA_SIMD_INCLUSIVE_SCAN, _PSTL_PRAGMA_SIMD_EXCLUSIVE_SCAN):
3407         Define to OpenMP 5.0 pragmas even for GCC 10.0+.
3408         (_PSTL_UDS_PRESENT): Define to 1 for GCC 10.0+.
3410 2023-07-03  Jonathan Wakely  <jwakely@redhat.com>
3412         * include/bits/alloc_traits.h (_Destroy): Qualify call.
3413         * include/bits/stl_construct.h (_Destroy, _Destroy_n): Likewise.
3414         * testsuite/23_containers/vector/cons/destroy-adl.cc: New test.
3416 2023-07-03  Iain Sandoe  <iain@sandoe.co.uk>
3418         * testsuite/lib/libstdc++.exp: Remove additional flag handled
3419         by Darwin specs.
3421 2023-06-30  Jonathan Wakely  <jwakely@redhat.com>
3423         PR libstdc++/110432
3424         * acinclude.m4 (GLIBCXX_CHECK_INIT_PRIORITY): New.
3425         * config.h.in: Regenerate.
3426         * configure: Regenerate.
3427         * configure.ac: Use GLIBCXX_CHECK_INIT_PRIORITY.
3428         * include/std/iostream: Use new autoconf macro as well as
3429         __has_attribute.
3430         * src/c++98/ios_base_init.h: Use new autoconf macro instead of
3431         __has_attribute.
3433 2023-06-30  Jonathan Wakely  <jwakely@redhat.com>
3435         * src/c++11/random.cc (random_device::_M_init): Add maybe_unused
3436         attribute.
3438 2023-06-30  Jonathan Wakely  <jwakely@redhat.com>
3440         PR libstdc++/105081
3441         * src/c++11/random.cc (random_device::_M_init): Throw
3442         std::system_error when the requested device is a valid token but
3443         not available at runtime.
3445 2023-06-30  Hans-Peter Nilsson  <hp@axis.com>
3447         PR libstdc++/108672
3448         * include/pstl/unseq_backend_simd.h (__simd_or): Re-apply using
3449         __INT32_TYPE__ instead of int32_t.
3451 2023-06-29  Jonathan Wakely  <jwakely@redhat.com>
3453         * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define consistently
3454         with USE_ATOMIC_LIST_HEAD.
3455         (list_mutex): Replace global object with function. Use local
3456         static object when std::mutex constructor isn't constexpr.
3458 2023-06-29  Jonathan Wakely  <jwakely@redhat.com>
3460         PR libstdc++/110462
3461         * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check that
3462         copy_file_range can be called with loff_t* arguments.
3463         * configure: Regenerate.
3464         * src/filesystem/ops-common.h (copy_file_copy_file_range):
3465         Use loff_t for offsets.
3467 2023-06-29  Tom Tromey  <tromey@adacore.com>
3469         * testsuite/lib/gdb-test.exp (gdb-test): Relax type-printer
3470         regexp.
3472 2023-06-28  Jan Hubicka  <jh@suse.cz>
3474         PR middle-end/109849
3475         * include/bits/c++config (std::__terminate): Mark cold.
3476         * include/bits/functexcept.h: Mark everything as cold.
3477         * libsupc++/exception: Mark terminate and unexpected as cold.
3479 2023-06-26  Thomas Rodgers  <trodgers@redhat.com>
3481         * include/pstl/algorithm_fwd.h: Synchronize with upstream.
3482         * include/pstl/algorithm_impl.h: Likewise.
3483         * include/pstl/execution_defs.h: Likewise.
3484         * include/pstl/execution_impl.h: Likewise.
3485         * include/pstl/glue_algorithm_impl.h: Likewise.
3486         * include/pstl/glue_execution_defs.h: Likewise.
3487         * include/pstl/glue_memory_impl.h: Likewise.
3488         * include/pstl/glue_numeric_impl.h: Likewise.
3489         * include/pstl/memory_impl.h: Likewise.
3490         * include/pstl/numeric_fwd.h: Likewise.
3491         * include/pstl/numeric_impl.h: Likewise.
3492         * include/pstl/parallel_backend.h: Likewise.
3493         * include/pstl/parallel_backend_serial.h: Likewise.
3494         * include/pstl/parallel_backend_tbb.h: Likewise.
3495         * include/pstl/parallel_impl.h: Likewise.
3496         * include/pstl/pstl_config.h: Likewise.
3497         * include/pstl/unseq_backend_simd.h: Likewise.
3498         * include/pstl/utils.h: Likewise.
3499         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
3500         Likewise.
3501         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
3502         Likewise.
3503         * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
3504         Likewise.
3505         * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
3506         Likewise.
3507         * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
3508         * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
3509         Likewise.
3510         * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
3511         Likewise.
3512         * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
3513         Likewise.
3514         * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
3515         Likewise.
3516         * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
3517         Likewise.
3518         * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
3519         Likewise.
3520         * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
3521         Likewise.
3522         * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
3523         Likewise.
3524         * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
3525         Likewise.
3526         * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
3527         Likewise.
3528         * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
3529         Likewise.
3530         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
3531         Likewise.
3532         * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
3533         Likewise.
3534         * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
3535         Likewise.
3536         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
3537         Likewise.
3538         * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
3539         Likewise.
3540         * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
3541         Likewise.
3542         * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
3543         Likewise.
3544         * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
3545         Likewise.
3546         * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
3547         Likewise.
3548         * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
3549         Likewise.
3550         * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
3551         Likewise.
3552         * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
3553         Likewise.
3554         * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
3555         Likewise.
3556         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
3557         Likewise.
3558         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
3559         Likewise.
3560         * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
3561         Likewise.
3562         * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
3563         Likewise.
3564         * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
3565         Likewise.
3566         * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
3567         Likewise.
3568         * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
3569         Likewise.
3570         * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
3571         Likewise.
3572         * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
3573         Likewise.
3574         * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
3575         Likewise.
3576         * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
3577         Likewise.
3578         * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc:
3579         Likewise.
3580         * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
3581         Likewise.
3582         * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
3583         Likewise.
3584         * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
3585         Likewise.
3586         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
3587         Likewise.
3588         * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
3589         Likewise.
3590         * testsuite/25_algorithms/pstl/alg_sorting/set.cc:
3591         Likewise.
3592         * testsuite/25_algorithms/pstl/alg_sorting/sort.cc:
3593         Likewise.
3594         * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
3595         Likewise.
3596         * testsuite/26_numerics/pstl/numeric_ops/reduce.cc:
3597         Likewise.
3598         * testsuite/26_numerics/pstl/numeric_ops/scan.cc:
3599         Likewise.
3600         * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
3601         Likewise.
3602         * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
3603         Likewise.
3604         * testsuite/util/pstl/test_utils.h:
3605         Likewise.
3607 2023-06-26  Jonathan Wakely  <jwakely@redhat.com>
3609         PR libstdc++/110239
3610         * include/std/format (__format::__parse_integer): Fix buffer
3611         overflow for wide chars.
3612         (formatter<const void*, C>::format): Cast to uintptr_t instead
3613         of uint64_t.
3614         * testsuite/std/format/string.cc: Test too-large widths.
3616 2023-06-26  Jonathan Wakely  <jwakely@redhat.com>
3618         * include/bits/iterator_concepts.h (projected): Replace class
3619         template with alias template denoting an ADL-proofed helper.
3620         (incremental_traits<projected<Iter, Proj>>): Remove.
3621         * testsuite/24_iterators/indirect_callable/projected-adl.cc:
3622         New test.
3624 2023-06-26  Jonathan Wakely  <jwakely@redhat.com>
3626         * include/debug/helper_functions.h (__get_distance)
3627         (__check_singular, __valid_range_aux, __valid_range): Qualify
3628         calls to disable ADL.
3629         (__check_singular_aux(const _Safe_iterator_base*)): Declare
3630         overload that was previously found via ADL.
3632 2023-06-23  Jonathan Wakely  <jwakely@redhat.com>
3634         * include/bits/vector.tcc (_M_realloc_insert): Replace try-block
3635         with RAII types.
3637 2023-06-20  Jonathan Wakely  <jwakely@redhat.com>
3639         * include/std/array (to_array(T(&)[N])): Remove redundant
3640         condition.
3641         (to_array(T(&&)[N])): Remove redundant std::move.
3643 2023-06-16  Alexandre Oliva  <oliva@adacore.com>
3645         * testsuite/20_util/from_chars/4.cc: Skip long double on
3646         aarch64-rtems.
3648 2023-06-16  Joel Brobecker  <brobecker@adacore.com>
3650         * configure.ac ["x${with_newlib}" = "xyes"]: Define
3651         HAVE_HYPOTF.  Add compile-checks for various long double
3652         math functions as well.
3653         * configure: Regenerate.
3655 2023-06-14  Jonny Grant  <jg@jguk.org>
3657         * doc/xml/manual/extensions.xml: Remove demangle exception
3658         description and include.
3659         * doc/html/manual/ext_demangling.html: Regenerate.
3661 2023-06-10  Hans-Peter Nilsson  <hp@axis.com>
3663         * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc (main)
3664         [! SIMULATOR_TEST]: Also exclude running test05.
3665         * testsuite/27_io/basic_istream/ignore/char/94749.cc: Ditto.
3667 2023-06-09  Ken Matsui  <kmatsui@cs.washington.edu>
3669         * include/std/type_traits: Use using instead of typedef
3671 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
3673         PR libstdc++/110077
3674         * src/c++17/floating_from_chars.cc (from_chars) <_Float128>:
3675         Only define if _Float128 and long double have different
3676         representations.
3678 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
3680         PR libstdc++/100285
3681         * include/experimental/internet [IPPROTO_TCP || IPPROTO_UDP]
3682         (basic_endpoint, basic_resolver_entry, resolver_base)
3683         (basic_resolver_results, basic_resolver): Only define if the tcp
3684         or udp protocols will be defined.
3686 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
3688         * acinclude.m4 (libtool_VERSION): Update to 6.0.33.
3689         * configure: Regenerate.
3690         * doc/xml/manual/abi.xml: Add libstdc++.so.6.0.33.
3691         * doc/html/manual/abi.html: Regenerate.
3693 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
3695         PR libstdc++/110149
3696         * include/std/format (formatter<const void*, charT>::parse):
3697         Only alow 0 and P for C++26 and non-strict modes.
3698         (formatter<const void*, charT>::format): Use toupper for P
3699         type, and insert zero-fill characters for 0 option.
3700         * testsuite/std/format/functions/format.cc: Check pointer
3701         formatting. Only check P2510R3 extensions conditionally.
3702         * testsuite/std/format/parse_ctx.cc: Only check P2510R3
3703         extensions conditionally.
3705 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
3707         PR libstdc++/110167
3708         * include/std/array (to_array): Initialize arrays of trivial
3709         types using memcpy. For non-trivial types, use lambda
3710         expressions instead of a separate helper function.
3711         (__to_array): Remove.
3712         * testsuite/23_containers/array/creation/110167.cc: New test.
3714 2023-06-09  Jonathan Wakely  <jwakely@redhat.com>
3716         * testsuite/23_containers/deque/modifiers/emplace/52799.cc:
3717         Removed.
3718         * testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc:
3719         Removed.
3720         * testsuite/23_containers/list/modifiers/emplace/52799.cc:
3721         Removed.
3722         * testsuite/23_containers/list/modifiers/emplace/const_iterator.cc:
3723         Removed.
3724         * testsuite/23_containers/vector/modifiers/emplace/52799.cc:
3725         Removed.
3726         * testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc:
3727         Removed.
3728         * testsuite/23_containers/deque/modifiers/emplace/1.cc: New
3729         test.
3730         * testsuite/23_containers/list/modifiers/emplace/1.cc: New
3731         test.
3732         * testsuite/23_containers/vector/modifiers/emplace/1.cc: New
3733         test.
3735 2023-06-07  Jakub Jelinek  <jakub@redhat.com>
3737         PR libstdc++/110145
3738         * testsuite/20_util/to_chars/double.cc: Include <cfloat>.
3739         (double_to_chars_test_cases,
3740         double_scientific_precision_to_chars_test_cases_2,
3741         double_fixed_precision_to_chars_test_cases_2): #if out 1e126, 4.91e-6
3742         and 5.547e-6 tests if FLT_EVAL_METHOD is negative or larger than 1.
3743         Add unconditional tests with corresponding double constants
3744         0x1.7a2ecc414a03fp+418, 0x1.4981285e98e79p-18 and
3745         0x1.7440bbff418b9p-18.
3747 2023-06-07  Jonathan Wakely  <jwakely@redhat.com>
3749         * testsuite/util/testsuite_abi.cc (check_version): Re-add
3750         CXXABI_1.3.14.
3752 2023-06-07  Jonathan Wakely  <jwakely@redhat.com>
3754         * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
3755         Require effective target exceptions_enabled instead of using
3756         dg-skip-if.
3757         * testsuite/23_containers/vector/capacity/constexpr.cc: Expect
3758         shrink_to_fit() to be a no-op without exceptions enabled.
3759         * testsuite/23_containers/vector/capacity/shrink_to_fit.cc:
3760         Likewise.
3761         * testsuite/ext/bitmap_allocator/check_allocate_max_size.cc:
3762         Require effective target exceptions_enabled.
3763         * testsuite/ext/malloc_allocator/check_allocate_max_size.cc:
3764         Likewise.
3765         * testsuite/ext/mt_allocator/check_allocate_max_size.cc:
3766         Likewise.
3767         * testsuite/ext/new_allocator/check_allocate_max_size.cc:
3768         Likewise.
3769         * testsuite/ext/pool_allocator/check_allocate_max_size.cc:
3770         Likewise.
3771         * testsuite/ext/throw_allocator/check_allocate_max_size.cc:
3772         Likewise.
3774 2023-06-07  Jonathan Wakely  <jwakely@redhat.com>
3776         * testsuite/20_util/duration/cons/2.cc: Use values that aren't
3777         affected by rounding.
3778         * testsuite/20_util/from_chars/5.cc: Cast arithmetic result to
3779         double before comparing for equality.
3780         * testsuite/20_util/from_chars/6.cc: Likewise.
3781         * testsuite/20_util/variant/86874.cc: Use values that aren't
3782         affected by rounding.
3783         * testsuite/25_algorithms/lower_bound/partitioned.cc: Compare to
3784         original value instead of to floating-point-literal.
3785         * testsuite/26_numerics/random/discrete_distribution/cons/range.cc:
3786         Cast arithmetic result to double before comparing for equality.
3787         * testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc:
3788         Likewise.
3789         * testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc:
3790         Likewise.
3791         * testsuite/26_numerics/valarray/transcend.cc (eq): Check that
3792         the absolute difference is less than 0.01 instead of comparing
3793         to two decimal places.
3794         * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
3795         Cast arithmetic result to double before comparing for equality.
3796         * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
3797         Likewise.
3798         * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
3799         Likewise.
3800         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc:
3801         Likewise.
3802         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc:
3803         Likewise.
3804         * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc:
3805         Likewise.
3806         * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
3808 2023-06-07  Jonathan Wakely  <jwakely@redhat.com>
3810         Revert:
3811         2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
3813         * configure.ac: Use AS_IF.
3814         * configure: Regenerate.
3816 2023-06-07  Thomas Schwinge  <thomas@codesourcery.com>
3818         * testsuite/lib/prune.exp (libstdc++-dg-prune): Support
3819         'UNSUPPORTED: [...]: exception handling disabled'.
3821 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
3823         * testsuite/util/testsuite_abi.cc (check_version): Add
3824         CXXABI_1.3.15 symver and make it the latestp. Remove
3825         GLIBCXX_IEEE128_3.4.31 and GLIBCXX_LDBL_3.4.31 from latestp.
3827 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
3828             Jakub Jelinek  <jakub@redhat.com>
3830         PR libstdc++/104772
3831         * include/std/limits: (numeric_limits<__float128>): Define
3832         for __STRICT_ANSI__ as well.
3833         * testsuite/18_support/numeric_limits/128bit.cc: Remove
3834         check for __STRICT_ANSI__.
3836 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
3838         * configure.ac: Use AS_IF.
3839         * configure: Regenerate.
3841 2023-06-06  Matthias Kretz  <m.kretz@gsi.de>
3843         PR libstdc++/109822
3844         * include/experimental/bits/simd_builtin.h (_S_store): Rewrite
3845         to avoid casts to other vector types. Implement store as
3846         succession of power-of-2 sized memcpy to avoid PR90424.
3848 2023-06-06  Matthias Kretz  <m.kretz@gsi.de>
3850         PR libstdc++/110054
3851         * include/experimental/bits/simd_builtin.h (_S_masked_store):
3852         Call into deduced ABI's SimdImpl after conversion.
3853         * include/experimental/bits/simd_x86.h (_S_masked_store_nocvt):
3854         Don't use _mm_maskmoveu_si128. Use the generic fall-back
3855         implementation. Also fix masked stores without SSE2, which
3856         were not doing anything before.
3858 2023-06-06  Matthias Kretz  <m.kretz@gsi.de>
3860         * include/experimental/bits/simd.h (__bit_cast): Use
3861         __gnu__::__vector_size__ instead of gnu::vector_size.
3863 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
3865         PR libstdc++/110139
3866         * include/std/array (__array_traits<T, 0>::operator T*()): Make
3867         conversion operator explicit.
3868         (array::front): Use size_type as subscript operand.
3869         (array::data): Use static_cast to make conversion explicit.
3870         * testsuite/23_containers/array/element_access/110139.cc: New
3871         test.
3873 2023-06-06  Joseph Faulls  <Joseph.Faulls@imgtec.com>
3875         * include/bits/locale_classes.tcc: Remove check for
3876         codecvt<char8_t, char, mbstate_t> facet.
3878 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
3880         * src/filesystem/ops-common.h (do_copy_file) [O_CLOEXEC]: Set
3881         close-on-exec flag on file descriptors.
3883 2023-06-06  Jonathan Wakely  <jwakely@redhat.com>
3885         PR libstdc++/108178
3886         * src/filesystem/ops-common.h (do_copy_file): Check for empty
3887         files by trying to read a character.
3888         * testsuite/27_io/filesystem/operations/copy_file_108178.cc:
3889         New test.
3891 2023-06-06  Jannik Glückert  <jannik.glueckert@gmail.com>
3893         * acinclude.m4 (_GLIBCXX_USE_COPY_FILE_RANGE): Define.
3894         * config.h.in: Regenerate.
3895         * configure: Regenerate.
3896         * src/filesystem/ops-common.h (copy_file_copy_file_range):
3897         Define new function.
3898         (do_copy_file): Use it.
3900 2023-06-06  Jannik Glückert  <jannik.glueckert@gmail.com>
3902         * acinclude.m4 (_GLIBCXX_HAVE_LSEEK): Define.
3903         * config.h.in: Regenerate.
3904         * configure: Regenerate.
3905         * src/filesystem/ops-common.h (copy_file_sendfile): Define new
3906         function for sendfile logic. Loop to support large files. Skip
3907         zero-length files.
3908         (do_copy_file): Use it.
3910 2023-06-04  Jason Merrill  <jason@redhat.com>
3912         PR c++/97720
3913         * libsupc++/eh_call.cc (__cxa_call_terminate): Take void*.
3914         * config/abi/pre/gnu.ver: Add it.
3916 2023-06-02  François Dumont  <fdumont@gcc.gnu.org>
3918         * include/parallel/algobase.h: Include <parallel/search.h>.
3920 2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
3922         * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
3923         Add const to equality operator.
3925 2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
3927         * include/std/expected (expected::and_then, expected::or_else)
3928         (expected::transform_error): Use _M_val and _M_unex instead of
3929         calling value() and error(), as per LWG 3938.
3930         (expected::transform): Likewise. Remove incorrect std::move
3931         calls from lvalue overloads.
3932         (expected<void, E>::and_then, expected<void, E>::or_else)
3933         (expected<void, E>::transform): Use _M_unex instead of calling
3934         error().
3935         * testsuite/20_util/expected/lwg3877.cc: Add checks for and_then
3936         and transform, and for std::expected<void, E>.
3937         * testsuite/20_util/expected/lwg3938.cc: New test.
3939 2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
3941         PR libstdc++/110060
3942         * include/bits/stl_vector.h (_Vector_base::_M_invariant):
3943         Remove.
3944         (vector::size, vector::capacity): Remove calls to _M_invariant.
3945         * include/bits/vector.tcc (vector::_M_fill_assign): Add
3946         optimization hint to reallocating path.
3947         (vector::_M_assign_aux(FwdIter, FwdIter, forward_iterator_tag)):
3948         Likewise.
3949         * testsuite/23_containers/vector/capacity/invariant.cc: Moved
3950         to...
3951         * testsuite/23_containers/vector/modifiers/assign/no_realloc.cc:
3952         ...here. Check assign(FwdIter, FwdIter) too.
3953         * testsuite/23_containers/vector/types/1.cc: Revert addition
3954         of -Wno-stringop-overread option.
3956 2023-06-01  Jonathan Wakely  <jwakely@redhat.com>
3958         * doc/xml/manual/evolution.xml: Document removal of implicit
3959         allocator rebinding extensions in strict mode and for C++20.
3960         * doc/html/*: Regenerate.
3962 2023-06-01  Jason Merrill  <jason@redhat.com>
3964         * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Don't check
3965         handlers in the cleanup phase.
3967 2023-06-01  Matthias Kretz  <m.kretz@gsi.de>
3969         PR libstdc++/110050
3970         * include/experimental/bits/simd.h (__vectorized_sizeof): With
3971         __have_neon_a32 only single-precision float works (in addition
3972         to integers).
3974 2023-06-01  François Dumont  <fdumont@gcc.gnu.org>
3976         * include/bits/stl_algo.h
3977         (std::__search, std::search(_FwdIt1, _FwdIt1, _FwdIt2, _FwdIt2, _BinPred)): Move...
3978         * include/bits/stl_algobase.h: ...here.
3979         * include/std/functional: Replace <stl_algo.h> include by <stl_algobase.h>.
3980         * include/parallel/algo.h (std::__parallel::search<_FIt1, _FIt2, _BinaryPred>)
3981         (std::__parallel::__search_switch<_FIt1, _FIt2, _BinaryPred, _ItTag1, _ItTag2>):
3982         Move...
3983         * include/parallel/algobase.h: ...here.
3984         * include/experimental/functional: Remove <bits/stl_algo.h> and <parallel/algorithm>
3985         includes. Include <bits/stl_algobase.h>.
3987 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
3989         PR libstdc++/109818
3990         * acinclude.m4 (GLIBCXX_ENABLE_C99): Add separate check for
3991         float_t and double_t and define HAVE_C99_FLT_EVAL_TYPES.
3992         * config.h.in: Regenerate.
3993         * configure: Regenerate.
3994         * include/c_global/cmath (float_t, double_t): Guard using new
3995         _GLIBCXX_HAVE_C99_FLT_EVAL_TYPES macro.
3997 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
3999         * acinclude.m4 (GLIBCXX_ENABLE_C99): Add checks for C99 math
4000         functions and define _GLIBCXX_USE_C99_MATH_FUNCS. Move checks
4001         for C99 rounding functions to here.
4002         (GLIBCXX_CHECK_C99_TR1): Remove checks for C99 rounding
4003         functions from here.
4004         * config.h.in: Regenerate.
4005         * configure: Regenerate.
4006         * include/bits/random.h: Use _GLIBCXX_USE_C99_MATH_FUNCS instead
4007         of _GLIBCXX_USE_C99_MATH_TR1.
4008         * include/bits/random.tcc: Likewise.
4009         * include/c_compatibility/math.h: Likewise.
4010         * include/c_global/cmath: Likewise.
4011         * include/ext/random: Likewise.
4012         * include/ext/random.tcc: Likewise.
4013         * include/std/complex: Likewise.
4014         * testsuite/20_util/from_chars/4.cc: Likewise.
4015         * testsuite/20_util/from_chars/8.cc: Likewise.
4016         * testsuite/26_numerics/complex/proj.cc: Likewise.
4017         * testsuite/26_numerics/headers/cmath/60401.cc: Likewise.
4018         * testsuite/26_numerics/headers/cmath/types_std_c++0x.cc:
4019         Likewise.
4020         * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
4021         Likewise.
4022         * testsuite/util/testsuite_random.h: Likewise.
4024 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
4026         * include/bits/stl_vector.h (_Vector_base::_M_invariant()): New
4027         function.
4028         (vector::size(), vector::capacity()): Call _M_invariant().
4029         * testsuite/23_containers/vector/capacity/invariant.cc: New test.
4030         * testsuite/23_containers/vector/types/1.cc: Add suppression for
4031         false positive warning (PR110060).
4033 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
4035         PR libstdc++/109921
4036         * src/c++17/floating_from_chars.cc: Check __FLT128_MANT_DIG__ is
4037         defined before trying to use _Float128.
4039 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
4041         * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Fix for 32-bit pointers
4042         to check __INT_PTR_WIDTH__ instead of sizeof(void*).
4043         * configure: Regenerate.
4045 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
4047         * include/bits/unique_lock.h: Include <bits/error_constants.h>
4048         here for std::errc constants.
4049         * include/std/mutex: Do not include <bits/error_constants.h> and
4050         <exception> here.
4052 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
4054         * configure.ac: Replace use of -o operator for test.
4055         * configure: Regenerate.
4057 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
4059         * include/std/scoped_allocator (scoped_allocator_adaptor): Add
4060         noexcept to all constructors except the default constructor.
4061         (scoped_allocator_adaptor::inner_allocator): Add noexcept.
4062         (scoped_allocator_adaptor::outer_allocator): Likewise.
4063         * testsuite/20_util/scoped_allocator/noexcept.cc: New test.
4065 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
4067         PR libstdc++/104772
4068         * include/std/limits (numeric_limits<__float128>): Define.
4069         * testsuite/18_support/numeric_limits/128bit.cc: New test.
4071 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
4073         * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Extend logic for avr and
4074         msp430 to all 16-bit targets.
4075         * configure: Regenerate.
4077 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
4079         PR libstdc++/109921
4080         * src/c++17/floating_from_chars.cc (USE_STRTOF128_FOR_FROM_CHARS):
4081         Only define when USE_STRTOD_FOR_FROM_CHARS is also defined.
4082         (USE_STRTOD_FOR_FROM_CHARS): Do not undefine when long double is
4083         binary64.
4084         (from_chars(const char*, const char*, double&, chars_format)):
4085         Check __LDBL_MANT_DIG__ == __DBL_MANT_DIG__ here.
4086         (from_chars(const char*, const char*, _Float128&, chars_format))
4087         Only use from_chars_strtod when USE_STRTOD_FOR_FROM_CHARS is
4088         defined, otherwise parse a long double and convert to _Float128.
4090 2023-05-31  Jonathan Wakely  <jwakely@redhat.com>
4092         PR libstdc++/109922
4093         * include/std/iomanip (operator>>(basic_istream&, _Setfill)):
4094         Add deprecated attribute to non-standard overload.
4095         * doc/xml/manual/evolution.xml: Document deprecation.
4096         * doc/html/*: Regenerate.
4097         * testsuite/27_io/manipulators/standard/char/1.cc: Add
4098         dg-warning for expected deprecated warning.
4099         * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
4100         * testsuite/27_io/manipulators/standard/wchar_t/1.cc: Likewise.
4101         * testsuite/27_io/manipulators/standard/wchar_t/2.cc: Likewise.
4103 2023-05-30  Alexandre Oliva  <oliva@adacore.com>
4105         * testsuite/20_util/from_chars/4.cc: Skip long double test06
4106         on x86_64-vxworks.
4107         * testsuite/20_util/to_chars/long_double.cc: Xfail run on
4108         x86_64-vxworks.
4110 2023-05-30  Matthias Kretz  <m.kretz@gsi.de>
4112         PR libstdc++/109822
4113         * include/experimental/bits/simd.h (to_native): Use int NTTP
4114         as specified in PTS2.
4115         (to_compatible): Likewise. Add missing tag to call mask
4116         generator ctor.
4117         * testsuite/experimental/simd/pr109822_cast_functions.cc: New
4118         test.
4120 2023-05-30  Matthias Kretz  <m.kretz@gsi.de>
4122         * testsuite/experimental/simd/tests/integer_operators.cc:
4123         Compute expected value differently to avoid getting turned into
4124         a vector shift.
4126 2023-05-30  Matthias Kretz  <m.kretz@gsi.de>
4128         * testsuite/experimental/simd/tests/operator_cvt.cc: Make long
4129         double <-> (u)long conversion tests conditional on sizeof(long
4130         double) and sizeof(long).
4132 2023-05-26  Matthias Kretz  <m.kretz@gsi.de>
4134         * include/experimental/bits/simd_ppc.h (_S_bit_shift_left):
4135         Negative __y is UB, so prefer signed compare.
4137 2023-05-25  Jonathan Wakely  <jwakely@redhat.com>
4139         * testsuite/util/testsuite_allocator.h (PointerBase): Add
4140         relational operators.
4142 2023-05-25  Alexandre Oliva  <oliva@adacore.com>
4144         * testsuite/20_util/to_chars/long_double.cc: Expect execution
4145         fail on x86-vxworks.
4147 2023-05-24  Matthias Kretz  <m.kretz@gsi.de>
4149         PR libstdc++/109949
4150         * include/experimental/bits/simd.h (__intrinsic_type): If
4151         __ALTIVEC__ is defined, map gnu::vector_size types to their
4152         corresponding __vector T types without losing unsignedness of
4153         integer types. Also prefer long long over long.
4154         * include/experimental/bits/simd_ppc.h (_S_popcount): Cast mask
4155         object to the expected unsigned vector type.
4157 2023-05-24  Matthias Kretz  <m.kretz@gsi.de>
4159         PR libstdc++/109261
4160         * include/experimental/bits/simd.h (__intrinsic_type):
4161         Specialize __intrinsic_type<double, 8> and
4162         __intrinsic_type<double, 16> in any case, but provide the member
4163         type only with __aarch64__.
4165 2023-05-24  Matthias Kretz  <m.kretz@gsi.de>
4167         PR libstdc++/109261
4168         * include/experimental/bits/simd_neon.h (_S_reduce): Add
4169         constexpr and make NEON implementation conditional on
4170         not __builtin_is_constant_evaluated.
4172 2023-05-23  Matthias Kretz  <m.kretz@gsi.de>
4174         PR libstdc++/109261
4175         * include/experimental/bits/simd.h (_SimdWrapper::_M_set):
4176         Avoid vector builtin subscripting in constant expressions.
4177         (resizing_simd_cast): Avoid memcpy if constant_evaluated.
4178         (const_where_expression, where_expression, where)
4179         (__extract_part, simd_mask, _SimdIntOperators, simd): Add either
4180         _GLIBCXX_SIMD_CONSTEXPR (on public APIs), or constexpr (on
4181         internal APIs).
4182         * include/experimental/bits/simd_builtin.h (__vector_permute)
4183         (__vector_shuffle, __extract_part, _GnuTraits::_SimdCastType1)
4184         (_GnuTraits::_SimdCastType2, _SimdImplBuiltin)
4185         (_MaskImplBuiltin::_S_store): Add constexpr.
4186         (_CommonImplBuiltin::_S_store_bool_array)
4187         (_SimdImplBuiltin::_S_load, _SimdImplBuiltin::_S_store)
4188         (_SimdImplBuiltin::_S_reduce, _MaskImplBuiltin::_S_load): Add
4189         constant_evaluated case.
4190         * include/experimental/bits/simd_fixed_size.h
4191         (_S_masked_load): Reword comment.
4192         (__tuple_element_meta, __make_meta, _SimdTuple::_M_apply_r)
4193         (_SimdTuple::_M_subscript_read, _SimdTuple::_M_subscript_write)
4194         (__make_simd_tuple, __optimize_simd_tuple, __extract_part)
4195         (__autocvt_to_simd, _Fixed::__traits::_SimdBase)
4196         (_Fixed::__traits::_SimdCastType, _SimdImplFixedSize): Add
4197         constexpr.
4198         (_SimdTuple::operator[], _M_set): Add constexpr and add
4199         constant_evaluated case.
4200         (_MaskImplFixedSize::_S_load): Add constant_evaluated case.
4201         * include/experimental/bits/simd_scalar.h: Add constexpr.
4202         * include/experimental/bits/simd_x86.h (_CommonImplX86): Add
4203         constexpr and add constant_evaluated case.
4204         (_SimdImplX86::_S_equal_to, _S_not_equal_to, _S_less)
4205         (_S_less_equal): Value-initialize to satisfy constexpr
4206         evaluation.
4207         (_MaskImplX86::_S_load): Add constant_evaluated case.
4208         (_MaskImplX86::_S_store): Add constexpr and constant_evaluated
4209         case. Value-initialize local variables.
4210         (_MaskImplX86::_S_logical_and, _S_logical_or, _S_bit_not)
4211         (_S_bit_and, _S_bit_or, _S_bit_xor): Add constant_evaluated
4212         case.
4213         * testsuite/experimental/simd/pr109261_constexpr_simd.cc: New
4214         test.
4216 2023-05-22  Matthias Kretz  <m.kretz@gsi.de>
4218         * include/experimental/bits/simd_builtin.h (_S_fpclassify): Move
4219         __infn into #ifdef'ed block.
4220         * testsuite/experimental/simd/tests/fpclassify.cc: Declare
4221         constants only when used.
4222         * testsuite/experimental/simd/tests/frexp.cc: Likewise.
4223         * testsuite/experimental/simd/tests/logarithm.cc: Likewise.
4224         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc:
4225         Likewise.
4226         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
4227         Move totest and expect1 into #ifdef'ed block.
4229 2023-05-19  Gerald Pfeifer  <gerald@pfeifer.com>
4231         * doc/xml/manual/strings.xml: Move lafstern.org reference to https.
4232         * doc/html/manual/strings.html: Regenerate.
4234 2023-05-17  Jakub Jelinek  <jakub@redhat.com>
4236         PR libstdc++/109883
4237         * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc: New test.
4239 2023-05-17  Jakub Jelinek  <jakub@redhat.com>
4241         PR libstdc++/109883
4242         * include/c_global/cmath (atan2, fmod, pow): Move
4243         __gnu_cxx::__promote_2 using templates after _Float{16,32,64,128} and
4244         __gnu_cxx::__bfloat16_t overloads.
4245         (copysign, fdim, fmax, fmin, hypot, nextafter, remainder, remquo):
4246         Likewise.
4247         (fma): Move __gnu_cxx::__promote_3 using template after
4248         _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads.
4250 2023-05-17  Jonathan Wakely  <jwakely@redhat.com>
4252         * testsuite/18_support/headers/limits/synopsis.cc: Uncomment
4253         checks for float_round_style and float_denorm_style.
4255 2023-05-17  Jonathan Wakely  <jwakely@redhat.com>
4257         * include/bits/c++config: Add system_header pragma.
4259 2023-05-17  Jonathan Wakely  <jwakely@redhat.com>
4261         * include/std/expected (expected::and_then, expected::or_else)
4262         (expected::transform, expected::transform_error): Fix exception
4263         specifications as per LWG 3877.
4264         (expected<void, E>::and_then, expected<void, E>::transform):
4265         Likewise.
4266         * testsuite/20_util/expected/lwg3877.cc: New test.
4268 2023-05-17  Ken Matsui  <kmatsui@cs.washington.edu>
4270         * include/std/type_traits: Use __bool_constant instead of
4271         integral_constant.
4273 2023-05-17  Jonathan Wakely  <jwakely@redhat.com>
4275         * configure: Regenerate.
4277 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
4279         PR libstdc++/109741
4280         * acinclude.m4 (GLIBCXX_CHECK_ALIGNAS_CACHELINE): Define.
4281         * config.h.in: Regenerate.
4282         * configure: Regenerate.
4283         * configure.ac: Use GLIBCXX_CHECK_ALIGNAS_CACHELINE.
4284         * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex): Do not
4285         align lock table if not supported. use __GCC_DESTRUCTIVE_SIZE
4286         instead of hardcoded 64.
4288 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
4290         * acinclude.m4 (GLIBCXX_USE_C99): Check for isblank in C++11
4291         mode and define _GLIBCXX_USE_C99_CTYPE. Check for <fenv.h>
4292         functions in C++11 mode and define _GLIBCXX_USE_C99_FENV.
4293         * config.h.in: Regenerate.
4294         * configure: Regenerate.
4295         * include/c_compatibility/fenv.h: Check _GLIBCXX_USE_C99_FENV
4296         instead of _GLIBCXX_USE_C99_FENV_TR1.
4297         * include/c_global/cfenv: Likewise.
4298         * include/c_global/cctype: Check _GLIBCXX_USE_C99_CTYPE instead
4299         of _GLIBCXX_USE_C99_CTYPE_TR1.
4301 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
4303         * acinclude.m4 (GLIBCXX_USE_C99): Check for <stdint.h> types in
4304         C++11 mode and define _GLIBCXX_USE_C99_STDINT. Check for
4305         <inttypes.h> features in C++11 mode and define
4306         _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T.
4307         * config.h.in: Regenerate.
4308         * configure: Regenerate.
4309         * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
4310         * include/bits/chrono.h: Check _GLIBCXX_USE_C99_STDINT instead
4311         of _GLIBCXX_USE_C99_STDINT_TR1.
4312         * include/c_compatibility/inttypes.h: Check
4313         _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T
4314         instead of _GLIBCXX_USE_C99_INTTYPES_TR1 and
4315         _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
4316         * include/c_compatibility/stdatomic.h: Check
4317         _GLIBCXX_USE_C99_STDINT instead of _GLIBCXX_USE_C99_STDINT_TR1.
4318         * include/c_compatibility/stdint.h: Likewise.
4319         * include/c_global/cinttypes: Check _GLIBCXX_USE_C99_INTTYPES
4320         and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T instead of
4321         _GLIBCXX_USE_C99_INTTYPES_TR1 and
4322         _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
4323         * include/c_global/cstdint: Check _GLIBCXX_USE_C99_STDINT
4324         instead of _GLIBCXX_USE_C99_STDINT_TR1.
4325         * include/std/atomic: Likewise.
4326         * src/c++11/cow-stdexcept.cc: Likewise.
4327         * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
4328         Likewise.
4329         * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
4330         Likewise.
4332 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
4334         * acinclude.m4 (GLIBCXX_USE_C99): Check for complex inverse trig
4335         functions in C++11 mode and define _GLIBCXX_USE_C99_COMPLEX_ARC.
4336         * config.h.in: Regenerate.
4337         * configure: Regenerate.
4338         * doc/doxygen/user.cfg.in (PREDEFINED): Add new macro.
4339         * include/std/complex: Check _GLIBCXX_USE_C99_COMPLEX_ARC
4340         instead of _GLIBCXX_USE_C99_COMPLEX_TR1.
4342 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
4344         * testsuite/ext/debug_allocator/check_deallocate_null.cc: Add
4345         assertion to ensure expected exception is throw.
4347 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
4349         * testsuite/libstdc++-prettyprinters/chrono.cc: Only test
4350         printer for chrono::zoned_time for cx11 ABI and tzdb effective
4351         target.
4353 2023-05-16  Jonathan Wakely  <jwakely@redhat.com>
4355         * acinclude.m4 (GLIBCXX_CHECK_PTHREAD_MUTEX_CLOCKLOCK): Define
4356         _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK in terms of _GLIBCXX_TSAN.
4357         * configure: Regenerate.
4359 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
4361         * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Use a non-null pointer
4362         to check for nan, nanf, and nanl.
4363         * configure: Regenerate.
4365 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
4367         * include/bits/char_traits.h (char_traits<char16_t>): Do not
4368         depend on _GLIBCXX_USE_C99_STDINT_TR1.
4369         (char_traits<char32_t>): Likewise.
4370         * include/experimental/source_location: Likewise.
4372 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
4374         * include/std/atomic (atomic_int_least8_t, atomic_uint_least8_t)
4375         (atomic_int_least16_t, atomic_uint_least16_t)
4376         (atomic_int_least32_t, atomic_uint_least32_t)
4377         (atomic_int_least64_t, atomic_uint_least64_t)
4378         (atomic_int_fast16_t, atomic_uint_fast16_t)
4379         (atomic_int_fast32_t, atomic_uint_fast32_t)
4380         (atomic_int_fast64_t, atomic_uint_fast64_t)
4381         (atomic_intmax_t, atomic_uintmax_t): Define unconditionally.
4382         * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Adjust.
4384 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
4386         * include/bits/algorithmfwd.h (shuffle): Do not depend on
4387         _GLIBCXX_USE_C99_STDINT_TR1.
4388         * include/bits/ranges_algo.h (shuffle): Likewise.
4389         * include/bits/stl_algo.h (shuffle): Likewise.
4390         * include/ext/random: Likewise.
4391         * include/ext/throw_allocator.h (random_condition): Likewise.
4392         * include/std/random: Likewise.
4393         * src/c++11/cow-string-inst.cc: Likewise.
4394         * src/c++11/random.cc: Likewise.
4396 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
4398         * testsuite/experimental/feat-cxx14.cc: Remove dependency on
4399         _GLIBCXX_USE_C99_STDINT_TR1.
4401 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
4403         * testsuite/22_locale/locale/cons/unicode.cc: Remove dependency
4404         on _GLIBCXX_USE_C99_STDINT_TR1.
4406 2023-05-12  Jonathan Wakely  <jwakely@redhat.com>
4408         * testsuite/21_strings/basic_string_view/typedefs.cc: Remove
4409         dependency on _GLIBCXX_USE_C99_STDINT_TR1.
4410         * testsuite/experimental/string_view/typedefs.cc: Likewise.
4412 2023-05-11  Jonathan Wakely  <jwakely@redhat.com>
4414         * src/c++17/floating_from_chars.cc [USE_STRTOD_FOR_FROM_CHARS]
4415         (auto_locale, auto_ferounding): New class types.
4416         (from_chars_impl): Use auto_locale and auto_ferounding.
4418 2023-05-11  Jonathan Wakely  <jwakely@redhat.com>
4420         PR libstdc++/109772
4421         * include/std/chrono (hh_mm_ss::__fits): Remove variable
4422         template.
4423         (hh_mm_ss::__subseconds): Remove __fits from constraints.
4424         * testsuite/std/time/hh_mm_ss/109772.cc: New test.
4425         * testsuite/std/time/hh_mm_ss/1.cc: Adjust expected size for
4426         hh_mm_ss<duration<int, std::pico>>.
4428 2023-05-11  Jonathan Wakely  <jwakely@redhat.com>
4430         * config/abi/pre/gnu.ver: Export basic_string::_S_allocate.
4431         * include/bits/basic_ios.h: Add static assertion checking
4432         traits_type::value_type.
4433         * include/bits/basic_string.h: Likewise. Do not rebind
4434         allocator, and add static assertion checking its value_type.
4435         (basic_string::_Alloc_traits_impl): Remove class template.
4436         (basic_string::_S_allocate): New static member function.
4437         (basic_string::assign): Use _S_allocate.
4438         * include/bits/basic_string.tcc (basic_string::_M_create)
4439         (basic_string::reserve, basic_string::_M_replace): Likewise.
4440         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc:
4441         Disable for C++20 and later.
4442         * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
4443         Likweise.
4445 2023-05-11  Jonathan Wakely  <jwakely@redhat.com>
4447         PR libstdc++/109758
4448         * include/bits/std_abs.h (abs(__float128)): Handle negative NaN
4449         and negative zero correctly.
4450         * testsuite/26_numerics/headers/cmath/109758.cc: New test.
4452 2023-05-10  François Dumont  <fdumont@gcc.gnu.org>
4454         * include/bits/hashtable_policy.h
4455         (_NodeBuilder<>::_S_build): Use __node_ptr.
4456         (_ReuseOrAllocNode<>): Use __node_ptr in place of __node_type*.
4457         (_AllocNode<>): Likewise.
4458         (_Equality<>::_M_equal): Remove const_iterator usages. Only preserved
4459         to call std::is_permutation in the non-unique key implementation.
4460         * include/bits/hashtable.h (_Hashtable<>::_M_update_begin()): Capture
4461         _M_begin() once.
4462         (_Hashtable<>::_M_bucket_begin(size_type)): Implement implicitly inline.
4463         (_Hashtable<>::_M_insert_bucket_begin): Likewise.
4464         (_Hashtable<>::_M_remove_bucket_begin): Likewise.
4465         (_Hashtable<>::_M_compute_hash_code): Use __node_ptr rather than
4466         const_iterator.
4467         (_Hashtable<>::find): Likewise.
4468         (_Hashtable<>::_M_emplace): Likewise.
4469         (_Hashtable<>::_M_insert_unique): Likewise.
4471 2023-05-09  Jonathan Wakely  <jwakely@redhat.com>
4473         * python/libstdcxx/v6/printers.py (StdChronoDurationPrinter):
4474         Print floating-point durations correctly.
4475         (StdChronoTimePointPrinter): Support printing only the value,
4476         not the type name. Uncomment handling for known clocks.
4477         (StdChronoZonedTimePrinter): Remove type names from output.
4478         (StdChronoCalendarPrinter): Fix hh_mm_ss member access.
4479         (StdChronoTimeZonePrinter): Add equals sign to output.
4480         * testsuite/libstdc++-prettyprinters/chrono.cc: New test.
4482 2023-05-05  Alexandre Oliva  <oliva@adacore.com>
4484         * testsuite/20_util/from_chars/4.cc: Skip long double test06
4485         on aarch64-vxworks.
4486         * testsuite/20_util/to_chars/long_double.cc: Xfail run on
4487         aarch64-vxworks.
4489 2023-05-04  Jonathan Wakely  <jwakely@redhat.com>
4491         * doc/xml/manual/abi.xml (abi.versioning.history): Document
4492         libstdc++.so.6.0.32 and GLIBCXX_3.4.32 version.
4493         * doc/html/manual/abi.html: Regenerate.
4495 2023-05-04  Florian Weimer  <fweimer@redhat.com>
4497         * doc/xml/manual/abi.xml (abi.versioning.history): Add
4498         GCC_7.0.0, GCC_9.0.0, GCC_11.0, GCC_12.0.0, GCC_13.0.0 for
4499         libgcc_s.
4501 2023-05-03  Jakub Jelinek  <jakub@redhat.com>
4503         * src/c++17/floating_from_chars.cc
4504         (_ZSt10from_charsPKcS0_RDF128_St12chars_format): New alias to
4505         _ZSt10from_charsPKcS0_Ru9__ieee128St12chars_format.
4506         * src/c++17/floating_to_chars.cc (_ZSt8to_charsPcS_DF128_): New alias to
4507         _ZSt8to_charsPcS_u9__ieee128.
4508         (_ZSt8to_charsPcS_DF128_St12chars_format): New alias to
4509         _ZSt8to_charsPcS_u9__ieee128St12chars_format.
4510         (_ZSt8to_charsPcS_DF128_St12chars_formati): New alias to
4511         _ZSt8to_charsPcS_u9__ieee128St12chars_formati.
4512         * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Updated.
4514 2023-05-03  Jakub Jelinek  <jakub@redhat.com>
4516         * configure.host (abi_baseline_pair): Use powerpc64le-linux-gnu
4517         rather than powerpc64-linux-gnu for powerpc64le*-linux*.
4518         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Remove
4519         _ZTI*DF128_, _ZTI*DF64x symbols and symbols in
4520         GLIBCXX_IEEE128_3.4.{29,30,31} and CXXABI_IEEE128_1.3.13 symbol
4521         versions.
4522         * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: New
4523         file.
4525 2023-05-03  Kefu Chai  <kefu.chai@scylladb.com>
4526             Jonathan Wakely  <jwakely@redhat.com>
4528         PR libstdc++/109703
4529         * include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)):
4530         Initialize _M_string_length.
4532 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
4534         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
4535         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
4536         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
4537         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
4538         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
4539         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
4540         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
4541         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
4543 2023-05-02  Jakub Jelinek  <jakub@redhat.com>
4545         PR libstdc++/109694
4546         * src/c++98/ios_init.cc: Add #pragma GCC diagnostic ignored for
4547         -Wattribute-alias.
4549 2023-04-28  Jonathan Wakely  <jwakely@redhat.com>
4551         * include/bits/random.h (gamma_distribution): Add to the right
4552         doxygen group.
4553         (discrete_distribution, piecewise_constant_distribution)
4554         (piecewise_linear_distribution): Create a new doxygen group and
4555         fix the incomplete doxygen comments.
4556         * include/bits/uniform_int_dist.h (uniform_int_distribution):
4557         Add to doxygen group.
4559 2023-04-28  Jonathan Wakely  <jwakely@redhat.com>
4561         * include/bits/uses_allocator.h: Add missing @file comment.
4562         * include/bits/regex.tcc: Remove stray doxygen comments.
4563         * include/experimental/memory_resource: Likewise.
4564         * include/std/bit: Tweak doxygen @cond comments.
4565         * include/std/expected: Likewise.
4566         * include/std/numbers: Likewise.
4568 2023-04-28  Jonathan Wakely  <jwakely@redhat.com>
4570         * doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
4571         from header paths.
4573 2023-04-28  Jonathan Wakely  <jwakely@redhat.com>
4575         * include/bits/move.h: Simplify opening/closing namespace std.
4577 2023-04-28  Jakub Jelinek  <jakub@redhat.com>
4579         PR libstdc++/108969
4580         * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export
4581         _ZSt21ios_base_library_initv.
4582         * testsuite/util/testsuite_abi.cc (check_version): Add GLIBCXX_3.4.32
4583         symver and make it the latestp.
4584         * src/c++98/ios_init.cc (ios_base_library_init): New alias.
4585         * acinclude.m4 (libtool_VERSION): Change to 6:32:0.
4586         * include/std/iostream: If init_priority attribute is supported
4587         and _GLIBCXX_SYMVER_GNU, force undefined _ZSt21ios_base_library_initv
4588         symbol into the object.
4589         * configure: Regenerated.
4591 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
4593         * include/bits/mofunc_impl.h: Fix typo in doxygen comment.
4594         * include/std/format: Likewise.
4596 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
4598         * doc/doxygen/user.cfg.in (FORMULA_TRANSPARENT, DOT_FONTNAME)
4599         (DOT_FONTSIZE, DOT_TRANSPARENT): Remove obsolete options.
4601 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
4603         * doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
4604         HTML docs.
4605         * include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
4606         from doxygen docs.
4607         * include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
4608         Likewise.
4609         * include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
4610         Likewise.
4611         * include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
4612         Likewise.
4613         * include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
4614         (_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
4615         (_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
4616         (_DEFINE_BINARY_OPERATOR): Likewise.
4618 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
4620         * include/bits/memory_resource.h: Improve doxygen comments.
4621         * include/std/memory_resource: Likewise.
4623 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
4625         PR libstdc++/40380
4626         * include/bits/basic_string.h: Improve doxygen comments.
4627         * include/bits/cow_string.h: Likewise.
4628         * include/bits/forward_list.h: Likewise.
4629         * include/bits/fs_dir.h: Likewise.
4630         * include/bits/fs_path.h: Likewise.
4631         * include/bits/quoted_string.h: Likewise.
4632         * include/bits/stl_bvector.h: Likewise.
4633         * include/bits/stl_map.h: Likewise.
4634         * include/bits/stl_multimap.h: Likewise.
4635         * include/bits/stl_multiset.h: Likewise.
4636         * include/bits/stl_set.h: Likewise.
4637         * include/bits/stl_vector.h: Likewise.
4638         * include/bits/unordered_map.h: Likewise.
4639         * include/bits/unordered_set.h: Likewise.
4640         * include/std/filesystem: Likewise.
4641         * include/std/iomanip: Likewise.
4643 2023-04-27  Jonathan Wakely  <jwakely@redhat.com>
4645         PR libstdc++/105081
4646         * src/c++11/random.cc (__throw_syserr): New function.
4647         (random_device::_M_init, random_device::_M_init_pretr1): Use new
4648         function for bad tokens.
4649         (random_device::_M_getval): Use new function for read errors.
4650         * testsuite/util/testsuite_random.h (random_device_available):
4651         Change catch handler to use std::system_error.
4653 2023-04-24  Patrick Palka  <ppalka@redhat.com>
4655         * include/bits/max_size_type.h (__max_diff_type::operator>>=):
4656         Fix propagation of sign bit.
4657         * testsuite/std/ranges/iota/max_size_type.cc: Avoid using the
4658         non-standard 'signed typedef-name'.  Add some compile-time tests
4659         for right-shifting a negative __max_diff_type value by more than
4660         one.
4662 2023-04-19  Patrick Palka  <ppalka@redhat.com>
4663             Jonathan Wakely  <jwakely@redhat.com>
4665         PR c++/100157
4666         * include/bits/utility.h (_Nth_type): Conditionally define in
4667         terms of __type_pack_element if available.
4668         * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
4669         additional errors from the new built-in.
4671 2023-04-19  Jonathan Wakely  <jwakely@redhat.com>
4673         Revert:
4674         2023-04-18  Jonathan Wakely  <jwakely@redhat.com>
4676         PR libstdc++/108969
4677         * src/Makefile.am: Move globals_io.cc to here.
4678         * src/Makefile.in: Regenerate.
4679         * src/c++98/Makefile.am: Remove globals_io.cc from here.
4680         * src/c++98/Makefile.in: Regenerate.
4681         * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
4682         symbol name and then export with GLIBCXX_3.4.31 symver.
4683         (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
4684         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
4685         Regenerate.
4686         * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
4687         Regenerate.
4688         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
4689         Regenerate.
4690         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
4691         Regenerate.
4692         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
4693         Regenerate.
4694         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
4695         Regenerate.
4696         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
4697         Regenerate.
4698         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
4699         Regenerate.
4700         * config/abi/pre/gnu.ver: Add iostream objects to new symver.
4702 2023-04-19  Jonathan Wakely  <jwakely@redhat.com>
4704         Revert:
4705         2023-04-18  Jonathan Wakely  <jwakely@redhat.com>
4707         PR libstdc++/108969
4708         * config/abi/pre/gnu.ver: Fix preprocessor condition.
4710 2023-04-18  Jonathan Wakely  <jwakely@redhat.com>
4712         * doc/xml/manual/extensions.xml: Fix example to declare and
4713         qualify std::free, and use NULL instead of 0.
4714         * doc/html/manual/ext_demangling.html: Regenerate.
4715         * libsupc++/cxxabi.h: Adjust doxygen comments.
4717 2023-04-18  Jonathan Wakely  <jwakely@redhat.com>
4719         PR libstdc++/108969
4720         * config/abi/pre/gnu.ver: Fix preprocessor condition.
4722 2023-04-18  Jonathan Wakely  <jwakely@redhat.com>
4724         PR libstdc++/108969
4725         * src/Makefile.am: Move globals_io.cc to here.
4726         * src/Makefile.in: Regenerate.
4727         * src/c++98/Makefile.am: Remove globals_io.cc from here.
4728         * src/c++98/Makefile.in: Regenerate.
4729         * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
4730         symbol name and then export with GLIBCXX_3.4.31 symver.
4731         (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
4732         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
4733         Regenerate.
4734         * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
4735         Regenerate.
4736         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
4737         Regenerate.
4738         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
4739         Regenerate.
4740         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
4741         Regenerate.
4742         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
4743         Regenerate.
4744         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
4745         Regenerate.
4746         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
4747         Regenerate.
4748         * config/abi/pre/gnu.ver: Add iostream objects to new symver.
4750 2023-04-18  Patrick Palka  <ppalka@redhat.com>
4752         PR libstdc++/108827
4753         * include/bits/ranges_cmp.h (__cpp_lib_ranges): Bump value
4754         for C++23.
4755         * include/std/ranges (range_adaptor_closure): Define for C++23.
4756         * include/std/version (__cpp_lib_ranges): Bump value for
4757         C++23.
4758         * testsuite/std/ranges/version_c++23.cc: Bump expected value
4759         of __cpp_lib_ranges.
4760         * testsuite/std/ranges/range_adaptor_closure.cc: New test.
4762 2023-04-18  Patrick Palka  <ppalka@redhat.com>
4764         * include/bits/ranges_algo.h (__cpp_lib_ranges_contains):
4765         Define for C++23.
4766         (__cpp_lib_ranges_iota): Likewise.
4767         (__cpp_lib_ranges_find_last): Likewise.
4768         (__cpp_lib_fold): Rename to ...
4769         (__cpp_lib_ranges_fold): ... this.
4770         * include/std/version: As above.
4771         * testsuite/25_algorithms/fold_left/1.cc: Adjust after
4772         renaming __cpp_lib_fold.
4773         * testsuite/std/ranges/version_c++23.cc: Verify values
4774         of the above feature-test macros.
4776 2023-04-18  Patrick Palka  <ppalka@redhat.com>
4778         PR libstdc++/109525
4779         * include/std/ranges (views::_AsConst::operator()): Add
4780         missing const to constant_range test.
4781         * testsuite/std/ranges/adaptors/as_const/1.cc (test02):
4782         Improve formatting.  Adjust expected type of v2.
4783         (test03): New test.
4785 2023-04-14  Patrick Palka  <ppalka@redhat.com>
4787         * include/bits/ranges_base.h (const_iterator_t): Define for C++23.
4788         (const_sentinel_t): Likewise.
4789         (range_const_reference_t): Likewise.
4790         (constant_range): Likewise.
4791         (__cust_access::__possibly_const_range): Likewise, replacing ...
4792         (__cust_access::__as_const): ... this.
4793         (__cust_access::_CBegin::operator()): Redefine for C++23 as per P2278R4.
4794         (__cust_access::_CEnd::operator()): Likewise.
4795         (__cust_access::_CRBegin::operator()): Likewise.
4796         (__cust_access::_CREnd::operator()): Likewise.
4797         (__cust_access::_CData::operator()): Likewise.
4798         * include/bits/ranges_util.h (ranges::__detail::__different_from):
4799         Make it an alias of std::__detail::__different_from.
4800         (view_interface::cbegin): Define for C++23.
4801         (view_interface::cend): Likewise.
4802         * include/bits/stl_iterator.h (__detail::__different_from): Define.
4803         (iter_const_reference_t): Define for C++23.
4804         (__detail::__constant_iterator): Likewise.
4805         (__detail::__is_const_iterator): Likewise.
4806         (__detail::__not_a_const_iterator): Likewise.
4807         (__detail::__iter_const_rvalue_reference_t): Likewise.
4808         (__detail::__basic_const_iter_cat):: Likewise.
4809         (const_iterator): Likewise.
4810         (__detail::__const_sentinel): Likewise.
4811         (const_sentinel): Likewise.
4812         (basic_const_iterator): Likewise.
4813         (common_type<basic_const_iterator<_Tp>, _Up>): Likewise.
4814         (common_type<_Up, basic_const_iterator<_Tp>>): Likewise.
4815         (common_type<basic_const_iterator<_Tp>, basic_const_iterator<Up>>):
4816         Likewise.
4817         (make_const_iterator): Define for C++23.
4818         (make_const_sentinel): Likewise.
4819         * include/std/ranges (__cpp_lib_ranges_as_const): Likewise.
4820         (as_const_view): Likewise.
4821         (enable_borrowed_range<as_const_view>): Likewise.
4822         (views::__detail::__is_ref_view): Likewise.
4823         (views::__detail::__can_is_const_view): Likewise.
4824         (views::_AsConst, views::as_const): Likewise.
4825         * include/std/span (span::const_iterator): Likewise.
4826         (span::const_reverse_iterator): Likewise.
4827         (span::cbegin): Likewise.
4828         (span::cend): Likewise.
4829         (span::crbegin): Likewise.
4830         (span::crend): Likewise.
4831         * include/std/version (__cpp_lib_ranges_as_const): Likewise.
4832         * testsuite/std/ranges/adaptors/join.cc (test06): Adjust to
4833         behave independently of C++20 vs C++23.
4834         * testsuite/std/ranges/version_c++23.cc: Verify value of
4835         __cpp_lib_ranges_as_const macro.
4836         * testsuite/24_iterators/const_iterator/1.cc: New test.
4837         * testsuite/std/ranges/adaptors/as_const/1.cc: New test.
4839 2023-04-14  Patrick Palka  <ppalka@redhat.com>
4841         * include/bits/ranges_base.h (__cust_access::__as_const)
4842         (__cust_access::_CBegin, __cust::cbegin)
4843         (__cust_access::_CEnd, __cust::cend)
4844         (__cust_access::_CRBegin, __cust::crbegin)
4845         (__cust_access::_CREnd, __cust::crend)
4846         (__cust_access::_CData, __cust::cdata): Move down definitions to
4847         shortly after the definition of input_range.
4849 2023-04-14  Patrick Palka  <ppalka@redhat.com>
4851         * include/bits/ranges_algo.h: Include <optional> for C++23.
4852         (__cpp_lib_fold): Define for C++23.
4853         (in_value_result): Likewise.
4854         (__detail::__flipped): Likewise.
4855         (__detail::__indirectly_binary_left_foldable_impl): Likewise.
4856         (__detail::__indirectly_binary_left_foldable): Likewise.
4857         (___detail:__indirectly_binary_right_foldable): Likewise.
4858         (fold_left_with_iter_result): Likewise.
4859         (__fold_left_with_iter_fn, fold_left_with_iter): Likewise.
4860         (__fold_left_fn, fold_left): Likewise.
4861         (__fold_left_first_with_iter_fn, fold_left_first_with_iter):
4862         Likewise.
4863         (__fold_left_first_fn, fold_left_first): Likewise.
4864         (__fold_right_fn, fold_right): Likewise.
4865         (__fold_right_last_fn, fold_right_last): Likewise.
4866         * include/std/version (__cpp_lib_fold): Likewise.
4867         * testsuite/25_algorithms/fold_left/1.cc: New test.
4868         * testsuite/25_algorithms/fold_right/1.cc: New test.
4870 2023-04-14  Jonathan Wakely  <jwakely@redhat.com>
4872         * include/std/format (formatter): Add comment to deleted default
4873         constructor of primary template.
4874         (_Checking_scanner): Add static_assert.
4876 2023-04-12  Jonathan Wakely  <jwakely@redhat.com>
4878         * doc/xml/manual/using.xml: Document libstdc++exp.a library.
4879         * doc/html/*: Regenerate.
4881 2023-04-12  Jonathan Wakely  <jwakely@redhat.com>
4883         * testsuite/17_intro/names.cc [_AIX]: Do not define policy.
4884         * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Rename
4885         namespace to avoid clashing with libc struct.
4886         * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
4887         Likewise.
4888         * testsuite/23_containers/unordered_map/96088.cc: Skip on AIX.
4889         * testsuite/23_containers/unordered_multimap/96088.cc: Likewise.
4890         * testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
4891         * testsuite/23_containers/unordered_set/96088.cc: Likewise.
4892         * testsuite/experimental/synchronized_value.cc: Require gthreads
4893         and add missing option for pthreads targets.
4895 2023-04-12  Patrick Palka  <ppalka@redhat.com>
4897         * include/std/ranges (__cpp_lib_ranges_enumerate): Define
4898         for C++23.
4899         (__detail::__range_with_movable_reference): Likewise.
4900         (enumerate_view): Likewise.
4901         (enumerate_view::_Iterator): Likewise.
4902         (enumerate_view::_Sentinel): Likewise.
4903         (views::__detail::__can_enumerate_view): Likewise.
4904         (views::_Enumerate, views::enumerate): Likewise.
4905         * include/std/version (__cpp_lib_ranges_enumerate): Likewise.
4906         * testsuite/std/ranges/version_c++23.cc: Verify value of
4907         __cpp_lib_ranges_enumerate.
4908         * testsuite/std/ranges/adaptors/enumerate/1.cc: New test.
4910 2023-04-12  Patrick Palka  <ppalka@redhat.com>
4912         * include/std/ranges (lazy_split_view::_OuterIter::_OuterIter):
4913         Propagate _M_trailing_empty in the const-converting constructor
4914         as per LWG 3904.
4915         * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): Correct
4916         assertion.
4917         * testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test.
4919 2023-04-12  Patrick Palka  <ppalka@redhat.com>
4921         * src/c++17/floating_from_chars.cc: Include <algorithm>,
4922         <iterator>, <limits> and <cstdint>.
4924 2023-04-12  Patrick Palka  <ppalka@redhat.com>
4926         PR libstdc++/108291
4927         * include/std/ranges (chunk_by_view::_M_find_next): Generalize
4928         parameter types of the lambda wrapper passed to adjacent_find.
4929         (chunk_by_view::_M_find_prev): Likewise.
4930         * testsuite/std/ranges/adaptors/chunk_by/1.cc (test04, test05):
4931         New tests.
4933 2023-04-12  Jonathan Wakely  <jwakely@redhat.com>
4935         PR libstdc++/109482
4936         * include/experimental/internet (basic_endpoint::basic_endpoint()):
4937         Ensure that the required union members are active. Only define
4938         as constexpr for C++20 and later.
4939         (basic_endpoint::basic_endpoint(const protocol_type&, port_type)):
4940         Likewise.
4941         * testsuite/experimental/net/internet/endpoint/cons.cc: Only
4942         check constexpr default constructor for C++20 and later.
4943         * testsuite/experimental/net/internet/endpoint/extensible.cc:
4944         Likewise.
4946 2023-04-12  Jonathan Wakely  <jwakely@redhat.com>
4948         * src/c++20/tzdata.zi: Import new file from 2023c release.
4950 2023-04-05  Arsen Arsenović  <arsen@aarsen.me>
4952         * include/precompiled/stdc++.h (C++17): Don't double-include
4953         <charconv>, once with wrong conditions.
4954         * testsuite/18_support/96817.cc: Require hosted.
4955         * testsuite/18_support/bad_exception/59392.cc: Ditto.
4956         * testsuite/20_util/scoped_allocator/108952.cc: Ditto.
4957         * testsuite/20_util/uses_allocator/lwg3527.cc: Ditto.
4958         * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
4959         Ditto.
4961 2023-04-05  Arsen Arsenović  <arsen@aarsen.me>
4963         * include/bits/c++config: When __STDC_HOSTED__ is zero,
4964         disable _GLIBCXX_DEBUG and, if it was set, enable
4965         _GLIBCXX_ASSERTIONS.
4966         * testsuite/lib/libstdc++.exp (check_v3_target_debug_mode):
4967         Include <bits/c++config.h> when determining whether debug is
4968         set, in order to inherit the logic from above
4970 2023-04-05  Arsen Arsenović  <arsen@aarsen.me>
4972         * testsuite/17_intro/versionconflict.cc: New test.
4973         * include/std/version: Allow disabling the system_header pragma
4974         via _GLIBCXX_TESTING_SYSHDR.
4976 2023-04-05  Arsen Arsenović  <arsen@aarsen.me>
4978         * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
4979         Synchronize the definition block with...
4980         * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory):
4981         ... this one here.  Also define the 202202L value, rather than
4982         leaving it up to purely unique_ptr.h, so that the value is
4983         synchronized across all headers.
4984         (__gnu_debug::_Safe_iterator_base): Move into new conditional
4985         block.
4986         * include/std/memory (__cpp_lib_atomic_value_initialization):
4987         Define on freestanding under the same conditions as in
4988         atomic_base.h.
4989         * include/std/version (__cpp_lib_robust_nonmodifying_seq_ops):
4990         Also define on freestanding.
4991         (__cpp_lib_to_chars): Ditto.
4992         (__cpp_lib_gcd): Ditto.
4993         (__cpp_lib_gcd_lcm): Ditto.
4994         (__cpp_lib_raw_memory_algorithms): Ditto.
4995         (__cpp_lib_array_constexpr): Ditto.
4996         (__cpp_lib_nonmember_container_access): Ditto.
4997         (__cpp_lib_clamp): Ditto.
4998         (__cpp_lib_constexpr_char_traits): Ditto.
4999         (__cpp_lib_constexpr_string): Ditto.
5000         (__cpp_lib_sample): Ditto.
5001         (__cpp_lib_lcm): Ditto.
5002         (__cpp_lib_constexpr_iterator): Ditto.
5003         (__cpp_lib_constexpr_char_traits): Ditto.
5004         (__cpp_lib_interpolate): Ditto.
5005         (__cpp_lib_constexpr_utility): Ditto.
5006         (__cpp_lib_shift): Ditto.
5007         (__cpp_lib_ranges): Ditto.
5008         (__cpp_lib_move_iterator_concept): Ditto.
5009         (__cpp_lib_constexpr_numeric): Ditto.
5010         (__cpp_lib_constexpr_functional): Ditto.
5011         (__cpp_lib_constexpr_algorithms): Ditto.
5012         (__cpp_lib_constexpr_tuple): Ditto.
5013         (__cpp_lib_constexpr_memory): Ditto.
5015 2023-04-05  John David Anglin  <danglin@gcc.gnu.org>
5017         * testsuite/22_locale/locale/cons/12658_thread-2.cc: Double
5018         timeout factor on hppa*-*-*.
5020 2023-04-05  Jonathan Wakely  <jwakely@redhat.com>
5022         * include/bits/regex.h (sub_match::swap): New function.
5023         * testsuite/28_regex/sub_match/lwg3204.cc: New test.
5025 2023-04-04  Jonathan Wakely  <jwakely@redhat.com>
5027         * doc/xml/manual/extensions.xml: Remove std::bad_exception from
5028         example program.
5029         * doc/html/manual/ext_demangling.html: Regenerate.
5031 2023-03-31  Jonathan Wakely  <jwakely@redhat.com>
5033         PR tree-optimization/107087
5034         * include/bits/cow_string.h (basic_string::size()): Add
5035         optimizer hint that _S_empty_rep()._M_length is always zero.
5036         (basic_string::length()): Call size().
5038 2023-03-31  Jonathan Wakely  <jwakely@redhat.com>
5040         PR libstdc++/109339
5041         * include/std/stop_token (_Stop_state_ptr(const stop_source&)):
5042         Add attribute access with access-mode 'none'.
5043         * testsuite/30_threads/stop_token/stop_source/109339.cc: New test.
5045 2023-03-31  Jonathan Wakely  <jwakely@redhat.com>
5047         * include/experimental/internet (ip::basic_endpoint::_M_if_v6):
5048         Revert change from member function to data member. Fix for
5049         constant evaluation by detecting which union member is active.
5050         (ip::basic_endpoint::resize): Revert changes to update _M_is_v6
5051         flag.
5053 2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
5055         PR libstdc++/109242
5056         * testsuite/20_util/optional/monadic/pr109340.cc: Moved to...
5057         * testsuite/20_util/optional/monadic/pr109242.cc: ...here.
5059 2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
5061         * include/experimental/internet (ip::make_address): Implement
5062         missing overload.
5063         (ip::address_v4::broadcast()): Avoid undefined shift.
5064         (ip::basic_endpoint): Fix member functions for constexpr.
5065         (ip::basic_endpoint::_M_is_v6): Replace member function with
5066         data member, adjust member functions using it.
5067         (ip::basic_endpoint::resize): Update _M_is_v6 based on sockaddr
5068         content.
5069         * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
5070         constexpr checks to work in C++14.
5071         * testsuite/experimental/net/internet/address/v4/creation.cc:
5072         Likewise.
5073         * testsuite/experimental/net/internet/endpoint/cons.cc:
5074         Likewise.
5075         * testsuite/experimental/net/internet/network/v4/cons.cc:
5076         Likewise.
5077         * testsuite/experimental/net/internet/network/v4/members.cc:
5078         Likewise.
5079         * testsuite/experimental/net/internet/endpoint/extensible.cc: New test.
5081 2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
5083         * include/std/expected (expected::value() &): Use const lvalue
5084         for unex member passed to bad_expected_access constructor, as
5085         per LWG 3843.
5087 2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
5089         PR libstdc++/109340
5090         * include/std/expected (expected::transform): Use
5091         std::remove_cv_t instead of std::remove_cvref_t.
5092         (expected::transform_error): Likewise.
5093         (expected<cv void, E>::transform): Likewise.
5094         (expected<cv void, E>::transform_error): Likewise.
5095         * include/std/optional (transform): Use std::remove_cv_t.
5096         * testsuite/20_util/optional/monadic/pr109340.cc: New test.
5098 2023-03-29  Jonathan Wakely  <jwakely@redhat.com>
5100         * include/std/optional (optional): Adjust static assertion to
5101         reject arrays and functions as well as references.
5102         * testsuite/20_util/optional/requirements_neg.cc: New test.
5104 2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
5106         PR libstdc++/103387
5107         * include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use
5108         std::use_facet instead of cached _M_num_get facet.
5109         (istream::operator>>(short&)): Likewise.
5110         (istream::operator>>(int&)): Likewise.
5111         * include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use
5112         std::use_facet instead of cached _M_num_put facet.
5114 2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
5116         * include/bits/char_traits.h (char_traits::copy): Return without
5117         using memcpy if n==0.
5118         (char_traits::assign): Likewise for memset.
5120 2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
5122         PR libstdc++/109299
5123         * include/bits/basic_string.h (basic_string::_M_is_local()): Add
5124         hint for compiler that local strings fit in the local buffer.
5126 2023-03-28  Jonathan Wakely  <jwakely@redhat.com>
5128         PR libstdc++/109288
5129         * include/std/chrono (__detail::__get_leap_second_info): Update
5130         expiry date of hardcoded leapseconds list.
5131         * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds()):
5132         Likewise.
5133         * src/c++20/tzdata.zi: Import new file from 2023a release.
5134         * testsuite/std/time/time_zone/get_info_local.cc: Only check
5135         transitions for Egypt up to 2014.
5137 2023-03-28  Matthias Kretz  <m.kretz@gsi.de>
5139         * include/experimental/bits/simd.h (is_simd_flag_type): New.
5140         (_IsSimdFlagType): New.
5141         (copy_from, copy_to, load ctors): Constrain _Flags using
5142         _IsSimdFlagType.
5144 2023-03-28  Matthias Kretz  <m.kretz@gsi.de>
5146         * include/experimental/bits/simd_x86.h (_SimdImplX86): Use
5147         _Base::_S_divides if the optimized _S_divides function is hidden
5148         via the preprocessor.
5150 2023-03-27  Jakub Jelinek  <jakub@redhat.com>
5152         * testsuite/experimental/net/timer/waitable/dest.cc: Avoid -Wformat
5153         warning if size_t is not unsigned long.
5155 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
5157         * include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)):
5158         Add overload, as per LWG 3893.
5159         * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
5160         Check assignment from nullptr.
5162 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
5164         * include/std/format (formatter<const charT[N], charT>): Do not
5165         define partial speclialization, as per LWG 3833.
5166         * testsuite/std/format/formatter/requirements.cc: Check it.
5168 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
5170         * include/std/utility (__cpp_lib_constexpr_algorithms): Define,
5171         as per LWG 3792.
5172         * testsuite/20_util/exchange/constexpr.cc: Check for it.
5174 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
5176         * include/std/version (__cpp_lib_format): Define.
5177         * testsuite/std/format/functions/format.cc: Check it.
5179 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
5181         * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
5182         Pass rvalues to the callback, as now allowed by LWG 3645.
5183         Enforce preconditions on the return value.
5184         * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
5185         Adjust.
5187 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
5189         * include/std/format: Add a comment noting that the resolution
5190         of LWG 3720 has been applied..
5192 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
5194         * include/bits/regex.h (match_results): Add allocator-extended
5195         copy and move constructors, as per LWG 2195.
5196         * testsuite/28_regex/match_results/ctors/char/alloc.cc: New test.
5198 2023-03-22  Jonathan Wakely  <jwakely@redhat.com>
5200         * include/bits/stream_iterator.h (istream_iterator): Add
5201         constexpr to copy constructor, as per LWG 3600.
5202         * testsuite/24_iterators/istream_iterator/cons/constexpr.cc:
5203         Check copy construction.
5205 2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
5207         * include/experimental/bits/simd_x86.h
5208         (_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
5209         with __RECIPROCAL_MATH__.
5211 2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
5213         * include/experimental/bits/simd_detail.h: Don't define
5214         _GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang.
5215         * include/experimental/bits/simd_x86.h (_S_divides): Remove
5216         check for __clang__.
5218 2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
5220         * include/experimental/bits/simd_detail.h: Don't declare the
5221         simd API as constexpr with Clang.
5222         * include/experimental/bits/simd_x86.h (__movm): New.
5223         (_S_blend_avx512): Resolve FIXME. Implement blend using __movm
5224         and ?:.
5225         (_SimdImplX86::_S_masked_unary): Clang does not implement the
5226         same builtins. Implement the function using __movm, ?:, and -
5227         operators on vector_size types instead.
5229 2023-03-21  Matthias Kretz  <m.kretz@gsi.de>
5231         * testsuite/experimental/simd/tests/operators.cc: Clang doesn't
5232         define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
5234 2023-03-20  Jonathan Wakely  <jwakely@redhat.com>
5236         * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix
5237         formatting.
5239 2023-03-20  Marek Polacek  <polacek@redhat.com>
5241         PR c++/109159
5242         * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust dg-error.
5243         * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
5244         * testsuite/23_containers/span/explicit.cc: Likewise.
5246 2023-03-20  Jonathan Wakely  <jwakely@redhat.com>
5248         PR libstdc++/109182
5249         * include/std/expected (expected<void>::expected(in_place_t)):
5250         Remove template-head.
5252 2023-03-18  Jonathan Wakely  <jwakely@redhat.com>
5254         PR libstdc++/109165
5255         * testsuite/18_support/coroutines/hash.cc: Use const object
5256         in second call.
5258 2023-03-17  Jonathan Wakely  <jwakely@redhat.com>
5260         PR libstdc++/109165
5261         * include/std/coroutine (hash<>::operator()): Add const.
5262         * testsuite/18_support/coroutines/hash.cc: New test.
5264 2023-03-14  Patrick Palka  <ppalka@redhat.com>
5266         PR libstdc++/109111
5267         * include/std/ranges (repeat_view): Remove redundant parentheses
5268         in requires-clause.
5269         (repeat_view::_Iterator): Correct the requires-clause.
5271 2023-03-14  Patrick Palka  <ppalka@redhat.com>
5273         * include/bits/stl_iterator.h (move_iterator::_S_iter_concept):
5274         Define.
5275         (__cpp_lib_move_iterator_concept): Define for C++20.
5276         (move_iterator::iterator_concept): Strengthen as per P2520R0.
5277         * include/std/version (__cpp_lib_move_iterator_concept): Define
5278         for C++20.
5279         * testsuite/24_iterators/move_iterator/p2520r0.cc: New test.
5281 2023-03-14  Patrick Palka  <ppalka@redhat.com>
5283         * include/bits/ranges_util.h (view_interface::empty): Add
5284         preferred overloads that use ranges::size when the range is
5285         sized as per LWG 3715.
5286         * testsuite/std/ranges/adaptors/lwg3715.cc: New test.
5288 2023-03-14  Jonathan Wakely  <jwakely@redhat.com>
5290         * include/bits/chrono.h (__is_duration_v, __is_time_point_v):
5291         Only define for C++17 and later.
5293 2023-03-14  Jonathan Wakely  <jwakely@redhat.com>
5295         * src/Makefile.am: Add comment about linker script fragments.
5296         * src/Makefile.in: Regenerate.
5298 2023-03-14  Jonathan Wakely  <jwakely@redhat.com>
5300         PR libstdc++/62196
5301         * include/bits/mask_array.h (mask_array): Add assertions to
5302         assignment operators.
5303         * include/std/valarray (valarray::operator[](valarray<bool>)):
5304         Add assertions.
5305         * testsuite/26_numerics/valarray/mask-1_neg.cc: New test.
5306         * testsuite/26_numerics/valarray/mask-2_neg.cc: New test.
5307         * testsuite/26_numerics/valarray/mask-3_neg.cc: New test.
5308         * testsuite/26_numerics/valarray/mask-4_neg.cc: New test.
5309         * testsuite/26_numerics/valarray/mask-5_neg.cc: New test.
5310         * testsuite/26_numerics/valarray/mask-6_neg.cc: New test.
5311         * testsuite/26_numerics/valarray/mask-7_neg.cc: New test.
5312         * testsuite/26_numerics/valarray/mask-8_neg.cc: New test.
5313         * testsuite/26_numerics/valarray/mask.cc: New test.
5315 2023-03-13  Jakub Jelinek  <jakub@redhat.com>
5317         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
5318         * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5320 2023-03-13  Jonathan Wakely  <jwakely@redhat.com>
5322         * doc/Makefile.am: Add comment referring to documentation.
5323         * doc/Makefile.in: Regenerate.
5325 2023-03-13  Jonathan Wakely  <jwakely@redhat.com>
5327         * doc/html/*: Regenerate.
5329 2023-03-13  Jonny Grant  <jg@jguk.org>
5331         * doc/xml/faq.xml: Update copyright year.
5333 2023-03-13  Jonathan Wakely  <jwakely@redhat.com>
5335         * include/bits/allocator.h: Fix typo in comment.
5337 2023-03-12  Jakub Jelinek  <jakub@redhat.com>
5339         * config/abi/pre/gnu.ver (CXXABI_1.3.14): Also export __bf16 tinfos
5340         if it isn't mangled as DF16b but u6__bf16.
5342 2023-03-12  Gerald Pfeifer  <gerald@pfeifer.com>
5344         * doc/xml/manual/documentation_hacking.xml: Move www.graphviz.org
5345         to https.
5346         * doc/html/manual/documentation_hacking.html: Regenerate.
5348 2023-03-10  Jonathan Wakely  <jwakely@redhat.com>
5350         PR libstdc++/109064
5351         * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
5352         Remove self-recursion in __init__. Add missing _supports.
5353         * testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
5354         and unique().
5356 2023-03-09  Patrick Palka  <ppalka@redhat.com>
5358         * include/std/ranges
5359         (cartesian_product_view::_Iterator::_Iterator): Remove
5360         constraint on default constructor as per LWG 3849.
5361         (cartesian_product_view::_Iterator::_M_prev): Adjust position
5362         of _Nm > 0 test as per LWG 3820.
5363         (cartesian_product_view::_Iterator::_M_advance): Perform bounds
5364         checking only on sized cartesian products.
5365         * testsuite/std/ranges/cartesian_product/1.cc (test08): New test.
5367 2023-03-09  Patrick Palka  <ppalka@redhat.com>
5369         PR libstdc++/109024
5370         * include/std/ranges (chunk_by_view::_M_pred): Remove DMI as per
5371         LWG 3796.
5372         (repeat_view::_M_pred): Likewise.
5373         * testsuite/std/ranges/adaptors/chunk_by/1.cc (test03): New test.
5374         * testsuite/std/ranges/repeat/1.cc (test05): New test.
5376 2023-03-09  Patrick Palka  <ppalka@redhat.com>
5378         PR libstdc++/108362
5379         * include/std/ranges (__detail::__can_single_view): New concept.
5380         (_Single::operator()): Constrain it.  Move [[nodiscard]] to the
5381         end of the function declarator.
5382         (__detail::__can_iota_view): New concept.
5383         (_Iota::operator()): Constrain it.  Move [[nodiscard]] to the
5384         end of the function declarator.
5385         (__detail::__can_istream_view): New concept.
5386         (_Istream::operator()): Constrain it.  Move [[nodiscard]] to the
5387         end of the function declarator.
5388         * testsuite/std/ranges/iota/iota_view.cc (test07): New test.
5389         * testsuite/std/ranges/istream_view.cc (test08): New test.
5390         * testsuite/std/ranges/single_view.cc (test07): New test.
5392 2023-03-09  Patrick Palka  <ppalka@redhat.com>
5394         PR libstdc++/107572
5395         * include/std/ranges (cartesian_product_view::end): When
5396         building the tuple of iterators, avoid calling ranges::begin on
5397         the first range if __empty_tail is false.
5398         * testsuite/std/ranges/cartesian_product/1.cc (test07): New test.
5400 2023-03-09  Jonathan Wakely  <jwakely@redhat.com>
5402         PR libstdc++/108882
5403         * config/os/gnu-linux/ldbl-ieee128-extra.ver: Fix incorrect
5404         patterns.
5406 2023-03-07  Jakub Jelinek  <jakub@redhat.com>
5408         * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
5409         * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
5410         * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
5411         * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
5412         * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
5414 2023-03-07  Jonathan Wakely  <jwakely@redhat.com>
5416         PR libstdc++/108882
5417         * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Adjust patterns to
5418         not match symbols in namespace std::__gnu_cxx11_ieee128.
5419         * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add patterns for
5420         std::__gnu_cxx11_ieee128::money_{get,put}.
5422 2023-03-07  Jonathan Wakely  <jwakely@redhat.com>
5424         * libsupc++/eh_personality.cc: Fix spelling in comment.
5426 2023-03-03  Alexandre Oliva  <oliva@adacore.com>
5428         * testsuite/30_threads/async/async.cc (test04): Initialize
5429         steady_start, renamed from steady_begin, next to slow_start.
5430         Increase tolerance for final wait.
5432 2023-03-03  Alexandre Oliva  <oliva@adacore.com>
5434         * testsuite/libstdc++-prettyprinters/80276.cc: Add
5435         std::string to debug info.
5436         * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
5438 2023-03-03  Alexandre Oliva  <oliva@adacore.com>
5440         PR libstdc++/104852
5441         PR libstdc++/95989
5442         PR libstdc++/52590
5443         * include/bits/std_thread.h (thread::_M_thread_deps): New
5444         static implicitly-inline member function.
5445         (std::thread template ctor): Pass it to _M_start_thread.
5446         * src/c++11/thread.cc (thread::_M_start_thread): Name depend
5447         parameter, force it live on entry.
5449 2023-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5451         * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
5452         * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
5453         Likewise.
5454         * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
5455         * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
5456         Likewise.
5458 2023-03-01  Jonathan Wakely  <jwakely@redhat.com>
5460         * include/bits/cow_string.h: Fix typo in comment.
5462 2023-03-01  Jonathan Wakely  <jwakely@redhat.com>
5464         * src/c++20/tzdb.cc (chrono::tzdb::current_zone()) Use "UTC" if
5465         current time zone cannot be determined.
5466         * testsuite/std/time/tzdb/1.cc: Remove conditions based on
5467         HAVE_TZDB macro and test all members unconditionally.
5469 2023-02-28  Jonathan Wakely  <jwakely@redhat.com>
5471         PR libstdc++/108952
5472         * include/bits/uses_allocator_args.h
5473         (uses_allocator_construction_args): Implement LWG 3527.
5474         * testsuite/20_util/pair/astuple/get-2.cc: New test.
5475         * testsuite/20_util/scoped_allocator/108952.cc: New test.
5476         * testsuite/20_util/uses_allocator/lwg3527.cc: New test.
5478 2023-02-28  Jonathan Wakely  <jwakely@redhat.com>
5480         PR libstdc++/108846
5481         * include/bits/stl_algobase.h (__copy_move<false, false, RA>)
5482         Add __assign_one static member function.
5483         (__copy_move<true, false, RA>): Likewise.
5484         (__copy_move<IsMove, true, RA>): Do not use memmove for a single
5485         value.
5486         (__copy_move_backward<IsMove, true, RA>): Likewise.
5487         * testsuite/25_algorithms/copy/108846.cc: New test.
5488         * testsuite/25_algorithms/copy_backward/108846.cc: New test.
5489         * testsuite/25_algorithms/copy_n/108846.cc: New test.
5490         * testsuite/25_algorithms/move/108846.cc: New test.
5491         * testsuite/25_algorithms/move_backward/108846.cc: New test.
5493 2023-02-28  Jonathan Wakely  <jwakely@redhat.com>
5495         * src/c++11/codecvt.cc: Add [[likely]] and [[unlikely]]
5496         attributes.
5498 2023-02-27  Jonathan Wakely  <jwakely@redhat.com>
5500         * include/bits/basic_ios.h (basic_ios::_M_setstate): Add
5501         caveat to comment.
5502         * include/bits/basic_string.h (resize_and_overwrite): Add
5503         doxygen comment.
5505 2023-02-24  Matthias Kretz  <m.kretz@gsi.de>
5507         * include/experimental/bits/simd.h: Line breaks and indenting
5508         fixed to follow the libstdc++ standard.
5509         * include/experimental/bits/simd_builtin.h: Likewise.
5510         * include/experimental/bits/simd_fixed_size.h: Likewise.
5511         * include/experimental/bits/simd_neon.h: Likewise.
5512         * include/experimental/bits/simd_ppc.h: Likewise.
5513         * include/experimental/bits/simd_scalar.h: Likewise.
5514         * include/experimental/bits/simd_x86.h: Likewise.
5516 2023-02-24  Matthias Kretz  <m.kretz@gsi.de>
5518         PR libstdc++/108030
5519         * include/experimental/bits/simd_fixed_size.h
5520         (_SimdImplFixedSize::_S_broadcast): Replace inline with
5521         _GLIBCXX_SIMD_INTRINSIC.
5522         (_SimdImplFixedSize::_S_generate): Likewise.
5523         (_SimdImplFixedSize::_S_load): Likewise.
5524         (_SimdImplFixedSize::_S_masked_load): Likewise.
5525         (_SimdImplFixedSize::_S_store): Likewise.
5526         (_SimdImplFixedSize::_S_masked_store): Likewise.
5527         (_SimdImplFixedSize::_S_min): Likewise.
5528         (_SimdImplFixedSize::_S_max): Likewise.
5529         (_SimdImplFixedSize::_S_complement): Likewise.
5530         (_SimdImplFixedSize::_S_unary_minus): Likewise.
5531         (_SimdImplFixedSize::_S_plus): Likewise.
5532         (_SimdImplFixedSize::_S_minus): Likewise.
5533         (_SimdImplFixedSize::_S_multiplies): Likewise.
5534         (_SimdImplFixedSize::_S_divides): Likewise.
5535         (_SimdImplFixedSize::_S_modulus): Likewise.
5536         (_SimdImplFixedSize::_S_bit_and): Likewise.
5537         (_SimdImplFixedSize::_S_bit_or): Likewise.
5538         (_SimdImplFixedSize::_S_bit_xor): Likewise.
5539         (_SimdImplFixedSize::_S_bit_shift_left): Likewise.
5540         (_SimdImplFixedSize::_S_bit_shift_right): Likewise.
5541         (_SimdImplFixedSize::_S_remquo): Add inline keyword (to be
5542         explicit about not always-inline, yet).
5543         (_SimdImplFixedSize::_S_isinf): Likewise.
5544         (_SimdImplFixedSize::_S_isfinite): Likewise.
5545         (_SimdImplFixedSize::_S_isnan): Likewise.
5546         (_SimdImplFixedSize::_S_isnormal): Likewise.
5547         (_SimdImplFixedSize::_S_signbit): Likewise.
5549 2023-02-24  Matthias Kretz  <m.kretz@gsi.de>
5551         PR libstdc++/108856
5552         * include/experimental/bits/simd_builtin.h
5553         (_SimdImplBuiltin::_S_masked_unary): More efficient
5554         implementation of masked inc-/decrement for integers and floats
5555         without AVX2.
5556         * include/experimental/bits/simd_x86.h
5557         (_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract
5558         builtins for masked inc-/decrement.
5560 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
5562         * include/experimental/executor (executor): Constrain template
5563         constructors.
5565 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
5567         * include/experimental/internet (basic_endpoint): Add missing
5568         constexpr to comparison operators.
5569         * testsuite/experimental/net/internet/endpoint/cons.cc: New test.
5571 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
5573         * include/experimental/internet (network_v4::netmask()): Avoid
5574         undefined shift.
5575         (network_v4::broadcast()): Optimize and fix for targets with
5576         uint_least32_t wider than 32 bits.
5577         (network_v4::to_string(const Allocator&)): Fix for custom
5578         allocators and optimize using to_chars.
5579         (operator==(const network_v4&, const network_v4&)): Add missing
5580         constexpr.
5581         (operator==(const network_v6&, const network_v6&)): Likewise.
5582         * testsuite/experimental/net/internet/network/v4/cons.cc: New test.
5583         * testsuite/experimental/net/internet/network/v4/members.cc: New test.
5585 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
5587         * include/experimental/internet (address_4(const bytes_type&)):
5588         Use __builtin_bit_cast if available, otherwise convert to
5589         network byte order.
5590         (address_v4::to_bytes()): Likewise, but convert from network
5591         byte order.
5592         * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
5593         incorrect tests. Check for constexpr too.
5594         * testsuite/experimental/net/internet/address/v4/creation.cc:
5595         Likewise.
5596         * testsuite/experimental/net/internet/address/v4/members.cc:
5597         Check that bytes_type is a standard-layout type.
5599 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
5601         * include/experimental/internet (address_v4::to_string):
5602         Optimize.
5603         * testsuite/experimental/net/internet/address/v4/members.cc:
5604         Check more addresses.
5606 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
5608         * include/ext/aligned_buffer.h (__aligned_buffer): Add
5609         diagnostic pragmas.
5611 2023-02-24  Jonathan Wakely  <jwakely@redhat.com>
5613         * testsuite/std/format/arguments/lwg3810.cc: Move dg-options
5614         before dg-do.
5616 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
5618         * testsuite/experimental/simd/tests/reductions.cc: Introduce
5619         max_distance as the type-dependent max error.
5621 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
5623         * include/experimental/bits/simd_builtin.h (_S_set): Compare as
5624         int. The actual range of these indexes is very small.
5626 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
5628         * include/experimental/bits/simd_x86.h (_S_bit_shift_left)
5629         (_S_bit_shift_right): Declare constexpr. The implementation was
5630         already expecting constexpr evaluation.
5632 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
5634         PR libstdc++/108030
5635         * include/experimental/bits/simd_detail.h
5636         (_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for
5637         __clang__.
5639 2023-02-23  Matthias Kretz  <m.kretz@gsi.de>
5641         PR libstdc++/108030
5642         * include/experimental/bits/simd.h (__vector_broadcast):
5643         Implement via __vector_broadcast_impl instead of
5644         __call_with_n_evaluations + 2 lambdas.
5645         (__vector_broadcast_impl): New.
5647 2023-02-22  Alexandre Oliva  <oliva@adacore.com>
5649         * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex):
5650         Avoid destruction of the mutex pool.
5652 2023-02-22  Alexandre Oliva  <oliva@adacore.com>
5654         * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: xfail
5655         on vxworks.
5656         * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
5657         Likewise.
5659 2023-02-22  Alexandre Oliva  <oliva@adacore.com>
5661         * testsuite/17_intro/names.cc: Undef func on vxworks >= 7 in
5662         kernel mode.
5664 2023-02-20  Andreas Schwab  <schwab@linux-m68k.org>
5666         * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
5668 2023-02-20  Matthias Kretz  <m.kretz@gsi.de>
5670         * include/experimental/bits/simd.h (__extract_part, split):
5671         Use reserved name for template parameter.
5673 2023-02-20  Andreas Schwab  <schwab@suse.de>
5675         * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
5677 2023-02-18  Gerald Pfeifer  <gerald@pfeifer.com>
5679         * doc/xml/faq.xml: Switch two links to www.open-std.org to https.
5680         * doc/html/faq.html: Regenerate.
5682 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
5684         * include/experimental/bits/simd_math.h (__hypot): Bitcasting
5685         between scalars requires the __bit_cast helper function instead
5686         of simd_bit_cast.
5688 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
5690         * include/experimental/bits/simd_x86.h
5691         (_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
5692         (_SimdImplX86::_S_less_equal): Do not call
5693         __builtin_is_constant_evaluated in constexpr-if.
5695 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
5697         * testsuite/experimental/simd/tests/bits/verify.h
5698         (verify::verify): Use %zx for size_t in format string.
5700 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
5702         * testsuite/experimental/simd/generate_makefile.sh: Generate and
5703         pre-compile pch.h, which includes all headers that do not depend
5704         on command-line macros.
5705         * testsuite/experimental/simd/tests/bits/main.h: New file.
5706         (iterate_abis, main): Moved from verify.h.
5707         * testsuite/experimental/simd/tests/bits/verify.h
5708         (iterate_abis, main): Moved to main.h.
5709         * testsuite/experimental/simd/tests/bits/conversions.h: Add
5710         include guard.
5711         (genHalfBits): Simplify.
5712         * testsuite/experimental/simd/tests/bits/make_vec.h: Add include
5713         guard.
5714         (make_alternating_mask): Moved from mask_loadstore.
5715         * testsuite/experimental/simd/tests/bits/mathreference.h: Add
5716         include guard.
5717         * testsuite/experimental/simd/tests/bits/test_values.h: Ditto.
5718         * testsuite/experimental/simd/tests/mask_loadstore.cc
5719         (make_mask, make_alternating_mask): Removed.
5720         * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
5721         * testsuite/experimental/simd/tests/operators.cc (genHalfBits):
5722         Removed.
5723         * testsuite/experimental/simd/tests/abs.cc: Only include
5724         bits/main.h.
5725         Ditto.
5726         * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
5727         * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
5728         * testsuite/experimental/simd/tests/casts.cc: Ditto.
5729         * testsuite/experimental/simd/tests/fpclassify.cc: Ditto.
5730         * testsuite/experimental/simd/tests/frexp.cc: Ditto.
5731         * testsuite/experimental/simd/tests/generator.cc: Ditto.
5732         * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
5733         * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
5734         * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
5735         * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
5736         * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
5737         * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
5738         * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
5739         * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
5740         * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
5741         * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
5742         * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
5743         * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
5744         * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
5745         * testsuite/experimental/simd/tests/reductions.cc: Ditto.
5746         * testsuite/experimental/simd/tests/remqo.cc: Ditto.
5747         * testsuite/experimental/simd/tests/simd.cc: Ditto.
5748         * testsuite/experimental/simd/tests/sincos.cc: Ditto.
5749         * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
5750         * testsuite/experimental/simd/tests/splits.cc: Ditto.
5751         * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
5752         * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
5753         * testsuite/experimental/simd/tests/where.cc: Ditto.
5755 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
5757         * testsuite/experimental/simd/README.md: Document the timeout
5758         and timeout-factor directives. Minor typo fixed.
5760 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
5762         PR libstdc++/108030
5763         * include/experimental/bits/simd_detail.h: Define
5764         _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
5765         * include/experimental/bits/simd.h: Annotate lambdas with
5766         _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
5767         * include/experimental/bits/simd_builtin.h: Ditto.
5768         * include/experimental/bits/simd_converter.h: Ditto.
5769         * include/experimental/bits/simd_fixed_size.h: Ditto.
5770         * include/experimental/bits/simd_math.h: Ditto.
5771         * include/experimental/bits/simd_neon.h: Ditto.
5772         * include/experimental/bits/simd_x86.h: Ditto.
5774 2023-02-16  Matthias Kretz  <m.kretz@gsi.de>
5776         * include/experimental/bits/simd.h
5777         (_SimdWrapper::_M_is_constprop_none_of)
5778         (_SimdWrapper::_M_is_constprop_all_of): Return false unless the
5779         computed result still satisfies __builtin_constant_p.
5781 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
5783         * testsuite/std/format/arguments/lwg3810.cc: Replace UTF-8
5784         ellipsis character.
5786 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
5788         * include/Makefile.am: Add new header.
5789         * include/Makefile.in: Regenerate.
5790         * include/experimental/synchronized_value: New file.
5791         * testsuite/experimental/synchronized_value.cc: New test.
5793 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
5795         * include/experimental/optional: Fix header name in comment.
5797 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
5799         * include/std/format (__format::_Arg_store): New class template.
5800         (basic_format_args): Remove nested type _Store and add deduction
5801         guide from _Arg_store.
5802         (basic_format_arg, make_format_args): Adjust.
5803         * testsuite/std/format/arguments/lwg3810.cc: New test.
5805 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
5807         * include/bits/stl_pair.h (pair) [C++20]: Add non-dangling
5808         constraints to constructors and add deleted overloads for the
5809         dangling cases, as per P2255R2.
5810         (pair) [!C++20 && _GLIBCXX_DEBUG]: Add static assertions to
5811         make dangling cases ill-formed.
5812         * testsuite/20_util/pair/dangling_ref.cc: New test.
5814 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
5816         * testsuite/17_intro/names_pstl.cc: Require et tbb_backend.
5818 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
5820         * include/ext/throw_allocator.h: Use reserved names for
5821         parameters.
5823 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
5825         * testsuite/17_intro/names_pstl.cc: Add space after effective
5826         target name.
5828 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
5830         * include/pstl/algorithm_fwd.h (__pattern_search_n)
5831         (__brick_unique_copy, __brick_adjacent_find)
5832         (__brick_generate_n, __pattern_generate_n): Use reserved names
5833         for parameters.
5834         * include/pstl/algorithm_impl.h (__brick_unique_copy)
5835         (__pattern_reverse, __brick_generate_n): Likewise.
5836         * include/pstl/execution_impl.h (__prefer_unsequenced_tag)
5837         (__prefer_parallel_tag): Likewise.
5838         * include/pstl/glue_algorithm_impl.h (transform): Likewise.
5839         * include/pstl/glue_numeric_defs.h (adjacent_difference):
5840         Likewise.
5841         * include/pstl/numeric_impl.h (__brick_adjacent_difference):
5842         Likewise.
5843         * include/pstl/parallel_backend_tbb.h (__merge_func): Likewise.
5844         * include/pstl/unseq_backend_simd.h (_Combiner)
5845         (__simd_min_element, __simd_minmax_element): Likewise.
5846         * testsuite/17_intro/names_pstl.cc: New test.
5848 2023-02-16  Jonathan Wakely  <jwakely@redhat.com>
5850         * include/bits/fs_ops.h (create_directory): Use reserved name
5851         for parameter.
5852         * include/bits/ranges_algo.h (__contains_subrange_fn):
5853         Likewise.
5854         * include/bits/regex_automaton.h (_State_base::_M_print):
5855         Likewise.
5856         * include/bits/regex_automaton.tcc(_State_base::_M_print):
5857         Likewise.
5858         * include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise.
5859         * include/experimental/bits/fs_ops.h (create_directory):
5860         Likewise.
5861         * include/std/mutex (timed_mutex::_M_clocklock): Likewise.
5862         (recursive_timed_mutex:_M_clocklock): Likewise.
5863         * include/std/tuple (basic_common_reference): Likewise.
5864         * libsupc++/cxxabi_init_exception.h
5865         (__cxa_init_primary_exception): Likewise.
5866         * testsuite/17_intro/names.cc: Add checks.
5868 2023-02-14  Gerald Pfeifer  <gerald@pfeifer.com>
5870         * doc/xml/manual/status_cxx2017.xml: Update an open-std.org link
5871         to www.open-std.org and https.
5872         * doc/html/manual/status.html: Regenerate.
5874 2023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>
5876         PR libstdc++/103934
5877         * include/std/atomic (atomic_flag_wait): Add.
5878         (atomic_flag_wait_explicit): Add.
5879         (atomic_flag_notify): Add.
5880         (atomic_flag_notify_explicit): Add.
5881         * testsuite/29_atomics/atomic_flag/wait_notify/1.cc:
5882         Add test case to cover missing atomic_flag free functions.
5884 2023-02-14  Thomas W Rodgers  <rodgert@twrodgers.com>
5886         PR libstdc++/103934
5887         * include/std/atomic (atomic_flag_test): Add.
5888         (atomic_flag_test_explicit): Add.
5889         * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
5890         test case to cover missing atomic_flag free functions.
5891         * testsuite/29_atomics/atomic_flag/test/implicit.cc:
5892         Likewise.
5894 2023-02-13  Gerald Pfeifer  <gerald@pfeifer.com>
5896         * doc/xml/manual/policy_data_structures_biblio.xml: Adjust
5897         "The Component Object Model" reference.
5898         * doc/html/manual/policy_data_structures.html: Regenerate.
5900 2023-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
5902         * doc/xml/manual/containers.xml: Tweak a link to N1780
5903         (C++ standard).
5904         * doc/html/manual/associative.html: Regenerate.
5906 2023-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
5908         * doc/xml/manual/ctype.xml: Change www.unix.org to unix.org.
5909         * doc/html/manual/facets.html: Regenerate.
5911 2023-02-11  Gerald Pfeifer  <gerald@pfeifer.com>
5913         * doc/xml/manual/policy_data_structures_biblio.xml: Update
5914         link to "Worst-case efficient priority queues".
5915         * doc/html/manual/policy_data_structures.html: Regenerate.
5917 2023-02-06  Arsen Arsenović  <arsen@aarsen.me>
5919         * doc/xml/manual/using.xml: Document newly-freestanding
5920         headers and the effect of the -ffreestanding flag.
5921         * doc/xml/manual/status_cxx2023.xml: Document P1642R11 as
5922         completed.
5923         * doc/xml/manual/configure.xml: Document that hosted installs
5924         respect __STDC_HOSTED__.
5925         * doc/xml/manual/test.xml: Document how to run tests in
5926         freestanding mode.
5927         * doc/html/*: Regenerate.
5929 2023-02-06  Jonathan Wakely  <jwakely@redhat.com>
5931         * include/bits/ranges_algo.h (__find_last_fn): Rename T to _Tp.
5932         (__find_last_if_fn): Likewise.
5934 2023-02-06  Jonathan Wakely  <jwakely@redhat.com>
5936         * include/std/type_traits: Add diagnostic pragmas around
5937         references to deprecated std::aligned_storage and
5938         std::aligned_union traits.
5939         * testsuite/20_util/aligned_storage/requirements/alias_decl.cc:
5940         Add dg-warning for et c++23.
5941         * testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc:
5942         Likewise.
5943         * testsuite/20_util/aligned_storage/value.cc: Likewise.
5944         * testsuite/20_util/aligned_union/1.cc: Likewise.
5945         * testsuite/20_util/aligned_union/requirements/alias_decl.cc:
5946         Likewise.
5948 2023-02-06  Nathaniel Shead  <nathanieloshead@gmail.com>
5950         * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
5951         * include/bits/c++config (_GLIBCXX23_DEPRECATED)
5952         (_GLIBCXX23_DEPRECATED_SUGGEST): New macros.
5953         * include/std/type_traits (aligned_storage, aligned_union)
5954         (aligned_storage_t, aligned_union_t): Deprecate for C++23.
5955         * testsuite/20_util/aligned_storage/deprecated-2b.cc: New test.
5956         * testsuite/20_util/aligned_union/deprecated-2b.cc: New test.
5958 2023-02-06  Nathaniel Shead  <nathanieloshead@gmail.com>
5960         * doc/doxygen/user.cfg.in (PREDEFINED): Update macros.
5961         * include/bits/c++config (_GLIBCXX20_DEPRECATED): Make
5962         consistent with other 'deprecated' macros.
5963         * include/std/type_traits (is_pod, is_pod_v): Use
5964         _GLIBCXX20_DEPRECATED_SUGGEST instead.
5966 2023-02-06  Arsen Arsenović  <arsen@aarsen.me>
5968         * Makefile.am [!_GLIBCXX_HOSTED]: Enable src/ subdirectory.
5969         * Makefile.in: Regenerate.
5970         * src/Makefile.am [!_GLIBCXX_HOSTED]: Omit compatibility files.
5971         There's no history to be compatible with.
5972         * src/c++11/Makefile.am [!_GLIBCXX_HOSTED]: Omit hosted-only
5973         source files from the build.
5974         * src/c++17/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
5975         * src/c++20/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
5976         * src/c++98/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
5977         * src/Makefile.in: Regenerate.
5978         * src/c++11/Makefile.in: Regenerate.
5979         * src/c++17/Makefile.in: Regenerate.
5980         * src/c++20/Makefile.in: Regenerate.
5981         * src/c++98/Makefile.in: Regenerate.
5983 2023-02-06  Jonathan Wakely  <jwakely@redhat.com>
5985         * src/Makefile.am [GLIBCXX_HOSTED] (SUBDIRS): Do not add
5986         filesystem, libbacktrace and experimental.
5987         * src/Makefile.in: Regenerate.
5989 2023-02-04  Hans-Peter Nilsson  <hp@axis.com>
5991         PR libstdc++/108672
5992         * include/pstl/unseq_backend_simd.h (__simd_or): Use __INT32_TYPE__
5993         instead of int32_t.
5995 2023-02-04  Gerald Pfeifer  <gerald@pfeifer.com>
5997         * doc/xml/manual/documentation_hacking.xml: Adjust link to pdftex.
5998         * doc/html/manual/documentation_hacking.html: Regenerate.
6000 2023-02-04  François Dumont  <fdumont@gcc.gnu.org>
6002         * include/bits/basic_string.h (operator=(basic_string&&)): Transfer move-to
6003         storage to the move-from instance when allocators are equal.
6004         * testsuite/21_strings/basic_string/allocator/char/move_assign.cc (test04):
6005         New test case.
6007 2023-02-03  Samuel Thibault  <samuel.thibault@gnu.org>
6009         * config/os/gnu-linux/os_defines.h [!__linux__]
6010         (_GLIBCXX_NATIVE_THREAD_ID, _GLIBCXX_GTHREAD_USE_WEAK): Do not define.
6012 2023-02-03  Patrick Palka  <ppalka@redhat.com>
6014         * include/bits/ranges_algo.h (__find_last_fn, find_last):
6015         Define.
6016         (__find_last_if_fn, find_last_if): Define.
6017         (__find_last_if_not_fn, find_last_if_not): Define.
6018         * testsuite/25_algorithms/find_last/1.cc: New test.
6019         * testsuite/25_algorithms/find_last_if/1.cc: New test.
6020         * testsuite/25_algorithms/find_last_if_not/1.cc: New test.
6022 2023-02-03  Patrick Palka  <ppalka@redhat.com>
6024         * include/bits/ranges_algo.h (out_value_result): Define.
6025         (iota_result): Define.
6026         (__iota_fn, iota): Define.
6027         * testsuite/25_algorithms/iota/1.cc: New test.
6029 2023-02-03  Patrick Palka  <ppalka@redhat.com>
6031         * include/bits/ranges_algo.h (__contains_fn, contains): Define.
6032         (__contains_subrange_fn, contains_subrange): Define.
6033         * testsuite/25_algorithms/contains/1.cc: New test.
6034         * testsuite/25_algorithms/contains_subrange/1.cc: New test.
6036 2023-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
6038         * doc/xml/manual/abi.xml: Tweak link to ABIcheck project.
6039         * doc/html/manual/abi.html: Regenerate.
6041 2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
6043         * src/filesystem/ops-common.h [AVR] (__unsupported): Always use
6044         errc::function_not_supported instead of errc::not_supported.
6046 2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
6048         * include/std/sstream  (basic_stringbuf::view): Define for old
6049         std::string ABI.
6050         (basic_istringstream::view, basic_0stringstream::view)
6051         (basic_stringstream::view): Likewise.
6052         * testsuite/27_io/basic_istringstream/view/char/1.cc: Remove
6053         { dg-require-effective-target cxx11_abi }.
6054         * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
6055         Likewise.
6056         * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
6057         * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
6058         Likewise.
6059         * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
6060         * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
6061         * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
6062         * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
6063         Likewise.
6065 2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
6067         PR libstdc++/108636
6068         * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export shared_ptr
6069         conversion operators for directory iterator comparisons with
6070         std::default_sentinel_t.
6071         * include/bits/fs_path.h (path::path(string_view, _Type))
6072         (path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
6073         definitions to ...
6074         * src/c++17/fs_path.cc: ... here.
6075         * testsuite/27_io/filesystem/path/108636.cc: New test.
6077 2023-02-02  Jonathan Wakely  <jwakely@redhat.com>
6079         * include/std/variant (variant::operator=): Implement resolution
6080         of LWG 3585.
6081         * testsuite/20_util/variant/lwg3585.cc: New test.
6083 2023-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
6085         * doc/xml/manual/using_exceptions.xml: Update a www.open-std.org
6086         link to https.
6087         * doc/html/manual/using_exceptions.html: Regenerate.
6089 2023-02-02  Gerald Pfeifer  <gerald@pfeifer.com>
6091         * doc/xml/manual/debug.xml: Fix link to online GDB manual.
6092         * doc/html/manual/debug.html: Regenerate.
6094 2023-02-01  Jonathan Wakely  <jwakely@redhat.com>
6096         * src/c++11/random.cc (random_device::_M_fini): Do not try to
6097         close the file handle if the target doesn't support the
6098         /dev/random and /dev/urandom files.
6100 2023-02-01  Jonathan Wakely  <jwakely@redhat.com>
6102         * config/os/generic/error_constants.h (errc::value_too_large)
6103         [__AVR__]: Define.
6104         * src/c++11/system_error.cc
6105         (system_category::default_error_condition) [__AVR__]: Only match
6106         recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
6107         * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
6108         for ENOENT etc. in switch.
6109         (fs::remove_all) [__AVR__]: Likewise.
6110         * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
6111         close etc.
6113 2023-02-01  Jonathan Wakely  <jwakely@redhat.com>
6115         * acinclude.m4 (GLIBCXX_ZONEINFO_DIR) [avr-*-*, msp430-*-*]: Set
6116         embed_zoneinfo=no
6117         * configure: Regenerate.
6119 2023-02-01  Hans-Peter Nilsson  <hp@axis.com>
6121         PR testsuite/108632
6122         * testsuite/std/time/hh_mm_ss/1.cc (size): Add empty
6123         struct at end of S0.
6125 2023-01-30  Gerald Pfeifer  <gerald@pfeifer.com>
6127         * doc/xml/manual/shared_ptr.xml: Move links from both
6128         http://open-std.org and http://www.open-std.org to
6129         https://www.open-std.org.
6130         * doc/html/manual/memory.html: Regenerate.
6132 2023-01-28  Gerald Pfeifer  <gerald@pfeifer.com>
6134         * doc/xml/manual/appendix_contributing.xml: Adjust link to
6135         ISO C++ standard at ANSI.
6136         Move link to www.open-std.org to https.
6137         * doc/html/manual/appendix_contributing.html: Regenerate.
6139 2023-01-28  Gerald Pfeifer  <gerald@pfeifer.com>
6141         * doc/xml/manual/documentation_hacking.xml: Move sourceforge.net
6142         links to https.
6143         * doc/html/manual/documentation_hacking.html: Regenerate.
6145 2023-01-28  Gerald Pfeifer  <gerald@pfeifer.com>
6147         * doc/xml/manual/abi.xml: Update www.open-std.org link to https.
6148         * doc/html/manual/abi.html: Regenerate.
6150 2023-01-27  Jakub Jelinek  <jakub@redhat.com>
6152         PR libstdc++/108568
6153         * testsuite/17_intro/names.cc (__unused): For linux or GNU hurd
6154         include features.h if present and then check __GLIBC__ and
6155         __GLIBC_MINOR__ macros for glibc prior to 2.19, instead of testing
6156         __GLIBC_PREREQ which isn't defined yet.
6158 2023-01-27  Jonathan Wakely  <jwakely@redhat.com>
6160         * src/c++20/tzdb.cc (tzdata_stream): Use constant instead of
6161         string literal.
6163 2023-01-27  Jonathan Wakely  <jwakely@redhat.com>
6165         PR libstdc++/108554
6166         * testsuite/23_containers/map/modifiers/108554.cc: Use dg-bogus.
6168 2023-01-26  Jonathan Wakely  <jwakely@redhat.com>
6170         * src/c++20/tzdb.cc (operator>>(istream&, ZoneInfo&)): Allow
6171         rules named "+" for compatibility with older tzdata.zi files.
6173 2023-01-26  Jonathan Wakely  <jwakely@redhat.com>
6175         PR libstdc++/108554
6176         * include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add
6177         nonnull attribute.
6178         (_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull
6179         attributes.
6180         * testsuite/23_containers/map/modifiers/108554.cc: New test.
6182 2023-01-26  Jonathan Wakely  <jwakely@redhat.com>
6184         PR libstdc++/108530
6185         * src/c++20/tzdb.cc (current_zone): Look for TIMEZONE or ZONE in
6186         /etc/sysconfig/clock, not DEFAULT_TIMEZONE.
6188 2023-01-26  Gerald Pfeifer  <gerald@pfeifer.com>
6190         * doc/xml/manual/intro.xml: Update links to www.open-std.org to
6191         use https.
6192         * doc/html/manual/bugs.html: Regenerate.
6194 2023-01-24  Jonathan Wakely  <jwakely@redhat.com>
6196         PR libstdc++/108530
6197         * src/c++20/tzdb.cc (current_zone): Look for DEFAULT_TIMEZONE in
6198         /etc/sysconfig/clock.
6200 2023-01-24  Jonathan Wakely  <jwakely@redhat.com>
6202         PR libstdc++/102301
6203         * include/bits/ranges_base.h: Include <bits/stl_iterator.h> for
6204         std::make_reverse_iterator.
6205         * include/std/tuple: Include <bits/ranges_util.h> for subrange.
6206         (make_from_tuple): Add static assertion from P2255 to diagnose
6207         dangling references.
6208         * testsuite/20_util/tuple/make_from_tuple/dangling_ref.cc: New test.
6209         * testsuite/20_util/tuple/make_from_tuple/tuple_like.cc: New test.
6211 2023-01-23  François Dumont  <fdumont@gcc.gnu.org>
6213         * include/debug/safe_iterator.h (_Safe_iterator<>::_Unchecked): New.
6214         (_Safe_iterator(const _Safe_iterator&, _Unchecked)): New.
6215         (_Safe_iterator::operator++(int)): Use latter.
6216         (_Safe_iterator::operator--(int)): Likewise.
6217         (_Safe_iterator(_Iterator, const _Safe_sequence_base*)): Remove !_M_insular()
6218         check.
6219         * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_Unchecked):
6220         New.
6221         (_Safe_local_iterator(const _Safe_local_iterator&, _Unchecked)): New.
6222         (_Safe_local_iterator::operator++(int)): Use latter.
6223         * src/c++11/debug.cc (_S_debug_messages): Add as comment the _Debug_msg_id
6224         entry associated to the array entry.
6226 2023-01-18  Jonathan Wakely  <jwakely@redhat.com>
6228         * include/bits/fs_path.h (u8path): Add deprecated attribute.
6229         * testsuite/27_io/filesystem/path/construct/90281.cc: Add
6230         -Wno-deprecated-declarations for C++20 and later.
6231         * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
6232         Likewise.
6233         * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
6234         * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
6235         * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: New test.
6237 2023-01-18  Jonathan Wakely  <jwakely@redhat.com>
6239         * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
6240         Always call _M_fini and _M_getentropy.
6242 2023-01-18  Gerald Pfeifer  <gerald@pfeifer.com>
6244         * doc/xml/manual/policy_data_structures_biblio.xml: Adjust links
6245         to www.open-std.org to use https.
6246         (COM: Component Model Object Technologies): Rename from...
6247         (The Component Object Model): ...to.
6248         * doc/html/manual/policy_data_structures.html: Regenerate.
6250 2023-01-18  Dimitrij Mijoski  <dmjpp@hotmail.com>
6252         * testsuite/22_locale/codecvt/codecvt_unicode.cc: Simplify.
6253         * testsuite/22_locale/codecvt/codecvt_unicode.h: Simplify.
6254         * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: Simplify.
6256 2023-01-17  Jonathan Wakely  <jwakely@redhat.com>
6258         * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Check $target_os instead
6259         of $host. Fix check for file being present during native build.
6260         * configure: Regenerate.
6262 2023-01-17  Martin Liska  <mliska@suse.cz>
6264         * src/libbacktrace/Makefile.in: Regenerate.
6266 2023-01-16  Jonathan Wakely  <jwakely@redhat.com>
6268         * src/c++20/tzdb.cc (_GLIBCXX_USE_CXX11_ABI): Define to 1.
6270 2023-01-16  Jonathan Wakely  <jwakely@redhat.com>
6272         PR libstdc++/108413
6273         * include/c_compatibility/stdatomic.h: Change copyright line to
6274         be consistent with other headers contributed under DCO terms.
6275         * include/std/expected: Add full stop to copyright line.
6276         * src/c++20/tzdb.cc: Likewise.
6278 2023-01-15  Gerald Pfeifer  <gerald@pfeifer.com>
6280         * doc/xml/manual/status_cxx2014.xml: Switch www.open-std.org to
6281         https.
6282         * doc/xml/manual/status_cxx2017.xml: Ditto.
6283         * doc/xml/manual/status_cxx2020.xml: Ditto.
6284         * doc/xml/manual/status_cxx2023.xml: Ditto.
6285         * doc/html/manual/status.html: Regenerate.
6287 2023-01-15  Jonathan Wakely  <jwakely@redhat.com>
6289         * testsuite/std/time/tzdb_list/1.cc: Remove dg-xfail-run-if
6290         and fail gracefully if defining the weak symbol doesn't work.
6292 2023-01-15  François Dumont  <fdumont@gcc.gnu.org>
6294         PR libstdc++/108288
6295         * include/debug/safe_iterator.h (_Safe_iterator<>::operator++(int)): Extend deadlock
6296         fix to other iterator category.
6297         (_Safe_iterator<>::operator--(int)): Likewise.
6298         * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::operator++(int)):
6299         Fix deadlock.
6300         * testsuite/util/debug/unordered_checks.h (invalid_local_iterator_pre_increment): New.
6301         (invalid_local_iterator_post_increment): New.
6302         * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_post_increment_neg.cc:
6303         New test.
6304         * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_pre_increment_neg.cc:
6305         New test.
6307 2023-01-15  Jonathan Wakely  <jwakely@redhat.com>
6309         * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
6310         dg-options.
6312 2023-01-15  Jonathan Wakely  <jwakely@redhat.com>
6314         * testsuite/std/time/clock/utc/io.cc: Use ctype to widen char.
6316 2023-01-14  Björn Schäpers  <bjoern@hazardy.de>
6318         * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Add check for
6319         windows.h. Add pecoff as FORMAT_FILE.
6320         * config.h.in: Regenerate.
6321         * configure: Regenerate.
6322         * src/libbacktrace/Makefile.am: Regenerate.
6323         * src/libbacktrace/Makefile.in: Add pecoff.c as FORMAT_FILE.
6325 2023-01-14  Björn Schäpers  <bjoern@hazardy.de>
6327         * include/std/stacktrace (stacktrace_entry::_S_demangle): Use
6328         raw __name if __cxa_demangle could not demangle it.
6330 2023-01-14  Jonathan Wakely  <jwakely@redhat.com>
6332         PR libstdc++/108409
6333         * src/c++20/tzdb.cc (current_zone()) [_AIX]: Use TZ environment
6334         variable.
6336 2023-01-14  Jonathan Wakely  <jwakely@redhat.com>
6338         * src/c++20/tzdb.cc (TZDB_DISABLED): Disable all code for
6339         loading tzdb.
6340         * testsuite/std/time/tzdb/leap_seconds.cc: Require tzdb
6341         effective target.
6342         * testsuite/std/time/tzdb_list/1.cc: Likewise.
6344 2023-01-14  Jonathan Wakely  <jwakely@redhat.com>
6346         * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Replace the
6347         --with-libstdcxx-zoneinfo-dir configure option with
6348         --with-libstdcxx-zoneinfo with yes/no/static choices as well as
6349         a directory.
6350         * config.h.in: Regenerate.
6351         * configure: Regenerate.
6352         * doc/xml/manual/configure.xml: Document configure option.
6353         * doc/html/manual/configure.html: Regenerate.
6354         * src/c++20/Makefile.am: Generate tzdata.zi.h header.
6355         * src/c++20/Makefile.in: Regenerate.
6356         * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Return a
6357         null pointer if no directory is configured.
6358         (zoneinfo_dir): Replace with ...
6359         (zoneinfo_file): New function.
6360         (tzdata_stream): New istream class.
6361         (remote_version, reload_tzdb): Use tzdata_stream.
6362         * testsuite/lib/libstdc++.exp (check_effective_target_tzdb):
6363         Check new _GLIBCXX_STATIC_TZDATA macro and ignore presence of
6364         tzdata.zi file in default location.
6365         * src/c++20/tzdata.zi: New file.
6367 2023-01-14  Jonathan Wakely  <jwakely@redhat.com>
6369         * include/bits/chrono_io.h (operator<<): Fix syntax errors.
6370         * testsuite/std/time/month_day/io.cc: New test.
6371         * testsuite/std/time/month_day_last/io.cc: New test.
6372         * testsuite/std/time/month_weekday/io.cc: New test.
6373         * testsuite/std/time/month_weekday_last/io.cc: New test.
6374         * testsuite/std/time/weekday_indexed/io.cc: New test.
6375         * testsuite/std/time/weekday_last/io.cc: New test.
6376         * testsuite/std/time/year_month/io.cc: New test.
6377         * testsuite/std/time/year_month_day_last/io.cc: New test.
6378         * testsuite/std/time/year_month_weekday/io.cc: New test.
6379         * testsuite/std/time/year_month_weekday_last/io.cc: New test.
6381 2023-01-14  François Dumont  <fdumont@gcc.gnu.org>
6383         * include/std/format [_GLIBCXX_INLINE_VERSION](to_chars): Adapt __asm symbol
6384         specifications.
6385         * config/abi/pre/gnu-versioned-namespace.ver: Add to_chars/from_chars symbols
6386         export.
6388 2023-01-13  Jonathan Wakely  <jwakely@redhat.com>
6390         * include/bits/std_mutex.h: Include <errno.h>.
6392 2023-01-13  Arsen Arsenović  <arsen@aarsen.me>
6394         * testsuite/20_util/to_chars/version.cc: Mark hosted-only.
6395         * testsuite/20_util/uses_allocator/lwg3677.cc: Ditto.
6396         * testsuite/20_util/weak_ptr/cons/self_move.cc: Ditto.
6397         * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Replace usage of
6398         std::make_unique with a freestanding-compatible wrapper around
6399         unique_ptr.
6400         * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
6401         Don't test for presence of __cpp_lib_string_contains on !HOSTED.
6402         * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
6403         Ditto.
6404         * testsuite/std/ranges/version_c++23.cc: Don't test for presence
6405         of __cpp_lib_ranges in !HOSTED.
6407 2023-01-13  Arsen Arsenović  <arsen@aarsen.me>
6409         * include/Makefile.am: Install bits/char_traits.h,
6410         std/string_view
6411         * include/Makefile.in: Regenerate.
6412         * include/bits/char_traits.h: Gate hosted-only, wchar-only and
6413         mbstate-only bits behind appropriate #ifs.
6414         * include/std/string_view: Gate <iostream> functionality behind
6415         HOSTED.
6416         * include/std/version: Enable __cpp_lib_constexpr_string_view
6417         and __cpp_lib_starts_ends_with in !HOSTED.
6418         * include/std/ranges: Re-enable __is_basic_string_view on
6419         freestanding, include <string_view> directly.
6420         * include/precompiled/stdc++.h: Include <string_view> when
6421         !HOSTED too.
6422         * testsuite/20_util/function_objects/searchers.cc: Skip testing
6423         boyer_moore searchers on freestanding
6424         * testsuite/21_strings/basic_string_view/capacity/1.cc: Guard
6425         <string>-related tests behind __STDC_HOSTED__.
6426         * testsuite/21_strings/basic_string_view/cons/char/1.cc: Ditto.
6427         * testsuite/21_strings/basic_string_view/cons/char/2.cc: Remove
6428         unused <stdexcept> include.
6429         * testsuite/21_strings/basic_string_view/cons/char/3.cc: Remove
6430         unused <vector> include.
6431         * testsuite/21_strings/basic_string_view/cons/char/range.cc:
6432         Guard <string> related testing behind __STDC_HOSTED__.
6433         * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
6434         Guard <stdexcept> related tests behind __STDC_HOSTED__.
6435         * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
6436         Ditto.
6437         * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
6438         Guard <stdexcept> tests behind __STDC_HOSTED__.
6439         * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
6440         Enable test on freestanding, guard <stdexcept> bits behind
6441         __STDC_HOSTED__.
6442         * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
6443         Guard <stdexcept> bits behind __STDC_HOSTED__.
6444         * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
6445         Ditto.
6447 2023-01-13  Dimitrij Mijoski  <dmjpp@hotmail.com>
6449         PR libstdc++/86419
6450         * src/c++11/codecvt.cc (read_utf8_code_point): Correctly detect
6451         errors in incomplete multibyte sequences.
6452         (utf16_in): Remove surrogates parameter. Fix conditions for
6453         returning partial.
6454         (utf16_out): Fix condition for returning partial.
6455         (ucs2_in): Do not pass surrogates argument to utf16_in.
6456         * testsuite/22_locale/codecvt/codecvt_unicode.cc: New test.
6457         * testsuite/22_locale/codecvt/codecvt_unicode.h: New header for
6458         tests.
6459         * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: New
6460         test.
6462 2023-01-13  Jonathan Wakely  <jwakely@redhat.com>
6464         PR libstdc++/108331
6465         * config/io/c_io_stdio.h (__c_lock): Define as a typedef for
6466         __GTHREAD_LEGACY_MUTEX_T if defined.
6468 2023-01-13  Jonathan Wakely  <jwakely@redhat.com>
6470         PR libstdc++/108327
6471         * config/os/gnu-linux/ldbl-extra.ver (GLIBCXX_LDBL_3.4.31):
6472         Export __try_use_facet specializations for facets in namespace
6473         __gnu_cxx_ldbl128.
6474         * config/os/gnu-linux/ldbl-ieee128-extra.ver
6475         (GLIBCXX_IEEE128_3.4.31): Likewise for facets in namespace
6476         __gnu_cxx_ieee128.
6477         * testsuite/util/testsuite_abi.cc: Add to lists of known and
6478         latest versions.
6480 2023-01-13  Jonathan Wakely  <jwakely@redhat.com>
6482         * include/bits/std_mutex.h: Remove <system_error> include.
6483         * include/std/condition_variable: Add <bits/error_constants.h>
6484         include.
6485         * include/std/mutex: Likewise.
6486         * include/std/shared_mutex: Likewise.
6488 2023-01-12  Jonathan Wakely  <jwakely@redhat.com>
6490         PR libstdc++/77691
6491         * include/experimental/memory_resource
6492         (_GLIBCXX_MAX_ALIGN_MATCHES_MALLOC): Define.
6493         (do_allocate, do_deallocate): Check it.
6494         * testsuite/experimental/memory_resource/new_delete_resource.cc:
6495         Relax expected behaviour for 64-bit hppa-hp-hpux11.11.
6497 2023-01-12  Jonathan Wakely  <jwakely@redhat.com>
6499         * doc/xml/manual/abi.xml: Add latest library versions.
6500         * doc/html/manual/abi.html: Regenerate.
6502 2023-01-12  François Dumont  <fdumont@gcc.gnu.org>
6504         PR libstdc++/107189
6505         * include/bits/stl_tree.h (_Rb_tree<>::_M_insert_range_equal): Remove
6506         unused _Alloc_node instance.
6508 2023-01-12  Jonathan Wakely  <jwakely@redhat.com>
6510         * include/bits/atomic_wait.h (__detail::__platform_wait_t):
6511         Define as unsigned long if always lock-free, and unsigned int
6512         otherwise.
6514 2023-01-10  Jonathan Wakely  <jwakely@redhat.com>
6516         * src/c++20/tzdb.cc (tzdb_list::_S_init_tzdb): Use __try and
6517         __catch macros for exception handling.
6519 2023-01-10  Jonathan Wakely  <jwakely@redhat.com>
6521         PR libstdc++/108221
6522         * include/bits/stl_algobase.h (__lg): Replace six overloads with
6523         a single function template for all integer types.
6524         * include/bits/stl_algo.h (__merge_adaptive_resize): Cast
6525         arithmetic results back to _Distance.
6527 2023-01-10  Jonathan Wakely  <jwakely@redhat.com>
6529         PR libstdc++/108221
6530         * include/std/span (span::span()): Un-simplify constraint to
6531         work for size_t of lesser rank than int.
6533 2023-01-07  LIU Hao  <lh_mouse@126.com>
6535         PR middle-end/108300
6536         * src/c++11/system_error.cc: Define `WIN32_LEAN_AND_MEAN` before
6537         <windows.h>.
6538         * src/c++11/thread.cc: Likewise.
6539         * src/c++17/fs_ops.cc: Likewise.
6540         * src/filesystem/ops.cc: Likewise.
6542 2023-01-06  Jonathan Wakely  <jwakely@redhat.com>
6544         PR libstdc++/108228
6545         * src/c++20/tzdb.cc (zoneinfo_dir): Add diagnostic pragma.
6547 2023-01-06  Jonathan Wakely  <jwakely@redhat.com>
6549         PR libstdc++/108235
6550         * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): New class
6551         template and partial specialization for synchronizing access to
6552         time_zone::_Impl::infos.
6553         (time_zone::_M_get_sys_info, reload_tzdb): Adjust uses of
6554         rules_counter.
6556 2023-01-06  Patrick Palka  <ppalka@redhat.com>
6558         PR libstdc++/108260
6559         * include/bits/utility.h (__cpp_lib_ranges_zip): Define for C++23.
6560         * include/std/ranges (__cpp_lib_ranges_zip): Likewise.
6561         (__cpp_lib_ranges_chunk): Likewise.
6562         (__cpp_lib_ranges_slide): Likewise.
6563         (__cpp_lib_ranges_chunk_by): Likewise.
6564         (__cpp_lib_ranges_join_with): Likewise.
6565         (__cpp_lib_ranges_repeat): Likewise.
6566         (__cpp_lib_ranges_stride): Likewise.
6567         (__cpp_lib_ranges_cartesian_product): Likewise.
6568         (__cpp_lib_ranges_as_rvalue): Likewise.
6569         * include/std/version: Ditto.
6570         * testsuite/20_util/tuple/p2321r2.cc: Verify value of
6571         feature-test macro.
6572         * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
6573         * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
6574         * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
6575         * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
6576         * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
6577         * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
6578         * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
6579         * testsuite/std/ranges/repeat/1.cc: Likewise.
6580         * testsuite/std/ranges/zip/1.cc: Likewise.
6581         * testsuite/std/ranges/version_c++23.cc: New test.
6583 2023-01-06  Jonathan Wakely  <jwakely@redhat.com>
6585         PR libstdc++/108214
6586         * include/std/bitset (operator>>): Use alloca in the right
6587         scope, not in a constructor.
6588         * testsuite/20_util/bitset/io/input.cc: Check case from PR.
6590 2023-01-06  Jonathan Wakely  <jwakely@redhat.com>
6592         PR libstdc++/108221
6593         * include/std/format (basic_format_arg) [!__cpp_lib_to_chars]:
6594         Disable visiting floating-point types.
6596 2023-01-06  Jonathan Wakely  <jwakely@redhat.com>
6598         PR libstdc++/108288
6599         * include/debug/safe_iterator.h (_Safe_iterator::operator++(int))
6600         (_Safe_iterator::operator--(int)): Do not hold lock around
6601         construction of return value.
6603 2023-01-05  John David Anglin  <danglin@gcc.gnu.org>
6605         * config/cpu/hppa/atomicity.h (_PA_LDCW_INSN): Define.
6606         (__exchange_and_add): Use _PA_LDCW_INSN.  Use ordered store for
6607         lock release.  Revise loop.
6608         (__atomic_add): Likewise.
6610 2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
6612         PR libstdc++/108212
6613         * python/libstdcxx/v6/printers.py (_utc_timezone): New global
6614         variable.
6615         (StdChronoTimePointPrinter::to_string): Use it.
6617 2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
6619         PR libstdc++/108290
6620         * include/std/functional (_Bind_front): Add no_unique_address
6621         attribute to data members.
6622         * testsuite/20_util/function_objects/bind_front/107784.cc: Check
6623         size of call wrappers with empty types for targets and bound
6624         arguments.
6626 2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
6628         PR libstdc++/108211
6629         * src/c++20/tzdb.cc (chrono::current_zone()): Check for zone
6630         using only last component of the name.
6632 2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
6634         PR libstdc++/108228
6635         PR libstdc++/108235
6636         * config/abi/pre/gnu.ver: Move zoneinfo_dir_override export to
6637         the latest symbol version.
6638         * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define to 0 if
6639         atomic<_Node*> is not always lock free.
6640         (USE_ATOMIC_LIST_HEAD): New macro.
6641         [__hpux__] (__gnu_cxx::zoneinfo_dir_override()): Provide
6642         definition of weak symbol.
6643         (tzdb_list::_Node::_S_head): Rename to _S_head_cache.
6644         (tzdb_list::_Node::_S_list_head): New function for accessing
6645         list head efficiently.
6646         (tzdb_list::_Node::_S_cache_list_head): New function for
6647         updating _S_list_head.
6649 2023-01-05  Jonathan Wakely  <jwakely@redhat.com>
6651         PR libstdc++/108265
6652         * include/std/chrono (hh_mm_ss): Do not use chrono::abs if
6653         duration rep is unsigned.
6654         * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep.
6656 2023-01-04  Iain Sandoe  <iain@sandoe.co.uk>
6658         PR libstdc++/108228
6659         * config/abi/pre/gnu.ver (GLIBCXX_3.4):
6660         Add __gnu_cxx::zoneinfo_dir_override().
6662 2023-01-04  Jonathan Wakely  <jwakely@redhat.com>
6664         PR libstdc++/108258
6665         * include/std/array (__array_traits<T, 0>::operator T*()): Add
6666         constexpr.
6667         * testsuite/23_containers/array/element_access/constexpr_c++17.cc: Check
6668         std::array<T, 0>::data().
6671 Copyright (C) 2023 Free Software Foundation, Inc.
6673 Copying and distribution of this file, with or without modification,
6674 are permitted in any medium without royalty provided the copyright
6675 notice and this notice are preserved.