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