1 2023-11-18 Jonathan Wakely <jwakely@redhat.com>
4 * include/std/format (basic_format_arg::_S_to_arg_type): Check
5 value_type for basic_string_view and basic_string
7 * testsuite/std/format/arguments/112607.cc: New test.
9 2023-11-18 Jonathan Wakely <jwakely@redhat.com>
12 * include/std/format (_Sink_iter::_M_reserve): New member
14 (_Sink::_Reservation): New nested class.
15 (_Sink::_M_reserve, _Sink::_M_bump): New virtual functions.
16 (_Seq_sink::_M_reserve, _Seq_sink::_M_bump): New virtual
18 (_Iter_sink<O, ContigIter>::_M_reserve): Likewise.
19 (__do_vformat_to): Use new functions to optimize "{}" case.
21 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
23 * config.h.in: Regenerate.
25 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
27 * include/Makefile.am: Add new header.
28 * include/Makefile.in: Regenerate.
29 * include/bits/version.def (saturation_arithmetic): Define.
30 * include/bits/version.h: Regenerate.
31 * include/std/numeric: Include new header.
32 * include/bits/sat_arith.h: New file.
33 * testsuite/26_numerics/saturation/add.cc: New test.
34 * testsuite/26_numerics/saturation/cast.cc: New test.
35 * testsuite/26_numerics/saturation/div.cc: New test.
36 * testsuite/26_numerics/saturation/mul.cc: New test.
37 * testsuite/26_numerics/saturation/sub.cc: New test.
38 * testsuite/26_numerics/saturation/version.cc: New test.
40 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
42 * include/std/utility (in_range): Rename _Up parameter to _Res.
44 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
46 * include/bits/out_ptr.h: Add Doxygen comments. Remove a
47 redundant preprocessor condition.
48 * testsuite/20_util/smartptr.adapt/version.cc: New test.
50 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
52 * include/bits/chrono_io.h: Fix Doxygen markup.
54 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
57 * include/std/stacktrace (formatter::format): Format according
59 * include/std/thread (formatter::format): Use _Align_right as
61 * testsuite/19_diagnostics/stacktrace/output.cc: Check
62 fill-and-align handling. Change compile test to run.
63 * testsuite/30_threads/thread/id/output.cc: Check fill-and-align
66 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
69 * include/Makefile.am: Add new header.
70 * include/Makefile.in: Regenerate.
71 * include/bits/out_ptr.h: New file.
72 * include/bits/shared_ptr.h (__is_shared_ptr): Move definition
74 * include/bits/shared_ptr_atomic.h (__is_shared_ptr): ... from
76 * include/bits/shared_ptr_base.h (__shared_count): Declare
77 out_ptr_t as a friend.
78 (_Sp_counted_deleter, __shared_ptr): Likewise.
79 * include/bits/unique_ptr.h (unique_ptr, unique_ptr<T[], D>):
80 Declare out_ptr_t and inout_ptr_t as friends.
81 (__is_unique_ptr): Define new variable template.
82 * include/bits/version.def (out_ptr): Define.
83 * include/bits/version.h: Regenerate.
84 * include/std/memory: Include new header.
85 * testsuite/20_util/smartptr.adapt/inout_ptr/1.cc: New test.
86 * testsuite/20_util/smartptr.adapt/inout_ptr/2.cc: New test.
87 * testsuite/20_util/smartptr.adapt/inout_ptr/shared_ptr_neg.cc:
89 * testsuite/20_util/smartptr.adapt/inout_ptr/void_ptr.cc: New
91 * testsuite/20_util/smartptr.adapt/out_ptr/1.cc: New test.
92 * testsuite/20_util/smartptr.adapt/out_ptr/2.cc: New test.
93 * testsuite/20_util/smartptr.adapt/out_ptr/shared_ptr_neg.cc:
95 * testsuite/20_util/smartptr.adapt/out_ptr/void_ptr.cc: New
98 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
100 * include/bits/algorithmfwd.h: Do not define standard feature
102 * include/bits/align.h: Likewise. Test internal macros instead
104 * include/bits/alloc_traits.h: Likewise.
105 * include/bits/allocator.h: Likewise.
106 * include/bits/atomic_base.h: Likewise.
107 * include/bits/atomic_timed_wait.h: Likewise.
108 * include/bits/atomic_wait.h: Likewise.
109 * include/bits/basic_string.h: Likewise.
110 * include/bits/basic_string.tcc: Likewise.
111 * include/bits/char_traits.h: Likewise.
112 * include/bits/chrono.h: Likewise.
113 * include/bits/cow_string.h: Likewise.
114 * include/bits/forward_list.h: Likewise.
115 * include/bits/hashtable.h: Likewise.
116 * include/bits/ios_base.h: Likewise.
117 * include/bits/memory_resource.h: Likewise.
118 * include/bits/move.h: Likewise.
119 * include/bits/move_only_function.h: Likewise.
120 * include/bits/node_handle.h: Likewise.
121 * include/bits/ptr_traits.h: Likewise.
122 * include/bits/range_access.h: Likewise.
123 * include/bits/ranges_algo.h: Likewise.
124 * include/bits/ranges_cmp.h: Likewise.
125 * include/bits/ranges_util.h: Likewise.
126 * include/bits/semaphore_base.h: Likewise.
127 * include/bits/shared_ptr.h: Likewise.
128 * include/bits/shared_ptr_atomic.h: Likewise.
129 * include/bits/shared_ptr_base.h: Likewise.
130 * include/bits/stl_algo.h: Likewise.
131 * include/bits/stl_algobase.h: Likewise.
132 * include/bits/stl_function.h: Likewise.
133 * include/bits/stl_iterator.h: Likewise.
134 * include/bits/stl_list.h: Likewise.
135 * include/bits/stl_map.h: Likewise.
136 * include/bits/stl_pair.h: Likewise.
137 * include/bits/stl_queue.h: Likewise.
138 * include/bits/stl_stack.h: Likewise.
139 * include/bits/stl_tree.h: Likewise.
140 * include/bits/stl_uninitialized.h: Likewise.
141 * include/bits/stl_vector.h: Likewise.
142 * include/bits/unique_ptr.h: Likewise.
143 * include/bits/unordered_map.h: Likewise.
144 * include/bits/uses_allocator_args.h: Likewise.
145 * include/bits/utility.h: Likewise.
146 * include/bits/erase_if.h: Add comment.
147 * include/std/algorithm: Define standard feature test macros
149 * include/std/atomic: Likewise.
150 * include/std/array: Likewise.
151 * include/std/chrono: Likewise.
152 * include/std/condition_variable: Likewise.
153 * include/std/deque: Likewise.
154 * include/std/format: Likewise.
155 * include/std/functional: Likewise.
156 * include/std/forward_list: Likewise.
157 * include/std/ios: Likewise.
158 * include/std/iterator: Likewise.
159 * include/std/list: Likewise.
160 * include/std/map: Likewise.
161 * include/std/memory: Likewise.
162 * include/std/numeric: Likewise.
163 * include/std/queue: Likewise.
164 * include/std/ranges: Likewise.
165 * include/std/regex: Likewise.
166 * include/std/set: Likewise.
167 * include/std/stack: Likewise.
168 * include/std/stop_token: Likewise.
169 * include/std/string: Likewise.
170 * include/std/string_view:
171 * include/std/tuple: Likewise.
172 * include/std/unordered_map:
173 * include/std/unordered_set:
174 * include/std/utility: Likewise.
175 * include/std/vector: Likewise.
176 * include/std/scoped_allocator: Query internal macros instead of
179 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
181 * testsuite/18_support/byte/requirements.cc: Disable PCH.
182 * testsuite/18_support/destroying_delete.cc: Likewise.
183 * testsuite/18_support/source_location/1.cc: Likewise.
184 * testsuite/18_support/source_location/version.cc: Likewise.
185 * testsuite/18_support/type_info/constexpr.cc: Likewise.
186 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
188 * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
189 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
190 * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
191 * testsuite/20_util/addressof/requirements/constexpr.cc:
193 * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
194 * testsuite/20_util/allocator_traits/header.cc: Likewise.
195 * testsuite/20_util/as_const/1.cc: Likewise. Likewise.
196 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
197 * testsuite/20_util/bitset/version.cc: Likewise.
198 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
200 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
201 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
203 * testsuite/20_util/exchange/constexpr.cc: Likewise.
204 * testsuite/20_util/expected/synopsis.cc: Likewise.
205 * testsuite/20_util/expected/version.cc: Likewise.
206 * testsuite/20_util/function_objects/bind_front/1.cc: Likewise.
207 * testsuite/20_util/function_objects/bind_front/2.cc: Likewise.
208 * testsuite/20_util/function_objects/invoke/3.cc: Likewise.
209 * testsuite/20_util/function_objects/invoke/4.cc: Likewise.
210 * testsuite/20_util/function_objects/invoke/constexpr.cc:
212 * testsuite/20_util/function_objects/invoke/version.cc:
214 * testsuite/20_util/function_objects/searchers.cc: Likewise.
215 * testsuite/20_util/integer_comparisons/1.cc: Likewise.
216 * testsuite/20_util/integer_comparisons/2.cc: Likewise.
217 * testsuite/20_util/is_bounded_array/value.cc: Likewise.
218 * testsuite/20_util/is_layout_compatible/value.cc: Likewise.
219 * testsuite/20_util/is_layout_compatible/version.cc: Likewise.
220 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
222 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
224 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
225 * testsuite/20_util/is_nothrow_swappable/value.h: Likewise.
226 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
227 Remove redundant checks already tested elsewhere.
228 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
230 * testsuite/20_util/is_nothrow_swappable_with/value.cc: Disable
232 * testsuite/20_util/is_pointer_interconvertible/value.cc:
234 * testsuite/20_util/is_pointer_interconvertible/version.cc:
236 * testsuite/20_util/is_scoped_enum/value.cc: Likewise.
237 * testsuite/20_util/is_scoped_enum/version.cc: Likewise.
238 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
239 Remove redundant checks already tested elsewhere.
240 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
241 Remove redundant checks already tested elsewhere.
242 * testsuite/20_util/is_swappable/value.cc: Disable PCH.
243 * testsuite/20_util/is_swappable/value.h: Reorder headers.
244 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
245 Remove redundant checks already tested elsewhere.
246 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
247 Remove redundant checks already tested elsewhere.
248 * testsuite/20_util/is_swappable_with/value.cc: Disable PCH.
249 * testsuite/20_util/is_unbounded_array/value.cc: Likewise.
250 * testsuite/20_util/move_only_function/cons.cc: Likewise.
251 * testsuite/20_util/move_only_function/version.cc: Likewise.
252 * testsuite/20_util/optional/monadic/and_then.cc: Likewise.
253 * testsuite/20_util/optional/requirements.cc: Likewise.
254 * testsuite/20_util/optional/version.cc: Likewise.
255 * testsuite/20_util/owner_less/void.cc: Likewise.
256 * testsuite/20_util/reference_from_temporary/value.cc: Likewise.
257 * testsuite/20_util/reference_from_temporary/version.cc:
259 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
261 * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
262 * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
263 * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
264 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
265 * testsuite/20_util/to_chars/constexpr.cc: Likewise.
266 * testsuite/20_util/to_chars/result.cc: Likewise.
267 * testsuite/20_util/to_chars/version.cc: Likewise.
268 * testsuite/20_util/to_underlying/1.cc: Likewise.
269 * testsuite/20_util/to_underlying/version.cc: Likewise.
270 * testsuite/20_util/tuple/apply/1.cc: Likewise.
271 * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
273 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
274 * testsuite/20_util/tuple/p2321r2.cc: Likewise.
275 * testsuite/20_util/tuple/tuple_element_t.cc: Likewise.
276 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc:
278 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
280 * testsuite/20_util/unreachable/1.cc: Likewise.
281 * testsuite/20_util/unreachable/version.cc: Likewise.
282 * testsuite/20_util/unwrap_reference/1.cc: Likewise.
283 * testsuite/20_util/unwrap_reference/3.cc: Likewise.
284 * testsuite/20_util/variant/constexpr.cc: Likewise.
285 * testsuite/20_util/variant/version.cc: Likewise.
286 * testsuite/20_util/variant/visit_inherited.cc: Likewise.
287 * testsuite/20_util/void_t/1.cc: Likewise.
288 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
290 * testsuite/21_strings/basic_string/cons/char/constexpr.cc:
292 * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc:
294 * testsuite/21_strings/basic_string/erasure.cc: Likewise.
295 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc:
297 * testsuite/21_strings/basic_string/numeric_conversions/version.cc:
299 * testsuite/21_strings/basic_string/version.cc: Likewise.
300 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
302 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
304 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
306 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
308 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
310 * testsuite/21_strings/char_traits/requirements/version.cc:
312 * testsuite/23_containers/array/comparison_operators/constexpr.cc:
314 * testsuite/23_containers/array/creation/1.cc: Likewise.
315 * testsuite/23_containers/array/creation/2.cc: Likewise.
316 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
318 * testsuite/23_containers/array/requirements/constexpr_fill.cc:
320 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
322 * testsuite/23_containers/deque/erasure.cc: Likewise.
323 * testsuite/23_containers/forward_list/erasure.cc: Likewise.
324 * testsuite/23_containers/list/erasure.cc: Likewise.
325 * testsuite/23_containers/map/erasure.cc: Likewise.
326 * testsuite/23_containers/queue/cons_from_iters.cc: Likewise.
327 * testsuite/23_containers/set/erasure.cc: Likewise.
328 * testsuite/23_containers/span/1.cc: Likewise.
329 * testsuite/23_containers/span/2.cc: Likewise.
330 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
331 * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
332 * testsuite/23_containers/unordered_map/operations/1.cc:
334 * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
335 * testsuite/23_containers/unordered_set/operations/1.cc:
337 * testsuite/23_containers/vector/cons/constexpr.cc: Likewise.
338 * testsuite/23_containers/vector/erasure.cc: Likewise.
339 * testsuite/23_containers/vector/requirements/version.cc:
341 * testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise.
342 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
343 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
344 Remove redundant checks already tested elsewhere.
345 * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
346 * testsuite/25_algorithms/cpp_lib_constexpr.cc: Likewise.
347 * testsuite/25_algorithms/fold_left/1.cc: Likewise.
348 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
349 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
350 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
351 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
352 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
353 * testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: Likewise.
354 * testsuite/26_numerics/bit/bit.byteswap/version.cc: Likewise.
355 * testsuite/26_numerics/bit/bit.cast/bit_cast.cc: Likewise.
356 * testsuite/26_numerics/bit/bit.cast/version.cc: Likewise.
357 * testsuite/26_numerics/bit/header-2.cc: Likewise.
358 * testsuite/26_numerics/bit/header.cc: Likewise.
359 * testsuite/26_numerics/complex/1.cc: Likewise.
360 * testsuite/26_numerics/complex/2.cc: Likewise.
361 * testsuite/26_numerics/endian/2.cc: Likewise.
362 * testsuite/26_numerics/endian/3.cc: Likewise.
363 * testsuite/26_numerics/gcd/1.cc: Likewise.
364 * testsuite/26_numerics/lcm/1.cc: Likewise.
365 * testsuite/26_numerics/lerp/1.cc: Likewise.
366 * testsuite/26_numerics/lerp/version.cc: Likewise.
367 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
368 * testsuite/26_numerics/midpoint/version.cc: Likewise.
369 * testsuite/26_numerics/numbers/1.cc: Likewise.
370 * testsuite/26_numerics/numbers/2.cc: Likewise.
371 * testsuite/27_io/basic_filebuf/native_handle/char/1.cc:
373 * testsuite/27_io/basic_filebuf/native_handle/version.cc:
375 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc:
377 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
379 * testsuite/27_io/basic_syncbuf/1.cc: Likewise.
380 * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
381 * testsuite/27_io/basic_syncstream/1.cc: Likewise.
382 * testsuite/27_io/basic_syncstream/2.cc: Likewise.
383 * testsuite/27_io/spanstream/1.cc: Likewise.
384 * testsuite/27_io/spanstream/version.cc: Likewise.
385 * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
386 * testsuite/29_atomics/atomic/lock_free_aliases.cc: Likewise.
387 * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
388 * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
389 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
391 * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
392 * testsuite/30_threads/barrier/1.cc: Likewise.
393 * testsuite/30_threads/barrier/2.cc: Likewise.
394 * testsuite/30_threads/condition_variable_any/stop_token/1.cc:
396 * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
398 * testsuite/30_threads/jthread/1.cc: Likewise.
399 * testsuite/30_threads/jthread/version.cc: Likewise.
400 * testsuite/30_threads/latch/1.cc: Likewise.
401 * testsuite/30_threads/latch/2.cc: Likewise.
402 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
404 * testsuite/30_threads/semaphore/1.cc: Likewise.
405 * testsuite/30_threads/semaphore/2.cc: Likewise.
406 * testsuite/30_threads/stop_token/1.cc: Likewise.
407 * testsuite/30_threads/stop_token/2.cc: Likewise.
408 * testsuite/experimental/feat-char8_t.cc: Likewise.
409 * testsuite/experimental/iterator/ostream_joiner.cc: Likewise.
410 * testsuite/experimental/numeric/gcd.cc: Likewise.
411 * testsuite/experimental/scopeguard/uniqueres.cc: Likewise.
412 * testsuite/std/concepts/1.cc: Likewise.
413 * testsuite/std/concepts/2.cc: Likewise.
414 * testsuite/std/ranges/adaptors/as_const/1.cc: Likewise.
415 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
416 * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
417 * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
418 * testsuite/std/ranges/adaptors/enumerate/1.cc: Likewise.
419 * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
420 * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
421 * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
422 * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
423 * testsuite/std/ranges/headers/ranges/synopsis.cc: Likewise.
424 * testsuite/std/ranges/repeat/1.cc: Likewise.
425 * testsuite/std/ranges/version_c++23.cc: Likewise.
426 * testsuite/std/ranges/zip/1.cc: Likewise.
427 * testsuite/std/time/syn_c++20.cc: Likewise.
428 * testsuite/experimental/feat-cxx14.cc: Likewise. Include
429 <algorithm> and <iterator>.
430 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
431 Adjust dg-error line numbers.
433 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
435 * include/bits/version.def (stds): Use >= 202100 for C++23
437 * include/bits/version.h: Regenerate.
438 * include/std/thread: Use > C++20 instead of >= C++23 for
439 __cplusplus condition.
441 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
443 * include/std/istream (__rvalue_stream_extraction_t): Test
444 __cpp_concepts instead of __cpp_lib_concepts.
445 * include/std/ostream (__derived_from_ios_base): Likewise.
446 (__rvalue_stream_insertion_t): Likewise.
448 2023-11-15 Jonathan Wakely <jwakely@redhat.com>
451 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index):
452 Correctly handle unused capacity at the start of the first node.
453 * testsuite/libstdc++-xmethods/deque.cc: Check index operator
454 when elements have been removed from the front.
456 2023-11-15 Jonathan Wakely <jwakely@redhat.com>
458 * include/std/stacktrace (basic_stacktrace::at): Fix class name
459 in exception message.
460 * testsuite/19_diagnostics/stacktrace/hash.cc: Do not fail if
461 current() returns a non-empty stacktrace.
463 2023-11-15 Alexandre Oliva <oliva@gnu.org>
466 2023-11-15 Alexandre Oliva <oliva@adacore.com>
468 * include/bits/stl_bvector.h (_GLIBCXX_ALWAYS_INLINE): Undef.
470 2023-11-15 Alexandre Oliva <oliva@adacore.com>
472 * include/bits/stl_bvector.h (_GLIBCXX_ALWAYS_INLINE): Undef.
474 2023-11-14 Cassio Neri <cassio.neri@gmail.com>
476 * include/std/chrono (operator-(const weekday&, const weekday&)):
479 2023-11-14 Cassio Neri <cassio.neri@gmail.com>
481 * include/std/chrono (weekday::_S_from_days): Fix UB.
482 * testsuite/std/time/weekday/1.cc: Add test for overflow.
484 2023-11-14 Cassio Neri <cassio.neri@gmail.com>
486 * include/std/chrono (year::is_leap): Clear code.
488 2023-11-14 Cassio Neri <cassio.neri@gmail.com>
490 * include/std/chrono (year_month_day_last::day): Remove &1.
492 2023-11-14 Jonathan Wakely <jwakely@redhat.com>
494 * include/std/charconv (__from_chars_pow2_base): Convert base to
495 unsigned for call to __countr_zero.
496 (__from_chars_alnum): Likewise for call to __bit_width.
498 2023-11-14 Jonathan Wakely <jwakely@redhat.com>
501 * include/std/stacktrace (hash<basic_stacktrace<Alloc>>): Fix
502 type of hash functio nfor entries.
503 * testsuite/19_diagnostics/stacktrace/hash.cc: New test.
505 2023-11-14 Jonathan Wakely <jwakely@redhat.com>
508 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.size): Fix
509 calculation to use _M_start._M_cur.
510 * testsuite/libstdc++-xmethods/deque.cc: Check failing cases.
512 2023-11-13 Arsen Arsenović <arsen@aarsen.me>
514 * configure: Regenerate.
516 2023-11-13 Jonathan Wakely <jwakely@redhat.com>
518 * testsuite/std/time/clock/file/io.cc: Double timeout using
520 * testsuite/std/time/clock/gps/io.cc: Likewise.
521 * testsuite/std/time/clock/local/io.cc: Likewise.
522 * testsuite/std/time/clock/system/io.cc: Likewise.
523 * testsuite/std/time/clock/tai/io.cc: Likewise.
524 * testsuite/std/time/clock/utc/io.cc: Likewise.
526 2023-11-13 Jonathan Wakely <jwakely@redhat.com>
529 * include/std/optional (_Optional_payload_base::_M_reset): Set
530 _M_engaged to false unconditionally.
532 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
535 * include/bits/stl_bvector.h (_M_assume_normalized): Do not use
536 statement form of assume attribute for Clang.
538 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
540 * include/std/string_view (operator==, operator<=>): Remove
541 redundant overloads (LWG 3950).
543 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
545 * testsuite/26_numerics/headers/complex.h/std_c++11.h: Moved to...
546 * testsuite/26_numerics/headers/complex.h/std_c++11.cc: ...here.
547 * testsuite/26_numerics/headers/complex.h/std_c++98.h: Moved to...
548 * testsuite/26_numerics/headers/complex.h/std_c++98.cc: ...here.
549 Check macro first and then #undef.
550 * testsuite/26_numerics/headers/complex.h/std_gnu++11.h: Moved to...
551 * testsuite/26_numerics/headers/complex.h/std_gnu++11.cc: ...here.
553 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
556 * include/bits/utility.h (integer_sequence): Add static_assert.
557 * testsuite/20_util/integer_sequence/112473.cc: New test.
559 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
561 * testsuite/20_util/pair/dangling_ref.cc: Add hosted effective
562 target for specifiers using c++17_down.
564 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
566 * include/bits/shared_ptr_atomic.h (atomic_is_lock_free)
567 (atomic_load_explicit, atomic_load, atomic_store_explicit)
568 (atomic_store, atomic_exchange_explicit, atomic_exchange)
569 (atomic_compare_exchange_strong, atomic_compare_exchange_weak)
570 (atomic_compare_exchange_strong_explicit)
571 (atomic_compare_exchange_weak_explicit): Add deprecated
572 attribute for C++20 and later.
573 * testsuite/20_util/shared_ptr/atomic/1.cc: Suppress deprecated
575 * testsuite/20_util/shared_ptr/atomic/2.cc: Likewise.
576 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
577 * testsuite/29_atomics/atomic/lwg3220.cc: Likewise.
579 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
581 * include/bits/std_mutex.h (lock_guard): Add [[nodiscard]]
582 attribute to constructors.
583 * include/bits/unique_lock.h (unique_lock): Likewise.
584 * include/std/mutex (scoped_lock, scoped_lock<Mutex>): Likewise.
585 * testsuite/30_threads/lock_guard/cons/nodiscard.cc: New test.
586 * testsuite/30_threads/scoped_lock/cons/nodiscard.cc: New test.
587 * testsuite/30_threads/unique_lock/cons/nodiscard.cc: New test.
589 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
591 * include/std/span (span, as_bytes, as_writable_bytes): Add
592 [[nodiscard]] attribute on all non-void functions.
593 * testsuite/23_containers/span/back_assert_neg.cc: Suppress
595 * testsuite/23_containers/span/back_neg.cc: Likewise.
596 * testsuite/23_containers/span/first_2_assert_neg.cc: Likewise.
597 * testsuite/23_containers/span/first_assert_neg.cc: Likewise.
598 * testsuite/23_containers/span/first_neg.cc: Likewise.
599 * testsuite/23_containers/span/front_assert_neg.cc: Likewise.
600 * testsuite/23_containers/span/front_neg.cc: Likewise.
601 * testsuite/23_containers/span/index_op_assert_neg.cc: Likewise.
602 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
603 * testsuite/23_containers/span/last_2_assert_neg.cc: Likewise.
604 * testsuite/23_containers/span/last_assert_neg.cc: Likewise.
605 * testsuite/23_containers/span/last_neg.cc: Likewise.
606 * testsuite/23_containers/span/subspan_2_assert_neg.cc:
608 * testsuite/23_containers/span/subspan_3_assert_neg.cc:
610 * testsuite/23_containers/span/subspan_4_assert_neg.cc:
612 * testsuite/23_containers/span/subspan_5_assert_neg.cc:
614 * testsuite/23_containers/span/subspan_6_assert_neg.cc:
616 * testsuite/23_containers/span/subspan_assert_neg.cc: Likewise.
617 * testsuite/23_containers/span/subspan_neg.cc: Likewise.
618 * testsuite/23_containers/span/nodiscard.cc: New test.
620 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
623 * config.h.in: Regenerate.
624 * configure: Regenerate.
625 * linkage.m4 (GLIBCXX_MAYBE_UNDERSCORED_FUNCS): Remove.
626 (GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1): Do not check for _foo.
627 (GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1): Likewise.
628 (GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2): Likewise.
629 (GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3): Likewise.
630 (GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2): Do not use
631 GLIBCXX_MAYBE_UNDERSCORED_FUNCS.
633 2023-11-11 Nathaniel Shead <nathanieloshead@gmail.com>
636 * include/c_global/cmath (acosf, acosl, asinf, asinl, atanf)
637 (atanl, atan2f, atan2l, ceilf, ceill, cosf, cosl, coshf, coshl)
638 (expf, expl, fabsf, fabsl, floorf, floorl, fmodf, fmodl, frexpf)
639 (frexpl, ldexpf, ldexpl, logf, logl, log10f, log10l, modff)
640 (modfl, powf, powl, sinf, sinl, sinhf, sinhl, sqrtf, sqrtl, tanf)
641 (tanl, tanhf, tanhl): Add using-declarations in namespace std.
642 * testsuite/26_numerics/headers/cmath/equivalent_functions.cc:
644 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
645 Add checks for existence of above names.
647 2023-11-09 Arsen Arsenović <arsen@aarsen.me>
649 * testsuite/20_util/scoped_allocator/noexcept.cc: Mark as
652 2023-11-09 Arsen Arsenović <arsen@aarsen.me>
654 * include/bits/memoryfwd.h: Remove HOSTED check around allocator
655 and its specializations.
657 2023-11-09 Patrick Palka <ppalka@redhat.com>
660 * include/std/ranges (__detail::__box<_Tp>::operator*): Define
661 && overloads as well.
662 (__detail::__take_of_repeat_view): Forward __r when accessing
664 (__detail::__drop_of_repeat_view): Likewise.
665 * testsuite/std/ranges/repeat/1.cc (test07): New test.
667 2023-11-09 François Dumont <fdumont@gcc.gnu.org>
669 * include/bits/hashtable_policy.h (_RehashStateGuard): New.
670 (_Insert_base<>::_M_insert_range(_IIt, _IIt, const _NodeGet&, false_type)):
672 * include/bits/hashtable.h (__rehash_guard_t): New.
673 (__rehash_state): Remove.
675 (_M_rehash_aux): Rename into _M_rehash.
676 (_M_assign_elements, _M_insert_unique_node, _M_insert_multi_node): Adapt.
679 2023-11-09 François Dumont <fdumont@gcc.gnu.org>
681 * include/bits/hashtable_policy.h
682 (struct _NodePtrGuard<_HashtableAlloc, _NodePtr>): New.
683 (_ReuseAllocNode::operator()(_Args&&...)): Use latter to guard allocated node
684 pointer while constructing in place the value_type instance.
686 2023-11-09 Alexandre Oliva <oliva@adacore.com>
689 * include/bits/stl_bvector.h (_Bit_iterator_base): Add
690 _M_assume_normalized member function. Call it in _M_bump_up,
691 _M_bump_down, _M_incr, operator==, operator<=>, operator<, and
693 (_Bit_iterator): Also call it in operator*.
694 (_Bit_const_iterator): Likewise.
696 2023-11-07 François Dumont <fdumont@gcc.gnu.org>
698 * include/bits/hashtable_policy.h
699 (_Hashtable_alloc<>::_M_allocate_node): Add missing call to node destructor
700 on construct exception.
702 2023-11-07 Richard Biener <rguenther@suse.de>
705 * src/c++98/locale.cc (locale::facet::_S_initialize_once):
706 Check whether _S_c_locale is already initialized.
707 (locale::facet::_S_get_c_locale): Always perform non-threadsafe
708 init when threadsafe init failed.
710 2023-11-06 Ian Lance Taylor <iant@golang.org>
712 PR libbacktrace/111315
713 PR libbacktrace/112263
714 * acinclude.m4: Set -D_GNU_SOURCE in BACKTRACE_CPPFLAGS and when
715 grepping link.h for dl_iterate_phdr.
716 * configure: Regenerate.
718 2023-11-06 Jonathan Wakely <jwakely@redhat.com>
720 * include/std/expected (expected::and_then, expected::or_else):
721 Add string literals to static assertions.
722 * include/std/optional (optional::and_then, optional::or_else):
725 2023-11-04 Feng Jisen <J1senn@outlook.com>
727 * include/bits/utility.h (_Nth_type): Remove redundant partial
730 2023-11-04 Jonathan Wakely <jwakely@redhat.com>
733 * include/std/system_error (system_error::system_error): Group
734 arguments so that concatenation can reuse rvalue's capacity.
735 * src/c++11/system_error.cc (strerror_string): New function.
736 [_GLIBCXX_HAVE_STRERROR_R] (use_strerror_result): New functions.
737 (generic_error_category::message): Use strerror_string.
738 (system_error_category::message): Likewise.
740 2023-11-04 Jonathan Wakely <jwakely@redhat.com>
742 * doc/xml/manual/appendix_contributing.xml: Replace example that
744 * doc/html/manual/source_code_style.html: Regenerate.
746 2023-11-02 Jonathan Wakely <jwakely@redhat.com>
749 * include/std/string_view (string_view::remove_suffix): Add
751 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc:
753 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc:
756 2023-11-02 Jonathan Wakely <jwakely@redhat.com>
758 * acinclude.m4 (GLIBCXX_ENABLE_C99): Fix snprintf checks.
759 * configure: Regenerate.
761 2023-10-30 François Dumont <fdumont@gcc.gnu.org>
763 * config/abi/pre/gnu-versioned-namespace.ver: Add comment on recently
764 added emul TLS symbols.
766 2023-10-30 François Dumont <fdumont@gcc.gnu.org>
768 * src/experimental/contract.cc
769 [_GLIBCXX_INLINE_VERSION](handle_contract_violation): Rework comment.
770 Remove weak attribute.
772 2023-10-29 François Dumont <fdumont@gcc.gnu.org>
774 * config/abi/pre/gnu-versioned-namespace.ver: Add missing emul TLS
777 2023-10-29 François Dumont <fdumont@gcc.gnu.org>
779 * src/experimental/contract.cc
780 [_GLIBCXX_INLINE_VERSION](handle_contract_violation): Provide symbol
781 without version namespace decoration for gcc.
783 2023-10-26 Jonathan Wakely <jwakely@redhat.com>
786 * include/std/shared_mutex (shared_lock::unlock): Change errc
787 constant to operation_not_permitted.
788 * testsuite/30_threads/shared_lock/locking/112089.cc: New test.
790 2023-10-26 Jonathan Wakely <jwakely@redhat.com>
792 * testsuite/20_util/duration/io.cc: Double timeout using
794 * testsuite/std/time/day/io.cc: Likewise.
795 * testsuite/std/time/format.cc: Likewise.
796 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
797 * testsuite/std/time/month/io.cc: Likewise.
798 * testsuite/std/time/month_day/io.cc: Likewise.
799 * testsuite/std/time/month_day_last/io.cc: Likewise.
800 * testsuite/std/time/month_weekday/io.cc: Likewise.
801 * testsuite/std/time/month_weekday_last/io.cc: Likewise.
802 * testsuite/std/time/weekday/io.cc: Likewise.
803 * testsuite/std/time/weekday_indexed/io.cc: Likewise.
804 * testsuite/std/time/weekday_last/io.cc: Likewise.
805 * testsuite/std/time/year/io.cc: Likewise.
806 * testsuite/std/time/year_month/io.cc: Likewise.
807 * testsuite/std/time/year_month_day/io.cc: Likewise.
808 * testsuite/std/time/year_month_day_last/io.cc: Likewise.
809 * testsuite/std/time/year_month_weekday/io.cc: Likewise.
810 * testsuite/std/time/year_month_weekday_last/io.cc: Likewise.
811 * testsuite/std/time/zoned_time/io.cc: Likewise.
813 2023-10-25 Jonathan Wakely <jwakely@redhat.com>
816 * src/libbacktrace/Makefile.am: Add -prefer-pic to libtool
818 * src/libbacktrace/Makefile.in: Regenerate.
820 2023-10-24 Paul M. Bendixen <paulbendixen@gmail.com>
822 * include/Makefile.am: Move cstdarg, cstdalign and cstdbool to
824 * include/Makefile.in: Regenerate.
826 2023-10-22 Iain Sandoe <iain@sandoe.co.uk>
828 * configure: Regenerate.
829 * configure.ac: Handle Darwin rpaths.
830 * src/Makefile.am: Handle Darwin rpaths.
831 * src/Makefile.in: Regenerate.
833 2023-10-21 Jonathan Wakely <jwakely@redhat.com>
835 * include/bits/basic_string.h (_M_init_local_buf()): New
837 (_M_use_local_data()): Use _M_init_local_buf.
838 (basic_string(), basic_string(const Alloc&))
839 (basic_string(basic_string&&))
840 (basic_string(basic_string&&, const Alloc&)): Use
841 _M_init_local_buf instead of _M_use_local_data().
842 * include/bits/basic_string.tcc (swap(basic_string&))
843 (_M_construct(InIter, InIter, input_iterator_tag))
844 (_M_construct(InIter, InIter, forward_iterator_tag))
845 (_M_construct(size_type, CharT), reserve()): Likewise.
847 2023-10-21 Benjamin Brock <brock@cs.berkeley.edu>
849 * include/std/ranges (zip_view, adjacent_view): Implement
850 workaround for LLVM-61763.
852 2023-10-21 Dimitrij Mijoski <dmjpp@hotmail.com>
854 * testsuite/22_locale/codecvt/codecvt_unicode.h: Test length()
856 2023-10-21 Jonathan Wakely <jwakely@redhat.com>
858 * include/bits/fs_dir.h (operator==(default_sentinel_t)): Fix
861 2023-10-20 Marek Polacek <polacek@redhat.com>
864 * include/std/charconv (from_chars): Add explicit casts.
866 2023-10-19 François Dumont <fdumont@gcc.gnu.org>
868 * include/bits/hashtable_policy.h
869 (_Hash_code_base::_M_hash_code(const _Hash&, const _Hash_node_value<>&)): Remove.
870 (_Hash_code_base::_M_hash_code<_H2>(const _H2&, const _Hash_node_value<>&)): Remove.
871 * include/bits/hashtable.h
872 (_M_src_hash_code<_H2>(const _H2&, const key_type&, const __node_value_type&)): New.
873 (_M_merge_unique<>, _M_merge_multi<>): Use latter.
874 * testsuite/23_containers/unordered_map/modifiers/merge.cc
875 (test04, test05, test06): New test cases.
877 2023-10-13 Jakub Jelinek <jakub@redhat.com>
879 * testsuite/tr1/8_c_compatibility/cstdio/functions.cc (test01):
880 Initialize stream to va_arg(ap, FILE*) rather than 0.
881 * testsuite/tr1/8_c_compatibility/cwchar/functions.cc (test01):
884 2023-10-13 Hans-Peter Nilsson <hp@axis.com>
886 * testsuite/29_atomics/atomic/compare_exchange_padding.cc,
887 testsuite/29_atomics/atomic_flag/clear/1.cc,
888 testsuite/29_atomics/atomic_flag/cons/value_init.cc,
889 testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc,
890 testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc,
891 testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc,
892 testsuite/29_atomics/atomic_ref/generic.cc,
893 testsuite/29_atomics/atomic_ref/integral.cc,
894 testsuite/29_atomics/atomic_ref/pointer.cc: Replace
895 dg-require-thread-fence with dg-require-atomic-cmpxchg-word.
897 2023-10-13 Hans-Peter Nilsson <hp@axis.com>
899 * testsuite/lib/dg-options.exp (dg-require-atomic-cmpxchg-word):
901 * testsuite/lib/libstdc++.exp (check_v3_target_atomic_cmpxchg_word):
904 2023-10-05 François Dumont <fdumont@gcc.gnu.org>
906 * config/abi/pre/gnu-versioned-namespace.ver: Add missing symbols
907 for _Float{16,32,64,128,32x,64x,128x}.
909 2023-10-04 Tom Tromey <tromey@adacore.com>
911 * python/libstdcxx/v6/printers.py
912 (StdExpAnyPrinter.__init__): Qualify call to
915 2023-10-04 Tom Tromey <tromey@adacore.com>
917 * python/libstdcxx/v6/printers.py: Assume that
918 _versioned_namespace is non-None.
919 * python/libstdcxx/v6/xmethods.py (is_specialization_of):
920 Assume that _versioned_namespace is non-None.
922 2023-10-04 Tom Tromey <tromey@adacore.com>
924 * python/libstdcxx/v6/xmethods.py (_versioned_namespace):
927 2023-09-29 Dimitrij Mijoski <dmjpp@hotmail.com>
930 * src/c++11/codecvt.cc (read_utf8_code_point): Fix handing of
932 (ucs4_out): Fix handling of surrogates in UCS-4 -> UTF-8.
933 (ucs4_in): Fix handling of range with odd number of bytes.
934 (ucs4_out): Fix handling of surrogates in UCS-4 -> UTF-16.
935 (ucs2_out): Fix handling of surrogates in UCS-2 -> UTF-16.
936 (ucs2_in): Fix handling of range with odd number of bytes.
937 (__codecvt_utf16_base<char16_t>::do_in): Likewise.
938 (__codecvt_utf16_base<char32_t>::do_in): Likewise.
939 (__codecvt_utf16_base<wchar_t>::do_in): Likewise.
940 * testsuite/22_locale/codecvt/codecvt_unicode.cc: Renames, add
941 tests for codecvt_utf16<char16_t> and codecvt_utf16<char32_t>.
942 * testsuite/22_locale/codecvt/codecvt_unicode.h: Refactor UTF-8
943 testing functions for char8_t, add more test cases for errors,
944 add testing functions for codecvt_utf16.
945 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc:
946 Renames, add tests for codecvt_utf16<whchar_t>.
947 * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc (test06):
949 * testsuite/22_locale/codecvt/codecvt_unicode_char8_t.cc: New
952 2023-09-29 Nathaniel Shead <nathanieloshead@gmail.com>
954 * include/bits/basic_string.h: (basic_string(basic_string&&)):
955 Activate _M_local_buf when needed.
956 (basic_string(basic_string&&, const _Alloc&)): Likewise.
957 * include/bits/basic_string.tcc: (basic_string::swap): Likewise.
958 * include/std/variant: (__detail::__variant::__construct_n): New.
959 (__detail::__variant::__emplace): Use __construct_n.
961 2023-09-28 Tom Tromey <tromey@adacore.com>
963 * python/libstdcxx/v6/printers.py (Printer.add_version)
964 (add_one_template_type_printer)
965 (FilteringTypePrinter.add_one_type_printer): Use Python
968 2023-09-28 Tom Tromey <tromey@adacore.com>
970 * python/libstdcxx/v6/printers.py (std_ratio_t_tuple):
973 2023-09-28 Tom Tromey <tromey@adacore.com>
975 * python/libstdcxx/v6/printers.py
976 (StdExpOptionalPrinter.__init__, lookup_node_type):
977 Remove unused variables.
979 2023-09-28 Tom Tromey <tromey@adacore.com>
981 * python/libstdcxx/v6/printers.py: Don't import 'os'.
982 * python/libstdcxx/v6/__init__.py: Don't import 'gdb'.
984 2023-09-28 Tom Tromey <tromey@adacore.com>
986 * python/libstdcxx/v6/printers.py: Use gdb.ValuePrinter
987 everywhere. Rename members to start with "_".
989 2023-09-28 Tom Tromey <tromey@adacore.com>
991 * testsuite/lib/gdb-test.exp (gdb-test): Enable Python
992 stack traces from gdb.
994 2023-09-28 Jonathan Wakely <jwakely@redhat.com>
996 * python/libstdcxx/v6/xmethods.py (is_specialization_of): Define
998 (ArrayMethodsMatcher, DequeMethodsMatcher)
999 (ForwardListMethodsMatcher, ListMethodsMatcher)
1000 (VectorMethodsMatcher, AssociativeContainerMethodsMatcher)
1001 (UniquePtrGetWorker, UniquePtrMethodsMatcher)
1002 (SharedPtrSubscriptWorker, SharedPtrMethodsMatcher): Use
1003 is_specialization_of instead of re.match.
1005 2023-09-28 Jonathan Wakely <jwakely@redhat.com>
1007 * python/libstdcxx/v6/printers.py: Break long lines. Use raw
1008 strings for regular expressions. Add whitespace around
1010 (is_member_of_namespace): Use isinstance to check type.
1011 (is_specialization_of): Likewise. Adjust template_name
1012 for versioned namespace instead of duplicating the re.match
1014 (StdExpAnyPrinter._string_types): New static method.
1015 (StdExpAnyPrinter.to_string): Use _string_types.
1017 2023-09-28 Jonathan Wakely <jwakely@redhat.com>
1019 * python/libstdcxx/v6/printers.py: Format docstrings according
1021 * python/libstdcxx/v6/xmethods.py: Likewise.
1023 2023-09-28 Tim Song <t.canens.cpp@gmail.com>
1026 * include/bits/hashtable_policy.h
1027 (_Hash_node_value_base<>::_M_valptr(), _Hash_node_value_base<>::_M_v())
1028 Add [[__gnu__::__always_inline__]].
1030 2023-09-27 Jonathan Wakely <jwakely@redhat.com>
1032 * python/libstdcxx/v6/printers.py (StdChronoTimeZoneRulePrinter):
1033 Fix incorrect number of replacement fields.
1035 2023-09-26 Hans-Peter Nilsson <hp@axis.com>
1037 * testsuite/29_atomics/atomic_flag/cons/value_init.cc: Add
1038 dg-require-thread-fence.
1040 2023-09-25 Patrick Palka <ppalka@redhat.com>
1042 * include/std/charconv (__detail::__integer_to_chars_result_type):
1044 (__detail::__to_chars_16): Use to_chars_result as return type.
1045 (__detail::__to_chars_10): Likewise.
1046 (__detail::__to_chars_8): Likewise.
1047 (__detail::__to_chars_2): Likewise.
1048 (__detail::__to_chars_i): Likewise.
1049 (__detail::__integer_from_chars_result_type): Inline the
1051 (from_chars): ... here. Use __is_standard_integer in the
1052 constraint. Encode constraint as a defaulted non-type template
1053 parameter instead of within the return type.
1055 2023-09-25 John David Anglin <danglin@gcc.gnu.org>
1057 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
1059 2023-09-25 Jonathan Wakely <jwakely@redhat.com>
1063 * include/std/array (to_array): Cast memcpy arguments to void*.
1064 * testsuite/23_containers/array/creation/111512.cc: New test.
1066 2023-09-25 Jonathan Wakely <jwakely@redhat.com>
1068 * include/bits/move.h (forward_list): Define for C++23.
1069 * include/bits/version.def (forward_like): Define.
1070 * include/bits/version.h: Regenerate.
1071 * include/std/utility (__glibcxx_want_forward_like): Define.
1072 * testsuite/20_util/forward_like/1.cc: New test.
1073 * testsuite/20_util/forward_like/2_neg.cc: New test.
1074 * testsuite/20_util/forward_like/version.cc: New test.
1076 2023-09-19 Marek Polacek <polacek@redhat.com>
1078 * testsuite/20_util/allocator/105975.cc: Add dg-error.
1080 2023-09-18 Patrick Palka <ppalka@redhat.com>
1084 * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
1085 Make data member seed_seq::called mutable.
1086 * testsuite/26_numerics/random/independent_bits_engine/cons/seed_seq2.cc:
1088 * testsuite/26_numerics/random/linear_congruential_engine/cons/seed_seq2.cc:
1090 * testsuite/26_numerics/random/mersenne_twister_engine/cons/seed_seq2.cc:
1092 * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
1094 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed_seq2.cc:
1096 * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed_seq2.cc:
1099 2023-09-18 Jonathan Wakely <jwakely@redhat.com>
1101 * doc/xml/manual/status_cxx2020.xml: Tweak P1466R3 status.
1102 * doc/html/manual/status.html: Regenerate.
1104 2023-09-18 Jonathan Wakely <jwakely@redhat.com>
1106 * doc/xml/manual/configure.xml: Use conventional option name.
1107 * doc/xml/manual/status_cxx2020.xml: Update.
1108 * doc/xml/manual/status_cxx2023.xml: Update.
1109 * doc/html/*: Regenerate.
1111 2023-09-18 Jonathan Wakely <jwakely@redhat.com>
1113 * doc/xml/manual/intro.xml: Clarify that building libstdc++
1114 separately from GCC is not supported.
1115 * doc/xml/manual/prerequisites.xml: Note msgfmt prerequisite for
1117 * doc/html/manual/setup.html: Regenerate.
1119 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1121 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Do not
1122 restrict to pthreads targets.
1123 * testsuite/30_threads/jthread/3.cc: Likewise.
1124 * testsuite/30_threads/semaphore/100806.cc: Likewise.
1125 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
1126 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
1127 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Likewise.
1129 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1131 * testsuite/18_support/coroutines/95917.cc: Remove dg-options
1133 * testsuite/18_support/coroutines/hash.cc: Likewise.
1134 * testsuite/18_support/coroutines/lwg3460.cc: Likewise.
1135 * testsuite/18_support/destroying_delete.cc: Likewise.
1136 * testsuite/18_support/source_location/1.cc: Likewise.
1137 * testsuite/18_support/source_location/consteval.cc: Likewise.
1138 * testsuite/18_support/source_location/version.cc: Likewise.
1139 * testsuite/19_diagnostics/error_category/operators/three_way.cc:
1141 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
1143 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
1145 * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
1146 * testsuite/26_numerics/adjacent_difference/lwg2055.cc:
1148 * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
1149 * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
1150 * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
1151 * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
1152 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
1153 * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
1155 * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
1157 * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
1159 * testsuite/28_regex/sub_match/compare_c++20.cc: Likewise.
1160 * testsuite/experimental/filesystem/iterators/106201.cc:
1162 * testsuite/experimental/scopeguard/exit.cc: Likewise.
1163 * testsuite/experimental/scopeguard/uniqueres.cc: Likewise.
1165 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1167 * testsuite/30_threads/barrier/1.cc: Remove dg-options
1169 * testsuite/30_threads/barrier/2.cc: Likewise.
1170 * testsuite/30_threads/barrier/arrive.cc: Likewise.
1171 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
1172 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
1173 * testsuite/30_threads/barrier/completion.cc: Likewise.
1174 * testsuite/30_threads/condition_variable/members/clock_neg.cc:
1176 * testsuite/30_threads/condition_variable_any/members/clock_neg.cc:
1178 * testsuite/30_threads/condition_variable_any/stop_token/1.cc:
1180 * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
1182 * testsuite/30_threads/future/members/clock_neg.cc: Likewise.
1183 * testsuite/30_threads/headers/stop_token/synopsis.cc: Likewise.
1184 * testsuite/30_threads/headers/thread/types_std_c++20.cc:
1186 * testsuite/30_threads/jthread/1.cc: Likewise.
1187 * testsuite/30_threads/jthread/100612.cc: Likewise.
1188 * testsuite/30_threads/jthread/95989.cc: Likewise.
1189 * testsuite/30_threads/jthread/jthread.cc: Likewise.
1190 * testsuite/30_threads/jthread/version.cc: Likewise.
1191 * testsuite/30_threads/latch/1.cc: Likewise.
1192 * testsuite/30_threads/latch/2.cc: Likewise.
1193 * testsuite/30_threads/latch/3.cc: Likewise.
1194 * testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc:
1196 * testsuite/30_threads/semaphore/1.cc: Likewise.
1197 * testsuite/30_threads/semaphore/2.cc: Likewise.
1198 * testsuite/30_threads/semaphore/least_max_value_neg.cc:
1200 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
1201 * testsuite/30_threads/shared_future/members/clock_neg.cc:
1203 * testsuite/30_threads/shared_lock/locking/clock_neg.cc:
1205 * testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc:
1207 * testsuite/30_threads/stop_token/1.cc: Likewise.
1208 * testsuite/30_threads/stop_token/2.cc: Likewise.
1209 * testsuite/30_threads/stop_token/stop_callback.cc: Likewise.
1210 * testsuite/30_threads/stop_token/stop_callback/deadlock.cc:
1212 * testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc:
1214 * testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc:
1216 * testsuite/30_threads/stop_token/stop_callback/invoke.cc:
1218 * testsuite/30_threads/stop_token/stop_source.cc: Likewise.
1219 * testsuite/30_threads/stop_token/stop_source/assign.cc:
1221 * testsuite/30_threads/stop_token/stop_token.cc: Likewise.
1222 * testsuite/30_threads/stop_token/stop_token/stop_possible.cc:
1224 * testsuite/30_threads/thread/id/operators_c++20.cc: Likewise.
1225 * testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc:
1227 * testsuite/30_threads/unique_lock/locking/clock_neg.cc:
1230 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1232 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc:
1233 Remove dg-options -std=gnu++2a.
1234 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
1236 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc:
1238 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
1240 * testsuite/27_io/basic_istringstream/cons/char/1.cc: Likewise.
1241 * testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc:
1243 * testsuite/27_io/basic_istringstream/str/char/2.cc: Likewise.
1244 * testsuite/27_io/basic_istringstream/str/wchar_t/2.cc:
1246 * testsuite/27_io/basic_istringstream/view/char/1.cc: Likewise.
1247 * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
1249 * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
1250 * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc:
1252 * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc:
1254 * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise.
1255 * testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc:
1257 * testsuite/27_io/basic_ostringstream/str/char/3.cc: Likewise.
1258 * testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc:
1260 * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
1261 * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
1263 * testsuite/27_io/basic_stringbuf/cons/char/2.cc: Likewise.
1264 * testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc: Likewise.
1265 * testsuite/27_io/basic_stringbuf/str/char/4.cc: Likewise.
1266 * testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc: Likewise.
1267 * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
1268 * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
1269 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise.
1270 * testsuite/27_io/basic_stringstream/cons/char/97719.cc:
1272 * testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc:
1274 * testsuite/27_io/basic_stringstream/str/char/5.cc: Likewise.
1275 * testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc:
1277 * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
1278 * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
1280 * testsuite/27_io/basic_syncbuf/1.cc: Likewise.
1281 * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
1282 * testsuite/27_io/basic_syncbuf/basic_ops/1.cc: Likewise.
1283 * testsuite/27_io/basic_syncbuf/requirements/types.cc: Likewise.
1284 * testsuite/27_io/basic_syncbuf/sync_ops/1.cc: Likewise.
1285 * testsuite/27_io/basic_syncstream/1.cc: Likewise.
1286 * testsuite/27_io/basic_syncstream/2.cc: Likewise.
1287 * testsuite/27_io/basic_syncstream/basic_ops/1.cc: Likewise.
1288 * testsuite/27_io/basic_syncstream/requirements/types.cc:
1290 * testsuite/27_io/filesystem/iterators/106201.cc: Likewise.
1291 * testsuite/27_io/filesystem/iterators/lwg3719.cc: Likewise.
1292 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc:
1294 * testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc:
1297 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1299 * testsuite/26_numerics/accumulate/constexpr.cc: Remove
1300 dg-options -std=gnu++2a.
1301 * testsuite/26_numerics/accumulate/lwg2055.cc: Likewise.
1302 * testsuite/26_numerics/adjacent_difference/constexpr.cc:
1304 * testsuite/26_numerics/bit/bit.cast/105027.cc: Likewise.
1305 * testsuite/26_numerics/bit/bit.cast/bit_cast.cc: Likewise.
1306 * testsuite/26_numerics/bit/bit.cast/version.cc: Likewise.
1307 * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
1308 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc:
1310 * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
1311 * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
1312 * testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc: Likewise.
1313 * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
1314 * testsuite/26_numerics/bit/bit.rotate/rotr.cc: Likewise.
1315 * testsuite/26_numerics/bit/header-2.cc: Likewise.
1316 * testsuite/26_numerics/bit/header.cc: Likewise.
1317 * testsuite/26_numerics/complex/1.cc: Likewise.
1318 * testsuite/26_numerics/complex/2.cc: Likewise.
1319 * testsuite/26_numerics/complex/comparison_operators/more_constexpr.cc:
1321 * testsuite/26_numerics/complex/operators/more_constexpr.cc:
1323 * testsuite/26_numerics/complex/requirements/more_constexpr.cc:
1325 * testsuite/26_numerics/complex/value_operations/more_constexpr.cc:
1327 * testsuite/26_numerics/endian/1.cc: Likewise.
1328 * testsuite/26_numerics/endian/2.cc: Likewise.
1329 * testsuite/26_numerics/endian/3.cc: Likewise.
1330 * testsuite/26_numerics/exclusive_scan/constexpr.cc: Likewise.
1331 * testsuite/26_numerics/inclusive_scan/constexpr.cc: Likewise.
1332 * testsuite/26_numerics/inner_product/constexpr.cc: Likewise.
1333 * testsuite/26_numerics/inner_product/lwg2055.cc: Likewise.
1334 * testsuite/26_numerics/iota/constexpr.cc: Likewise.
1335 * testsuite/26_numerics/lerp/1.cc: Likewise.
1336 * testsuite/26_numerics/lerp/constexpr.cc: Likewise.
1337 * testsuite/26_numerics/lerp/version.cc: Likewise.
1338 * testsuite/26_numerics/midpoint/floating.cc: Likewise.
1339 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
1340 * testsuite/26_numerics/midpoint/pointer.cc: Likewise.
1341 * testsuite/26_numerics/midpoint/pointer_neg.cc: Likewise.
1342 * testsuite/26_numerics/midpoint/version.cc: Likewise.
1343 * testsuite/26_numerics/numbers/1.cc: Likewise.
1344 * testsuite/26_numerics/numbers/2.cc: Likewise.
1345 * testsuite/26_numerics/numbers/3.cc: Likewise.
1346 * testsuite/26_numerics/numbers/float128.cc: Likewise.
1347 * testsuite/26_numerics/numbers/nonfloat_neg.cc: Likewise.
1348 * testsuite/26_numerics/partial_sum/constexpr.cc: Likewise.
1349 * testsuite/26_numerics/partial_sum/lwg2055.cc: Likewise.
1350 * testsuite/26_numerics/random/concept.cc: Likewise.
1351 * testsuite/26_numerics/reduce/constexpr.cc: Likewise.
1352 * testsuite/26_numerics/slice/compare.cc: Likewise.
1353 * testsuite/26_numerics/transform_exclusive_scan/constexpr.cc:
1355 * testsuite/26_numerics/transform_inclusive_scan/constexpr.cc:
1357 * testsuite/26_numerics/transform_reduce/constexpr.cc: Likewise.
1359 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1361 * testsuite/24_iterators/aliases.cc: Remove dg-options
1363 * testsuite/24_iterators/associated_types/incrementable.traits.cc:
1365 * testsuite/24_iterators/associated_types/iterator.traits.cc:
1367 * testsuite/24_iterators/associated_types/readable.traits.cc:
1369 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
1371 * testsuite/24_iterators/back_insert_iterator/pr93884.cc:
1373 * testsuite/24_iterators/bidirectional/concept.cc: Likewise.
1374 * testsuite/24_iterators/common_iterator/1.cc: Likewise.
1375 * testsuite/24_iterators/common_iterator/100823.cc: Likewise.
1376 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
1377 * testsuite/24_iterators/contiguous/concept.cc: Likewise.
1378 * testsuite/24_iterators/contiguous/tag.cc: Likewise.
1379 * testsuite/24_iterators/counted_iterator/1.cc: Likewise.
1380 * testsuite/24_iterators/counted_iterator/lwg3389.cc: Likewise.
1381 * testsuite/24_iterators/counted_iterator/lwg3643.cc: Likewise.
1382 * testsuite/24_iterators/customization_points/92894.cc:
1384 * testsuite/24_iterators/customization_points/iter_move.cc:
1386 * testsuite/24_iterators/customization_points/iter_swap.cc:
1388 * testsuite/24_iterators/customization_points/lwg3420.cc:
1390 * testsuite/24_iterators/forward/concept.cc: Likewise.
1391 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
1393 * testsuite/24_iterators/front_insert_iterator/pr93884.cc:
1395 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
1397 * testsuite/24_iterators/indirect_callable/92894.cc: Likewise.
1398 * testsuite/24_iterators/indirect_callable/projected-adl.cc:
1400 * testsuite/24_iterators/indirect_callable/projected.cc:
1402 * testsuite/24_iterators/input/concept.cc: Likewise.
1403 * testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise.
1404 * testsuite/24_iterators/istream_iterator/cons/sentinel.cc:
1406 * testsuite/24_iterators/istream_iterator/sentinel.cc: Likewise.
1407 * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc:
1409 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
1411 * testsuite/24_iterators/move_iterator/cust.cc: Likewise.
1412 * testsuite/24_iterators/move_iterator/dr3435.cc: Likewise.
1413 * testsuite/24_iterators/move_iterator/input_iterator.cc:
1415 * testsuite/24_iterators/move_iterator/lwg3390.cc: Likewise.
1416 * testsuite/24_iterators/move_iterator/lwg3391.cc: Likewise.
1417 * testsuite/24_iterators/move_iterator/move_only.cc: Likewise.
1418 * testsuite/24_iterators/move_iterator/p2520r0.cc: Likewise.
1419 * testsuite/24_iterators/move_iterator/rel_ops_c++20.cc:
1421 * testsuite/24_iterators/move_iterator/sentinel.cc: Likewise.
1422 * testsuite/24_iterators/normal_iterator/cmp_c++20.cc: Likewise.
1423 * testsuite/24_iterators/output/concept.cc: Likewise.
1424 * testsuite/24_iterators/random_access/concept.cc: Likewise.
1425 * testsuite/24_iterators/range_access/range_access_cpp20.cc:
1427 * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
1429 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
1430 * testsuite/24_iterators/range_operations/advance.cc: Likewise.
1431 * testsuite/24_iterators/range_operations/advance_overflow.cc:
1433 * testsuite/24_iterators/range_operations/distance.cc: Likewise.
1434 * testsuite/24_iterators/range_operations/lwg3392.cc: Likewise.
1435 * testsuite/24_iterators/range_operations/next.cc: Likewise.
1436 * testsuite/24_iterators/range_operations/prev.cc: Likewise.
1437 * testsuite/24_iterators/reverse_iterator/cust.cc: Likewise.
1438 * testsuite/24_iterators/reverse_iterator/dr3435.cc: Likewise.
1439 * testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc:
1442 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1444 * testsuite/23_containers/array/comparison_operators/96851.cc:
1445 Remove dg-options -std=gnu++2a.
1446 * testsuite/23_containers/array/comparison_operators/constexpr.cc:
1448 * testsuite/23_containers/array/creation/1.cc: Likewise.
1449 * testsuite/23_containers/array/creation/110167.cc: Likewise.
1450 * testsuite/23_containers/array/creation/2.cc: Likewise.
1451 * testsuite/23_containers/array/creation/3_neg.cc: Likewise.
1452 * testsuite/23_containers/array/requirements/constexpr_fill.cc:
1454 * testsuite/23_containers/array/requirements/constexpr_swap.cc:
1456 * testsuite/23_containers/deque/48101-3_neg.cc: Likewise.
1457 * testsuite/23_containers/deque/erasure.cc: Likewise.
1458 * testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc:
1460 * testsuite/23_containers/deque/operators/cmp_c++20.cc:
1462 * testsuite/23_containers/forward_list/48101-3_neg.cc: Likewise.
1463 * testsuite/23_containers/forward_list/cmp_c++20.cc: Likewise.
1464 * testsuite/23_containers/forward_list/erasure.cc: Likewise.
1465 * testsuite/23_containers/forward_list/modifiers/92878_92947.cc:
1467 * testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc:
1469 * testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc:
1471 * testsuite/23_containers/list/48101-3_neg.cc: Likewise.
1472 * testsuite/23_containers/list/cmp_c++20.cc: Likewise.
1473 * testsuite/23_containers/list/erasure.cc: Likewise.
1474 * testsuite/23_containers/list/modifiers/emplace/92878_92947.cc:
1476 * testsuite/23_containers/list/operations/remove_cxx20_return.cc:
1478 * testsuite/23_containers/list/operations/unique_cxx20_return.cc:
1480 * testsuite/23_containers/map/48101-3_neg.cc: Likewise.
1481 * testsuite/23_containers/map/erasure.cc: Likewise.
1482 * testsuite/23_containers/map/modifiers/emplace/92878_92947.cc:
1484 * testsuite/23_containers/map/operations/contains.cc: Likewise.
1485 * testsuite/23_containers/map/operators/cmp_c++20.cc: Likewise.
1486 * testsuite/23_containers/multimap/48101-3_neg.cc: Likewise.
1487 * testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc:
1489 * testsuite/23_containers/multimap/operations/contains.cc:
1491 * testsuite/23_containers/multimap/operators/cmp_c++20.cc:
1493 * testsuite/23_containers/multiset/48101-3_neg.cc: Likewise.
1494 * testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc:
1496 * testsuite/23_containers/multiset/operations/contains.cc:
1498 * testsuite/23_containers/multiset/operators/cmp_c++20.cc:
1500 * testsuite/23_containers/priority_queue/92878_92947.cc:
1502 * testsuite/23_containers/queue/92878_92947.cc: Likewise.
1503 * testsuite/23_containers/queue/cmp_c++20.cc: Likewise.
1504 * testsuite/23_containers/set/48101-3_neg.cc: Likewise.
1505 * testsuite/23_containers/set/erasure.cc: Likewise.
1506 * testsuite/23_containers/set/modifiers/emplace/92878_92947.cc:
1508 * testsuite/23_containers/set/operations/contains.cc: Likewise.
1509 * testsuite/23_containers/set/operators/cmp_c++20.cc: Likewise.
1510 * testsuite/23_containers/span/1.cc: Likewise.
1511 * testsuite/23_containers/span/101411.cc: Likewise.
1512 * testsuite/23_containers/span/2.cc: Likewise.
1513 * testsuite/23_containers/span/deduction.cc: Likewise.
1514 * testsuite/23_containers/span/explicit.cc: Likewise.
1515 * testsuite/23_containers/span/layout_compat.cc: Likewise.
1516 * testsuite/23_containers/span/lwg3255.cc: Likewise.
1517 * testsuite/23_containers/span/nothrow_cons.cc: Likewise.
1518 * testsuite/23_containers/span/trivially_copyable.cc: Likewise.
1519 * testsuite/23_containers/stack/92878_92947.cc: Likewise.
1520 * testsuite/23_containers/stack/cmp_c++20.cc: Likewise.
1521 * testsuite/23_containers/unordered_map/48101-3_neg.cc:
1523 * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
1524 * testsuite/23_containers/unordered_map/modifiers/92878_92947.cc:
1526 * testsuite/23_containers/unordered_map/operations/1.cc:
1528 * testsuite/23_containers/unordered_map/operations/contains.cc:
1530 * testsuite/23_containers/unordered_multimap/48101-3_neg.cc:
1532 * testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc:
1534 * testsuite/23_containers/unordered_multimap/operations/1.cc:
1536 * testsuite/23_containers/unordered_multimap/operations/contains.cc:
1538 * testsuite/23_containers/unordered_multiset/48101-3_neg.cc:
1540 * testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc:
1542 * testsuite/23_containers/unordered_multiset/operations/1.cc:
1544 * testsuite/23_containers/unordered_multiset/operations/contains.cc:
1546 * testsuite/23_containers/unordered_set/48101-3_neg.cc:
1548 * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
1549 * testsuite/23_containers/unordered_set/modifiers/92878_92947.cc:
1551 * testsuite/23_containers/unordered_set/operations/1.cc:
1553 * testsuite/23_containers/unordered_set/operations/contains.cc:
1555 * testsuite/23_containers/vector/48101-3_neg.cc: Likewise.
1556 * testsuite/23_containers/vector/bool/capacity/constexpr.cc:
1558 * testsuite/23_containers/vector/bool/cmp_c++20.cc: Likewise.
1559 * testsuite/23_containers/vector/bool/cons/constexpr.cc:
1561 * testsuite/23_containers/vector/bool/element_access/constexpr.cc:
1563 * testsuite/23_containers/vector/bool/iterator_c++20.cc:
1565 * testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc:
1567 * testsuite/23_containers/vector/bool/modifiers/constexpr.cc:
1569 * testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc:
1571 * testsuite/23_containers/vector/capacity/constexpr.cc:
1573 * testsuite/23_containers/vector/cmp_c++20.cc: Likewise.
1574 * testsuite/23_containers/vector/cons/constexpr.cc: Likewise.
1575 * testsuite/23_containers/vector/data_access/constexpr.cc:
1577 * testsuite/23_containers/vector/element_access/constexpr.cc:
1579 * testsuite/23_containers/vector/erasure.cc: Likewise.
1580 * testsuite/23_containers/vector/modifiers/assign/constexpr.cc:
1582 * testsuite/23_containers/vector/modifiers/constexpr.cc:
1584 * testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc:
1586 * testsuite/23_containers/vector/modifiers/swap/constexpr.cc:
1588 * testsuite/23_containers/vector/requirements/version.cc:
1591 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1593 * testsuite/21_strings/basic_string/cons/char/105995.cc: Remove
1594 dg-options -std=gnu++20.
1595 * testsuite/21_strings/basic_string/cons/char/constexpr.cc:
1597 * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc:
1599 * testsuite/21_strings/basic_string/erasure.cc: Likewise.
1600 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
1602 * testsuite/21_strings/basic_string/literals/constexpr.cc:
1604 * testsuite/21_strings/basic_string/modifiers/constexpr.cc:
1606 * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
1608 * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
1610 * testsuite/21_strings/basic_string/operations/ends_with/char.cc:
1612 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc:
1614 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
1616 * testsuite/21_strings/basic_string/operations/starts_with/char.cc:
1618 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc:
1620 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
1622 * testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc:
1624 * testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc:
1626 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
1628 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
1630 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc:
1632 * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
1634 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc:
1636 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
1638 * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
1640 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc:
1642 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
1644 * testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc:
1646 * testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc:
1648 * testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc:
1650 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
1653 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1655 * testsuite/20_util/allocator/105975.cc: Remove dg-options
1657 * testsuite/20_util/allocator/rebind_c++20.cc: Likewise.
1658 * testsuite/20_util/allocator/requirements/constexpr.cc:
1660 * testsuite/20_util/allocator/requirements/typedefs_c++20.cc:
1662 * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
1663 * testsuite/20_util/allocator_traits/header.cc: Likewise.
1664 * testsuite/20_util/allocator_traits/members/92878_92947.cc:
1666 * testsuite/20_util/any/assign/92878_92947.cc: Likewise.
1667 * testsuite/20_util/any/cons/92878_92947.cc: Likewise.
1668 * testsuite/20_util/assume_aligned/1.cc: Likewise.
1669 * testsuite/20_util/assume_aligned/2_neg.cc: Likewise.
1670 * testsuite/20_util/assume_aligned/3.cc: Likewise.
1671 * testsuite/20_util/assume_aligned/97132.cc: Likewise.
1672 * testsuite/20_util/bind/constexpr.cc: Likewise.
1673 * testsuite/20_util/bitset/operations/96303.cc: Likewise.
1674 * testsuite/20_util/common_reference/100894.cc: Likewise.
1675 * testsuite/20_util/common_reference/requirements/alias_decl.cc:
1677 * testsuite/20_util/common_reference/requirements/explicit_instantiation.cc:
1679 * testsuite/20_util/common_reference/requirements/typedefs.cc:
1681 * testsuite/20_util/duration/comparison_operators/three_way.cc:
1683 * testsuite/20_util/exchange/constexpr.cc: Likewise.
1684 * testsuite/20_util/exchange/noexcept.cc: Likewise.
1685 * testsuite/20_util/from_chars/1_c++20_neg.cc: Likewise.
1686 * testsuite/20_util/from_chars/compare.cc: Likewise.
1687 * testsuite/20_util/function_objects/bind_front/1.cc: Likewise.
1688 * testsuite/20_util/function_objects/bind_front/107784.cc:
1690 * testsuite/20_util/function_objects/bind_front/111327.cc:
1692 * testsuite/20_util/function_objects/bind_front/2.cc: Likewise.
1693 * testsuite/20_util/function_objects/bind_front/97101.cc:
1695 * testsuite/20_util/function_objects/bind_front/constexpr.cc:
1697 * testsuite/20_util/function_objects/constexpr_searcher.cc:
1699 * testsuite/20_util/function_objects/identity/1.cc: Likewise.
1700 * testsuite/20_util/function_objects/invoke/constexpr.cc:
1702 * testsuite/20_util/function_objects/mem_fn/constexpr.cc:
1704 * testsuite/20_util/function_objects/not_fn/constexpr.cc:
1706 * testsuite/20_util/integer_comparisons/1.cc: Likewise.
1707 * testsuite/20_util/integer_comparisons/2.cc: Likewise.
1708 * testsuite/20_util/integer_comparisons/equal.cc: Likewise.
1709 * testsuite/20_util/integer_comparisons/equal_neg.cc: Likewise.
1710 * testsuite/20_util/integer_comparisons/greater.cc: Likewise.
1711 * testsuite/20_util/integer_comparisons/greater_equal.cc:
1713 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
1715 * testsuite/20_util/integer_comparisons/greater_neg.cc:
1717 * testsuite/20_util/integer_comparisons/in_range.cc: Likewise.
1718 * testsuite/20_util/integer_comparisons/in_range_neg.cc:
1720 * testsuite/20_util/integer_comparisons/less.cc: Likewise.
1721 * testsuite/20_util/integer_comparisons/less_equal.cc: Likewise.
1722 * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
1724 * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise.
1725 * testsuite/20_util/integer_comparisons/not_equal.cc: Likewise.
1726 * testsuite/20_util/integer_comparisons/not_equal_neg.cc:
1728 * testsuite/20_util/is_bounded_array/requirements/explicit_instantiation.cc:
1730 * testsuite/20_util/is_bounded_array/requirements/typedefs.cc:
1732 * testsuite/20_util/is_bounded_array/value.cc: Likewise.
1733 * testsuite/20_util/is_constant_evaluated/1.cc: Likewise.
1734 * testsuite/20_util/is_constant_evaluated/noexcept.cc: Likewise.
1735 * testsuite/20_util/is_constructible/92878_92947.cc: Likewise.
1736 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
1738 * testsuite/20_util/is_layout_compatible/value.cc: Likewise.
1739 * testsuite/20_util/is_layout_compatible/version.cc: Likewise.
1740 * testsuite/20_util/is_nothrow_constructible/value_c++20.cc:
1742 * testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc:
1744 * testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc:
1746 * testsuite/20_util/is_nothrow_convertible/value.cc: Likewise.
1747 * testsuite/20_util/is_pod/deprecated-2a.cc: Likewise.
1748 * testsuite/20_util/is_pointer_interconvertible/value.cc:
1750 * testsuite/20_util/is_pointer_interconvertible/version.cc:
1752 * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
1754 * testsuite/20_util/is_unbounded_array/requirements/explicit_instantiation.cc:
1756 * testsuite/20_util/is_unbounded_array/requirements/typedefs.cc:
1758 * testsuite/20_util/is_unbounded_array/value.cc: Likewise.
1759 * testsuite/20_util/optional/assignment/92878_92947.cc:
1761 * testsuite/20_util/optional/cons/92878_92947.cc: Likewise.
1762 * testsuite/20_util/optional/constexpr/assign.cc: Likewise.
1763 * testsuite/20_util/optional/constexpr/cons/conv.cc: Likewise.
1764 * testsuite/20_util/optional/constexpr/modifiers.cc: Likewise.
1765 * testsuite/20_util/optional/constexpr/swap.cc: Likewise.
1766 * testsuite/20_util/optional/relops/96269.cc: Likewise.
1767 * testsuite/20_util/optional/relops/three_way.cc: Likewise.
1768 * testsuite/20_util/pair/comparison_operators/constexpr_c++20.cc:
1770 * testsuite/20_util/pair/cons/92878_92947.cc: Likewise.
1771 * testsuite/20_util/pair/constexpr_assign.cc: Likewise.
1772 * testsuite/20_util/pair/constexpr_swap.cc: Likewise.
1773 * testsuite/20_util/pair/requirements/structural.cc: Likewise.
1774 * testsuite/20_util/pointer_traits/pointer_to_constexpr.cc:
1776 * testsuite/20_util/polymorphic_allocator/allocate_object.cc:
1778 * testsuite/20_util/polymorphic_allocator/construct_c++2a.cc:
1780 * testsuite/20_util/polymorphic_allocator/lwg3237.cc: Likewise.
1781 * testsuite/20_util/reference_wrapper/constexpr.cc: Likewise.
1782 * testsuite/20_util/reference_wrapper/incomplete.cc: Likewise.
1783 * testsuite/20_util/remove_cvref/requirements/alias_decl.cc:
1785 * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
1787 * testsuite/20_util/remove_cvref/value.cc: Likewise.
1788 * testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc:
1790 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
1792 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
1793 * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc:
1795 * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Likewise.
1796 * testsuite/20_util/shared_ptr/creation/92878_92947.cc:
1798 * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
1799 * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
1800 * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
1801 * testsuite/20_util/time_point/4.cc: Likewise.
1802 * testsuite/20_util/time_point/comparison_operators/three_way.cc:
1804 * testsuite/20_util/to_address/1.cc: Likewise.
1805 * testsuite/20_util/to_address/1_neg.cc: Likewise.
1806 * testsuite/20_util/to_address/debug.cc: Likewise.
1807 * testsuite/20_util/to_address/lwg3545.cc: Likewise.
1808 * testsuite/20_util/to_chars/compare.cc: Likewise.
1809 * testsuite/20_util/tuple/comparison_operators/three_way.cc:
1811 * testsuite/20_util/tuple/cons/102270.cc: Likewise.
1812 * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
1814 * testsuite/20_util/tuple/constexpr_swap.cc: Likewise.
1815 * testsuite/20_util/type_identity/requirements/alias_decl.cc:
1817 * testsuite/20_util/type_identity/requirements/explicit_instantiation.cc:
1819 * testsuite/20_util/type_identity/requirements/typedefs.cc:
1821 * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
1823 * testsuite/20_util/unique_ptr/comparison/compare_c++20.cc:
1825 * testsuite/20_util/unique_ptr/creation/92878_92947.cc:
1827 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
1829 * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc:
1831 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Likewise.
1832 * testsuite/20_util/unwrap_reference/1.cc: Likewise.
1833 * testsuite/20_util/unwrap_reference/2.cc: Likewise.
1834 * testsuite/20_util/unwrap_reference/3.cc: Likewise.
1835 * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise.
1836 * testsuite/20_util/uses_allocator/lwg3527.cc: Likewise.
1837 * testsuite/20_util/uses_allocator/make_obj.cc: Likewise.
1838 * testsuite/20_util/uses_allocator/uninitialized_construct.cc:
1840 * testsuite/20_util/variant/92878_92947.cc: Likewise.
1841 * testsuite/20_util/variant/95915.cc: Likewise.
1842 * testsuite/20_util/variant/constexpr.cc: Likewise.
1843 * testsuite/20_util/variant/relops/three_way.cc: Likewise.
1844 * testsuite/20_util/variant/visit_neg.cc: Likewise.
1845 * testsuite/20_util/variant/visit_r.cc: Likewise.
1846 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
1848 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1850 * testsuite/18_support/comparisons/algorithms/fallback.cc:
1851 Remove dg-options -std=gnu++2a.
1852 * testsuite/18_support/comparisons/algorithms/partial_order.cc:
1854 * testsuite/18_support/comparisons/algorithms/strong_order.cc:
1856 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
1858 * testsuite/18_support/comparisons/algorithms/weak_order.cc:
1860 * testsuite/18_support/comparisons/categories/94565.cc:
1862 * testsuite/18_support/comparisons/categories/partialord.cc:
1864 * testsuite/18_support/comparisons/categories/strongord.cc:
1866 * testsuite/18_support/comparisons/categories/weakord.cc:
1868 * testsuite/18_support/comparisons/categories/zero_neg.cc:
1870 * testsuite/18_support/comparisons/common/1.cc: Likewise.
1871 * testsuite/18_support/comparisons/object/93479.cc: Likewise.
1872 * testsuite/18_support/comparisons/object/lwg3530.cc: Likewise.
1874 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1876 * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
1877 Remove dg-options -std=gnu++2a.
1878 * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
1879 * testsuite/29_atomics/atomic/lock_free_aliases.cc: Likewise.
1880 * testsuite/29_atomics/atomic/requirements/types_neg.cc:
1882 * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
1883 * testsuite/29_atomics/atomic/wait_notify/100334.cc: Likewise.
1884 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Likewise.
1885 * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
1886 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Likewise.
1887 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
1888 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
1889 * testsuite/29_atomics/atomic_flag/cons/value_init.cc: Likewise.
1890 * testsuite/29_atomics/atomic_flag/test/explicit.cc: Likewise.
1891 * testsuite/29_atomics/atomic_flag/test/implicit.cc: Likewise.
1892 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
1893 * testsuite/29_atomics/atomic_float/1.cc: Likewise.
1894 * testsuite/29_atomics/atomic_float/95282.cc: Likewise.
1895 * testsuite/29_atomics/atomic_float/requirements.cc: Likewise.
1896 * testsuite/29_atomics/atomic_float/value_init.cc: Likewise.
1897 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
1898 * testsuite/29_atomics/atomic_integral/cons/value_init.cc:
1900 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
1901 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
1903 * testsuite/29_atomics/atomic_ref/deduction.cc: Likewise.
1904 * testsuite/29_atomics/atomic_ref/float.cc: Likewise.
1905 * testsuite/29_atomics/atomic_ref/generic.cc: Likewise.
1906 * testsuite/29_atomics/atomic_ref/integral.cc: Likewise.
1907 * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise.
1908 * testsuite/29_atomics/atomic_ref/requirements.cc: Likewise.
1909 * testsuite/29_atomics/headers/atomic/types_std_c++20.cc:
1911 * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc:
1913 * testsuite/29_atomics/headers/atomic/types_std_c++2a.cc:
1915 * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc:
1918 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1920 * testsuite/27_io/basic_filebuf/native_handle/char/1.cc: New test.
1921 * testsuite/27_io/basic_filebuf/native_handle/wchar_t/1.cc: New test.
1923 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1925 * acinclude.m4 (GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES): New
1927 * config.h.in: Regenerate.
1928 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export new
1929 basic_filebuf members.
1930 * config/io/basic_file_stdio.cc (__basic_file::native_handle):
1931 Define new function.
1932 * config/io/basic_file_stdio.h (__basic_file::native_handle):
1933 Declare new function.
1934 * configure: Regenerate.
1935 * configure.ac: Use GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES.
1936 * include/bits/version.def (fstream_native_handles): New macro.
1937 * include/bits/version.h: Regenerate.
1938 * include/std/fstream (basic_filebuf::native_handle)
1939 (basic_fstream::native_handle, basic_ifstream::native_handle)
1940 (basic_ofstream::native_handle): New functions.
1941 * src/c++11/Makefile.am: Move compilation of basic_file.cc,
1942 locale_init.cc and localename.cc to here.
1943 * src/c++11/Makefile.in: Regenerate.
1944 * src/c++98/locale_init.cc: Moved to...
1945 * src/c++11/locale_init.cc: ...here.
1946 * src/c++98/localename.cc: Moved to...
1947 * src/c++11/localename.cc: ...here.
1948 * src/c++98/Makefile.am: Remove basic_file.cc, locale_init.cc
1949 and localename.cc from here.
1950 * src/c++98/Makefile.in: Regenerate.
1951 * testsuite/27_io/basic_filebuf/native_handle/version.cc: New test.
1952 * testsuite/27_io/basic_fstream/native_handle/char/1.cc: New test.
1953 * testsuite/27_io/basic_fstream/native_handle/wchar_t/1.cc: New test.
1954 * testsuite/27_io/basic_ifstream/native_handle/char/1.cc: New test.
1955 * testsuite/27_io/basic_ifstream/native_handle/wchar_t/1.cc: New test.
1956 * testsuite/27_io/basic_ofstream/native_handle/char/1.cc: New test.
1957 * testsuite/27_io/basic_ofstream/native_handle/wchar_t/1.cc: New test.
1959 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1961 * testsuite/libstdc++-dg/conformance.exp: Add log line when
1962 using testsuite_files.
1964 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1966 * testsuite/20_util/shared_ptr/atomic/3.cc: Simplify dg
1968 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
1970 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc:
1972 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
1974 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
1976 * testsuite/20_util/synchronized_pool_resource/cons.cc:
1978 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
1980 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
1982 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
1984 * testsuite/20_util/synchronized_pool_resource/options.cc:
1986 * testsuite/20_util/synchronized_pool_resource/release.cc:
1988 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
1990 * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
1992 * testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc:
1994 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
1997 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1999 * testsuite/23_containers/span/back_assert_neg.cc: Remove
2000 dg-options and add effective target selector to dg-do. Add
2002 * testsuite/23_containers/span/back_neg.cc: Likewise.
2003 * testsuite/23_containers/span/cons_1_assert_neg.cc: Likewise.
2004 * testsuite/23_containers/span/cons_2_assert_neg.cc: Likewise.
2005 * testsuite/23_containers/span/first_2_assert_neg.cc: Likewise.
2006 * testsuite/23_containers/span/first_assert_neg.cc: Likewise.
2007 * testsuite/23_containers/span/first_neg.cc: Likewise.
2008 * testsuite/23_containers/span/front_assert_neg.cc: Likewise.
2009 * testsuite/23_containers/span/front_neg.cc: Likewise.
2010 * testsuite/23_containers/span/index_op_assert_neg.cc: Likewise.
2011 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
2012 * testsuite/23_containers/span/last_2_assert_neg.cc: Likewise.
2013 * testsuite/23_containers/span/last_assert_neg.cc: Likewise.
2014 * testsuite/23_containers/span/last_neg.cc: Likewise.
2015 * testsuite/23_containers/span/subspan_2_assert_neg.cc:
2017 * testsuite/23_containers/span/subspan_3_assert_neg.cc:
2019 * testsuite/23_containers/span/subspan_4_assert_neg.cc:
2021 * testsuite/23_containers/span/subspan_5_assert_neg.cc:
2023 * testsuite/23_containers/span/subspan_6_assert_neg.cc:
2025 * testsuite/23_containers/span/subspan_assert_neg.cc: Likewise.
2026 * testsuite/23_containers/span/subspan_neg.cc: Likewise.
2027 * testsuite/24_iterators/range_operations/advance_debug_neg.cc:
2030 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2032 * testsuite/18_support/headers/limits/synopsis_cxx23.cc: Remove
2034 * testsuite/18_support/headers/stdfloat/types_std.cc: Likewise.
2035 * testsuite/18_support/type_info/constexpr.cc: Likewise.
2036 * testsuite/19_diagnostics/stacktrace/current.cc: Likewise.
2037 * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
2038 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
2039 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
2040 * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
2041 * testsuite/20_util/aligned_storage/deprecated-2b.cc: Likewise.
2042 * testsuite/20_util/aligned_union/deprecated-2b.cc: Likewise.
2043 * testsuite/20_util/bitset/access/constexpr.cc: Likewise.
2044 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
2045 * testsuite/20_util/bitset/count/constexpr.cc: Likewise.
2046 * testsuite/20_util/bitset/ext/constexpr.cc: Likewise.
2047 * testsuite/20_util/bitset/operations/constexpr_c++23.cc:
2049 * testsuite/20_util/bitset/version.cc: Likewise.
2050 * testsuite/20_util/from_chars/8.cc: Likewise.
2051 * testsuite/20_util/from_chars/constexpr.cc: Likewise.
2052 * testsuite/20_util/function/cons/deduction_c++23.cc: Likewise.
2053 * testsuite/20_util/function_objects/invoke/4.cc: Likewise.
2054 * testsuite/20_util/function_objects/invoke/dangling_ref.cc:
2056 * testsuite/20_util/is_scoped_enum/value.cc: Likewise.
2057 * testsuite/20_util/is_scoped_enum/version.cc: Likewise.
2058 * testsuite/20_util/move_only_function/call.cc: Likewise.
2059 * testsuite/20_util/move_only_function/cons.cc: Likewise.
2060 * testsuite/20_util/move_only_function/move.cc: Likewise.
2061 * testsuite/20_util/move_only_function/version.cc: Likewise.
2062 * testsuite/20_util/optional/monadic/and_then.cc: Likewise.
2063 * testsuite/20_util/optional/monadic/or_else.cc: Likewise.
2064 * testsuite/20_util/optional/monadic/or_else_neg.cc: Likewise.
2065 * testsuite/20_util/optional/monadic/pr109242.cc: Likewise.
2066 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
2067 * testsuite/20_util/pair/p2321r2.cc: Likewise.
2068 * testsuite/20_util/reference_from_temporary/value.cc: Likewise.
2069 * testsuite/20_util/reference_from_temporary/value2.cc:
2071 * testsuite/20_util/reference_from_temporary/version.cc:
2073 * testsuite/20_util/to_chars/constexpr.cc: Likewise.
2074 * testsuite/20_util/to_chars/float128_c++23.cc: Likewise.
2075 * testsuite/20_util/to_chars/float16_c++23.cc: Likewise.
2076 * testsuite/20_util/to_chars/version.cc: Likewise.
2077 * testsuite/20_util/to_underlying/1.cc: Likewise.
2078 * testsuite/20_util/to_underlying/version.cc: Likewise.
2079 * testsuite/20_util/tuple/p2321r2.cc: Likewise.
2080 * testsuite/20_util/unique_ptr/assign/constexpr.cc: Likewise.
2081 * testsuite/20_util/unique_ptr/comparison/constexpr.cc:
2083 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc:
2085 * testsuite/20_util/unique_ptr/creation/constexpr.cc: Likewise.
2086 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: Likewise.
2087 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc: Likewise.
2088 * testsuite/20_util/unreachable/1.cc: Likewise.
2089 * testsuite/20_util/unreachable/version.cc: Likewise.
2090 * testsuite/20_util/uses_allocator/lwg3677.cc: Likewise.
2091 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc: Likewise.
2092 * testsuite/21_strings/basic_string/operations/contains/char.cc:
2094 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc: Likewise.
2095 * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc: Likewise.
2096 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: Likewise.
2097 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: Likewise.
2098 * testsuite/21_strings/basic_string_view/operations/contains/char.cc: Likewise.
2099 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: Likewise.
2100 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc: Likewise.
2101 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc: Likewise.
2102 * testsuite/23_containers/queue/cons_from_iters.cc: Likewise.
2103 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
2104 * testsuite/23_containers/vector/bool/element_access/1.cc:
2106 * testsuite/24_iterators/const_iterator/1.cc: Likewise.
2107 * testsuite/25_algorithms/contains/1.cc: Likewise.
2108 * testsuite/25_algorithms/contains_subrange/1.cc: Likewise.
2109 * testsuite/25_algorithms/find_last/1.cc: Likewise.
2110 * testsuite/25_algorithms/find_last_if/1.cc: Likewise.
2111 * testsuite/25_algorithms/find_last_if_not/1.cc: Likewise.
2112 * testsuite/25_algorithms/fold_left/1.cc: Likewise.
2113 * testsuite/25_algorithms/fold_right/1.cc: Likewise.
2114 * testsuite/25_algorithms/iota/1.cc: Likewise.
2115 * testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: Likewise.
2116 * testsuite/26_numerics/bit/bit.byteswap/version.cc: Likewise.
2117 * testsuite/26_numerics/complex/ext_c++23.cc: Likewise.
2118 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc: Likewise.
2119 * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc:
2121 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc:
2123 * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc:
2125 * testsuite/26_numerics/numbers/4.cc: Likewise.
2126 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc: Likewise.
2127 * testsuite/27_io/filesystem/path/native/conv_c++23.cc:
2129 * testsuite/27_io/spanstream/1.cc: Likewise.
2130 * testsuite/27_io/spanstream/2.cc: Likewise.
2131 * testsuite/27_io/spanstream/version.cc: Likewise.
2132 * testsuite/29_atomics/atomic_float/requirements_cxx23.cc:
2134 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
2136 * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
2137 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
2139 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2141 * testsuite/std/ranges/adaptors/adjacent/1.cc: Likewise.
2142 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc:
2144 * testsuite/std/ranges/adaptors/as_const/1.cc: Likewise.
2145 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
2146 * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
2147 * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
2148 * testsuite/std/ranges/adaptors/enumerate/1.cc: Likewise.
2149 * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
2150 * testsuite/std/ranges/adaptors/lwg3715.cc: Likewise.
2151 * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
2152 * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
2153 * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
2154 * testsuite/std/ranges/range_adaptor_closure.cc: Likewise.
2155 * testsuite/std/ranges/repeat/1.cc: Likewise.
2156 * testsuite/std/ranges/version_c++23.cc: Likewise.
2157 * testsuite/std/ranges/zip/1.cc: Likewise.
2158 * testsuite/std/ranges/zip_transform/1.cc: Likewise.
2160 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2162 * testsuite/20_util/expected/assign.cc: Remove dg-options.
2163 * testsuite/20_util/expected/bad.cc: Likewise.
2164 * testsuite/20_util/expected/cons.cc: Likewise.
2165 * testsuite/20_util/expected/equality.cc: Likewise.
2166 * testsuite/20_util/expected/illformed_neg.cc: Likewise.
2167 * testsuite/20_util/expected/lwg3877.cc: Likewise.
2168 * testsuite/20_util/expected/lwg3938.cc: Likewise.
2169 * testsuite/20_util/expected/monadic.cc: Likewise.
2170 * testsuite/20_util/expected/observers.cc: Likewise.
2171 * testsuite/20_util/expected/requirements.cc: Likewise.
2172 * testsuite/20_util/expected/swap.cc: Likewise.
2173 * testsuite/20_util/expected/synopsis.cc: Likewise.
2174 * testsuite/20_util/expected/unexpected.cc: Likewise.
2175 * testsuite/20_util/expected/version.cc: Likewise.
2177 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2179 * testsuite/20_util/duration/arithmetic/overflow_c++20.cc:
2181 * testsuite/20_util/duration/io.cc: Likewise.
2182 * testsuite/std/time/clock/file/io.cc: Likewise.
2183 * testsuite/std/time/clock/file/members.cc: Likewise.
2184 * testsuite/std/time/clock/file/overview.cc: Likewise.
2185 * testsuite/std/time/clock/gps/1.cc: Likewise.
2186 * testsuite/std/time/clock/gps/io.cc: Likewise.
2187 * testsuite/std/time/clock/local/io.cc: Likewise.
2188 * testsuite/std/time/clock/system/io.cc: Likewise.
2189 * testsuite/std/time/clock/tai/1.cc: Likewise.
2190 * testsuite/std/time/clock/tai/io.cc: Likewise.
2191 * testsuite/std/time/clock/utc/1.cc: Likewise.
2192 * testsuite/std/time/clock/utc/io.cc: Likewise.
2193 * testsuite/std/time/clock/utc/leap_second_info.cc: Likewise.
2194 * testsuite/std/time/day/1.cc: Likewise.
2195 * testsuite/std/time/day/io.cc: Likewise.
2196 * testsuite/std/time/exceptions.cc: Likewise.
2197 * testsuite/std/time/format.cc: Likewise.
2198 * testsuite/std/time/hh_mm_ss/1.cc: Likewise.
2199 * testsuite/std/time/hh_mm_ss/109772.cc: Likewise.
2200 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
2201 * testsuite/std/time/is_am/1.cc: Likewise.
2202 * testsuite/std/time/is_pm/1.cc: Likewise.
2203 * testsuite/std/time/make12/1.cc: Likewise.
2204 * testsuite/std/time/make24/1.cc: Likewise.
2205 * testsuite/std/time/month/1.cc: Likewise.
2206 * testsuite/std/time/month/io.cc: Likewise.
2207 * testsuite/std/time/month_day/1.cc: Likewise.
2208 * testsuite/std/time/month_day/io.cc: Likewise.
2209 * testsuite/std/time/month_day_last/1.cc: Likewise.
2210 * testsuite/std/time/month_day_last/io.cc: Likewise.
2211 * testsuite/std/time/month_weekday/1.cc: Likewise.
2212 * testsuite/std/time/month_weekday/io.cc: Likewise.
2213 * testsuite/std/time/month_weekday_last/1.cc: Likewise.
2214 * testsuite/std/time/month_weekday_last/io.cc: Likewise.
2215 * testsuite/std/time/parse.cc: Likewise.
2216 * testsuite/std/time/syn_c++20.cc: Likewise.
2217 * testsuite/std/time/time_zone/get_info_local.cc: Likewise.
2218 * testsuite/std/time/time_zone/get_info_sys.cc: Likewise.
2219 * testsuite/std/time/time_zone/requirements.cc: Likewise.
2220 * testsuite/std/time/traits/is_clock.cc: Likewise.
2221 * testsuite/std/time/tzdb/1.cc: Likewise.
2222 * testsuite/std/time/tzdb/leap_seconds.cc: Likewise.
2223 * testsuite/std/time/tzdb_list/1.cc: Likewise.
2224 * testsuite/std/time/tzdb_list/requirements.cc: Likewise.
2225 * testsuite/std/time/weekday/1.cc: Likewise.
2226 * testsuite/std/time/weekday/io.cc: Likewise.
2227 * testsuite/std/time/weekday_indexed/io.cc: Likewise.
2228 * testsuite/std/time/weekday_last/1.cc: Likewise.
2229 * testsuite/std/time/weekday_last/io.cc: Likewise.
2230 * testsuite/std/time/year/1.cc: Likewise.
2231 * testsuite/std/time/year/2.cc: Likewise.
2232 * testsuite/std/time/year/io.cc: Likewise.
2233 * testsuite/std/time/weekday_indexed/1.cc: Likewise.
2234 * testsuite/std/time/year_month/1.cc: Likewise.
2235 * testsuite/std/time/year_month/2.cc: Likewise.
2236 * testsuite/std/time/year_month/io.cc: Likewise.
2237 * testsuite/std/time/year_month_day/1.cc: Likewise.
2238 * testsuite/std/time/year_month_day/2.cc: Likewise.
2239 * testsuite/std/time/year_month_day/3.cc: Likewise.
2240 * testsuite/std/time/year_month_day/4.cc: Likewise.
2241 * testsuite/std/time/year_month_day/io.cc: Likewise.
2242 * testsuite/std/time/year_month_day_last/1.cc: Likewise.
2243 * testsuite/std/time/year_month_day_last/2.cc: Likewise.
2244 * testsuite/std/time/year_month_day_last/io.cc: Likewise.
2245 * testsuite/std/time/year_month_weekday/1.cc: Likewise.
2246 * testsuite/std/time/year_month_weekday/2.cc: Likewise.
2247 * testsuite/std/time/year_month_weekday/3.cc: Likewise.
2248 * testsuite/std/time/year_month_weekday/io.cc: Likewise.
2249 * testsuite/std/time/year_month_weekday_last/1.cc: Likewise.
2250 * testsuite/std/time/year_month_weekday_last/2.cc: Likewise.
2251 * testsuite/std/time/year_month_weekday_last/io.cc: Likewise.
2252 * testsuite/std/time/zoned_time/1.cc: Likewise.
2253 * testsuite/std/time/zoned_time/custom.cc: Likewise.
2254 * testsuite/std/time/zoned_time/deduction.cc: Likewise.
2255 * testsuite/std/time/zoned_time/io.cc: Likewise.
2256 * testsuite/std/time/zoned_time/req_neg.cc: Likewise.
2257 * testsuite/std/time/zoned_time/requirements.cc: Likewise.
2258 * testsuite/std/time/zoned_traits.cc: Likewise.
2260 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2262 * testsuite/std/format/arguments/args.cc: Remove dg-options.
2263 * testsuite/std/format/arguments/lwg3810.cc: Likewise.
2264 * testsuite/std/format/error.cc: Likewise.
2265 * testsuite/std/format/format_string.cc: Likewise.
2266 * testsuite/std/format/formatter/concept.cc: Likewise.
2267 * testsuite/std/format/formatter/ext_float.cc: Likewise.
2268 * testsuite/std/format/formatter/requirements.cc: Likewise.
2269 * testsuite/std/format/functions/107871.cc: Likewise.
2270 * testsuite/std/format/functions/format.cc: Likewise.
2271 * testsuite/std/format/functions/format_to.cc: Likewise.
2272 * testsuite/std/format/functions/format_to_n.cc: Likewise.
2273 * testsuite/std/format/functions/size.cc: Likewise.
2274 * testsuite/std/format/functions/vformat_to.cc: Likewise.
2275 * testsuite/std/format/parse_ctx.cc: Likewise.
2276 * testsuite/std/format/string.cc: Likewise.
2277 * testsuite/std/format/string_neg.cc: Likewise.
2278 * testsuite/std/format/functions/format_c++23.cc: Removed.
2280 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2282 * testsuite/20_util/function_objects/range.cmp/equal_to.cc:
2284 * testsuite/20_util/function_objects/range.cmp/greater.cc:
2286 * testsuite/20_util/function_objects/range.cmp/greater_equal.cc:
2288 * testsuite/20_util/function_objects/range.cmp/less.cc:
2290 * testsuite/20_util/function_objects/range.cmp/less_equal.cc:
2292 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc:
2294 * testsuite/20_util/function_objects/range.cmp/not_equal_to.cc:
2296 * testsuite/20_util/specialized_algorithms/construct_at/1.cc:
2298 * testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc:
2300 * testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
2302 * testsuite/20_util/specialized_algorithms/destroy/constrained.cc:
2304 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
2306 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
2308 * testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc:
2310 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
2312 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc:
2314 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
2316 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
2318 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Likewise.
2319 * testsuite/25_algorithms/adjacent_find/constrained.cc:
2321 * testsuite/25_algorithms/all_of/constexpr.cc: Likewise.
2322 * testsuite/25_algorithms/all_of/constrained.cc: Likewise.
2323 * testsuite/25_algorithms/any_of/constexpr.cc: Likewise.
2324 * testsuite/25_algorithms/any_of/constrained.cc: Likewise.
2325 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
2326 * testsuite/25_algorithms/binary_search/constrained.cc:
2328 * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
2329 * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
2330 * testsuite/25_algorithms/copy/95578.cc: Likewise.
2331 * testsuite/25_algorithms/copy/constexpr.cc: Likewise.
2332 * testsuite/25_algorithms/copy/constrained.cc: Likewise.
2333 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Likewise.
2334 * testsuite/25_algorithms/copy_backward/95578.cc: Likewise.
2335 * testsuite/25_algorithms/copy_backward/constexpr.cc: Likewise.
2336 * testsuite/25_algorithms/copy_backward/constrained.cc:
2338 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
2340 * testsuite/25_algorithms/copy_if/constexpr.cc: Likewise.
2341 * testsuite/25_algorithms/copy_if/constrained.cc: Likewise.
2342 * testsuite/25_algorithms/copy_n/constexpr.cc: Likewise.
2343 * testsuite/25_algorithms/copy_n/constrained.cc: Likewise.
2344 * testsuite/25_algorithms/count/constexpr.cc: Likewise.
2345 * testsuite/25_algorithms/count/constrained.cc: Likewise.
2346 * testsuite/25_algorithms/count_if/constexpr.cc: Likewise.
2347 * testsuite/25_algorithms/count_if/constrained.cc: Likewise.
2348 * testsuite/25_algorithms/cpp_lib_constexpr.cc: Likewise.
2349 * testsuite/25_algorithms/equal/95578.cc: Likewise.
2350 * testsuite/25_algorithms/equal/constexpr.cc: Likewise.
2351 * testsuite/25_algorithms/equal/constexpr_neg.cc: Likewise.
2352 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
2353 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
2355 * testsuite/25_algorithms/equal_range/constexpr.cc: Likewise.
2356 * testsuite/25_algorithms/equal_range/constrained.cc: Likewise.
2357 * testsuite/25_algorithms/fill/94017.cc: Likewise.
2358 * testsuite/25_algorithms/fill/constexpr.cc: Likewise.
2359 * testsuite/25_algorithms/fill/constrained.cc: Likewise.
2360 * testsuite/25_algorithms/fill_n/94017.cc: Likewise.
2361 * testsuite/25_algorithms/fill_n/constexpr.cc: Likewise.
2362 * testsuite/25_algorithms/fill_n/constrained.cc: Likewise.
2363 * testsuite/25_algorithms/find/constexpr.cc: Likewise.
2364 * testsuite/25_algorithms/find/constrained.cc: Likewise.
2365 * testsuite/25_algorithms/find_end/constexpr.cc: Likewise.
2366 * testsuite/25_algorithms/find_end/constrained.cc: Likewise.
2367 * testsuite/25_algorithms/find_first_of/constexpr.cc: Likewise.
2368 * testsuite/25_algorithms/find_first_of/constrained.cc:
2370 * testsuite/25_algorithms/find_if/constexpr.cc: Likewise.
2371 * testsuite/25_algorithms/find_if/constrained.cc: Likewise.
2372 * testsuite/25_algorithms/find_if_not/constexpr.cc: Likewise.
2373 * testsuite/25_algorithms/find_if_not/constrained.cc: Likewise.
2374 * testsuite/25_algorithms/for_each/constexpr.cc: Likewise.
2375 * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
2376 * testsuite/25_algorithms/generate/constexpr.cc: Likewise.
2377 * testsuite/25_algorithms/generate/constrained.cc: Likewise.
2378 * testsuite/25_algorithms/generate_n/constexpr.cc: Likewise.
2379 * testsuite/25_algorithms/generate_n/constrained.cc: Likewise.
2380 * testsuite/25_algorithms/heap/constrained.cc: Likewise.
2381 * testsuite/25_algorithms/includes/constrained.cc: Likewise.
2382 * testsuite/25_algorithms/inplace_merge/constrained.cc:
2384 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
2385 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
2386 * testsuite/25_algorithms/is_partitioned/constexpr.cc: Likewise.
2387 * testsuite/25_algorithms/is_partitioned/constrained.cc:
2389 * testsuite/25_algorithms/is_permutation/constexpr.cc: Likewise.
2390 * testsuite/25_algorithms/is_permutation/constrained.cc:
2392 * testsuite/25_algorithms/is_sorted/constexpr.cc: Likewise.
2393 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
2394 * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
2396 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
2398 * testsuite/25_algorithms/iter_swap/constexpr.cc: Likewise.
2399 * testsuite/25_algorithms/lexicographical_compare/93972.cc:
2401 * testsuite/25_algorithms/lexicographical_compare/95578.cc:
2403 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
2405 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
2407 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
2409 * testsuite/25_algorithms/lexicographical_compare_three_way/constexpr.cc:
2411 * testsuite/25_algorithms/lower_bound/constexpr.cc: Likewise.
2412 * testsuite/25_algorithms/lower_bound/constrained.cc: Likewise.
2413 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
2415 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
2417 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
2419 * testsuite/25_algorithms/make_heap/constexpr.cc: Likewise.
2420 * testsuite/25_algorithms/max/constrained.cc: Likewise.
2421 * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
2422 * testsuite/25_algorithms/merge/constexpr.cc: Likewise.
2423 * testsuite/25_algorithms/merge/constrained.cc: Likewise.
2424 * testsuite/25_algorithms/min/constrained.cc: Likewise.
2425 * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
2426 * testsuite/25_algorithms/minmax/constrained.cc: Likewise.
2427 * testsuite/25_algorithms/minmax_element/constrained.cc:
2429 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
2430 * testsuite/25_algorithms/mismatch/constrained.cc: Likewise.
2431 * testsuite/25_algorithms/move/93872.cc: Likewise.
2432 * testsuite/25_algorithms/move/95578.cc: Likewise.
2433 * testsuite/25_algorithms/move/constexpr.cc: Likewise.
2434 * testsuite/25_algorithms/move/constrained.cc: Likewise.
2435 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
2436 * testsuite/25_algorithms/move_backward/95578.cc: Likewise.
2437 * testsuite/25_algorithms/move_backward/constrained.cc:
2439 * testsuite/25_algorithms/next_permutation/constexpr.cc:
2441 * testsuite/25_algorithms/next_permutation/constrained.cc:
2443 * testsuite/25_algorithms/none_of/constexpr.cc: Likewise.
2444 * testsuite/25_algorithms/none_of/constrained.cc: Likewise.
2445 * testsuite/25_algorithms/nth_element/constexpr.cc: Likewise.
2446 * testsuite/25_algorithms/nth_element/constrained.cc: Likewise.
2447 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
2448 * testsuite/25_algorithms/partial_sort/constrained.cc: Likewise.
2449 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
2451 * testsuite/25_algorithms/partial_sort_copy/constrained.cc:
2453 * testsuite/25_algorithms/partition/constexpr.cc: Likewise.
2454 * testsuite/25_algorithms/partition/constrained.cc: Likewise.
2455 * testsuite/25_algorithms/partition_copy/constexpr.cc: Likewise.
2456 * testsuite/25_algorithms/partition_copy/constrained.cc:
2458 * testsuite/25_algorithms/partition_point/constexpr.cc:
2460 * testsuite/25_algorithms/partition_point/constrained.cc:
2462 * testsuite/25_algorithms/pop_heap/constexpr.cc: Likewise.
2463 * testsuite/25_algorithms/prev_permutation/constexpr.cc:
2465 * testsuite/25_algorithms/prev_permutation/constrained.cc:
2467 * testsuite/25_algorithms/push_heap/constexpr.cc: Likewise.
2468 * testsuite/25_algorithms/remove/constexpr.cc: Likewise.
2469 * testsuite/25_algorithms/remove/constrained.cc: Likewise.
2470 * testsuite/25_algorithms/remove_copy/constexpr.cc: Likewise.
2471 * testsuite/25_algorithms/remove_copy/constrained.cc: Likewise.
2472 * testsuite/25_algorithms/remove_copy_if/constexpr.cc: Likewise.
2473 * testsuite/25_algorithms/remove_copy_if/constrained.cc:
2475 * testsuite/25_algorithms/remove_if/constexpr.cc: Likewise.
2476 * testsuite/25_algorithms/remove_if/constrained.cc: Likewise.
2477 * testsuite/25_algorithms/replace/constrained.cc: Likewise.
2478 * testsuite/25_algorithms/replace_copy/constexpr.cc: Likewise.
2479 * testsuite/25_algorithms/replace_copy/constrained.cc: Likewise.
2480 * testsuite/25_algorithms/replace_copy_if/constexpr.cc:
2482 * testsuite/25_algorithms/replace_copy_if/constrained.cc:
2484 * testsuite/25_algorithms/replace_if/constexpr.cc: Likewise.
2485 * testsuite/25_algorithms/replace_if/constrained.cc: Likewise.
2486 * testsuite/25_algorithms/reverse/constexpr.cc: Likewise.
2487 * testsuite/25_algorithms/reverse/constrained.cc: Likewise.
2488 * testsuite/25_algorithms/reverse_copy/constexpr.cc: Likewise.
2489 * testsuite/25_algorithms/reverse_copy/constrained.cc: Likewise.
2490 * testsuite/25_algorithms/rotate/constexpr.cc: Likewise.
2491 * testsuite/25_algorithms/rotate/constrained.cc: Likewise.
2492 * testsuite/25_algorithms/rotate_copy/constexpr.cc: Likewise.
2493 * testsuite/25_algorithms/rotate_copy/constrained.cc: Likewise.
2494 * testsuite/25_algorithms/sample/constrained.cc: Likewise.
2495 * testsuite/25_algorithms/search/constexpr.cc: Likewise.
2496 * testsuite/25_algorithms/search/constrained.cc: Likewise.
2497 * testsuite/25_algorithms/search_n/97828.cc: Likewise.
2498 * testsuite/25_algorithms/search_n/constexpr.cc: Likewise.
2499 * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
2500 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
2501 * testsuite/25_algorithms/set_difference/constrained.cc:
2503 * testsuite/25_algorithms/set_intersection/constexpr.cc:
2505 * testsuite/25_algorithms/set_intersection/constrained.cc:
2507 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
2509 * testsuite/25_algorithms/set_symmetric_difference/constrained.cc:
2511 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
2512 * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
2513 * testsuite/25_algorithms/shift_left/1.cc: Likewise.
2514 * testsuite/25_algorithms/shift_right/1.cc: Likewise.
2515 * testsuite/25_algorithms/shuffle/constrained.cc: Likewise.
2516 * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
2517 * testsuite/25_algorithms/sort/constrained.cc: Likewise.
2518 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
2519 * testsuite/25_algorithms/stable_partition/constrained.cc:
2521 * testsuite/25_algorithms/stable_sort/constrained.cc: Likewise.
2522 * testsuite/25_algorithms/swap/constexpr.cc: Likewise.
2523 * testsuite/25_algorithms/swap_ranges/constexpr.cc: Likewise.
2524 * testsuite/25_algorithms/swap_ranges/constrained.cc: Likewise.
2525 * testsuite/25_algorithms/transform/constexpr.cc: Likewise.
2526 * testsuite/25_algorithms/transform/constrained.cc: Likewise.
2527 * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
2528 * testsuite/25_algorithms/unique/constrained.cc: Likewise.
2529 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
2530 * testsuite/25_algorithms/unique_copy/constrained.cc: Likewise.
2531 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
2532 * testsuite/25_algorithms/upper_bound/constrained.cc: Likewise.
2533 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
2535 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
2537 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
2540 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2542 * testsuite/std/concepts/1.cc: Remove dg-options.
2543 * testsuite/std/concepts/2.cc: Likewise.
2544 * testsuite/std/concepts/concepts.callable/invocable.cc:
2546 * testsuite/std/concepts/concepts.callable/regular_invocable.cc:
2548 * testsuite/std/concepts/concepts.callable/relation.cc:
2550 * testsuite/std/concepts/concepts.callable/strictweakorder.cc:
2552 * testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc: Likewise.
2553 * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc: Likewise.
2554 * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc: Likewise.
2555 * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc: Likewise.
2556 * testsuite/std/concepts/concepts.lang/concept.assignable/1.cc:
2558 * testsuite/std/concepts/concepts.lang/concept.common/1.cc:
2560 * testsuite/std/concepts/concepts.lang/concept.commonref/1.cc:
2562 * testsuite/std/concepts/concepts.lang/concept.constructible/1.cc: Likewise.
2563 * testsuite/std/concepts/concepts.lang/concept.convertible/1.cc:
2565 * testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc: Likewise.
2566 * testsuite/std/concepts/concepts.lang/concept.defaultinitializable/1.cc: Likewise.
2567 * testsuite/std/concepts/concepts.lang/concept.defaultinitializable/lwg3149.cc: Likewise.
2568 * testsuite/std/concepts/concepts.lang/concept.derived/1.cc:
2570 * testsuite/std/concepts/concepts.lang/concept.destructible/1.cc: Likewise.
2571 * testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc: Likewise.
2572 * testsuite/std/concepts/concepts.lang/concept.same/1.cc:
2574 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc: Likewise.
2575 * testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc: Likewise.
2576 * testsuite/std/concepts/concepts.lang/concept.swappable/swappable_with.cc: Likewise.
2577 * testsuite/std/concepts/concepts.object/copyable.cc: Likewise.
2578 * testsuite/std/concepts/concepts.object/movable.cc: Likewise.
2579 * testsuite/std/concepts/concepts.object/regular.cc: Likewise.
2580 * testsuite/std/concepts/concepts.object/semiregular.cc:
2582 * testsuite/std/ranges/97600.cc: Likewise.
2583 * testsuite/std/ranges/access/101782.cc: Likewise.
2584 * testsuite/std/ranges/access/begin.cc: Likewise.
2585 * testsuite/std/ranges/access/begin_neg.cc: Likewise.
2586 * testsuite/std/ranges/access/cbegin.cc: Likewise.
2587 * testsuite/std/ranges/access/cdata.cc: Likewise.
2588 * testsuite/std/ranges/access/cend.cc: Likewise.
2589 * testsuite/std/ranges/access/crbegin.cc: Likewise.
2590 * testsuite/std/ranges/access/crend.cc: Likewise.
2591 * testsuite/std/ranges/access/data.cc: Likewise.
2592 * testsuite/std/ranges/access/empty.cc: Likewise.
2593 * testsuite/std/ranges/access/end.cc: Likewise.
2594 * testsuite/std/ranges/access/end_neg.cc: Likewise.
2595 * testsuite/std/ranges/access/lwg3467.cc: Likewise.
2596 * testsuite/std/ranges/access/p2602.cc: Likewise.
2597 * testsuite/std/ranges/access/rbegin.cc: Likewise.
2598 * testsuite/std/ranges/access/rend.cc: Likewise.
2599 * testsuite/std/ranges/access/size.cc: Likewise.
2600 * testsuite/std/ranges/access/size_neg.cc: Likewise.
2601 * testsuite/std/ranges/access/ssize.cc: Likewise.
2602 * testsuite/std/ranges/adaptors/100479.cc: Likewise.
2603 * testsuite/std/ranges/adaptors/100577.cc: Likewise.
2604 * testsuite/std/ranges/adaptors/93978.cc: Likewise.
2605 * testsuite/std/ranges/adaptors/95322.cc: Likewise.
2606 * testsuite/std/ranges/adaptors/99433.cc: Likewise.
2607 * testsuite/std/ranges/adaptors/all.cc: Likewise.
2608 * testsuite/std/ranges/adaptors/common.cc: Likewise.
2609 * testsuite/std/ranges/adaptors/conditionally_borrowed.cc:
2611 * testsuite/std/ranges/adaptors/counted.cc: Likewise.
2612 * testsuite/std/ranges/adaptors/detail/copyable_box.cc:
2614 * testsuite/std/ranges/adaptors/drop.cc: Likewise.
2615 * testsuite/std/ranges/adaptors/drop_while.cc: Likewise.
2616 * testsuite/std/ranges/adaptors/elements.cc: Likewise.
2617 * testsuite/std/ranges/adaptors/filter.cc: Likewise.
2618 * testsuite/std/ranges/adaptors/join.cc: Likewise.
2619 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
2620 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
2621 * testsuite/std/ranges/adaptors/lwg3286.cc: Likewise.
2622 * testsuite/std/ranges/adaptors/lwg3313_neg.cc: Likewise.
2623 * testsuite/std/ranges/adaptors/lwg3325_neg.cc: Likewise.
2624 * testsuite/std/ranges/adaptors/lwg3406.cc: Likewise.
2625 * testsuite/std/ranges/adaptors/p1739.cc: Likewise.
2626 * testsuite/std/ranges/adaptors/p2281.cc: Likewise.
2627 * testsuite/std/ranges/adaptors/p2770r0.cc: Likewise.
2628 * testsuite/std/ranges/adaptors/reverse.cc: Likewise.
2629 * testsuite/std/ranges/adaptors/sizeof.cc: Likewise.
2630 * testsuite/std/ranges/adaptors/split.cc: Likewise.
2631 * testsuite/std/ranges/adaptors/take.cc: Likewise.
2632 * testsuite/std/ranges/adaptors/take_while.cc: Likewise.
2633 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
2634 * testsuite/std/ranges/empty_view.cc: Likewise.
2635 * testsuite/std/ranges/headers/ranges/synopsis.cc: Likewise.
2636 * testsuite/std/ranges/iota/difference_type.cc: Likewise.
2637 * testsuite/std/ranges/iota/iota_view.cc: Likewise.
2638 * testsuite/std/ranges/iota/iterator.cc: Likewise.
2639 * testsuite/std/ranges/iota/lwg3292_neg.cc: Likewise.
2640 * testsuite/std/ranges/iota/max_size_type.cc: Likewise.
2641 * testsuite/std/ranges/istream_view.cc: Likewise.
2642 * testsuite/std/ranges/p2259.cc: Likewise.
2643 * testsuite/std/ranges/p2325.cc: Likewise.
2644 * testsuite/std/ranges/p2367.cc: Likewise.
2645 * testsuite/std/ranges/range.cc: Likewise.
2646 * testsuite/std/ranges/refinements.cc: Likewise.
2647 * testsuite/std/ranges/safe_range.cc: Likewise.
2648 * testsuite/std/ranges/safe_range_types.cc: Likewise.
2649 * testsuite/std/ranges/single_view.cc: Likewise.
2650 * testsuite/std/ranges/sized.cc: Likewise.
2651 * testsuite/std/ranges/subrange/1.cc: Likewise.
2652 * testsuite/std/ranges/subrange/97512.cc: Likewise.
2653 * testsuite/std/ranges/subrange/constexpr.cc: Likewise.
2654 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Likewise.
2655 * testsuite/std/ranges/subrange/lwg3286.cc: Likewise.
2656 * testsuite/std/ranges/subrange/lwg3433.cc: Likewise.
2657 * testsuite/std/ranges/subrange/sizeof.cc: Likewise.
2658 * testsuite/std/ranges/subrange/tuple_like.cc: Likewise.
2659 * testsuite/std/ranges/view.cc: Likewise.
2661 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2663 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
2665 * testsuite/23_containers/span/contiguous_range_neg.cc:
2667 * testsuite/23_containers/span/everything.cc: Likewise.
2669 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2671 * testsuite/24_iterators/reverse_iterator/100639.cc: Remove
2672 dg-options and add dg-add-options strict_std.
2673 * testsuite/std/ranges/iota/93267.cc: Likewise.
2674 * testsuite/std/ranges/iota/96042.cc: Likewise.
2675 * testsuite/std/ranges/iota/size.cc: Likewise.
2676 * testsuite/std/ranges/subrange/96042.cc: Likewise.
2678 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2680 * testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_cxx17.cc:
2681 Replace dg-options -std=c++17 with dg-add-options strict_std.
2682 * testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_cxx17.cc:
2685 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2687 * testsuite/23_containers/deque/48101-2_neg.cc: Replace
2688 dg-options with target selector.
2689 * testsuite/23_containers/forward_list/48101-2_neg.cc: Likewise.
2690 * testsuite/23_containers/list/48101-2_neg.cc: Likewise.
2691 * testsuite/23_containers/map/48101-2_neg.cc: Likewise.
2692 * testsuite/23_containers/map/48101_neg.cc: Likewise.
2693 * testsuite/23_containers/multimap/48101-2_neg.cc: Likewise.
2694 * testsuite/23_containers/multimap/48101_neg.cc: Likewise.
2695 * testsuite/23_containers/multiset/48101-2_neg.cc: Likewise.
2696 * testsuite/23_containers/set/48101-2_neg.cc: Likewise.
2697 * testsuite/23_containers/unordered_map/48101-2_neg.cc:
2699 * testsuite/23_containers/unordered_multimap/48101-2_neg.cc:
2701 * testsuite/23_containers/unordered_multiset/48101-2_neg.cc:
2703 * testsuite/23_containers/unordered_set/48101-2_neg.cc:
2705 * testsuite/23_containers/vector/48101-2_neg.cc: Likewise.
2707 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2709 * doc/xml/manual/test.xml: Update documentation on running and
2711 * doc/html/manual/test.html: Regenerate.
2712 * testsuite/Makefile.am: Add v3-use-std-list to site.tmp
2713 * testsuite/Makefile.in: Regenerate.
2714 * testsuite/lib/dg-options.exp (add_options_for_strict_std): New
2716 * testsuite/lib/libstdc++.exp (search_for): New utility proc.
2717 (v3-dg-runtest): New proc to replace dg-runtest.
2718 * testsuite/libstdc++-dg/conformance.exp: Use v3-dg-runtest.
2720 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2722 * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc:
2723 Fix test to work for C++23 and C++26 too.
2725 2023-09-15 Patrick Palka <ppalka@redhat.com>
2727 * include/std/bit: Include <concepts>.
2728 (byteswap): Use a type-constraint instead of enable_if_t
2729 inside the return type, and use std::integral.
2730 (_If_is_unsigned_integer): Replace with ...
2731 (__unsigned_integer): ... this.
2732 (rotl): Use a type-constraint instead of enable_if_t inside
2734 (countl_zero): Likewise.
2735 (countl_one): Likewise.
2736 (countr_zero): Likewise.
2737 (countr_one): Likewise.
2738 (popcount): Likewise.
2739 (has_single_bit): Likewise.
2740 (bit_ceil): Likewise.
2741 (bit_floor): Likewise.
2742 (bit_width): Likewise.
2744 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2746 * include/std/variant (variant): Remove derivation from
2747 _Enable_default_constructor base class.
2748 (variant::variant()): Constrain.
2749 * testsuite/20_util/variant/default_ctor.cc: New test.
2751 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2754 * include/std/variant (get<T>): Remove !is_void static
2757 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2759 * include/bits/version.def (to_chars): Define new value for
2761 * include/bits/version.h: Regenerate.
2762 * include/std/charconv (to_chars_result::operator bool): New
2764 (from_chars_result::operator bool): New function.
2765 * testsuite/20_util/to_chars/version.cc: Update expected value.
2766 * testsuite/20_util/from_chars/result.cc: New test.
2767 * testsuite/20_util/to_chars/result.cc: New test.
2769 2023-09-14 Jonathan Wakely <jwakely@redhat.com>
2772 * testsuite/20_util/integer_sequence/pr111357.cc: New test.
2774 2023-09-14 Jonathan Wakely <jwakely@redhat.com>
2776 * testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc: Use
2777 dg-additional-files. Remove @require@ and @diff@ comments.
2778 * testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc: Likewise.
2779 * testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc: Likewise.
2780 * testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc: Likewise.
2781 * testsuite/lib/dg-options.exp (v3_additional_files): New
2783 (dg-additional-files): New proc.
2784 * testsuite/lib/libstdc++.exp (v3_target_compile): Copy
2785 additional files to test directory.
2787 2023-09-14 Jonathan Wakely <jwakely@redhat.com>
2789 * include/experimental/io_context (io_context) [!_GLIBCXX_HAS_GTHREADS]:
2790 Use a plain integer for _M_work_count for single-threaded
2792 * include/experimental/memory_resource (__get_default_resource)
2793 [!_GLIBCXX_HAS_GTHREADS]: Use unsynchronized type for
2794 single-threaded targets.
2795 * src/c++17/default_resource.h: Adjust preprocessor conditions
2796 to match memory_resource.cc.
2797 * src/c++17/memory_resource.cc [!_GLIBCXX_HAS_GTHREADS]
2798 (atomic_mem_res): Use unsynchronized type for single-threaded
2801 2023-09-14 Christophe Lyon <christophe.lyon@linaro.org>
2803 * testsuite/29_atomics/atomic/compare_exchange_padding.cc: Likewise.
2804 * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
2805 * testsuite/29_atomics/atomic_float/value_init.cc: Likewise.
2806 * testsuite/29_atomics/atomic_integral/cons/value_init.cc: Likewise.
2807 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc: Likewise.
2808 * testsuite/29_atomics/atomic_ref/generic.cc: Likewise.
2809 * testsuite/29_atomics/atomic_ref/integral.cc: Likewise.
2810 * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise.
2812 2023-09-14 François Dumont <fdumont@gcc.gnu.org>
2814 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Add
2815 { dg-require-normal-namespace "" }.
2817 2023-09-13 François Dumont <fdumont@gcc.gnu.org>
2819 * include/std/format (std::__format::_Arg_store): Explicit version
2820 namespace on make_format_args friend declaration.
2822 2023-09-12 Patrick Palka <ppalka@redhat.com>
2825 * include/std/functional (_GLIBCXX_NOT_FN_CALL_OP): Also define
2826 a deleted fallback operator() overload. Constrain both the
2827 enabled and deleted overloads accordingly.
2828 * testsuite/20_util/function_objects/not_fn/111327.cc: New test.
2830 2023-09-12 Patrick Palka <ppalka@redhat.com>
2833 * include/std/functional (_Bind_front::operator()): Add deleted
2834 fallback overloads for each const/ref qualifier pair. Give the
2835 enabled overloads dummy constraints to make each one more
2836 specialized than the corresponding deleted overload.
2837 * testsuite/20_util/function_objects/bind_front/111327.cc: New test.
2839 2023-09-12 Patrick Palka <ppalka@redhat.com>
2841 * include/std/functional (_Bind_front0): Remove.
2842 (_Bind_front_t): Adjust.
2844 2023-09-12 Jonathan Wakely <jwakely@redhat.com>
2846 * python/libstdcxx/v6/printers.py: Reformat.
2847 * python/libstdcxx/v6/xmethods.py: Likewise.
2849 2023-09-11 Jonathan Wakely <jwakely@redhat.com>
2851 * src/c++11/debug.cc (acquire_sequence_ptr_for_lock): New
2853 (reset_sequence_ptr): New function.
2854 (_Safe_iterator_base::_M_detach)
2855 (_Safe_local_iterator_base::_M_detach): Replace bare atomic_load
2856 with acquire_sequence_ptr_for_lock.
2857 (_Safe_iterator_base::_M_reset): Replace bare atomic_store with
2860 2023-09-11 Jonathan Wakely <jwakely@redhat.com>
2862 * src/c++11/Makefile.am: Add new file.
2863 * src/c++11/Makefile.in: Regenerate.
2864 * src/c++11/debug.cc (__glibcxx_assert_fail): Move to ...
2865 * src/c++11/assert_fail.cc: New file.
2867 2023-09-11 Ken Matsui <kmatsui@gcc.gnu.org>
2869 * include/bits/c++config (_GLIBCXX_HAS_BUILTIN): Do not undef.
2870 (_GLIBCXX_USE_BUILTIN_TRAIT): Define.
2872 2023-09-11 Jonathan Wakely <jwakely@redhat.com>
2874 * include/bits/version.def (__cpp_lib_formatters): Define.
2875 * include/bits/version.h: Regenerate.
2876 * include/std/stacktrace (formatter<stacktrace_entry>)
2877 (formatter<basic_stacktrace<Alloc>>): Define.
2878 * include/std/thread (formatter<thread::id, charT>): Define.
2879 * testsuite/19_diagnostics/stacktrace/output.cc: New test.
2880 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Add
2881 std::formatter specializations.
2882 * testsuite/19_diagnostics/stacktrace/version.cc: Check
2883 __cpp_lib_formatters macro.
2884 * testsuite/30_threads/thread/id/hash.cc: Remove gthreads
2886 * testsuite/30_threads/thread/id/operators.cc: Likewise.
2887 * testsuite/30_threads/thread/id/operators_c++20.cc: Likewise.
2888 * testsuite/30_threads/thread/id/output.cc: New test.
2890 2023-09-11 Pekka Seppänen <pexu@gcc.mail.kapsi.fi>
2892 * src/c++11/cow-locale_init.cc: Add [[maybe_unused]] attribute.
2893 * src/c++17/fs_path.cc (path::_S_convert_loc): Likewise.
2894 * src/filesystem/path.cc (path::_S_convert_loc): Likewise.
2896 2023-09-08 Jonathan Wakely <jwakely@redhat.com>
2898 * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++23 directory.
2899 * configure: Regenerate.
2900 * doc/html/manual/*: Regenerate.
2901 * doc/xml/manual/using.xml: Update documentation on linking.
2902 * include/std/stacktrace: Remove declarations of libbacktrace
2904 (stacktrace_entry::_S_err_handler, stacktrace_entry::_S_init):
2906 (stacktrace_entry::_Info): New class.
2907 (stacktrace_entry::_M_get_info): Use _Info.
2908 (__stacktrace_impl): New class.
2909 (basic_stacktrace): Derive from __stacktrace_impl.
2910 (basic_stacktrace::current): Use __stacktrace_impl::_S_current.
2911 * scripts/testsuite_flags.in: Adjust LDFLAGS to find
2912 libstdc++exp instead of libstdc++_libbacktrace.
2913 * src/Makefile.am (SUBDIRS): Add c++23 directory.
2914 * src/Makefile.in: Regenerate.
2915 * src/c++20/Makefile.am: Fix comment.
2916 * src/c++20/Makefile.in: Regenerate.
2917 * src/c++23/Makefile.am: New file.
2918 * src/c++23/Makefile.in: New file.
2919 * src/c++23/stacktrace.cc: New file with definitions of
2920 stacktrace_entry::_Info and __stacktrace_impl members.
2921 * src/experimental/Makefile.am: Use LIBADD to include other
2923 * src/experimental/Makefile.in: Regenerate.
2924 * src/libbacktrace/Makefile.am: Use noinst_LTLIBRARIES.
2925 * src/libbacktrace/Makefile.in: Regenerate.
2926 * testsuite/19_diagnostics/stacktrace/current.cc: Adjust
2927 dg-options to use -lstdc++exp.
2928 * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
2929 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
2930 * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc:
2933 2023-09-08 Alexey Lapshin <alexey.lapshin@espressif.com>
2935 * src/libbacktrace/Makefile.am: Remove -Werror.
2936 * src/libbacktrace/Makefile.in: Regenerate.
2938 2023-09-08 Jonathan Wakely <jwakely@redhat.com>
2940 * testsuite/Makefile.am (check-DEJAGNU): Use @ in recipe.
2941 * testsuite/Makefile.in: Regenerate.
2943 2023-09-08 Yang Yujie <yangyujie@loongson.cn>
2945 * configure.host: Register t-loongarch in tmake_file.
2946 * config/cpu/loongarch/t-loongarch: New file. Manually refresh
2947 MULTISUBDIR with $(shell $(CXX) --print-multi-directory).
2949 2023-09-07 Bruno Victal <mirai@makinata.eu>
2951 * acinclude.m4: Update docbook xsl URI.
2952 * configure: Regenerate.
2954 2023-09-07 Bruno Victal <mirai@makinata.eu>
2956 * doc/Makefile.am: Fix 'doc-install-info' rule.
2957 Fix typo in commment.
2958 * doc/Makefile.in: Regenerate.
2960 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
2962 * testsuite/27_io/filesystem/path/concat/94063.cc: Simplify
2963 dg-do target selector.
2965 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
2967 * testsuite/config/default.exp: Remove trailing whitespace.
2968 * testsuite/lib/dg-options.exp: Likewise.
2969 * testsuite/lib/prune.exp: Likewise.
2970 * testsuite/libstdc++-abi/abi.exp: Likewise.
2971 * testsuite/libstdc++-dg/conformance.exp: Likewise.
2972 * testsuite/libstdc++-prettyprinters/prettyprinters.exp:
2974 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
2975 * testsuite/lib/libstdc++.exp: Likewise.
2976 (check_v3_target_c_std): Fix filename for temporary source file.
2978 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
2980 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for mkdir,
2981 chmod, chdir, and getcwd.
2982 * config.h.in: Regenerate.
2983 * configure: Regenerate.
2984 * src/c++17/fs_ops.cc (create_dir): Use USE_MKDIR macro.
2985 (fs::current_path): Use USE_GETCWD and USE_CHDIR macros.
2986 (fs::permissions): Use USE_CHMOD macro.
2987 * src/filesystem/ops-common.h [FILESYSTEM_IS_WINDOWS]
2988 (chmod, mkdir, getcwd, chdir): Define new macros.
2989 [FILESYSTEM_IS_WINDOWS] (chmod, mkdir, getcwd, chdir): Use
2991 * src/filesystem/ops.cc (create_dir): Use USE_MKDIR macro.
2992 (fs::current_path): Use USE_GETCWD and USE_CHDIR macros.
2993 (fs::permissions): Use USE_CHMOD macro.
2995 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
2997 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Disable by default
2999 * configure: Regenerate.
3001 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3003 * testsuite/23_containers/unordered_map/operations/1.cc: Add
3004 dg-options for C++20 mode.
3005 * testsuite/23_containers/unordered_multimap/operations/1.cc:
3007 * testsuite/23_containers/unordered_multiset/operations/1.cc:
3009 * testsuite/23_containers/unordered_set/operations/1.cc:
3011 * testsuite/std/time/parse.cc: Move dg-options before dg-do.
3013 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3015 * testsuite/std/ranges/access/cbegin.cc: Adjust for C++23
3017 * testsuite/std/ranges/access/cdata.cc: Likewise.
3018 * testsuite/std/ranges/access/cend.cc: Likewise.
3019 * testsuite/std/ranges/access/crbegin.cc: Likewise.
3020 * testsuite/std/ranges/access/crend.cc: Likewise.
3021 * testsuite/std/ranges/adaptors/take.cc: Likewise.
3022 * testsuite/std/ranges/adaptors/take_while.cc: Likewise.
3023 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3025 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3027 * include/bits/iterator_concepts.h (__imove::iter_move): Define
3028 poison pill as deleted for consistency.
3029 (__access::begin): Replace with a single declaration.
3030 * include/bits/ranges_base.h (__access::end, __access::rbegin)
3031 (__access::rend, __access::size): Likewise.
3032 * include/bits/version.def (ranges): Update value for C++23.
3033 * include/bits/version.h: Regenerate.
3034 * libsupc++/compare (__compare): Add missing poison pill
3036 * testsuite/std/ranges/version_c++23.cc: Adjust expected value
3037 of __cpp_lib_ranges.
3038 * testsuite/std/ranges/access/p2602.cc: New test.
3040 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3042 * include/bits/iterator_concepts.h (ranges::__cust_imove):
3043 Rename to ranges::__imove.
3044 (_IMove): Rename to _IterMove.
3045 (ranges::__cust_iswap): Rename to ranges::__iswap.
3046 (ranges::__cust): Rename to ranges::_Cpo.
3047 (ranges::__cust_access): Rename to ranges::__access.
3048 * include/bits/ranges_base.h (ranges::__cust_access): Rename to
3050 (ranges::__cust): Rename to ranges::_Cpo.
3051 * include/std/concepts (ranges::__cust_swap): Rename to
3053 (ranges::__cust): Rename to ranges::_Cpo.
3054 * libsupc++/compare (__cmp_cust): Rename to __compare.
3055 (__cmp_algo): Rename to _Cpo.
3057 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3059 * include/bits/version.def (ranges): Update value.
3060 * include/bits/version.h: Regenerate.
3061 * include/std/ranges (__detail::__boxable): Use
3062 move_constructible instead of copy_constructible for C++23.
3063 (__detail::__box<T>): Adjust constraints for partial
3065 (single_view, transform_view): Use __box_constructible instead
3066 of copy_constructible in constraints.
3067 (zip_transform_view, adjacent_transform_view, repeat_view): Use
3068 move_constructible instead of copy_constructible in constraints.
3069 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: Check
3070 construction from move-only argument.
3071 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3072 * testsuite/std/ranges/repeat/1.cc: Likewise.
3073 * testsuite/std/ranges/single_view.cc: Likewise.
3074 * testsuite/std/ranges/zip_transform/1.cc: Likewise.
3075 * testsuite/std/ranges/version_c++23.cc: Adjust expected value
3076 of __cpp_lib_ranges.
3078 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3080 * testsuite/util/testsuite_iterators.h (is_customization_point_object):
3081 Remove parameter name.
3083 2023-09-06 Jonathan Wakely <jwakely@redhat.com>
3085 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Disable by default
3087 * configure: Regenerate.
3089 2023-09-04 Christophe Lyon <christophe.lyon@linaro.org>
3092 2023-09-04 Christophe Lyon <christophe.lyon@linaro.org>
3095 * configure: Regenerate.
3096 * configure.ac: Call GLIBCXX_CHECK_LINKER_FEATURES in cross,
3097 non-Canadian builds.
3099 2023-09-04 Christophe Lyon <christophe.lyon@linaro.org>
3102 * configure: Regenerate.
3103 * configure.ac: Call GLIBCXX_CHECK_LINKER_FEATURES in cross,
3104 non-Canadian builds.
3106 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3108 * testsuite/26_numerics/complex/literals/types.cc: Remove
3109 dg-options and add target selector instead.
3111 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3113 * testsuite/tr1/6_containers/utility/pair.cc: Remove dg-options
3114 and qualify ambiguous calls to get.
3115 * testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc: Adjust
3116 expected result for std::pow(float, int) as per DR 550.
3118 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3120 * testsuite/20_util/auto_ptr/1.cc: Remove dg-options -std=c++03
3121 and add dg-warning for deprecation warnings.
3122 * testsuite/20_util/auto_ptr/2.cc: Likewise.
3123 * testsuite/20_util/auto_ptr/3.cc: Likewise.
3124 * testsuite/20_util/auto_ptr/3946.cc: Likewise.
3125 * testsuite/20_util/auto_ptr/4.cc: Likewise.
3126 * testsuite/20_util/auto_ptr/5.cc: Likewise.
3127 * testsuite/20_util/auto_ptr/6.cc: Likewise.
3128 * testsuite/20_util/auto_ptr/7.cc: Likewise.
3129 * testsuite/20_util/auto_ptr/assign_neg.cc: Likewise.
3130 * testsuite/20_util/auto_ptr/requirements/explicit_instantiation/1.cc:
3132 * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr.cc:
3134 * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_neg.cc:
3136 * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc:
3138 * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
3140 * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr.cc:
3142 * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr_neg.cc:
3145 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3148 * testsuite/23_containers/vector/26412-1.cc: Moved to...
3149 * testsuite/23_containers/vector/26142-1.cc: ...here.
3150 * testsuite/23_containers/vector/26412-2.cc: Moved to...
3151 * testsuite/23_containers/vector/26142-2.cc: ...here.
3153 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3155 * testsuite/20_util/bitset/107037.cc: Add c++98_only selector.
3156 * testsuite/26_numerics/complex/56111.cc: Likewise.
3158 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3160 * testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc:
3161 Add dg-options to restrict the test to C++98 mode.
3162 * testsuite/23_containers/list/requirements/explicit_instantiation/2.cc:
3165 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3167 * testsuite/20_util/expected/bad.cc: Add missing target
3170 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3172 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
3174 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
3177 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3179 * testsuite/27_io/filesystem/iterators/91067.cc: Add
3180 -Wno-self-move to options.
3181 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
3183 2023-09-01 Vladimir Palevich <palevichva@gmail.com>
3186 * include/bits/vector.tcc (_M_realloc_insert): End guard
3187 lifetime just before assignment to class members.
3188 (_M_default_append): Likewise.
3190 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3192 * src/c++17/fs_ops.cc (fs::absolute) [FILESYSTEM_IS_WINDOWS]:
3193 Use __resize_and_overwrite to fill buffer.
3194 (fs::read_symlink) [HAVE_READLINK]: Likewise.
3195 * src/filesystem/ops-common.h (get_temp_directory_from_env)
3196 [FILESYSTEM_IS_WINDOWS]: Likewise.
3198 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3201 * include/bits/atomic_base.h (__atomic_impl::__compare_exchange):
3202 Add _AtomicRef non-type template parameter and use a loop if it
3204 (__atomic_impl::compare_exchange_weak): Add _AtomicRef NTTP.
3205 (__atomic_impl::compare_exchange_strong): Likewise.
3206 (atomic_ref::compare_exchange_weak): Use true for NTTP.
3207 (atomic_ref::compare_exchange_strong): Use true for NTTP.
3208 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
3209 Fix test to not rely on atomic_ref::load() to return an object
3210 with padding preserved.
3212 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3214 * testsuite/27_io/filesystem/path/108636.cc: Add dg-require for
3217 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3219 * src/c++20/tzdb.cc (tzdb::current_zone): Check configure macros
3220 for POSIX readlink before using filesystem::read_symlink.
3222 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3224 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Default to yes.
3225 * configure: Regenerate.
3227 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3229 * include/bits/chrono_io.h (_Parser::operator()): Set failbit
3230 early if invalid values are read when _M_need & _TimeOfDay is
3232 * testsuite/std/time/parse.cc: Check that "25:59" cannot be
3235 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3238 * include/bits/chrono_io.h (_Parser::Operator()): Check %C
3239 values are in range of year::min() to year::max().
3240 * testsuite/std/time/parse.cc: Check out of range centuries.
3242 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3244 * include/std/format (__format::_Sink::_M_reset): Change second
3245 argument from iterator to offset.
3247 2023-08-24 Paul Dreik <gccpatches@pauldreik.se>
3250 * testsuite/std/format/string.cc: Check wide character format
3251 strings with out-of-range widths.
3253 2023-08-24 Paul Dreik <gccpatches@pauldreik.se>
3256 * include/std/format (__format::__parse_integer): Check for
3259 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3261 * testsuite/std/format/functions/format_to.cc: Avoid warning for
3264 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3266 * include/std/atomic: Add comment to #ifdef and fix indentation.
3267 * include/std/ostream: Check __glibcxx_syncbuf instead of
3268 __cplusplus and _GLIBCXX_HOSTED.
3269 * include/std/thread: Add comment to #ifdef.
3271 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3273 * include/bits/version.def (__cpp_lib_ratio): Define.
3274 * include/bits/version.h: Regenerate.
3275 * include/std/ratio (quecto, ronto, yocto, zepto)
3276 (zetta, yotta, ronna, quetta): Define.
3277 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Adjust
3278 dg-error line numbers.
3280 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3282 * python/libstdcxx/v6/printers.py (StdLocalePrinter): New
3284 * testsuite/libstdc++-prettyprinters/locale.cc: New test.
3286 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3289 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter): Do
3290 not show template arguments.
3291 (StdVariantPrinter): Likewise.
3292 * testsuite/libstdc++-prettyprinters/compat.cc: Adjust expected
3294 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
3295 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
3297 2023-08-23 François Dumont <fdumont@gcc.gnu.org>
3299 * testsuite/util/replacement_memory_operators.h
3300 (counter::scope): New, capture and reset counter count at construction and
3301 restore it at destruction.
3302 (counter::check_new): Add scope instantiation.
3303 * testsuite/23_containers/unordered_map/96088.cc (main):
3304 Add counter::scope instantiation.
3305 * testsuite/23_containers/unordered_multimap/96088.cc (main): Likewise.
3306 * testsuite/23_containers/unordered_multiset/96088.cc (main): Likewise.
3307 * testsuite/23_containers/unordered_set/96088.cc (main): Likewise.
3308 * testsuite/ext/malloc_allocator/deallocate_local.cc (main): Likewise.
3309 * testsuite/ext/new_allocator/deallocate_local.cc (main): Likewise.
3310 * testsuite/ext/throw_allocator/deallocate_local.cc (main): Likewise.
3311 * testsuite/ext/pool_allocator/allocate_chunk.cc (started): New global.
3312 (operator new(size_t)): Check started.
3313 (main): Set/Unset started.
3314 * testsuite/17_intro/no_library_allocation.cc: New test case.
3316 2023-08-21 Jonathan Wakely <jwakely@redhat.com>
3318 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
3319 Call std::set_terminate before throwing the nested exception.
3321 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
3324 * include/std/format (formatter): Only define specializations
3325 for 16-bit floating-point types for C++23.
3326 * include/std/limits (numeric_limits): Likewise.
3328 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
3330 * include/bits/chrono_io.h (operator<<): Make uses of wide
3331 strings with streams and std::format type-dependent on _CharT.
3332 * include/std/format [!_GLIBCXX_USE_WCHAR_T] Do not use
3333 __to_wstring_numeric.
3335 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
3337 * include/bits/chrono_io.h (operator<<): Use __format_context.
3338 * include/std/format (__format::__format_context): New alias
3340 [!_GLIBCXX_USE_WCHAR_T] (wformat_args, make_wformat_arg):
3343 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3346 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3348 * config/locale/generic/c_locale.cc (__convert_to_v): Reuse
3349 double overload for long double if possible.
3351 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3353 * src/c++20/tzdb.cc (tzdata_file, leaps_file): Change type to
3356 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3358 * config/locale/generic/c_locale.cc (__convert_to_v): Reuse
3359 double overload for long double if possible.
3361 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3363 * src/c++98/localename.cc (is_C_locale): New function.
3364 (locale::locale(const char*)): Use is_C_locale.
3366 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3369 * include/bits/basic_string.h (basic_string::assign(Iter, Iter)):
3370 Dispatch to _M_replace or move assignment from a temporary,
3371 based on the iterator type.
3373 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3375 * include/std/format (formatter): Add partial specializations
3376 for extended floating-point types.
3377 * testsuite/std/format/functions/format.cc: Move test_float128()
3379 * testsuite/std/format/formatter/ext_float.cc: New test.
3381 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3383 * include/bits/c++config (__gnu_cxx::__bfloat16_t): Define
3384 whenever __BFLT16_DIG__ is defined, not only for C++23.
3385 * include/std/limits (numeric_limits<bfloat16_t>): Likewise.
3386 (numeric_limits<_Float16>, numeric_limits<_Float32>)
3387 (numeric_limits<_Float64>): Likewise for other extended
3388 floating-point types.
3390 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3392 * include/experimental/internet (address_v4::to_string): Remove
3393 unused parameter name.
3395 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3397 * libsupc++/compare (__cmp_cat::__unseq): Make ctor consteval.
3398 * testsuite/18_support/comparisons/categories/zero_neg.cc: Prune
3399 excess errors caused by invalid consteval calls.
3401 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3403 * include/bits/chrono_io.h (__units_suffix_misc): Remove.
3404 (__units_suffix): Return a known suffix as string view, do not
3405 write unknown suffixes to a buffer.
3406 (__fmt_units_suffix): New function that formats the suffix using
3408 (operator<<, __chrono_formatter::_M_q): Use __fmt_units_suffix.
3409 (__chrono_formatter::_M_Z): Correct lifetime of wstring.
3411 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3413 * include/std/format [_GLIBCXX_USE_WCHAR_T]: Guard all wide
3414 string formatters with this macro.
3415 (__formatter_int::_M_format_int, __formatter_fp::format)
3416 (formatter<const void*, C>::format): Use __to_wstring_numeric
3417 instead of std::ctype::widen.
3418 (__formatter_fp::_M_localize): Use hardcoded wchar_t values
3419 instead of std::ctype::widen.
3420 * testsuite/std/format/functions/format.cc: Add more checks for
3421 wstring formatting of arithmetic types.
3423 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3425 * include/bits/basic_string.h (to_string(floating-point-type)):
3426 Implement using std::to_chars for C++26.
3427 * include/bits/version.def (__cpp_lib_to_string): Define.
3428 * include/bits/version.h: Regenerate.
3429 * testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc:
3430 Adjust expected result in C++26 mode.
3431 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string.cc:
3433 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/dr1261.cc:
3435 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring.cc:
3437 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc:
3439 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring_float.cc:
3441 * testsuite/21_strings/basic_string/numeric_conversions/version.cc:
3444 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3446 * include/bits/basic_string.h (to_string(integral-type)): Use
3447 resize_and_overwrite when available.
3448 (__to_wstring_numeric): New helper functions.
3449 (to_wstring): Use std::to_string then __to_wstring_numeric.
3450 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_int.cc:
3451 Remove check for no excess capacity.
3453 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3455 * include/bits/basic_string.h (__resize_and_overwrite): New
3457 * include/bits/basic_string.tcc (__resize_and_overwrite): New
3459 (resize_and_overwrite): Simplify by using reserve instead of
3460 growing the string manually. Adjust for C++11 compatibility.
3461 * include/bits/cow_string.h (resize_and_overwrite): New
3463 (__resize_and_overwrite): New function.
3464 * include/bits/version.def (__cpp_lib_string_resize_and_overwrite):
3465 Do not depend on cxx11abi.
3466 * include/bits/version.h: Regenerate.
3467 * include/std/format (__formatter_fp::_S_resize_and_overwrite):
3469 (__formatter_fp::format, __formatter_fp::_M_localize): Use
3470 __resize_and_overwrite instead of _S_resize_and_overwrite.
3471 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
3472 Adjust for C++11 compatibility when included by ...
3473 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite_ext.cc:
3476 2023-08-17 Patrick Palka <ppalka@redhat.com>
3478 * include/bits/regex.h (regex_iterator::iterator_concept):
3479 Define for C++20 as per P2770R0.
3480 (regex_token_iterator::iterator_concept): Likewise.
3481 * include/std/ranges (__detail::__as_lvalue): Define.
3482 (join_view::_Iterator): Befriend join_view.
3483 (join_view::_Iterator::_M_satisfy): Use _M_get_outer
3484 instead of _M_outer.
3485 (join_view::_Iterator::_M_get_outer): Define.
3486 (join_view::_Iterator::_Iterator): Split constructor taking
3487 _Parent argument into two as per P2770R0. Remove constraint on
3488 default constructor.
3489 (join_view::_Iterator::_M_outer): Make this data member present
3490 only when the underlying range is forward.
3491 (join_view::_Iterator::operator++): Use _M_get_outer instead of
3493 (join_view::_Iterator::operator--): Use __as_lvalue helper.
3494 (join_view::_Iterator::operator==): Adjust constraints as per
3496 (join_view::_Sentinel::__equal): Use _M_get_outer instead of
3498 (join_view::_M_outer): New data member when the underlying range
3500 (join_view::begin): Adjust definition as per P2770R0.
3501 (join_view::end): Likewise.
3502 (join_with_view::_M_outer_it): New data member when the
3503 underlying range is non-forward.
3504 (join_with_view::begin): Adjust definition as per P2770R0.
3505 (join_with_view::end): Likewise.
3506 (join_with_view::_Iterator::_M_outer_it): Make this data member
3507 present only when the underlying range is forward.
3508 (join_with_view::_Iterator::_M_get_outer): Define.
3509 (join_with_view::_Iterator::_Iterator): Split constructor
3510 taking _Parent argument into two as per P2770R0. Remove
3511 constraint on default constructor.
3512 (join_with_view::_Iterator::_M_update_inner): Adjust definition
3514 (join_with_view::_Iterator::_M_get_inner): Likewise.
3515 (join_with_view::_Iterator::_M_satisfy): Adjust calls to
3516 _M_get_inner. Use _M_get_outer instead of _M_outer_it.
3517 (join_with_view::_Iterator::operator==): Adjust constraints
3519 (join_with_view::_Sentinel::operator==): Use _M_get_outer
3520 instead of _M_outer_it.
3521 * testsuite/std/ranges/adaptors/p2770r0.cc: New test.
3523 2023-08-17 Patrick Palka <ppalka@redhat.com>
3526 * include/std/ranges (__adaptor::_RangeAdaptorClosure):
3527 Convert into a CRTP class template. Move hidden operator|
3528 friends into namespace scope and adjust their constraints.
3529 (__closure::__is_range_adaptor_closure_fn): Define.
3530 (__closure::__is_range_adaptor_closure): Define.
3531 (__adaptor::_Partial): Adjust use of _RangeAdaptorClosure.
3532 (__adaptor::_Pipe): Likewise.
3533 (views::_All): Likewise.
3534 (views::_Join): Likewise.
3535 (views::_Common): Likewise.
3536 (views::_Reverse): Likewise.
3537 (views::_Elements): Likewise.
3538 (views::_Adjacent): Likewise.
3539 (views::_AsRvalue): Likewise.
3540 (views::_Enumerate): Likewise.
3541 (views::_AsConst): Likewise.
3542 * testsuite/std/ranges/adaptors/all.cc: Reinstate assertion
3543 expecting that adding empty range adaptor closure objects to a
3544 pipeline doesn't increase the size of a pipeline.
3546 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3548 * include/std/format (__format::_Pres_type): Add _Pres_F.
3549 (__formatter_fp::parse): Use _Pres_F for 'F'.
3550 (__formatter_fp::format): Set __upper for _Pres_F.
3551 * testsuite/std/format/functions/format.cc: Check formatting of
3552 infinity and NaN for each presentation type.
3554 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3556 * include/Makefile.in: Regenerate.
3558 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3560 * testsuite/24_iterators/move_iterator/p2520r0.cc: Add no_pch.
3561 * testsuite/std/format/functions/format.cc: Likewise.
3562 * testsuite/std/format/functions/format_c++23.cc: Likewise.
3564 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3566 * testsuite/lib/dg-options.exp (add_options_for_no_pch): Remove
3567 any "-include bits/stdc++.h" from options and add the macro to
3568 the existing options instead of replacing them.
3570 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
3572 * include/bits/basic_string.tcc (resize_and_overwrite): Invoke
3573 the callable with the same size as resize_and_overwrite was
3575 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
3576 Check with small values for the new size.
3577 * testsuite/std/format/functions/format.cc: Check wide
3578 formatting of double values that produce small strings.
3579 * testsuite/std/format/functions/format_c++23.cc: New test.
3581 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
3583 * include/bits/version.def (stds): Update value for C++23.
3584 * include/bits/version.h: Regenerate.
3586 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
3588 * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
3589 Fix name of upstream file this was derived from.
3590 * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
3592 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
3594 * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
3596 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h: Likewise.
3598 2023-08-16 Arsen Arsenović <arsen@aarsen.me>
3600 * libsupc++/typeinfo: Switch to bits/version.h for
3601 __cpp_lib_constexpr_typeinfo.
3602 * libsupc++/new: Switch to bits/version.h for
3603 __cpp_lib_{launder,hardware_interference_size,destroying_delete}.
3604 (launder): Guard behind __cpp_lib_launder.
3605 (hardware_destructive_interference_size)
3606 (hardware_constructive_interference_size): Guard behind
3607 __cpp_lib_hardware_interference_size.
3608 * libsupc++/exception: Switch to bits/version.h for
3609 __cpp_lib_uncaught_exceptions.
3610 (uncaught_exceptions): Guard behind __cpp_lib_uncaught_exceptions.
3611 * libsupc++/compare: Switch to bits/version.h for
3612 __cpp_lib_three_way_comparison.
3613 (three_way_comparable, three_way_comparable_with)
3614 (compare_three_way, weak_order, strong_order, partial_order):
3615 Guard behind __cpp_lib_three_way_comparison >= 201907L.
3616 * include/std/chrono: Drop __cpp_lib_chrono definition.
3617 * include/std/vector: Switch to bits/version.h for
3619 (erase, erase_if): Guard behind __cpp_lib_erase_if.
3620 * include/std/variant: Switch to bits/version.h for
3621 __cpp_lib_variant. Guard whole header behind that FTM.
3622 * include/std/utility: Switch to bits/version.h for
3623 __cpp_lib_{exchange_function,constexpr_algorithms,as_const},
3624 __cpp_lib_{integer_comparison_functions,to_underlying}, and
3625 __cpp_lib_unreachable.
3626 (exchange): Guard behind __cpp_lib_exchange_function.
3627 (cmp_equal, cmp_not_equal, cmp_less, cmp_greater, cmp_less_equal)
3628 (cmp_greater_equal, in_range): Guard behind
3629 __cpp_lib_integer_comparison_functions.
3630 (to_underlying): Guard behind __cpp_lib_to_underlying.
3631 (unreachable): Guard behind __cpp_lib_unreachable.
3632 * include/std/type_traits: Switch to bits/version.h for
3633 __cpp_lib_is_{null_pointer,final,nothrow_convertible,aggregate},
3634 __cpp_lib_is_{constant_evaluated,invocable,layout_compatible},
3635 __cpp_lib_is_{pointer_interconvertible,scoped_enum,swappable},
3636 __cpp_lib_{logical_traits,reference_from_temporary,remove_cvref},
3637 __cpp_lib_{result_of_sfinae,transformation_trait_aliases},
3638 __cpp_lib_{type_identity,type_trait_variable_templates},
3639 __cpp_lib_{unwrap_ref,void_t,integral_constant_callable},
3640 __cpp_lib_{bool_constant,bounded_array_traits}, and
3641 __cpp_lib_has_unique_object_representations.
3642 (integral_constant::operator()): Guard behind
3643 __cpp_lib_integral_constant_callable.
3644 (bool_constant): Guard behind __cpp_lib_bool_constant.
3645 (conjunction, disjunction, negation, conjunction_v, disjunction_v)
3646 (negation_v): Guard behind __cpp_lib_logical_traits.
3647 (is_null_pointer): Guard behind __cpp_lib_is_null_pointer.
3648 (is_final): Guard behind __cpp_lib_is_final.
3649 (is_nothrow_convertible, is_nothrow_convertible_v): Guard behind
3650 __cpp_lib_is_nothrow_convertible.
3651 (remove_const_t, remove_volatile_t, remove_cv_t)
3652 (add_const_t, add_volatile_t, add_cv_t): Guard behind
3653 __cpp_lib_transformation_trait_aliases.
3654 (void_t): Guard behind __cpp_lib_void_t.
3655 (is_swappable_with_v, is_nothrow_swappable_with_v)
3656 (is_swappable_with, is_nothrow_swappable_with): Guard behind
3657 __cpp_lib_is_swappable.
3658 (is_nothrow_invocable_r, is_invocable_r, invoke_result)
3659 (is_invocable, invoke_result_t): Guard behind
3660 __cpp_lib_is_invocable.
3661 (alignment_of_v, extent_v, has_virtual_destructor_v)
3662 (is_abstract_v, is_arithmetic_v, is_array_v)
3663 (is_assignable_v, is_base_of_v, is_class_v, is_compound_v)
3664 (is_constructible_v, is_const_v, is_convertible_v)
3665 (is_copy_assignable_v, is_copy_constructible_v)
3666 (is_default_constructible_v, is_destructible_v)
3667 (is_empty_v, is_enum_v, is_final_v, is_floating_point_v)
3668 (is_function_v, is_fundamental_v, is_integral_v)
3669 (is_invocable_r_v, is_invocable_v, is_literal_type_v)
3670 (is_lvalue_reference_v, is_member_function_pointer_v)
3671 (is_member_object_pointer_v, is_member_pointer_v)
3672 (is_move_assignable_v, is_move_constructible_v)
3673 (is_nothrow_assignable_v, is_nothrow_constructible_v)
3674 (is_nothrow_copy_assignable_v, is_nothrow_copy_constructible_v)
3675 (is_nothrow_default_constructible_v, is_nothrow_destructible_v)
3676 (is_nothrow_invocable_r_v, is_nothrow_invocable_v)
3677 (is_nothrow_move_assignable_v, is_nothrow_move_constructible_v)
3678 (is_null_pointer_v, is_object_v, is_pod_v, is_pointer_v)
3679 (is_polymorphic_v, is_reference_v, is_rvalue_reference_v)
3680 (is_same_v, is_scalar_v, is_signed_v, is_standard_layout_v)
3681 (is_trivially_assignable_v, is_trivially_constructible_v)
3682 (is_trivially_copyable_v, is_trivially_copy_assignable_v)
3683 (is_trivially_copy_constructible_v)
3684 (is_trivially_default_constructible_v)
3685 (is_trivially_destructible_v, is_trivially_move_assignable_v)
3686 (is_trivially_move_constructible_v, is_trivial_v, is_union_v)
3687 (is_unsigned_v, is_void_v, is_volatile_v, rank_v, as variadic):
3688 Guard behind __cpp_lib_type_trait_variable_templates.
3689 (has_unique_object_representations)
3690 (has_unique_object_representations_v): Guard behind
3691 __cpp_lib_has_unique_object_representation.
3692 (is_aggregate): Guard behind __cpp_lib_is_aggregate.
3693 (remove_cvref, remove_cvref_t): Guard behind
3694 __cpp_lib_remove_cvref.
3695 (type_identity, type_identity_t): Guard behind
3696 __cpp_lib_type_identity.
3697 (unwrap_reference, unwrap_reference_t, unwrap_ref_decay)
3698 (unwrap_ref_decay_t): Guard behind __cpp_lib_unwrap_ref.
3699 (is_bounded_array_v, is_unbounded_array_v, is_bounded_array)
3700 (is_unbounded_array): Guard behind __cpp_lib_bounded_array_traits.
3701 (is_scoped_enum, is_scoped_enum_v): Guard behind
3702 __cpp_lib_is_scoped_enum.
3703 (reference_constructs_from_temporary)
3704 (reference_constructs_from_temporary_v): Guard behind
3705 __cpp_lib_reference_from_temporary.
3706 * include/std/tuple: Switch to bits/version.h for
3707 __cpp_lib_{constexpr_tuple,tuple_by_type,apply_make_from_tuple}.
3708 (get<T>): Guard behind __cpp_lib_tuple_by_type.
3709 (apply): Guard behind __cpp_lib_apply.
3710 (make_from_tuple): Guard behind __cpp_lib_make_from_tuple.
3711 * include/std/syncstream: Switch to bits/version.h for
3712 __cpp_lib_syncbuf. Guard header behind that FTM.
3713 * include/std/string_view: Switch to bits/version.h for
3714 __cpp_lib_{string_{view,contains},constexpr_string_view} and
3715 __cpp_lib_starts_ends_with.
3716 (basic_string_view::starts_with, basic_string_view::ends_with):
3717 Guard behind __cpp_lib_starts_ends_with.
3718 [C++23 && _GLIBCXX_HOSTED && !defined(__cpp_lib_string_contains)]:
3719 Assert as impossible ithout a bug in C++23.
3720 * include/std/string: Switch to bits/version.h for
3722 (erase, erase_if): Guard behind __cpp_lib_erase_if.
3723 * include/std/thread: Switch to bits/version.h for
3725 * include/std/stop_token: Switch to bits/version.h for
3727 * include/std/spanstream: Switch to bits/version.h for
3728 __cpp_lib_spanstream. Guard header behind that FTM.
3729 * include/std/span: Switch to bits/version.h for __cpp_lib_span.
3730 Guard header behind that FTM.
3731 * include/std/source_location: Switch to bits/version.h for
3732 __cpp_lib_source_location. Guard header with that FTM.
3733 * include/std/shared_mutex: Switch to bits/version.h for
3734 __cpp_lib_shared{,_timed}_mutex.
3735 (shared_mutex): Guard behind __cpp_lib_shared_mutex.
3736 * include/std/semaphore: Switch to bits/version.h for
3737 __cpp_lib_semaphore. Guard header behind that FTM.
3738 * include/std/ranges: Switch to bits/version.h for
3739 __cpp_lib_ranges_{zip,chunk{,_by},slide,join_with},
3740 __cpp_lib_ranges_{repeat_stride,cartesian_product,as_rvalue},
3741 and __cpp_lib_ranges_{as_const,enumerate,iota}.
3742 (ranges::zip et al, ranges::chunk et al, ranges::slide et al)
3743 (ranges::chunk_by et al, ranges::join_with et al)
3744 (ranges::stride et al, ranges::cartesian_product et al)
3745 (ranges::as_rvalue et al, ranges::as_const et al)
3746 (ranges::enumerate et al): Guard behind appropriate FTM.
3747 * include/std/optional: Switch to bits/version.h for
3748 __cpp_lib_optional. Guard header behind that FTM.
3749 * include/std/numeric: Switch to bits/version.h for
3750 __cpp_lib_{gcd{,_lcm},lcm,constexpr_numeric,interpolate}
3751 and __cpp_lib_parallel_algorithm.
3752 (gcd, lcm): Guard behind __cpp_lib_gcd_lcm.
3753 (midpoint): Guard behind __cpp_lib_interpolate.
3754 * include/std/numbers: Switch to bits/version.h for
3755 __cpp_lib_math_constants. Guard header behind that FTM.
3756 * include/std/mutex: Switch to bits/version.h for
3757 __cpp_lib_scoped_lock.
3758 (scoped_Lock): Guard behind __cpp_lib_scoped_lock.
3759 * include/std/memory_resource: Switch to bits/version.h for
3760 __cpp_lib_{polymorphic_allocator,memory_resource}.
3761 (synchronized_pool_resource): Guard behind
3762 __cpp_lib_memory_resource >= 201603L.
3763 (polymorphic_allocator): Guard behind
3764 __cpp_lib_polymorphic_allocator.
3765 * include/std/memory: Switch to bits/version.h for
3766 __cpp_lib_{parallel_algorithm,atomic_value_initialization}.
3767 * include/std/list: Switch to bits/version.h for
3769 (erase, erase_if): Guard behind __cpp_lib_erase_if.
3770 * include/std/latch: Switch to bits/version.h for __cpp_lib_latch.
3771 Guard header behind that FTM.
3772 * include/std/iterator: Switch to bits/version.h for
3773 __cpp_lib_null_iterators.
3774 * include/std/iomanip: Switch to bits/version.h for
3775 __cpp_lib_quoted_string_io.
3776 (quoted): Guard behind __cpp_lib_quoted_string_io.
3777 * include/std/functional: Switch to bits/version.h for
3778 __cpp_lib_{invoke{,_r},constexpr_functional,bind_front} and
3779 __cpp_lib_{not_fn,booyer_moore_searcher}.
3780 (invoke): Guard behind __cpp_lib_invoke.
3781 (invoke_r): Guard behind __cpp_lib_invoke_r.
3782 (bind_front): Guard behind __cpp_lib_bind_front.
3783 (not_fn): Guard behind __cpp_lib_not_fn.
3784 (boyer_moore_searcher, boyer_moore_horspool_searcher): Guard
3785 definition behind __cpp_lib_boyer_moore_searcher.
3786 * include/std/forward_list: Switch to bits/version.h for
3788 (erase, erase_if): Guard behind __cpp_lib_erase_if.
3789 * include/std/format: Switch to bits/version.h for
3790 __cpp_lib_format. Guard header behind that FTM.
3791 * include/std/filesystem: Switch to bits/version.h for
3792 __cpp_lib_filesystem. Guard header behind that FTM.
3793 * include/std/expected: Switch to bits/version.h for
3794 __cpp_lib_expected. Guard header behind it.
3795 * include/std/execution: Switch to bits/version.h for
3796 __cpp_lib_{execution,parallel_algorithm}. Guard header behind
3798 * include/std/deque: Switch to bits/version.h for
3800 (erase, erase_if): Guard behind __cpp_lib_erase_if.
3801 * include/std/coroutine: Switch to bits/version.h for
3802 __cpp_lib_coroutine. Guard header behind that FTM.
3803 * include/std/concepts: Switch to bits/version.h for
3804 __cpp_lib_concepts. Guard header behind that FTM.
3805 * include/std/complex: Switch to bits/version.h for
3806 __cpp_lib_{complex_udls,constexpr_complex}.
3807 (operator""if, operator""i, operator""il): Guard behind
3808 __cpp_lib_complex_udls.
3809 * include/std/charconv: Swtich to bits/version.h for
3810 __cpp_lib_{to_chars,constexpr_charconv}.
3811 * include/std/bitset: Switch to bits/version.h for
3812 __cpp_lib_constexpr_bitset.
3813 * include/std/bit: Switch to bits/version.h for
3814 __cpp_lib_{bit_cast,byteswap,bitops,int_pow2,endian}.
3815 (bit_cast): Guard behind __cpp_lib_bit_cast.
3816 (byteswap): Guard behind __cpp_lib_byteswap.
3817 (rotl, rotr, countl_zero, countl_one, countr_zero, countr_one)
3818 (popcount): Guard behind __cpp_lib_bitops.
3819 (has_single_bit, bit_ceil, bit_floor, bit_width): Guard behind
3821 (endian): Guard behind __cpp_lib_endian.
3822 * include/std/barrier: Switch to bits/version.h for
3823 __cpp_lib_barrier. Guard header behind that FTM.
3824 * include/std/atomic: Switch to bits/version.h for
3825 __cpp_lib_atomic_{is_always_lock_free,float,ref}
3826 and __cpp_lib_lock_free_type_aliases.
3827 (*::is_always_lock_free): Guard behind
3828 __cpp_lib_atomic_is_always_lock_free.
3829 (atomic<float>): Guard behind __cpp_lib_atomic_float.
3830 (atomic_ref): Guard behind __cpp_lib_atomic_ref.
3831 (atomic_signed_lock_free, atomic_unsigned_lock_free): Guard behind
3832 __cpp_lib_atomic_lock_free_type_aliases.
3833 * include/std/array: Switch to bits/version.h for
3835 (to_array): Guard behind __cpp_lib_to_array.
3836 * include/std/any: Switch to bits/version.h for __cpp_lib_any.
3837 Guard header behind that FTM.
3838 * include/std/algorithm: Switch to bits/version.h for
3839 __cpp_lib_parallel_algorithm.
3840 * include/c_global/cstddef: Switch to bits/version.h for
3842 (byte): Guard behind __cpp_lib_byte.
3843 * include/c_global/cmath: Switch to bits/version.h for
3844 __cpp_lib_{hypot,interpolate}.
3845 (hypot3): Guard behind __cpp_lib_hypot.
3846 (lerp): Guard behind __cpp_lib_interpolate.
3847 * include/c_compatibility/stdatomic.h: Switch to
3848 bits/stl_version.h for __cpp_lib_atomic. Guard header behind that
3850 * include/bits/utility.h: Switch to bits/version.h for
3851 __cpp_lib_{tuple_element_t,integer_sequence,ranges_zip}.
3852 (tuple_element_t): Guard behind __cpp_lib_tuple_element_t.
3853 (integer_sequence et al): Guard behind __cpp_lib_integer_sequence.
3854 * include/bits/uses_allocator_args.h: Switch to bits/version.h for
3855 __cpp_lib_make_obj_using_allocator. Guard header behind that FTM.
3856 * include/bits/unordered_map.h: Switch to bits/version.h for
3857 __cpp_lib_unordered_map_try_emplace.
3858 (try_emplace): Guard behind __cpp_lib_unordered_map_try_emplace.
3859 * include/bits/unique_ptr.h: Switch to bits/version.h for
3860 __cpp_lib_{constexpr_memory,make_unique}.
3861 (make_unique): Guard behind __cpp_lib_make_unique.
3862 * include/bits/stl_vector.h: Switch to bits/version.h for
3863 __cpp_lib_constexpr_vector.
3864 * include/bits/stl_uninitialized.h: Switch to bits/version.h for
3865 __cpp_lib_raw_memory_algorithms.
3866 (uninitialized_default_construct)
3867 (uninitialized_default_construct_n, uninitialized_move)
3868 (uninitialized_move_n, uninitialized_value_construct)
3869 (uninitialized_value_construct_n): Guard behind
3870 __cpp_lib_raw_memory_algorithms.
3871 * include/bits/stl_tree.h: Switch to bits/version.h for
3872 __cpp_lib_generic_associative_lookup.
3873 * include/bits/stl_stack.h: Switch to bits/version.h for
3874 __cpp_lib_adaptor_iterator_pair_constructor.
3875 (stack): Guard iterator-pair constructor behind
3876 __cpp_lib_adaptor_iterator_pair_constructor.
3877 * include/bits/stl_queue.h: Switch to bits/version.h for
3878 __cpp_lib_adaptor_iterator_pair_constructor.
3879 (queue): Guard iterator-pair constructor behind
3880 __cpp_lib_adaptor_iterator_pair_constructor.
3881 * include/bits/stl_pair.h: Switch to bits/version.h for
3882 __cpp_lib_{concepts,tuples_by_type}.
3883 (get): Guard type-getting overloads behind
3884 __cpp_lib_tuples_by_type.
3885 * include/bits/stl_map.h: Switch to bits/version.h for
3886 __cpp_lib_map_try_emplace.
3887 (map<>::try_emplace): Guard behind __cpp_lib_map_try_emplace.
3888 * include/bits/stl_list.h: Switch to bits/version.h for
3889 __cpp_lib_list_remove_return_type.
3890 (__remove_return_type, _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG)
3891 [C++20]: guard behind __cpp_lib_list_remove_return_type instead.
3892 * include/bits/stl_iterator.h: Switch to bits/version.h for
3893 __cpp_lib_{constexpr_iterator,array_constexpr} and
3894 __cpp_lib_{make_reverse_iterator,move_iterator_concept}.
3895 (make_reverse_iterator): Guard behind
3896 __cpp_lib_make_reverse_iterator.
3897 (iterator_concept et al): Guard __cpp_lib_move_iterator_concept
3898 changes behind that FTM.
3899 * include/bits/stl_function.h: Switch to bits/version.h for
3900 __cpp_lib_transparent_operators.
3901 (equal_to, not_equal_to, greater, less, greater_equal)
3902 (less_equal, bit_and, bit_or, bit_xor, bit_not, logical_and)
3903 (logical_or, logical_not, plus, minus, multiplies, divides)
3904 (modulus, negate): Guard '= void' fwdecls behind
3905 __cpp_lib_transparent_operators.
3906 (plus<void>, minus<void>, multiplies<void>, divides<void>)
3907 (modulus<void>, negate<void>, logical_and<void>, logical_or<void>)
3908 (logical_not<void>, bit_and<void>, bit_or<void>, bit_xor<void>)
3909 (equal_to<void>, not_equal_to<void>, greater<void>, less<void>)
3910 (greater_equal<void>, less_equal<void>, bit_not<void>)
3911 (__has_is_transparent): Guard behind
3912 __cpp_lib_transparent_operators.
3913 * include/bits/stl_algobase.h: Switch to bits/version.h for
3914 __cpp_lib_robust_nonmodifying_seq_ops.
3915 (robust equal, mismatch): Guard behind
3916 __cpp_lib_nonmember_container_access.
3917 * include/bits/stl_algo.h: Swtich to bits/version.h for
3918 __cpp_lib_{clamp,sample}.
3919 (clamp): Guard behind __cpp_lib_clamp.
3920 (sample): Guard behind __cpp_lib_sample.
3921 * include/bits/specfun.h: Switch to bits/version.h for
3922 __cpp_lib_math_special_functions and __STDCPP_MATH_SPEC_FUNCS__.
3923 * include/bits/shared_ptr_base.h: Switch to bits/version.h for
3924 __cpp_lib_{smart_ptr_for_overwrite,shared_ptr_arrays}.
3925 (_Sp_overwrite_tag): Guard behind
3926 __cpp_lib_smart_ptr_for_overwrite.
3927 * include/bits/shared_ptr_atomic.h: Switch to bits/version.h for
3928 __cpp_lib_atomic_shared_ptr.
3929 * include/bits/shared_ptr.h: Switch to bits/version.h for
3930 __cpp_lib_{enable_shared_from_this,shared_ptr_weak_type}.
3931 (shared_ptr<T>::weak_type): Guard behind
3932 __cpp_lib_shared_ptr_weak_type.
3933 (enable_shared_from_this<T>::weak_from_this): Guard behind
3934 __cpp_lib_enable_shared_from_this.
3935 * include/bits/ranges_cmp.h: Switch to bits/version.h for
3937 * include/bits/ranges_algo.h: Switch to bits/version.h for
3938 __cpp_lib_{shift,ranges_{contains,find_last,fold,iota}}.
3939 * include/bits/range_access.h: Switch to bits/version.h for
3940 __cpp_lib_nonmember_container_access
3941 (size, empty, data): Guard behind
3942 __cpp_lib_nonmember_container_access.
3943 (ssize): Guard behind __cpp_lib_ssize.
3944 * include/bits/ptr_traits.h: Switch to bits/version.h. for
3945 __cpp_lib_{constexpr_memory,to_address}.
3946 (to_address): Guard behind __cpp_lib_to_address.
3947 * include/bits/node_handle.h: Switch to bits/version.h for
3948 __cpp_lib_node_extract. Guard header behind that FTM.
3949 * include/bits/move_only_function.h: Switch to bits/version.h for
3950 __cpp_lib_move_only_function. Guard header behind that FTM.
3951 * include/bits/move.h: Switch to bits/version.h for
3952 __cpp_lib_addressof_constexpr.
3953 * include/bits/ios_base.h: Switch to bits/version.h for
3954 __cpp_lib_ios_noreplace.
3955 (noreplace): Guard with __cpp_lib_ios_noreplace.
3956 * include/bits/hashtable.h: Switch to bits/version.h for
3957 __cpp_lib_generic_unordered_lookup.
3958 (_M_equal_range_tr, _M_count_tr, _M_find_tr): Guard behind
3959 __cpp_lib_generic_unordered_lookup.
3960 * include/bits/forward_list.h: Switch to bits/version.h for
3961 __cpp_lib_list_remove_return_type.
3962 (__remove_return_type): Guard behind
3963 __cpp_lib_list_remove_return_type.
3964 * include/bits/erase_if.h: Switch to bits/version.h for
3966 * include/bits/cow_string.h: Switch to bits/version.h for
3967 __cpp_lib_constexpr_string.
3968 * include/bits/chrono.h: Swtich to bits/version.h for
3969 __cpp_lib_chrono{,_udls}.
3970 (ceil): Guard behind __cpp_lib_chrono.
3971 (operator""ns et al): Guard behind __cpp_lib_chrono_udls.
3972 * include/bits/char_traits.h: Switch to bits/version.h for
3973 __cpp_lib_constexpr_char_traits.
3974 * include/bits/basic_string.h: Switch to bits/version.h for
3975 __cpp_lib_{constexpr_string,string_{resize_and_overwrite,udls}}.
3976 (resize_and_overwrite): Guard behind
3977 __cpp_lib_string_resize_and_overwrite.
3978 (operator""s): Guard behind __cpp_lib_string_udls.
3979 * include/bits/atomic_wait.h: Switch to bits/version.h for
3980 __cpp_lib_atomic_wait. Guard header behind that FTM.
3981 * include/bits/atomic_base.h: Switch to bits/version.h for
3982 __cpp_lib_atomic_value_initialization and
3983 __cpp_lib_atomic_flag_test.
3984 (atomic_flag::test): Guard behind __cpp_lib_atomic_flag_test,
3986 * include/bits/allocator.h: Switch to bits/version.h for
3987 __cpp_lib_incomplete_container_elements.
3988 * include/bits/alloc_traits.h: Switch to using bits/version.h for
3989 __cpp_lib_constexpr_dynamic_alloc and
3990 __cpp_lib_allocator_traits_is_always_equal.
3991 * include/bits/align.h: Switch to bits/version.h for defining
3992 __cpp_lib_assume_aligned.
3993 (assume_aligned): Guard with __cpp_lib_assume_aligned.
3994 * include/bits/algorithmfwd.h: Switch to bits/version.h for
3995 defining __cpp_lib_constexpr_algorithms.
3996 * include/std/stacktrace: Switch to bits/version.h for
3997 __cpp_lib_stacktrace. Guard header behind that FTM.
3998 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
3999 Update line numbers.
4001 2023-08-16 Arsen Arsenović <arsen@aarsen.me>
4003 * include/Makefile.am (bits_freestanding): Add version.h.
4004 (allcreated): Add version.h.
4005 (${bits_srcdir}/version.h): New rule. Regenerates
4006 version.h out of version.{def,tpl}.
4007 * include/Makefile.in: Regenerate.
4008 * include/bits/version.def: New file. Declares a list of
4009 all feature test macros, their values and their preconditions.
4010 * include/bits/version.tpl: New file. Turns version.def
4011 into a sequence of #if blocks.
4012 * include/bits/version.h: New file. Generated from
4014 * include/std/version: Replace with a __glibcxx_want_all define
4015 and bits/version.h include.
4017 2023-08-14 Paul Dreik <gccpatches@pauldreik.se>
4020 * include/std/format (__formatter_fp::format): Use frexp instead
4023 2023-08-12 Ken Matsui <kmatsui@gcc.gnu.org>
4025 * include/std/type_traits (true_type): Use __bool_constant
4027 (false_type): Likewise.
4028 (bool_constant): Likewise.
4030 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4033 * include/std/format (_Seq_sink::get): Only call _M_overflow if
4034 its precondition is met.
4035 (_Iter_sink::_M_finish): Likewise.
4036 (_Iter_sink<C, ContigIter>::_M_overflow): Only switch to the
4037 internal buffer after running out of space.
4038 (_Iter_sink<C, ContigIter>::_M_finish): Do not use _M_overflow.
4039 (_Counting_sink::count): Likewise.
4040 * testsuite/std/format/functions/format_to_n.cc: Check cases
4041 where the output fits into the buffer.
4043 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4046 * include/bits/chrono_io.h (operator|=, operator|): Add noexcept
4047 to _ChronoParts operators.
4048 (from_stream, parse): Define new functions.
4049 (__detail::_Parse, __detail::_Parser): New class templates.
4050 * include/std/chrono (__cpp_lib_chrono): Define to 201907L for
4052 * include/std/version (__cpp_lib_chrono): Likewise.
4053 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
4054 Adjust expected value of feature test macro.
4055 * testsuite/20_util/duration/io.cc: Test parsing.
4056 * testsuite/std/time/clock/file/io.cc: Likewise.
4057 * testsuite/std/time/clock/gps/io.cc: Likewise.
4058 * testsuite/std/time/clock/system/io.cc: Likewise.
4059 * testsuite/std/time/clock/tai/io.cc: Likewise.
4060 * testsuite/std/time/clock/utc/io.cc: Likewise.
4061 * testsuite/std/time/day/io.cc: Likewise.
4062 * testsuite/std/time/month/io.cc: Likewise.
4063 * testsuite/std/time/month_day/io.cc: Likewise.
4064 * testsuite/std/time/weekday/io.cc: Likewise.
4065 * testsuite/std/time/year/io.cc: Likewise.
4066 * testsuite/std/time/year_month/io.cc: Likewise.
4067 * testsuite/std/time/year_month_day/io.cc: Likewise.
4068 * testsuite/std/time/syn_c++20.cc: Check value of macro and for
4069 the existence of parse and from_stream in namespace chrono.
4070 * testsuite/std/time/clock/local/io.cc: New test.
4071 * testsuite/std/time/parse.cc: New test.
4073 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4076 * include/std/format (__formatter_fp::format): Do not call log10
4079 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4081 * python/libstdcxx/v6/printers.py (StdChronoCalendarPrinter):
4082 Check for out-of-range month an weekday indices.
4083 * testsuite/libstdc++-prettyprinters/chrono.cc: Check invalid
4084 month and weekday values.
4086 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4088 * include/bits/stl_iterator.h (__clamped_iter_cat_t): Remove.
4090 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
4093 * include/std/format (_Spec::_S_parse_width_or_precision): Check
4094 for empty range before dereferencing iterator.
4095 * testsuite/std/format/string.cc: Check for expected exception.
4096 Fix expected exception message in test_pr110862() and actually
4099 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
4102 * include/std/format (__formatter_fp::format): Check return
4103 value of _M_localize.
4104 * testsuite/std/format/functions/format.cc: Check classic
4107 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
4110 * include/bits/stl_iterator.h (__detail::__move_iter_cat): Use
4112 (iterator_traits<common_iterator<I, S>>::_S_iter_cat): Likewise.
4113 (__detail::__basic_const_iterator_iter_cat): Likewise.
4114 * include/bits/stl_iterator_base_types.h (__iterator_category_t):
4115 Rename to __iter_category_t.
4117 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4119 * include/bits/chrono.h (duration_cast): Do not use braces
4120 around statements for C++11 constexpr rules.
4121 * include/bits/stl_algobase.h (__lg): Rewrite as a single
4122 statement for C++11 constexpr rules.
4123 * include/experimental/bits/fs_path.h (path::string): Use
4124 _GLIBCXX17_CONSTEXPR not _GLIBCXX_CONSTEXPR for 'if constexpr'.
4125 * include/std/charconv (__to_chars_8): Initialize variable for
4126 C++17 constexpr rules.
4128 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4130 * include/bits/list.tcc (list::sort(Cmp)): Fix -Wsign-compare
4131 warning for loop condition.
4133 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4135 * include/std/complex: Add diagnostic pragma for clang.
4137 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4139 * include/bits/shared_ptr_atomic.h (atomic): Change class-head
4141 * include/bits/stl_tree.h (_Rb_tree_merge_helper): Change
4142 class-head to struct in friend declaration.
4143 * include/std/chrono (tzdb_list::_Node): Likewise.
4144 * include/std/future (_Task_state_base, _Task_state): Likewise.
4145 * include/std/scoped_allocator (__inner_type_impl): Likewise.
4146 * include/std/valarray (_BinClos, _SClos, _GClos, _IClos)
4147 (_ValFunClos, _RefFunClos): Change class-head to struct.
4149 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4151 * include/bits/alloc_traits.h (allocate): Add [[maybe_unused]]
4153 * include/bits/regex_executor.tcc: Remove name of unused
4155 * include/bits/shared_ptr_atomic.h (atomic_is_lock_free):
4157 * include/bits/stl_uninitialized.h: Likewise.
4158 * include/bits/streambuf_iterator.h (operator==): Likewise.
4159 * include/bits/uses_allocator.h: Likewise.
4160 * include/c_global/cmath (isfinite, isinf, isnan): Likewise.
4161 * include/std/chrono (zoned_time): Likewise.
4162 * include/std/future (__future_base::_S_allocate_result):
4164 (packaged_task): Likewise.
4165 * include/std/optional (_Optional_payload_base): Likewise.
4166 * include/std/scoped_allocator (__inner_type_impl): Likewise.
4167 * include/std/tuple (_Tuple_impl): Likewise.
4169 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4171 * include/bits/new_allocator.h (__new_allocator): Define copy
4172 assignment operator as defaulted.
4173 * include/std/complex (complex<float>, complex<double>)
4174 (complex<long double>): Define copy constructor as defaulted.
4176 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4178 * include/std/format: Fix some warnings.
4179 (__format::__write(Ctx&, basic_string_view<CharT>)): Remove
4180 unused function template.
4182 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
4185 * include/std/format (__formatter_fp::format): Do not use
4186 __builtin_abs and __builtin_log10 with arbitrary floating-point
4189 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
4192 * include/std/format (__format::_Iter_sink<CharT, OutIter>):
4193 Constrain partial specialization for contiguous iterators to
4194 require the value type to be CharT.
4195 * testsuite/std/format/functions/format_to.cc: New test.
4197 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
4200 * include/std/format (_Scanner::_M_on_replacement_field):
4201 Check for expected '}' before incrementing iterator.
4202 * testsuite/std/format/string.cc: Check "{0:{0}" format string.
4204 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
4206 * configure: Regenerate.
4208 2023-08-07 Alan Modra <amodra@gmail.com>
4210 * configure: Regenerate.
4212 2023-08-07 Alexander von Gluck IV <kallisti5@unixzen.com>
4214 * configure: Regenerate.
4216 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
4218 * configure: Regenerate.
4220 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
4222 * configure: Regenerate.
4224 2023-08-07 H.J. Lu <hjl.tools@gmail.com>
4226 * configure: Regenerate.
4228 2023-08-07 H.J. Lu <hjl.tools@gmail.com>
4230 * configure: Regenerate.
4232 2023-08-06 François Dumont <fdumont@gcc.gnu.org>
4234 * config/abi/pre/gnu-versioned-namespace.ver: Add __cxa_call_terminate
4237 2023-07-30 François Dumont <fdumont@gcc.gnu.org>
4239 * src/c++11/compatibility-ldbl-facets-aliases.h: Replace #define with
4241 * src/c++11/locale-inst-monetary.h: Likewise.
4242 * src/c++11/locale-inst-numeric.h: Likewise.
4244 2023-07-27 Jonathan Wakely <jwakely@redhat.com>
4247 * include/std/format (__formatter_fp::format): Ensure __expc is
4248 always set for all presentation types. Set __z correctly for
4250 * testsuite/std/format/functions/format.cc: Check problem cases.
4252 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
4255 * testsuite/23_containers/vector/bool/110807.cc: Require c++11.
4257 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
4260 * include/bits/stl_bvector.h (vector(const vector&)): Access
4261 iterators before allocating.
4262 * include/bits/vector.tcc (vector<bool>::_M_insert_range):
4264 * testsuite/23_containers/vector/bool/110807.cc: New test.
4266 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
4268 * include/bits/algorithmfwd.h (random_shuffle): Add deprecated
4270 * include/bits/stl_algo.h (random_shuffle): Correct comments.
4271 * testsuite/25_algorithms/random_shuffle/1.cc: Disable
4272 deprecated warnings.
4273 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
4274 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
4275 * testsuite/25_algorithms/random_shuffle/deprecated.cc: New
4278 2023-07-26 Nathaniel Shead <nathanieloshead@gmail.com>
4280 * testsuite/25_algorithms/equal/constexpr_neg.cc: Update diagnostic
4282 * testsuite/26_numerics/gcd/105844.cc: Likewise.
4283 * testsuite/26_numerics/lcm/105844.cc: Likewise.
4285 2023-07-24 Deev Patel <pateldeev@nevada.unr.edu>
4287 * include/std/format (_Formatting_scanner::_M_on_chars): Add
4288 missing constexpr specifier.
4289 (_Formatting_scanner::_M_format_arg): Likewise.
4291 2023-07-24 Jonathan Wakely <jwakely@redhat.com>
4294 * include/bits/basic_string.h [!HAVE_STOF] (stof): Do not
4295 throw an exception for zero result.
4296 [HAVE_BROKEN_STRTOLD] (stold): Do not use strtold.
4298 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4301 * src/c++17/floating_from_chars.cc (from_chars): Only define
4302 _Float128 overload when using __strfromf128.
4304 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4307 * include/bits/chrono.h (duration): Improve static assert
4309 (__is_ratio): Move to ...
4310 * include/std/ratio (__is_ratio): ... here.
4311 (__is_ratio_v): New variable template and partial
4313 (__are_both_ratios): New function template.
4314 (__ratio_multiply, ratio_equal, ratio_less, __ratio_add):
4315 Add static assertion.
4316 * testsuite/20_util/ratio/requirements/type_constraints.cc:
4318 * testsuite/20_util/duration/requirements/typedefs_neg1.cc:
4319 Adjust expected error.
4320 * testsuite/20_util/duration/requirements/typedefs_neg2.cc:
4323 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4325 * include/bits/chrono_io.h (__formatter_chrono::_M_format):
4326 Do not set __is_neg for hh_mm_ss before calling
4327 _M_format_to_ostream. Change __print_sign lambda to only check
4328 __is_neg for durations and hh_mm_ss types.
4329 (__formatter_chrono::_M_format_to_ostream): Only check __is_neg
4331 * testsuite/std/time/hh_mm_ss/io.cc: Check negative values.
4333 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4336 * include/bits/chrono_io.h (__formatter_chrono::_S_floor_seconds):
4337 Handle duration and hh_mm_ss.
4338 * testsuite/20_util/duration/io.cc: Check locale-specific
4340 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
4342 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4344 * include/std/format (__write_padded): Initialize first element
4345 of array to avoid a -Wmaybe-uninitialized warning.
4347 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4350 * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Fix
4351 allowed modifiers for %z and %Z. Fix -Wparentheses and
4352 -Wnarrowing warnings.
4353 (__formatter_chrono::_M_format): Call new functions for %d, %e,
4355 (__formatter_chrono::_M_c): Use _S_floor_seconds to remove
4356 subsecond precision.
4357 (__formatter_chrono::_M_C_y_Y): Use _M_locale_fmt to handle
4359 (__formatter_chrono::_M_e): Replace with _M_d_e and use
4361 (__formatter_chrono::_M_I): Replace with _M_H_I and use
4363 (__formatter_chrono::_M_m): New function.
4364 (__formatter_chrono::_M_M): New function.
4365 (__formatter_chrono::_M_r): Use _M_locale_fmt.
4366 (__formatter_chrono::_M_S): Likewise.
4367 (__formatter_chrono::_M_u_w): Likewise.
4368 (__formatter_chrono::_M_U_V_W): Likewise.
4369 (__formatter_chrono::_M_X): Use _S_floor_seconds.
4370 (__formatter_chrono::_M_Z): Fix untested branch for wchar_t.
4371 (__formatter_chrono::_S_altnum): Remove function.
4372 (__formatter_chrono::_S_dd_zero_fill): Remove function.
4373 (__formatter_chrono::_S_floor_seconds): New function.
4374 (__formatter_chrono::_M_locale_fmt): New function.
4375 * testsuite/std/time/clock/system/io.cc: Adjust expected output
4376 for locale-specific formats and check modified formats.
4377 * testsuite/std/time/clock/utc/io.cc: Likewise.
4378 * testsuite/std/time/zoned_time/io.cc: New test.
4380 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4383 * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Only
4384 allow a single modifier.
4385 * testsuite/std/time/format.cc: Check multiple modifiers.
4387 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4390 * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
4391 Remove dg-require-string-conversions.
4392 * testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
4394 * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
4396 * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
4398 * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
4401 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4404 * include/bits/basic_string.h [!_GLIBCXX_HAVE_STRTOF] (stof):
4405 Define in terms of std::stod.
4407 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4410 * include/bits/basic_string.h [_GLIBCXX_HAVE_STRTOF] (stof):
4412 [_GLIBCXX_HAVE_STRTOLD] (stold): Define.
4413 * include/c_global/cstdlib [_GLIBCXX_HAVE_STRTOF] (strtof):
4414 Declare in namespace std.
4415 [_GLIBCXX_HAVE_STRTOLD] (strtold): Likewise.
4417 2023-07-13 Jonathan Wakely <jwakely@redhat.com>
4420 * include/bits/basic_string.h (stoi, stol, stoul, stod): Do not
4421 depend on _GLIBCXX_USE_C99_STDLIB.
4422 [__LONG_WIDTH__ == __LONG_LONG_WIDTH__] (stoll, stoull): Define
4423 in terms of stol and stoul respectively.
4424 [__DBL_MANT_DIG__ == __LDBL_MANT_DIG__] (stold): Define in terms
4427 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
4430 * testsuite/27_io/filesystem/path/construct/95048.cc: Check
4431 conversions to wide strings.
4432 * testsuite/experimental/filesystem/path/construct/95048.cc:
4435 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
4437 * config/io/basic_file_stdio.cc: Define LFS macros.
4438 (__basic_file<char>::open): Use fopen unconditionally.
4439 (get_file_offset): Use lseek unconditionally.
4440 (__basic_file<char>::seekoff): Likewise.
4441 (__basic_file<char>::showmanyc): Use fstat unconditionally.
4443 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
4446 * acinclude.m4 (GLIBCXX_CHECK_LFS): Check for fseeko and ftello
4447 and define _GLIBCXX_USE_FSEEKO_FTELLO.
4448 * config.h.in: Regenerate.
4449 * configure: Regenerate.
4450 * config/io/basic_file_stdio.cc (xwrite) [_GLIBCXX_USE_STDIO_PURE]:
4451 Check for fwrite error correctly.
4452 (__basic_file<char>::xsgetn) [_GLIBCXX_USE_STDIO_PURE]: Check for
4453 fread error correctly.
4454 (get_file_offset): New function.
4455 (__basic_file<char>::seekoff) [_GLIBCXX_USE_STDIO_PURE]: Use
4456 fseeko if available. Use get_file_offset instead of return value
4458 (__basic_file<char>::showmanyc): Use get_file_offset.
4460 2023-07-12 Ken Matsui <kmatsui@gcc.gnu.org>
4462 * include/std/type_traits (__make_unsigned_selector): Use
4463 __is_enum built-in trait.
4464 (__make_signed_selector): Likewise.
4465 (__underlying_type_impl): Likewise.
4467 2023-07-06 Tianqiang Shuai <1101282468@qq.com>
4469 * config/io/basic_file_stdio.cc (xwrite) [USE_STDIO_PURE]: Fix
4472 2023-07-06 Jonathan Wakely <jwakely@redhat.com>
4475 * doc/xml/manual/configure.xml: Describe stdio_pure argument to
4477 * doc/html/manual/configure.html: Regenerate.
4479 2023-07-05 Thomas Rodgers <trodgers@redhat.com>
4481 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Delete
4483 * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
4485 * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
4487 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
4489 * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
4491 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
4494 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
4496 * testsuite/23_containers/forward_list/debug/iterator1_neg.cc:
4497 Skip as UNSUPPORTED for C++98 mode.
4498 * testsuite/23_containers/forward_list/debug/iterator3_neg.cc:
4501 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
4504 * include/bits/stl_uninitialized.h (__uninitialized_default_n):
4505 Do not use std::fill_n during constant evaluation.
4507 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
4509 * include/bits/vector.tcc (_M_default_append): Replace try-block
4512 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
4514 * include/bits/iterator_concepts.h (projected): Add typename.
4516 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
4518 * testsuite/27_io/headers/iosfwd/synopsis.cc: Make wsyncbuf and
4519 wosyncstream depend on _GLIBCXX_USE_CXX11_ABI.
4521 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
4523 * include/pstl/pstl_config.h (_PSTL_PRAGMA_SIMD_SCAN,
4524 _PSTL_PRAGMA_SIMD_INCLUSIVE_SCAN, _PSTL_PRAGMA_SIMD_EXCLUSIVE_SCAN):
4525 Define to OpenMP 5.0 pragmas even for GCC 10.0+.
4526 (_PSTL_UDS_PRESENT): Define to 1 for GCC 10.0+.
4528 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
4530 * include/bits/alloc_traits.h (_Destroy): Qualify call.
4531 * include/bits/stl_construct.h (_Destroy, _Destroy_n): Likewise.
4532 * testsuite/23_containers/vector/cons/destroy-adl.cc: New test.
4534 2023-07-03 Iain Sandoe <iain@sandoe.co.uk>
4536 * testsuite/lib/libstdc++.exp: Remove additional flag handled
4539 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
4542 * acinclude.m4 (GLIBCXX_CHECK_INIT_PRIORITY): New.
4543 * config.h.in: Regenerate.
4544 * configure: Regenerate.
4545 * configure.ac: Use GLIBCXX_CHECK_INIT_PRIORITY.
4546 * include/std/iostream: Use new autoconf macro as well as
4548 * src/c++98/ios_base_init.h: Use new autoconf macro instead of
4551 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
4553 * src/c++11/random.cc (random_device::_M_init): Add maybe_unused
4556 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
4559 * src/c++11/random.cc (random_device::_M_init): Throw
4560 std::system_error when the requested device is a valid token but
4561 not available at runtime.
4563 2023-06-30 Hans-Peter Nilsson <hp@axis.com>
4566 * include/pstl/unseq_backend_simd.h (__simd_or): Re-apply using
4567 __INT32_TYPE__ instead of int32_t.
4569 2023-06-29 Jonathan Wakely <jwakely@redhat.com>
4571 * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define consistently
4572 with USE_ATOMIC_LIST_HEAD.
4573 (list_mutex): Replace global object with function. Use local
4574 static object when std::mutex constructor isn't constexpr.
4576 2023-06-29 Jonathan Wakely <jwakely@redhat.com>
4579 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check that
4580 copy_file_range can be called with loff_t* arguments.
4581 * configure: Regenerate.
4582 * src/filesystem/ops-common.h (copy_file_copy_file_range):
4583 Use loff_t for offsets.
4585 2023-06-29 Tom Tromey <tromey@adacore.com>
4587 * testsuite/lib/gdb-test.exp (gdb-test): Relax type-printer
4590 2023-06-28 Jan Hubicka <jh@suse.cz>
4592 PR middle-end/109849
4593 * include/bits/c++config (std::__terminate): Mark cold.
4594 * include/bits/functexcept.h: Mark everything as cold.
4595 * libsupc++/exception: Mark terminate and unexpected as cold.
4597 2023-06-26 Thomas Rodgers <trodgers@redhat.com>
4599 * include/pstl/algorithm_fwd.h: Synchronize with upstream.
4600 * include/pstl/algorithm_impl.h: Likewise.
4601 * include/pstl/execution_defs.h: Likewise.
4602 * include/pstl/execution_impl.h: Likewise.
4603 * include/pstl/glue_algorithm_impl.h: Likewise.
4604 * include/pstl/glue_execution_defs.h: Likewise.
4605 * include/pstl/glue_memory_impl.h: Likewise.
4606 * include/pstl/glue_numeric_impl.h: Likewise.
4607 * include/pstl/memory_impl.h: Likewise.
4608 * include/pstl/numeric_fwd.h: Likewise.
4609 * include/pstl/numeric_impl.h: Likewise.
4610 * include/pstl/parallel_backend.h: Likewise.
4611 * include/pstl/parallel_backend_serial.h: Likewise.
4612 * include/pstl/parallel_backend_tbb.h: Likewise.
4613 * include/pstl/parallel_impl.h: Likewise.
4614 * include/pstl/pstl_config.h: Likewise.
4615 * include/pstl/unseq_backend_simd.h: Likewise.
4616 * include/pstl/utils.h: Likewise.
4617 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
4619 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
4621 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
4623 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
4625 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
4626 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
4628 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
4630 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
4632 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
4634 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
4636 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
4638 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
4640 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
4642 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
4644 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
4646 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
4648 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
4650 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
4652 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
4654 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
4656 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
4658 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
4660 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
4662 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
4664 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
4666 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
4668 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
4670 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
4672 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
4674 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
4676 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
4678 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
4680 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
4682 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
4684 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
4686 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
4688 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
4690 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
4692 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
4694 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
4696 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc:
4698 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
4700 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
4702 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
4704 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
4706 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
4708 * testsuite/25_algorithms/pstl/alg_sorting/set.cc:
4710 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc:
4712 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
4714 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc:
4716 * testsuite/26_numerics/pstl/numeric_ops/scan.cc:
4718 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
4720 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
4722 * testsuite/util/pstl/test_utils.h:
4725 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
4728 * include/std/format (__format::__parse_integer): Fix buffer
4729 overflow for wide chars.
4730 (formatter<const void*, C>::format): Cast to uintptr_t instead
4732 * testsuite/std/format/string.cc: Test too-large widths.
4734 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
4736 * include/bits/iterator_concepts.h (projected): Replace class
4737 template with alias template denoting an ADL-proofed helper.
4738 (incremental_traits<projected<Iter, Proj>>): Remove.
4739 * testsuite/24_iterators/indirect_callable/projected-adl.cc:
4742 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
4744 * include/debug/helper_functions.h (__get_distance)
4745 (__check_singular, __valid_range_aux, __valid_range): Qualify
4746 calls to disable ADL.
4747 (__check_singular_aux(const _Safe_iterator_base*)): Declare
4748 overload that was previously found via ADL.
4750 2023-06-23 Jonathan Wakely <jwakely@redhat.com>
4752 * include/bits/vector.tcc (_M_realloc_insert): Replace try-block
4755 2023-06-20 Jonathan Wakely <jwakely@redhat.com>
4757 * include/std/array (to_array(T(&)[N])): Remove redundant
4759 (to_array(T(&&)[N])): Remove redundant std::move.
4761 2023-06-16 Alexandre Oliva <oliva@adacore.com>
4763 * testsuite/20_util/from_chars/4.cc: Skip long double on
4766 2023-06-16 Joel Brobecker <brobecker@adacore.com>
4768 * configure.ac ["x${with_newlib}" = "xyes"]: Define
4769 HAVE_HYPOTF. Add compile-checks for various long double
4770 math functions as well.
4771 * configure: Regenerate.
4773 2023-06-14 Jonny Grant <jg@jguk.org>
4775 * doc/xml/manual/extensions.xml: Remove demangle exception
4776 description and include.
4777 * doc/html/manual/ext_demangling.html: Regenerate.
4779 2023-06-10 Hans-Peter Nilsson <hp@axis.com>
4781 * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc (main)
4782 [! SIMULATOR_TEST]: Also exclude running test05.
4783 * testsuite/27_io/basic_istream/ignore/char/94749.cc: Ditto.
4785 2023-06-09 Ken Matsui <kmatsui@cs.washington.edu>
4787 * include/std/type_traits: Use using instead of typedef
4789 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
4792 * src/c++17/floating_from_chars.cc (from_chars) <_Float128>:
4793 Only define if _Float128 and long double have different
4796 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
4799 * include/experimental/internet [IPPROTO_TCP || IPPROTO_UDP]
4800 (basic_endpoint, basic_resolver_entry, resolver_base)
4801 (basic_resolver_results, basic_resolver): Only define if the tcp
4802 or udp protocols will be defined.
4804 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
4806 * acinclude.m4 (libtool_VERSION): Update to 6.0.33.
4807 * configure: Regenerate.
4808 * doc/xml/manual/abi.xml: Add libstdc++.so.6.0.33.
4809 * doc/html/manual/abi.html: Regenerate.
4811 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
4814 * include/std/format (formatter<const void*, charT>::parse):
4815 Only alow 0 and P for C++26 and non-strict modes.
4816 (formatter<const void*, charT>::format): Use toupper for P
4817 type, and insert zero-fill characters for 0 option.
4818 * testsuite/std/format/functions/format.cc: Check pointer
4819 formatting. Only check P2510R3 extensions conditionally.
4820 * testsuite/std/format/parse_ctx.cc: Only check P2510R3
4821 extensions conditionally.
4823 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
4826 * include/std/array (to_array): Initialize arrays of trivial
4827 types using memcpy. For non-trivial types, use lambda
4828 expressions instead of a separate helper function.
4829 (__to_array): Remove.
4830 * testsuite/23_containers/array/creation/110167.cc: New test.
4832 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
4834 * testsuite/23_containers/deque/modifiers/emplace/52799.cc:
4836 * testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc:
4838 * testsuite/23_containers/list/modifiers/emplace/52799.cc:
4840 * testsuite/23_containers/list/modifiers/emplace/const_iterator.cc:
4842 * testsuite/23_containers/vector/modifiers/emplace/52799.cc:
4844 * testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc:
4846 * testsuite/23_containers/deque/modifiers/emplace/1.cc: New
4848 * testsuite/23_containers/list/modifiers/emplace/1.cc: New
4850 * testsuite/23_containers/vector/modifiers/emplace/1.cc: New
4853 2023-06-07 Jakub Jelinek <jakub@redhat.com>
4856 * testsuite/20_util/to_chars/double.cc: Include <cfloat>.
4857 (double_to_chars_test_cases,
4858 double_scientific_precision_to_chars_test_cases_2,
4859 double_fixed_precision_to_chars_test_cases_2): #if out 1e126, 4.91e-6
4860 and 5.547e-6 tests if FLT_EVAL_METHOD is negative or larger than 1.
4861 Add unconditional tests with corresponding double constants
4862 0x1.7a2ecc414a03fp+418, 0x1.4981285e98e79p-18 and
4863 0x1.7440bbff418b9p-18.
4865 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
4867 * testsuite/util/testsuite_abi.cc (check_version): Re-add
4870 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
4872 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
4873 Require effective target exceptions_enabled instead of using
4875 * testsuite/23_containers/vector/capacity/constexpr.cc: Expect
4876 shrink_to_fit() to be a no-op without exceptions enabled.
4877 * testsuite/23_containers/vector/capacity/shrink_to_fit.cc:
4879 * testsuite/ext/bitmap_allocator/check_allocate_max_size.cc:
4880 Require effective target exceptions_enabled.
4881 * testsuite/ext/malloc_allocator/check_allocate_max_size.cc:
4883 * testsuite/ext/mt_allocator/check_allocate_max_size.cc:
4885 * testsuite/ext/new_allocator/check_allocate_max_size.cc:
4887 * testsuite/ext/pool_allocator/check_allocate_max_size.cc:
4889 * testsuite/ext/throw_allocator/check_allocate_max_size.cc:
4892 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
4894 * testsuite/20_util/duration/cons/2.cc: Use values that aren't
4895 affected by rounding.
4896 * testsuite/20_util/from_chars/5.cc: Cast arithmetic result to
4897 double before comparing for equality.
4898 * testsuite/20_util/from_chars/6.cc: Likewise.
4899 * testsuite/20_util/variant/86874.cc: Use values that aren't
4900 affected by rounding.
4901 * testsuite/25_algorithms/lower_bound/partitioned.cc: Compare to
4902 original value instead of to floating-point-literal.
4903 * testsuite/26_numerics/random/discrete_distribution/cons/range.cc:
4904 Cast arithmetic result to double before comparing for equality.
4905 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc:
4907 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc:
4909 * testsuite/26_numerics/valarray/transcend.cc (eq): Check that
4910 the absolute difference is less than 0.01 instead of comparing
4911 to two decimal places.
4912 * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
4913 Cast arithmetic result to double before comparing for equality.
4914 * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
4916 * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
4918 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc:
4920 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc:
4922 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc:
4924 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
4926 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
4929 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
4931 * configure.ac: Use AS_IF.
4932 * configure: Regenerate.
4934 2023-06-07 Thomas Schwinge <thomas@codesourcery.com>
4936 * testsuite/lib/prune.exp (libstdc++-dg-prune): Support
4937 'UNSUPPORTED: [...]: exception handling disabled'.
4939 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
4941 * testsuite/util/testsuite_abi.cc (check_version): Add
4942 CXXABI_1.3.15 symver and make it the latestp. Remove
4943 GLIBCXX_IEEE128_3.4.31 and GLIBCXX_LDBL_3.4.31 from latestp.
4945 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
4946 Jakub Jelinek <jakub@redhat.com>
4949 * include/std/limits: (numeric_limits<__float128>): Define
4950 for __STRICT_ANSI__ as well.
4951 * testsuite/18_support/numeric_limits/128bit.cc: Remove
4952 check for __STRICT_ANSI__.
4954 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
4956 * configure.ac: Use AS_IF.
4957 * configure: Regenerate.
4959 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
4962 * include/experimental/bits/simd_builtin.h (_S_store): Rewrite
4963 to avoid casts to other vector types. Implement store as
4964 succession of power-of-2 sized memcpy to avoid PR90424.
4966 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
4969 * include/experimental/bits/simd_builtin.h (_S_masked_store):
4970 Call into deduced ABI's SimdImpl after conversion.
4971 * include/experimental/bits/simd_x86.h (_S_masked_store_nocvt):
4972 Don't use _mm_maskmoveu_si128. Use the generic fall-back
4973 implementation. Also fix masked stores without SSE2, which
4974 were not doing anything before.
4976 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
4978 * include/experimental/bits/simd.h (__bit_cast): Use
4979 __gnu__::__vector_size__ instead of gnu::vector_size.
4981 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
4984 * include/std/array (__array_traits<T, 0>::operator T*()): Make
4985 conversion operator explicit.
4986 (array::front): Use size_type as subscript operand.
4987 (array::data): Use static_cast to make conversion explicit.
4988 * testsuite/23_containers/array/element_access/110139.cc: New
4991 2023-06-06 Joseph Faulls <Joseph.Faulls@imgtec.com>
4993 * include/bits/locale_classes.tcc: Remove check for
4994 codecvt<char8_t, char, mbstate_t> facet.
4996 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
4998 * src/filesystem/ops-common.h (do_copy_file) [O_CLOEXEC]: Set
4999 close-on-exec flag on file descriptors.
5001 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
5004 * src/filesystem/ops-common.h (do_copy_file): Check for empty
5005 files by trying to read a character.
5006 * testsuite/27_io/filesystem/operations/copy_file_108178.cc:
5009 2023-06-06 Jannik Glückert <jannik.glueckert@gmail.com>
5011 * acinclude.m4 (_GLIBCXX_USE_COPY_FILE_RANGE): Define.
5012 * config.h.in: Regenerate.
5013 * configure: Regenerate.
5014 * src/filesystem/ops-common.h (copy_file_copy_file_range):
5015 Define new function.
5016 (do_copy_file): Use it.
5018 2023-06-06 Jannik Glückert <jannik.glueckert@gmail.com>
5020 * acinclude.m4 (_GLIBCXX_HAVE_LSEEK): Define.
5021 * config.h.in: Regenerate.
5022 * configure: Regenerate.
5023 * src/filesystem/ops-common.h (copy_file_sendfile): Define new
5024 function for sendfile logic. Loop to support large files. Skip
5026 (do_copy_file): Use it.
5028 2023-06-04 Jason Merrill <jason@redhat.com>
5031 * libsupc++/eh_call.cc (__cxa_call_terminate): Take void*.
5032 * config/abi/pre/gnu.ver: Add it.
5034 2023-06-02 François Dumont <fdumont@gcc.gnu.org>
5036 * include/parallel/algobase.h: Include <parallel/search.h>.
5038 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
5040 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
5041 Add const to equality operator.
5043 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
5045 * include/std/expected (expected::and_then, expected::or_else)
5046 (expected::transform_error): Use _M_val and _M_unex instead of
5047 calling value() and error(), as per LWG 3938.
5048 (expected::transform): Likewise. Remove incorrect std::move
5049 calls from lvalue overloads.
5050 (expected<void, E>::and_then, expected<void, E>::or_else)
5051 (expected<void, E>::transform): Use _M_unex instead of calling
5053 * testsuite/20_util/expected/lwg3877.cc: Add checks for and_then
5054 and transform, and for std::expected<void, E>.
5055 * testsuite/20_util/expected/lwg3938.cc: New test.
5057 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
5060 * include/bits/stl_vector.h (_Vector_base::_M_invariant):
5062 (vector::size, vector::capacity): Remove calls to _M_invariant.
5063 * include/bits/vector.tcc (vector::_M_fill_assign): Add
5064 optimization hint to reallocating path.
5065 (vector::_M_assign_aux(FwdIter, FwdIter, forward_iterator_tag)):
5067 * testsuite/23_containers/vector/capacity/invariant.cc: Moved
5069 * testsuite/23_containers/vector/modifiers/assign/no_realloc.cc:
5070 ...here. Check assign(FwdIter, FwdIter) too.
5071 * testsuite/23_containers/vector/types/1.cc: Revert addition
5072 of -Wno-stringop-overread option.
5074 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
5076 * doc/xml/manual/evolution.xml: Document removal of implicit
5077 allocator rebinding extensions in strict mode and for C++20.
5078 * doc/html/*: Regenerate.
5080 2023-06-01 Jason Merrill <jason@redhat.com>
5082 * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Don't check
5083 handlers in the cleanup phase.
5085 2023-06-01 Matthias Kretz <m.kretz@gsi.de>
5088 * include/experimental/bits/simd.h (__vectorized_sizeof): With
5089 __have_neon_a32 only single-precision float works (in addition
5092 2023-06-01 François Dumont <fdumont@gcc.gnu.org>
5094 * include/bits/stl_algo.h
5095 (std::__search, std::search(_FwdIt1, _FwdIt1, _FwdIt2, _FwdIt2, _BinPred)): Move...
5096 * include/bits/stl_algobase.h: ...here.
5097 * include/std/functional: Replace <stl_algo.h> include by <stl_algobase.h>.
5098 * include/parallel/algo.h (std::__parallel::search<_FIt1, _FIt2, _BinaryPred>)
5099 (std::__parallel::__search_switch<_FIt1, _FIt2, _BinaryPred, _ItTag1, _ItTag2>):
5101 * include/parallel/algobase.h: ...here.
5102 * include/experimental/functional: Remove <bits/stl_algo.h> and <parallel/algorithm>
5103 includes. Include <bits/stl_algobase.h>.
5105 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5108 * acinclude.m4 (GLIBCXX_ENABLE_C99): Add separate check for
5109 float_t and double_t and define HAVE_C99_FLT_EVAL_TYPES.
5110 * config.h.in: Regenerate.
5111 * configure: Regenerate.
5112 * include/c_global/cmath (float_t, double_t): Guard using new
5113 _GLIBCXX_HAVE_C99_FLT_EVAL_TYPES macro.
5115 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5117 * acinclude.m4 (GLIBCXX_ENABLE_C99): Add checks for C99 math
5118 functions and define _GLIBCXX_USE_C99_MATH_FUNCS. Move checks
5119 for C99 rounding functions to here.
5120 (GLIBCXX_CHECK_C99_TR1): Remove checks for C99 rounding
5121 functions from here.
5122 * config.h.in: Regenerate.
5123 * configure: Regenerate.
5124 * include/bits/random.h: Use _GLIBCXX_USE_C99_MATH_FUNCS instead
5125 of _GLIBCXX_USE_C99_MATH_TR1.
5126 * include/bits/random.tcc: Likewise.
5127 * include/c_compatibility/math.h: Likewise.
5128 * include/c_global/cmath: Likewise.
5129 * include/ext/random: Likewise.
5130 * include/ext/random.tcc: Likewise.
5131 * include/std/complex: Likewise.
5132 * testsuite/20_util/from_chars/4.cc: Likewise.
5133 * testsuite/20_util/from_chars/8.cc: Likewise.
5134 * testsuite/26_numerics/complex/proj.cc: Likewise.
5135 * testsuite/26_numerics/headers/cmath/60401.cc: Likewise.
5136 * testsuite/26_numerics/headers/cmath/types_std_c++0x.cc:
5138 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
5140 * testsuite/util/testsuite_random.h: Likewise.
5142 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5144 * include/bits/stl_vector.h (_Vector_base::_M_invariant()): New
5146 (vector::size(), vector::capacity()): Call _M_invariant().
5147 * testsuite/23_containers/vector/capacity/invariant.cc: New test.
5148 * testsuite/23_containers/vector/types/1.cc: Add suppression for
5149 false positive warning (PR110060).
5151 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5154 * src/c++17/floating_from_chars.cc: Check __FLT128_MANT_DIG__ is
5155 defined before trying to use _Float128.
5157 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5159 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Fix for 32-bit pointers
5160 to check __INT_PTR_WIDTH__ instead of sizeof(void*).
5161 * configure: Regenerate.
5163 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5165 * include/bits/unique_lock.h: Include <bits/error_constants.h>
5166 here for std::errc constants.
5167 * include/std/mutex: Do not include <bits/error_constants.h> and
5170 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5172 * configure.ac: Replace use of -o operator for test.
5173 * configure: Regenerate.
5175 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5177 * include/std/scoped_allocator (scoped_allocator_adaptor): Add
5178 noexcept to all constructors except the default constructor.
5179 (scoped_allocator_adaptor::inner_allocator): Add noexcept.
5180 (scoped_allocator_adaptor::outer_allocator): Likewise.
5181 * testsuite/20_util/scoped_allocator/noexcept.cc: New test.
5183 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5186 * include/std/limits (numeric_limits<__float128>): Define.
5187 * testsuite/18_support/numeric_limits/128bit.cc: New test.
5189 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5191 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Extend logic for avr and
5192 msp430 to all 16-bit targets.
5193 * configure: Regenerate.
5195 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5198 * src/c++17/floating_from_chars.cc (USE_STRTOF128_FOR_FROM_CHARS):
5199 Only define when USE_STRTOD_FOR_FROM_CHARS is also defined.
5200 (USE_STRTOD_FOR_FROM_CHARS): Do not undefine when long double is
5202 (from_chars(const char*, const char*, double&, chars_format)):
5203 Check __LDBL_MANT_DIG__ == __DBL_MANT_DIG__ here.
5204 (from_chars(const char*, const char*, _Float128&, chars_format))
5205 Only use from_chars_strtod when USE_STRTOD_FOR_FROM_CHARS is
5206 defined, otherwise parse a long double and convert to _Float128.
5208 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5211 * include/std/iomanip (operator>>(basic_istream&, _Setfill)):
5212 Add deprecated attribute to non-standard overload.
5213 * doc/xml/manual/evolution.xml: Document deprecation.
5214 * doc/html/*: Regenerate.
5215 * testsuite/27_io/manipulators/standard/char/1.cc: Add
5216 dg-warning for expected deprecated warning.
5217 * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
5218 * testsuite/27_io/manipulators/standard/wchar_t/1.cc: Likewise.
5219 * testsuite/27_io/manipulators/standard/wchar_t/2.cc: Likewise.
5221 2023-05-30 Alexandre Oliva <oliva@adacore.com>
5223 * testsuite/20_util/from_chars/4.cc: Skip long double test06
5225 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
5228 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
5231 * include/experimental/bits/simd.h (to_native): Use int NTTP
5232 as specified in PTS2.
5233 (to_compatible): Likewise. Add missing tag to call mask
5235 * testsuite/experimental/simd/pr109822_cast_functions.cc: New
5238 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
5240 * testsuite/experimental/simd/tests/integer_operators.cc:
5241 Compute expected value differently to avoid getting turned into
5244 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
5246 * testsuite/experimental/simd/tests/operator_cvt.cc: Make long
5247 double <-> (u)long conversion tests conditional on sizeof(long
5248 double) and sizeof(long).
5250 2023-05-26 Matthias Kretz <m.kretz@gsi.de>
5252 * include/experimental/bits/simd_ppc.h (_S_bit_shift_left):
5253 Negative __y is UB, so prefer signed compare.
5255 2023-05-25 Jonathan Wakely <jwakely@redhat.com>
5257 * testsuite/util/testsuite_allocator.h (PointerBase): Add
5258 relational operators.
5260 2023-05-25 Alexandre Oliva <oliva@adacore.com>
5262 * testsuite/20_util/to_chars/long_double.cc: Expect execution
5263 fail on x86-vxworks.
5265 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
5268 * include/experimental/bits/simd.h (__intrinsic_type): If
5269 __ALTIVEC__ is defined, map gnu::vector_size types to their
5270 corresponding __vector T types without losing unsignedness of
5271 integer types. Also prefer long long over long.
5272 * include/experimental/bits/simd_ppc.h (_S_popcount): Cast mask
5273 object to the expected unsigned vector type.
5275 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
5278 * include/experimental/bits/simd.h (__intrinsic_type):
5279 Specialize __intrinsic_type<double, 8> and
5280 __intrinsic_type<double, 16> in any case, but provide the member
5281 type only with __aarch64__.
5283 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
5286 * include/experimental/bits/simd_neon.h (_S_reduce): Add
5287 constexpr and make NEON implementation conditional on
5288 not __builtin_is_constant_evaluated.
5290 2023-05-23 Matthias Kretz <m.kretz@gsi.de>
5293 * include/experimental/bits/simd.h (_SimdWrapper::_M_set):
5294 Avoid vector builtin subscripting in constant expressions.
5295 (resizing_simd_cast): Avoid memcpy if constant_evaluated.
5296 (const_where_expression, where_expression, where)
5297 (__extract_part, simd_mask, _SimdIntOperators, simd): Add either
5298 _GLIBCXX_SIMD_CONSTEXPR (on public APIs), or constexpr (on
5300 * include/experimental/bits/simd_builtin.h (__vector_permute)
5301 (__vector_shuffle, __extract_part, _GnuTraits::_SimdCastType1)
5302 (_GnuTraits::_SimdCastType2, _SimdImplBuiltin)
5303 (_MaskImplBuiltin::_S_store): Add constexpr.
5304 (_CommonImplBuiltin::_S_store_bool_array)
5305 (_SimdImplBuiltin::_S_load, _SimdImplBuiltin::_S_store)
5306 (_SimdImplBuiltin::_S_reduce, _MaskImplBuiltin::_S_load): Add
5307 constant_evaluated case.
5308 * include/experimental/bits/simd_fixed_size.h
5309 (_S_masked_load): Reword comment.
5310 (__tuple_element_meta, __make_meta, _SimdTuple::_M_apply_r)
5311 (_SimdTuple::_M_subscript_read, _SimdTuple::_M_subscript_write)
5312 (__make_simd_tuple, __optimize_simd_tuple, __extract_part)
5313 (__autocvt_to_simd, _Fixed::__traits::_SimdBase)
5314 (_Fixed::__traits::_SimdCastType, _SimdImplFixedSize): Add
5316 (_SimdTuple::operator[], _M_set): Add constexpr and add
5317 constant_evaluated case.
5318 (_MaskImplFixedSize::_S_load): Add constant_evaluated case.
5319 * include/experimental/bits/simd_scalar.h: Add constexpr.
5320 * include/experimental/bits/simd_x86.h (_CommonImplX86): Add
5321 constexpr and add constant_evaluated case.
5322 (_SimdImplX86::_S_equal_to, _S_not_equal_to, _S_less)
5323 (_S_less_equal): Value-initialize to satisfy constexpr
5325 (_MaskImplX86::_S_load): Add constant_evaluated case.
5326 (_MaskImplX86::_S_store): Add constexpr and constant_evaluated
5327 case. Value-initialize local variables.
5328 (_MaskImplX86::_S_logical_and, _S_logical_or, _S_bit_not)
5329 (_S_bit_and, _S_bit_or, _S_bit_xor): Add constant_evaluated
5331 * testsuite/experimental/simd/pr109261_constexpr_simd.cc: New
5334 2023-05-22 Matthias Kretz <m.kretz@gsi.de>
5336 * include/experimental/bits/simd_builtin.h (_S_fpclassify): Move
5337 __infn into #ifdef'ed block.
5338 * testsuite/experimental/simd/tests/fpclassify.cc: Declare
5339 constants only when used.
5340 * testsuite/experimental/simd/tests/frexp.cc: Likewise.
5341 * testsuite/experimental/simd/tests/logarithm.cc: Likewise.
5342 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc:
5344 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
5345 Move totest and expect1 into #ifdef'ed block.
5347 2023-05-19 Gerald Pfeifer <gerald@pfeifer.com>
5349 * doc/xml/manual/strings.xml: Move lafstern.org reference to https.
5350 * doc/html/manual/strings.html: Regenerate.
5352 2023-05-17 Jakub Jelinek <jakub@redhat.com>
5355 * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc: New test.
5357 2023-05-17 Jakub Jelinek <jakub@redhat.com>
5360 * include/c_global/cmath (atan2, fmod, pow): Move
5361 __gnu_cxx::__promote_2 using templates after _Float{16,32,64,128} and
5362 __gnu_cxx::__bfloat16_t overloads.
5363 (copysign, fdim, fmax, fmin, hypot, nextafter, remainder, remquo):
5365 (fma): Move __gnu_cxx::__promote_3 using template after
5366 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads.
5368 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
5370 * testsuite/18_support/headers/limits/synopsis.cc: Uncomment
5371 checks for float_round_style and float_denorm_style.
5373 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
5375 * include/bits/c++config: Add system_header pragma.
5377 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
5379 * include/std/expected (expected::and_then, expected::or_else)
5380 (expected::transform, expected::transform_error): Fix exception
5381 specifications as per LWG 3877.
5382 (expected<void, E>::and_then, expected<void, E>::transform):
5384 * testsuite/20_util/expected/lwg3877.cc: New test.
5386 2023-05-17 Ken Matsui <kmatsui@cs.washington.edu>
5388 * include/std/type_traits: Use __bool_constant instead of
5391 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
5393 * configure: Regenerate.
5395 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5398 * acinclude.m4 (GLIBCXX_CHECK_ALIGNAS_CACHELINE): Define.
5399 * config.h.in: Regenerate.
5400 * configure: Regenerate.
5401 * configure.ac: Use GLIBCXX_CHECK_ALIGNAS_CACHELINE.
5402 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex): Do not
5403 align lock table if not supported. use __GCC_DESTRUCTIVE_SIZE
5404 instead of hardcoded 64.
5406 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5408 * acinclude.m4 (GLIBCXX_USE_C99): Check for isblank in C++11
5409 mode and define _GLIBCXX_USE_C99_CTYPE. Check for <fenv.h>
5410 functions in C++11 mode and define _GLIBCXX_USE_C99_FENV.
5411 * config.h.in: Regenerate.
5412 * configure: Regenerate.
5413 * include/c_compatibility/fenv.h: Check _GLIBCXX_USE_C99_FENV
5414 instead of _GLIBCXX_USE_C99_FENV_TR1.
5415 * include/c_global/cfenv: Likewise.
5416 * include/c_global/cctype: Check _GLIBCXX_USE_C99_CTYPE instead
5417 of _GLIBCXX_USE_C99_CTYPE_TR1.
5419 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5421 * acinclude.m4 (GLIBCXX_USE_C99): Check for <stdint.h> types in
5422 C++11 mode and define _GLIBCXX_USE_C99_STDINT. Check for
5423 <inttypes.h> features in C++11 mode and define
5424 _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T.
5425 * config.h.in: Regenerate.
5426 * configure: Regenerate.
5427 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
5428 * include/bits/chrono.h: Check _GLIBCXX_USE_C99_STDINT instead
5429 of _GLIBCXX_USE_C99_STDINT_TR1.
5430 * include/c_compatibility/inttypes.h: Check
5431 _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T
5432 instead of _GLIBCXX_USE_C99_INTTYPES_TR1 and
5433 _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
5434 * include/c_compatibility/stdatomic.h: Check
5435 _GLIBCXX_USE_C99_STDINT instead of _GLIBCXX_USE_C99_STDINT_TR1.
5436 * include/c_compatibility/stdint.h: Likewise.
5437 * include/c_global/cinttypes: Check _GLIBCXX_USE_C99_INTTYPES
5438 and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T instead of
5439 _GLIBCXX_USE_C99_INTTYPES_TR1 and
5440 _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
5441 * include/c_global/cstdint: Check _GLIBCXX_USE_C99_STDINT
5442 instead of _GLIBCXX_USE_C99_STDINT_TR1.
5443 * include/std/atomic: Likewise.
5444 * src/c++11/cow-stdexcept.cc: Likewise.
5445 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
5447 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
5450 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5452 * acinclude.m4 (GLIBCXX_USE_C99): Check for complex inverse trig
5453 functions in C++11 mode and define _GLIBCXX_USE_C99_COMPLEX_ARC.
5454 * config.h.in: Regenerate.
5455 * configure: Regenerate.
5456 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macro.
5457 * include/std/complex: Check _GLIBCXX_USE_C99_COMPLEX_ARC
5458 instead of _GLIBCXX_USE_C99_COMPLEX_TR1.
5460 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5462 * testsuite/ext/debug_allocator/check_deallocate_null.cc: Add
5463 assertion to ensure expected exception is throw.
5465 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5467 * testsuite/libstdc++-prettyprinters/chrono.cc: Only test
5468 printer for chrono::zoned_time for cx11 ABI and tzdb effective
5471 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5473 * acinclude.m4 (GLIBCXX_CHECK_PTHREAD_MUTEX_CLOCKLOCK): Define
5474 _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK in terms of _GLIBCXX_TSAN.
5475 * configure: Regenerate.
5477 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5479 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Use a non-null pointer
5480 to check for nan, nanf, and nanl.
5481 * configure: Regenerate.
5483 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5485 * include/bits/char_traits.h (char_traits<char16_t>): Do not
5486 depend on _GLIBCXX_USE_C99_STDINT_TR1.
5487 (char_traits<char32_t>): Likewise.
5488 * include/experimental/source_location: Likewise.
5490 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5492 * include/std/atomic (atomic_int_least8_t, atomic_uint_least8_t)
5493 (atomic_int_least16_t, atomic_uint_least16_t)
5494 (atomic_int_least32_t, atomic_uint_least32_t)
5495 (atomic_int_least64_t, atomic_uint_least64_t)
5496 (atomic_int_fast16_t, atomic_uint_fast16_t)
5497 (atomic_int_fast32_t, atomic_uint_fast32_t)
5498 (atomic_int_fast64_t, atomic_uint_fast64_t)
5499 (atomic_intmax_t, atomic_uintmax_t): Define unconditionally.
5500 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Adjust.
5502 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5504 * include/bits/algorithmfwd.h (shuffle): Do not depend on
5505 _GLIBCXX_USE_C99_STDINT_TR1.
5506 * include/bits/ranges_algo.h (shuffle): Likewise.
5507 * include/bits/stl_algo.h (shuffle): Likewise.
5508 * include/ext/random: Likewise.
5509 * include/ext/throw_allocator.h (random_condition): Likewise.
5510 * include/std/random: Likewise.
5511 * src/c++11/cow-string-inst.cc: Likewise.
5512 * src/c++11/random.cc: Likewise.
5514 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5516 * testsuite/experimental/feat-cxx14.cc: Remove dependency on
5517 _GLIBCXX_USE_C99_STDINT_TR1.
5519 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5521 * testsuite/22_locale/locale/cons/unicode.cc: Remove dependency
5522 on _GLIBCXX_USE_C99_STDINT_TR1.
5524 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5526 * testsuite/21_strings/basic_string_view/typedefs.cc: Remove
5527 dependency on _GLIBCXX_USE_C99_STDINT_TR1.
5528 * testsuite/experimental/string_view/typedefs.cc: Likewise.
5530 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
5532 * src/c++17/floating_from_chars.cc [USE_STRTOD_FOR_FROM_CHARS]
5533 (auto_locale, auto_ferounding): New class types.
5534 (from_chars_impl): Use auto_locale and auto_ferounding.
5536 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
5539 * include/std/chrono (hh_mm_ss::__fits): Remove variable
5541 (hh_mm_ss::__subseconds): Remove __fits from constraints.
5542 * testsuite/std/time/hh_mm_ss/109772.cc: New test.
5543 * testsuite/std/time/hh_mm_ss/1.cc: Adjust expected size for
5544 hh_mm_ss<duration<int, std::pico>>.
5546 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
5548 * config/abi/pre/gnu.ver: Export basic_string::_S_allocate.
5549 * include/bits/basic_ios.h: Add static assertion checking
5550 traits_type::value_type.
5551 * include/bits/basic_string.h: Likewise. Do not rebind
5552 allocator, and add static assertion checking its value_type.
5553 (basic_string::_Alloc_traits_impl): Remove class template.
5554 (basic_string::_S_allocate): New static member function.
5555 (basic_string::assign): Use _S_allocate.
5556 * include/bits/basic_string.tcc (basic_string::_M_create)
5557 (basic_string::reserve, basic_string::_M_replace): Likewise.
5558 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc:
5559 Disable for C++20 and later.
5560 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
5563 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
5566 * include/bits/std_abs.h (abs(__float128)): Handle negative NaN
5567 and negative zero correctly.
5568 * testsuite/26_numerics/headers/cmath/109758.cc: New test.
5570 2023-05-10 François Dumont <fdumont@gcc.gnu.org>
5572 * include/bits/hashtable_policy.h
5573 (_NodeBuilder<>::_S_build): Use __node_ptr.
5574 (_ReuseOrAllocNode<>): Use __node_ptr in place of __node_type*.
5575 (_AllocNode<>): Likewise.
5576 (_Equality<>::_M_equal): Remove const_iterator usages. Only preserved
5577 to call std::is_permutation in the non-unique key implementation.
5578 * include/bits/hashtable.h (_Hashtable<>::_M_update_begin()): Capture
5580 (_Hashtable<>::_M_bucket_begin(size_type)): Implement implicitly inline.
5581 (_Hashtable<>::_M_insert_bucket_begin): Likewise.
5582 (_Hashtable<>::_M_remove_bucket_begin): Likewise.
5583 (_Hashtable<>::_M_compute_hash_code): Use __node_ptr rather than
5585 (_Hashtable<>::find): Likewise.
5586 (_Hashtable<>::_M_emplace): Likewise.
5587 (_Hashtable<>::_M_insert_unique): Likewise.
5589 2023-05-09 Jonathan Wakely <jwakely@redhat.com>
5591 * python/libstdcxx/v6/printers.py (StdChronoDurationPrinter):
5592 Print floating-point durations correctly.
5593 (StdChronoTimePointPrinter): Support printing only the value,
5594 not the type name. Uncomment handling for known clocks.
5595 (StdChronoZonedTimePrinter): Remove type names from output.
5596 (StdChronoCalendarPrinter): Fix hh_mm_ss member access.
5597 (StdChronoTimeZonePrinter): Add equals sign to output.
5598 * testsuite/libstdc++-prettyprinters/chrono.cc: New test.
5600 2023-05-05 Alexandre Oliva <oliva@adacore.com>
5602 * testsuite/20_util/from_chars/4.cc: Skip long double test06
5604 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
5607 2023-05-04 Jonathan Wakely <jwakely@redhat.com>
5609 * doc/xml/manual/abi.xml (abi.versioning.history): Document
5610 libstdc++.so.6.0.32 and GLIBCXX_3.4.32 version.
5611 * doc/html/manual/abi.html: Regenerate.
5613 2023-05-04 Florian Weimer <fweimer@redhat.com>
5615 * doc/xml/manual/abi.xml (abi.versioning.history): Add
5616 GCC_7.0.0, GCC_9.0.0, GCC_11.0, GCC_12.0.0, GCC_13.0.0 for
5619 2023-05-03 Jakub Jelinek <jakub@redhat.com>
5621 * src/c++17/floating_from_chars.cc
5622 (_ZSt10from_charsPKcS0_RDF128_St12chars_format): New alias to
5623 _ZSt10from_charsPKcS0_Ru9__ieee128St12chars_format.
5624 * src/c++17/floating_to_chars.cc (_ZSt8to_charsPcS_DF128_): New alias to
5625 _ZSt8to_charsPcS_u9__ieee128.
5626 (_ZSt8to_charsPcS_DF128_St12chars_format): New alias to
5627 _ZSt8to_charsPcS_u9__ieee128St12chars_format.
5628 (_ZSt8to_charsPcS_DF128_St12chars_formati): New alias to
5629 _ZSt8to_charsPcS_u9__ieee128St12chars_formati.
5630 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Updated.
5632 2023-05-03 Jakub Jelinek <jakub@redhat.com>
5634 * configure.host (abi_baseline_pair): Use powerpc64le-linux-gnu
5635 rather than powerpc64-linux-gnu for powerpc64le*-linux*.
5636 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Remove
5637 _ZTI*DF128_, _ZTI*DF64x symbols and symbols in
5638 GLIBCXX_IEEE128_3.4.{29,30,31} and CXXABI_IEEE128_1.3.13 symbol
5640 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: New
5643 2023-05-03 Kefu Chai <kefu.chai@scylladb.com>
5644 Jonathan Wakely <jwakely@redhat.com>
5647 * include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)):
5648 Initialize _M_string_length.
5650 2023-05-02 Jakub Jelinek <jakub@redhat.com>
5652 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
5653 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
5654 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
5655 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5656 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
5657 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
5658 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
5659 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
5661 2023-05-02 Jakub Jelinek <jakub@redhat.com>
5664 * src/c++98/ios_init.cc: Add #pragma GCC diagnostic ignored for
5667 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
5669 * include/bits/random.h (gamma_distribution): Add to the right
5671 (discrete_distribution, piecewise_constant_distribution)
5672 (piecewise_linear_distribution): Create a new doxygen group and
5673 fix the incomplete doxygen comments.
5674 * include/bits/uniform_int_dist.h (uniform_int_distribution):
5675 Add to doxygen group.
5677 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
5679 * include/bits/uses_allocator.h: Add missing @file comment.
5680 * include/bits/regex.tcc: Remove stray doxygen comments.
5681 * include/experimental/memory_resource: Likewise.
5682 * include/std/bit: Tweak doxygen @cond comments.
5683 * include/std/expected: Likewise.
5684 * include/std/numbers: Likewise.
5686 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
5688 * doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
5691 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
5693 * include/bits/move.h: Simplify opening/closing namespace std.
5695 2023-04-28 Jakub Jelinek <jakub@redhat.com>
5698 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export
5699 _ZSt21ios_base_library_initv.
5700 * testsuite/util/testsuite_abi.cc (check_version): Add GLIBCXX_3.4.32
5701 symver and make it the latestp.
5702 * src/c++98/ios_init.cc (ios_base_library_init): New alias.
5703 * acinclude.m4 (libtool_VERSION): Change to 6:32:0.
5704 * include/std/iostream: If init_priority attribute is supported
5705 and _GLIBCXX_SYMVER_GNU, force undefined _ZSt21ios_base_library_initv
5706 symbol into the object.
5707 * configure: Regenerated.
5709 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
5711 * include/bits/mofunc_impl.h: Fix typo in doxygen comment.
5712 * include/std/format: Likewise.
5714 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
5716 * doc/doxygen/user.cfg.in (FORMULA_TRANSPARENT, DOT_FONTNAME)
5717 (DOT_FONTSIZE, DOT_TRANSPARENT): Remove obsolete options.
5719 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
5721 * doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
5723 * include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
5725 * include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
5727 * include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
5729 * include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
5731 * include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
5732 (_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
5733 (_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
5734 (_DEFINE_BINARY_OPERATOR): Likewise.
5736 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
5738 * include/bits/memory_resource.h: Improve doxygen comments.
5739 * include/std/memory_resource: Likewise.
5741 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
5744 * include/bits/basic_string.h: Improve doxygen comments.
5745 * include/bits/cow_string.h: Likewise.
5746 * include/bits/forward_list.h: Likewise.
5747 * include/bits/fs_dir.h: Likewise.
5748 * include/bits/fs_path.h: Likewise.
5749 * include/bits/quoted_string.h: Likewise.
5750 * include/bits/stl_bvector.h: Likewise.
5751 * include/bits/stl_map.h: Likewise.
5752 * include/bits/stl_multimap.h: Likewise.
5753 * include/bits/stl_multiset.h: Likewise.
5754 * include/bits/stl_set.h: Likewise.
5755 * include/bits/stl_vector.h: Likewise.
5756 * include/bits/unordered_map.h: Likewise.
5757 * include/bits/unordered_set.h: Likewise.
5758 * include/std/filesystem: Likewise.
5759 * include/std/iomanip: Likewise.
5761 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
5764 * src/c++11/random.cc (__throw_syserr): New function.
5765 (random_device::_M_init, random_device::_M_init_pretr1): Use new
5766 function for bad tokens.
5767 (random_device::_M_getval): Use new function for read errors.
5768 * testsuite/util/testsuite_random.h (random_device_available):
5769 Change catch handler to use std::system_error.
5771 2023-04-24 Patrick Palka <ppalka@redhat.com>
5773 * include/bits/max_size_type.h (__max_diff_type::operator>>=):
5774 Fix propagation of sign bit.
5775 * testsuite/std/ranges/iota/max_size_type.cc: Avoid using the
5776 non-standard 'signed typedef-name'. Add some compile-time tests
5777 for right-shifting a negative __max_diff_type value by more than
5780 2023-04-19 Patrick Palka <ppalka@redhat.com>
5781 Jonathan Wakely <jwakely@redhat.com>
5784 * include/bits/utility.h (_Nth_type): Conditionally define in
5785 terms of __type_pack_element if available.
5786 * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
5787 additional errors from the new built-in.
5789 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
5792 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
5795 * src/Makefile.am: Move globals_io.cc to here.
5796 * src/Makefile.in: Regenerate.
5797 * src/c++98/Makefile.am: Remove globals_io.cc from here.
5798 * src/c++98/Makefile.in: Regenerate.
5799 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
5800 symbol name and then export with GLIBCXX_3.4.31 symver.
5801 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
5802 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
5804 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
5806 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
5808 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
5810 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
5812 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
5814 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
5816 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
5818 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
5820 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
5823 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
5826 * config/abi/pre/gnu.ver: Fix preprocessor condition.
5828 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
5830 * doc/xml/manual/extensions.xml: Fix example to declare and
5831 qualify std::free, and use NULL instead of 0.
5832 * doc/html/manual/ext_demangling.html: Regenerate.
5833 * libsupc++/cxxabi.h: Adjust doxygen comments.
5835 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
5838 * config/abi/pre/gnu.ver: Fix preprocessor condition.
5840 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
5843 * src/Makefile.am: Move globals_io.cc to here.
5844 * src/Makefile.in: Regenerate.
5845 * src/c++98/Makefile.am: Remove globals_io.cc from here.
5846 * src/c++98/Makefile.in: Regenerate.
5847 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
5848 symbol name and then export with GLIBCXX_3.4.31 symver.
5849 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
5850 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
5852 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
5854 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
5856 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
5858 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
5860 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
5862 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
5864 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
5866 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
5868 2023-04-18 Patrick Palka <ppalka@redhat.com>
5871 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Bump value
5873 * include/std/ranges (range_adaptor_closure): Define for C++23.
5874 * include/std/version (__cpp_lib_ranges): Bump value for
5876 * testsuite/std/ranges/version_c++23.cc: Bump expected value
5877 of __cpp_lib_ranges.
5878 * testsuite/std/ranges/range_adaptor_closure.cc: New test.
5880 2023-04-18 Patrick Palka <ppalka@redhat.com>
5882 * include/bits/ranges_algo.h (__cpp_lib_ranges_contains):
5884 (__cpp_lib_ranges_iota): Likewise.
5885 (__cpp_lib_ranges_find_last): Likewise.
5886 (__cpp_lib_fold): Rename to ...
5887 (__cpp_lib_ranges_fold): ... this.
5888 * include/std/version: As above.
5889 * testsuite/25_algorithms/fold_left/1.cc: Adjust after
5890 renaming __cpp_lib_fold.
5891 * testsuite/std/ranges/version_c++23.cc: Verify values
5892 of the above feature-test macros.
5894 2023-04-18 Patrick Palka <ppalka@redhat.com>
5897 * include/std/ranges (views::_AsConst::operator()): Add
5898 missing const to constant_range test.
5899 * testsuite/std/ranges/adaptors/as_const/1.cc (test02):
5900 Improve formatting. Adjust expected type of v2.
5903 2023-04-14 Patrick Palka <ppalka@redhat.com>
5905 * include/bits/ranges_base.h (const_iterator_t): Define for C++23.
5906 (const_sentinel_t): Likewise.
5907 (range_const_reference_t): Likewise.
5908 (constant_range): Likewise.
5909 (__cust_access::__possibly_const_range): Likewise, replacing ...
5910 (__cust_access::__as_const): ... this.
5911 (__cust_access::_CBegin::operator()): Redefine for C++23 as per P2278R4.
5912 (__cust_access::_CEnd::operator()): Likewise.
5913 (__cust_access::_CRBegin::operator()): Likewise.
5914 (__cust_access::_CREnd::operator()): Likewise.
5915 (__cust_access::_CData::operator()): Likewise.
5916 * include/bits/ranges_util.h (ranges::__detail::__different_from):
5917 Make it an alias of std::__detail::__different_from.
5918 (view_interface::cbegin): Define for C++23.
5919 (view_interface::cend): Likewise.
5920 * include/bits/stl_iterator.h (__detail::__different_from): Define.
5921 (iter_const_reference_t): Define for C++23.
5922 (__detail::__constant_iterator): Likewise.
5923 (__detail::__is_const_iterator): Likewise.
5924 (__detail::__not_a_const_iterator): Likewise.
5925 (__detail::__iter_const_rvalue_reference_t): Likewise.
5926 (__detail::__basic_const_iter_cat):: Likewise.
5927 (const_iterator): Likewise.
5928 (__detail::__const_sentinel): Likewise.
5929 (const_sentinel): Likewise.
5930 (basic_const_iterator): Likewise.
5931 (common_type<basic_const_iterator<_Tp>, _Up>): Likewise.
5932 (common_type<_Up, basic_const_iterator<_Tp>>): Likewise.
5933 (common_type<basic_const_iterator<_Tp>, basic_const_iterator<Up>>):
5935 (make_const_iterator): Define for C++23.
5936 (make_const_sentinel): Likewise.
5937 * include/std/ranges (__cpp_lib_ranges_as_const): Likewise.
5938 (as_const_view): Likewise.
5939 (enable_borrowed_range<as_const_view>): Likewise.
5940 (views::__detail::__is_ref_view): Likewise.
5941 (views::__detail::__can_is_const_view): Likewise.
5942 (views::_AsConst, views::as_const): Likewise.
5943 * include/std/span (span::const_iterator): Likewise.
5944 (span::const_reverse_iterator): Likewise.
5945 (span::cbegin): Likewise.
5946 (span::cend): Likewise.
5947 (span::crbegin): Likewise.
5948 (span::crend): Likewise.
5949 * include/std/version (__cpp_lib_ranges_as_const): Likewise.
5950 * testsuite/std/ranges/adaptors/join.cc (test06): Adjust to
5951 behave independently of C++20 vs C++23.
5952 * testsuite/std/ranges/version_c++23.cc: Verify value of
5953 __cpp_lib_ranges_as_const macro.
5954 * testsuite/24_iterators/const_iterator/1.cc: New test.
5955 * testsuite/std/ranges/adaptors/as_const/1.cc: New test.
5957 2023-04-14 Patrick Palka <ppalka@redhat.com>
5959 * include/bits/ranges_base.h (__cust_access::__as_const)
5960 (__cust_access::_CBegin, __cust::cbegin)
5961 (__cust_access::_CEnd, __cust::cend)
5962 (__cust_access::_CRBegin, __cust::crbegin)
5963 (__cust_access::_CREnd, __cust::crend)
5964 (__cust_access::_CData, __cust::cdata): Move down definitions to
5965 shortly after the definition of input_range.
5967 2023-04-14 Patrick Palka <ppalka@redhat.com>
5969 * include/bits/ranges_algo.h: Include <optional> for C++23.
5970 (__cpp_lib_fold): Define for C++23.
5971 (in_value_result): Likewise.
5972 (__detail::__flipped): Likewise.
5973 (__detail::__indirectly_binary_left_foldable_impl): Likewise.
5974 (__detail::__indirectly_binary_left_foldable): Likewise.
5975 (___detail:__indirectly_binary_right_foldable): Likewise.
5976 (fold_left_with_iter_result): Likewise.
5977 (__fold_left_with_iter_fn, fold_left_with_iter): Likewise.
5978 (__fold_left_fn, fold_left): Likewise.
5979 (__fold_left_first_with_iter_fn, fold_left_first_with_iter):
5981 (__fold_left_first_fn, fold_left_first): Likewise.
5982 (__fold_right_fn, fold_right): Likewise.
5983 (__fold_right_last_fn, fold_right_last): Likewise.
5984 * include/std/version (__cpp_lib_fold): Likewise.
5985 * testsuite/25_algorithms/fold_left/1.cc: New test.
5986 * testsuite/25_algorithms/fold_right/1.cc: New test.
5988 2023-04-14 Jonathan Wakely <jwakely@redhat.com>
5990 * include/std/format (formatter): Add comment to deleted default
5991 constructor of primary template.
5992 (_Checking_scanner): Add static_assert.
5994 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
5996 * doc/xml/manual/using.xml: Document libstdc++exp.a library.
5997 * doc/html/*: Regenerate.
5999 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
6001 * testsuite/17_intro/names.cc [_AIX]: Do not define policy.
6002 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Rename
6003 namespace to avoid clashing with libc struct.
6004 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
6006 * testsuite/23_containers/unordered_map/96088.cc: Skip on AIX.
6007 * testsuite/23_containers/unordered_multimap/96088.cc: Likewise.
6008 * testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
6009 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
6010 * testsuite/experimental/synchronized_value.cc: Require gthreads
6011 and add missing option for pthreads targets.
6013 2023-04-12 Patrick Palka <ppalka@redhat.com>
6015 * include/std/ranges (__cpp_lib_ranges_enumerate): Define
6017 (__detail::__range_with_movable_reference): Likewise.
6018 (enumerate_view): Likewise.
6019 (enumerate_view::_Iterator): Likewise.
6020 (enumerate_view::_Sentinel): Likewise.
6021 (views::__detail::__can_enumerate_view): Likewise.
6022 (views::_Enumerate, views::enumerate): Likewise.
6023 * include/std/version (__cpp_lib_ranges_enumerate): Likewise.
6024 * testsuite/std/ranges/version_c++23.cc: Verify value of
6025 __cpp_lib_ranges_enumerate.
6026 * testsuite/std/ranges/adaptors/enumerate/1.cc: New test.
6028 2023-04-12 Patrick Palka <ppalka@redhat.com>
6030 * include/std/ranges (lazy_split_view::_OuterIter::_OuterIter):
6031 Propagate _M_trailing_empty in the const-converting constructor
6033 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): Correct
6035 * testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test.
6037 2023-04-12 Patrick Palka <ppalka@redhat.com>
6039 * src/c++17/floating_from_chars.cc: Include <algorithm>,
6040 <iterator>, <limits> and <cstdint>.
6042 2023-04-12 Patrick Palka <ppalka@redhat.com>
6045 * include/std/ranges (chunk_by_view::_M_find_next): Generalize
6046 parameter types of the lambda wrapper passed to adjacent_find.
6047 (chunk_by_view::_M_find_prev): Likewise.
6048 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test04, test05):
6051 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
6054 * include/experimental/internet (basic_endpoint::basic_endpoint()):
6055 Ensure that the required union members are active. Only define
6056 as constexpr for C++20 and later.
6057 (basic_endpoint::basic_endpoint(const protocol_type&, port_type)):
6059 * testsuite/experimental/net/internet/endpoint/cons.cc: Only
6060 check constexpr default constructor for C++20 and later.
6061 * testsuite/experimental/net/internet/endpoint/extensible.cc:
6064 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
6066 * src/c++20/tzdata.zi: Import new file from 2023c release.
6068 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
6070 * include/precompiled/stdc++.h (C++17): Don't double-include
6071 <charconv>, once with wrong conditions.
6072 * testsuite/18_support/96817.cc: Require hosted.
6073 * testsuite/18_support/bad_exception/59392.cc: Ditto.
6074 * testsuite/20_util/scoped_allocator/108952.cc: Ditto.
6075 * testsuite/20_util/uses_allocator/lwg3527.cc: Ditto.
6076 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
6079 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
6081 * include/bits/c++config: When __STDC_HOSTED__ is zero,
6082 disable _GLIBCXX_DEBUG and, if it was set, enable
6083 _GLIBCXX_ASSERTIONS.
6084 * testsuite/lib/libstdc++.exp (check_v3_target_debug_mode):
6085 Include <bits/c++config.h> when determining whether debug is
6086 set, in order to inherit the logic from above
6088 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
6090 * testsuite/17_intro/versionconflict.cc: New test.
6091 * include/std/version: Allow disabling the system_header pragma
6092 via _GLIBCXX_TESTING_SYSHDR.
6094 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
6096 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
6097 Synchronize the definition block with...
6098 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory):
6099 ... this one here. Also define the 202202L value, rather than
6100 leaving it up to purely unique_ptr.h, so that the value is
6101 synchronized across all headers.
6102 (__gnu_debug::_Safe_iterator_base): Move into new conditional
6104 * include/std/memory (__cpp_lib_atomic_value_initialization):
6105 Define on freestanding under the same conditions as in
6107 * include/std/version (__cpp_lib_robust_nonmodifying_seq_ops):
6108 Also define on freestanding.
6109 (__cpp_lib_to_chars): Ditto.
6110 (__cpp_lib_gcd): Ditto.
6111 (__cpp_lib_gcd_lcm): Ditto.
6112 (__cpp_lib_raw_memory_algorithms): Ditto.
6113 (__cpp_lib_array_constexpr): Ditto.
6114 (__cpp_lib_nonmember_container_access): Ditto.
6115 (__cpp_lib_clamp): Ditto.
6116 (__cpp_lib_constexpr_char_traits): Ditto.
6117 (__cpp_lib_constexpr_string): Ditto.
6118 (__cpp_lib_sample): Ditto.
6119 (__cpp_lib_lcm): Ditto.
6120 (__cpp_lib_constexpr_iterator): Ditto.
6121 (__cpp_lib_constexpr_char_traits): Ditto.
6122 (__cpp_lib_interpolate): Ditto.
6123 (__cpp_lib_constexpr_utility): Ditto.
6124 (__cpp_lib_shift): Ditto.
6125 (__cpp_lib_ranges): Ditto.
6126 (__cpp_lib_move_iterator_concept): Ditto.
6127 (__cpp_lib_constexpr_numeric): Ditto.
6128 (__cpp_lib_constexpr_functional): Ditto.
6129 (__cpp_lib_constexpr_algorithms): Ditto.
6130 (__cpp_lib_constexpr_tuple): Ditto.
6131 (__cpp_lib_constexpr_memory): Ditto.
6133 2023-04-05 John David Anglin <danglin@gcc.gnu.org>
6135 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Double
6136 timeout factor on hppa*-*-*.
6138 2023-04-05 Jonathan Wakely <jwakely@redhat.com>
6140 * include/bits/regex.h (sub_match::swap): New function.
6141 * testsuite/28_regex/sub_match/lwg3204.cc: New test.
6143 2023-04-04 Jonathan Wakely <jwakely@redhat.com>
6145 * doc/xml/manual/extensions.xml: Remove std::bad_exception from
6147 * doc/html/manual/ext_demangling.html: Regenerate.
6149 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
6151 PR tree-optimization/107087
6152 * include/bits/cow_string.h (basic_string::size()): Add
6153 optimizer hint that _S_empty_rep()._M_length is always zero.
6154 (basic_string::length()): Call size().
6156 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
6159 * include/std/stop_token (_Stop_state_ptr(const stop_source&)):
6160 Add attribute access with access-mode 'none'.
6161 * testsuite/30_threads/stop_token/stop_source/109339.cc: New test.
6163 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
6165 * include/experimental/internet (ip::basic_endpoint::_M_if_v6):
6166 Revert change from member function to data member. Fix for
6167 constant evaluation by detecting which union member is active.
6168 (ip::basic_endpoint::resize): Revert changes to update _M_is_v6
6171 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6174 * testsuite/20_util/optional/monadic/pr109340.cc: Moved to...
6175 * testsuite/20_util/optional/monadic/pr109242.cc: ...here.
6177 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6179 * include/experimental/internet (ip::make_address): Implement
6181 (ip::address_v4::broadcast()): Avoid undefined shift.
6182 (ip::basic_endpoint): Fix member functions for constexpr.
6183 (ip::basic_endpoint::_M_is_v6): Replace member function with
6184 data member, adjust member functions using it.
6185 (ip::basic_endpoint::resize): Update _M_is_v6 based on sockaddr
6187 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
6188 constexpr checks to work in C++14.
6189 * testsuite/experimental/net/internet/address/v4/creation.cc:
6191 * testsuite/experimental/net/internet/endpoint/cons.cc:
6193 * testsuite/experimental/net/internet/network/v4/cons.cc:
6195 * testsuite/experimental/net/internet/network/v4/members.cc:
6197 * testsuite/experimental/net/internet/endpoint/extensible.cc: New test.
6199 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6201 * include/std/expected (expected::value() &): Use const lvalue
6202 for unex member passed to bad_expected_access constructor, as
6205 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6208 * include/std/expected (expected::transform): Use
6209 std::remove_cv_t instead of std::remove_cvref_t.
6210 (expected::transform_error): Likewise.
6211 (expected<cv void, E>::transform): Likewise.
6212 (expected<cv void, E>::transform_error): Likewise.
6213 * include/std/optional (transform): Use std::remove_cv_t.
6214 * testsuite/20_util/optional/monadic/pr109340.cc: New test.
6216 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6218 * include/std/optional (optional): Adjust static assertion to
6219 reject arrays and functions as well as references.
6220 * testsuite/20_util/optional/requirements_neg.cc: New test.
6222 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
6225 * include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use
6226 std::use_facet instead of cached _M_num_get facet.
6227 (istream::operator>>(short&)): Likewise.
6228 (istream::operator>>(int&)): Likewise.
6229 * include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use
6230 std::use_facet instead of cached _M_num_put facet.
6232 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
6234 * include/bits/char_traits.h (char_traits::copy): Return without
6235 using memcpy if n==0.
6236 (char_traits::assign): Likewise for memset.
6238 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
6241 * include/bits/basic_string.h (basic_string::_M_is_local()): Add
6242 hint for compiler that local strings fit in the local buffer.
6244 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
6247 * include/std/chrono (__detail::__get_leap_second_info): Update
6248 expiry date of hardcoded leapseconds list.
6249 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds()):
6251 * src/c++20/tzdata.zi: Import new file from 2023a release.
6252 * testsuite/std/time/time_zone/get_info_local.cc: Only check
6253 transitions for Egypt up to 2014.
6255 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
6257 * include/experimental/bits/simd.h (is_simd_flag_type): New.
6258 (_IsSimdFlagType): New.
6259 (copy_from, copy_to, load ctors): Constrain _Flags using
6262 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
6264 * include/experimental/bits/simd_x86.h (_SimdImplX86): Use
6265 _Base::_S_divides if the optimized _S_divides function is hidden
6266 via the preprocessor.
6268 2023-03-27 Jakub Jelinek <jakub@redhat.com>
6270 * testsuite/experimental/net/timer/waitable/dest.cc: Avoid -Wformat
6271 warning if size_t is not unsigned long.
6273 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6275 * include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)):
6276 Add overload, as per LWG 3893.
6277 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
6278 Check assignment from nullptr.
6280 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6282 * include/std/format (formatter<const charT[N], charT>): Do not
6283 define partial speclialization, as per LWG 3833.
6284 * testsuite/std/format/formatter/requirements.cc: Check it.
6286 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6288 * include/std/utility (__cpp_lib_constexpr_algorithms): Define,
6290 * testsuite/20_util/exchange/constexpr.cc: Check for it.
6292 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6294 * include/std/version (__cpp_lib_format): Define.
6295 * testsuite/std/format/functions/format.cc: Check it.
6297 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6299 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
6300 Pass rvalues to the callback, as now allowed by LWG 3645.
6301 Enforce preconditions on the return value.
6302 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
6305 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6307 * include/std/format: Add a comment noting that the resolution
6308 of LWG 3720 has been applied..
6310 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6312 * include/bits/regex.h (match_results): Add allocator-extended
6313 copy and move constructors, as per LWG 2195.
6314 * testsuite/28_regex/match_results/ctors/char/alloc.cc: New test.
6316 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6318 * include/bits/stream_iterator.h (istream_iterator): Add
6319 constexpr to copy constructor, as per LWG 3600.
6320 * testsuite/24_iterators/istream_iterator/cons/constexpr.cc:
6321 Check copy construction.
6323 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
6325 * include/experimental/bits/simd_x86.h
6326 (_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
6327 with __RECIPROCAL_MATH__.
6329 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
6331 * include/experimental/bits/simd_detail.h: Don't define
6332 _GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang.
6333 * include/experimental/bits/simd_x86.h (_S_divides): Remove
6334 check for __clang__.
6336 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
6338 * include/experimental/bits/simd_detail.h: Don't declare the
6339 simd API as constexpr with Clang.
6340 * include/experimental/bits/simd_x86.h (__movm): New.
6341 (_S_blend_avx512): Resolve FIXME. Implement blend using __movm
6343 (_SimdImplX86::_S_masked_unary): Clang does not implement the
6344 same builtins. Implement the function using __movm, ?:, and -
6345 operators on vector_size types instead.
6347 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
6349 * testsuite/experimental/simd/tests/operators.cc: Clang doesn't
6350 define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
6352 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
6354 * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix
6357 2023-03-20 Marek Polacek <polacek@redhat.com>
6360 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust dg-error.
6361 * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
6362 * testsuite/23_containers/span/explicit.cc: Likewise.
6364 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
6367 * include/std/expected (expected<void>::expected(in_place_t)):
6368 Remove template-head.
6370 2023-03-18 Jonathan Wakely <jwakely@redhat.com>
6373 * testsuite/18_support/coroutines/hash.cc: Use const object
6376 2023-03-17 Jonathan Wakely <jwakely@redhat.com>
6379 * include/std/coroutine (hash<>::operator()): Add const.
6380 * testsuite/18_support/coroutines/hash.cc: New test.
6382 2023-03-14 Patrick Palka <ppalka@redhat.com>
6385 * include/std/ranges (repeat_view): Remove redundant parentheses
6387 (repeat_view::_Iterator): Correct the requires-clause.
6389 2023-03-14 Patrick Palka <ppalka@redhat.com>
6391 * include/bits/stl_iterator.h (move_iterator::_S_iter_concept):
6393 (__cpp_lib_move_iterator_concept): Define for C++20.
6394 (move_iterator::iterator_concept): Strengthen as per P2520R0.
6395 * include/std/version (__cpp_lib_move_iterator_concept): Define
6397 * testsuite/24_iterators/move_iterator/p2520r0.cc: New test.
6399 2023-03-14 Patrick Palka <ppalka@redhat.com>
6401 * include/bits/ranges_util.h (view_interface::empty): Add
6402 preferred overloads that use ranges::size when the range is
6403 sized as per LWG 3715.
6404 * testsuite/std/ranges/adaptors/lwg3715.cc: New test.
6406 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
6408 * include/bits/chrono.h (__is_duration_v, __is_time_point_v):
6409 Only define for C++17 and later.
6411 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
6413 * src/Makefile.am: Add comment about linker script fragments.
6414 * src/Makefile.in: Regenerate.
6416 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
6419 * include/bits/mask_array.h (mask_array): Add assertions to
6420 assignment operators.
6421 * include/std/valarray (valarray::operator[](valarray<bool>)):
6423 * testsuite/26_numerics/valarray/mask-1_neg.cc: New test.
6424 * testsuite/26_numerics/valarray/mask-2_neg.cc: New test.
6425 * testsuite/26_numerics/valarray/mask-3_neg.cc: New test.
6426 * testsuite/26_numerics/valarray/mask-4_neg.cc: New test.
6427 * testsuite/26_numerics/valarray/mask-5_neg.cc: New test.
6428 * testsuite/26_numerics/valarray/mask-6_neg.cc: New test.
6429 * testsuite/26_numerics/valarray/mask-7_neg.cc: New test.
6430 * testsuite/26_numerics/valarray/mask-8_neg.cc: New test.
6431 * testsuite/26_numerics/valarray/mask.cc: New test.
6433 2023-03-13 Jakub Jelinek <jakub@redhat.com>
6435 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
6436 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
6438 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
6440 * doc/Makefile.am: Add comment referring to documentation.
6441 * doc/Makefile.in: Regenerate.
6443 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
6445 * doc/html/*: Regenerate.
6447 2023-03-13 Jonny Grant <jg@jguk.org>
6449 * doc/xml/faq.xml: Update copyright year.
6451 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
6453 * include/bits/allocator.h: Fix typo in comment.
6455 2023-03-12 Jakub Jelinek <jakub@redhat.com>
6457 * config/abi/pre/gnu.ver (CXXABI_1.3.14): Also export __bf16 tinfos
6458 if it isn't mangled as DF16b but u6__bf16.
6460 2023-03-12 Gerald Pfeifer <gerald@pfeifer.com>
6462 * doc/xml/manual/documentation_hacking.xml: Move www.graphviz.org
6464 * doc/html/manual/documentation_hacking.html: Regenerate.
6466 2023-03-10 Jonathan Wakely <jwakely@redhat.com>
6469 * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
6470 Remove self-recursion in __init__. Add missing _supports.
6471 * testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
6474 2023-03-09 Patrick Palka <ppalka@redhat.com>
6476 * include/std/ranges
6477 (cartesian_product_view::_Iterator::_Iterator): Remove
6478 constraint on default constructor as per LWG 3849.
6479 (cartesian_product_view::_Iterator::_M_prev): Adjust position
6480 of _Nm > 0 test as per LWG 3820.
6481 (cartesian_product_view::_Iterator::_M_advance): Perform bounds
6482 checking only on sized cartesian products.
6483 * testsuite/std/ranges/cartesian_product/1.cc (test08): New test.
6485 2023-03-09 Patrick Palka <ppalka@redhat.com>
6488 * include/std/ranges (chunk_by_view::_M_pred): Remove DMI as per
6490 (repeat_view::_M_pred): Likewise.
6491 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test03): New test.
6492 * testsuite/std/ranges/repeat/1.cc (test05): New test.
6494 2023-03-09 Patrick Palka <ppalka@redhat.com>
6497 * include/std/ranges (__detail::__can_single_view): New concept.
6498 (_Single::operator()): Constrain it. Move [[nodiscard]] to the
6499 end of the function declarator.
6500 (__detail::__can_iota_view): New concept.
6501 (_Iota::operator()): Constrain it. Move [[nodiscard]] to the
6502 end of the function declarator.
6503 (__detail::__can_istream_view): New concept.
6504 (_Istream::operator()): Constrain it. Move [[nodiscard]] to the
6505 end of the function declarator.
6506 * testsuite/std/ranges/iota/iota_view.cc (test07): New test.
6507 * testsuite/std/ranges/istream_view.cc (test08): New test.
6508 * testsuite/std/ranges/single_view.cc (test07): New test.
6510 2023-03-09 Patrick Palka <ppalka@redhat.com>
6513 * include/std/ranges (cartesian_product_view::end): When
6514 building the tuple of iterators, avoid calling ranges::begin on
6515 the first range if __empty_tail is false.
6516 * testsuite/std/ranges/cartesian_product/1.cc (test07): New test.
6518 2023-03-09 Jonathan Wakely <jwakely@redhat.com>
6521 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Fix incorrect
6524 2023-03-07 Jakub Jelinek <jakub@redhat.com>
6526 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
6527 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
6528 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
6529 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
6530 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
6532 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
6535 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Adjust patterns to
6536 not match symbols in namespace std::__gnu_cxx11_ieee128.
6537 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add patterns for
6538 std::__gnu_cxx11_ieee128::money_{get,put}.
6540 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
6542 * libsupc++/eh_personality.cc: Fix spelling in comment.
6544 2023-03-03 Alexandre Oliva <oliva@adacore.com>
6546 * testsuite/30_threads/async/async.cc (test04): Initialize
6547 steady_start, renamed from steady_begin, next to slow_start.
6548 Increase tolerance for final wait.
6550 2023-03-03 Alexandre Oliva <oliva@adacore.com>
6552 * testsuite/libstdc++-prettyprinters/80276.cc: Add
6553 std::string to debug info.
6554 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
6556 2023-03-03 Alexandre Oliva <oliva@adacore.com>
6561 * include/bits/std_thread.h (thread::_M_thread_deps): New
6562 static implicitly-inline member function.
6563 (std::thread template ctor): Pass it to _M_start_thread.
6564 * src/c++11/thread.cc (thread::_M_start_thread): Name depend
6565 parameter, force it live on entry.
6567 2023-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6569 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
6570 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
6572 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
6573 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
6576 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
6578 * include/bits/cow_string.h: Fix typo in comment.
6580 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
6582 * src/c++20/tzdb.cc (chrono::tzdb::current_zone()) Use "UTC" if
6583 current time zone cannot be determined.
6584 * testsuite/std/time/tzdb/1.cc: Remove conditions based on
6585 HAVE_TZDB macro and test all members unconditionally.
6587 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
6590 * include/bits/uses_allocator_args.h
6591 (uses_allocator_construction_args): Implement LWG 3527.
6592 * testsuite/20_util/pair/astuple/get-2.cc: New test.
6593 * testsuite/20_util/scoped_allocator/108952.cc: New test.
6594 * testsuite/20_util/uses_allocator/lwg3527.cc: New test.
6596 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
6599 * include/bits/stl_algobase.h (__copy_move<false, false, RA>)
6600 Add __assign_one static member function.
6601 (__copy_move<true, false, RA>): Likewise.
6602 (__copy_move<IsMove, true, RA>): Do not use memmove for a single
6604 (__copy_move_backward<IsMove, true, RA>): Likewise.
6605 * testsuite/25_algorithms/copy/108846.cc: New test.
6606 * testsuite/25_algorithms/copy_backward/108846.cc: New test.
6607 * testsuite/25_algorithms/copy_n/108846.cc: New test.
6608 * testsuite/25_algorithms/move/108846.cc: New test.
6609 * testsuite/25_algorithms/move_backward/108846.cc: New test.
6611 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
6613 * src/c++11/codecvt.cc: Add [[likely]] and [[unlikely]]
6616 2023-02-27 Jonathan Wakely <jwakely@redhat.com>
6618 * include/bits/basic_ios.h (basic_ios::_M_setstate): Add
6620 * include/bits/basic_string.h (resize_and_overwrite): Add
6623 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
6625 * include/experimental/bits/simd.h: Line breaks and indenting
6626 fixed to follow the libstdc++ standard.
6627 * include/experimental/bits/simd_builtin.h: Likewise.
6628 * include/experimental/bits/simd_fixed_size.h: Likewise.
6629 * include/experimental/bits/simd_neon.h: Likewise.
6630 * include/experimental/bits/simd_ppc.h: Likewise.
6631 * include/experimental/bits/simd_scalar.h: Likewise.
6632 * include/experimental/bits/simd_x86.h: Likewise.
6634 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
6637 * include/experimental/bits/simd_fixed_size.h
6638 (_SimdImplFixedSize::_S_broadcast): Replace inline with
6639 _GLIBCXX_SIMD_INTRINSIC.
6640 (_SimdImplFixedSize::_S_generate): Likewise.
6641 (_SimdImplFixedSize::_S_load): Likewise.
6642 (_SimdImplFixedSize::_S_masked_load): Likewise.
6643 (_SimdImplFixedSize::_S_store): Likewise.
6644 (_SimdImplFixedSize::_S_masked_store): Likewise.
6645 (_SimdImplFixedSize::_S_min): Likewise.
6646 (_SimdImplFixedSize::_S_max): Likewise.
6647 (_SimdImplFixedSize::_S_complement): Likewise.
6648 (_SimdImplFixedSize::_S_unary_minus): Likewise.
6649 (_SimdImplFixedSize::_S_plus): Likewise.
6650 (_SimdImplFixedSize::_S_minus): Likewise.
6651 (_SimdImplFixedSize::_S_multiplies): Likewise.
6652 (_SimdImplFixedSize::_S_divides): Likewise.
6653 (_SimdImplFixedSize::_S_modulus): Likewise.
6654 (_SimdImplFixedSize::_S_bit_and): Likewise.
6655 (_SimdImplFixedSize::_S_bit_or): Likewise.
6656 (_SimdImplFixedSize::_S_bit_xor): Likewise.
6657 (_SimdImplFixedSize::_S_bit_shift_left): Likewise.
6658 (_SimdImplFixedSize::_S_bit_shift_right): Likewise.
6659 (_SimdImplFixedSize::_S_remquo): Add inline keyword (to be
6660 explicit about not always-inline, yet).
6661 (_SimdImplFixedSize::_S_isinf): Likewise.
6662 (_SimdImplFixedSize::_S_isfinite): Likewise.
6663 (_SimdImplFixedSize::_S_isnan): Likewise.
6664 (_SimdImplFixedSize::_S_isnormal): Likewise.
6665 (_SimdImplFixedSize::_S_signbit): Likewise.
6667 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
6670 * include/experimental/bits/simd_builtin.h
6671 (_SimdImplBuiltin::_S_masked_unary): More efficient
6672 implementation of masked inc-/decrement for integers and floats
6674 * include/experimental/bits/simd_x86.h
6675 (_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract
6676 builtins for masked inc-/decrement.
6678 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
6680 * include/experimental/executor (executor): Constrain template
6683 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
6685 * include/experimental/internet (basic_endpoint): Add missing
6686 constexpr to comparison operators.
6687 * testsuite/experimental/net/internet/endpoint/cons.cc: New test.
6689 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
6691 * include/experimental/internet (network_v4::netmask()): Avoid
6693 (network_v4::broadcast()): Optimize and fix for targets with
6694 uint_least32_t wider than 32 bits.
6695 (network_v4::to_string(const Allocator&)): Fix for custom
6696 allocators and optimize using to_chars.
6697 (operator==(const network_v4&, const network_v4&)): Add missing
6699 (operator==(const network_v6&, const network_v6&)): Likewise.
6700 * testsuite/experimental/net/internet/network/v4/cons.cc: New test.
6701 * testsuite/experimental/net/internet/network/v4/members.cc: New test.
6703 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
6705 * include/experimental/internet (address_4(const bytes_type&)):
6706 Use __builtin_bit_cast if available, otherwise convert to
6708 (address_v4::to_bytes()): Likewise, but convert from network
6710 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
6711 incorrect tests. Check for constexpr too.
6712 * testsuite/experimental/net/internet/address/v4/creation.cc:
6714 * testsuite/experimental/net/internet/address/v4/members.cc:
6715 Check that bytes_type is a standard-layout type.
6717 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
6719 * include/experimental/internet (address_v4::to_string):
6721 * testsuite/experimental/net/internet/address/v4/members.cc:
6722 Check more addresses.
6724 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
6726 * include/ext/aligned_buffer.h (__aligned_buffer): Add
6729 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
6731 * testsuite/std/format/arguments/lwg3810.cc: Move dg-options
6734 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
6736 * testsuite/experimental/simd/tests/reductions.cc: Introduce
6737 max_distance as the type-dependent max error.
6739 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
6741 * include/experimental/bits/simd_builtin.h (_S_set): Compare as
6742 int. The actual range of these indexes is very small.
6744 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
6746 * include/experimental/bits/simd_x86.h (_S_bit_shift_left)
6747 (_S_bit_shift_right): Declare constexpr. The implementation was
6748 already expecting constexpr evaluation.
6750 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
6753 * include/experimental/bits/simd_detail.h
6754 (_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for
6757 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
6760 * include/experimental/bits/simd.h (__vector_broadcast):
6761 Implement via __vector_broadcast_impl instead of
6762 __call_with_n_evaluations + 2 lambdas.
6763 (__vector_broadcast_impl): New.
6765 2023-02-22 Alexandre Oliva <oliva@adacore.com>
6767 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex):
6768 Avoid destruction of the mutex pool.
6770 2023-02-22 Alexandre Oliva <oliva@adacore.com>
6772 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: xfail
6774 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
6777 2023-02-22 Alexandre Oliva <oliva@adacore.com>
6779 * testsuite/17_intro/names.cc: Undef func on vxworks >= 7 in
6782 2023-02-20 Andreas Schwab <schwab@linux-m68k.org>
6784 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
6786 2023-02-20 Matthias Kretz <m.kretz@gsi.de>
6788 * include/experimental/bits/simd.h (__extract_part, split):
6789 Use reserved name for template parameter.
6791 2023-02-20 Andreas Schwab <schwab@suse.de>
6793 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
6795 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
6797 * doc/xml/faq.xml: Switch two links to www.open-std.org to https.
6798 * doc/html/faq.html: Regenerate.
6800 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
6802 * include/experimental/bits/simd_math.h (__hypot): Bitcasting
6803 between scalars requires the __bit_cast helper function instead
6806 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
6808 * include/experimental/bits/simd_x86.h
6809 (_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
6810 (_SimdImplX86::_S_less_equal): Do not call
6811 __builtin_is_constant_evaluated in constexpr-if.
6813 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
6815 * testsuite/experimental/simd/tests/bits/verify.h
6816 (verify::verify): Use %zx for size_t in format string.
6818 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
6820 * testsuite/experimental/simd/generate_makefile.sh: Generate and
6821 pre-compile pch.h, which includes all headers that do not depend
6822 on command-line macros.
6823 * testsuite/experimental/simd/tests/bits/main.h: New file.
6824 (iterate_abis, main): Moved from verify.h.
6825 * testsuite/experimental/simd/tests/bits/verify.h
6826 (iterate_abis, main): Moved to main.h.
6827 * testsuite/experimental/simd/tests/bits/conversions.h: Add
6829 (genHalfBits): Simplify.
6830 * testsuite/experimental/simd/tests/bits/make_vec.h: Add include
6832 (make_alternating_mask): Moved from mask_loadstore.
6833 * testsuite/experimental/simd/tests/bits/mathreference.h: Add
6835 * testsuite/experimental/simd/tests/bits/test_values.h: Ditto.
6836 * testsuite/experimental/simd/tests/mask_loadstore.cc
6837 (make_mask, make_alternating_mask): Removed.
6838 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
6839 * testsuite/experimental/simd/tests/operators.cc (genHalfBits):
6841 * testsuite/experimental/simd/tests/abs.cc: Only include
6844 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
6845 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
6846 * testsuite/experimental/simd/tests/casts.cc: Ditto.
6847 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto.
6848 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
6849 * testsuite/experimental/simd/tests/generator.cc: Ditto.
6850 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
6851 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
6852 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
6853 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
6854 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
6855 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
6856 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
6857 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
6858 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
6859 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
6860 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
6861 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
6862 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
6863 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
6864 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
6865 * testsuite/experimental/simd/tests/simd.cc: Ditto.
6866 * testsuite/experimental/simd/tests/sincos.cc: Ditto.
6867 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
6868 * testsuite/experimental/simd/tests/splits.cc: Ditto.
6869 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
6870 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
6871 * testsuite/experimental/simd/tests/where.cc: Ditto.
6873 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
6875 * testsuite/experimental/simd/README.md: Document the timeout
6876 and timeout-factor directives. Minor typo fixed.
6878 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
6881 * include/experimental/bits/simd_detail.h: Define
6882 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
6883 * include/experimental/bits/simd.h: Annotate lambdas with
6884 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
6885 * include/experimental/bits/simd_builtin.h: Ditto.
6886 * include/experimental/bits/simd_converter.h: Ditto.
6887 * include/experimental/bits/simd_fixed_size.h: Ditto.
6888 * include/experimental/bits/simd_math.h: Ditto.
6889 * include/experimental/bits/simd_neon.h: Ditto.
6890 * include/experimental/bits/simd_x86.h: Ditto.
6892 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
6894 * include/experimental/bits/simd.h
6895 (_SimdWrapper::_M_is_constprop_none_of)
6896 (_SimdWrapper::_M_is_constprop_all_of): Return false unless the
6897 computed result still satisfies __builtin_constant_p.
6899 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6901 * testsuite/std/format/arguments/lwg3810.cc: Replace UTF-8
6904 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6906 * include/Makefile.am: Add new header.
6907 * include/Makefile.in: Regenerate.
6908 * include/experimental/synchronized_value: New file.
6909 * testsuite/experimental/synchronized_value.cc: New test.
6911 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6913 * include/experimental/optional: Fix header name in comment.
6915 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6917 * include/std/format (__format::_Arg_store): New class template.
6918 (basic_format_args): Remove nested type _Store and add deduction
6919 guide from _Arg_store.
6920 (basic_format_arg, make_format_args): Adjust.
6921 * testsuite/std/format/arguments/lwg3810.cc: New test.
6923 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6925 * include/bits/stl_pair.h (pair) [C++20]: Add non-dangling
6926 constraints to constructors and add deleted overloads for the
6927 dangling cases, as per P2255R2.
6928 (pair) [!C++20 && _GLIBCXX_DEBUG]: Add static assertions to
6929 make dangling cases ill-formed.
6930 * testsuite/20_util/pair/dangling_ref.cc: New test.
6932 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6934 * testsuite/17_intro/names_pstl.cc: Require et tbb_backend.
6936 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6938 * include/ext/throw_allocator.h: Use reserved names for
6941 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6943 * testsuite/17_intro/names_pstl.cc: Add space after effective
6946 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6948 * include/pstl/algorithm_fwd.h (__pattern_search_n)
6949 (__brick_unique_copy, __brick_adjacent_find)
6950 (__brick_generate_n, __pattern_generate_n): Use reserved names
6952 * include/pstl/algorithm_impl.h (__brick_unique_copy)
6953 (__pattern_reverse, __brick_generate_n): Likewise.
6954 * include/pstl/execution_impl.h (__prefer_unsequenced_tag)
6955 (__prefer_parallel_tag): Likewise.
6956 * include/pstl/glue_algorithm_impl.h (transform): Likewise.
6957 * include/pstl/glue_numeric_defs.h (adjacent_difference):
6959 * include/pstl/numeric_impl.h (__brick_adjacent_difference):
6961 * include/pstl/parallel_backend_tbb.h (__merge_func): Likewise.
6962 * include/pstl/unseq_backend_simd.h (_Combiner)
6963 (__simd_min_element, __simd_minmax_element): Likewise.
6964 * testsuite/17_intro/names_pstl.cc: New test.
6966 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6968 * include/bits/fs_ops.h (create_directory): Use reserved name
6970 * include/bits/ranges_algo.h (__contains_subrange_fn):
6972 * include/bits/regex_automaton.h (_State_base::_M_print):
6974 * include/bits/regex_automaton.tcc(_State_base::_M_print):
6976 * include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise.
6977 * include/experimental/bits/fs_ops.h (create_directory):
6979 * include/std/mutex (timed_mutex::_M_clocklock): Likewise.
6980 (recursive_timed_mutex:_M_clocklock): Likewise.
6981 * include/std/tuple (basic_common_reference): Likewise.
6982 * libsupc++/cxxabi_init_exception.h
6983 (__cxa_init_primary_exception): Likewise.
6984 * testsuite/17_intro/names.cc: Add checks.
6986 2023-02-14 Gerald Pfeifer <gerald@pfeifer.com>
6988 * doc/xml/manual/status_cxx2017.xml: Update an open-std.org link
6989 to www.open-std.org and https.
6990 * doc/html/manual/status.html: Regenerate.
6992 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
6995 * include/std/atomic (atomic_flag_wait): Add.
6996 (atomic_flag_wait_explicit): Add.
6997 (atomic_flag_notify): Add.
6998 (atomic_flag_notify_explicit): Add.
6999 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc:
7000 Add test case to cover missing atomic_flag free functions.
7002 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
7005 * include/std/atomic (atomic_flag_test): Add.
7006 (atomic_flag_test_explicit): Add.
7007 * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
7008 test case to cover missing atomic_flag free functions.
7009 * testsuite/29_atomics/atomic_flag/test/implicit.cc:
7012 2023-02-13 Gerald Pfeifer <gerald@pfeifer.com>
7014 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust
7015 "The Component Object Model" reference.
7016 * doc/html/manual/policy_data_structures.html: Regenerate.
7018 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
7020 * doc/xml/manual/containers.xml: Tweak a link to N1780
7022 * doc/html/manual/associative.html: Regenerate.
7024 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
7026 * doc/xml/manual/ctype.xml: Change www.unix.org to unix.org.
7027 * doc/html/manual/facets.html: Regenerate.
7029 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
7031 * doc/xml/manual/policy_data_structures_biblio.xml: Update
7032 link to "Worst-case efficient priority queues".
7033 * doc/html/manual/policy_data_structures.html: Regenerate.
7035 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
7037 * doc/xml/manual/using.xml: Document newly-freestanding
7038 headers and the effect of the -ffreestanding flag.
7039 * doc/xml/manual/status_cxx2023.xml: Document P1642R11 as
7041 * doc/xml/manual/configure.xml: Document that hosted installs
7042 respect __STDC_HOSTED__.
7043 * doc/xml/manual/test.xml: Document how to run tests in
7045 * doc/html/*: Regenerate.
7047 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
7049 * include/bits/ranges_algo.h (__find_last_fn): Rename T to _Tp.
7050 (__find_last_if_fn): Likewise.
7052 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
7054 * include/std/type_traits: Add diagnostic pragmas around
7055 references to deprecated std::aligned_storage and
7056 std::aligned_union traits.
7057 * testsuite/20_util/aligned_storage/requirements/alias_decl.cc:
7058 Add dg-warning for et c++23.
7059 * testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc:
7061 * testsuite/20_util/aligned_storage/value.cc: Likewise.
7062 * testsuite/20_util/aligned_union/1.cc: Likewise.
7063 * testsuite/20_util/aligned_union/requirements/alias_decl.cc:
7066 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
7068 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
7069 * include/bits/c++config (_GLIBCXX23_DEPRECATED)
7070 (_GLIBCXX23_DEPRECATED_SUGGEST): New macros.
7071 * include/std/type_traits (aligned_storage, aligned_union)
7072 (aligned_storage_t, aligned_union_t): Deprecate for C++23.
7073 * testsuite/20_util/aligned_storage/deprecated-2b.cc: New test.
7074 * testsuite/20_util/aligned_union/deprecated-2b.cc: New test.
7076 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
7078 * doc/doxygen/user.cfg.in (PREDEFINED): Update macros.
7079 * include/bits/c++config (_GLIBCXX20_DEPRECATED): Make
7080 consistent with other 'deprecated' macros.
7081 * include/std/type_traits (is_pod, is_pod_v): Use
7082 _GLIBCXX20_DEPRECATED_SUGGEST instead.
7084 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
7086 * Makefile.am [!_GLIBCXX_HOSTED]: Enable src/ subdirectory.
7087 * Makefile.in: Regenerate.
7088 * src/Makefile.am [!_GLIBCXX_HOSTED]: Omit compatibility files.
7089 There's no history to be compatible with.
7090 * src/c++11/Makefile.am [!_GLIBCXX_HOSTED]: Omit hosted-only
7091 source files from the build.
7092 * src/c++17/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
7093 * src/c++20/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
7094 * src/c++98/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
7095 * src/Makefile.in: Regenerate.
7096 * src/c++11/Makefile.in: Regenerate.
7097 * src/c++17/Makefile.in: Regenerate.
7098 * src/c++20/Makefile.in: Regenerate.
7099 * src/c++98/Makefile.in: Regenerate.
7101 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
7103 * src/Makefile.am [GLIBCXX_HOSTED] (SUBDIRS): Do not add
7104 filesystem, libbacktrace and experimental.
7105 * src/Makefile.in: Regenerate.
7107 2023-02-04 Hans-Peter Nilsson <hp@axis.com>
7110 * include/pstl/unseq_backend_simd.h (__simd_or): Use __INT32_TYPE__
7113 2023-02-04 Gerald Pfeifer <gerald@pfeifer.com>
7115 * doc/xml/manual/documentation_hacking.xml: Adjust link to pdftex.
7116 * doc/html/manual/documentation_hacking.html: Regenerate.
7118 2023-02-04 François Dumont <fdumont@gcc.gnu.org>
7120 * include/bits/basic_string.h (operator=(basic_string&&)): Transfer move-to
7121 storage to the move-from instance when allocators are equal.
7122 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc (test04):
7125 2023-02-03 Samuel Thibault <samuel.thibault@gnu.org>
7127 * config/os/gnu-linux/os_defines.h [!__linux__]
7128 (_GLIBCXX_NATIVE_THREAD_ID, _GLIBCXX_GTHREAD_USE_WEAK): Do not define.
7130 2023-02-03 Patrick Palka <ppalka@redhat.com>
7132 * include/bits/ranges_algo.h (__find_last_fn, find_last):
7134 (__find_last_if_fn, find_last_if): Define.
7135 (__find_last_if_not_fn, find_last_if_not): Define.
7136 * testsuite/25_algorithms/find_last/1.cc: New test.
7137 * testsuite/25_algorithms/find_last_if/1.cc: New test.
7138 * testsuite/25_algorithms/find_last_if_not/1.cc: New test.
7140 2023-02-03 Patrick Palka <ppalka@redhat.com>
7142 * include/bits/ranges_algo.h (out_value_result): Define.
7143 (iota_result): Define.
7144 (__iota_fn, iota): Define.
7145 * testsuite/25_algorithms/iota/1.cc: New test.
7147 2023-02-03 Patrick Palka <ppalka@redhat.com>
7149 * include/bits/ranges_algo.h (__contains_fn, contains): Define.
7150 (__contains_subrange_fn, contains_subrange): Define.
7151 * testsuite/25_algorithms/contains/1.cc: New test.
7152 * testsuite/25_algorithms/contains_subrange/1.cc: New test.
7154 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
7156 * doc/xml/manual/abi.xml: Tweak link to ABIcheck project.
7157 * doc/html/manual/abi.html: Regenerate.
7159 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
7161 * src/filesystem/ops-common.h [AVR] (__unsupported): Always use
7162 errc::function_not_supported instead of errc::not_supported.
7164 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
7166 * include/std/sstream (basic_stringbuf::view): Define for old
7168 (basic_istringstream::view, basic_0stringstream::view)
7169 (basic_stringstream::view): Likewise.
7170 * testsuite/27_io/basic_istringstream/view/char/1.cc: Remove
7171 { dg-require-effective-target cxx11_abi }.
7172 * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
7174 * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
7175 * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
7177 * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
7178 * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
7179 * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
7180 * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
7183 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
7186 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export shared_ptr
7187 conversion operators for directory iterator comparisons with
7188 std::default_sentinel_t.
7189 * include/bits/fs_path.h (path::path(string_view, _Type))
7190 (path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
7192 * src/c++17/fs_path.cc: ... here.
7193 * testsuite/27_io/filesystem/path/108636.cc: New test.
7195 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
7197 * include/std/variant (variant::operator=): Implement resolution
7199 * testsuite/20_util/variant/lwg3585.cc: New test.
7201 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
7203 * doc/xml/manual/using_exceptions.xml: Update a www.open-std.org
7205 * doc/html/manual/using_exceptions.html: Regenerate.
7207 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
7209 * doc/xml/manual/debug.xml: Fix link to online GDB manual.
7210 * doc/html/manual/debug.html: Regenerate.
7212 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
7214 * src/c++11/random.cc (random_device::_M_fini): Do not try to
7215 close the file handle if the target doesn't support the
7216 /dev/random and /dev/urandom files.
7218 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
7220 * config/os/generic/error_constants.h (errc::value_too_large)
7222 * src/c++11/system_error.cc
7223 (system_category::default_error_condition) [__AVR__]: Only match
7224 recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
7225 * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
7226 for ENOENT etc. in switch.
7227 (fs::remove_all) [__AVR__]: Likewise.
7228 * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
7231 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
7233 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR) [avr-*-*, msp430-*-*]: Set
7235 * configure: Regenerate.
7237 2023-02-01 Hans-Peter Nilsson <hp@axis.com>
7240 * testsuite/std/time/hh_mm_ss/1.cc (size): Add empty
7241 struct at end of S0.
7243 2023-01-30 Gerald Pfeifer <gerald@pfeifer.com>
7245 * doc/xml/manual/shared_ptr.xml: Move links from both
7246 http://open-std.org and http://www.open-std.org to
7247 https://www.open-std.org.
7248 * doc/html/manual/memory.html: Regenerate.
7250 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7252 * doc/xml/manual/appendix_contributing.xml: Adjust link to
7253 ISO C++ standard at ANSI.
7254 Move link to www.open-std.org to https.
7255 * doc/html/manual/appendix_contributing.html: Regenerate.
7257 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7259 * doc/xml/manual/documentation_hacking.xml: Move sourceforge.net
7261 * doc/html/manual/documentation_hacking.html: Regenerate.
7263 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7265 * doc/xml/manual/abi.xml: Update www.open-std.org link to https.
7266 * doc/html/manual/abi.html: Regenerate.
7268 2023-01-27 Jakub Jelinek <jakub@redhat.com>
7271 * testsuite/17_intro/names.cc (__unused): For linux or GNU hurd
7272 include features.h if present and then check __GLIBC__ and
7273 __GLIBC_MINOR__ macros for glibc prior to 2.19, instead of testing
7274 __GLIBC_PREREQ which isn't defined yet.
7276 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
7278 * src/c++20/tzdb.cc (tzdata_stream): Use constant instead of
7281 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
7284 * testsuite/23_containers/map/modifiers/108554.cc: Use dg-bogus.
7286 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
7288 * src/c++20/tzdb.cc (operator>>(istream&, ZoneInfo&)): Allow
7289 rules named "+" for compatibility with older tzdata.zi files.
7291 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
7294 * include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add
7296 (_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull
7298 * testsuite/23_containers/map/modifiers/108554.cc: New test.
7300 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
7303 * src/c++20/tzdb.cc (current_zone): Look for TIMEZONE or ZONE in
7304 /etc/sysconfig/clock, not DEFAULT_TIMEZONE.
7306 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
7308 * doc/xml/manual/intro.xml: Update links to www.open-std.org to
7310 * doc/html/manual/bugs.html: Regenerate.
7312 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
7315 * src/c++20/tzdb.cc (current_zone): Look for DEFAULT_TIMEZONE in
7316 /etc/sysconfig/clock.
7318 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
7321 * include/bits/ranges_base.h: Include <bits/stl_iterator.h> for
7322 std::make_reverse_iterator.
7323 * include/std/tuple: Include <bits/ranges_util.h> for subrange.
7324 (make_from_tuple): Add static assertion from P2255 to diagnose
7325 dangling references.
7326 * testsuite/20_util/tuple/make_from_tuple/dangling_ref.cc: New test.
7327 * testsuite/20_util/tuple/make_from_tuple/tuple_like.cc: New test.
7329 2023-01-23 François Dumont <fdumont@gcc.gnu.org>
7331 * include/debug/safe_iterator.h (_Safe_iterator<>::_Unchecked): New.
7332 (_Safe_iterator(const _Safe_iterator&, _Unchecked)): New.
7333 (_Safe_iterator::operator++(int)): Use latter.
7334 (_Safe_iterator::operator--(int)): Likewise.
7335 (_Safe_iterator(_Iterator, const _Safe_sequence_base*)): Remove !_M_insular()
7337 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_Unchecked):
7339 (_Safe_local_iterator(const _Safe_local_iterator&, _Unchecked)): New.
7340 (_Safe_local_iterator::operator++(int)): Use latter.
7341 * src/c++11/debug.cc (_S_debug_messages): Add as comment the _Debug_msg_id
7342 entry associated to the array entry.
7344 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
7346 * include/bits/fs_path.h (u8path): Add deprecated attribute.
7347 * testsuite/27_io/filesystem/path/construct/90281.cc: Add
7348 -Wno-deprecated-declarations for C++20 and later.
7349 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
7351 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
7352 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
7353 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: New test.
7355 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
7357 * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
7358 Always call _M_fini and _M_getentropy.
7360 2023-01-18 Gerald Pfeifer <gerald@pfeifer.com>
7362 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust links
7363 to www.open-std.org to use https.
7364 (COM: Component Model Object Technologies): Rename from...
7365 (The Component Object Model): ...to.
7366 * doc/html/manual/policy_data_structures.html: Regenerate.
7368 2023-01-18 Dimitrij Mijoski <dmjpp@hotmail.com>
7370 * testsuite/22_locale/codecvt/codecvt_unicode.cc: Simplify.
7371 * testsuite/22_locale/codecvt/codecvt_unicode.h: Simplify.
7372 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: Simplify.
7374 2023-01-17 Jonathan Wakely <jwakely@redhat.com>
7376 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Check $target_os instead
7377 of $host. Fix check for file being present during native build.
7378 * configure: Regenerate.
7380 2023-01-17 Martin Liska <mliska@suse.cz>
7382 * src/libbacktrace/Makefile.in: Regenerate.
7384 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
7386 * src/c++20/tzdb.cc (_GLIBCXX_USE_CXX11_ABI): Define to 1.
7388 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
7391 * include/c_compatibility/stdatomic.h: Change copyright line to
7392 be consistent with other headers contributed under DCO terms.
7393 * include/std/expected: Add full stop to copyright line.
7394 * src/c++20/tzdb.cc: Likewise.
7396 2023-01-15 Gerald Pfeifer <gerald@pfeifer.com>
7398 * doc/xml/manual/status_cxx2014.xml: Switch www.open-std.org to
7400 * doc/xml/manual/status_cxx2017.xml: Ditto.
7401 * doc/xml/manual/status_cxx2020.xml: Ditto.
7402 * doc/xml/manual/status_cxx2023.xml: Ditto.
7403 * doc/html/manual/status.html: Regenerate.
7405 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
7407 * testsuite/std/time/tzdb_list/1.cc: Remove dg-xfail-run-if
7408 and fail gracefully if defining the weak symbol doesn't work.
7410 2023-01-15 François Dumont <fdumont@gcc.gnu.org>
7413 * include/debug/safe_iterator.h (_Safe_iterator<>::operator++(int)): Extend deadlock
7414 fix to other iterator category.
7415 (_Safe_iterator<>::operator--(int)): Likewise.
7416 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::operator++(int)):
7418 * testsuite/util/debug/unordered_checks.h (invalid_local_iterator_pre_increment): New.
7419 (invalid_local_iterator_post_increment): New.
7420 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_post_increment_neg.cc:
7422 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_pre_increment_neg.cc:
7425 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
7427 * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
7430 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
7432 * testsuite/std/time/clock/utc/io.cc: Use ctype to widen char.
7434 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
7436 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Add check for
7437 windows.h. Add pecoff as FORMAT_FILE.
7438 * config.h.in: Regenerate.
7439 * configure: Regenerate.
7440 * src/libbacktrace/Makefile.am: Regenerate.
7441 * src/libbacktrace/Makefile.in: Add pecoff.c as FORMAT_FILE.
7443 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
7445 * include/std/stacktrace (stacktrace_entry::_S_demangle): Use
7446 raw __name if __cxa_demangle could not demangle it.
7448 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
7451 * src/c++20/tzdb.cc (current_zone()) [_AIX]: Use TZ environment
7454 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
7456 * src/c++20/tzdb.cc (TZDB_DISABLED): Disable all code for
7458 * testsuite/std/time/tzdb/leap_seconds.cc: Require tzdb
7460 * testsuite/std/time/tzdb_list/1.cc: Likewise.
7462 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
7464 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Replace the
7465 --with-libstdcxx-zoneinfo-dir configure option with
7466 --with-libstdcxx-zoneinfo with yes/no/static choices as well as
7468 * config.h.in: Regenerate.
7469 * configure: Regenerate.
7470 * doc/xml/manual/configure.xml: Document configure option.
7471 * doc/html/manual/configure.html: Regenerate.
7472 * src/c++20/Makefile.am: Generate tzdata.zi.h header.
7473 * src/c++20/Makefile.in: Regenerate.
7474 * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Return a
7475 null pointer if no directory is configured.
7476 (zoneinfo_dir): Replace with ...
7477 (zoneinfo_file): New function.
7478 (tzdata_stream): New istream class.
7479 (remote_version, reload_tzdb): Use tzdata_stream.
7480 * testsuite/lib/libstdc++.exp (check_effective_target_tzdb):
7481 Check new _GLIBCXX_STATIC_TZDATA macro and ignore presence of
7482 tzdata.zi file in default location.
7483 * src/c++20/tzdata.zi: New file.
7485 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
7487 * include/bits/chrono_io.h (operator<<): Fix syntax errors.
7488 * testsuite/std/time/month_day/io.cc: New test.
7489 * testsuite/std/time/month_day_last/io.cc: New test.
7490 * testsuite/std/time/month_weekday/io.cc: New test.
7491 * testsuite/std/time/month_weekday_last/io.cc: New test.
7492 * testsuite/std/time/weekday_indexed/io.cc: New test.
7493 * testsuite/std/time/weekday_last/io.cc: New test.
7494 * testsuite/std/time/year_month/io.cc: New test.
7495 * testsuite/std/time/year_month_day_last/io.cc: New test.
7496 * testsuite/std/time/year_month_weekday/io.cc: New test.
7497 * testsuite/std/time/year_month_weekday_last/io.cc: New test.
7499 2023-01-14 François Dumont <fdumont@gcc.gnu.org>
7501 * include/std/format [_GLIBCXX_INLINE_VERSION](to_chars): Adapt __asm symbol
7503 * config/abi/pre/gnu-versioned-namespace.ver: Add to_chars/from_chars symbols
7506 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
7508 * include/bits/std_mutex.h: Include <errno.h>.
7510 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
7512 * testsuite/20_util/to_chars/version.cc: Mark hosted-only.
7513 * testsuite/20_util/uses_allocator/lwg3677.cc: Ditto.
7514 * testsuite/20_util/weak_ptr/cons/self_move.cc: Ditto.
7515 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Replace usage of
7516 std::make_unique with a freestanding-compatible wrapper around
7518 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
7519 Don't test for presence of __cpp_lib_string_contains on !HOSTED.
7520 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
7522 * testsuite/std/ranges/version_c++23.cc: Don't test for presence
7523 of __cpp_lib_ranges in !HOSTED.
7525 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
7527 * include/Makefile.am: Install bits/char_traits.h,
7529 * include/Makefile.in: Regenerate.
7530 * include/bits/char_traits.h: Gate hosted-only, wchar-only and
7531 mbstate-only bits behind appropriate #ifs.
7532 * include/std/string_view: Gate <iostream> functionality behind
7534 * include/std/version: Enable __cpp_lib_constexpr_string_view
7535 and __cpp_lib_starts_ends_with in !HOSTED.
7536 * include/std/ranges: Re-enable __is_basic_string_view on
7537 freestanding, include <string_view> directly.
7538 * include/precompiled/stdc++.h: Include <string_view> when
7540 * testsuite/20_util/function_objects/searchers.cc: Skip testing
7541 boyer_moore searchers on freestanding
7542 * testsuite/21_strings/basic_string_view/capacity/1.cc: Guard
7543 <string>-related tests behind __STDC_HOSTED__.
7544 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Ditto.
7545 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Remove
7546 unused <stdexcept> include.
7547 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Remove
7548 unused <vector> include.
7549 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
7550 Guard <string> related testing behind __STDC_HOSTED__.
7551 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
7552 Guard <stdexcept> related tests behind __STDC_HOSTED__.
7553 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
7555 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
7556 Guard <stdexcept> tests behind __STDC_HOSTED__.
7557 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
7558 Enable test on freestanding, guard <stdexcept> bits behind
7560 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
7561 Guard <stdexcept> bits behind __STDC_HOSTED__.
7562 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
7565 2023-01-13 Dimitrij Mijoski <dmjpp@hotmail.com>
7568 * src/c++11/codecvt.cc (read_utf8_code_point): Correctly detect
7569 errors in incomplete multibyte sequences.
7570 (utf16_in): Remove surrogates parameter. Fix conditions for
7572 (utf16_out): Fix condition for returning partial.
7573 (ucs2_in): Do not pass surrogates argument to utf16_in.
7574 * testsuite/22_locale/codecvt/codecvt_unicode.cc: New test.
7575 * testsuite/22_locale/codecvt/codecvt_unicode.h: New header for
7577 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: New
7580 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
7583 * config/io/c_io_stdio.h (__c_lock): Define as a typedef for
7584 __GTHREAD_LEGACY_MUTEX_T if defined.
7586 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
7589 * config/os/gnu-linux/ldbl-extra.ver (GLIBCXX_LDBL_3.4.31):
7590 Export __try_use_facet specializations for facets in namespace
7592 * config/os/gnu-linux/ldbl-ieee128-extra.ver
7593 (GLIBCXX_IEEE128_3.4.31): Likewise for facets in namespace
7595 * testsuite/util/testsuite_abi.cc: Add to lists of known and
7598 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
7600 * include/bits/std_mutex.h: Remove <system_error> include.
7601 * include/std/condition_variable: Add <bits/error_constants.h>
7603 * include/std/mutex: Likewise.
7604 * include/std/shared_mutex: Likewise.
7606 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
7609 * include/experimental/memory_resource
7610 (_GLIBCXX_MAX_ALIGN_MATCHES_MALLOC): Define.
7611 (do_allocate, do_deallocate): Check it.
7612 * testsuite/experimental/memory_resource/new_delete_resource.cc:
7613 Relax expected behaviour for 64-bit hppa-hp-hpux11.11.
7615 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
7617 * doc/xml/manual/abi.xml: Add latest library versions.
7618 * doc/html/manual/abi.html: Regenerate.
7620 2023-01-12 François Dumont <fdumont@gcc.gnu.org>
7623 * include/bits/stl_tree.h (_Rb_tree<>::_M_insert_range_equal): Remove
7624 unused _Alloc_node instance.
7626 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
7628 * include/bits/atomic_wait.h (__detail::__platform_wait_t):
7629 Define as unsigned long if always lock-free, and unsigned int
7632 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
7634 * src/c++20/tzdb.cc (tzdb_list::_S_init_tzdb): Use __try and
7635 __catch macros for exception handling.
7637 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
7640 * include/bits/stl_algobase.h (__lg): Replace six overloads with
7641 a single function template for all integer types.
7642 * include/bits/stl_algo.h (__merge_adaptive_resize): Cast
7643 arithmetic results back to _Distance.
7645 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
7648 * include/std/span (span::span()): Un-simplify constraint to
7649 work for size_t of lesser rank than int.
7651 2023-01-07 LIU Hao <lh_mouse@126.com>
7653 PR middle-end/108300
7654 * src/c++11/system_error.cc: Define `WIN32_LEAN_AND_MEAN` before
7656 * src/c++11/thread.cc: Likewise.
7657 * src/c++17/fs_ops.cc: Likewise.
7658 * src/filesystem/ops.cc: Likewise.
7660 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
7663 * src/c++20/tzdb.cc (zoneinfo_dir): Add diagnostic pragma.
7665 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
7668 * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): New class
7669 template and partial specialization for synchronizing access to
7670 time_zone::_Impl::infos.
7671 (time_zone::_M_get_sys_info, reload_tzdb): Adjust uses of
7674 2023-01-06 Patrick Palka <ppalka@redhat.com>
7677 * include/bits/utility.h (__cpp_lib_ranges_zip): Define for C++23.
7678 * include/std/ranges (__cpp_lib_ranges_zip): Likewise.
7679 (__cpp_lib_ranges_chunk): Likewise.
7680 (__cpp_lib_ranges_slide): Likewise.
7681 (__cpp_lib_ranges_chunk_by): Likewise.
7682 (__cpp_lib_ranges_join_with): Likewise.
7683 (__cpp_lib_ranges_repeat): Likewise.
7684 (__cpp_lib_ranges_stride): Likewise.
7685 (__cpp_lib_ranges_cartesian_product): Likewise.
7686 (__cpp_lib_ranges_as_rvalue): Likewise.
7687 * include/std/version: Ditto.
7688 * testsuite/20_util/tuple/p2321r2.cc: Verify value of
7690 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
7691 * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
7692 * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
7693 * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
7694 * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
7695 * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
7696 * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
7697 * testsuite/std/ranges/repeat/1.cc: Likewise.
7698 * testsuite/std/ranges/zip/1.cc: Likewise.
7699 * testsuite/std/ranges/version_c++23.cc: New test.
7701 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
7704 * include/std/bitset (operator>>): Use alloca in the right
7705 scope, not in a constructor.
7706 * testsuite/20_util/bitset/io/input.cc: Check case from PR.
7708 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
7711 * include/std/format (basic_format_arg) [!__cpp_lib_to_chars]:
7712 Disable visiting floating-point types.
7714 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
7717 * include/debug/safe_iterator.h (_Safe_iterator::operator++(int))
7718 (_Safe_iterator::operator--(int)): Do not hold lock around
7719 construction of return value.
7721 2023-01-05 John David Anglin <danglin@gcc.gnu.org>
7723 * config/cpu/hppa/atomicity.h (_PA_LDCW_INSN): Define.
7724 (__exchange_and_add): Use _PA_LDCW_INSN. Use ordered store for
7725 lock release. Revise loop.
7726 (__atomic_add): Likewise.
7728 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
7731 * python/libstdcxx/v6/printers.py (_utc_timezone): New global
7733 (StdChronoTimePointPrinter::to_string): Use it.
7735 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
7738 * include/std/functional (_Bind_front): Add no_unique_address
7739 attribute to data members.
7740 * testsuite/20_util/function_objects/bind_front/107784.cc: Check
7741 size of call wrappers with empty types for targets and bound
7744 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
7747 * src/c++20/tzdb.cc (chrono::current_zone()): Check for zone
7748 using only last component of the name.
7750 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
7754 * config/abi/pre/gnu.ver: Move zoneinfo_dir_override export to
7755 the latest symbol version.
7756 * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define to 0 if
7757 atomic<_Node*> is not always lock free.
7758 (USE_ATOMIC_LIST_HEAD): New macro.
7759 [__hpux__] (__gnu_cxx::zoneinfo_dir_override()): Provide
7760 definition of weak symbol.
7761 (tzdb_list::_Node::_S_head): Rename to _S_head_cache.
7762 (tzdb_list::_Node::_S_list_head): New function for accessing
7763 list head efficiently.
7764 (tzdb_list::_Node::_S_cache_list_head): New function for
7765 updating _S_list_head.
7767 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
7770 * include/std/chrono (hh_mm_ss): Do not use chrono::abs if
7771 duration rep is unsigned.
7772 * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep.
7774 2023-01-04 Iain Sandoe <iain@sandoe.co.uk>
7777 * config/abi/pre/gnu.ver (GLIBCXX_3.4):
7778 Add __gnu_cxx::zoneinfo_dir_override().
7780 2023-01-04 Jonathan Wakely <jwakely@redhat.com>
7783 * include/std/array (__array_traits<T, 0>::operator T*()): Add
7785 * testsuite/23_containers/array/element_access/constexpr_c++17.cc: Check
7786 std::array<T, 0>::data().
7789 Copyright (C) 2023 Free Software Foundation, Inc.
7791 Copying and distribution of this file, with or without modification,
7792 are permitted in any medium without royalty provided the copyright
7793 notice and this notice are preserved.