1 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
3 * config.h.in: Regenerate.
5 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
7 * include/Makefile.am: Add new header.
8 * include/Makefile.in: Regenerate.
9 * include/bits/version.def (saturation_arithmetic): Define.
10 * include/bits/version.h: Regenerate.
11 * include/std/numeric: Include new header.
12 * include/bits/sat_arith.h: New file.
13 * testsuite/26_numerics/saturation/add.cc: New test.
14 * testsuite/26_numerics/saturation/cast.cc: New test.
15 * testsuite/26_numerics/saturation/div.cc: New test.
16 * testsuite/26_numerics/saturation/mul.cc: New test.
17 * testsuite/26_numerics/saturation/sub.cc: New test.
18 * testsuite/26_numerics/saturation/version.cc: New test.
20 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
22 * include/std/utility (in_range): Rename _Up parameter to _Res.
24 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
26 * include/bits/out_ptr.h: Add Doxygen comments. Remove a
27 redundant preprocessor condition.
28 * testsuite/20_util/smartptr.adapt/version.cc: New test.
30 2023-11-17 Jonathan Wakely <jwakely@redhat.com>
32 * include/bits/chrono_io.h: Fix Doxygen markup.
34 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
37 * include/std/stacktrace (formatter::format): Format according
39 * include/std/thread (formatter::format): Use _Align_right as
41 * testsuite/19_diagnostics/stacktrace/output.cc: Check
42 fill-and-align handling. Change compile test to run.
43 * testsuite/30_threads/thread/id/output.cc: Check fill-and-align
46 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
49 * include/Makefile.am: Add new header.
50 * include/Makefile.in: Regenerate.
51 * include/bits/out_ptr.h: New file.
52 * include/bits/shared_ptr.h (__is_shared_ptr): Move definition
54 * include/bits/shared_ptr_atomic.h (__is_shared_ptr): ... from
56 * include/bits/shared_ptr_base.h (__shared_count): Declare
57 out_ptr_t as a friend.
58 (_Sp_counted_deleter, __shared_ptr): Likewise.
59 * include/bits/unique_ptr.h (unique_ptr, unique_ptr<T[], D>):
60 Declare out_ptr_t and inout_ptr_t as friends.
61 (__is_unique_ptr): Define new variable template.
62 * include/bits/version.def (out_ptr): Define.
63 * include/bits/version.h: Regenerate.
64 * include/std/memory: Include new header.
65 * testsuite/20_util/smartptr.adapt/inout_ptr/1.cc: New test.
66 * testsuite/20_util/smartptr.adapt/inout_ptr/2.cc: New test.
67 * testsuite/20_util/smartptr.adapt/inout_ptr/shared_ptr_neg.cc:
69 * testsuite/20_util/smartptr.adapt/inout_ptr/void_ptr.cc: New
71 * testsuite/20_util/smartptr.adapt/out_ptr/1.cc: New test.
72 * testsuite/20_util/smartptr.adapt/out_ptr/2.cc: New test.
73 * testsuite/20_util/smartptr.adapt/out_ptr/shared_ptr_neg.cc:
75 * testsuite/20_util/smartptr.adapt/out_ptr/void_ptr.cc: New
78 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
80 * include/bits/algorithmfwd.h: Do not define standard feature
82 * include/bits/align.h: Likewise. Test internal macros instead
84 * include/bits/alloc_traits.h: Likewise.
85 * include/bits/allocator.h: Likewise.
86 * include/bits/atomic_base.h: Likewise.
87 * include/bits/atomic_timed_wait.h: Likewise.
88 * include/bits/atomic_wait.h: Likewise.
89 * include/bits/basic_string.h: Likewise.
90 * include/bits/basic_string.tcc: Likewise.
91 * include/bits/char_traits.h: Likewise.
92 * include/bits/chrono.h: Likewise.
93 * include/bits/cow_string.h: Likewise.
94 * include/bits/forward_list.h: Likewise.
95 * include/bits/hashtable.h: Likewise.
96 * include/bits/ios_base.h: Likewise.
97 * include/bits/memory_resource.h: Likewise.
98 * include/bits/move.h: Likewise.
99 * include/bits/move_only_function.h: Likewise.
100 * include/bits/node_handle.h: Likewise.
101 * include/bits/ptr_traits.h: Likewise.
102 * include/bits/range_access.h: Likewise.
103 * include/bits/ranges_algo.h: Likewise.
104 * include/bits/ranges_cmp.h: Likewise.
105 * include/bits/ranges_util.h: Likewise.
106 * include/bits/semaphore_base.h: Likewise.
107 * include/bits/shared_ptr.h: Likewise.
108 * include/bits/shared_ptr_atomic.h: Likewise.
109 * include/bits/shared_ptr_base.h: Likewise.
110 * include/bits/stl_algo.h: Likewise.
111 * include/bits/stl_algobase.h: Likewise.
112 * include/bits/stl_function.h: Likewise.
113 * include/bits/stl_iterator.h: Likewise.
114 * include/bits/stl_list.h: Likewise.
115 * include/bits/stl_map.h: Likewise.
116 * include/bits/stl_pair.h: Likewise.
117 * include/bits/stl_queue.h: Likewise.
118 * include/bits/stl_stack.h: Likewise.
119 * include/bits/stl_tree.h: Likewise.
120 * include/bits/stl_uninitialized.h: Likewise.
121 * include/bits/stl_vector.h: Likewise.
122 * include/bits/unique_ptr.h: Likewise.
123 * include/bits/unordered_map.h: Likewise.
124 * include/bits/uses_allocator_args.h: Likewise.
125 * include/bits/utility.h: Likewise.
126 * include/bits/erase_if.h: Add comment.
127 * include/std/algorithm: Define standard feature test macros
129 * include/std/atomic: Likewise.
130 * include/std/array: Likewise.
131 * include/std/chrono: Likewise.
132 * include/std/condition_variable: Likewise.
133 * include/std/deque: Likewise.
134 * include/std/format: Likewise.
135 * include/std/functional: Likewise.
136 * include/std/forward_list: Likewise.
137 * include/std/ios: Likewise.
138 * include/std/iterator: Likewise.
139 * include/std/list: Likewise.
140 * include/std/map: Likewise.
141 * include/std/memory: Likewise.
142 * include/std/numeric: Likewise.
143 * include/std/queue: Likewise.
144 * include/std/ranges: Likewise.
145 * include/std/regex: Likewise.
146 * include/std/set: Likewise.
147 * include/std/stack: Likewise.
148 * include/std/stop_token: Likewise.
149 * include/std/string: Likewise.
150 * include/std/string_view:
151 * include/std/tuple: Likewise.
152 * include/std/unordered_map:
153 * include/std/unordered_set:
154 * include/std/utility: Likewise.
155 * include/std/vector: Likewise.
156 * include/std/scoped_allocator: Query internal macros instead of
159 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
161 * testsuite/18_support/byte/requirements.cc: Disable PCH.
162 * testsuite/18_support/destroying_delete.cc: Likewise.
163 * testsuite/18_support/source_location/1.cc: Likewise.
164 * testsuite/18_support/source_location/version.cc: Likewise.
165 * testsuite/18_support/type_info/constexpr.cc: Likewise.
166 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc:
168 * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
169 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
170 * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
171 * testsuite/20_util/addressof/requirements/constexpr.cc:
173 * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
174 * testsuite/20_util/allocator_traits/header.cc: Likewise.
175 * testsuite/20_util/as_const/1.cc: Likewise. Likewise.
176 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
177 * testsuite/20_util/bitset/version.cc: Likewise.
178 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
180 * testsuite/20_util/duration_cast/rounding.cc: Likewise.
181 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
183 * testsuite/20_util/exchange/constexpr.cc: Likewise.
184 * testsuite/20_util/expected/synopsis.cc: Likewise.
185 * testsuite/20_util/expected/version.cc: Likewise.
186 * testsuite/20_util/function_objects/bind_front/1.cc: Likewise.
187 * testsuite/20_util/function_objects/bind_front/2.cc: Likewise.
188 * testsuite/20_util/function_objects/invoke/3.cc: Likewise.
189 * testsuite/20_util/function_objects/invoke/4.cc: Likewise.
190 * testsuite/20_util/function_objects/invoke/constexpr.cc:
192 * testsuite/20_util/function_objects/invoke/version.cc:
194 * testsuite/20_util/function_objects/searchers.cc: Likewise.
195 * testsuite/20_util/integer_comparisons/1.cc: Likewise.
196 * testsuite/20_util/integer_comparisons/2.cc: Likewise.
197 * testsuite/20_util/is_bounded_array/value.cc: Likewise.
198 * testsuite/20_util/is_layout_compatible/value.cc: Likewise.
199 * testsuite/20_util/is_layout_compatible/version.cc: Likewise.
200 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc:
202 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc:
204 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise.
205 * testsuite/20_util/is_nothrow_swappable/value.h: Likewise.
206 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc:
207 Remove redundant checks already tested elsewhere.
208 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc:
210 * testsuite/20_util/is_nothrow_swappable_with/value.cc: Disable
212 * testsuite/20_util/is_pointer_interconvertible/value.cc:
214 * testsuite/20_util/is_pointer_interconvertible/version.cc:
216 * testsuite/20_util/is_scoped_enum/value.cc: Likewise.
217 * testsuite/20_util/is_scoped_enum/version.cc: Likewise.
218 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc:
219 Remove redundant checks already tested elsewhere.
220 * testsuite/20_util/is_swappable/requirements/typedefs.cc:
221 Remove redundant checks already tested elsewhere.
222 * testsuite/20_util/is_swappable/value.cc: Disable PCH.
223 * testsuite/20_util/is_swappable/value.h: Reorder headers.
224 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc:
225 Remove redundant checks already tested elsewhere.
226 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc:
227 Remove redundant checks already tested elsewhere.
228 * testsuite/20_util/is_swappable_with/value.cc: Disable PCH.
229 * testsuite/20_util/is_unbounded_array/value.cc: Likewise.
230 * testsuite/20_util/move_only_function/cons.cc: Likewise.
231 * testsuite/20_util/move_only_function/version.cc: Likewise.
232 * testsuite/20_util/optional/monadic/and_then.cc: Likewise.
233 * testsuite/20_util/optional/requirements.cc: Likewise.
234 * testsuite/20_util/optional/version.cc: Likewise.
235 * testsuite/20_util/owner_less/void.cc: Likewise.
236 * testsuite/20_util/reference_from_temporary/value.cc: Likewise.
237 * testsuite/20_util/reference_from_temporary/version.cc:
239 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
241 * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
242 * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
243 * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
244 * testsuite/20_util/time_point_cast/rounding.cc: Likewise.
245 * testsuite/20_util/to_chars/constexpr.cc: Likewise.
246 * testsuite/20_util/to_chars/result.cc: Likewise.
247 * testsuite/20_util/to_chars/version.cc: Likewise.
248 * testsuite/20_util/to_underlying/1.cc: Likewise.
249 * testsuite/20_util/to_underlying/version.cc: Likewise.
250 * testsuite/20_util/tuple/apply/1.cc: Likewise.
251 * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
253 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise.
254 * testsuite/20_util/tuple/p2321r2.cc: Likewise.
255 * testsuite/20_util/tuple/tuple_element_t.cc: Likewise.
256 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc:
258 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
260 * testsuite/20_util/unreachable/1.cc: Likewise.
261 * testsuite/20_util/unreachable/version.cc: Likewise.
262 * testsuite/20_util/unwrap_reference/1.cc: Likewise.
263 * testsuite/20_util/unwrap_reference/3.cc: Likewise.
264 * testsuite/20_util/variant/constexpr.cc: Likewise.
265 * testsuite/20_util/variant/version.cc: Likewise.
266 * testsuite/20_util/variant/visit_inherited.cc: Likewise.
267 * testsuite/20_util/void_t/1.cc: Likewise.
268 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
270 * testsuite/21_strings/basic_string/cons/char/constexpr.cc:
272 * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc:
274 * testsuite/21_strings/basic_string/erasure.cc: Likewise.
275 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc:
277 * testsuite/21_strings/basic_string/numeric_conversions/version.cc:
279 * testsuite/21_strings/basic_string/version.cc: Likewise.
280 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
282 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
284 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
286 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc:
288 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
290 * testsuite/21_strings/char_traits/requirements/version.cc:
292 * testsuite/23_containers/array/comparison_operators/constexpr.cc:
294 * testsuite/23_containers/array/creation/1.cc: Likewise.
295 * testsuite/23_containers/array/creation/2.cc: Likewise.
296 * testsuite/23_containers/array/element_access/constexpr_c++17.cc:
298 * testsuite/23_containers/array/requirements/constexpr_fill.cc:
300 * testsuite/23_containers/array/requirements/constexpr_iter.cc:
302 * testsuite/23_containers/deque/erasure.cc: Likewise.
303 * testsuite/23_containers/forward_list/erasure.cc: Likewise.
304 * testsuite/23_containers/list/erasure.cc: Likewise.
305 * testsuite/23_containers/map/erasure.cc: Likewise.
306 * testsuite/23_containers/queue/cons_from_iters.cc: Likewise.
307 * testsuite/23_containers/set/erasure.cc: Likewise.
308 * testsuite/23_containers/span/1.cc: Likewise.
309 * testsuite/23_containers/span/2.cc: Likewise.
310 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
311 * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
312 * testsuite/23_containers/unordered_map/operations/1.cc:
314 * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
315 * testsuite/23_containers/unordered_set/operations/1.cc:
317 * testsuite/23_containers/vector/cons/constexpr.cc: Likewise.
318 * testsuite/23_containers/vector/erasure.cc: Likewise.
319 * testsuite/23_containers/vector/requirements/version.cc:
321 * testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise.
322 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise.
323 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc:
324 Remove redundant checks already tested elsewhere.
325 * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
326 * testsuite/25_algorithms/cpp_lib_constexpr.cc: Likewise.
327 * testsuite/25_algorithms/fold_left/1.cc: Likewise.
328 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise.
329 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise.
330 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
331 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise.
332 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise.
333 * testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: Likewise.
334 * testsuite/26_numerics/bit/bit.byteswap/version.cc: Likewise.
335 * testsuite/26_numerics/bit/bit.cast/bit_cast.cc: Likewise.
336 * testsuite/26_numerics/bit/bit.cast/version.cc: Likewise.
337 * testsuite/26_numerics/bit/header-2.cc: Likewise.
338 * testsuite/26_numerics/bit/header.cc: Likewise.
339 * testsuite/26_numerics/complex/1.cc: Likewise.
340 * testsuite/26_numerics/complex/2.cc: Likewise.
341 * testsuite/26_numerics/endian/2.cc: Likewise.
342 * testsuite/26_numerics/endian/3.cc: Likewise.
343 * testsuite/26_numerics/gcd/1.cc: Likewise.
344 * testsuite/26_numerics/lcm/1.cc: Likewise.
345 * testsuite/26_numerics/lerp/1.cc: Likewise.
346 * testsuite/26_numerics/lerp/version.cc: Likewise.
347 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
348 * testsuite/26_numerics/midpoint/version.cc: Likewise.
349 * testsuite/26_numerics/numbers/1.cc: Likewise.
350 * testsuite/26_numerics/numbers/2.cc: Likewise.
351 * testsuite/27_io/basic_filebuf/native_handle/char/1.cc:
353 * testsuite/27_io/basic_filebuf/native_handle/version.cc:
355 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc:
357 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
359 * testsuite/27_io/basic_syncbuf/1.cc: Likewise.
360 * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
361 * testsuite/27_io/basic_syncstream/1.cc: Likewise.
362 * testsuite/27_io/basic_syncstream/2.cc: Likewise.
363 * testsuite/27_io/spanstream/1.cc: Likewise.
364 * testsuite/27_io/spanstream/version.cc: Likewise.
365 * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
366 * testsuite/29_atomics/atomic/lock_free_aliases.cc: Likewise.
367 * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
368 * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
369 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
371 * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
372 * testsuite/30_threads/barrier/1.cc: Likewise.
373 * testsuite/30_threads/barrier/2.cc: Likewise.
374 * testsuite/30_threads/condition_variable_any/stop_token/1.cc:
376 * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
378 * testsuite/30_threads/jthread/1.cc: Likewise.
379 * testsuite/30_threads/jthread/version.cc: Likewise.
380 * testsuite/30_threads/latch/1.cc: Likewise.
381 * testsuite/30_threads/latch/2.cc: Likewise.
382 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc:
384 * testsuite/30_threads/semaphore/1.cc: Likewise.
385 * testsuite/30_threads/semaphore/2.cc: Likewise.
386 * testsuite/30_threads/stop_token/1.cc: Likewise.
387 * testsuite/30_threads/stop_token/2.cc: Likewise.
388 * testsuite/experimental/feat-char8_t.cc: Likewise.
389 * testsuite/experimental/iterator/ostream_joiner.cc: Likewise.
390 * testsuite/experimental/numeric/gcd.cc: Likewise.
391 * testsuite/experimental/scopeguard/uniqueres.cc: Likewise.
392 * testsuite/std/concepts/1.cc: Likewise.
393 * testsuite/std/concepts/2.cc: Likewise.
394 * testsuite/std/ranges/adaptors/as_const/1.cc: Likewise.
395 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
396 * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
397 * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
398 * testsuite/std/ranges/adaptors/enumerate/1.cc: Likewise.
399 * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
400 * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
401 * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
402 * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
403 * testsuite/std/ranges/headers/ranges/synopsis.cc: Likewise.
404 * testsuite/std/ranges/repeat/1.cc: Likewise.
405 * testsuite/std/ranges/version_c++23.cc: Likewise.
406 * testsuite/std/ranges/zip/1.cc: Likewise.
407 * testsuite/std/time/syn_c++20.cc: Likewise.
408 * testsuite/experimental/feat-cxx14.cc: Likewise. Include
409 <algorithm> and <iterator>.
410 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
411 Adjust dg-error line numbers.
413 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
415 * include/bits/version.def (stds): Use >= 202100 for C++23
417 * include/bits/version.h: Regenerate.
418 * include/std/thread: Use > C++20 instead of >= C++23 for
419 __cplusplus condition.
421 2023-11-16 Jonathan Wakely <jwakely@redhat.com>
423 * include/std/istream (__rvalue_stream_extraction_t): Test
424 __cpp_concepts instead of __cpp_lib_concepts.
425 * include/std/ostream (__derived_from_ios_base): Likewise.
426 (__rvalue_stream_insertion_t): Likewise.
428 2023-11-15 Jonathan Wakely <jwakely@redhat.com>
431 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index):
432 Correctly handle unused capacity at the start of the first node.
433 * testsuite/libstdc++-xmethods/deque.cc: Check index operator
434 when elements have been removed from the front.
436 2023-11-15 Jonathan Wakely <jwakely@redhat.com>
438 * include/std/stacktrace (basic_stacktrace::at): Fix class name
439 in exception message.
440 * testsuite/19_diagnostics/stacktrace/hash.cc: Do not fail if
441 current() returns a non-empty stacktrace.
443 2023-11-15 Alexandre Oliva <oliva@gnu.org>
446 2023-11-15 Alexandre Oliva <oliva@adacore.com>
448 * include/bits/stl_bvector.h (_GLIBCXX_ALWAYS_INLINE): Undef.
450 2023-11-15 Alexandre Oliva <oliva@adacore.com>
452 * include/bits/stl_bvector.h (_GLIBCXX_ALWAYS_INLINE): Undef.
454 2023-11-14 Cassio Neri <cassio.neri@gmail.com>
456 * include/std/chrono (operator-(const weekday&, const weekday&)):
459 2023-11-14 Cassio Neri <cassio.neri@gmail.com>
461 * include/std/chrono (weekday::_S_from_days): Fix UB.
462 * testsuite/std/time/weekday/1.cc: Add test for overflow.
464 2023-11-14 Cassio Neri <cassio.neri@gmail.com>
466 * include/std/chrono (year::is_leap): Clear code.
468 2023-11-14 Cassio Neri <cassio.neri@gmail.com>
470 * include/std/chrono (year_month_day_last::day): Remove &1.
472 2023-11-14 Jonathan Wakely <jwakely@redhat.com>
474 * include/std/charconv (__from_chars_pow2_base): Convert base to
475 unsigned for call to __countr_zero.
476 (__from_chars_alnum): Likewise for call to __bit_width.
478 2023-11-14 Jonathan Wakely <jwakely@redhat.com>
481 * include/std/stacktrace (hash<basic_stacktrace<Alloc>>): Fix
482 type of hash functio nfor entries.
483 * testsuite/19_diagnostics/stacktrace/hash.cc: New test.
485 2023-11-14 Jonathan Wakely <jwakely@redhat.com>
488 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.size): Fix
489 calculation to use _M_start._M_cur.
490 * testsuite/libstdc++-xmethods/deque.cc: Check failing cases.
492 2023-11-13 Arsen Arsenović <arsen@aarsen.me>
494 * configure: Regenerate.
496 2023-11-13 Jonathan Wakely <jwakely@redhat.com>
498 * testsuite/std/time/clock/file/io.cc: Double timeout using
500 * testsuite/std/time/clock/gps/io.cc: Likewise.
501 * testsuite/std/time/clock/local/io.cc: Likewise.
502 * testsuite/std/time/clock/system/io.cc: Likewise.
503 * testsuite/std/time/clock/tai/io.cc: Likewise.
504 * testsuite/std/time/clock/utc/io.cc: Likewise.
506 2023-11-13 Jonathan Wakely <jwakely@redhat.com>
509 * include/std/optional (_Optional_payload_base::_M_reset): Set
510 _M_engaged to false unconditionally.
512 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
515 * include/bits/stl_bvector.h (_M_assume_normalized): Do not use
516 statement form of assume attribute for Clang.
518 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
520 * include/std/string_view (operator==, operator<=>): Remove
521 redundant overloads (LWG 3950).
523 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
525 * testsuite/26_numerics/headers/complex.h/std_c++11.h: Moved to...
526 * testsuite/26_numerics/headers/complex.h/std_c++11.cc: ...here.
527 * testsuite/26_numerics/headers/complex.h/std_c++98.h: Moved to...
528 * testsuite/26_numerics/headers/complex.h/std_c++98.cc: ...here.
529 Check macro first and then #undef.
530 * testsuite/26_numerics/headers/complex.h/std_gnu++11.h: Moved to...
531 * testsuite/26_numerics/headers/complex.h/std_gnu++11.cc: ...here.
533 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
536 * include/bits/utility.h (integer_sequence): Add static_assert.
537 * testsuite/20_util/integer_sequence/112473.cc: New test.
539 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
541 * testsuite/20_util/pair/dangling_ref.cc: Add hosted effective
542 target for specifiers using c++17_down.
544 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
546 * include/bits/shared_ptr_atomic.h (atomic_is_lock_free)
547 (atomic_load_explicit, atomic_load, atomic_store_explicit)
548 (atomic_store, atomic_exchange_explicit, atomic_exchange)
549 (atomic_compare_exchange_strong, atomic_compare_exchange_weak)
550 (atomic_compare_exchange_strong_explicit)
551 (atomic_compare_exchange_weak_explicit): Add deprecated
552 attribute for C++20 and later.
553 * testsuite/20_util/shared_ptr/atomic/1.cc: Suppress deprecated
555 * testsuite/20_util/shared_ptr/atomic/2.cc: Likewise.
556 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise.
557 * testsuite/29_atomics/atomic/lwg3220.cc: Likewise.
559 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
561 * include/bits/std_mutex.h (lock_guard): Add [[nodiscard]]
562 attribute to constructors.
563 * include/bits/unique_lock.h (unique_lock): Likewise.
564 * include/std/mutex (scoped_lock, scoped_lock<Mutex>): Likewise.
565 * testsuite/30_threads/lock_guard/cons/nodiscard.cc: New test.
566 * testsuite/30_threads/scoped_lock/cons/nodiscard.cc: New test.
567 * testsuite/30_threads/unique_lock/cons/nodiscard.cc: New test.
569 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
571 * include/std/span (span, as_bytes, as_writable_bytes): Add
572 [[nodiscard]] attribute on all non-void functions.
573 * testsuite/23_containers/span/back_assert_neg.cc: Suppress
575 * testsuite/23_containers/span/back_neg.cc: Likewise.
576 * testsuite/23_containers/span/first_2_assert_neg.cc: Likewise.
577 * testsuite/23_containers/span/first_assert_neg.cc: Likewise.
578 * testsuite/23_containers/span/first_neg.cc: Likewise.
579 * testsuite/23_containers/span/front_assert_neg.cc: Likewise.
580 * testsuite/23_containers/span/front_neg.cc: Likewise.
581 * testsuite/23_containers/span/index_op_assert_neg.cc: Likewise.
582 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
583 * testsuite/23_containers/span/last_2_assert_neg.cc: Likewise.
584 * testsuite/23_containers/span/last_assert_neg.cc: Likewise.
585 * testsuite/23_containers/span/last_neg.cc: Likewise.
586 * testsuite/23_containers/span/subspan_2_assert_neg.cc:
588 * testsuite/23_containers/span/subspan_3_assert_neg.cc:
590 * testsuite/23_containers/span/subspan_4_assert_neg.cc:
592 * testsuite/23_containers/span/subspan_5_assert_neg.cc:
594 * testsuite/23_containers/span/subspan_6_assert_neg.cc:
596 * testsuite/23_containers/span/subspan_assert_neg.cc: Likewise.
597 * testsuite/23_containers/span/subspan_neg.cc: Likewise.
598 * testsuite/23_containers/span/nodiscard.cc: New test.
600 2023-11-11 Jonathan Wakely <jwakely@redhat.com>
603 * config.h.in: Regenerate.
604 * configure: Regenerate.
605 * linkage.m4 (GLIBCXX_MAYBE_UNDERSCORED_FUNCS): Remove.
606 (GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_1): Do not check for _foo.
607 (GLIBCXX_CHECK_MATH_DECLS_AND_LINKAGES_1): Likewise.
608 (GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_2): Likewise.
609 (GLIBCXX_CHECK_MATH_DECL_AND_LINKAGE_3): Likewise.
610 (GLIBCXX_CHECK_STDLIB_DECL_AND_LINKAGE_2): Do not use
611 GLIBCXX_MAYBE_UNDERSCORED_FUNCS.
613 2023-11-11 Nathaniel Shead <nathanieloshead@gmail.com>
616 * include/c_global/cmath (acosf, acosl, asinf, asinl, atanf)
617 (atanl, atan2f, atan2l, ceilf, ceill, cosf, cosl, coshf, coshl)
618 (expf, expl, fabsf, fabsl, floorf, floorl, fmodf, fmodl, frexpf)
619 (frexpl, ldexpf, ldexpl, logf, logl, log10f, log10l, modff)
620 (modfl, powf, powl, sinf, sinl, sinhf, sinhl, sqrtf, sqrtl, tanf)
621 (tanl, tanhf, tanhl): Add using-declarations in namespace std.
622 * testsuite/26_numerics/headers/cmath/equivalent_functions.cc:
624 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc:
625 Add checks for existence of above names.
627 2023-11-09 Arsen Arsenović <arsen@aarsen.me>
629 * testsuite/20_util/scoped_allocator/noexcept.cc: Mark as
632 2023-11-09 Arsen Arsenović <arsen@aarsen.me>
634 * include/bits/memoryfwd.h: Remove HOSTED check around allocator
635 and its specializations.
637 2023-11-09 Patrick Palka <ppalka@redhat.com>
640 * include/std/ranges (__detail::__box<_Tp>::operator*): Define
641 && overloads as well.
642 (__detail::__take_of_repeat_view): Forward __r when accessing
644 (__detail::__drop_of_repeat_view): Likewise.
645 * testsuite/std/ranges/repeat/1.cc (test07): New test.
647 2023-11-09 François Dumont <fdumont@gcc.gnu.org>
649 * include/bits/hashtable_policy.h (_RehashStateGuard): New.
650 (_Insert_base<>::_M_insert_range(_IIt, _IIt, const _NodeGet&, false_type)):
652 * include/bits/hashtable.h (__rehash_guard_t): New.
653 (__rehash_state): Remove.
655 (_M_rehash_aux): Rename into _M_rehash.
656 (_M_assign_elements, _M_insert_unique_node, _M_insert_multi_node): Adapt.
659 2023-11-09 François Dumont <fdumont@gcc.gnu.org>
661 * include/bits/hashtable_policy.h
662 (struct _NodePtrGuard<_HashtableAlloc, _NodePtr>): New.
663 (_ReuseAllocNode::operator()(_Args&&...)): Use latter to guard allocated node
664 pointer while constructing in place the value_type instance.
666 2023-11-09 Alexandre Oliva <oliva@adacore.com>
669 * include/bits/stl_bvector.h (_Bit_iterator_base): Add
670 _M_assume_normalized member function. Call it in _M_bump_up,
671 _M_bump_down, _M_incr, operator==, operator<=>, operator<, and
673 (_Bit_iterator): Also call it in operator*.
674 (_Bit_const_iterator): Likewise.
676 2023-11-07 François Dumont <fdumont@gcc.gnu.org>
678 * include/bits/hashtable_policy.h
679 (_Hashtable_alloc<>::_M_allocate_node): Add missing call to node destructor
680 on construct exception.
682 2023-11-07 Richard Biener <rguenther@suse.de>
685 * src/c++98/locale.cc (locale::facet::_S_initialize_once):
686 Check whether _S_c_locale is already initialized.
687 (locale::facet::_S_get_c_locale): Always perform non-threadsafe
688 init when threadsafe init failed.
690 2023-11-06 Ian Lance Taylor <iant@golang.org>
692 PR libbacktrace/111315
693 PR libbacktrace/112263
694 * acinclude.m4: Set -D_GNU_SOURCE in BACKTRACE_CPPFLAGS and when
695 grepping link.h for dl_iterate_phdr.
696 * configure: Regenerate.
698 2023-11-06 Jonathan Wakely <jwakely@redhat.com>
700 * include/std/expected (expected::and_then, expected::or_else):
701 Add string literals to static assertions.
702 * include/std/optional (optional::and_then, optional::or_else):
705 2023-11-04 Feng Jisen <J1senn@outlook.com>
707 * include/bits/utility.h (_Nth_type): Remove redundant partial
710 2023-11-04 Jonathan Wakely <jwakely@redhat.com>
713 * include/std/system_error (system_error::system_error): Group
714 arguments so that concatenation can reuse rvalue's capacity.
715 * src/c++11/system_error.cc (strerror_string): New function.
716 [_GLIBCXX_HAVE_STRERROR_R] (use_strerror_result): New functions.
717 (generic_error_category::message): Use strerror_string.
718 (system_error_category::message): Likewise.
720 2023-11-04 Jonathan Wakely <jwakely@redhat.com>
722 * doc/xml/manual/appendix_contributing.xml: Replace example that
724 * doc/html/manual/source_code_style.html: Regenerate.
726 2023-11-02 Jonathan Wakely <jwakely@redhat.com>
729 * include/std/string_view (string_view::remove_suffix): Add
731 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc:
733 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc:
736 2023-11-02 Jonathan Wakely <jwakely@redhat.com>
738 * acinclude.m4 (GLIBCXX_ENABLE_C99): Fix snprintf checks.
739 * configure: Regenerate.
741 2023-10-30 François Dumont <fdumont@gcc.gnu.org>
743 * config/abi/pre/gnu-versioned-namespace.ver: Add comment on recently
744 added emul TLS symbols.
746 2023-10-30 François Dumont <fdumont@gcc.gnu.org>
748 * src/experimental/contract.cc
749 [_GLIBCXX_INLINE_VERSION](handle_contract_violation): Rework comment.
750 Remove weak attribute.
752 2023-10-29 François Dumont <fdumont@gcc.gnu.org>
754 * config/abi/pre/gnu-versioned-namespace.ver: Add missing emul TLS
757 2023-10-29 François Dumont <fdumont@gcc.gnu.org>
759 * src/experimental/contract.cc
760 [_GLIBCXX_INLINE_VERSION](handle_contract_violation): Provide symbol
761 without version namespace decoration for gcc.
763 2023-10-26 Jonathan Wakely <jwakely@redhat.com>
766 * include/std/shared_mutex (shared_lock::unlock): Change errc
767 constant to operation_not_permitted.
768 * testsuite/30_threads/shared_lock/locking/112089.cc: New test.
770 2023-10-26 Jonathan Wakely <jwakely@redhat.com>
772 * testsuite/20_util/duration/io.cc: Double timeout using
774 * testsuite/std/time/day/io.cc: Likewise.
775 * testsuite/std/time/format.cc: Likewise.
776 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
777 * testsuite/std/time/month/io.cc: Likewise.
778 * testsuite/std/time/month_day/io.cc: Likewise.
779 * testsuite/std/time/month_day_last/io.cc: Likewise.
780 * testsuite/std/time/month_weekday/io.cc: Likewise.
781 * testsuite/std/time/month_weekday_last/io.cc: Likewise.
782 * testsuite/std/time/weekday/io.cc: Likewise.
783 * testsuite/std/time/weekday_indexed/io.cc: Likewise.
784 * testsuite/std/time/weekday_last/io.cc: Likewise.
785 * testsuite/std/time/year/io.cc: Likewise.
786 * testsuite/std/time/year_month/io.cc: Likewise.
787 * testsuite/std/time/year_month_day/io.cc: Likewise.
788 * testsuite/std/time/year_month_day_last/io.cc: Likewise.
789 * testsuite/std/time/year_month_weekday/io.cc: Likewise.
790 * testsuite/std/time/year_month_weekday_last/io.cc: Likewise.
791 * testsuite/std/time/zoned_time/io.cc: Likewise.
793 2023-10-25 Jonathan Wakely <jwakely@redhat.com>
796 * src/libbacktrace/Makefile.am: Add -prefer-pic to libtool
798 * src/libbacktrace/Makefile.in: Regenerate.
800 2023-10-24 Paul M. Bendixen <paulbendixen@gmail.com>
802 * include/Makefile.am: Move cstdarg, cstdalign and cstdbool to
804 * include/Makefile.in: Regenerate.
806 2023-10-22 Iain Sandoe <iain@sandoe.co.uk>
808 * configure: Regenerate.
809 * configure.ac: Handle Darwin rpaths.
810 * src/Makefile.am: Handle Darwin rpaths.
811 * src/Makefile.in: Regenerate.
813 2023-10-21 Jonathan Wakely <jwakely@redhat.com>
815 * include/bits/basic_string.h (_M_init_local_buf()): New
817 (_M_use_local_data()): Use _M_init_local_buf.
818 (basic_string(), basic_string(const Alloc&))
819 (basic_string(basic_string&&))
820 (basic_string(basic_string&&, const Alloc&)): Use
821 _M_init_local_buf instead of _M_use_local_data().
822 * include/bits/basic_string.tcc (swap(basic_string&))
823 (_M_construct(InIter, InIter, input_iterator_tag))
824 (_M_construct(InIter, InIter, forward_iterator_tag))
825 (_M_construct(size_type, CharT), reserve()): Likewise.
827 2023-10-21 Benjamin Brock <brock@cs.berkeley.edu>
829 * include/std/ranges (zip_view, adjacent_view): Implement
830 workaround for LLVM-61763.
832 2023-10-21 Dimitrij Mijoski <dmjpp@hotmail.com>
834 * testsuite/22_locale/codecvt/codecvt_unicode.h: Test length()
836 2023-10-21 Jonathan Wakely <jwakely@redhat.com>
838 * include/bits/fs_dir.h (operator==(default_sentinel_t)): Fix
841 2023-10-20 Marek Polacek <polacek@redhat.com>
844 * include/std/charconv (from_chars): Add explicit casts.
846 2023-10-19 François Dumont <fdumont@gcc.gnu.org>
848 * include/bits/hashtable_policy.h
849 (_Hash_code_base::_M_hash_code(const _Hash&, const _Hash_node_value<>&)): Remove.
850 (_Hash_code_base::_M_hash_code<_H2>(const _H2&, const _Hash_node_value<>&)): Remove.
851 * include/bits/hashtable.h
852 (_M_src_hash_code<_H2>(const _H2&, const key_type&, const __node_value_type&)): New.
853 (_M_merge_unique<>, _M_merge_multi<>): Use latter.
854 * testsuite/23_containers/unordered_map/modifiers/merge.cc
855 (test04, test05, test06): New test cases.
857 2023-10-13 Jakub Jelinek <jakub@redhat.com>
859 * testsuite/tr1/8_c_compatibility/cstdio/functions.cc (test01):
860 Initialize stream to va_arg(ap, FILE*) rather than 0.
861 * testsuite/tr1/8_c_compatibility/cwchar/functions.cc (test01):
864 2023-10-13 Hans-Peter Nilsson <hp@axis.com>
866 * testsuite/29_atomics/atomic/compare_exchange_padding.cc,
867 testsuite/29_atomics/atomic_flag/clear/1.cc,
868 testsuite/29_atomics/atomic_flag/cons/value_init.cc,
869 testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc,
870 testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc,
871 testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc,
872 testsuite/29_atomics/atomic_ref/generic.cc,
873 testsuite/29_atomics/atomic_ref/integral.cc,
874 testsuite/29_atomics/atomic_ref/pointer.cc: Replace
875 dg-require-thread-fence with dg-require-atomic-cmpxchg-word.
877 2023-10-13 Hans-Peter Nilsson <hp@axis.com>
879 * testsuite/lib/dg-options.exp (dg-require-atomic-cmpxchg-word):
881 * testsuite/lib/libstdc++.exp (check_v3_target_atomic_cmpxchg_word):
884 2023-10-05 François Dumont <fdumont@gcc.gnu.org>
886 * config/abi/pre/gnu-versioned-namespace.ver: Add missing symbols
887 for _Float{16,32,64,128,32x,64x,128x}.
889 2023-10-04 Tom Tromey <tromey@adacore.com>
891 * python/libstdcxx/v6/printers.py
892 (StdExpAnyPrinter.__init__): Qualify call to
895 2023-10-04 Tom Tromey <tromey@adacore.com>
897 * python/libstdcxx/v6/printers.py: Assume that
898 _versioned_namespace is non-None.
899 * python/libstdcxx/v6/xmethods.py (is_specialization_of):
900 Assume that _versioned_namespace is non-None.
902 2023-10-04 Tom Tromey <tromey@adacore.com>
904 * python/libstdcxx/v6/xmethods.py (_versioned_namespace):
907 2023-09-29 Dimitrij Mijoski <dmjpp@hotmail.com>
910 * src/c++11/codecvt.cc (read_utf8_code_point): Fix handing of
912 (ucs4_out): Fix handling of surrogates in UCS-4 -> UTF-8.
913 (ucs4_in): Fix handling of range with odd number of bytes.
914 (ucs4_out): Fix handling of surrogates in UCS-4 -> UTF-16.
915 (ucs2_out): Fix handling of surrogates in UCS-2 -> UTF-16.
916 (ucs2_in): Fix handling of range with odd number of bytes.
917 (__codecvt_utf16_base<char16_t>::do_in): Likewise.
918 (__codecvt_utf16_base<char32_t>::do_in): Likewise.
919 (__codecvt_utf16_base<wchar_t>::do_in): Likewise.
920 * testsuite/22_locale/codecvt/codecvt_unicode.cc: Renames, add
921 tests for codecvt_utf16<char16_t> and codecvt_utf16<char32_t>.
922 * testsuite/22_locale/codecvt/codecvt_unicode.h: Refactor UTF-8
923 testing functions for char8_t, add more test cases for errors,
924 add testing functions for codecvt_utf16.
925 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc:
926 Renames, add tests for codecvt_utf16<whchar_t>.
927 * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc (test06):
929 * testsuite/22_locale/codecvt/codecvt_unicode_char8_t.cc: New
932 2023-09-29 Nathaniel Shead <nathanieloshead@gmail.com>
934 * include/bits/basic_string.h: (basic_string(basic_string&&)):
935 Activate _M_local_buf when needed.
936 (basic_string(basic_string&&, const _Alloc&)): Likewise.
937 * include/bits/basic_string.tcc: (basic_string::swap): Likewise.
938 * include/std/variant: (__detail::__variant::__construct_n): New.
939 (__detail::__variant::__emplace): Use __construct_n.
941 2023-09-28 Tom Tromey <tromey@adacore.com>
943 * python/libstdcxx/v6/printers.py (Printer.add_version)
944 (add_one_template_type_printer)
945 (FilteringTypePrinter.add_one_type_printer): Use Python
948 2023-09-28 Tom Tromey <tromey@adacore.com>
950 * python/libstdcxx/v6/printers.py (std_ratio_t_tuple):
953 2023-09-28 Tom Tromey <tromey@adacore.com>
955 * python/libstdcxx/v6/printers.py
956 (StdExpOptionalPrinter.__init__, lookup_node_type):
957 Remove unused variables.
959 2023-09-28 Tom Tromey <tromey@adacore.com>
961 * python/libstdcxx/v6/printers.py: Don't import 'os'.
962 * python/libstdcxx/v6/__init__.py: Don't import 'gdb'.
964 2023-09-28 Tom Tromey <tromey@adacore.com>
966 * python/libstdcxx/v6/printers.py: Use gdb.ValuePrinter
967 everywhere. Rename members to start with "_".
969 2023-09-28 Tom Tromey <tromey@adacore.com>
971 * testsuite/lib/gdb-test.exp (gdb-test): Enable Python
972 stack traces from gdb.
974 2023-09-28 Jonathan Wakely <jwakely@redhat.com>
976 * python/libstdcxx/v6/xmethods.py (is_specialization_of): Define
978 (ArrayMethodsMatcher, DequeMethodsMatcher)
979 (ForwardListMethodsMatcher, ListMethodsMatcher)
980 (VectorMethodsMatcher, AssociativeContainerMethodsMatcher)
981 (UniquePtrGetWorker, UniquePtrMethodsMatcher)
982 (SharedPtrSubscriptWorker, SharedPtrMethodsMatcher): Use
983 is_specialization_of instead of re.match.
985 2023-09-28 Jonathan Wakely <jwakely@redhat.com>
987 * python/libstdcxx/v6/printers.py: Break long lines. Use raw
988 strings for regular expressions. Add whitespace around
990 (is_member_of_namespace): Use isinstance to check type.
991 (is_specialization_of): Likewise. Adjust template_name
992 for versioned namespace instead of duplicating the re.match
994 (StdExpAnyPrinter._string_types): New static method.
995 (StdExpAnyPrinter.to_string): Use _string_types.
997 2023-09-28 Jonathan Wakely <jwakely@redhat.com>
999 * python/libstdcxx/v6/printers.py: Format docstrings according
1001 * python/libstdcxx/v6/xmethods.py: Likewise.
1003 2023-09-28 Tim Song <t.canens.cpp@gmail.com>
1006 * include/bits/hashtable_policy.h
1007 (_Hash_node_value_base<>::_M_valptr(), _Hash_node_value_base<>::_M_v())
1008 Add [[__gnu__::__always_inline__]].
1010 2023-09-27 Jonathan Wakely <jwakely@redhat.com>
1012 * python/libstdcxx/v6/printers.py (StdChronoTimeZoneRulePrinter):
1013 Fix incorrect number of replacement fields.
1015 2023-09-26 Hans-Peter Nilsson <hp@axis.com>
1017 * testsuite/29_atomics/atomic_flag/cons/value_init.cc: Add
1018 dg-require-thread-fence.
1020 2023-09-25 Patrick Palka <ppalka@redhat.com>
1022 * include/std/charconv (__detail::__integer_to_chars_result_type):
1024 (__detail::__to_chars_16): Use to_chars_result as return type.
1025 (__detail::__to_chars_10): Likewise.
1026 (__detail::__to_chars_8): Likewise.
1027 (__detail::__to_chars_2): Likewise.
1028 (__detail::__to_chars_i): Likewise.
1029 (__detail::__integer_from_chars_result_type): Inline the
1031 (from_chars): ... here. Use __is_standard_integer in the
1032 constraint. Encode constraint as a defaulted non-type template
1033 parameter instead of within the return type.
1035 2023-09-25 John David Anglin <danglin@gcc.gnu.org>
1037 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
1039 2023-09-25 Jonathan Wakely <jwakely@redhat.com>
1043 * include/std/array (to_array): Cast memcpy arguments to void*.
1044 * testsuite/23_containers/array/creation/111512.cc: New test.
1046 2023-09-25 Jonathan Wakely <jwakely@redhat.com>
1048 * include/bits/move.h (forward_list): Define for C++23.
1049 * include/bits/version.def (forward_like): Define.
1050 * include/bits/version.h: Regenerate.
1051 * include/std/utility (__glibcxx_want_forward_like): Define.
1052 * testsuite/20_util/forward_like/1.cc: New test.
1053 * testsuite/20_util/forward_like/2_neg.cc: New test.
1054 * testsuite/20_util/forward_like/version.cc: New test.
1056 2023-09-19 Marek Polacek <polacek@redhat.com>
1058 * testsuite/20_util/allocator/105975.cc: Add dg-error.
1060 2023-09-18 Patrick Palka <ppalka@redhat.com>
1064 * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
1065 Make data member seed_seq::called mutable.
1066 * testsuite/26_numerics/random/independent_bits_engine/cons/seed_seq2.cc:
1068 * testsuite/26_numerics/random/linear_congruential_engine/cons/seed_seq2.cc:
1070 * testsuite/26_numerics/random/mersenne_twister_engine/cons/seed_seq2.cc:
1072 * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
1074 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/seed_seq2.cc:
1076 * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/seed_seq2.cc:
1079 2023-09-18 Jonathan Wakely <jwakely@redhat.com>
1081 * doc/xml/manual/status_cxx2020.xml: Tweak P1466R3 status.
1082 * doc/html/manual/status.html: Regenerate.
1084 2023-09-18 Jonathan Wakely <jwakely@redhat.com>
1086 * doc/xml/manual/configure.xml: Use conventional option name.
1087 * doc/xml/manual/status_cxx2020.xml: Update.
1088 * doc/xml/manual/status_cxx2023.xml: Update.
1089 * doc/html/*: Regenerate.
1091 2023-09-18 Jonathan Wakely <jwakely@redhat.com>
1093 * doc/xml/manual/intro.xml: Clarify that building libstdc++
1094 separately from GCC is not supported.
1095 * doc/xml/manual/prerequisites.xml: Note msgfmt prerequisite for
1097 * doc/html/manual/setup.html: Regenerate.
1099 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1101 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Do not
1102 restrict to pthreads targets.
1103 * testsuite/30_threads/jthread/3.cc: Likewise.
1104 * testsuite/30_threads/semaphore/100806.cc: Likewise.
1105 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise.
1106 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise.
1107 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Likewise.
1109 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1111 * testsuite/18_support/coroutines/95917.cc: Remove dg-options
1113 * testsuite/18_support/coroutines/hash.cc: Likewise.
1114 * testsuite/18_support/coroutines/lwg3460.cc: Likewise.
1115 * testsuite/18_support/destroying_delete.cc: Likewise.
1116 * testsuite/18_support/source_location/1.cc: Likewise.
1117 * testsuite/18_support/source_location/consteval.cc: Likewise.
1118 * testsuite/18_support/source_location/version.cc: Likewise.
1119 * testsuite/19_diagnostics/error_category/operators/three_way.cc:
1121 * testsuite/19_diagnostics/error_code/operators/three_way.cc:
1123 * testsuite/19_diagnostics/error_condition/operators/three_way.cc:
1125 * testsuite/19_diagnostics/stacktrace/output.cc: Likewise.
1126 * testsuite/26_numerics/adjacent_difference/lwg2055.cc:
1128 * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise.
1129 * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise.
1130 * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise.
1131 * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise.
1132 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise.
1133 * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc:
1135 * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
1137 * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
1139 * testsuite/28_regex/sub_match/compare_c++20.cc: Likewise.
1140 * testsuite/experimental/filesystem/iterators/106201.cc:
1142 * testsuite/experimental/scopeguard/exit.cc: Likewise.
1143 * testsuite/experimental/scopeguard/uniqueres.cc: Likewise.
1145 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1147 * testsuite/30_threads/barrier/1.cc: Remove dg-options
1149 * testsuite/30_threads/barrier/2.cc: Likewise.
1150 * testsuite/30_threads/barrier/arrive.cc: Likewise.
1151 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise.
1152 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise.
1153 * testsuite/30_threads/barrier/completion.cc: Likewise.
1154 * testsuite/30_threads/condition_variable/members/clock_neg.cc:
1156 * testsuite/30_threads/condition_variable_any/members/clock_neg.cc:
1158 * testsuite/30_threads/condition_variable_any/stop_token/1.cc:
1160 * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
1162 * testsuite/30_threads/future/members/clock_neg.cc: Likewise.
1163 * testsuite/30_threads/headers/stop_token/synopsis.cc: Likewise.
1164 * testsuite/30_threads/headers/thread/types_std_c++20.cc:
1166 * testsuite/30_threads/jthread/1.cc: Likewise.
1167 * testsuite/30_threads/jthread/100612.cc: Likewise.
1168 * testsuite/30_threads/jthread/95989.cc: Likewise.
1169 * testsuite/30_threads/jthread/jthread.cc: Likewise.
1170 * testsuite/30_threads/jthread/version.cc: Likewise.
1171 * testsuite/30_threads/latch/1.cc: Likewise.
1172 * testsuite/30_threads/latch/2.cc: Likewise.
1173 * testsuite/30_threads/latch/3.cc: Likewise.
1174 * testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc:
1176 * testsuite/30_threads/semaphore/1.cc: Likewise.
1177 * testsuite/30_threads/semaphore/2.cc: Likewise.
1178 * testsuite/30_threads/semaphore/least_max_value_neg.cc:
1180 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise.
1181 * testsuite/30_threads/shared_future/members/clock_neg.cc:
1183 * testsuite/30_threads/shared_lock/locking/clock_neg.cc:
1185 * testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc:
1187 * testsuite/30_threads/stop_token/1.cc: Likewise.
1188 * testsuite/30_threads/stop_token/2.cc: Likewise.
1189 * testsuite/30_threads/stop_token/stop_callback.cc: Likewise.
1190 * testsuite/30_threads/stop_token/stop_callback/deadlock.cc:
1192 * testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc:
1194 * testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc:
1196 * testsuite/30_threads/stop_token/stop_callback/invoke.cc:
1198 * testsuite/30_threads/stop_token/stop_source.cc: Likewise.
1199 * testsuite/30_threads/stop_token/stop_source/assign.cc:
1201 * testsuite/30_threads/stop_token/stop_token.cc: Likewise.
1202 * testsuite/30_threads/stop_token/stop_token/stop_possible.cc:
1204 * testsuite/30_threads/thread/id/operators_c++20.cc: Likewise.
1205 * testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc:
1207 * testsuite/30_threads/unique_lock/locking/clock_neg.cc:
1210 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1212 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc:
1213 Remove dg-options -std=gnu++2a.
1214 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc:
1216 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc:
1218 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc:
1220 * testsuite/27_io/basic_istringstream/cons/char/1.cc: Likewise.
1221 * testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc:
1223 * testsuite/27_io/basic_istringstream/str/char/2.cc: Likewise.
1224 * testsuite/27_io/basic_istringstream/str/wchar_t/2.cc:
1226 * testsuite/27_io/basic_istringstream/view/char/1.cc: Likewise.
1227 * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
1229 * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
1230 * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc:
1232 * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc:
1234 * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise.
1235 * testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc:
1237 * testsuite/27_io/basic_ostringstream/str/char/3.cc: Likewise.
1238 * testsuite/27_io/basic_ostringstream/str/wchar_t/3.cc:
1240 * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
1241 * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
1243 * testsuite/27_io/basic_stringbuf/cons/char/2.cc: Likewise.
1244 * testsuite/27_io/basic_stringbuf/cons/wchar_t/2.cc: Likewise.
1245 * testsuite/27_io/basic_stringbuf/str/char/4.cc: Likewise.
1246 * testsuite/27_io/basic_stringbuf/str/wchar_t/4.cc: Likewise.
1247 * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
1248 * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
1249 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise.
1250 * testsuite/27_io/basic_stringstream/cons/char/97719.cc:
1252 * testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc:
1254 * testsuite/27_io/basic_stringstream/str/char/5.cc: Likewise.
1255 * testsuite/27_io/basic_stringstream/str/wchar_t/5.cc.cc:
1257 * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
1258 * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
1260 * testsuite/27_io/basic_syncbuf/1.cc: Likewise.
1261 * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
1262 * testsuite/27_io/basic_syncbuf/basic_ops/1.cc: Likewise.
1263 * testsuite/27_io/basic_syncbuf/requirements/types.cc: Likewise.
1264 * testsuite/27_io/basic_syncbuf/sync_ops/1.cc: Likewise.
1265 * testsuite/27_io/basic_syncstream/1.cc: Likewise.
1266 * testsuite/27_io/basic_syncstream/2.cc: Likewise.
1267 * testsuite/27_io/basic_syncstream/basic_ops/1.cc: Likewise.
1268 * testsuite/27_io/basic_syncstream/requirements/types.cc:
1270 * testsuite/27_io/filesystem/iterators/106201.cc: Likewise.
1271 * testsuite/27_io/filesystem/iterators/lwg3719.cc: Likewise.
1272 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc:
1274 * testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc:
1277 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1279 * testsuite/26_numerics/accumulate/constexpr.cc: Remove
1280 dg-options -std=gnu++2a.
1281 * testsuite/26_numerics/accumulate/lwg2055.cc: Likewise.
1282 * testsuite/26_numerics/adjacent_difference/constexpr.cc:
1284 * testsuite/26_numerics/bit/bit.cast/105027.cc: Likewise.
1285 * testsuite/26_numerics/bit/bit.cast/bit_cast.cc: Likewise.
1286 * testsuite/26_numerics/bit/bit.cast/version.cc: Likewise.
1287 * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise.
1288 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc:
1290 * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise.
1291 * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise.
1292 * testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc: Likewise.
1293 * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise.
1294 * testsuite/26_numerics/bit/bit.rotate/rotr.cc: Likewise.
1295 * testsuite/26_numerics/bit/header-2.cc: Likewise.
1296 * testsuite/26_numerics/bit/header.cc: Likewise.
1297 * testsuite/26_numerics/complex/1.cc: Likewise.
1298 * testsuite/26_numerics/complex/2.cc: Likewise.
1299 * testsuite/26_numerics/complex/comparison_operators/more_constexpr.cc:
1301 * testsuite/26_numerics/complex/operators/more_constexpr.cc:
1303 * testsuite/26_numerics/complex/requirements/more_constexpr.cc:
1305 * testsuite/26_numerics/complex/value_operations/more_constexpr.cc:
1307 * testsuite/26_numerics/endian/1.cc: Likewise.
1308 * testsuite/26_numerics/endian/2.cc: Likewise.
1309 * testsuite/26_numerics/endian/3.cc: Likewise.
1310 * testsuite/26_numerics/exclusive_scan/constexpr.cc: Likewise.
1311 * testsuite/26_numerics/inclusive_scan/constexpr.cc: Likewise.
1312 * testsuite/26_numerics/inner_product/constexpr.cc: Likewise.
1313 * testsuite/26_numerics/inner_product/lwg2055.cc: Likewise.
1314 * testsuite/26_numerics/iota/constexpr.cc: Likewise.
1315 * testsuite/26_numerics/lerp/1.cc: Likewise.
1316 * testsuite/26_numerics/lerp/constexpr.cc: Likewise.
1317 * testsuite/26_numerics/lerp/version.cc: Likewise.
1318 * testsuite/26_numerics/midpoint/floating.cc: Likewise.
1319 * testsuite/26_numerics/midpoint/integral.cc: Likewise.
1320 * testsuite/26_numerics/midpoint/pointer.cc: Likewise.
1321 * testsuite/26_numerics/midpoint/pointer_neg.cc: Likewise.
1322 * testsuite/26_numerics/midpoint/version.cc: Likewise.
1323 * testsuite/26_numerics/numbers/1.cc: Likewise.
1324 * testsuite/26_numerics/numbers/2.cc: Likewise.
1325 * testsuite/26_numerics/numbers/3.cc: Likewise.
1326 * testsuite/26_numerics/numbers/float128.cc: Likewise.
1327 * testsuite/26_numerics/numbers/nonfloat_neg.cc: Likewise.
1328 * testsuite/26_numerics/partial_sum/constexpr.cc: Likewise.
1329 * testsuite/26_numerics/partial_sum/lwg2055.cc: Likewise.
1330 * testsuite/26_numerics/random/concept.cc: Likewise.
1331 * testsuite/26_numerics/reduce/constexpr.cc: Likewise.
1332 * testsuite/26_numerics/slice/compare.cc: Likewise.
1333 * testsuite/26_numerics/transform_exclusive_scan/constexpr.cc:
1335 * testsuite/26_numerics/transform_inclusive_scan/constexpr.cc:
1337 * testsuite/26_numerics/transform_reduce/constexpr.cc: Likewise.
1339 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1341 * testsuite/24_iterators/aliases.cc: Remove dg-options
1343 * testsuite/24_iterators/associated_types/incrementable.traits.cc:
1345 * testsuite/24_iterators/associated_types/iterator.traits.cc:
1347 * testsuite/24_iterators/associated_types/readable.traits.cc:
1349 * testsuite/24_iterators/back_insert_iterator/constexpr.cc:
1351 * testsuite/24_iterators/back_insert_iterator/pr93884.cc:
1353 * testsuite/24_iterators/bidirectional/concept.cc: Likewise.
1354 * testsuite/24_iterators/common_iterator/1.cc: Likewise.
1355 * testsuite/24_iterators/common_iterator/100823.cc: Likewise.
1356 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
1357 * testsuite/24_iterators/contiguous/concept.cc: Likewise.
1358 * testsuite/24_iterators/contiguous/tag.cc: Likewise.
1359 * testsuite/24_iterators/counted_iterator/1.cc: Likewise.
1360 * testsuite/24_iterators/counted_iterator/lwg3389.cc: Likewise.
1361 * testsuite/24_iterators/counted_iterator/lwg3643.cc: Likewise.
1362 * testsuite/24_iterators/customization_points/92894.cc:
1364 * testsuite/24_iterators/customization_points/iter_move.cc:
1366 * testsuite/24_iterators/customization_points/iter_swap.cc:
1368 * testsuite/24_iterators/customization_points/lwg3420.cc:
1370 * testsuite/24_iterators/forward/concept.cc: Likewise.
1371 * testsuite/24_iterators/front_insert_iterator/constexpr.cc:
1373 * testsuite/24_iterators/front_insert_iterator/pr93884.cc:
1375 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc:
1377 * testsuite/24_iterators/indirect_callable/92894.cc: Likewise.
1378 * testsuite/24_iterators/indirect_callable/projected-adl.cc:
1380 * testsuite/24_iterators/indirect_callable/projected.cc:
1382 * testsuite/24_iterators/input/concept.cc: Likewise.
1383 * testsuite/24_iterators/insert_iterator/constexpr.cc: Likewise.
1384 * testsuite/24_iterators/istream_iterator/cons/sentinel.cc:
1386 * testsuite/24_iterators/istream_iterator/sentinel.cc: Likewise.
1387 * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc:
1389 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc:
1391 * testsuite/24_iterators/move_iterator/cust.cc: Likewise.
1392 * testsuite/24_iterators/move_iterator/dr3435.cc: Likewise.
1393 * testsuite/24_iterators/move_iterator/input_iterator.cc:
1395 * testsuite/24_iterators/move_iterator/lwg3390.cc: Likewise.
1396 * testsuite/24_iterators/move_iterator/lwg3391.cc: Likewise.
1397 * testsuite/24_iterators/move_iterator/move_only.cc: Likewise.
1398 * testsuite/24_iterators/move_iterator/p2520r0.cc: Likewise.
1399 * testsuite/24_iterators/move_iterator/rel_ops_c++20.cc:
1401 * testsuite/24_iterators/move_iterator/sentinel.cc: Likewise.
1402 * testsuite/24_iterators/normal_iterator/cmp_c++20.cc: Likewise.
1403 * testsuite/24_iterators/output/concept.cc: Likewise.
1404 * testsuite/24_iterators/random_access/concept.cc: Likewise.
1405 * testsuite/24_iterators/range_access/range_access_cpp20.cc:
1407 * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
1409 * testsuite/24_iterators/range_operations/100768.cc: Likewise.
1410 * testsuite/24_iterators/range_operations/advance.cc: Likewise.
1411 * testsuite/24_iterators/range_operations/advance_overflow.cc:
1413 * testsuite/24_iterators/range_operations/distance.cc: Likewise.
1414 * testsuite/24_iterators/range_operations/lwg3392.cc: Likewise.
1415 * testsuite/24_iterators/range_operations/next.cc: Likewise.
1416 * testsuite/24_iterators/range_operations/prev.cc: Likewise.
1417 * testsuite/24_iterators/reverse_iterator/cust.cc: Likewise.
1418 * testsuite/24_iterators/reverse_iterator/dr3435.cc: Likewise.
1419 * testsuite/24_iterators/reverse_iterator/rel_ops_c++20.cc:
1422 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1424 * testsuite/23_containers/array/comparison_operators/96851.cc:
1425 Remove dg-options -std=gnu++2a.
1426 * testsuite/23_containers/array/comparison_operators/constexpr.cc:
1428 * testsuite/23_containers/array/creation/1.cc: Likewise.
1429 * testsuite/23_containers/array/creation/110167.cc: Likewise.
1430 * testsuite/23_containers/array/creation/2.cc: Likewise.
1431 * testsuite/23_containers/array/creation/3_neg.cc: Likewise.
1432 * testsuite/23_containers/array/requirements/constexpr_fill.cc:
1434 * testsuite/23_containers/array/requirements/constexpr_swap.cc:
1436 * testsuite/23_containers/deque/48101-3_neg.cc: Likewise.
1437 * testsuite/23_containers/deque/erasure.cc: Likewise.
1438 * testsuite/23_containers/deque/modifiers/emplace/92878_92947.cc:
1440 * testsuite/23_containers/deque/operators/cmp_c++20.cc:
1442 * testsuite/23_containers/forward_list/48101-3_neg.cc: Likewise.
1443 * testsuite/23_containers/forward_list/cmp_c++20.cc: Likewise.
1444 * testsuite/23_containers/forward_list/erasure.cc: Likewise.
1445 * testsuite/23_containers/forward_list/modifiers/92878_92947.cc:
1447 * testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc:
1449 * testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc:
1451 * testsuite/23_containers/list/48101-3_neg.cc: Likewise.
1452 * testsuite/23_containers/list/cmp_c++20.cc: Likewise.
1453 * testsuite/23_containers/list/erasure.cc: Likewise.
1454 * testsuite/23_containers/list/modifiers/emplace/92878_92947.cc:
1456 * testsuite/23_containers/list/operations/remove_cxx20_return.cc:
1458 * testsuite/23_containers/list/operations/unique_cxx20_return.cc:
1460 * testsuite/23_containers/map/48101-3_neg.cc: Likewise.
1461 * testsuite/23_containers/map/erasure.cc: Likewise.
1462 * testsuite/23_containers/map/modifiers/emplace/92878_92947.cc:
1464 * testsuite/23_containers/map/operations/contains.cc: Likewise.
1465 * testsuite/23_containers/map/operators/cmp_c++20.cc: Likewise.
1466 * testsuite/23_containers/multimap/48101-3_neg.cc: Likewise.
1467 * testsuite/23_containers/multimap/modifiers/emplace/92878_92947.cc:
1469 * testsuite/23_containers/multimap/operations/contains.cc:
1471 * testsuite/23_containers/multimap/operators/cmp_c++20.cc:
1473 * testsuite/23_containers/multiset/48101-3_neg.cc: Likewise.
1474 * testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc:
1476 * testsuite/23_containers/multiset/operations/contains.cc:
1478 * testsuite/23_containers/multiset/operators/cmp_c++20.cc:
1480 * testsuite/23_containers/priority_queue/92878_92947.cc:
1482 * testsuite/23_containers/queue/92878_92947.cc: Likewise.
1483 * testsuite/23_containers/queue/cmp_c++20.cc: Likewise.
1484 * testsuite/23_containers/set/48101-3_neg.cc: Likewise.
1485 * testsuite/23_containers/set/erasure.cc: Likewise.
1486 * testsuite/23_containers/set/modifiers/emplace/92878_92947.cc:
1488 * testsuite/23_containers/set/operations/contains.cc: Likewise.
1489 * testsuite/23_containers/set/operators/cmp_c++20.cc: Likewise.
1490 * testsuite/23_containers/span/1.cc: Likewise.
1491 * testsuite/23_containers/span/101411.cc: Likewise.
1492 * testsuite/23_containers/span/2.cc: Likewise.
1493 * testsuite/23_containers/span/deduction.cc: Likewise.
1494 * testsuite/23_containers/span/explicit.cc: Likewise.
1495 * testsuite/23_containers/span/layout_compat.cc: Likewise.
1496 * testsuite/23_containers/span/lwg3255.cc: Likewise.
1497 * testsuite/23_containers/span/nothrow_cons.cc: Likewise.
1498 * testsuite/23_containers/span/trivially_copyable.cc: Likewise.
1499 * testsuite/23_containers/stack/92878_92947.cc: Likewise.
1500 * testsuite/23_containers/stack/cmp_c++20.cc: Likewise.
1501 * testsuite/23_containers/unordered_map/48101-3_neg.cc:
1503 * testsuite/23_containers/unordered_map/erasure.cc: Likewise.
1504 * testsuite/23_containers/unordered_map/modifiers/92878_92947.cc:
1506 * testsuite/23_containers/unordered_map/operations/1.cc:
1508 * testsuite/23_containers/unordered_map/operations/contains.cc:
1510 * testsuite/23_containers/unordered_multimap/48101-3_neg.cc:
1512 * testsuite/23_containers/unordered_multimap/modifiers/92878_92947.cc:
1514 * testsuite/23_containers/unordered_multimap/operations/1.cc:
1516 * testsuite/23_containers/unordered_multimap/operations/contains.cc:
1518 * testsuite/23_containers/unordered_multiset/48101-3_neg.cc:
1520 * testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc:
1522 * testsuite/23_containers/unordered_multiset/operations/1.cc:
1524 * testsuite/23_containers/unordered_multiset/operations/contains.cc:
1526 * testsuite/23_containers/unordered_set/48101-3_neg.cc:
1528 * testsuite/23_containers/unordered_set/erasure.cc: Likewise.
1529 * testsuite/23_containers/unordered_set/modifiers/92878_92947.cc:
1531 * testsuite/23_containers/unordered_set/operations/1.cc:
1533 * testsuite/23_containers/unordered_set/operations/contains.cc:
1535 * testsuite/23_containers/vector/48101-3_neg.cc: Likewise.
1536 * testsuite/23_containers/vector/bool/capacity/constexpr.cc:
1538 * testsuite/23_containers/vector/bool/cmp_c++20.cc: Likewise.
1539 * testsuite/23_containers/vector/bool/cons/constexpr.cc:
1541 * testsuite/23_containers/vector/bool/element_access/constexpr.cc:
1543 * testsuite/23_containers/vector/bool/iterator_c++20.cc:
1545 * testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc:
1547 * testsuite/23_containers/vector/bool/modifiers/constexpr.cc:
1549 * testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc:
1551 * testsuite/23_containers/vector/capacity/constexpr.cc:
1553 * testsuite/23_containers/vector/cmp_c++20.cc: Likewise.
1554 * testsuite/23_containers/vector/cons/constexpr.cc: Likewise.
1555 * testsuite/23_containers/vector/data_access/constexpr.cc:
1557 * testsuite/23_containers/vector/element_access/constexpr.cc:
1559 * testsuite/23_containers/vector/erasure.cc: Likewise.
1560 * testsuite/23_containers/vector/modifiers/assign/constexpr.cc:
1562 * testsuite/23_containers/vector/modifiers/constexpr.cc:
1564 * testsuite/23_containers/vector/modifiers/emplace/92878_92947.cc:
1566 * testsuite/23_containers/vector/modifiers/swap/constexpr.cc:
1568 * testsuite/23_containers/vector/requirements/version.cc:
1571 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1573 * testsuite/21_strings/basic_string/cons/char/105995.cc: Remove
1574 dg-options -std=gnu++20.
1575 * testsuite/21_strings/basic_string/cons/char/constexpr.cc:
1577 * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc:
1579 * testsuite/21_strings/basic_string/erasure.cc: Likewise.
1580 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
1582 * testsuite/21_strings/basic_string/literals/constexpr.cc:
1584 * testsuite/21_strings/basic_string/modifiers/constexpr.cc:
1586 * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
1588 * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
1590 * testsuite/21_strings/basic_string/operations/ends_with/char.cc:
1592 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc:
1594 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
1596 * testsuite/21_strings/basic_string/operations/starts_with/char.cc:
1598 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc:
1600 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
1602 * testsuite/21_strings/basic_string/operators/char/cmp_c++20.cc:
1604 * testsuite/21_strings/basic_string/operators/wchar_t/cmp_c++20.cc:
1606 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
1608 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
1610 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc:
1612 * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
1614 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc:
1616 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
1618 * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
1620 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc:
1622 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
1624 * testsuite/21_strings/basic_string_view/operators/char/cmp_c++20.cc:
1626 * testsuite/21_strings/basic_string_view/operators/wchar_t/cmp_c++20.cc:
1628 * testsuite/21_strings/basic_string_view/requirements/constexpr_iter.cc:
1630 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc:
1633 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1635 * testsuite/20_util/allocator/105975.cc: Remove dg-options
1637 * testsuite/20_util/allocator/rebind_c++20.cc: Likewise.
1638 * testsuite/20_util/allocator/requirements/constexpr.cc:
1640 * testsuite/20_util/allocator/requirements/typedefs_c++20.cc:
1642 * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
1643 * testsuite/20_util/allocator_traits/header.cc: Likewise.
1644 * testsuite/20_util/allocator_traits/members/92878_92947.cc:
1646 * testsuite/20_util/any/assign/92878_92947.cc: Likewise.
1647 * testsuite/20_util/any/cons/92878_92947.cc: Likewise.
1648 * testsuite/20_util/assume_aligned/1.cc: Likewise.
1649 * testsuite/20_util/assume_aligned/2_neg.cc: Likewise.
1650 * testsuite/20_util/assume_aligned/3.cc: Likewise.
1651 * testsuite/20_util/assume_aligned/97132.cc: Likewise.
1652 * testsuite/20_util/bind/constexpr.cc: Likewise.
1653 * testsuite/20_util/bitset/operations/96303.cc: Likewise.
1654 * testsuite/20_util/common_reference/100894.cc: Likewise.
1655 * testsuite/20_util/common_reference/requirements/alias_decl.cc:
1657 * testsuite/20_util/common_reference/requirements/explicit_instantiation.cc:
1659 * testsuite/20_util/common_reference/requirements/typedefs.cc:
1661 * testsuite/20_util/duration/comparison_operators/three_way.cc:
1663 * testsuite/20_util/exchange/constexpr.cc: Likewise.
1664 * testsuite/20_util/exchange/noexcept.cc: Likewise.
1665 * testsuite/20_util/from_chars/1_c++20_neg.cc: Likewise.
1666 * testsuite/20_util/from_chars/compare.cc: Likewise.
1667 * testsuite/20_util/function_objects/bind_front/1.cc: Likewise.
1668 * testsuite/20_util/function_objects/bind_front/107784.cc:
1670 * testsuite/20_util/function_objects/bind_front/111327.cc:
1672 * testsuite/20_util/function_objects/bind_front/2.cc: Likewise.
1673 * testsuite/20_util/function_objects/bind_front/97101.cc:
1675 * testsuite/20_util/function_objects/bind_front/constexpr.cc:
1677 * testsuite/20_util/function_objects/constexpr_searcher.cc:
1679 * testsuite/20_util/function_objects/identity/1.cc: Likewise.
1680 * testsuite/20_util/function_objects/invoke/constexpr.cc:
1682 * testsuite/20_util/function_objects/mem_fn/constexpr.cc:
1684 * testsuite/20_util/function_objects/not_fn/constexpr.cc:
1686 * testsuite/20_util/integer_comparisons/1.cc: Likewise.
1687 * testsuite/20_util/integer_comparisons/2.cc: Likewise.
1688 * testsuite/20_util/integer_comparisons/equal.cc: Likewise.
1689 * testsuite/20_util/integer_comparisons/equal_neg.cc: Likewise.
1690 * testsuite/20_util/integer_comparisons/greater.cc: Likewise.
1691 * testsuite/20_util/integer_comparisons/greater_equal.cc:
1693 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc:
1695 * testsuite/20_util/integer_comparisons/greater_neg.cc:
1697 * testsuite/20_util/integer_comparisons/in_range.cc: Likewise.
1698 * testsuite/20_util/integer_comparisons/in_range_neg.cc:
1700 * testsuite/20_util/integer_comparisons/less.cc: Likewise.
1701 * testsuite/20_util/integer_comparisons/less_equal.cc: Likewise.
1702 * testsuite/20_util/integer_comparisons/less_equal_neg.cc:
1704 * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise.
1705 * testsuite/20_util/integer_comparisons/not_equal.cc: Likewise.
1706 * testsuite/20_util/integer_comparisons/not_equal_neg.cc:
1708 * testsuite/20_util/is_bounded_array/requirements/explicit_instantiation.cc:
1710 * testsuite/20_util/is_bounded_array/requirements/typedefs.cc:
1712 * testsuite/20_util/is_bounded_array/value.cc: Likewise.
1713 * testsuite/20_util/is_constant_evaluated/1.cc: Likewise.
1714 * testsuite/20_util/is_constant_evaluated/noexcept.cc: Likewise.
1715 * testsuite/20_util/is_constructible/92878_92947.cc: Likewise.
1716 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc:
1718 * testsuite/20_util/is_layout_compatible/value.cc: Likewise.
1719 * testsuite/20_util/is_layout_compatible/version.cc: Likewise.
1720 * testsuite/20_util/is_nothrow_constructible/value_c++20.cc:
1722 * testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc:
1724 * testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc:
1726 * testsuite/20_util/is_nothrow_convertible/value.cc: Likewise.
1727 * testsuite/20_util/is_pod/deprecated-2a.cc: Likewise.
1728 * testsuite/20_util/is_pointer_interconvertible/value.cc:
1730 * testsuite/20_util/is_pointer_interconvertible/version.cc:
1732 * testsuite/20_util/is_pointer_interconvertible/with_class.cc:
1734 * testsuite/20_util/is_unbounded_array/requirements/explicit_instantiation.cc:
1736 * testsuite/20_util/is_unbounded_array/requirements/typedefs.cc:
1738 * testsuite/20_util/is_unbounded_array/value.cc: Likewise.
1739 * testsuite/20_util/optional/assignment/92878_92947.cc:
1741 * testsuite/20_util/optional/cons/92878_92947.cc: Likewise.
1742 * testsuite/20_util/optional/constexpr/assign.cc: Likewise.
1743 * testsuite/20_util/optional/constexpr/cons/conv.cc: Likewise.
1744 * testsuite/20_util/optional/constexpr/modifiers.cc: Likewise.
1745 * testsuite/20_util/optional/constexpr/swap.cc: Likewise.
1746 * testsuite/20_util/optional/relops/96269.cc: Likewise.
1747 * testsuite/20_util/optional/relops/three_way.cc: Likewise.
1748 * testsuite/20_util/pair/comparison_operators/constexpr_c++20.cc:
1750 * testsuite/20_util/pair/cons/92878_92947.cc: Likewise.
1751 * testsuite/20_util/pair/constexpr_assign.cc: Likewise.
1752 * testsuite/20_util/pair/constexpr_swap.cc: Likewise.
1753 * testsuite/20_util/pair/requirements/structural.cc: Likewise.
1754 * testsuite/20_util/pointer_traits/pointer_to_constexpr.cc:
1756 * testsuite/20_util/polymorphic_allocator/allocate_object.cc:
1758 * testsuite/20_util/polymorphic_allocator/construct_c++2a.cc:
1760 * testsuite/20_util/polymorphic_allocator/lwg3237.cc: Likewise.
1761 * testsuite/20_util/reference_wrapper/constexpr.cc: Likewise.
1762 * testsuite/20_util/reference_wrapper/incomplete.cc: Likewise.
1763 * testsuite/20_util/remove_cvref/requirements/alias_decl.cc:
1765 * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc:
1767 * testsuite/20_util/remove_cvref/value.cc: Likewise.
1768 * testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc:
1770 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
1772 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
1773 * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc:
1775 * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Likewise.
1776 * testsuite/20_util/shared_ptr/creation/92878_92947.cc:
1778 * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
1779 * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
1780 * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
1781 * testsuite/20_util/time_point/4.cc: Likewise.
1782 * testsuite/20_util/time_point/comparison_operators/three_way.cc:
1784 * testsuite/20_util/to_address/1.cc: Likewise.
1785 * testsuite/20_util/to_address/1_neg.cc: Likewise.
1786 * testsuite/20_util/to_address/debug.cc: Likewise.
1787 * testsuite/20_util/to_address/lwg3545.cc: Likewise.
1788 * testsuite/20_util/to_chars/compare.cc: Likewise.
1789 * testsuite/20_util/tuple/comparison_operators/three_way.cc:
1791 * testsuite/20_util/tuple/cons/102270.cc: Likewise.
1792 * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
1794 * testsuite/20_util/tuple/constexpr_swap.cc: Likewise.
1795 * testsuite/20_util/type_identity/requirements/alias_decl.cc:
1797 * testsuite/20_util/type_identity/requirements/explicit_instantiation.cc:
1799 * testsuite/20_util/type_identity/requirements/typedefs.cc:
1801 * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
1803 * testsuite/20_util/unique_ptr/comparison/compare_c++20.cc:
1805 * testsuite/20_util/unique_ptr/creation/92878_92947.cc:
1807 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
1809 * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc:
1811 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Likewise.
1812 * testsuite/20_util/unwrap_reference/1.cc: Likewise.
1813 * testsuite/20_util/unwrap_reference/2.cc: Likewise.
1814 * testsuite/20_util/unwrap_reference/3.cc: Likewise.
1815 * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise.
1816 * testsuite/20_util/uses_allocator/lwg3527.cc: Likewise.
1817 * testsuite/20_util/uses_allocator/make_obj.cc: Likewise.
1818 * testsuite/20_util/uses_allocator/uninitialized_construct.cc:
1820 * testsuite/20_util/variant/92878_92947.cc: Likewise.
1821 * testsuite/20_util/variant/95915.cc: Likewise.
1822 * testsuite/20_util/variant/constexpr.cc: Likewise.
1823 * testsuite/20_util/variant/relops/three_way.cc: Likewise.
1824 * testsuite/20_util/variant/visit_neg.cc: Likewise.
1825 * testsuite/20_util/variant/visit_r.cc: Likewise.
1826 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
1828 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1830 * testsuite/18_support/comparisons/algorithms/fallback.cc:
1831 Remove dg-options -std=gnu++2a.
1832 * testsuite/18_support/comparisons/algorithms/partial_order.cc:
1834 * testsuite/18_support/comparisons/algorithms/strong_order.cc:
1836 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
1838 * testsuite/18_support/comparisons/algorithms/weak_order.cc:
1840 * testsuite/18_support/comparisons/categories/94565.cc:
1842 * testsuite/18_support/comparisons/categories/partialord.cc:
1844 * testsuite/18_support/comparisons/categories/strongord.cc:
1846 * testsuite/18_support/comparisons/categories/weakord.cc:
1848 * testsuite/18_support/comparisons/categories/zero_neg.cc:
1850 * testsuite/18_support/comparisons/common/1.cc: Likewise.
1851 * testsuite/18_support/comparisons/object/93479.cc: Likewise.
1852 * testsuite/18_support/comparisons/object/lwg3530.cc: Likewise.
1854 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1856 * testsuite/29_atomics/atomic/compare_exchange_padding.cc:
1857 Remove dg-options -std=gnu++2a.
1858 * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
1859 * testsuite/29_atomics/atomic/lock_free_aliases.cc: Likewise.
1860 * testsuite/29_atomics/atomic/requirements/types_neg.cc:
1862 * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
1863 * testsuite/29_atomics/atomic/wait_notify/100334.cc: Likewise.
1864 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Likewise.
1865 * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
1866 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Likewise.
1867 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise.
1868 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise.
1869 * testsuite/29_atomics/atomic_flag/cons/value_init.cc: Likewise.
1870 * testsuite/29_atomics/atomic_flag/test/explicit.cc: Likewise.
1871 * testsuite/29_atomics/atomic_flag/test/implicit.cc: Likewise.
1872 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise.
1873 * testsuite/29_atomics/atomic_float/1.cc: Likewise.
1874 * testsuite/29_atomics/atomic_float/95282.cc: Likewise.
1875 * testsuite/29_atomics/atomic_float/requirements.cc: Likewise.
1876 * testsuite/29_atomics/atomic_float/value_init.cc: Likewise.
1877 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise.
1878 * testsuite/29_atomics/atomic_integral/cons/value_init.cc:
1880 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise.
1881 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
1883 * testsuite/29_atomics/atomic_ref/deduction.cc: Likewise.
1884 * testsuite/29_atomics/atomic_ref/float.cc: Likewise.
1885 * testsuite/29_atomics/atomic_ref/generic.cc: Likewise.
1886 * testsuite/29_atomics/atomic_ref/integral.cc: Likewise.
1887 * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise.
1888 * testsuite/29_atomics/atomic_ref/requirements.cc: Likewise.
1889 * testsuite/29_atomics/headers/atomic/types_std_c++20.cc:
1891 * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc:
1893 * testsuite/29_atomics/headers/atomic/types_std_c++2a.cc:
1895 * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc:
1898 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1900 * testsuite/27_io/basic_filebuf/native_handle/char/1.cc: New test.
1901 * testsuite/27_io/basic_filebuf/native_handle/wchar_t/1.cc: New test.
1903 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1905 * acinclude.m4 (GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES): New
1907 * config.h.in: Regenerate.
1908 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export new
1909 basic_filebuf members.
1910 * config/io/basic_file_stdio.cc (__basic_file::native_handle):
1911 Define new function.
1912 * config/io/basic_file_stdio.h (__basic_file::native_handle):
1913 Declare new function.
1914 * configure: Regenerate.
1915 * configure.ac: Use GLIBCXX_CHECK_FILEBUF_NATIVE_HANDLES.
1916 * include/bits/version.def (fstream_native_handles): New macro.
1917 * include/bits/version.h: Regenerate.
1918 * include/std/fstream (basic_filebuf::native_handle)
1919 (basic_fstream::native_handle, basic_ifstream::native_handle)
1920 (basic_ofstream::native_handle): New functions.
1921 * src/c++11/Makefile.am: Move compilation of basic_file.cc,
1922 locale_init.cc and localename.cc to here.
1923 * src/c++11/Makefile.in: Regenerate.
1924 * src/c++98/locale_init.cc: Moved to...
1925 * src/c++11/locale_init.cc: ...here.
1926 * src/c++98/localename.cc: Moved to...
1927 * src/c++11/localename.cc: ...here.
1928 * src/c++98/Makefile.am: Remove basic_file.cc, locale_init.cc
1929 and localename.cc from here.
1930 * src/c++98/Makefile.in: Regenerate.
1931 * testsuite/27_io/basic_filebuf/native_handle/version.cc: New test.
1932 * testsuite/27_io/basic_fstream/native_handle/char/1.cc: New test.
1933 * testsuite/27_io/basic_fstream/native_handle/wchar_t/1.cc: New test.
1934 * testsuite/27_io/basic_ifstream/native_handle/char/1.cc: New test.
1935 * testsuite/27_io/basic_ifstream/native_handle/wchar_t/1.cc: New test.
1936 * testsuite/27_io/basic_ofstream/native_handle/char/1.cc: New test.
1937 * testsuite/27_io/basic_ofstream/native_handle/wchar_t/1.cc: New test.
1939 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1941 * testsuite/libstdc++-dg/conformance.exp: Add log line when
1942 using testsuite_files.
1944 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1946 * testsuite/20_util/shared_ptr/atomic/3.cc: Simplify dg
1948 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
1950 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc:
1952 * testsuite/20_util/synchronized_pool_resource/allocate.cc:
1954 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc:
1956 * testsuite/20_util/synchronized_pool_resource/cons.cc:
1958 * testsuite/20_util/synchronized_pool_resource/cons_single.cc:
1960 * testsuite/20_util/synchronized_pool_resource/is_equal.cc:
1962 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc:
1964 * testsuite/20_util/synchronized_pool_resource/options.cc:
1966 * testsuite/20_util/synchronized_pool_resource/release.cc:
1968 * testsuite/20_util/synchronized_pool_resource/release_single.cc:
1970 * testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
1972 * testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc:
1974 * testsuite/30_threads/stop_token/stop_callback/destroy.cc:
1977 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
1979 * testsuite/23_containers/span/back_assert_neg.cc: Remove
1980 dg-options and add effective target selector to dg-do. Add
1982 * testsuite/23_containers/span/back_neg.cc: Likewise.
1983 * testsuite/23_containers/span/cons_1_assert_neg.cc: Likewise.
1984 * testsuite/23_containers/span/cons_2_assert_neg.cc: Likewise.
1985 * testsuite/23_containers/span/first_2_assert_neg.cc: Likewise.
1986 * testsuite/23_containers/span/first_assert_neg.cc: Likewise.
1987 * testsuite/23_containers/span/first_neg.cc: Likewise.
1988 * testsuite/23_containers/span/front_assert_neg.cc: Likewise.
1989 * testsuite/23_containers/span/front_neg.cc: Likewise.
1990 * testsuite/23_containers/span/index_op_assert_neg.cc: Likewise.
1991 * testsuite/23_containers/span/index_op_neg.cc: Likewise.
1992 * testsuite/23_containers/span/last_2_assert_neg.cc: Likewise.
1993 * testsuite/23_containers/span/last_assert_neg.cc: Likewise.
1994 * testsuite/23_containers/span/last_neg.cc: Likewise.
1995 * testsuite/23_containers/span/subspan_2_assert_neg.cc:
1997 * testsuite/23_containers/span/subspan_3_assert_neg.cc:
1999 * testsuite/23_containers/span/subspan_4_assert_neg.cc:
2001 * testsuite/23_containers/span/subspan_5_assert_neg.cc:
2003 * testsuite/23_containers/span/subspan_6_assert_neg.cc:
2005 * testsuite/23_containers/span/subspan_assert_neg.cc: Likewise.
2006 * testsuite/23_containers/span/subspan_neg.cc: Likewise.
2007 * testsuite/24_iterators/range_operations/advance_debug_neg.cc:
2010 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2012 * testsuite/18_support/headers/limits/synopsis_cxx23.cc: Remove
2014 * testsuite/18_support/headers/stdfloat/types_std.cc: Likewise.
2015 * testsuite/18_support/type_info/constexpr.cc: Likewise.
2016 * testsuite/19_diagnostics/stacktrace/current.cc: Likewise.
2017 * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
2018 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
2019 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise.
2020 * testsuite/19_diagnostics/stacktrace/version.cc: Likewise.
2021 * testsuite/20_util/aligned_storage/deprecated-2b.cc: Likewise.
2022 * testsuite/20_util/aligned_union/deprecated-2b.cc: Likewise.
2023 * testsuite/20_util/bitset/access/constexpr.cc: Likewise.
2024 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
2025 * testsuite/20_util/bitset/count/constexpr.cc: Likewise.
2026 * testsuite/20_util/bitset/ext/constexpr.cc: Likewise.
2027 * testsuite/20_util/bitset/operations/constexpr_c++23.cc:
2029 * testsuite/20_util/bitset/version.cc: Likewise.
2030 * testsuite/20_util/from_chars/8.cc: Likewise.
2031 * testsuite/20_util/from_chars/constexpr.cc: Likewise.
2032 * testsuite/20_util/function/cons/deduction_c++23.cc: Likewise.
2033 * testsuite/20_util/function_objects/invoke/4.cc: Likewise.
2034 * testsuite/20_util/function_objects/invoke/dangling_ref.cc:
2036 * testsuite/20_util/is_scoped_enum/value.cc: Likewise.
2037 * testsuite/20_util/is_scoped_enum/version.cc: Likewise.
2038 * testsuite/20_util/move_only_function/call.cc: Likewise.
2039 * testsuite/20_util/move_only_function/cons.cc: Likewise.
2040 * testsuite/20_util/move_only_function/move.cc: Likewise.
2041 * testsuite/20_util/move_only_function/version.cc: Likewise.
2042 * testsuite/20_util/optional/monadic/and_then.cc: Likewise.
2043 * testsuite/20_util/optional/monadic/or_else.cc: Likewise.
2044 * testsuite/20_util/optional/monadic/or_else_neg.cc: Likewise.
2045 * testsuite/20_util/optional/monadic/pr109242.cc: Likewise.
2046 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
2047 * testsuite/20_util/pair/p2321r2.cc: Likewise.
2048 * testsuite/20_util/reference_from_temporary/value.cc: Likewise.
2049 * testsuite/20_util/reference_from_temporary/value2.cc:
2051 * testsuite/20_util/reference_from_temporary/version.cc:
2053 * testsuite/20_util/to_chars/constexpr.cc: Likewise.
2054 * testsuite/20_util/to_chars/float128_c++23.cc: Likewise.
2055 * testsuite/20_util/to_chars/float16_c++23.cc: Likewise.
2056 * testsuite/20_util/to_chars/version.cc: Likewise.
2057 * testsuite/20_util/to_underlying/1.cc: Likewise.
2058 * testsuite/20_util/to_underlying/version.cc: Likewise.
2059 * testsuite/20_util/tuple/p2321r2.cc: Likewise.
2060 * testsuite/20_util/unique_ptr/assign/constexpr.cc: Likewise.
2061 * testsuite/20_util/unique_ptr/comparison/constexpr.cc:
2063 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc:
2065 * testsuite/20_util/unique_ptr/creation/constexpr.cc: Likewise.
2066 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: Likewise.
2067 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc: Likewise.
2068 * testsuite/20_util/unreachable/1.cc: Likewise.
2069 * testsuite/20_util/unreachable/version.cc: Likewise.
2070 * testsuite/20_util/uses_allocator/lwg3677.cc: Likewise.
2071 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc: Likewise.
2072 * testsuite/21_strings/basic_string/operations/contains/char.cc:
2074 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc: Likewise.
2075 * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc: Likewise.
2076 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: Likewise.
2077 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: Likewise.
2078 * testsuite/21_strings/basic_string_view/operations/contains/char.cc: Likewise.
2079 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: Likewise.
2080 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc: Likewise.
2081 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc: Likewise.
2082 * testsuite/23_containers/queue/cons_from_iters.cc: Likewise.
2083 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise.
2084 * testsuite/23_containers/vector/bool/element_access/1.cc:
2086 * testsuite/24_iterators/const_iterator/1.cc: Likewise.
2087 * testsuite/25_algorithms/contains/1.cc: Likewise.
2088 * testsuite/25_algorithms/contains_subrange/1.cc: Likewise.
2089 * testsuite/25_algorithms/find_last/1.cc: Likewise.
2090 * testsuite/25_algorithms/find_last_if/1.cc: Likewise.
2091 * testsuite/25_algorithms/find_last_if_not/1.cc: Likewise.
2092 * testsuite/25_algorithms/fold_left/1.cc: Likewise.
2093 * testsuite/25_algorithms/fold_right/1.cc: Likewise.
2094 * testsuite/25_algorithms/iota/1.cc: Likewise.
2095 * testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: Likewise.
2096 * testsuite/26_numerics/bit/bit.byteswap/version.cc: Likewise.
2097 * testsuite/26_numerics/complex/ext_c++23.cc: Likewise.
2098 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc: Likewise.
2099 * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc:
2101 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc:
2103 * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc:
2105 * testsuite/26_numerics/numbers/4.cc: Likewise.
2106 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc: Likewise.
2107 * testsuite/27_io/filesystem/path/native/conv_c++23.cc:
2109 * testsuite/27_io/spanstream/1.cc: Likewise.
2110 * testsuite/27_io/spanstream/2.cc: Likewise.
2111 * testsuite/27_io/spanstream/version.cc: Likewise.
2112 * testsuite/29_atomics/atomic_float/requirements_cxx23.cc:
2114 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
2116 * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
2117 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
2119 * testsuite/experimental/filesystem/path/native/conv_c++23.cc:
2121 * testsuite/std/ranges/adaptors/adjacent/1.cc: Likewise.
2122 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc:
2124 * testsuite/std/ranges/adaptors/as_const/1.cc: Likewise.
2125 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
2126 * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
2127 * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
2128 * testsuite/std/ranges/adaptors/enumerate/1.cc: Likewise.
2129 * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
2130 * testsuite/std/ranges/adaptors/lwg3715.cc: Likewise.
2131 * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
2132 * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
2133 * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
2134 * testsuite/std/ranges/range_adaptor_closure.cc: Likewise.
2135 * testsuite/std/ranges/repeat/1.cc: Likewise.
2136 * testsuite/std/ranges/version_c++23.cc: Likewise.
2137 * testsuite/std/ranges/zip/1.cc: Likewise.
2138 * testsuite/std/ranges/zip_transform/1.cc: Likewise.
2140 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2142 * testsuite/20_util/expected/assign.cc: Remove dg-options.
2143 * testsuite/20_util/expected/bad.cc: Likewise.
2144 * testsuite/20_util/expected/cons.cc: Likewise.
2145 * testsuite/20_util/expected/equality.cc: Likewise.
2146 * testsuite/20_util/expected/illformed_neg.cc: Likewise.
2147 * testsuite/20_util/expected/lwg3877.cc: Likewise.
2148 * testsuite/20_util/expected/lwg3938.cc: Likewise.
2149 * testsuite/20_util/expected/monadic.cc: Likewise.
2150 * testsuite/20_util/expected/observers.cc: Likewise.
2151 * testsuite/20_util/expected/requirements.cc: Likewise.
2152 * testsuite/20_util/expected/swap.cc: Likewise.
2153 * testsuite/20_util/expected/synopsis.cc: Likewise.
2154 * testsuite/20_util/expected/unexpected.cc: Likewise.
2155 * testsuite/20_util/expected/version.cc: Likewise.
2157 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2159 * testsuite/20_util/duration/arithmetic/overflow_c++20.cc:
2161 * testsuite/20_util/duration/io.cc: Likewise.
2162 * testsuite/std/time/clock/file/io.cc: Likewise.
2163 * testsuite/std/time/clock/file/members.cc: Likewise.
2164 * testsuite/std/time/clock/file/overview.cc: Likewise.
2165 * testsuite/std/time/clock/gps/1.cc: Likewise.
2166 * testsuite/std/time/clock/gps/io.cc: Likewise.
2167 * testsuite/std/time/clock/local/io.cc: Likewise.
2168 * testsuite/std/time/clock/system/io.cc: Likewise.
2169 * testsuite/std/time/clock/tai/1.cc: Likewise.
2170 * testsuite/std/time/clock/tai/io.cc: Likewise.
2171 * testsuite/std/time/clock/utc/1.cc: Likewise.
2172 * testsuite/std/time/clock/utc/io.cc: Likewise.
2173 * testsuite/std/time/clock/utc/leap_second_info.cc: Likewise.
2174 * testsuite/std/time/day/1.cc: Likewise.
2175 * testsuite/std/time/day/io.cc: Likewise.
2176 * testsuite/std/time/exceptions.cc: Likewise.
2177 * testsuite/std/time/format.cc: Likewise.
2178 * testsuite/std/time/hh_mm_ss/1.cc: Likewise.
2179 * testsuite/std/time/hh_mm_ss/109772.cc: Likewise.
2180 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
2181 * testsuite/std/time/is_am/1.cc: Likewise.
2182 * testsuite/std/time/is_pm/1.cc: Likewise.
2183 * testsuite/std/time/make12/1.cc: Likewise.
2184 * testsuite/std/time/make24/1.cc: Likewise.
2185 * testsuite/std/time/month/1.cc: Likewise.
2186 * testsuite/std/time/month/io.cc: Likewise.
2187 * testsuite/std/time/month_day/1.cc: Likewise.
2188 * testsuite/std/time/month_day/io.cc: Likewise.
2189 * testsuite/std/time/month_day_last/1.cc: Likewise.
2190 * testsuite/std/time/month_day_last/io.cc: Likewise.
2191 * testsuite/std/time/month_weekday/1.cc: Likewise.
2192 * testsuite/std/time/month_weekday/io.cc: Likewise.
2193 * testsuite/std/time/month_weekday_last/1.cc: Likewise.
2194 * testsuite/std/time/month_weekday_last/io.cc: Likewise.
2195 * testsuite/std/time/parse.cc: Likewise.
2196 * testsuite/std/time/syn_c++20.cc: Likewise.
2197 * testsuite/std/time/time_zone/get_info_local.cc: Likewise.
2198 * testsuite/std/time/time_zone/get_info_sys.cc: Likewise.
2199 * testsuite/std/time/time_zone/requirements.cc: Likewise.
2200 * testsuite/std/time/traits/is_clock.cc: Likewise.
2201 * testsuite/std/time/tzdb/1.cc: Likewise.
2202 * testsuite/std/time/tzdb/leap_seconds.cc: Likewise.
2203 * testsuite/std/time/tzdb_list/1.cc: Likewise.
2204 * testsuite/std/time/tzdb_list/requirements.cc: Likewise.
2205 * testsuite/std/time/weekday/1.cc: Likewise.
2206 * testsuite/std/time/weekday/io.cc: Likewise.
2207 * testsuite/std/time/weekday_indexed/io.cc: Likewise.
2208 * testsuite/std/time/weekday_last/1.cc: Likewise.
2209 * testsuite/std/time/weekday_last/io.cc: Likewise.
2210 * testsuite/std/time/year/1.cc: Likewise.
2211 * testsuite/std/time/year/2.cc: Likewise.
2212 * testsuite/std/time/year/io.cc: Likewise.
2213 * testsuite/std/time/weekday_indexed/1.cc: Likewise.
2214 * testsuite/std/time/year_month/1.cc: Likewise.
2215 * testsuite/std/time/year_month/2.cc: Likewise.
2216 * testsuite/std/time/year_month/io.cc: Likewise.
2217 * testsuite/std/time/year_month_day/1.cc: Likewise.
2218 * testsuite/std/time/year_month_day/2.cc: Likewise.
2219 * testsuite/std/time/year_month_day/3.cc: Likewise.
2220 * testsuite/std/time/year_month_day/4.cc: Likewise.
2221 * testsuite/std/time/year_month_day/io.cc: Likewise.
2222 * testsuite/std/time/year_month_day_last/1.cc: Likewise.
2223 * testsuite/std/time/year_month_day_last/2.cc: Likewise.
2224 * testsuite/std/time/year_month_day_last/io.cc: Likewise.
2225 * testsuite/std/time/year_month_weekday/1.cc: Likewise.
2226 * testsuite/std/time/year_month_weekday/2.cc: Likewise.
2227 * testsuite/std/time/year_month_weekday/3.cc: Likewise.
2228 * testsuite/std/time/year_month_weekday/io.cc: Likewise.
2229 * testsuite/std/time/year_month_weekday_last/1.cc: Likewise.
2230 * testsuite/std/time/year_month_weekday_last/2.cc: Likewise.
2231 * testsuite/std/time/year_month_weekday_last/io.cc: Likewise.
2232 * testsuite/std/time/zoned_time/1.cc: Likewise.
2233 * testsuite/std/time/zoned_time/custom.cc: Likewise.
2234 * testsuite/std/time/zoned_time/deduction.cc: Likewise.
2235 * testsuite/std/time/zoned_time/io.cc: Likewise.
2236 * testsuite/std/time/zoned_time/req_neg.cc: Likewise.
2237 * testsuite/std/time/zoned_time/requirements.cc: Likewise.
2238 * testsuite/std/time/zoned_traits.cc: Likewise.
2240 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2242 * testsuite/std/format/arguments/args.cc: Remove dg-options.
2243 * testsuite/std/format/arguments/lwg3810.cc: Likewise.
2244 * testsuite/std/format/error.cc: Likewise.
2245 * testsuite/std/format/format_string.cc: Likewise.
2246 * testsuite/std/format/formatter/concept.cc: Likewise.
2247 * testsuite/std/format/formatter/ext_float.cc: Likewise.
2248 * testsuite/std/format/formatter/requirements.cc: Likewise.
2249 * testsuite/std/format/functions/107871.cc: Likewise.
2250 * testsuite/std/format/functions/format.cc: Likewise.
2251 * testsuite/std/format/functions/format_to.cc: Likewise.
2252 * testsuite/std/format/functions/format_to_n.cc: Likewise.
2253 * testsuite/std/format/functions/size.cc: Likewise.
2254 * testsuite/std/format/functions/vformat_to.cc: Likewise.
2255 * testsuite/std/format/parse_ctx.cc: Likewise.
2256 * testsuite/std/format/string.cc: Likewise.
2257 * testsuite/std/format/string_neg.cc: Likewise.
2258 * testsuite/std/format/functions/format_c++23.cc: Removed.
2260 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2262 * testsuite/20_util/function_objects/range.cmp/equal_to.cc:
2264 * testsuite/20_util/function_objects/range.cmp/greater.cc:
2266 * testsuite/20_util/function_objects/range.cmp/greater_equal.cc:
2268 * testsuite/20_util/function_objects/range.cmp/less.cc:
2270 * testsuite/20_util/function_objects/range.cmp/less_equal.cc:
2272 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc:
2274 * testsuite/20_util/function_objects/range.cmp/not_equal_to.cc:
2276 * testsuite/20_util/specialized_algorithms/construct_at/1.cc:
2278 * testsuite/20_util/specialized_algorithms/construct_at/92878_92947.cc:
2280 * testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
2282 * testsuite/20_util/specialized_algorithms/destroy/constrained.cc:
2284 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc:
2286 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc:
2288 * testsuite/20_util/specialized_algorithms/uninitialized_fill/94017.cc:
2290 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc:
2292 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/94017.cc:
2294 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc:
2296 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc:
2298 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Likewise.
2299 * testsuite/25_algorithms/adjacent_find/constrained.cc:
2301 * testsuite/25_algorithms/all_of/constexpr.cc: Likewise.
2302 * testsuite/25_algorithms/all_of/constrained.cc: Likewise.
2303 * testsuite/25_algorithms/any_of/constexpr.cc: Likewise.
2304 * testsuite/25_algorithms/any_of/constrained.cc: Likewise.
2305 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
2306 * testsuite/25_algorithms/binary_search/constrained.cc:
2308 * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
2309 * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
2310 * testsuite/25_algorithms/copy/95578.cc: Likewise.
2311 * testsuite/25_algorithms/copy/constexpr.cc: Likewise.
2312 * testsuite/25_algorithms/copy/constrained.cc: Likewise.
2313 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Likewise.
2314 * testsuite/25_algorithms/copy_backward/95578.cc: Likewise.
2315 * testsuite/25_algorithms/copy_backward/constexpr.cc: Likewise.
2316 * testsuite/25_algorithms/copy_backward/constrained.cc:
2318 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc:
2320 * testsuite/25_algorithms/copy_if/constexpr.cc: Likewise.
2321 * testsuite/25_algorithms/copy_if/constrained.cc: Likewise.
2322 * testsuite/25_algorithms/copy_n/constexpr.cc: Likewise.
2323 * testsuite/25_algorithms/copy_n/constrained.cc: Likewise.
2324 * testsuite/25_algorithms/count/constexpr.cc: Likewise.
2325 * testsuite/25_algorithms/count/constrained.cc: Likewise.
2326 * testsuite/25_algorithms/count_if/constexpr.cc: Likewise.
2327 * testsuite/25_algorithms/count_if/constrained.cc: Likewise.
2328 * testsuite/25_algorithms/cpp_lib_constexpr.cc: Likewise.
2329 * testsuite/25_algorithms/equal/95578.cc: Likewise.
2330 * testsuite/25_algorithms/equal/constexpr.cc: Likewise.
2331 * testsuite/25_algorithms/equal/constexpr_neg.cc: Likewise.
2332 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
2333 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
2335 * testsuite/25_algorithms/equal_range/constexpr.cc: Likewise.
2336 * testsuite/25_algorithms/equal_range/constrained.cc: Likewise.
2337 * testsuite/25_algorithms/fill/94017.cc: Likewise.
2338 * testsuite/25_algorithms/fill/constexpr.cc: Likewise.
2339 * testsuite/25_algorithms/fill/constrained.cc: Likewise.
2340 * testsuite/25_algorithms/fill_n/94017.cc: Likewise.
2341 * testsuite/25_algorithms/fill_n/constexpr.cc: Likewise.
2342 * testsuite/25_algorithms/fill_n/constrained.cc: Likewise.
2343 * testsuite/25_algorithms/find/constexpr.cc: Likewise.
2344 * testsuite/25_algorithms/find/constrained.cc: Likewise.
2345 * testsuite/25_algorithms/find_end/constexpr.cc: Likewise.
2346 * testsuite/25_algorithms/find_end/constrained.cc: Likewise.
2347 * testsuite/25_algorithms/find_first_of/constexpr.cc: Likewise.
2348 * testsuite/25_algorithms/find_first_of/constrained.cc:
2350 * testsuite/25_algorithms/find_if/constexpr.cc: Likewise.
2351 * testsuite/25_algorithms/find_if/constrained.cc: Likewise.
2352 * testsuite/25_algorithms/find_if_not/constexpr.cc: Likewise.
2353 * testsuite/25_algorithms/find_if_not/constrained.cc: Likewise.
2354 * testsuite/25_algorithms/for_each/constexpr.cc: Likewise.
2355 * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
2356 * testsuite/25_algorithms/generate/constexpr.cc: Likewise.
2357 * testsuite/25_algorithms/generate/constrained.cc: Likewise.
2358 * testsuite/25_algorithms/generate_n/constexpr.cc: Likewise.
2359 * testsuite/25_algorithms/generate_n/constrained.cc: Likewise.
2360 * testsuite/25_algorithms/heap/constrained.cc: Likewise.
2361 * testsuite/25_algorithms/includes/constrained.cc: Likewise.
2362 * testsuite/25_algorithms/inplace_merge/constrained.cc:
2364 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
2365 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
2366 * testsuite/25_algorithms/is_partitioned/constexpr.cc: Likewise.
2367 * testsuite/25_algorithms/is_partitioned/constrained.cc:
2369 * testsuite/25_algorithms/is_permutation/constexpr.cc: Likewise.
2370 * testsuite/25_algorithms/is_permutation/constrained.cc:
2372 * testsuite/25_algorithms/is_sorted/constexpr.cc: Likewise.
2373 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise.
2374 * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
2376 * testsuite/25_algorithms/is_sorted_until/constrained.cc:
2378 * testsuite/25_algorithms/iter_swap/constexpr.cc: Likewise.
2379 * testsuite/25_algorithms/lexicographical_compare/93972.cc:
2381 * testsuite/25_algorithms/lexicographical_compare/95578.cc:
2383 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
2385 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
2387 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
2389 * testsuite/25_algorithms/lexicographical_compare_three_way/constexpr.cc:
2391 * testsuite/25_algorithms/lower_bound/constexpr.cc: Likewise.
2392 * testsuite/25_algorithms/lower_bound/constrained.cc: Likewise.
2393 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc:
2395 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc:
2397 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc:
2399 * testsuite/25_algorithms/make_heap/constexpr.cc: Likewise.
2400 * testsuite/25_algorithms/max/constrained.cc: Likewise.
2401 * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
2402 * testsuite/25_algorithms/merge/constexpr.cc: Likewise.
2403 * testsuite/25_algorithms/merge/constrained.cc: Likewise.
2404 * testsuite/25_algorithms/min/constrained.cc: Likewise.
2405 * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
2406 * testsuite/25_algorithms/minmax/constrained.cc: Likewise.
2407 * testsuite/25_algorithms/minmax_element/constrained.cc:
2409 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
2410 * testsuite/25_algorithms/mismatch/constrained.cc: Likewise.
2411 * testsuite/25_algorithms/move/93872.cc: Likewise.
2412 * testsuite/25_algorithms/move/95578.cc: Likewise.
2413 * testsuite/25_algorithms/move/constexpr.cc: Likewise.
2414 * testsuite/25_algorithms/move/constrained.cc: Likewise.
2415 * testsuite/25_algorithms/move_backward/93872.cc: Likewise.
2416 * testsuite/25_algorithms/move_backward/95578.cc: Likewise.
2417 * testsuite/25_algorithms/move_backward/constrained.cc:
2419 * testsuite/25_algorithms/next_permutation/constexpr.cc:
2421 * testsuite/25_algorithms/next_permutation/constrained.cc:
2423 * testsuite/25_algorithms/none_of/constexpr.cc: Likewise.
2424 * testsuite/25_algorithms/none_of/constrained.cc: Likewise.
2425 * testsuite/25_algorithms/nth_element/constexpr.cc: Likewise.
2426 * testsuite/25_algorithms/nth_element/constrained.cc: Likewise.
2427 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
2428 * testsuite/25_algorithms/partial_sort/constrained.cc: Likewise.
2429 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
2431 * testsuite/25_algorithms/partial_sort_copy/constrained.cc:
2433 * testsuite/25_algorithms/partition/constexpr.cc: Likewise.
2434 * testsuite/25_algorithms/partition/constrained.cc: Likewise.
2435 * testsuite/25_algorithms/partition_copy/constexpr.cc: Likewise.
2436 * testsuite/25_algorithms/partition_copy/constrained.cc:
2438 * testsuite/25_algorithms/partition_point/constexpr.cc:
2440 * testsuite/25_algorithms/partition_point/constrained.cc:
2442 * testsuite/25_algorithms/pop_heap/constexpr.cc: Likewise.
2443 * testsuite/25_algorithms/prev_permutation/constexpr.cc:
2445 * testsuite/25_algorithms/prev_permutation/constrained.cc:
2447 * testsuite/25_algorithms/push_heap/constexpr.cc: Likewise.
2448 * testsuite/25_algorithms/remove/constexpr.cc: Likewise.
2449 * testsuite/25_algorithms/remove/constrained.cc: Likewise.
2450 * testsuite/25_algorithms/remove_copy/constexpr.cc: Likewise.
2451 * testsuite/25_algorithms/remove_copy/constrained.cc: Likewise.
2452 * testsuite/25_algorithms/remove_copy_if/constexpr.cc: Likewise.
2453 * testsuite/25_algorithms/remove_copy_if/constrained.cc:
2455 * testsuite/25_algorithms/remove_if/constexpr.cc: Likewise.
2456 * testsuite/25_algorithms/remove_if/constrained.cc: Likewise.
2457 * testsuite/25_algorithms/replace/constrained.cc: Likewise.
2458 * testsuite/25_algorithms/replace_copy/constexpr.cc: Likewise.
2459 * testsuite/25_algorithms/replace_copy/constrained.cc: Likewise.
2460 * testsuite/25_algorithms/replace_copy_if/constexpr.cc:
2462 * testsuite/25_algorithms/replace_copy_if/constrained.cc:
2464 * testsuite/25_algorithms/replace_if/constexpr.cc: Likewise.
2465 * testsuite/25_algorithms/replace_if/constrained.cc: Likewise.
2466 * testsuite/25_algorithms/reverse/constexpr.cc: Likewise.
2467 * testsuite/25_algorithms/reverse/constrained.cc: Likewise.
2468 * testsuite/25_algorithms/reverse_copy/constexpr.cc: Likewise.
2469 * testsuite/25_algorithms/reverse_copy/constrained.cc: Likewise.
2470 * testsuite/25_algorithms/rotate/constexpr.cc: Likewise.
2471 * testsuite/25_algorithms/rotate/constrained.cc: Likewise.
2472 * testsuite/25_algorithms/rotate_copy/constexpr.cc: Likewise.
2473 * testsuite/25_algorithms/rotate_copy/constrained.cc: Likewise.
2474 * testsuite/25_algorithms/sample/constrained.cc: Likewise.
2475 * testsuite/25_algorithms/search/constexpr.cc: Likewise.
2476 * testsuite/25_algorithms/search/constrained.cc: Likewise.
2477 * testsuite/25_algorithms/search_n/97828.cc: Likewise.
2478 * testsuite/25_algorithms/search_n/constexpr.cc: Likewise.
2479 * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
2480 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
2481 * testsuite/25_algorithms/set_difference/constrained.cc:
2483 * testsuite/25_algorithms/set_intersection/constexpr.cc:
2485 * testsuite/25_algorithms/set_intersection/constrained.cc:
2487 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
2489 * testsuite/25_algorithms/set_symmetric_difference/constrained.cc:
2491 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
2492 * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
2493 * testsuite/25_algorithms/shift_left/1.cc: Likewise.
2494 * testsuite/25_algorithms/shift_right/1.cc: Likewise.
2495 * testsuite/25_algorithms/shuffle/constrained.cc: Likewise.
2496 * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
2497 * testsuite/25_algorithms/sort/constrained.cc: Likewise.
2498 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
2499 * testsuite/25_algorithms/stable_partition/constrained.cc:
2501 * testsuite/25_algorithms/stable_sort/constrained.cc: Likewise.
2502 * testsuite/25_algorithms/swap/constexpr.cc: Likewise.
2503 * testsuite/25_algorithms/swap_ranges/constexpr.cc: Likewise.
2504 * testsuite/25_algorithms/swap_ranges/constrained.cc: Likewise.
2505 * testsuite/25_algorithms/transform/constexpr.cc: Likewise.
2506 * testsuite/25_algorithms/transform/constrained.cc: Likewise.
2507 * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
2508 * testsuite/25_algorithms/unique/constrained.cc: Likewise.
2509 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
2510 * testsuite/25_algorithms/unique_copy/constrained.cc: Likewise.
2511 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
2512 * testsuite/25_algorithms/upper_bound/constrained.cc: Likewise.
2513 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc:
2515 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc:
2517 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc:
2520 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2522 * testsuite/std/concepts/1.cc: Remove dg-options.
2523 * testsuite/std/concepts/2.cc: Likewise.
2524 * testsuite/std/concepts/concepts.callable/invocable.cc:
2526 * testsuite/std/concepts/concepts.callable/regular_invocable.cc:
2528 * testsuite/std/concepts/concepts.callable/relation.cc:
2530 * testsuite/std/concepts/concepts.callable/strictweakorder.cc:
2532 * testsuite/std/concepts/concepts.lang/concept.arithmetic/floating_point.cc: Likewise.
2533 * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc: Likewise.
2534 * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc: Likewise.
2535 * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc: Likewise.
2536 * testsuite/std/concepts/concepts.lang/concept.assignable/1.cc:
2538 * testsuite/std/concepts/concepts.lang/concept.common/1.cc:
2540 * testsuite/std/concepts/concepts.lang/concept.commonref/1.cc:
2542 * testsuite/std/concepts/concepts.lang/concept.constructible/1.cc: Likewise.
2543 * testsuite/std/concepts/concepts.lang/concept.convertible/1.cc:
2545 * testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc: Likewise.
2546 * testsuite/std/concepts/concepts.lang/concept.defaultinitializable/1.cc: Likewise.
2547 * testsuite/std/concepts/concepts.lang/concept.defaultinitializable/lwg3149.cc: Likewise.
2548 * testsuite/std/concepts/concepts.lang/concept.derived/1.cc:
2550 * testsuite/std/concepts/concepts.lang/concept.destructible/1.cc: Likewise.
2551 * testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc: Likewise.
2552 * testsuite/std/concepts/concepts.lang/concept.same/1.cc:
2554 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc: Likewise.
2555 * testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc: Likewise.
2556 * testsuite/std/concepts/concepts.lang/concept.swappable/swappable_with.cc: Likewise.
2557 * testsuite/std/concepts/concepts.object/copyable.cc: Likewise.
2558 * testsuite/std/concepts/concepts.object/movable.cc: Likewise.
2559 * testsuite/std/concepts/concepts.object/regular.cc: Likewise.
2560 * testsuite/std/concepts/concepts.object/semiregular.cc:
2562 * testsuite/std/ranges/97600.cc: Likewise.
2563 * testsuite/std/ranges/access/101782.cc: Likewise.
2564 * testsuite/std/ranges/access/begin.cc: Likewise.
2565 * testsuite/std/ranges/access/begin_neg.cc: Likewise.
2566 * testsuite/std/ranges/access/cbegin.cc: Likewise.
2567 * testsuite/std/ranges/access/cdata.cc: Likewise.
2568 * testsuite/std/ranges/access/cend.cc: Likewise.
2569 * testsuite/std/ranges/access/crbegin.cc: Likewise.
2570 * testsuite/std/ranges/access/crend.cc: Likewise.
2571 * testsuite/std/ranges/access/data.cc: Likewise.
2572 * testsuite/std/ranges/access/empty.cc: Likewise.
2573 * testsuite/std/ranges/access/end.cc: Likewise.
2574 * testsuite/std/ranges/access/end_neg.cc: Likewise.
2575 * testsuite/std/ranges/access/lwg3467.cc: Likewise.
2576 * testsuite/std/ranges/access/p2602.cc: Likewise.
2577 * testsuite/std/ranges/access/rbegin.cc: Likewise.
2578 * testsuite/std/ranges/access/rend.cc: Likewise.
2579 * testsuite/std/ranges/access/size.cc: Likewise.
2580 * testsuite/std/ranges/access/size_neg.cc: Likewise.
2581 * testsuite/std/ranges/access/ssize.cc: Likewise.
2582 * testsuite/std/ranges/adaptors/100479.cc: Likewise.
2583 * testsuite/std/ranges/adaptors/100577.cc: Likewise.
2584 * testsuite/std/ranges/adaptors/93978.cc: Likewise.
2585 * testsuite/std/ranges/adaptors/95322.cc: Likewise.
2586 * testsuite/std/ranges/adaptors/99433.cc: Likewise.
2587 * testsuite/std/ranges/adaptors/all.cc: Likewise.
2588 * testsuite/std/ranges/adaptors/common.cc: Likewise.
2589 * testsuite/std/ranges/adaptors/conditionally_borrowed.cc:
2591 * testsuite/std/ranges/adaptors/counted.cc: Likewise.
2592 * testsuite/std/ranges/adaptors/detail/copyable_box.cc:
2594 * testsuite/std/ranges/adaptors/drop.cc: Likewise.
2595 * testsuite/std/ranges/adaptors/drop_while.cc: Likewise.
2596 * testsuite/std/ranges/adaptors/elements.cc: Likewise.
2597 * testsuite/std/ranges/adaptors/filter.cc: Likewise.
2598 * testsuite/std/ranges/adaptors/join.cc: Likewise.
2599 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
2600 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
2601 * testsuite/std/ranges/adaptors/lwg3286.cc: Likewise.
2602 * testsuite/std/ranges/adaptors/lwg3313_neg.cc: Likewise.
2603 * testsuite/std/ranges/adaptors/lwg3325_neg.cc: Likewise.
2604 * testsuite/std/ranges/adaptors/lwg3406.cc: Likewise.
2605 * testsuite/std/ranges/adaptors/p1739.cc: Likewise.
2606 * testsuite/std/ranges/adaptors/p2281.cc: Likewise.
2607 * testsuite/std/ranges/adaptors/p2770r0.cc: Likewise.
2608 * testsuite/std/ranges/adaptors/reverse.cc: Likewise.
2609 * testsuite/std/ranges/adaptors/sizeof.cc: Likewise.
2610 * testsuite/std/ranges/adaptors/split.cc: Likewise.
2611 * testsuite/std/ranges/adaptors/take.cc: Likewise.
2612 * testsuite/std/ranges/adaptors/take_while.cc: Likewise.
2613 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
2614 * testsuite/std/ranges/empty_view.cc: Likewise.
2615 * testsuite/std/ranges/headers/ranges/synopsis.cc: Likewise.
2616 * testsuite/std/ranges/iota/difference_type.cc: Likewise.
2617 * testsuite/std/ranges/iota/iota_view.cc: Likewise.
2618 * testsuite/std/ranges/iota/iterator.cc: Likewise.
2619 * testsuite/std/ranges/iota/lwg3292_neg.cc: Likewise.
2620 * testsuite/std/ranges/iota/max_size_type.cc: Likewise.
2621 * testsuite/std/ranges/istream_view.cc: Likewise.
2622 * testsuite/std/ranges/p2259.cc: Likewise.
2623 * testsuite/std/ranges/p2325.cc: Likewise.
2624 * testsuite/std/ranges/p2367.cc: Likewise.
2625 * testsuite/std/ranges/range.cc: Likewise.
2626 * testsuite/std/ranges/refinements.cc: Likewise.
2627 * testsuite/std/ranges/safe_range.cc: Likewise.
2628 * testsuite/std/ranges/safe_range_types.cc: Likewise.
2629 * testsuite/std/ranges/single_view.cc: Likewise.
2630 * testsuite/std/ranges/sized.cc: Likewise.
2631 * testsuite/std/ranges/subrange/1.cc: Likewise.
2632 * testsuite/std/ranges/subrange/97512.cc: Likewise.
2633 * testsuite/std/ranges/subrange/constexpr.cc: Likewise.
2634 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Likewise.
2635 * testsuite/std/ranges/subrange/lwg3286.cc: Likewise.
2636 * testsuite/std/ranges/subrange/lwg3433.cc: Likewise.
2637 * testsuite/std/ranges/subrange/sizeof.cc: Likewise.
2638 * testsuite/std/ranges/subrange/tuple_like.cc: Likewise.
2639 * testsuite/std/ranges/view.cc: Likewise.
2641 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2643 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
2645 * testsuite/23_containers/span/contiguous_range_neg.cc:
2647 * testsuite/23_containers/span/everything.cc: Likewise.
2649 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2651 * testsuite/24_iterators/reverse_iterator/100639.cc: Remove
2652 dg-options and add dg-add-options strict_std.
2653 * testsuite/std/ranges/iota/93267.cc: Likewise.
2654 * testsuite/std/ranges/iota/96042.cc: Likewise.
2655 * testsuite/std/ranges/iota/size.cc: Likewise.
2656 * testsuite/std/ranges/subrange/96042.cc: Likewise.
2658 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2660 * testsuite/tr1/5_numerical_facilities/special_functions/07_conf_hyperg/compile_cxx17.cc:
2661 Replace dg-options -std=c++17 with dg-add-options strict_std.
2662 * testsuite/tr1/5_numerical_facilities/special_functions/17_hyperg/compile_cxx17.cc:
2665 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2667 * testsuite/23_containers/deque/48101-2_neg.cc: Replace
2668 dg-options with target selector.
2669 * testsuite/23_containers/forward_list/48101-2_neg.cc: Likewise.
2670 * testsuite/23_containers/list/48101-2_neg.cc: Likewise.
2671 * testsuite/23_containers/map/48101-2_neg.cc: Likewise.
2672 * testsuite/23_containers/map/48101_neg.cc: Likewise.
2673 * testsuite/23_containers/multimap/48101-2_neg.cc: Likewise.
2674 * testsuite/23_containers/multimap/48101_neg.cc: Likewise.
2675 * testsuite/23_containers/multiset/48101-2_neg.cc: Likewise.
2676 * testsuite/23_containers/set/48101-2_neg.cc: Likewise.
2677 * testsuite/23_containers/unordered_map/48101-2_neg.cc:
2679 * testsuite/23_containers/unordered_multimap/48101-2_neg.cc:
2681 * testsuite/23_containers/unordered_multiset/48101-2_neg.cc:
2683 * testsuite/23_containers/unordered_set/48101-2_neg.cc:
2685 * testsuite/23_containers/vector/48101-2_neg.cc: Likewise.
2687 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2689 * doc/xml/manual/test.xml: Update documentation on running and
2691 * doc/html/manual/test.html: Regenerate.
2692 * testsuite/Makefile.am: Add v3-use-std-list to site.tmp
2693 * testsuite/Makefile.in: Regenerate.
2694 * testsuite/lib/dg-options.exp (add_options_for_strict_std): New
2696 * testsuite/lib/libstdc++.exp (search_for): New utility proc.
2697 (v3-dg-runtest): New proc to replace dg-runtest.
2698 * testsuite/libstdc++-dg/conformance.exp: Use v3-dg-runtest.
2700 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2702 * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc:
2703 Fix test to work for C++23 and C++26 too.
2705 2023-09-15 Patrick Palka <ppalka@redhat.com>
2707 * include/std/bit: Include <concepts>.
2708 (byteswap): Use a type-constraint instead of enable_if_t
2709 inside the return type, and use std::integral.
2710 (_If_is_unsigned_integer): Replace with ...
2711 (__unsigned_integer): ... this.
2712 (rotl): Use a type-constraint instead of enable_if_t inside
2714 (countl_zero): Likewise.
2715 (countl_one): Likewise.
2716 (countr_zero): Likewise.
2717 (countr_one): Likewise.
2718 (popcount): Likewise.
2719 (has_single_bit): Likewise.
2720 (bit_ceil): Likewise.
2721 (bit_floor): Likewise.
2722 (bit_width): Likewise.
2724 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2726 * include/std/variant (variant): Remove derivation from
2727 _Enable_default_constructor base class.
2728 (variant::variant()): Constrain.
2729 * testsuite/20_util/variant/default_ctor.cc: New test.
2731 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2734 * include/std/variant (get<T>): Remove !is_void static
2737 2023-09-15 Jonathan Wakely <jwakely@redhat.com>
2739 * include/bits/version.def (to_chars): Define new value for
2741 * include/bits/version.h: Regenerate.
2742 * include/std/charconv (to_chars_result::operator bool): New
2744 (from_chars_result::operator bool): New function.
2745 * testsuite/20_util/to_chars/version.cc: Update expected value.
2746 * testsuite/20_util/from_chars/result.cc: New test.
2747 * testsuite/20_util/to_chars/result.cc: New test.
2749 2023-09-14 Jonathan Wakely <jwakely@redhat.com>
2752 * testsuite/20_util/integer_sequence/pr111357.cc: New test.
2754 2023-09-14 Jonathan Wakely <jwakely@redhat.com>
2756 * testsuite/27_io/basic_filebuf/seekoff/char/1-io.cc: Use
2757 dg-additional-files. Remove @require@ and @diff@ comments.
2758 * testsuite/27_io/basic_filebuf/seekoff/char/2-io.cc: Likewise.
2759 * testsuite/27_io/basic_filebuf/seekpos/char/1-io.cc: Likewise.
2760 * testsuite/27_io/basic_filebuf/seekpos/char/2-io.cc: Likewise.
2761 * testsuite/lib/dg-options.exp (v3_additional_files): New
2763 (dg-additional-files): New proc.
2764 * testsuite/lib/libstdc++.exp (v3_target_compile): Copy
2765 additional files to test directory.
2767 2023-09-14 Jonathan Wakely <jwakely@redhat.com>
2769 * include/experimental/io_context (io_context) [!_GLIBCXX_HAS_GTHREADS]:
2770 Use a plain integer for _M_work_count for single-threaded
2772 * include/experimental/memory_resource (__get_default_resource)
2773 [!_GLIBCXX_HAS_GTHREADS]: Use unsynchronized type for
2774 single-threaded targets.
2775 * src/c++17/default_resource.h: Adjust preprocessor conditions
2776 to match memory_resource.cc.
2777 * src/c++17/memory_resource.cc [!_GLIBCXX_HAS_GTHREADS]
2778 (atomic_mem_res): Use unsynchronized type for single-threaded
2781 2023-09-14 Christophe Lyon <christophe.lyon@linaro.org>
2783 * testsuite/29_atomics/atomic/compare_exchange_padding.cc: Likewise.
2784 * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
2785 * testsuite/29_atomics/atomic_float/value_init.cc: Likewise.
2786 * testsuite/29_atomics/atomic_integral/cons/value_init.cc: Likewise.
2787 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc: Likewise.
2788 * testsuite/29_atomics/atomic_ref/generic.cc: Likewise.
2789 * testsuite/29_atomics/atomic_ref/integral.cc: Likewise.
2790 * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise.
2792 2023-09-14 François Dumont <fdumont@gcc.gnu.org>
2794 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Add
2795 { dg-require-normal-namespace "" }.
2797 2023-09-13 François Dumont <fdumont@gcc.gnu.org>
2799 * include/std/format (std::__format::_Arg_store): Explicit version
2800 namespace on make_format_args friend declaration.
2802 2023-09-12 Patrick Palka <ppalka@redhat.com>
2805 * include/std/functional (_GLIBCXX_NOT_FN_CALL_OP): Also define
2806 a deleted fallback operator() overload. Constrain both the
2807 enabled and deleted overloads accordingly.
2808 * testsuite/20_util/function_objects/not_fn/111327.cc: New test.
2810 2023-09-12 Patrick Palka <ppalka@redhat.com>
2813 * include/std/functional (_Bind_front::operator()): Add deleted
2814 fallback overloads for each const/ref qualifier pair. Give the
2815 enabled overloads dummy constraints to make each one more
2816 specialized than the corresponding deleted overload.
2817 * testsuite/20_util/function_objects/bind_front/111327.cc: New test.
2819 2023-09-12 Patrick Palka <ppalka@redhat.com>
2821 * include/std/functional (_Bind_front0): Remove.
2822 (_Bind_front_t): Adjust.
2824 2023-09-12 Jonathan Wakely <jwakely@redhat.com>
2826 * python/libstdcxx/v6/printers.py: Reformat.
2827 * python/libstdcxx/v6/xmethods.py: Likewise.
2829 2023-09-11 Jonathan Wakely <jwakely@redhat.com>
2831 * src/c++11/debug.cc (acquire_sequence_ptr_for_lock): New
2833 (reset_sequence_ptr): New function.
2834 (_Safe_iterator_base::_M_detach)
2835 (_Safe_local_iterator_base::_M_detach): Replace bare atomic_load
2836 with acquire_sequence_ptr_for_lock.
2837 (_Safe_iterator_base::_M_reset): Replace bare atomic_store with
2840 2023-09-11 Jonathan Wakely <jwakely@redhat.com>
2842 * src/c++11/Makefile.am: Add new file.
2843 * src/c++11/Makefile.in: Regenerate.
2844 * src/c++11/debug.cc (__glibcxx_assert_fail): Move to ...
2845 * src/c++11/assert_fail.cc: New file.
2847 2023-09-11 Ken Matsui <kmatsui@gcc.gnu.org>
2849 * include/bits/c++config (_GLIBCXX_HAS_BUILTIN): Do not undef.
2850 (_GLIBCXX_USE_BUILTIN_TRAIT): Define.
2852 2023-09-11 Jonathan Wakely <jwakely@redhat.com>
2854 * include/bits/version.def (__cpp_lib_formatters): Define.
2855 * include/bits/version.h: Regenerate.
2856 * include/std/stacktrace (formatter<stacktrace_entry>)
2857 (formatter<basic_stacktrace<Alloc>>): Define.
2858 * include/std/thread (formatter<thread::id, charT>): Define.
2859 * testsuite/19_diagnostics/stacktrace/output.cc: New test.
2860 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Add
2861 std::formatter specializations.
2862 * testsuite/19_diagnostics/stacktrace/version.cc: Check
2863 __cpp_lib_formatters macro.
2864 * testsuite/30_threads/thread/id/hash.cc: Remove gthreads
2866 * testsuite/30_threads/thread/id/operators.cc: Likewise.
2867 * testsuite/30_threads/thread/id/operators_c++20.cc: Likewise.
2868 * testsuite/30_threads/thread/id/output.cc: New test.
2870 2023-09-11 Pekka Seppänen <pexu@gcc.mail.kapsi.fi>
2872 * src/c++11/cow-locale_init.cc: Add [[maybe_unused]] attribute.
2873 * src/c++17/fs_path.cc (path::_S_convert_loc): Likewise.
2874 * src/filesystem/path.cc (path::_S_convert_loc): Likewise.
2876 2023-09-08 Jonathan Wakely <jwakely@redhat.com>
2878 * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++23 directory.
2879 * configure: Regenerate.
2880 * doc/html/manual/*: Regenerate.
2881 * doc/xml/manual/using.xml: Update documentation on linking.
2882 * include/std/stacktrace: Remove declarations of libbacktrace
2884 (stacktrace_entry::_S_err_handler, stacktrace_entry::_S_init):
2886 (stacktrace_entry::_Info): New class.
2887 (stacktrace_entry::_M_get_info): Use _Info.
2888 (__stacktrace_impl): New class.
2889 (basic_stacktrace): Derive from __stacktrace_impl.
2890 (basic_stacktrace::current): Use __stacktrace_impl::_S_current.
2891 * scripts/testsuite_flags.in: Adjust LDFLAGS to find
2892 libstdc++exp instead of libstdc++_libbacktrace.
2893 * src/Makefile.am (SUBDIRS): Add c++23 directory.
2894 * src/Makefile.in: Regenerate.
2895 * src/c++20/Makefile.am: Fix comment.
2896 * src/c++20/Makefile.in: Regenerate.
2897 * src/c++23/Makefile.am: New file.
2898 * src/c++23/Makefile.in: New file.
2899 * src/c++23/stacktrace.cc: New file with definitions of
2900 stacktrace_entry::_Info and __stacktrace_impl members.
2901 * src/experimental/Makefile.am: Use LIBADD to include other
2903 * src/experimental/Makefile.in: Regenerate.
2904 * src/libbacktrace/Makefile.am: Use noinst_LTLIBRARIES.
2905 * src/libbacktrace/Makefile.in: Regenerate.
2906 * testsuite/19_diagnostics/stacktrace/current.cc: Adjust
2907 dg-options to use -lstdc++exp.
2908 * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise.
2909 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise.
2910 * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc:
2913 2023-09-08 Alexey Lapshin <alexey.lapshin@espressif.com>
2915 * src/libbacktrace/Makefile.am: Remove -Werror.
2916 * src/libbacktrace/Makefile.in: Regenerate.
2918 2023-09-08 Jonathan Wakely <jwakely@redhat.com>
2920 * testsuite/Makefile.am (check-DEJAGNU): Use @ in recipe.
2921 * testsuite/Makefile.in: Regenerate.
2923 2023-09-08 Yang Yujie <yangyujie@loongson.cn>
2925 * configure.host: Register t-loongarch in tmake_file.
2926 * config/cpu/loongarch/t-loongarch: New file. Manually refresh
2927 MULTISUBDIR with $(shell $(CXX) --print-multi-directory).
2929 2023-09-07 Bruno Victal <mirai@makinata.eu>
2931 * acinclude.m4: Update docbook xsl URI.
2932 * configure: Regenerate.
2934 2023-09-07 Bruno Victal <mirai@makinata.eu>
2936 * doc/Makefile.am: Fix 'doc-install-info' rule.
2937 Fix typo in commment.
2938 * doc/Makefile.in: Regenerate.
2940 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
2942 * testsuite/27_io/filesystem/path/concat/94063.cc: Simplify
2943 dg-do target selector.
2945 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
2947 * testsuite/config/default.exp: Remove trailing whitespace.
2948 * testsuite/lib/dg-options.exp: Likewise.
2949 * testsuite/lib/prune.exp: Likewise.
2950 * testsuite/libstdc++-abi/abi.exp: Likewise.
2951 * testsuite/libstdc++-dg/conformance.exp: Likewise.
2952 * testsuite/libstdc++-prettyprinters/prettyprinters.exp:
2954 * testsuite/libstdc++-xmethods/xmethods.exp: Likewise.
2955 * testsuite/lib/libstdc++.exp: Likewise.
2956 (check_v3_target_c_std): Fix filename for temporary source file.
2958 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
2960 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for mkdir,
2961 chmod, chdir, and getcwd.
2962 * config.h.in: Regenerate.
2963 * configure: Regenerate.
2964 * src/c++17/fs_ops.cc (create_dir): Use USE_MKDIR macro.
2965 (fs::current_path): Use USE_GETCWD and USE_CHDIR macros.
2966 (fs::permissions): Use USE_CHMOD macro.
2967 * src/filesystem/ops-common.h [FILESYSTEM_IS_WINDOWS]
2968 (chmod, mkdir, getcwd, chdir): Define new macros.
2969 [FILESYSTEM_IS_WINDOWS] (chmod, mkdir, getcwd, chdir): Use
2971 * src/filesystem/ops.cc (create_dir): Use USE_MKDIR macro.
2972 (fs::current_path): Use USE_GETCWD and USE_CHDIR macros.
2973 (fs::permissions): Use USE_CHMOD macro.
2975 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
2977 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Disable by default
2979 * configure: Regenerate.
2981 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
2983 * testsuite/23_containers/unordered_map/operations/1.cc: Add
2984 dg-options for C++20 mode.
2985 * testsuite/23_containers/unordered_multimap/operations/1.cc:
2987 * testsuite/23_containers/unordered_multiset/operations/1.cc:
2989 * testsuite/23_containers/unordered_set/operations/1.cc:
2991 * testsuite/std/time/parse.cc: Move dg-options before dg-do.
2993 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
2995 * testsuite/std/ranges/access/cbegin.cc: Adjust for C++23
2997 * testsuite/std/ranges/access/cdata.cc: Likewise.
2998 * testsuite/std/ranges/access/cend.cc: Likewise.
2999 * testsuite/std/ranges/access/crbegin.cc: Likewise.
3000 * testsuite/std/ranges/access/crend.cc: Likewise.
3001 * testsuite/std/ranges/adaptors/take.cc: Likewise.
3002 * testsuite/std/ranges/adaptors/take_while.cc: Likewise.
3003 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3005 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3007 * include/bits/iterator_concepts.h (__imove::iter_move): Define
3008 poison pill as deleted for consistency.
3009 (__access::begin): Replace with a single declaration.
3010 * include/bits/ranges_base.h (__access::end, __access::rbegin)
3011 (__access::rend, __access::size): Likewise.
3012 * include/bits/version.def (ranges): Update value for C++23.
3013 * include/bits/version.h: Regenerate.
3014 * libsupc++/compare (__compare): Add missing poison pill
3016 * testsuite/std/ranges/version_c++23.cc: Adjust expected value
3017 of __cpp_lib_ranges.
3018 * testsuite/std/ranges/access/p2602.cc: New test.
3020 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3022 * include/bits/iterator_concepts.h (ranges::__cust_imove):
3023 Rename to ranges::__imove.
3024 (_IMove): Rename to _IterMove.
3025 (ranges::__cust_iswap): Rename to ranges::__iswap.
3026 (ranges::__cust): Rename to ranges::_Cpo.
3027 (ranges::__cust_access): Rename to ranges::__access.
3028 * include/bits/ranges_base.h (ranges::__cust_access): Rename to
3030 (ranges::__cust): Rename to ranges::_Cpo.
3031 * include/std/concepts (ranges::__cust_swap): Rename to
3033 (ranges::__cust): Rename to ranges::_Cpo.
3034 * libsupc++/compare (__cmp_cust): Rename to __compare.
3035 (__cmp_algo): Rename to _Cpo.
3037 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3039 * include/bits/version.def (ranges): Update value.
3040 * include/bits/version.h: Regenerate.
3041 * include/std/ranges (__detail::__boxable): Use
3042 move_constructible instead of copy_constructible for C++23.
3043 (__detail::__box<T>): Adjust constraints for partial
3045 (single_view, transform_view): Use __box_constructible instead
3046 of copy_constructible in constraints.
3047 (zip_transform_view, adjacent_transform_view, repeat_view): Use
3048 move_constructible instead of copy_constructible in constraints.
3049 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: Check
3050 construction from move-only argument.
3051 * testsuite/std/ranges/adaptors/transform.cc: Likewise.
3052 * testsuite/std/ranges/repeat/1.cc: Likewise.
3053 * testsuite/std/ranges/single_view.cc: Likewise.
3054 * testsuite/std/ranges/zip_transform/1.cc: Likewise.
3055 * testsuite/std/ranges/version_c++23.cc: Adjust expected value
3056 of __cpp_lib_ranges.
3058 2023-09-07 Jonathan Wakely <jwakely@redhat.com>
3060 * testsuite/util/testsuite_iterators.h (is_customization_point_object):
3061 Remove parameter name.
3063 2023-09-06 Jonathan Wakely <jwakely@redhat.com>
3065 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Disable by default
3067 * configure: Regenerate.
3069 2023-09-04 Christophe Lyon <christophe.lyon@linaro.org>
3072 2023-09-04 Christophe Lyon <christophe.lyon@linaro.org>
3075 * configure: Regenerate.
3076 * configure.ac: Call GLIBCXX_CHECK_LINKER_FEATURES in cross,
3077 non-Canadian builds.
3079 2023-09-04 Christophe Lyon <christophe.lyon@linaro.org>
3082 * configure: Regenerate.
3083 * configure.ac: Call GLIBCXX_CHECK_LINKER_FEATURES in cross,
3084 non-Canadian builds.
3086 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3088 * testsuite/26_numerics/complex/literals/types.cc: Remove
3089 dg-options and add target selector instead.
3091 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3093 * testsuite/tr1/6_containers/utility/pair.cc: Remove dg-options
3094 and qualify ambiguous calls to get.
3095 * testsuite/tr1/8_c_compatibility/cmath/pow_cmath.cc: Adjust
3096 expected result for std::pow(float, int) as per DR 550.
3098 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3100 * testsuite/20_util/auto_ptr/1.cc: Remove dg-options -std=c++03
3101 and add dg-warning for deprecation warnings.
3102 * testsuite/20_util/auto_ptr/2.cc: Likewise.
3103 * testsuite/20_util/auto_ptr/3.cc: Likewise.
3104 * testsuite/20_util/auto_ptr/3946.cc: Likewise.
3105 * testsuite/20_util/auto_ptr/4.cc: Likewise.
3106 * testsuite/20_util/auto_ptr/5.cc: Likewise.
3107 * testsuite/20_util/auto_ptr/6.cc: Likewise.
3108 * testsuite/20_util/auto_ptr/7.cc: Likewise.
3109 * testsuite/20_util/auto_ptr/assign_neg.cc: Likewise.
3110 * testsuite/20_util/auto_ptr/requirements/explicit_instantiation/1.cc:
3112 * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr.cc:
3114 * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_neg.cc:
3116 * testsuite/tr1/2_general_utilities/shared_ptr/assign/auto_ptr_rvalue_neg.cc:
3118 * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
3120 * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr.cc:
3122 * testsuite/tr1/2_general_utilities/shared_ptr/cons/auto_ptr_neg.cc:
3125 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3128 * testsuite/23_containers/vector/26412-1.cc: Moved to...
3129 * testsuite/23_containers/vector/26142-1.cc: ...here.
3130 * testsuite/23_containers/vector/26412-2.cc: Moved to...
3131 * testsuite/23_containers/vector/26142-2.cc: ...here.
3133 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3135 * testsuite/20_util/bitset/107037.cc: Add c++98_only selector.
3136 * testsuite/26_numerics/complex/56111.cc: Likewise.
3138 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3140 * testsuite/23_containers/deque/requirements/explicit_instantiation/2.cc:
3141 Add dg-options to restrict the test to C++98 mode.
3142 * testsuite/23_containers/list/requirements/explicit_instantiation/2.cc:
3145 2023-09-04 Jonathan Wakely <jwakely@redhat.com>
3147 * testsuite/20_util/expected/bad.cc: Add missing target
3150 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3152 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust
3154 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc:
3157 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3159 * testsuite/27_io/filesystem/iterators/91067.cc: Add
3160 -Wno-self-move to options.
3161 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise.
3163 2023-09-01 Vladimir Palevich <palevichva@gmail.com>
3166 * include/bits/vector.tcc (_M_realloc_insert): End guard
3167 lifetime just before assignment to class members.
3168 (_M_default_append): Likewise.
3170 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3172 * src/c++17/fs_ops.cc (fs::absolute) [FILESYSTEM_IS_WINDOWS]:
3173 Use __resize_and_overwrite to fill buffer.
3174 (fs::read_symlink) [HAVE_READLINK]: Likewise.
3175 * src/filesystem/ops-common.h (get_temp_directory_from_env)
3176 [FILESYSTEM_IS_WINDOWS]: Likewise.
3178 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3181 * include/bits/atomic_base.h (__atomic_impl::__compare_exchange):
3182 Add _AtomicRef non-type template parameter and use a loop if it
3184 (__atomic_impl::compare_exchange_weak): Add _AtomicRef NTTP.
3185 (__atomic_impl::compare_exchange_strong): Likewise.
3186 (atomic_ref::compare_exchange_weak): Use true for NTTP.
3187 (atomic_ref::compare_exchange_strong): Use true for NTTP.
3188 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
3189 Fix test to not rely on atomic_ref::load() to return an object
3190 with padding preserved.
3192 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3194 * testsuite/27_io/filesystem/path/108636.cc: Add dg-require for
3197 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3199 * src/c++20/tzdb.cc (tzdb::current_zone): Check configure macros
3200 for POSIX readlink before using filesystem::read_symlink.
3202 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3204 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Default to yes.
3205 * configure: Regenerate.
3207 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3209 * include/bits/chrono_io.h (_Parser::operator()): Set failbit
3210 early if invalid values are read when _M_need & _TimeOfDay is
3212 * testsuite/std/time/parse.cc: Check that "25:59" cannot be
3215 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3218 * include/bits/chrono_io.h (_Parser::Operator()): Check %C
3219 values are in range of year::min() to year::max().
3220 * testsuite/std/time/parse.cc: Check out of range centuries.
3222 2023-09-01 Jonathan Wakely <jwakely@redhat.com>
3224 * include/std/format (__format::_Sink::_M_reset): Change second
3225 argument from iterator to offset.
3227 2023-08-24 Paul Dreik <gccpatches@pauldreik.se>
3230 * testsuite/std/format/string.cc: Check wide character format
3231 strings with out-of-range widths.
3233 2023-08-24 Paul Dreik <gccpatches@pauldreik.se>
3236 * include/std/format (__format::__parse_integer): Check for
3239 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3241 * testsuite/std/format/functions/format_to.cc: Avoid warning for
3244 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3246 * include/std/atomic: Add comment to #ifdef and fix indentation.
3247 * include/std/ostream: Check __glibcxx_syncbuf instead of
3248 __cplusplus and _GLIBCXX_HOSTED.
3249 * include/std/thread: Add comment to #ifdef.
3251 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3253 * include/bits/version.def (__cpp_lib_ratio): Define.
3254 * include/bits/version.h: Regenerate.
3255 * include/std/ratio (quecto, ronto, yocto, zepto)
3256 (zetta, yotta, ronna, quetta): Define.
3257 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Adjust
3258 dg-error line numbers.
3260 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3262 * python/libstdcxx/v6/printers.py (StdLocalePrinter): New
3264 * testsuite/libstdc++-prettyprinters/locale.cc: New test.
3266 2023-08-24 Jonathan Wakely <jwakely@redhat.com>
3269 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter): Do
3270 not show template arguments.
3271 (StdVariantPrinter): Likewise.
3272 * testsuite/libstdc++-prettyprinters/compat.cc: Adjust expected
3274 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
3275 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
3277 2023-08-23 François Dumont <fdumont@gcc.gnu.org>
3279 * testsuite/util/replacement_memory_operators.h
3280 (counter::scope): New, capture and reset counter count at construction and
3281 restore it at destruction.
3282 (counter::check_new): Add scope instantiation.
3283 * testsuite/23_containers/unordered_map/96088.cc (main):
3284 Add counter::scope instantiation.
3285 * testsuite/23_containers/unordered_multimap/96088.cc (main): Likewise.
3286 * testsuite/23_containers/unordered_multiset/96088.cc (main): Likewise.
3287 * testsuite/23_containers/unordered_set/96088.cc (main): Likewise.
3288 * testsuite/ext/malloc_allocator/deallocate_local.cc (main): Likewise.
3289 * testsuite/ext/new_allocator/deallocate_local.cc (main): Likewise.
3290 * testsuite/ext/throw_allocator/deallocate_local.cc (main): Likewise.
3291 * testsuite/ext/pool_allocator/allocate_chunk.cc (started): New global.
3292 (operator new(size_t)): Check started.
3293 (main): Set/Unset started.
3294 * testsuite/17_intro/no_library_allocation.cc: New test case.
3296 2023-08-21 Jonathan Wakely <jwakely@redhat.com>
3298 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
3299 Call std::set_terminate before throwing the nested exception.
3301 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
3304 * include/std/format (formatter): Only define specializations
3305 for 16-bit floating-point types for C++23.
3306 * include/std/limits (numeric_limits): Likewise.
3308 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
3310 * include/bits/chrono_io.h (operator<<): Make uses of wide
3311 strings with streams and std::format type-dependent on _CharT.
3312 * include/std/format [!_GLIBCXX_USE_WCHAR_T] Do not use
3313 __to_wstring_numeric.
3315 2023-08-18 Jonathan Wakely <jwakely@redhat.com>
3317 * include/bits/chrono_io.h (operator<<): Use __format_context.
3318 * include/std/format (__format::__format_context): New alias
3320 [!_GLIBCXX_USE_WCHAR_T] (wformat_args, make_wformat_arg):
3323 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3326 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3328 * config/locale/generic/c_locale.cc (__convert_to_v): Reuse
3329 double overload for long double if possible.
3331 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3333 * src/c++20/tzdb.cc (tzdata_file, leaps_file): Change type to
3336 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3338 * config/locale/generic/c_locale.cc (__convert_to_v): Reuse
3339 double overload for long double if possible.
3341 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3343 * src/c++98/localename.cc (is_C_locale): New function.
3344 (locale::locale(const char*)): Use is_C_locale.
3346 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3349 * include/bits/basic_string.h (basic_string::assign(Iter, Iter)):
3350 Dispatch to _M_replace or move assignment from a temporary,
3351 based on the iterator type.
3353 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3355 * include/std/format (formatter): Add partial specializations
3356 for extended floating-point types.
3357 * testsuite/std/format/functions/format.cc: Move test_float128()
3359 * testsuite/std/format/formatter/ext_float.cc: New test.
3361 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3363 * include/bits/c++config (__gnu_cxx::__bfloat16_t): Define
3364 whenever __BFLT16_DIG__ is defined, not only for C++23.
3365 * include/std/limits (numeric_limits<bfloat16_t>): Likewise.
3366 (numeric_limits<_Float16>, numeric_limits<_Float32>)
3367 (numeric_limits<_Float64>): Likewise for other extended
3368 floating-point types.
3370 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3372 * include/experimental/internet (address_v4::to_string): Remove
3373 unused parameter name.
3375 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3377 * libsupc++/compare (__cmp_cat::__unseq): Make ctor consteval.
3378 * testsuite/18_support/comparisons/categories/zero_neg.cc: Prune
3379 excess errors caused by invalid consteval calls.
3381 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3383 * include/bits/chrono_io.h (__units_suffix_misc): Remove.
3384 (__units_suffix): Return a known suffix as string view, do not
3385 write unknown suffixes to a buffer.
3386 (__fmt_units_suffix): New function that formats the suffix using
3388 (operator<<, __chrono_formatter::_M_q): Use __fmt_units_suffix.
3389 (__chrono_formatter::_M_Z): Correct lifetime of wstring.
3391 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3393 * include/std/format [_GLIBCXX_USE_WCHAR_T]: Guard all wide
3394 string formatters with this macro.
3395 (__formatter_int::_M_format_int, __formatter_fp::format)
3396 (formatter<const void*, C>::format): Use __to_wstring_numeric
3397 instead of std::ctype::widen.
3398 (__formatter_fp::_M_localize): Use hardcoded wchar_t values
3399 instead of std::ctype::widen.
3400 * testsuite/std/format/functions/format.cc: Add more checks for
3401 wstring formatting of arithmetic types.
3403 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3405 * include/bits/basic_string.h (to_string(floating-point-type)):
3406 Implement using std::to_chars for C++26.
3407 * include/bits/version.def (__cpp_lib_to_string): Define.
3408 * include/bits/version.h: Regenerate.
3409 * testsuite/21_strings/basic_string/numeric_conversions/char/dr1261.cc:
3410 Adjust expected result in C++26 mode.
3411 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string.cc:
3413 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/dr1261.cc:
3415 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring.cc:
3417 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_float.cc:
3419 * testsuite/21_strings/basic_string/numeric_conversions/wchar_t/to_wstring_float.cc:
3421 * testsuite/21_strings/basic_string/numeric_conversions/version.cc:
3424 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3426 * include/bits/basic_string.h (to_string(integral-type)): Use
3427 resize_and_overwrite when available.
3428 (__to_wstring_numeric): New helper functions.
3429 (to_wstring): Use std::to_string then __to_wstring_numeric.
3430 * testsuite/21_strings/basic_string/numeric_conversions/char/to_string_int.cc:
3431 Remove check for no excess capacity.
3433 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3435 * include/bits/basic_string.h (__resize_and_overwrite): New
3437 * include/bits/basic_string.tcc (__resize_and_overwrite): New
3439 (resize_and_overwrite): Simplify by using reserve instead of
3440 growing the string manually. Adjust for C++11 compatibility.
3441 * include/bits/cow_string.h (resize_and_overwrite): New
3443 (__resize_and_overwrite): New function.
3444 * include/bits/version.def (__cpp_lib_string_resize_and_overwrite):
3445 Do not depend on cxx11abi.
3446 * include/bits/version.h: Regenerate.
3447 * include/std/format (__formatter_fp::_S_resize_and_overwrite):
3449 (__formatter_fp::format, __formatter_fp::_M_localize): Use
3450 __resize_and_overwrite instead of _S_resize_and_overwrite.
3451 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
3452 Adjust for C++11 compatibility when included by ...
3453 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite_ext.cc:
3456 2023-08-17 Patrick Palka <ppalka@redhat.com>
3458 * include/bits/regex.h (regex_iterator::iterator_concept):
3459 Define for C++20 as per P2770R0.
3460 (regex_token_iterator::iterator_concept): Likewise.
3461 * include/std/ranges (__detail::__as_lvalue): Define.
3462 (join_view::_Iterator): Befriend join_view.
3463 (join_view::_Iterator::_M_satisfy): Use _M_get_outer
3464 instead of _M_outer.
3465 (join_view::_Iterator::_M_get_outer): Define.
3466 (join_view::_Iterator::_Iterator): Split constructor taking
3467 _Parent argument into two as per P2770R0. Remove constraint on
3468 default constructor.
3469 (join_view::_Iterator::_M_outer): Make this data member present
3470 only when the underlying range is forward.
3471 (join_view::_Iterator::operator++): Use _M_get_outer instead of
3473 (join_view::_Iterator::operator--): Use __as_lvalue helper.
3474 (join_view::_Iterator::operator==): Adjust constraints as per
3476 (join_view::_Sentinel::__equal): Use _M_get_outer instead of
3478 (join_view::_M_outer): New data member when the underlying range
3480 (join_view::begin): Adjust definition as per P2770R0.
3481 (join_view::end): Likewise.
3482 (join_with_view::_M_outer_it): New data member when the
3483 underlying range is non-forward.
3484 (join_with_view::begin): Adjust definition as per P2770R0.
3485 (join_with_view::end): Likewise.
3486 (join_with_view::_Iterator::_M_outer_it): Make this data member
3487 present only when the underlying range is forward.
3488 (join_with_view::_Iterator::_M_get_outer): Define.
3489 (join_with_view::_Iterator::_Iterator): Split constructor
3490 taking _Parent argument into two as per P2770R0. Remove
3491 constraint on default constructor.
3492 (join_with_view::_Iterator::_M_update_inner): Adjust definition
3494 (join_with_view::_Iterator::_M_get_inner): Likewise.
3495 (join_with_view::_Iterator::_M_satisfy): Adjust calls to
3496 _M_get_inner. Use _M_get_outer instead of _M_outer_it.
3497 (join_with_view::_Iterator::operator==): Adjust constraints
3499 (join_with_view::_Sentinel::operator==): Use _M_get_outer
3500 instead of _M_outer_it.
3501 * testsuite/std/ranges/adaptors/p2770r0.cc: New test.
3503 2023-08-17 Patrick Palka <ppalka@redhat.com>
3506 * include/std/ranges (__adaptor::_RangeAdaptorClosure):
3507 Convert into a CRTP class template. Move hidden operator|
3508 friends into namespace scope and adjust their constraints.
3509 (__closure::__is_range_adaptor_closure_fn): Define.
3510 (__closure::__is_range_adaptor_closure): Define.
3511 (__adaptor::_Partial): Adjust use of _RangeAdaptorClosure.
3512 (__adaptor::_Pipe): Likewise.
3513 (views::_All): Likewise.
3514 (views::_Join): Likewise.
3515 (views::_Common): Likewise.
3516 (views::_Reverse): Likewise.
3517 (views::_Elements): Likewise.
3518 (views::_Adjacent): Likewise.
3519 (views::_AsRvalue): Likewise.
3520 (views::_Enumerate): Likewise.
3521 (views::_AsConst): Likewise.
3522 * testsuite/std/ranges/adaptors/all.cc: Reinstate assertion
3523 expecting that adding empty range adaptor closure objects to a
3524 pipeline doesn't increase the size of a pipeline.
3526 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3528 * include/std/format (__format::_Pres_type): Add _Pres_F.
3529 (__formatter_fp::parse): Use _Pres_F for 'F'.
3530 (__formatter_fp::format): Set __upper for _Pres_F.
3531 * testsuite/std/format/functions/format.cc: Check formatting of
3532 infinity and NaN for each presentation type.
3534 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3536 * include/Makefile.in: Regenerate.
3538 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3540 * testsuite/24_iterators/move_iterator/p2520r0.cc: Add no_pch.
3541 * testsuite/std/format/functions/format.cc: Likewise.
3542 * testsuite/std/format/functions/format_c++23.cc: Likewise.
3544 2023-08-17 Jonathan Wakely <jwakely@redhat.com>
3546 * testsuite/lib/dg-options.exp (add_options_for_no_pch): Remove
3547 any "-include bits/stdc++.h" from options and add the macro to
3548 the existing options instead of replacing them.
3550 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
3552 * include/bits/basic_string.tcc (resize_and_overwrite): Invoke
3553 the callable with the same size as resize_and_overwrite was
3555 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
3556 Check with small values for the new size.
3557 * testsuite/std/format/functions/format.cc: Check wide
3558 formatting of double values that produce small strings.
3559 * testsuite/std/format/functions/format_c++23.cc: New test.
3561 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
3563 * include/bits/version.def (stds): Update value for C++23.
3564 * include/bits/version.h: Regenerate.
3566 2023-08-16 Jonathan Wakely <jwakely@redhat.com>
3568 * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
3569 Fix name of upstream file this was derived from.
3570 * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
3572 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
3574 * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
3576 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h: Likewise.
3578 2023-08-16 Arsen Arsenović <arsen@aarsen.me>
3580 * libsupc++/typeinfo: Switch to bits/version.h for
3581 __cpp_lib_constexpr_typeinfo.
3582 * libsupc++/new: Switch to bits/version.h for
3583 __cpp_lib_{launder,hardware_interference_size,destroying_delete}.
3584 (launder): Guard behind __cpp_lib_launder.
3585 (hardware_destructive_interference_size)
3586 (hardware_constructive_interference_size): Guard behind
3587 __cpp_lib_hardware_interference_size.
3588 * libsupc++/exception: Switch to bits/version.h for
3589 __cpp_lib_uncaught_exceptions.
3590 (uncaught_exceptions): Guard behind __cpp_lib_uncaught_exceptions.
3591 * libsupc++/compare: Switch to bits/version.h for
3592 __cpp_lib_three_way_comparison.
3593 (three_way_comparable, three_way_comparable_with)
3594 (compare_three_way, weak_order, strong_order, partial_order):
3595 Guard behind __cpp_lib_three_way_comparison >= 201907L.
3596 * include/std/chrono: Drop __cpp_lib_chrono definition.
3597 * include/std/vector: Switch to bits/version.h for
3599 (erase, erase_if): Guard behind __cpp_lib_erase_if.
3600 * include/std/variant: Switch to bits/version.h for
3601 __cpp_lib_variant. Guard whole header behind that FTM.
3602 * include/std/utility: Switch to bits/version.h for
3603 __cpp_lib_{exchange_function,constexpr_algorithms,as_const},
3604 __cpp_lib_{integer_comparison_functions,to_underlying}, and
3605 __cpp_lib_unreachable.
3606 (exchange): Guard behind __cpp_lib_exchange_function.
3607 (cmp_equal, cmp_not_equal, cmp_less, cmp_greater, cmp_less_equal)
3608 (cmp_greater_equal, in_range): Guard behind
3609 __cpp_lib_integer_comparison_functions.
3610 (to_underlying): Guard behind __cpp_lib_to_underlying.
3611 (unreachable): Guard behind __cpp_lib_unreachable.
3612 * include/std/type_traits: Switch to bits/version.h for
3613 __cpp_lib_is_{null_pointer,final,nothrow_convertible,aggregate},
3614 __cpp_lib_is_{constant_evaluated,invocable,layout_compatible},
3615 __cpp_lib_is_{pointer_interconvertible,scoped_enum,swappable},
3616 __cpp_lib_{logical_traits,reference_from_temporary,remove_cvref},
3617 __cpp_lib_{result_of_sfinae,transformation_trait_aliases},
3618 __cpp_lib_{type_identity,type_trait_variable_templates},
3619 __cpp_lib_{unwrap_ref,void_t,integral_constant_callable},
3620 __cpp_lib_{bool_constant,bounded_array_traits}, and
3621 __cpp_lib_has_unique_object_representations.
3622 (integral_constant::operator()): Guard behind
3623 __cpp_lib_integral_constant_callable.
3624 (bool_constant): Guard behind __cpp_lib_bool_constant.
3625 (conjunction, disjunction, negation, conjunction_v, disjunction_v)
3626 (negation_v): Guard behind __cpp_lib_logical_traits.
3627 (is_null_pointer): Guard behind __cpp_lib_is_null_pointer.
3628 (is_final): Guard behind __cpp_lib_is_final.
3629 (is_nothrow_convertible, is_nothrow_convertible_v): Guard behind
3630 __cpp_lib_is_nothrow_convertible.
3631 (remove_const_t, remove_volatile_t, remove_cv_t)
3632 (add_const_t, add_volatile_t, add_cv_t): Guard behind
3633 __cpp_lib_transformation_trait_aliases.
3634 (void_t): Guard behind __cpp_lib_void_t.
3635 (is_swappable_with_v, is_nothrow_swappable_with_v)
3636 (is_swappable_with, is_nothrow_swappable_with): Guard behind
3637 __cpp_lib_is_swappable.
3638 (is_nothrow_invocable_r, is_invocable_r, invoke_result)
3639 (is_invocable, invoke_result_t): Guard behind
3640 __cpp_lib_is_invocable.
3641 (alignment_of_v, extent_v, has_virtual_destructor_v)
3642 (is_abstract_v, is_arithmetic_v, is_array_v)
3643 (is_assignable_v, is_base_of_v, is_class_v, is_compound_v)
3644 (is_constructible_v, is_const_v, is_convertible_v)
3645 (is_copy_assignable_v, is_copy_constructible_v)
3646 (is_default_constructible_v, is_destructible_v)
3647 (is_empty_v, is_enum_v, is_final_v, is_floating_point_v)
3648 (is_function_v, is_fundamental_v, is_integral_v)
3649 (is_invocable_r_v, is_invocable_v, is_literal_type_v)
3650 (is_lvalue_reference_v, is_member_function_pointer_v)
3651 (is_member_object_pointer_v, is_member_pointer_v)
3652 (is_move_assignable_v, is_move_constructible_v)
3653 (is_nothrow_assignable_v, is_nothrow_constructible_v)
3654 (is_nothrow_copy_assignable_v, is_nothrow_copy_constructible_v)
3655 (is_nothrow_default_constructible_v, is_nothrow_destructible_v)
3656 (is_nothrow_invocable_r_v, is_nothrow_invocable_v)
3657 (is_nothrow_move_assignable_v, is_nothrow_move_constructible_v)
3658 (is_null_pointer_v, is_object_v, is_pod_v, is_pointer_v)
3659 (is_polymorphic_v, is_reference_v, is_rvalue_reference_v)
3660 (is_same_v, is_scalar_v, is_signed_v, is_standard_layout_v)
3661 (is_trivially_assignable_v, is_trivially_constructible_v)
3662 (is_trivially_copyable_v, is_trivially_copy_assignable_v)
3663 (is_trivially_copy_constructible_v)
3664 (is_trivially_default_constructible_v)
3665 (is_trivially_destructible_v, is_trivially_move_assignable_v)
3666 (is_trivially_move_constructible_v, is_trivial_v, is_union_v)
3667 (is_unsigned_v, is_void_v, is_volatile_v, rank_v, as variadic):
3668 Guard behind __cpp_lib_type_trait_variable_templates.
3669 (has_unique_object_representations)
3670 (has_unique_object_representations_v): Guard behind
3671 __cpp_lib_has_unique_object_representation.
3672 (is_aggregate): Guard behind __cpp_lib_is_aggregate.
3673 (remove_cvref, remove_cvref_t): Guard behind
3674 __cpp_lib_remove_cvref.
3675 (type_identity, type_identity_t): Guard behind
3676 __cpp_lib_type_identity.
3677 (unwrap_reference, unwrap_reference_t, unwrap_ref_decay)
3678 (unwrap_ref_decay_t): Guard behind __cpp_lib_unwrap_ref.
3679 (is_bounded_array_v, is_unbounded_array_v, is_bounded_array)
3680 (is_unbounded_array): Guard behind __cpp_lib_bounded_array_traits.
3681 (is_scoped_enum, is_scoped_enum_v): Guard behind
3682 __cpp_lib_is_scoped_enum.
3683 (reference_constructs_from_temporary)
3684 (reference_constructs_from_temporary_v): Guard behind
3685 __cpp_lib_reference_from_temporary.
3686 * include/std/tuple: Switch to bits/version.h for
3687 __cpp_lib_{constexpr_tuple,tuple_by_type,apply_make_from_tuple}.
3688 (get<T>): Guard behind __cpp_lib_tuple_by_type.
3689 (apply): Guard behind __cpp_lib_apply.
3690 (make_from_tuple): Guard behind __cpp_lib_make_from_tuple.
3691 * include/std/syncstream: Switch to bits/version.h for
3692 __cpp_lib_syncbuf. Guard header behind that FTM.
3693 * include/std/string_view: Switch to bits/version.h for
3694 __cpp_lib_{string_{view,contains},constexpr_string_view} and
3695 __cpp_lib_starts_ends_with.
3696 (basic_string_view::starts_with, basic_string_view::ends_with):
3697 Guard behind __cpp_lib_starts_ends_with.
3698 [C++23 && _GLIBCXX_HOSTED && !defined(__cpp_lib_string_contains)]:
3699 Assert as impossible ithout a bug in C++23.
3700 * include/std/string: Switch to bits/version.h for
3702 (erase, erase_if): Guard behind __cpp_lib_erase_if.
3703 * include/std/thread: Switch to bits/version.h for
3705 * include/std/stop_token: Switch to bits/version.h for
3707 * include/std/spanstream: Switch to bits/version.h for
3708 __cpp_lib_spanstream. Guard header behind that FTM.
3709 * include/std/span: Switch to bits/version.h for __cpp_lib_span.
3710 Guard header behind that FTM.
3711 * include/std/source_location: Switch to bits/version.h for
3712 __cpp_lib_source_location. Guard header with that FTM.
3713 * include/std/shared_mutex: Switch to bits/version.h for
3714 __cpp_lib_shared{,_timed}_mutex.
3715 (shared_mutex): Guard behind __cpp_lib_shared_mutex.
3716 * include/std/semaphore: Switch to bits/version.h for
3717 __cpp_lib_semaphore. Guard header behind that FTM.
3718 * include/std/ranges: Switch to bits/version.h for
3719 __cpp_lib_ranges_{zip,chunk{,_by},slide,join_with},
3720 __cpp_lib_ranges_{repeat_stride,cartesian_product,as_rvalue},
3721 and __cpp_lib_ranges_{as_const,enumerate,iota}.
3722 (ranges::zip et al, ranges::chunk et al, ranges::slide et al)
3723 (ranges::chunk_by et al, ranges::join_with et al)
3724 (ranges::stride et al, ranges::cartesian_product et al)
3725 (ranges::as_rvalue et al, ranges::as_const et al)
3726 (ranges::enumerate et al): Guard behind appropriate FTM.
3727 * include/std/optional: Switch to bits/version.h for
3728 __cpp_lib_optional. Guard header behind that FTM.
3729 * include/std/numeric: Switch to bits/version.h for
3730 __cpp_lib_{gcd{,_lcm},lcm,constexpr_numeric,interpolate}
3731 and __cpp_lib_parallel_algorithm.
3732 (gcd, lcm): Guard behind __cpp_lib_gcd_lcm.
3733 (midpoint): Guard behind __cpp_lib_interpolate.
3734 * include/std/numbers: Switch to bits/version.h for
3735 __cpp_lib_math_constants. Guard header behind that FTM.
3736 * include/std/mutex: Switch to bits/version.h for
3737 __cpp_lib_scoped_lock.
3738 (scoped_Lock): Guard behind __cpp_lib_scoped_lock.
3739 * include/std/memory_resource: Switch to bits/version.h for
3740 __cpp_lib_{polymorphic_allocator,memory_resource}.
3741 (synchronized_pool_resource): Guard behind
3742 __cpp_lib_memory_resource >= 201603L.
3743 (polymorphic_allocator): Guard behind
3744 __cpp_lib_polymorphic_allocator.
3745 * include/std/memory: Switch to bits/version.h for
3746 __cpp_lib_{parallel_algorithm,atomic_value_initialization}.
3747 * include/std/list: Switch to bits/version.h for
3749 (erase, erase_if): Guard behind __cpp_lib_erase_if.
3750 * include/std/latch: Switch to bits/version.h for __cpp_lib_latch.
3751 Guard header behind that FTM.
3752 * include/std/iterator: Switch to bits/version.h for
3753 __cpp_lib_null_iterators.
3754 * include/std/iomanip: Switch to bits/version.h for
3755 __cpp_lib_quoted_string_io.
3756 (quoted): Guard behind __cpp_lib_quoted_string_io.
3757 * include/std/functional: Switch to bits/version.h for
3758 __cpp_lib_{invoke{,_r},constexpr_functional,bind_front} and
3759 __cpp_lib_{not_fn,booyer_moore_searcher}.
3760 (invoke): Guard behind __cpp_lib_invoke.
3761 (invoke_r): Guard behind __cpp_lib_invoke_r.
3762 (bind_front): Guard behind __cpp_lib_bind_front.
3763 (not_fn): Guard behind __cpp_lib_not_fn.
3764 (boyer_moore_searcher, boyer_moore_horspool_searcher): Guard
3765 definition behind __cpp_lib_boyer_moore_searcher.
3766 * include/std/forward_list: Switch to bits/version.h for
3768 (erase, erase_if): Guard behind __cpp_lib_erase_if.
3769 * include/std/format: Switch to bits/version.h for
3770 __cpp_lib_format. Guard header behind that FTM.
3771 * include/std/filesystem: Switch to bits/version.h for
3772 __cpp_lib_filesystem. Guard header behind that FTM.
3773 * include/std/expected: Switch to bits/version.h for
3774 __cpp_lib_expected. Guard header behind it.
3775 * include/std/execution: Switch to bits/version.h for
3776 __cpp_lib_{execution,parallel_algorithm}. Guard header behind
3778 * include/std/deque: Switch to bits/version.h for
3780 (erase, erase_if): Guard behind __cpp_lib_erase_if.
3781 * include/std/coroutine: Switch to bits/version.h for
3782 __cpp_lib_coroutine. Guard header behind that FTM.
3783 * include/std/concepts: Switch to bits/version.h for
3784 __cpp_lib_concepts. Guard header behind that FTM.
3785 * include/std/complex: Switch to bits/version.h for
3786 __cpp_lib_{complex_udls,constexpr_complex}.
3787 (operator""if, operator""i, operator""il): Guard behind
3788 __cpp_lib_complex_udls.
3789 * include/std/charconv: Swtich to bits/version.h for
3790 __cpp_lib_{to_chars,constexpr_charconv}.
3791 * include/std/bitset: Switch to bits/version.h for
3792 __cpp_lib_constexpr_bitset.
3793 * include/std/bit: Switch to bits/version.h for
3794 __cpp_lib_{bit_cast,byteswap,bitops,int_pow2,endian}.
3795 (bit_cast): Guard behind __cpp_lib_bit_cast.
3796 (byteswap): Guard behind __cpp_lib_byteswap.
3797 (rotl, rotr, countl_zero, countl_one, countr_zero, countr_one)
3798 (popcount): Guard behind __cpp_lib_bitops.
3799 (has_single_bit, bit_ceil, bit_floor, bit_width): Guard behind
3801 (endian): Guard behind __cpp_lib_endian.
3802 * include/std/barrier: Switch to bits/version.h for
3803 __cpp_lib_barrier. Guard header behind that FTM.
3804 * include/std/atomic: Switch to bits/version.h for
3805 __cpp_lib_atomic_{is_always_lock_free,float,ref}
3806 and __cpp_lib_lock_free_type_aliases.
3807 (*::is_always_lock_free): Guard behind
3808 __cpp_lib_atomic_is_always_lock_free.
3809 (atomic<float>): Guard behind __cpp_lib_atomic_float.
3810 (atomic_ref): Guard behind __cpp_lib_atomic_ref.
3811 (atomic_signed_lock_free, atomic_unsigned_lock_free): Guard behind
3812 __cpp_lib_atomic_lock_free_type_aliases.
3813 * include/std/array: Switch to bits/version.h for
3815 (to_array): Guard behind __cpp_lib_to_array.
3816 * include/std/any: Switch to bits/version.h for __cpp_lib_any.
3817 Guard header behind that FTM.
3818 * include/std/algorithm: Switch to bits/version.h for
3819 __cpp_lib_parallel_algorithm.
3820 * include/c_global/cstddef: Switch to bits/version.h for
3822 (byte): Guard behind __cpp_lib_byte.
3823 * include/c_global/cmath: Switch to bits/version.h for
3824 __cpp_lib_{hypot,interpolate}.
3825 (hypot3): Guard behind __cpp_lib_hypot.
3826 (lerp): Guard behind __cpp_lib_interpolate.
3827 * include/c_compatibility/stdatomic.h: Switch to
3828 bits/stl_version.h for __cpp_lib_atomic. Guard header behind that
3830 * include/bits/utility.h: Switch to bits/version.h for
3831 __cpp_lib_{tuple_element_t,integer_sequence,ranges_zip}.
3832 (tuple_element_t): Guard behind __cpp_lib_tuple_element_t.
3833 (integer_sequence et al): Guard behind __cpp_lib_integer_sequence.
3834 * include/bits/uses_allocator_args.h: Switch to bits/version.h for
3835 __cpp_lib_make_obj_using_allocator. Guard header behind that FTM.
3836 * include/bits/unordered_map.h: Switch to bits/version.h for
3837 __cpp_lib_unordered_map_try_emplace.
3838 (try_emplace): Guard behind __cpp_lib_unordered_map_try_emplace.
3839 * include/bits/unique_ptr.h: Switch to bits/version.h for
3840 __cpp_lib_{constexpr_memory,make_unique}.
3841 (make_unique): Guard behind __cpp_lib_make_unique.
3842 * include/bits/stl_vector.h: Switch to bits/version.h for
3843 __cpp_lib_constexpr_vector.
3844 * include/bits/stl_uninitialized.h: Switch to bits/version.h for
3845 __cpp_lib_raw_memory_algorithms.
3846 (uninitialized_default_construct)
3847 (uninitialized_default_construct_n, uninitialized_move)
3848 (uninitialized_move_n, uninitialized_value_construct)
3849 (uninitialized_value_construct_n): Guard behind
3850 __cpp_lib_raw_memory_algorithms.
3851 * include/bits/stl_tree.h: Switch to bits/version.h for
3852 __cpp_lib_generic_associative_lookup.
3853 * include/bits/stl_stack.h: Switch to bits/version.h for
3854 __cpp_lib_adaptor_iterator_pair_constructor.
3855 (stack): Guard iterator-pair constructor behind
3856 __cpp_lib_adaptor_iterator_pair_constructor.
3857 * include/bits/stl_queue.h: Switch to bits/version.h for
3858 __cpp_lib_adaptor_iterator_pair_constructor.
3859 (queue): Guard iterator-pair constructor behind
3860 __cpp_lib_adaptor_iterator_pair_constructor.
3861 * include/bits/stl_pair.h: Switch to bits/version.h for
3862 __cpp_lib_{concepts,tuples_by_type}.
3863 (get): Guard type-getting overloads behind
3864 __cpp_lib_tuples_by_type.
3865 * include/bits/stl_map.h: Switch to bits/version.h for
3866 __cpp_lib_map_try_emplace.
3867 (map<>::try_emplace): Guard behind __cpp_lib_map_try_emplace.
3868 * include/bits/stl_list.h: Switch to bits/version.h for
3869 __cpp_lib_list_remove_return_type.
3870 (__remove_return_type, _GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG)
3871 [C++20]: guard behind __cpp_lib_list_remove_return_type instead.
3872 * include/bits/stl_iterator.h: Switch to bits/version.h for
3873 __cpp_lib_{constexpr_iterator,array_constexpr} and
3874 __cpp_lib_{make_reverse_iterator,move_iterator_concept}.
3875 (make_reverse_iterator): Guard behind
3876 __cpp_lib_make_reverse_iterator.
3877 (iterator_concept et al): Guard __cpp_lib_move_iterator_concept
3878 changes behind that FTM.
3879 * include/bits/stl_function.h: Switch to bits/version.h for
3880 __cpp_lib_transparent_operators.
3881 (equal_to, not_equal_to, greater, less, greater_equal)
3882 (less_equal, bit_and, bit_or, bit_xor, bit_not, logical_and)
3883 (logical_or, logical_not, plus, minus, multiplies, divides)
3884 (modulus, negate): Guard '= void' fwdecls behind
3885 __cpp_lib_transparent_operators.
3886 (plus<void>, minus<void>, multiplies<void>, divides<void>)
3887 (modulus<void>, negate<void>, logical_and<void>, logical_or<void>)
3888 (logical_not<void>, bit_and<void>, bit_or<void>, bit_xor<void>)
3889 (equal_to<void>, not_equal_to<void>, greater<void>, less<void>)
3890 (greater_equal<void>, less_equal<void>, bit_not<void>)
3891 (__has_is_transparent): Guard behind
3892 __cpp_lib_transparent_operators.
3893 * include/bits/stl_algobase.h: Switch to bits/version.h for
3894 __cpp_lib_robust_nonmodifying_seq_ops.
3895 (robust equal, mismatch): Guard behind
3896 __cpp_lib_nonmember_container_access.
3897 * include/bits/stl_algo.h: Swtich to bits/version.h for
3898 __cpp_lib_{clamp,sample}.
3899 (clamp): Guard behind __cpp_lib_clamp.
3900 (sample): Guard behind __cpp_lib_sample.
3901 * include/bits/specfun.h: Switch to bits/version.h for
3902 __cpp_lib_math_special_functions and __STDCPP_MATH_SPEC_FUNCS__.
3903 * include/bits/shared_ptr_base.h: Switch to bits/version.h for
3904 __cpp_lib_{smart_ptr_for_overwrite,shared_ptr_arrays}.
3905 (_Sp_overwrite_tag): Guard behind
3906 __cpp_lib_smart_ptr_for_overwrite.
3907 * include/bits/shared_ptr_atomic.h: Switch to bits/version.h for
3908 __cpp_lib_atomic_shared_ptr.
3909 * include/bits/shared_ptr.h: Switch to bits/version.h for
3910 __cpp_lib_{enable_shared_from_this,shared_ptr_weak_type}.
3911 (shared_ptr<T>::weak_type): Guard behind
3912 __cpp_lib_shared_ptr_weak_type.
3913 (enable_shared_from_this<T>::weak_from_this): Guard behind
3914 __cpp_lib_enable_shared_from_this.
3915 * include/bits/ranges_cmp.h: Switch to bits/version.h for
3917 * include/bits/ranges_algo.h: Switch to bits/version.h for
3918 __cpp_lib_{shift,ranges_{contains,find_last,fold,iota}}.
3919 * include/bits/range_access.h: Switch to bits/version.h for
3920 __cpp_lib_nonmember_container_access
3921 (size, empty, data): Guard behind
3922 __cpp_lib_nonmember_container_access.
3923 (ssize): Guard behind __cpp_lib_ssize.
3924 * include/bits/ptr_traits.h: Switch to bits/version.h. for
3925 __cpp_lib_{constexpr_memory,to_address}.
3926 (to_address): Guard behind __cpp_lib_to_address.
3927 * include/bits/node_handle.h: Switch to bits/version.h for
3928 __cpp_lib_node_extract. Guard header behind that FTM.
3929 * include/bits/move_only_function.h: Switch to bits/version.h for
3930 __cpp_lib_move_only_function. Guard header behind that FTM.
3931 * include/bits/move.h: Switch to bits/version.h for
3932 __cpp_lib_addressof_constexpr.
3933 * include/bits/ios_base.h: Switch to bits/version.h for
3934 __cpp_lib_ios_noreplace.
3935 (noreplace): Guard with __cpp_lib_ios_noreplace.
3936 * include/bits/hashtable.h: Switch to bits/version.h for
3937 __cpp_lib_generic_unordered_lookup.
3938 (_M_equal_range_tr, _M_count_tr, _M_find_tr): Guard behind
3939 __cpp_lib_generic_unordered_lookup.
3940 * include/bits/forward_list.h: Switch to bits/version.h for
3941 __cpp_lib_list_remove_return_type.
3942 (__remove_return_type): Guard behind
3943 __cpp_lib_list_remove_return_type.
3944 * include/bits/erase_if.h: Switch to bits/version.h for
3946 * include/bits/cow_string.h: Switch to bits/version.h for
3947 __cpp_lib_constexpr_string.
3948 * include/bits/chrono.h: Swtich to bits/version.h for
3949 __cpp_lib_chrono{,_udls}.
3950 (ceil): Guard behind __cpp_lib_chrono.
3951 (operator""ns et al): Guard behind __cpp_lib_chrono_udls.
3952 * include/bits/char_traits.h: Switch to bits/version.h for
3953 __cpp_lib_constexpr_char_traits.
3954 * include/bits/basic_string.h: Switch to bits/version.h for
3955 __cpp_lib_{constexpr_string,string_{resize_and_overwrite,udls}}.
3956 (resize_and_overwrite): Guard behind
3957 __cpp_lib_string_resize_and_overwrite.
3958 (operator""s): Guard behind __cpp_lib_string_udls.
3959 * include/bits/atomic_wait.h: Switch to bits/version.h for
3960 __cpp_lib_atomic_wait. Guard header behind that FTM.
3961 * include/bits/atomic_base.h: Switch to bits/version.h for
3962 __cpp_lib_atomic_value_initialization and
3963 __cpp_lib_atomic_flag_test.
3964 (atomic_flag::test): Guard behind __cpp_lib_atomic_flag_test,
3966 * include/bits/allocator.h: Switch to bits/version.h for
3967 __cpp_lib_incomplete_container_elements.
3968 * include/bits/alloc_traits.h: Switch to using bits/version.h for
3969 __cpp_lib_constexpr_dynamic_alloc and
3970 __cpp_lib_allocator_traits_is_always_equal.
3971 * include/bits/align.h: Switch to bits/version.h for defining
3972 __cpp_lib_assume_aligned.
3973 (assume_aligned): Guard with __cpp_lib_assume_aligned.
3974 * include/bits/algorithmfwd.h: Switch to bits/version.h for
3975 defining __cpp_lib_constexpr_algorithms.
3976 * include/std/stacktrace: Switch to bits/version.h for
3977 __cpp_lib_stacktrace. Guard header behind that FTM.
3978 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
3979 Update line numbers.
3981 2023-08-16 Arsen Arsenović <arsen@aarsen.me>
3983 * include/Makefile.am (bits_freestanding): Add version.h.
3984 (allcreated): Add version.h.
3985 (${bits_srcdir}/version.h): New rule. Regenerates
3986 version.h out of version.{def,tpl}.
3987 * include/Makefile.in: Regenerate.
3988 * include/bits/version.def: New file. Declares a list of
3989 all feature test macros, their values and their preconditions.
3990 * include/bits/version.tpl: New file. Turns version.def
3991 into a sequence of #if blocks.
3992 * include/bits/version.h: New file. Generated from
3994 * include/std/version: Replace with a __glibcxx_want_all define
3995 and bits/version.h include.
3997 2023-08-14 Paul Dreik <gccpatches@pauldreik.se>
4000 * include/std/format (__formatter_fp::format): Use frexp instead
4003 2023-08-12 Ken Matsui <kmatsui@gcc.gnu.org>
4005 * include/std/type_traits (true_type): Use __bool_constant
4007 (false_type): Likewise.
4008 (bool_constant): Likewise.
4010 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4013 * include/std/format (_Seq_sink::get): Only call _M_overflow if
4014 its precondition is met.
4015 (_Iter_sink::_M_finish): Likewise.
4016 (_Iter_sink<C, ContigIter>::_M_overflow): Only switch to the
4017 internal buffer after running out of space.
4018 (_Iter_sink<C, ContigIter>::_M_finish): Do not use _M_overflow.
4019 (_Counting_sink::count): Likewise.
4020 * testsuite/std/format/functions/format_to_n.cc: Check cases
4021 where the output fits into the buffer.
4023 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4026 * include/bits/chrono_io.h (operator|=, operator|): Add noexcept
4027 to _ChronoParts operators.
4028 (from_stream, parse): Define new functions.
4029 (__detail::_Parse, __detail::_Parser): New class templates.
4030 * include/std/chrono (__cpp_lib_chrono): Define to 201907L for
4032 * include/std/version (__cpp_lib_chrono): Likewise.
4033 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc:
4034 Adjust expected value of feature test macro.
4035 * testsuite/20_util/duration/io.cc: Test parsing.
4036 * testsuite/std/time/clock/file/io.cc: Likewise.
4037 * testsuite/std/time/clock/gps/io.cc: Likewise.
4038 * testsuite/std/time/clock/system/io.cc: Likewise.
4039 * testsuite/std/time/clock/tai/io.cc: Likewise.
4040 * testsuite/std/time/clock/utc/io.cc: Likewise.
4041 * testsuite/std/time/day/io.cc: Likewise.
4042 * testsuite/std/time/month/io.cc: Likewise.
4043 * testsuite/std/time/month_day/io.cc: Likewise.
4044 * testsuite/std/time/weekday/io.cc: Likewise.
4045 * testsuite/std/time/year/io.cc: Likewise.
4046 * testsuite/std/time/year_month/io.cc: Likewise.
4047 * testsuite/std/time/year_month_day/io.cc: Likewise.
4048 * testsuite/std/time/syn_c++20.cc: Check value of macro and for
4049 the existence of parse and from_stream in namespace chrono.
4050 * testsuite/std/time/clock/local/io.cc: New test.
4051 * testsuite/std/time/parse.cc: New test.
4053 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4056 * include/std/format (__formatter_fp::format): Do not call log10
4059 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4061 * python/libstdcxx/v6/printers.py (StdChronoCalendarPrinter):
4062 Check for out-of-range month an weekday indices.
4063 * testsuite/libstdc++-prettyprinters/chrono.cc: Check invalid
4064 month and weekday values.
4066 2023-08-11 Jonathan Wakely <jwakely@redhat.com>
4068 * include/bits/stl_iterator.h (__clamped_iter_cat_t): Remove.
4070 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
4073 * include/std/format (_Spec::_S_parse_width_or_precision): Check
4074 for empty range before dereferencing iterator.
4075 * testsuite/std/format/string.cc: Check for expected exception.
4076 Fix expected exception message in test_pr110862() and actually
4079 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
4082 * include/std/format (__formatter_fp::format): Check return
4083 value of _M_localize.
4084 * testsuite/std/format/functions/format.cc: Check classic
4087 2023-08-10 Jonathan Wakely <jwakely@redhat.com>
4090 * include/bits/stl_iterator.h (__detail::__move_iter_cat): Use
4092 (iterator_traits<common_iterator<I, S>>::_S_iter_cat): Likewise.
4093 (__detail::__basic_const_iterator_iter_cat): Likewise.
4094 * include/bits/stl_iterator_base_types.h (__iterator_category_t):
4095 Rename to __iter_category_t.
4097 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4099 * include/bits/chrono.h (duration_cast): Do not use braces
4100 around statements for C++11 constexpr rules.
4101 * include/bits/stl_algobase.h (__lg): Rewrite as a single
4102 statement for C++11 constexpr rules.
4103 * include/experimental/bits/fs_path.h (path::string): Use
4104 _GLIBCXX17_CONSTEXPR not _GLIBCXX_CONSTEXPR for 'if constexpr'.
4105 * include/std/charconv (__to_chars_8): Initialize variable for
4106 C++17 constexpr rules.
4108 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4110 * include/bits/list.tcc (list::sort(Cmp)): Fix -Wsign-compare
4111 warning for loop condition.
4113 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4115 * include/std/complex: Add diagnostic pragma for clang.
4117 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4119 * include/bits/shared_ptr_atomic.h (atomic): Change class-head
4121 * include/bits/stl_tree.h (_Rb_tree_merge_helper): Change
4122 class-head to struct in friend declaration.
4123 * include/std/chrono (tzdb_list::_Node): Likewise.
4124 * include/std/future (_Task_state_base, _Task_state): Likewise.
4125 * include/std/scoped_allocator (__inner_type_impl): Likewise.
4126 * include/std/valarray (_BinClos, _SClos, _GClos, _IClos)
4127 (_ValFunClos, _RefFunClos): Change class-head to struct.
4129 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4131 * include/bits/alloc_traits.h (allocate): Add [[maybe_unused]]
4133 * include/bits/regex_executor.tcc: Remove name of unused
4135 * include/bits/shared_ptr_atomic.h (atomic_is_lock_free):
4137 * include/bits/stl_uninitialized.h: Likewise.
4138 * include/bits/streambuf_iterator.h (operator==): Likewise.
4139 * include/bits/uses_allocator.h: Likewise.
4140 * include/c_global/cmath (isfinite, isinf, isnan): Likewise.
4141 * include/std/chrono (zoned_time): Likewise.
4142 * include/std/future (__future_base::_S_allocate_result):
4144 (packaged_task): Likewise.
4145 * include/std/optional (_Optional_payload_base): Likewise.
4146 * include/std/scoped_allocator (__inner_type_impl): Likewise.
4147 * include/std/tuple (_Tuple_impl): Likewise.
4149 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4151 * include/bits/new_allocator.h (__new_allocator): Define copy
4152 assignment operator as defaulted.
4153 * include/std/complex (complex<float>, complex<double>)
4154 (complex<long double>): Define copy constructor as defaulted.
4156 2023-08-09 Jonathan Wakely <jwakely@redhat.com>
4158 * include/std/format: Fix some warnings.
4159 (__format::__write(Ctx&, basic_string_view<CharT>)): Remove
4160 unused function template.
4162 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
4165 * include/std/format (__formatter_fp::format): Do not use
4166 __builtin_abs and __builtin_log10 with arbitrary floating-point
4169 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
4172 * include/std/format (__format::_Iter_sink<CharT, OutIter>):
4173 Constrain partial specialization for contiguous iterators to
4174 require the value type to be CharT.
4175 * testsuite/std/format/functions/format_to.cc: New test.
4177 2023-08-07 Jonathan Wakely <jwakely@redhat.com>
4180 * include/std/format (_Scanner::_M_on_replacement_field):
4181 Check for expected '}' before incrementing iterator.
4182 * testsuite/std/format/string.cc: Check "{0:{0}" format string.
4184 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
4186 * configure: Regenerate.
4188 2023-08-07 Alan Modra <amodra@gmail.com>
4190 * configure: Regenerate.
4192 2023-08-07 Alexander von Gluck IV <kallisti5@unixzen.com>
4194 * configure: Regenerate.
4196 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
4198 * configure: Regenerate.
4200 2023-08-07 Nick Alcock <nick.alcock@oracle.com>
4202 * configure: Regenerate.
4204 2023-08-07 H.J. Lu <hjl.tools@gmail.com>
4206 * configure: Regenerate.
4208 2023-08-07 H.J. Lu <hjl.tools@gmail.com>
4210 * configure: Regenerate.
4212 2023-08-06 François Dumont <fdumont@gcc.gnu.org>
4214 * config/abi/pre/gnu-versioned-namespace.ver: Add __cxa_call_terminate
4217 2023-07-30 François Dumont <fdumont@gcc.gnu.org>
4219 * src/c++11/compatibility-ldbl-facets-aliases.h: Replace #define with
4221 * src/c++11/locale-inst-monetary.h: Likewise.
4222 * src/c++11/locale-inst-numeric.h: Likewise.
4224 2023-07-27 Jonathan Wakely <jwakely@redhat.com>
4227 * include/std/format (__formatter_fp::format): Ensure __expc is
4228 always set for all presentation types. Set __z correctly for
4230 * testsuite/std/format/functions/format.cc: Check problem cases.
4232 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
4235 * testsuite/23_containers/vector/bool/110807.cc: Require c++11.
4237 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
4240 * include/bits/stl_bvector.h (vector(const vector&)): Access
4241 iterators before allocating.
4242 * include/bits/vector.tcc (vector<bool>::_M_insert_range):
4244 * testsuite/23_containers/vector/bool/110807.cc: New test.
4246 2023-07-26 Jonathan Wakely <jwakely@redhat.com>
4248 * include/bits/algorithmfwd.h (random_shuffle): Add deprecated
4250 * include/bits/stl_algo.h (random_shuffle): Correct comments.
4251 * testsuite/25_algorithms/random_shuffle/1.cc: Disable
4252 deprecated warnings.
4253 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise.
4254 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
4255 * testsuite/25_algorithms/random_shuffle/deprecated.cc: New
4258 2023-07-26 Nathaniel Shead <nathanieloshead@gmail.com>
4260 * testsuite/25_algorithms/equal/constexpr_neg.cc: Update diagnostic
4262 * testsuite/26_numerics/gcd/105844.cc: Likewise.
4263 * testsuite/26_numerics/lcm/105844.cc: Likewise.
4265 2023-07-24 Deev Patel <pateldeev@nevada.unr.edu>
4267 * include/std/format (_Formatting_scanner::_M_on_chars): Add
4268 missing constexpr specifier.
4269 (_Formatting_scanner::_M_format_arg): Likewise.
4271 2023-07-24 Jonathan Wakely <jwakely@redhat.com>
4274 * include/bits/basic_string.h [!HAVE_STOF] (stof): Do not
4275 throw an exception for zero result.
4276 [HAVE_BROKEN_STRTOLD] (stold): Do not use strtold.
4278 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4281 * src/c++17/floating_from_chars.cc (from_chars): Only define
4282 _Float128 overload when using __strfromf128.
4284 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4287 * include/bits/chrono.h (duration): Improve static assert
4289 (__is_ratio): Move to ...
4290 * include/std/ratio (__is_ratio): ... here.
4291 (__is_ratio_v): New variable template and partial
4293 (__are_both_ratios): New function template.
4294 (__ratio_multiply, ratio_equal, ratio_less, __ratio_add):
4295 Add static assertion.
4296 * testsuite/20_util/ratio/requirements/type_constraints.cc:
4298 * testsuite/20_util/duration/requirements/typedefs_neg1.cc:
4299 Adjust expected error.
4300 * testsuite/20_util/duration/requirements/typedefs_neg2.cc:
4303 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4305 * include/bits/chrono_io.h (__formatter_chrono::_M_format):
4306 Do not set __is_neg for hh_mm_ss before calling
4307 _M_format_to_ostream. Change __print_sign lambda to only check
4308 __is_neg for durations and hh_mm_ss types.
4309 (__formatter_chrono::_M_format_to_ostream): Only check __is_neg
4311 * testsuite/std/time/hh_mm_ss/io.cc: Check negative values.
4313 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4316 * include/bits/chrono_io.h (__formatter_chrono::_S_floor_seconds):
4317 Handle duration and hh_mm_ss.
4318 * testsuite/20_util/duration/io.cc: Check locale-specific
4320 * testsuite/std/time/hh_mm_ss/io.cc: Likewise.
4322 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4324 * include/std/format (__write_padded): Initialize first element
4325 of array to avoid a -Wmaybe-uninitialized warning.
4327 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4330 * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Fix
4331 allowed modifiers for %z and %Z. Fix -Wparentheses and
4332 -Wnarrowing warnings.
4333 (__formatter_chrono::_M_format): Call new functions for %d, %e,
4335 (__formatter_chrono::_M_c): Use _S_floor_seconds to remove
4336 subsecond precision.
4337 (__formatter_chrono::_M_C_y_Y): Use _M_locale_fmt to handle
4339 (__formatter_chrono::_M_e): Replace with _M_d_e and use
4341 (__formatter_chrono::_M_I): Replace with _M_H_I and use
4343 (__formatter_chrono::_M_m): New function.
4344 (__formatter_chrono::_M_M): New function.
4345 (__formatter_chrono::_M_r): Use _M_locale_fmt.
4346 (__formatter_chrono::_M_S): Likewise.
4347 (__formatter_chrono::_M_u_w): Likewise.
4348 (__formatter_chrono::_M_U_V_W): Likewise.
4349 (__formatter_chrono::_M_X): Use _S_floor_seconds.
4350 (__formatter_chrono::_M_Z): Fix untested branch for wchar_t.
4351 (__formatter_chrono::_S_altnum): Remove function.
4352 (__formatter_chrono::_S_dd_zero_fill): Remove function.
4353 (__formatter_chrono::_S_floor_seconds): New function.
4354 (__formatter_chrono::_M_locale_fmt): New function.
4355 * testsuite/std/time/clock/system/io.cc: Adjust expected output
4356 for locale-specific formats and check modified formats.
4357 * testsuite/std/time/clock/utc/io.cc: Likewise.
4358 * testsuite/std/time/zoned_time/io.cc: New test.
4360 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4363 * include/bits/chrono_io.h (__formatter_chrono::_M_parse): Only
4364 allow a single modifier.
4365 * testsuite/std/time/format.cc: Check multiple modifiers.
4367 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4370 * testsuite/21_strings/basic_string/numeric_conversions/char/stod.cc:
4371 Remove dg-require-string-conversions.
4372 * testsuite/21_strings/basic_string/numeric_conversions/char/stof.cc:
4374 * testsuite/21_strings/basic_string/numeric_conversions/char/stoi.cc:
4376 * testsuite/21_strings/basic_string/numeric_conversions/char/stol.cc:
4378 * testsuite/21_strings/basic_string/numeric_conversions/char/stoul.cc:
4381 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4384 * include/bits/basic_string.h [!_GLIBCXX_HAVE_STRTOF] (stof):
4385 Define in terms of std::stod.
4387 2023-07-19 Jonathan Wakely <jwakely@redhat.com>
4390 * include/bits/basic_string.h [_GLIBCXX_HAVE_STRTOF] (stof):
4392 [_GLIBCXX_HAVE_STRTOLD] (stold): Define.
4393 * include/c_global/cstdlib [_GLIBCXX_HAVE_STRTOF] (strtof):
4394 Declare in namespace std.
4395 [_GLIBCXX_HAVE_STRTOLD] (strtold): Likewise.
4397 2023-07-13 Jonathan Wakely <jwakely@redhat.com>
4400 * include/bits/basic_string.h (stoi, stol, stoul, stod): Do not
4401 depend on _GLIBCXX_USE_C99_STDLIB.
4402 [__LONG_WIDTH__ == __LONG_LONG_WIDTH__] (stoll, stoull): Define
4403 in terms of stol and stoul respectively.
4404 [__DBL_MANT_DIG__ == __LDBL_MANT_DIG__] (stold): Define in terms
4407 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
4410 * testsuite/27_io/filesystem/path/construct/95048.cc: Check
4411 conversions to wide strings.
4412 * testsuite/experimental/filesystem/path/construct/95048.cc:
4415 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
4417 * config/io/basic_file_stdio.cc: Define LFS macros.
4418 (__basic_file<char>::open): Use fopen unconditionally.
4419 (get_file_offset): Use lseek unconditionally.
4420 (__basic_file<char>::seekoff): Likewise.
4421 (__basic_file<char>::showmanyc): Use fstat unconditionally.
4423 2023-07-12 Jonathan Wakely <jwakely@redhat.com>
4426 * acinclude.m4 (GLIBCXX_CHECK_LFS): Check for fseeko and ftello
4427 and define _GLIBCXX_USE_FSEEKO_FTELLO.
4428 * config.h.in: Regenerate.
4429 * configure: Regenerate.
4430 * config/io/basic_file_stdio.cc (xwrite) [_GLIBCXX_USE_STDIO_PURE]:
4431 Check for fwrite error correctly.
4432 (__basic_file<char>::xsgetn) [_GLIBCXX_USE_STDIO_PURE]: Check for
4433 fread error correctly.
4434 (get_file_offset): New function.
4435 (__basic_file<char>::seekoff) [_GLIBCXX_USE_STDIO_PURE]: Use
4436 fseeko if available. Use get_file_offset instead of return value
4438 (__basic_file<char>::showmanyc): Use get_file_offset.
4440 2023-07-12 Ken Matsui <kmatsui@gcc.gnu.org>
4442 * include/std/type_traits (__make_unsigned_selector): Use
4443 __is_enum built-in trait.
4444 (__make_signed_selector): Likewise.
4445 (__underlying_type_impl): Likewise.
4447 2023-07-06 Tianqiang Shuai <1101282468@qq.com>
4449 * config/io/basic_file_stdio.cc (xwrite) [USE_STDIO_PURE]: Fix
4452 2023-07-06 Jonathan Wakely <jwakely@redhat.com>
4455 * doc/xml/manual/configure.xml: Describe stdio_pure argument to
4457 * doc/html/manual/configure.html: Regenerate.
4459 2023-07-05 Thomas Rodgers <trodgers@redhat.com>
4461 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Delete
4463 * testsuite/25_algorithms/pstl/alg_sorting/set_difference.cc:
4465 * testsuite/25_algorithms/pstl/alg_sorting/set_intersection.cc:
4467 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc:
4469 * testsuite/25_algorithms/pstl/alg_sorting/set_union.cc:
4471 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h:
4474 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
4476 * testsuite/23_containers/forward_list/debug/iterator1_neg.cc:
4477 Skip as UNSUPPORTED for C++98 mode.
4478 * testsuite/23_containers/forward_list/debug/iterator3_neg.cc:
4481 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
4484 * include/bits/stl_uninitialized.h (__uninitialized_default_n):
4485 Do not use std::fill_n during constant evaluation.
4487 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
4489 * include/bits/vector.tcc (_M_default_append): Replace try-block
4492 2023-07-05 Jonathan Wakely <jwakely@redhat.com>
4494 * include/bits/iterator_concepts.h (projected): Add typename.
4496 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
4498 * testsuite/27_io/headers/iosfwd/synopsis.cc: Make wsyncbuf and
4499 wosyncstream depend on _GLIBCXX_USE_CXX11_ABI.
4501 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
4503 * include/pstl/pstl_config.h (_PSTL_PRAGMA_SIMD_SCAN,
4504 _PSTL_PRAGMA_SIMD_INCLUSIVE_SCAN, _PSTL_PRAGMA_SIMD_EXCLUSIVE_SCAN):
4505 Define to OpenMP 5.0 pragmas even for GCC 10.0+.
4506 (_PSTL_UDS_PRESENT): Define to 1 for GCC 10.0+.
4508 2023-07-03 Jonathan Wakely <jwakely@redhat.com>
4510 * include/bits/alloc_traits.h (_Destroy): Qualify call.
4511 * include/bits/stl_construct.h (_Destroy, _Destroy_n): Likewise.
4512 * testsuite/23_containers/vector/cons/destroy-adl.cc: New test.
4514 2023-07-03 Iain Sandoe <iain@sandoe.co.uk>
4516 * testsuite/lib/libstdc++.exp: Remove additional flag handled
4519 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
4522 * acinclude.m4 (GLIBCXX_CHECK_INIT_PRIORITY): New.
4523 * config.h.in: Regenerate.
4524 * configure: Regenerate.
4525 * configure.ac: Use GLIBCXX_CHECK_INIT_PRIORITY.
4526 * include/std/iostream: Use new autoconf macro as well as
4528 * src/c++98/ios_base_init.h: Use new autoconf macro instead of
4531 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
4533 * src/c++11/random.cc (random_device::_M_init): Add maybe_unused
4536 2023-06-30 Jonathan Wakely <jwakely@redhat.com>
4539 * src/c++11/random.cc (random_device::_M_init): Throw
4540 std::system_error when the requested device is a valid token but
4541 not available at runtime.
4543 2023-06-30 Hans-Peter Nilsson <hp@axis.com>
4546 * include/pstl/unseq_backend_simd.h (__simd_or): Re-apply using
4547 __INT32_TYPE__ instead of int32_t.
4549 2023-06-29 Jonathan Wakely <jwakely@redhat.com>
4551 * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define consistently
4552 with USE_ATOMIC_LIST_HEAD.
4553 (list_mutex): Replace global object with function. Use local
4554 static object when std::mutex constructor isn't constexpr.
4556 2023-06-29 Jonathan Wakely <jwakely@redhat.com>
4559 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check that
4560 copy_file_range can be called with loff_t* arguments.
4561 * configure: Regenerate.
4562 * src/filesystem/ops-common.h (copy_file_copy_file_range):
4563 Use loff_t for offsets.
4565 2023-06-29 Tom Tromey <tromey@adacore.com>
4567 * testsuite/lib/gdb-test.exp (gdb-test): Relax type-printer
4570 2023-06-28 Jan Hubicka <jh@suse.cz>
4572 PR middle-end/109849
4573 * include/bits/c++config (std::__terminate): Mark cold.
4574 * include/bits/functexcept.h: Mark everything as cold.
4575 * libsupc++/exception: Mark terminate and unexpected as cold.
4577 2023-06-26 Thomas Rodgers <trodgers@redhat.com>
4579 * include/pstl/algorithm_fwd.h: Synchronize with upstream.
4580 * include/pstl/algorithm_impl.h: Likewise.
4581 * include/pstl/execution_defs.h: Likewise.
4582 * include/pstl/execution_impl.h: Likewise.
4583 * include/pstl/glue_algorithm_impl.h: Likewise.
4584 * include/pstl/glue_execution_defs.h: Likewise.
4585 * include/pstl/glue_memory_impl.h: Likewise.
4586 * include/pstl/glue_numeric_impl.h: Likewise.
4587 * include/pstl/memory_impl.h: Likewise.
4588 * include/pstl/numeric_fwd.h: Likewise.
4589 * include/pstl/numeric_impl.h: Likewise.
4590 * include/pstl/parallel_backend.h: Likewise.
4591 * include/pstl/parallel_backend_serial.h: Likewise.
4592 * include/pstl/parallel_backend_tbb.h: Likewise.
4593 * include/pstl/parallel_impl.h: Likewise.
4594 * include/pstl/pstl_config.h: Likewise.
4595 * include/pstl/unseq_backend_simd.h: Likewise.
4596 * include/pstl/utils.h: Likewise.
4597 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc:
4599 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
4601 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc:
4603 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
4605 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise.
4606 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
4608 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
4610 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc:
4612 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc:
4614 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
4616 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
4618 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
4620 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
4622 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc:
4624 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc:
4626 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc:
4628 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
4630 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
4632 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc:
4634 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc:
4636 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc:
4638 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
4640 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
4642 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc:
4644 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc:
4646 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc:
4648 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc:
4650 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc:
4652 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
4654 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
4656 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
4658 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
4660 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc:
4662 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc:
4664 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc:
4666 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
4668 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
4670 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
4672 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
4674 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc:
4676 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc:
4678 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc:
4680 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc:
4682 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc:
4684 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc:
4686 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
4688 * testsuite/25_algorithms/pstl/alg_sorting/set.cc:
4690 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc:
4692 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
4694 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc:
4696 * testsuite/26_numerics/pstl/numeric_ops/scan.cc:
4698 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
4700 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc:
4702 * testsuite/util/pstl/test_utils.h:
4705 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
4708 * include/std/format (__format::__parse_integer): Fix buffer
4709 overflow for wide chars.
4710 (formatter<const void*, C>::format): Cast to uintptr_t instead
4712 * testsuite/std/format/string.cc: Test too-large widths.
4714 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
4716 * include/bits/iterator_concepts.h (projected): Replace class
4717 template with alias template denoting an ADL-proofed helper.
4718 (incremental_traits<projected<Iter, Proj>>): Remove.
4719 * testsuite/24_iterators/indirect_callable/projected-adl.cc:
4722 2023-06-26 Jonathan Wakely <jwakely@redhat.com>
4724 * include/debug/helper_functions.h (__get_distance)
4725 (__check_singular, __valid_range_aux, __valid_range): Qualify
4726 calls to disable ADL.
4727 (__check_singular_aux(const _Safe_iterator_base*)): Declare
4728 overload that was previously found via ADL.
4730 2023-06-23 Jonathan Wakely <jwakely@redhat.com>
4732 * include/bits/vector.tcc (_M_realloc_insert): Replace try-block
4735 2023-06-20 Jonathan Wakely <jwakely@redhat.com>
4737 * include/std/array (to_array(T(&)[N])): Remove redundant
4739 (to_array(T(&&)[N])): Remove redundant std::move.
4741 2023-06-16 Alexandre Oliva <oliva@adacore.com>
4743 * testsuite/20_util/from_chars/4.cc: Skip long double on
4746 2023-06-16 Joel Brobecker <brobecker@adacore.com>
4748 * configure.ac ["x${with_newlib}" = "xyes"]: Define
4749 HAVE_HYPOTF. Add compile-checks for various long double
4750 math functions as well.
4751 * configure: Regenerate.
4753 2023-06-14 Jonny Grant <jg@jguk.org>
4755 * doc/xml/manual/extensions.xml: Remove demangle exception
4756 description and include.
4757 * doc/html/manual/ext_demangling.html: Regenerate.
4759 2023-06-10 Hans-Peter Nilsson <hp@axis.com>
4761 * testsuite/27_io/basic_istream/ignore/wchar_t/94749.cc (main)
4762 [! SIMULATOR_TEST]: Also exclude running test05.
4763 * testsuite/27_io/basic_istream/ignore/char/94749.cc: Ditto.
4765 2023-06-09 Ken Matsui <kmatsui@cs.washington.edu>
4767 * include/std/type_traits: Use using instead of typedef
4769 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
4772 * src/c++17/floating_from_chars.cc (from_chars) <_Float128>:
4773 Only define if _Float128 and long double have different
4776 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
4779 * include/experimental/internet [IPPROTO_TCP || IPPROTO_UDP]
4780 (basic_endpoint, basic_resolver_entry, resolver_base)
4781 (basic_resolver_results, basic_resolver): Only define if the tcp
4782 or udp protocols will be defined.
4784 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
4786 * acinclude.m4 (libtool_VERSION): Update to 6.0.33.
4787 * configure: Regenerate.
4788 * doc/xml/manual/abi.xml: Add libstdc++.so.6.0.33.
4789 * doc/html/manual/abi.html: Regenerate.
4791 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
4794 * include/std/format (formatter<const void*, charT>::parse):
4795 Only alow 0 and P for C++26 and non-strict modes.
4796 (formatter<const void*, charT>::format): Use toupper for P
4797 type, and insert zero-fill characters for 0 option.
4798 * testsuite/std/format/functions/format.cc: Check pointer
4799 formatting. Only check P2510R3 extensions conditionally.
4800 * testsuite/std/format/parse_ctx.cc: Only check P2510R3
4801 extensions conditionally.
4803 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
4806 * include/std/array (to_array): Initialize arrays of trivial
4807 types using memcpy. For non-trivial types, use lambda
4808 expressions instead of a separate helper function.
4809 (__to_array): Remove.
4810 * testsuite/23_containers/array/creation/110167.cc: New test.
4812 2023-06-09 Jonathan Wakely <jwakely@redhat.com>
4814 * testsuite/23_containers/deque/modifiers/emplace/52799.cc:
4816 * testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc:
4818 * testsuite/23_containers/list/modifiers/emplace/52799.cc:
4820 * testsuite/23_containers/list/modifiers/emplace/const_iterator.cc:
4822 * testsuite/23_containers/vector/modifiers/emplace/52799.cc:
4824 * testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc:
4826 * testsuite/23_containers/deque/modifiers/emplace/1.cc: New
4828 * testsuite/23_containers/list/modifiers/emplace/1.cc: New
4830 * testsuite/23_containers/vector/modifiers/emplace/1.cc: New
4833 2023-06-07 Jakub Jelinek <jakub@redhat.com>
4836 * testsuite/20_util/to_chars/double.cc: Include <cfloat>.
4837 (double_to_chars_test_cases,
4838 double_scientific_precision_to_chars_test_cases_2,
4839 double_fixed_precision_to_chars_test_cases_2): #if out 1e126, 4.91e-6
4840 and 5.547e-6 tests if FLT_EVAL_METHOD is negative or larger than 1.
4841 Add unconditional tests with corresponding double constants
4842 0x1.7a2ecc414a03fp+418, 0x1.4981285e98e79p-18 and
4843 0x1.7440bbff418b9p-18.
4845 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
4847 * testsuite/util/testsuite_abi.cc (check_version): Re-add
4850 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
4852 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
4853 Require effective target exceptions_enabled instead of using
4855 * testsuite/23_containers/vector/capacity/constexpr.cc: Expect
4856 shrink_to_fit() to be a no-op without exceptions enabled.
4857 * testsuite/23_containers/vector/capacity/shrink_to_fit.cc:
4859 * testsuite/ext/bitmap_allocator/check_allocate_max_size.cc:
4860 Require effective target exceptions_enabled.
4861 * testsuite/ext/malloc_allocator/check_allocate_max_size.cc:
4863 * testsuite/ext/mt_allocator/check_allocate_max_size.cc:
4865 * testsuite/ext/new_allocator/check_allocate_max_size.cc:
4867 * testsuite/ext/pool_allocator/check_allocate_max_size.cc:
4869 * testsuite/ext/throw_allocator/check_allocate_max_size.cc:
4872 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
4874 * testsuite/20_util/duration/cons/2.cc: Use values that aren't
4875 affected by rounding.
4876 * testsuite/20_util/from_chars/5.cc: Cast arithmetic result to
4877 double before comparing for equality.
4878 * testsuite/20_util/from_chars/6.cc: Likewise.
4879 * testsuite/20_util/variant/86874.cc: Use values that aren't
4880 affected by rounding.
4881 * testsuite/25_algorithms/lower_bound/partitioned.cc: Compare to
4882 original value instead of to floating-point-literal.
4883 * testsuite/26_numerics/random/discrete_distribution/cons/range.cc:
4884 Cast arithmetic result to double before comparing for equality.
4885 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/range.cc:
4887 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/range.cc:
4889 * testsuite/26_numerics/valarray/transcend.cc (eq): Check that
4890 the absolute difference is less than 0.01 instead of comparing
4891 to two decimal places.
4892 * testsuite/27_io/basic_istream/extractors_arithmetic/char/01.cc:
4893 Cast arithmetic result to double before comparing for equality.
4894 * testsuite/27_io/basic_istream/extractors_arithmetic/char/09.cc:
4896 * testsuite/27_io/basic_istream/extractors_arithmetic/char/10.cc:
4898 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/01.cc:
4900 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/09.cc:
4902 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/10.cc:
4904 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise.
4906 2023-06-07 Jonathan Wakely <jwakely@redhat.com>
4909 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
4911 * configure.ac: Use AS_IF.
4912 * configure: Regenerate.
4914 2023-06-07 Thomas Schwinge <thomas@codesourcery.com>
4916 * testsuite/lib/prune.exp (libstdc++-dg-prune): Support
4917 'UNSUPPORTED: [...]: exception handling disabled'.
4919 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
4921 * testsuite/util/testsuite_abi.cc (check_version): Add
4922 CXXABI_1.3.15 symver and make it the latestp. Remove
4923 GLIBCXX_IEEE128_3.4.31 and GLIBCXX_LDBL_3.4.31 from latestp.
4925 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
4926 Jakub Jelinek <jakub@redhat.com>
4929 * include/std/limits: (numeric_limits<__float128>): Define
4930 for __STRICT_ANSI__ as well.
4931 * testsuite/18_support/numeric_limits/128bit.cc: Remove
4932 check for __STRICT_ANSI__.
4934 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
4936 * configure.ac: Use AS_IF.
4937 * configure: Regenerate.
4939 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
4942 * include/experimental/bits/simd_builtin.h (_S_store): Rewrite
4943 to avoid casts to other vector types. Implement store as
4944 succession of power-of-2 sized memcpy to avoid PR90424.
4946 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
4949 * include/experimental/bits/simd_builtin.h (_S_masked_store):
4950 Call into deduced ABI's SimdImpl after conversion.
4951 * include/experimental/bits/simd_x86.h (_S_masked_store_nocvt):
4952 Don't use _mm_maskmoveu_si128. Use the generic fall-back
4953 implementation. Also fix masked stores without SSE2, which
4954 were not doing anything before.
4956 2023-06-06 Matthias Kretz <m.kretz@gsi.de>
4958 * include/experimental/bits/simd.h (__bit_cast): Use
4959 __gnu__::__vector_size__ instead of gnu::vector_size.
4961 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
4964 * include/std/array (__array_traits<T, 0>::operator T*()): Make
4965 conversion operator explicit.
4966 (array::front): Use size_type as subscript operand.
4967 (array::data): Use static_cast to make conversion explicit.
4968 * testsuite/23_containers/array/element_access/110139.cc: New
4971 2023-06-06 Joseph Faulls <Joseph.Faulls@imgtec.com>
4973 * include/bits/locale_classes.tcc: Remove check for
4974 codecvt<char8_t, char, mbstate_t> facet.
4976 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
4978 * src/filesystem/ops-common.h (do_copy_file) [O_CLOEXEC]: Set
4979 close-on-exec flag on file descriptors.
4981 2023-06-06 Jonathan Wakely <jwakely@redhat.com>
4984 * src/filesystem/ops-common.h (do_copy_file): Check for empty
4985 files by trying to read a character.
4986 * testsuite/27_io/filesystem/operations/copy_file_108178.cc:
4989 2023-06-06 Jannik Glückert <jannik.glueckert@gmail.com>
4991 * acinclude.m4 (_GLIBCXX_USE_COPY_FILE_RANGE): Define.
4992 * config.h.in: Regenerate.
4993 * configure: Regenerate.
4994 * src/filesystem/ops-common.h (copy_file_copy_file_range):
4995 Define new function.
4996 (do_copy_file): Use it.
4998 2023-06-06 Jannik Glückert <jannik.glueckert@gmail.com>
5000 * acinclude.m4 (_GLIBCXX_HAVE_LSEEK): Define.
5001 * config.h.in: Regenerate.
5002 * configure: Regenerate.
5003 * src/filesystem/ops-common.h (copy_file_sendfile): Define new
5004 function for sendfile logic. Loop to support large files. Skip
5006 (do_copy_file): Use it.
5008 2023-06-04 Jason Merrill <jason@redhat.com>
5011 * libsupc++/eh_call.cc (__cxa_call_terminate): Take void*.
5012 * config/abi/pre/gnu.ver: Add it.
5014 2023-06-02 François Dumont <fdumont@gcc.gnu.org>
5016 * include/parallel/algobase.h: Include <parallel/search.h>.
5018 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
5020 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
5021 Add const to equality operator.
5023 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
5025 * include/std/expected (expected::and_then, expected::or_else)
5026 (expected::transform_error): Use _M_val and _M_unex instead of
5027 calling value() and error(), as per LWG 3938.
5028 (expected::transform): Likewise. Remove incorrect std::move
5029 calls from lvalue overloads.
5030 (expected<void, E>::and_then, expected<void, E>::or_else)
5031 (expected<void, E>::transform): Use _M_unex instead of calling
5033 * testsuite/20_util/expected/lwg3877.cc: Add checks for and_then
5034 and transform, and for std::expected<void, E>.
5035 * testsuite/20_util/expected/lwg3938.cc: New test.
5037 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
5040 * include/bits/stl_vector.h (_Vector_base::_M_invariant):
5042 (vector::size, vector::capacity): Remove calls to _M_invariant.
5043 * include/bits/vector.tcc (vector::_M_fill_assign): Add
5044 optimization hint to reallocating path.
5045 (vector::_M_assign_aux(FwdIter, FwdIter, forward_iterator_tag)):
5047 * testsuite/23_containers/vector/capacity/invariant.cc: Moved
5049 * testsuite/23_containers/vector/modifiers/assign/no_realloc.cc:
5050 ...here. Check assign(FwdIter, FwdIter) too.
5051 * testsuite/23_containers/vector/types/1.cc: Revert addition
5052 of -Wno-stringop-overread option.
5054 2023-06-01 Jonathan Wakely <jwakely@redhat.com>
5056 * doc/xml/manual/evolution.xml: Document removal of implicit
5057 allocator rebinding extensions in strict mode and for C++20.
5058 * doc/html/*: Regenerate.
5060 2023-06-01 Jason Merrill <jason@redhat.com>
5062 * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Don't check
5063 handlers in the cleanup phase.
5065 2023-06-01 Matthias Kretz <m.kretz@gsi.de>
5068 * include/experimental/bits/simd.h (__vectorized_sizeof): With
5069 __have_neon_a32 only single-precision float works (in addition
5072 2023-06-01 François Dumont <fdumont@gcc.gnu.org>
5074 * include/bits/stl_algo.h
5075 (std::__search, std::search(_FwdIt1, _FwdIt1, _FwdIt2, _FwdIt2, _BinPred)): Move...
5076 * include/bits/stl_algobase.h: ...here.
5077 * include/std/functional: Replace <stl_algo.h> include by <stl_algobase.h>.
5078 * include/parallel/algo.h (std::__parallel::search<_FIt1, _FIt2, _BinaryPred>)
5079 (std::__parallel::__search_switch<_FIt1, _FIt2, _BinaryPred, _ItTag1, _ItTag2>):
5081 * include/parallel/algobase.h: ...here.
5082 * include/experimental/functional: Remove <bits/stl_algo.h> and <parallel/algorithm>
5083 includes. Include <bits/stl_algobase.h>.
5085 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5088 * acinclude.m4 (GLIBCXX_ENABLE_C99): Add separate check for
5089 float_t and double_t and define HAVE_C99_FLT_EVAL_TYPES.
5090 * config.h.in: Regenerate.
5091 * configure: Regenerate.
5092 * include/c_global/cmath (float_t, double_t): Guard using new
5093 _GLIBCXX_HAVE_C99_FLT_EVAL_TYPES macro.
5095 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5097 * acinclude.m4 (GLIBCXX_ENABLE_C99): Add checks for C99 math
5098 functions and define _GLIBCXX_USE_C99_MATH_FUNCS. Move checks
5099 for C99 rounding functions to here.
5100 (GLIBCXX_CHECK_C99_TR1): Remove checks for C99 rounding
5101 functions from here.
5102 * config.h.in: Regenerate.
5103 * configure: Regenerate.
5104 * include/bits/random.h: Use _GLIBCXX_USE_C99_MATH_FUNCS instead
5105 of _GLIBCXX_USE_C99_MATH_TR1.
5106 * include/bits/random.tcc: Likewise.
5107 * include/c_compatibility/math.h: Likewise.
5108 * include/c_global/cmath: Likewise.
5109 * include/ext/random: Likewise.
5110 * include/ext/random.tcc: Likewise.
5111 * include/std/complex: Likewise.
5112 * testsuite/20_util/from_chars/4.cc: Likewise.
5113 * testsuite/20_util/from_chars/8.cc: Likewise.
5114 * testsuite/26_numerics/complex/proj.cc: Likewise.
5115 * testsuite/26_numerics/headers/cmath/60401.cc: Likewise.
5116 * testsuite/26_numerics/headers/cmath/types_std_c++0x.cc:
5118 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
5120 * testsuite/util/testsuite_random.h: Likewise.
5122 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5124 * include/bits/stl_vector.h (_Vector_base::_M_invariant()): New
5126 (vector::size(), vector::capacity()): Call _M_invariant().
5127 * testsuite/23_containers/vector/capacity/invariant.cc: New test.
5128 * testsuite/23_containers/vector/types/1.cc: Add suppression for
5129 false positive warning (PR110060).
5131 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5134 * src/c++17/floating_from_chars.cc: Check __FLT128_MANT_DIG__ is
5135 defined before trying to use _Float128.
5137 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5139 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Fix for 32-bit pointers
5140 to check __INT_PTR_WIDTH__ instead of sizeof(void*).
5141 * configure: Regenerate.
5143 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5145 * include/bits/unique_lock.h: Include <bits/error_constants.h>
5146 here for std::errc constants.
5147 * include/std/mutex: Do not include <bits/error_constants.h> and
5150 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5152 * configure.ac: Replace use of -o operator for test.
5153 * configure: Regenerate.
5155 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5157 * include/std/scoped_allocator (scoped_allocator_adaptor): Add
5158 noexcept to all constructors except the default constructor.
5159 (scoped_allocator_adaptor::inner_allocator): Add noexcept.
5160 (scoped_allocator_adaptor::outer_allocator): Likewise.
5161 * testsuite/20_util/scoped_allocator/noexcept.cc: New test.
5163 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5166 * include/std/limits (numeric_limits<__float128>): Define.
5167 * testsuite/18_support/numeric_limits/128bit.cc: New test.
5169 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5171 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Extend logic for avr and
5172 msp430 to all 16-bit targets.
5173 * configure: Regenerate.
5175 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5178 * src/c++17/floating_from_chars.cc (USE_STRTOF128_FOR_FROM_CHARS):
5179 Only define when USE_STRTOD_FOR_FROM_CHARS is also defined.
5180 (USE_STRTOD_FOR_FROM_CHARS): Do not undefine when long double is
5182 (from_chars(const char*, const char*, double&, chars_format)):
5183 Check __LDBL_MANT_DIG__ == __DBL_MANT_DIG__ here.
5184 (from_chars(const char*, const char*, _Float128&, chars_format))
5185 Only use from_chars_strtod when USE_STRTOD_FOR_FROM_CHARS is
5186 defined, otherwise parse a long double and convert to _Float128.
5188 2023-05-31 Jonathan Wakely <jwakely@redhat.com>
5191 * include/std/iomanip (operator>>(basic_istream&, _Setfill)):
5192 Add deprecated attribute to non-standard overload.
5193 * doc/xml/manual/evolution.xml: Document deprecation.
5194 * doc/html/*: Regenerate.
5195 * testsuite/27_io/manipulators/standard/char/1.cc: Add
5196 dg-warning for expected deprecated warning.
5197 * testsuite/27_io/manipulators/standard/char/2.cc: Likewise.
5198 * testsuite/27_io/manipulators/standard/wchar_t/1.cc: Likewise.
5199 * testsuite/27_io/manipulators/standard/wchar_t/2.cc: Likewise.
5201 2023-05-30 Alexandre Oliva <oliva@adacore.com>
5203 * testsuite/20_util/from_chars/4.cc: Skip long double test06
5205 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
5208 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
5211 * include/experimental/bits/simd.h (to_native): Use int NTTP
5212 as specified in PTS2.
5213 (to_compatible): Likewise. Add missing tag to call mask
5215 * testsuite/experimental/simd/pr109822_cast_functions.cc: New
5218 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
5220 * testsuite/experimental/simd/tests/integer_operators.cc:
5221 Compute expected value differently to avoid getting turned into
5224 2023-05-30 Matthias Kretz <m.kretz@gsi.de>
5226 * testsuite/experimental/simd/tests/operator_cvt.cc: Make long
5227 double <-> (u)long conversion tests conditional on sizeof(long
5228 double) and sizeof(long).
5230 2023-05-26 Matthias Kretz <m.kretz@gsi.de>
5232 * include/experimental/bits/simd_ppc.h (_S_bit_shift_left):
5233 Negative __y is UB, so prefer signed compare.
5235 2023-05-25 Jonathan Wakely <jwakely@redhat.com>
5237 * testsuite/util/testsuite_allocator.h (PointerBase): Add
5238 relational operators.
5240 2023-05-25 Alexandre Oliva <oliva@adacore.com>
5242 * testsuite/20_util/to_chars/long_double.cc: Expect execution
5243 fail on x86-vxworks.
5245 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
5248 * include/experimental/bits/simd.h (__intrinsic_type): If
5249 __ALTIVEC__ is defined, map gnu::vector_size types to their
5250 corresponding __vector T types without losing unsignedness of
5251 integer types. Also prefer long long over long.
5252 * include/experimental/bits/simd_ppc.h (_S_popcount): Cast mask
5253 object to the expected unsigned vector type.
5255 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
5258 * include/experimental/bits/simd.h (__intrinsic_type):
5259 Specialize __intrinsic_type<double, 8> and
5260 __intrinsic_type<double, 16> in any case, but provide the member
5261 type only with __aarch64__.
5263 2023-05-24 Matthias Kretz <m.kretz@gsi.de>
5266 * include/experimental/bits/simd_neon.h (_S_reduce): Add
5267 constexpr and make NEON implementation conditional on
5268 not __builtin_is_constant_evaluated.
5270 2023-05-23 Matthias Kretz <m.kretz@gsi.de>
5273 * include/experimental/bits/simd.h (_SimdWrapper::_M_set):
5274 Avoid vector builtin subscripting in constant expressions.
5275 (resizing_simd_cast): Avoid memcpy if constant_evaluated.
5276 (const_where_expression, where_expression, where)
5277 (__extract_part, simd_mask, _SimdIntOperators, simd): Add either
5278 _GLIBCXX_SIMD_CONSTEXPR (on public APIs), or constexpr (on
5280 * include/experimental/bits/simd_builtin.h (__vector_permute)
5281 (__vector_shuffle, __extract_part, _GnuTraits::_SimdCastType1)
5282 (_GnuTraits::_SimdCastType2, _SimdImplBuiltin)
5283 (_MaskImplBuiltin::_S_store): Add constexpr.
5284 (_CommonImplBuiltin::_S_store_bool_array)
5285 (_SimdImplBuiltin::_S_load, _SimdImplBuiltin::_S_store)
5286 (_SimdImplBuiltin::_S_reduce, _MaskImplBuiltin::_S_load): Add
5287 constant_evaluated case.
5288 * include/experimental/bits/simd_fixed_size.h
5289 (_S_masked_load): Reword comment.
5290 (__tuple_element_meta, __make_meta, _SimdTuple::_M_apply_r)
5291 (_SimdTuple::_M_subscript_read, _SimdTuple::_M_subscript_write)
5292 (__make_simd_tuple, __optimize_simd_tuple, __extract_part)
5293 (__autocvt_to_simd, _Fixed::__traits::_SimdBase)
5294 (_Fixed::__traits::_SimdCastType, _SimdImplFixedSize): Add
5296 (_SimdTuple::operator[], _M_set): Add constexpr and add
5297 constant_evaluated case.
5298 (_MaskImplFixedSize::_S_load): Add constant_evaluated case.
5299 * include/experimental/bits/simd_scalar.h: Add constexpr.
5300 * include/experimental/bits/simd_x86.h (_CommonImplX86): Add
5301 constexpr and add constant_evaluated case.
5302 (_SimdImplX86::_S_equal_to, _S_not_equal_to, _S_less)
5303 (_S_less_equal): Value-initialize to satisfy constexpr
5305 (_MaskImplX86::_S_load): Add constant_evaluated case.
5306 (_MaskImplX86::_S_store): Add constexpr and constant_evaluated
5307 case. Value-initialize local variables.
5308 (_MaskImplX86::_S_logical_and, _S_logical_or, _S_bit_not)
5309 (_S_bit_and, _S_bit_or, _S_bit_xor): Add constant_evaluated
5311 * testsuite/experimental/simd/pr109261_constexpr_simd.cc: New
5314 2023-05-22 Matthias Kretz <m.kretz@gsi.de>
5316 * include/experimental/bits/simd_builtin.h (_S_fpclassify): Move
5317 __infn into #ifdef'ed block.
5318 * testsuite/experimental/simd/tests/fpclassify.cc: Declare
5319 constants only when used.
5320 * testsuite/experimental/simd/tests/frexp.cc: Likewise.
5321 * testsuite/experimental/simd/tests/logarithm.cc: Likewise.
5322 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc:
5324 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
5325 Move totest and expect1 into #ifdef'ed block.
5327 2023-05-19 Gerald Pfeifer <gerald@pfeifer.com>
5329 * doc/xml/manual/strings.xml: Move lafstern.org reference to https.
5330 * doc/html/manual/strings.html: Regenerate.
5332 2023-05-17 Jakub Jelinek <jakub@redhat.com>
5335 * testsuite/26_numerics/headers/cmath/constexpr_std_c++23.cc: New test.
5337 2023-05-17 Jakub Jelinek <jakub@redhat.com>
5340 * include/c_global/cmath (atan2, fmod, pow): Move
5341 __gnu_cxx::__promote_2 using templates after _Float{16,32,64,128} and
5342 __gnu_cxx::__bfloat16_t overloads.
5343 (copysign, fdim, fmax, fmin, hypot, nextafter, remainder, remquo):
5345 (fma): Move __gnu_cxx::__promote_3 using template after
5346 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads.
5348 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
5350 * testsuite/18_support/headers/limits/synopsis.cc: Uncomment
5351 checks for float_round_style and float_denorm_style.
5353 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
5355 * include/bits/c++config: Add system_header pragma.
5357 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
5359 * include/std/expected (expected::and_then, expected::or_else)
5360 (expected::transform, expected::transform_error): Fix exception
5361 specifications as per LWG 3877.
5362 (expected<void, E>::and_then, expected<void, E>::transform):
5364 * testsuite/20_util/expected/lwg3877.cc: New test.
5366 2023-05-17 Ken Matsui <kmatsui@cs.washington.edu>
5368 * include/std/type_traits: Use __bool_constant instead of
5371 2023-05-17 Jonathan Wakely <jwakely@redhat.com>
5373 * configure: Regenerate.
5375 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5378 * acinclude.m4 (GLIBCXX_CHECK_ALIGNAS_CACHELINE): Define.
5379 * config.h.in: Regenerate.
5380 * configure: Regenerate.
5381 * configure.ac: Use GLIBCXX_CHECK_ALIGNAS_CACHELINE.
5382 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex): Do not
5383 align lock table if not supported. use __GCC_DESTRUCTIVE_SIZE
5384 instead of hardcoded 64.
5386 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5388 * acinclude.m4 (GLIBCXX_USE_C99): Check for isblank in C++11
5389 mode and define _GLIBCXX_USE_C99_CTYPE. Check for <fenv.h>
5390 functions in C++11 mode and define _GLIBCXX_USE_C99_FENV.
5391 * config.h.in: Regenerate.
5392 * configure: Regenerate.
5393 * include/c_compatibility/fenv.h: Check _GLIBCXX_USE_C99_FENV
5394 instead of _GLIBCXX_USE_C99_FENV_TR1.
5395 * include/c_global/cfenv: Likewise.
5396 * include/c_global/cctype: Check _GLIBCXX_USE_C99_CTYPE instead
5397 of _GLIBCXX_USE_C99_CTYPE_TR1.
5399 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5401 * acinclude.m4 (GLIBCXX_USE_C99): Check for <stdint.h> types in
5402 C++11 mode and define _GLIBCXX_USE_C99_STDINT. Check for
5403 <inttypes.h> features in C++11 mode and define
5404 _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T.
5405 * config.h.in: Regenerate.
5406 * configure: Regenerate.
5407 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
5408 * include/bits/chrono.h: Check _GLIBCXX_USE_C99_STDINT instead
5409 of _GLIBCXX_USE_C99_STDINT_TR1.
5410 * include/c_compatibility/inttypes.h: Check
5411 _GLIBCXX_USE_C99_INTTYPES and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T
5412 instead of _GLIBCXX_USE_C99_INTTYPES_TR1 and
5413 _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
5414 * include/c_compatibility/stdatomic.h: Check
5415 _GLIBCXX_USE_C99_STDINT instead of _GLIBCXX_USE_C99_STDINT_TR1.
5416 * include/c_compatibility/stdint.h: Likewise.
5417 * include/c_global/cinttypes: Check _GLIBCXX_USE_C99_INTTYPES
5418 and _GLIBCXX_USE_C99_INTTYPES_WCHAR_T instead of
5419 _GLIBCXX_USE_C99_INTTYPES_TR1 and
5420 _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1.
5421 * include/c_global/cstdint: Check _GLIBCXX_USE_C99_STDINT
5422 instead of _GLIBCXX_USE_C99_STDINT_TR1.
5423 * include/std/atomic: Likewise.
5424 * src/c++11/cow-stdexcept.cc: Likewise.
5425 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
5427 * testsuite/lib/libstdc++.exp (check_v3_target_cstdint):
5430 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5432 * acinclude.m4 (GLIBCXX_USE_C99): Check for complex inverse trig
5433 functions in C++11 mode and define _GLIBCXX_USE_C99_COMPLEX_ARC.
5434 * config.h.in: Regenerate.
5435 * configure: Regenerate.
5436 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macro.
5437 * include/std/complex: Check _GLIBCXX_USE_C99_COMPLEX_ARC
5438 instead of _GLIBCXX_USE_C99_COMPLEX_TR1.
5440 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5442 * testsuite/ext/debug_allocator/check_deallocate_null.cc: Add
5443 assertion to ensure expected exception is throw.
5445 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5447 * testsuite/libstdc++-prettyprinters/chrono.cc: Only test
5448 printer for chrono::zoned_time for cx11 ABI and tzdb effective
5451 2023-05-16 Jonathan Wakely <jwakely@redhat.com>
5453 * acinclude.m4 (GLIBCXX_CHECK_PTHREAD_MUTEX_CLOCKLOCK): Define
5454 _GLIBCXX_USE_PTHREAD_MUTEX_CLOCKLOCK in terms of _GLIBCXX_TSAN.
5455 * configure: Regenerate.
5457 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5459 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Use a non-null pointer
5460 to check for nan, nanf, and nanl.
5461 * configure: Regenerate.
5463 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5465 * include/bits/char_traits.h (char_traits<char16_t>): Do not
5466 depend on _GLIBCXX_USE_C99_STDINT_TR1.
5467 (char_traits<char32_t>): Likewise.
5468 * include/experimental/source_location: Likewise.
5470 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5472 * include/std/atomic (atomic_int_least8_t, atomic_uint_least8_t)
5473 (atomic_int_least16_t, atomic_uint_least16_t)
5474 (atomic_int_least32_t, atomic_uint_least32_t)
5475 (atomic_int_least64_t, atomic_uint_least64_t)
5476 (atomic_int_fast16_t, atomic_uint_fast16_t)
5477 (atomic_int_fast32_t, atomic_uint_fast32_t)
5478 (atomic_int_fast64_t, atomic_uint_fast64_t)
5479 (atomic_intmax_t, atomic_uintmax_t): Define unconditionally.
5480 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Adjust.
5482 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5484 * include/bits/algorithmfwd.h (shuffle): Do not depend on
5485 _GLIBCXX_USE_C99_STDINT_TR1.
5486 * include/bits/ranges_algo.h (shuffle): Likewise.
5487 * include/bits/stl_algo.h (shuffle): Likewise.
5488 * include/ext/random: Likewise.
5489 * include/ext/throw_allocator.h (random_condition): Likewise.
5490 * include/std/random: Likewise.
5491 * src/c++11/cow-string-inst.cc: Likewise.
5492 * src/c++11/random.cc: Likewise.
5494 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5496 * testsuite/experimental/feat-cxx14.cc: Remove dependency on
5497 _GLIBCXX_USE_C99_STDINT_TR1.
5499 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5501 * testsuite/22_locale/locale/cons/unicode.cc: Remove dependency
5502 on _GLIBCXX_USE_C99_STDINT_TR1.
5504 2023-05-12 Jonathan Wakely <jwakely@redhat.com>
5506 * testsuite/21_strings/basic_string_view/typedefs.cc: Remove
5507 dependency on _GLIBCXX_USE_C99_STDINT_TR1.
5508 * testsuite/experimental/string_view/typedefs.cc: Likewise.
5510 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
5512 * src/c++17/floating_from_chars.cc [USE_STRTOD_FOR_FROM_CHARS]
5513 (auto_locale, auto_ferounding): New class types.
5514 (from_chars_impl): Use auto_locale and auto_ferounding.
5516 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
5519 * include/std/chrono (hh_mm_ss::__fits): Remove variable
5521 (hh_mm_ss::__subseconds): Remove __fits from constraints.
5522 * testsuite/std/time/hh_mm_ss/109772.cc: New test.
5523 * testsuite/std/time/hh_mm_ss/1.cc: Adjust expected size for
5524 hh_mm_ss<duration<int, std::pico>>.
5526 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
5528 * config/abi/pre/gnu.ver: Export basic_string::_S_allocate.
5529 * include/bits/basic_ios.h: Add static assertion checking
5530 traits_type::value_type.
5531 * include/bits/basic_string.h: Likewise. Do not rebind
5532 allocator, and add static assertion checking its value_type.
5533 (basic_string::_Alloc_traits_impl): Remove class template.
5534 (basic_string::_S_allocate): New static member function.
5535 (basic_string::assign): Use _S_allocate.
5536 * include/bits/basic_string.tcc (basic_string::_M_create)
5537 (basic_string::reserve, basic_string::_M_replace): Likewise.
5538 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/debug.cc:
5539 Disable for C++20 and later.
5540 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
5543 2023-05-11 Jonathan Wakely <jwakely@redhat.com>
5546 * include/bits/std_abs.h (abs(__float128)): Handle negative NaN
5547 and negative zero correctly.
5548 * testsuite/26_numerics/headers/cmath/109758.cc: New test.
5550 2023-05-10 François Dumont <fdumont@gcc.gnu.org>
5552 * include/bits/hashtable_policy.h
5553 (_NodeBuilder<>::_S_build): Use __node_ptr.
5554 (_ReuseOrAllocNode<>): Use __node_ptr in place of __node_type*.
5555 (_AllocNode<>): Likewise.
5556 (_Equality<>::_M_equal): Remove const_iterator usages. Only preserved
5557 to call std::is_permutation in the non-unique key implementation.
5558 * include/bits/hashtable.h (_Hashtable<>::_M_update_begin()): Capture
5560 (_Hashtable<>::_M_bucket_begin(size_type)): Implement implicitly inline.
5561 (_Hashtable<>::_M_insert_bucket_begin): Likewise.
5562 (_Hashtable<>::_M_remove_bucket_begin): Likewise.
5563 (_Hashtable<>::_M_compute_hash_code): Use __node_ptr rather than
5565 (_Hashtable<>::find): Likewise.
5566 (_Hashtable<>::_M_emplace): Likewise.
5567 (_Hashtable<>::_M_insert_unique): Likewise.
5569 2023-05-09 Jonathan Wakely <jwakely@redhat.com>
5571 * python/libstdcxx/v6/printers.py (StdChronoDurationPrinter):
5572 Print floating-point durations correctly.
5573 (StdChronoTimePointPrinter): Support printing only the value,
5574 not the type name. Uncomment handling for known clocks.
5575 (StdChronoZonedTimePrinter): Remove type names from output.
5576 (StdChronoCalendarPrinter): Fix hh_mm_ss member access.
5577 (StdChronoTimeZonePrinter): Add equals sign to output.
5578 * testsuite/libstdc++-prettyprinters/chrono.cc: New test.
5580 2023-05-05 Alexandre Oliva <oliva@adacore.com>
5582 * testsuite/20_util/from_chars/4.cc: Skip long double test06
5584 * testsuite/20_util/to_chars/long_double.cc: Xfail run on
5587 2023-05-04 Jonathan Wakely <jwakely@redhat.com>
5589 * doc/xml/manual/abi.xml (abi.versioning.history): Document
5590 libstdc++.so.6.0.32 and GLIBCXX_3.4.32 version.
5591 * doc/html/manual/abi.html: Regenerate.
5593 2023-05-04 Florian Weimer <fweimer@redhat.com>
5595 * doc/xml/manual/abi.xml (abi.versioning.history): Add
5596 GCC_7.0.0, GCC_9.0.0, GCC_11.0, GCC_12.0.0, GCC_13.0.0 for
5599 2023-05-03 Jakub Jelinek <jakub@redhat.com>
5601 * src/c++17/floating_from_chars.cc
5602 (_ZSt10from_charsPKcS0_RDF128_St12chars_format): New alias to
5603 _ZSt10from_charsPKcS0_Ru9__ieee128St12chars_format.
5604 * src/c++17/floating_to_chars.cc (_ZSt8to_charsPcS_DF128_): New alias to
5605 _ZSt8to_charsPcS_u9__ieee128.
5606 (_ZSt8to_charsPcS_DF128_St12chars_format): New alias to
5607 _ZSt8to_charsPcS_u9__ieee128St12chars_format.
5608 (_ZSt8to_charsPcS_DF128_St12chars_formati): New alias to
5609 _ZSt8to_charsPcS_u9__ieee128St12chars_formati.
5610 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Updated.
5612 2023-05-03 Jakub Jelinek <jakub@redhat.com>
5614 * configure.host (abi_baseline_pair): Use powerpc64le-linux-gnu
5615 rather than powerpc64-linux-gnu for powerpc64le*-linux*.
5616 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Remove
5617 _ZTI*DF128_, _ZTI*DF64x symbols and symbols in
5618 GLIBCXX_IEEE128_3.4.{29,30,31} and CXXABI_IEEE128_1.3.13 symbol
5620 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: New
5623 2023-05-03 Kefu Chai <kefu.chai@scylladb.com>
5624 Jonathan Wakely <jwakely@redhat.com>
5627 * include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)):
5628 Initialize _M_string_length.
5630 2023-05-02 Jakub Jelinek <jakub@redhat.com>
5632 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
5633 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
5634 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
5635 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
5636 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
5637 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
5638 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
5639 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
5641 2023-05-02 Jakub Jelinek <jakub@redhat.com>
5644 * src/c++98/ios_init.cc: Add #pragma GCC diagnostic ignored for
5647 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
5649 * include/bits/random.h (gamma_distribution): Add to the right
5651 (discrete_distribution, piecewise_constant_distribution)
5652 (piecewise_linear_distribution): Create a new doxygen group and
5653 fix the incomplete doxygen comments.
5654 * include/bits/uniform_int_dist.h (uniform_int_distribution):
5655 Add to doxygen group.
5657 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
5659 * include/bits/uses_allocator.h: Add missing @file comment.
5660 * include/bits/regex.tcc: Remove stray doxygen comments.
5661 * include/experimental/memory_resource: Likewise.
5662 * include/std/bit: Tweak doxygen @cond comments.
5663 * include/std/expected: Likewise.
5664 * include/std/numbers: Likewise.
5666 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
5668 * doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes
5671 2023-04-28 Jonathan Wakely <jwakely@redhat.com>
5673 * include/bits/move.h: Simplify opening/closing namespace std.
5675 2023-04-28 Jakub Jelinek <jakub@redhat.com>
5678 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Export
5679 _ZSt21ios_base_library_initv.
5680 * testsuite/util/testsuite_abi.cc (check_version): Add GLIBCXX_3.4.32
5681 symver and make it the latestp.
5682 * src/c++98/ios_init.cc (ios_base_library_init): New alias.
5683 * acinclude.m4 (libtool_VERSION): Change to 6:32:0.
5684 * include/std/iostream: If init_priority attribute is supported
5685 and _GLIBCXX_SYMVER_GNU, force undefined _ZSt21ios_base_library_initv
5686 symbol into the object.
5687 * configure: Regenerated.
5689 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
5691 * include/bits/mofunc_impl.h: Fix typo in doxygen comment.
5692 * include/std/format: Likewise.
5694 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
5696 * doc/doxygen/user.cfg.in (FORMULA_TRANSPARENT, DOT_FONTNAME)
5697 (DOT_FONTSIZE, DOT_TRANSPARENT): Remove obsolete options.
5699 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
5701 * doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for
5703 * include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit
5705 * include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR):
5707 * include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR):
5709 * include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR):
5711 * include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR)
5712 (_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT)
5713 (_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT)
5714 (_DEFINE_BINARY_OPERATOR): Likewise.
5716 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
5718 * include/bits/memory_resource.h: Improve doxygen comments.
5719 * include/std/memory_resource: Likewise.
5721 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
5724 * include/bits/basic_string.h: Improve doxygen comments.
5725 * include/bits/cow_string.h: Likewise.
5726 * include/bits/forward_list.h: Likewise.
5727 * include/bits/fs_dir.h: Likewise.
5728 * include/bits/fs_path.h: Likewise.
5729 * include/bits/quoted_string.h: Likewise.
5730 * include/bits/stl_bvector.h: Likewise.
5731 * include/bits/stl_map.h: Likewise.
5732 * include/bits/stl_multimap.h: Likewise.
5733 * include/bits/stl_multiset.h: Likewise.
5734 * include/bits/stl_set.h: Likewise.
5735 * include/bits/stl_vector.h: Likewise.
5736 * include/bits/unordered_map.h: Likewise.
5737 * include/bits/unordered_set.h: Likewise.
5738 * include/std/filesystem: Likewise.
5739 * include/std/iomanip: Likewise.
5741 2023-04-27 Jonathan Wakely <jwakely@redhat.com>
5744 * src/c++11/random.cc (__throw_syserr): New function.
5745 (random_device::_M_init, random_device::_M_init_pretr1): Use new
5746 function for bad tokens.
5747 (random_device::_M_getval): Use new function for read errors.
5748 * testsuite/util/testsuite_random.h (random_device_available):
5749 Change catch handler to use std::system_error.
5751 2023-04-24 Patrick Palka <ppalka@redhat.com>
5753 * include/bits/max_size_type.h (__max_diff_type::operator>>=):
5754 Fix propagation of sign bit.
5755 * testsuite/std/ranges/iota/max_size_type.cc: Avoid using the
5756 non-standard 'signed typedef-name'. Add some compile-time tests
5757 for right-shifting a negative __max_diff_type value by more than
5760 2023-04-19 Patrick Palka <ppalka@redhat.com>
5761 Jonathan Wakely <jwakely@redhat.com>
5764 * include/bits/utility.h (_Nth_type): Conditionally define in
5765 terms of __type_pack_element if available.
5766 * testsuite/20_util/tuple/element_access/get_neg.cc: Prune
5767 additional errors from the new built-in.
5769 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
5772 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
5775 * src/Makefile.am: Move globals_io.cc to here.
5776 * src/Makefile.in: Regenerate.
5777 * src/c++98/Makefile.am: Remove globals_io.cc from here.
5778 * src/c++98/Makefile.in: Regenerate.
5779 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
5780 symbol name and then export with GLIBCXX_3.4.31 symver.
5781 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
5782 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
5784 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
5786 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
5788 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
5790 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
5792 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
5794 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
5796 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
5798 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
5800 2023-04-19 Jonathan Wakely <jwakely@redhat.com>
5803 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
5806 * config/abi/pre/gnu.ver: Fix preprocessor condition.
5808 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
5810 * doc/xml/manual/extensions.xml: Fix example to declare and
5811 qualify std::free, and use NULL instead of 0.
5812 * doc/html/manual/ext_demangling.html: Regenerate.
5813 * libsupc++/cxxabi.h: Adjust doxygen comments.
5815 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
5818 * config/abi/pre/gnu.ver: Fix preprocessor condition.
5820 2023-04-18 Jonathan Wakely <jwakely@redhat.com>
5823 * src/Makefile.am: Move globals_io.cc to here.
5824 * src/Makefile.in: Regenerate.
5825 * src/c++98/Makefile.am: Remove globals_io.cc from here.
5826 * src/c++98/Makefile.in: Regenerate.
5827 * src/c++98/globals_io.cc [_GLIBCXX_SYMVER_GNU] (cin): Adjust
5828 symbol name and then export with GLIBCXX_3.4.31 symver.
5829 (cout, cerr, clog, wcin, wcout, wcerr, wclog): Likewise.
5830 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt:
5832 * config/abi/post/i486-linux-gnu/baseline_symbols.txt:
5834 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt:
5836 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
5838 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt:
5840 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt:
5842 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt:
5844 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt:
5846 * config/abi/pre/gnu.ver: Add iostream objects to new symver.
5848 2023-04-18 Patrick Palka <ppalka@redhat.com>
5851 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Bump value
5853 * include/std/ranges (range_adaptor_closure): Define for C++23.
5854 * include/std/version (__cpp_lib_ranges): Bump value for
5856 * testsuite/std/ranges/version_c++23.cc: Bump expected value
5857 of __cpp_lib_ranges.
5858 * testsuite/std/ranges/range_adaptor_closure.cc: New test.
5860 2023-04-18 Patrick Palka <ppalka@redhat.com>
5862 * include/bits/ranges_algo.h (__cpp_lib_ranges_contains):
5864 (__cpp_lib_ranges_iota): Likewise.
5865 (__cpp_lib_ranges_find_last): Likewise.
5866 (__cpp_lib_fold): Rename to ...
5867 (__cpp_lib_ranges_fold): ... this.
5868 * include/std/version: As above.
5869 * testsuite/25_algorithms/fold_left/1.cc: Adjust after
5870 renaming __cpp_lib_fold.
5871 * testsuite/std/ranges/version_c++23.cc: Verify values
5872 of the above feature-test macros.
5874 2023-04-18 Patrick Palka <ppalka@redhat.com>
5877 * include/std/ranges (views::_AsConst::operator()): Add
5878 missing const to constant_range test.
5879 * testsuite/std/ranges/adaptors/as_const/1.cc (test02):
5880 Improve formatting. Adjust expected type of v2.
5883 2023-04-14 Patrick Palka <ppalka@redhat.com>
5885 * include/bits/ranges_base.h (const_iterator_t): Define for C++23.
5886 (const_sentinel_t): Likewise.
5887 (range_const_reference_t): Likewise.
5888 (constant_range): Likewise.
5889 (__cust_access::__possibly_const_range): Likewise, replacing ...
5890 (__cust_access::__as_const): ... this.
5891 (__cust_access::_CBegin::operator()): Redefine for C++23 as per P2278R4.
5892 (__cust_access::_CEnd::operator()): Likewise.
5893 (__cust_access::_CRBegin::operator()): Likewise.
5894 (__cust_access::_CREnd::operator()): Likewise.
5895 (__cust_access::_CData::operator()): Likewise.
5896 * include/bits/ranges_util.h (ranges::__detail::__different_from):
5897 Make it an alias of std::__detail::__different_from.
5898 (view_interface::cbegin): Define for C++23.
5899 (view_interface::cend): Likewise.
5900 * include/bits/stl_iterator.h (__detail::__different_from): Define.
5901 (iter_const_reference_t): Define for C++23.
5902 (__detail::__constant_iterator): Likewise.
5903 (__detail::__is_const_iterator): Likewise.
5904 (__detail::__not_a_const_iterator): Likewise.
5905 (__detail::__iter_const_rvalue_reference_t): Likewise.
5906 (__detail::__basic_const_iter_cat):: Likewise.
5907 (const_iterator): Likewise.
5908 (__detail::__const_sentinel): Likewise.
5909 (const_sentinel): Likewise.
5910 (basic_const_iterator): Likewise.
5911 (common_type<basic_const_iterator<_Tp>, _Up>): Likewise.
5912 (common_type<_Up, basic_const_iterator<_Tp>>): Likewise.
5913 (common_type<basic_const_iterator<_Tp>, basic_const_iterator<Up>>):
5915 (make_const_iterator): Define for C++23.
5916 (make_const_sentinel): Likewise.
5917 * include/std/ranges (__cpp_lib_ranges_as_const): Likewise.
5918 (as_const_view): Likewise.
5919 (enable_borrowed_range<as_const_view>): Likewise.
5920 (views::__detail::__is_ref_view): Likewise.
5921 (views::__detail::__can_is_const_view): Likewise.
5922 (views::_AsConst, views::as_const): Likewise.
5923 * include/std/span (span::const_iterator): Likewise.
5924 (span::const_reverse_iterator): Likewise.
5925 (span::cbegin): Likewise.
5926 (span::cend): Likewise.
5927 (span::crbegin): Likewise.
5928 (span::crend): Likewise.
5929 * include/std/version (__cpp_lib_ranges_as_const): Likewise.
5930 * testsuite/std/ranges/adaptors/join.cc (test06): Adjust to
5931 behave independently of C++20 vs C++23.
5932 * testsuite/std/ranges/version_c++23.cc: Verify value of
5933 __cpp_lib_ranges_as_const macro.
5934 * testsuite/24_iterators/const_iterator/1.cc: New test.
5935 * testsuite/std/ranges/adaptors/as_const/1.cc: New test.
5937 2023-04-14 Patrick Palka <ppalka@redhat.com>
5939 * include/bits/ranges_base.h (__cust_access::__as_const)
5940 (__cust_access::_CBegin, __cust::cbegin)
5941 (__cust_access::_CEnd, __cust::cend)
5942 (__cust_access::_CRBegin, __cust::crbegin)
5943 (__cust_access::_CREnd, __cust::crend)
5944 (__cust_access::_CData, __cust::cdata): Move down definitions to
5945 shortly after the definition of input_range.
5947 2023-04-14 Patrick Palka <ppalka@redhat.com>
5949 * include/bits/ranges_algo.h: Include <optional> for C++23.
5950 (__cpp_lib_fold): Define for C++23.
5951 (in_value_result): Likewise.
5952 (__detail::__flipped): Likewise.
5953 (__detail::__indirectly_binary_left_foldable_impl): Likewise.
5954 (__detail::__indirectly_binary_left_foldable): Likewise.
5955 (___detail:__indirectly_binary_right_foldable): Likewise.
5956 (fold_left_with_iter_result): Likewise.
5957 (__fold_left_with_iter_fn, fold_left_with_iter): Likewise.
5958 (__fold_left_fn, fold_left): Likewise.
5959 (__fold_left_first_with_iter_fn, fold_left_first_with_iter):
5961 (__fold_left_first_fn, fold_left_first): Likewise.
5962 (__fold_right_fn, fold_right): Likewise.
5963 (__fold_right_last_fn, fold_right_last): Likewise.
5964 * include/std/version (__cpp_lib_fold): Likewise.
5965 * testsuite/25_algorithms/fold_left/1.cc: New test.
5966 * testsuite/25_algorithms/fold_right/1.cc: New test.
5968 2023-04-14 Jonathan Wakely <jwakely@redhat.com>
5970 * include/std/format (formatter): Add comment to deleted default
5971 constructor of primary template.
5972 (_Checking_scanner): Add static_assert.
5974 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
5976 * doc/xml/manual/using.xml: Document libstdc++exp.a library.
5977 * doc/html/*: Regenerate.
5979 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
5981 * testsuite/17_intro/names.cc [_AIX]: Do not define policy.
5982 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Rename
5983 namespace to avoid clashing with libc struct.
5984 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
5986 * testsuite/23_containers/unordered_map/96088.cc: Skip on AIX.
5987 * testsuite/23_containers/unordered_multimap/96088.cc: Likewise.
5988 * testsuite/23_containers/unordered_multiset/96088.cc: Likewise.
5989 * testsuite/23_containers/unordered_set/96088.cc: Likewise.
5990 * testsuite/experimental/synchronized_value.cc: Require gthreads
5991 and add missing option for pthreads targets.
5993 2023-04-12 Patrick Palka <ppalka@redhat.com>
5995 * include/std/ranges (__cpp_lib_ranges_enumerate): Define
5997 (__detail::__range_with_movable_reference): Likewise.
5998 (enumerate_view): Likewise.
5999 (enumerate_view::_Iterator): Likewise.
6000 (enumerate_view::_Sentinel): Likewise.
6001 (views::__detail::__can_enumerate_view): Likewise.
6002 (views::_Enumerate, views::enumerate): Likewise.
6003 * include/std/version (__cpp_lib_ranges_enumerate): Likewise.
6004 * testsuite/std/ranges/version_c++23.cc: Verify value of
6005 __cpp_lib_ranges_enumerate.
6006 * testsuite/std/ranges/adaptors/enumerate/1.cc: New test.
6008 2023-04-12 Patrick Palka <ppalka@redhat.com>
6010 * include/std/ranges (lazy_split_view::_OuterIter::_OuterIter):
6011 Propagate _M_trailing_empty in the const-converting constructor
6013 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): Correct
6015 * testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test.
6017 2023-04-12 Patrick Palka <ppalka@redhat.com>
6019 * src/c++17/floating_from_chars.cc: Include <algorithm>,
6020 <iterator>, <limits> and <cstdint>.
6022 2023-04-12 Patrick Palka <ppalka@redhat.com>
6025 * include/std/ranges (chunk_by_view::_M_find_next): Generalize
6026 parameter types of the lambda wrapper passed to adjacent_find.
6027 (chunk_by_view::_M_find_prev): Likewise.
6028 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test04, test05):
6031 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
6034 * include/experimental/internet (basic_endpoint::basic_endpoint()):
6035 Ensure that the required union members are active. Only define
6036 as constexpr for C++20 and later.
6037 (basic_endpoint::basic_endpoint(const protocol_type&, port_type)):
6039 * testsuite/experimental/net/internet/endpoint/cons.cc: Only
6040 check constexpr default constructor for C++20 and later.
6041 * testsuite/experimental/net/internet/endpoint/extensible.cc:
6044 2023-04-12 Jonathan Wakely <jwakely@redhat.com>
6046 * src/c++20/tzdata.zi: Import new file from 2023c release.
6048 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
6050 * include/precompiled/stdc++.h (C++17): Don't double-include
6051 <charconv>, once with wrong conditions.
6052 * testsuite/18_support/96817.cc: Require hosted.
6053 * testsuite/18_support/bad_exception/59392.cc: Ditto.
6054 * testsuite/20_util/scoped_allocator/108952.cc: Ditto.
6055 * testsuite/20_util/uses_allocator/lwg3527.cc: Ditto.
6056 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
6059 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
6061 * include/bits/c++config: When __STDC_HOSTED__ is zero,
6062 disable _GLIBCXX_DEBUG and, if it was set, enable
6063 _GLIBCXX_ASSERTIONS.
6064 * testsuite/lib/libstdc++.exp (check_v3_target_debug_mode):
6065 Include <bits/c++config.h> when determining whether debug is
6066 set, in order to inherit the logic from above
6068 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
6070 * testsuite/17_intro/versionconflict.cc: New test.
6071 * include/std/version: Allow disabling the system_header pragma
6072 via _GLIBCXX_TESTING_SYSHDR.
6074 2023-04-05 Arsen Arsenović <arsen@aarsen.me>
6076 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
6077 Synchronize the definition block with...
6078 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory):
6079 ... this one here. Also define the 202202L value, rather than
6080 leaving it up to purely unique_ptr.h, so that the value is
6081 synchronized across all headers.
6082 (__gnu_debug::_Safe_iterator_base): Move into new conditional
6084 * include/std/memory (__cpp_lib_atomic_value_initialization):
6085 Define on freestanding under the same conditions as in
6087 * include/std/version (__cpp_lib_robust_nonmodifying_seq_ops):
6088 Also define on freestanding.
6089 (__cpp_lib_to_chars): Ditto.
6090 (__cpp_lib_gcd): Ditto.
6091 (__cpp_lib_gcd_lcm): Ditto.
6092 (__cpp_lib_raw_memory_algorithms): Ditto.
6093 (__cpp_lib_array_constexpr): Ditto.
6094 (__cpp_lib_nonmember_container_access): Ditto.
6095 (__cpp_lib_clamp): Ditto.
6096 (__cpp_lib_constexpr_char_traits): Ditto.
6097 (__cpp_lib_constexpr_string): Ditto.
6098 (__cpp_lib_sample): Ditto.
6099 (__cpp_lib_lcm): Ditto.
6100 (__cpp_lib_constexpr_iterator): Ditto.
6101 (__cpp_lib_constexpr_char_traits): Ditto.
6102 (__cpp_lib_interpolate): Ditto.
6103 (__cpp_lib_constexpr_utility): Ditto.
6104 (__cpp_lib_shift): Ditto.
6105 (__cpp_lib_ranges): Ditto.
6106 (__cpp_lib_move_iterator_concept): Ditto.
6107 (__cpp_lib_constexpr_numeric): Ditto.
6108 (__cpp_lib_constexpr_functional): Ditto.
6109 (__cpp_lib_constexpr_algorithms): Ditto.
6110 (__cpp_lib_constexpr_tuple): Ditto.
6111 (__cpp_lib_constexpr_memory): Ditto.
6113 2023-04-05 John David Anglin <danglin@gcc.gnu.org>
6115 * testsuite/22_locale/locale/cons/12658_thread-2.cc: Double
6116 timeout factor on hppa*-*-*.
6118 2023-04-05 Jonathan Wakely <jwakely@redhat.com>
6120 * include/bits/regex.h (sub_match::swap): New function.
6121 * testsuite/28_regex/sub_match/lwg3204.cc: New test.
6123 2023-04-04 Jonathan Wakely <jwakely@redhat.com>
6125 * doc/xml/manual/extensions.xml: Remove std::bad_exception from
6127 * doc/html/manual/ext_demangling.html: Regenerate.
6129 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
6131 PR tree-optimization/107087
6132 * include/bits/cow_string.h (basic_string::size()): Add
6133 optimizer hint that _S_empty_rep()._M_length is always zero.
6134 (basic_string::length()): Call size().
6136 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
6139 * include/std/stop_token (_Stop_state_ptr(const stop_source&)):
6140 Add attribute access with access-mode 'none'.
6141 * testsuite/30_threads/stop_token/stop_source/109339.cc: New test.
6143 2023-03-31 Jonathan Wakely <jwakely@redhat.com>
6145 * include/experimental/internet (ip::basic_endpoint::_M_if_v6):
6146 Revert change from member function to data member. Fix for
6147 constant evaluation by detecting which union member is active.
6148 (ip::basic_endpoint::resize): Revert changes to update _M_is_v6
6151 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6154 * testsuite/20_util/optional/monadic/pr109340.cc: Moved to...
6155 * testsuite/20_util/optional/monadic/pr109242.cc: ...here.
6157 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6159 * include/experimental/internet (ip::make_address): Implement
6161 (ip::address_v4::broadcast()): Avoid undefined shift.
6162 (ip::basic_endpoint): Fix member functions for constexpr.
6163 (ip::basic_endpoint::_M_is_v6): Replace member function with
6164 data member, adjust member functions using it.
6165 (ip::basic_endpoint::resize): Update _M_is_v6 based on sockaddr
6167 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
6168 constexpr checks to work in C++14.
6169 * testsuite/experimental/net/internet/address/v4/creation.cc:
6171 * testsuite/experimental/net/internet/endpoint/cons.cc:
6173 * testsuite/experimental/net/internet/network/v4/cons.cc:
6175 * testsuite/experimental/net/internet/network/v4/members.cc:
6177 * testsuite/experimental/net/internet/endpoint/extensible.cc: New test.
6179 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6181 * include/std/expected (expected::value() &): Use const lvalue
6182 for unex member passed to bad_expected_access constructor, as
6185 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6188 * include/std/expected (expected::transform): Use
6189 std::remove_cv_t instead of std::remove_cvref_t.
6190 (expected::transform_error): Likewise.
6191 (expected<cv void, E>::transform): Likewise.
6192 (expected<cv void, E>::transform_error): Likewise.
6193 * include/std/optional (transform): Use std::remove_cv_t.
6194 * testsuite/20_util/optional/monadic/pr109340.cc: New test.
6196 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
6198 * include/std/optional (optional): Adjust static assertion to
6199 reject arrays and functions as well as references.
6200 * testsuite/20_util/optional/requirements_neg.cc: New test.
6202 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
6205 * include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use
6206 std::use_facet instead of cached _M_num_get facet.
6207 (istream::operator>>(short&)): Likewise.
6208 (istream::operator>>(int&)): Likewise.
6209 * include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use
6210 std::use_facet instead of cached _M_num_put facet.
6212 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
6214 * include/bits/char_traits.h (char_traits::copy): Return without
6215 using memcpy if n==0.
6216 (char_traits::assign): Likewise for memset.
6218 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
6221 * include/bits/basic_string.h (basic_string::_M_is_local()): Add
6222 hint for compiler that local strings fit in the local buffer.
6224 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
6227 * include/std/chrono (__detail::__get_leap_second_info): Update
6228 expiry date of hardcoded leapseconds list.
6229 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds()):
6231 * src/c++20/tzdata.zi: Import new file from 2023a release.
6232 * testsuite/std/time/time_zone/get_info_local.cc: Only check
6233 transitions for Egypt up to 2014.
6235 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
6237 * include/experimental/bits/simd.h (is_simd_flag_type): New.
6238 (_IsSimdFlagType): New.
6239 (copy_from, copy_to, load ctors): Constrain _Flags using
6242 2023-03-28 Matthias Kretz <m.kretz@gsi.de>
6244 * include/experimental/bits/simd_x86.h (_SimdImplX86): Use
6245 _Base::_S_divides if the optimized _S_divides function is hidden
6246 via the preprocessor.
6248 2023-03-27 Jakub Jelinek <jakub@redhat.com>
6250 * testsuite/experimental/net/timer/waitable/dest.cc: Avoid -Wformat
6251 warning if size_t is not unsigned long.
6253 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6255 * include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)):
6256 Add overload, as per LWG 3893.
6257 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
6258 Check assignment from nullptr.
6260 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6262 * include/std/format (formatter<const charT[N], charT>): Do not
6263 define partial speclialization, as per LWG 3833.
6264 * testsuite/std/format/formatter/requirements.cc: Check it.
6266 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6268 * include/std/utility (__cpp_lib_constexpr_algorithms): Define,
6270 * testsuite/20_util/exchange/constexpr.cc: Check for it.
6272 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6274 * include/std/version (__cpp_lib_format): Define.
6275 * testsuite/std/format/functions/format.cc: Check it.
6277 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6279 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite):
6280 Pass rvalues to the callback, as now allowed by LWG 3645.
6281 Enforce preconditions on the return value.
6282 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc:
6285 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6287 * include/std/format: Add a comment noting that the resolution
6288 of LWG 3720 has been applied..
6290 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6292 * include/bits/regex.h (match_results): Add allocator-extended
6293 copy and move constructors, as per LWG 2195.
6294 * testsuite/28_regex/match_results/ctors/char/alloc.cc: New test.
6296 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
6298 * include/bits/stream_iterator.h (istream_iterator): Add
6299 constexpr to copy constructor, as per LWG 3600.
6300 * testsuite/24_iterators/istream_iterator/cons/constexpr.cc:
6301 Check copy construction.
6303 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
6305 * include/experimental/bits/simd_x86.h
6306 (_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
6307 with __RECIPROCAL_MATH__.
6309 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
6311 * include/experimental/bits/simd_detail.h: Don't define
6312 _GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang.
6313 * include/experimental/bits/simd_x86.h (_S_divides): Remove
6314 check for __clang__.
6316 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
6318 * include/experimental/bits/simd_detail.h: Don't declare the
6319 simd API as constexpr with Clang.
6320 * include/experimental/bits/simd_x86.h (__movm): New.
6321 (_S_blend_avx512): Resolve FIXME. Implement blend using __movm
6323 (_SimdImplX86::_S_masked_unary): Clang does not implement the
6324 same builtins. Implement the function using __movm, ?:, and -
6325 operators on vector_size types instead.
6327 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
6329 * testsuite/experimental/simd/tests/operators.cc: Clang doesn't
6330 define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
6332 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
6334 * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix
6337 2023-03-20 Marek Polacek <polacek@redhat.com>
6340 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust dg-error.
6341 * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
6342 * testsuite/23_containers/span/explicit.cc: Likewise.
6344 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
6347 * include/std/expected (expected<void>::expected(in_place_t)):
6348 Remove template-head.
6350 2023-03-18 Jonathan Wakely <jwakely@redhat.com>
6353 * testsuite/18_support/coroutines/hash.cc: Use const object
6356 2023-03-17 Jonathan Wakely <jwakely@redhat.com>
6359 * include/std/coroutine (hash<>::operator()): Add const.
6360 * testsuite/18_support/coroutines/hash.cc: New test.
6362 2023-03-14 Patrick Palka <ppalka@redhat.com>
6365 * include/std/ranges (repeat_view): Remove redundant parentheses
6367 (repeat_view::_Iterator): Correct the requires-clause.
6369 2023-03-14 Patrick Palka <ppalka@redhat.com>
6371 * include/bits/stl_iterator.h (move_iterator::_S_iter_concept):
6373 (__cpp_lib_move_iterator_concept): Define for C++20.
6374 (move_iterator::iterator_concept): Strengthen as per P2520R0.
6375 * include/std/version (__cpp_lib_move_iterator_concept): Define
6377 * testsuite/24_iterators/move_iterator/p2520r0.cc: New test.
6379 2023-03-14 Patrick Palka <ppalka@redhat.com>
6381 * include/bits/ranges_util.h (view_interface::empty): Add
6382 preferred overloads that use ranges::size when the range is
6383 sized as per LWG 3715.
6384 * testsuite/std/ranges/adaptors/lwg3715.cc: New test.
6386 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
6388 * include/bits/chrono.h (__is_duration_v, __is_time_point_v):
6389 Only define for C++17 and later.
6391 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
6393 * src/Makefile.am: Add comment about linker script fragments.
6394 * src/Makefile.in: Regenerate.
6396 2023-03-14 Jonathan Wakely <jwakely@redhat.com>
6399 * include/bits/mask_array.h (mask_array): Add assertions to
6400 assignment operators.
6401 * include/std/valarray (valarray::operator[](valarray<bool>)):
6403 * testsuite/26_numerics/valarray/mask-1_neg.cc: New test.
6404 * testsuite/26_numerics/valarray/mask-2_neg.cc: New test.
6405 * testsuite/26_numerics/valarray/mask-3_neg.cc: New test.
6406 * testsuite/26_numerics/valarray/mask-4_neg.cc: New test.
6407 * testsuite/26_numerics/valarray/mask-5_neg.cc: New test.
6408 * testsuite/26_numerics/valarray/mask-6_neg.cc: New test.
6409 * testsuite/26_numerics/valarray/mask-7_neg.cc: New test.
6410 * testsuite/26_numerics/valarray/mask-8_neg.cc: New test.
6411 * testsuite/26_numerics/valarray/mask.cc: New test.
6413 2023-03-13 Jakub Jelinek <jakub@redhat.com>
6415 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
6416 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
6418 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
6420 * doc/Makefile.am: Add comment referring to documentation.
6421 * doc/Makefile.in: Regenerate.
6423 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
6425 * doc/html/*: Regenerate.
6427 2023-03-13 Jonny Grant <jg@jguk.org>
6429 * doc/xml/faq.xml: Update copyright year.
6431 2023-03-13 Jonathan Wakely <jwakely@redhat.com>
6433 * include/bits/allocator.h: Fix typo in comment.
6435 2023-03-12 Jakub Jelinek <jakub@redhat.com>
6437 * config/abi/pre/gnu.ver (CXXABI_1.3.14): Also export __bf16 tinfos
6438 if it isn't mangled as DF16b but u6__bf16.
6440 2023-03-12 Gerald Pfeifer <gerald@pfeifer.com>
6442 * doc/xml/manual/documentation_hacking.xml: Move www.graphviz.org
6444 * doc/html/manual/documentation_hacking.html: Regenerate.
6446 2023-03-10 Jonathan Wakely <jwakely@redhat.com>
6449 * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
6450 Remove self-recursion in __init__. Add missing _supports.
6451 * testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
6454 2023-03-09 Patrick Palka <ppalka@redhat.com>
6456 * include/std/ranges
6457 (cartesian_product_view::_Iterator::_Iterator): Remove
6458 constraint on default constructor as per LWG 3849.
6459 (cartesian_product_view::_Iterator::_M_prev): Adjust position
6460 of _Nm > 0 test as per LWG 3820.
6461 (cartesian_product_view::_Iterator::_M_advance): Perform bounds
6462 checking only on sized cartesian products.
6463 * testsuite/std/ranges/cartesian_product/1.cc (test08): New test.
6465 2023-03-09 Patrick Palka <ppalka@redhat.com>
6468 * include/std/ranges (chunk_by_view::_M_pred): Remove DMI as per
6470 (repeat_view::_M_pred): Likewise.
6471 * testsuite/std/ranges/adaptors/chunk_by/1.cc (test03): New test.
6472 * testsuite/std/ranges/repeat/1.cc (test05): New test.
6474 2023-03-09 Patrick Palka <ppalka@redhat.com>
6477 * include/std/ranges (__detail::__can_single_view): New concept.
6478 (_Single::operator()): Constrain it. Move [[nodiscard]] to the
6479 end of the function declarator.
6480 (__detail::__can_iota_view): New concept.
6481 (_Iota::operator()): Constrain it. Move [[nodiscard]] to the
6482 end of the function declarator.
6483 (__detail::__can_istream_view): New concept.
6484 (_Istream::operator()): Constrain it. Move [[nodiscard]] to the
6485 end of the function declarator.
6486 * testsuite/std/ranges/iota/iota_view.cc (test07): New test.
6487 * testsuite/std/ranges/istream_view.cc (test08): New test.
6488 * testsuite/std/ranges/single_view.cc (test07): New test.
6490 2023-03-09 Patrick Palka <ppalka@redhat.com>
6493 * include/std/ranges (cartesian_product_view::end): When
6494 building the tuple of iterators, avoid calling ranges::begin on
6495 the first range if __empty_tail is false.
6496 * testsuite/std/ranges/cartesian_product/1.cc (test07): New test.
6498 2023-03-09 Jonathan Wakely <jwakely@redhat.com>
6501 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Fix incorrect
6504 2023-03-07 Jakub Jelinek <jakub@redhat.com>
6506 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
6507 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
6508 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
6509 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
6510 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
6512 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
6515 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Adjust patterns to
6516 not match symbols in namespace std::__gnu_cxx11_ieee128.
6517 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add patterns for
6518 std::__gnu_cxx11_ieee128::money_{get,put}.
6520 2023-03-07 Jonathan Wakely <jwakely@redhat.com>
6522 * libsupc++/eh_personality.cc: Fix spelling in comment.
6524 2023-03-03 Alexandre Oliva <oliva@adacore.com>
6526 * testsuite/30_threads/async/async.cc (test04): Initialize
6527 steady_start, renamed from steady_begin, next to slow_start.
6528 Increase tolerance for final wait.
6530 2023-03-03 Alexandre Oliva <oliva@adacore.com>
6532 * testsuite/libstdc++-prettyprinters/80276.cc: Add
6533 std::string to debug info.
6534 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
6536 2023-03-03 Alexandre Oliva <oliva@adacore.com>
6541 * include/bits/std_thread.h (thread::_M_thread_deps): New
6542 static implicitly-inline member function.
6543 (std::thread template ctor): Pass it to _M_start_thread.
6544 * src/c++11/thread.cc (thread::_M_start_thread): Name depend
6545 parameter, force it live on entry.
6547 2023-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6549 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
6550 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
6552 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
6553 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
6556 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
6558 * include/bits/cow_string.h: Fix typo in comment.
6560 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
6562 * src/c++20/tzdb.cc (chrono::tzdb::current_zone()) Use "UTC" if
6563 current time zone cannot be determined.
6564 * testsuite/std/time/tzdb/1.cc: Remove conditions based on
6565 HAVE_TZDB macro and test all members unconditionally.
6567 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
6570 * include/bits/uses_allocator_args.h
6571 (uses_allocator_construction_args): Implement LWG 3527.
6572 * testsuite/20_util/pair/astuple/get-2.cc: New test.
6573 * testsuite/20_util/scoped_allocator/108952.cc: New test.
6574 * testsuite/20_util/uses_allocator/lwg3527.cc: New test.
6576 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
6579 * include/bits/stl_algobase.h (__copy_move<false, false, RA>)
6580 Add __assign_one static member function.
6581 (__copy_move<true, false, RA>): Likewise.
6582 (__copy_move<IsMove, true, RA>): Do not use memmove for a single
6584 (__copy_move_backward<IsMove, true, RA>): Likewise.
6585 * testsuite/25_algorithms/copy/108846.cc: New test.
6586 * testsuite/25_algorithms/copy_backward/108846.cc: New test.
6587 * testsuite/25_algorithms/copy_n/108846.cc: New test.
6588 * testsuite/25_algorithms/move/108846.cc: New test.
6589 * testsuite/25_algorithms/move_backward/108846.cc: New test.
6591 2023-02-28 Jonathan Wakely <jwakely@redhat.com>
6593 * src/c++11/codecvt.cc: Add [[likely]] and [[unlikely]]
6596 2023-02-27 Jonathan Wakely <jwakely@redhat.com>
6598 * include/bits/basic_ios.h (basic_ios::_M_setstate): Add
6600 * include/bits/basic_string.h (resize_and_overwrite): Add
6603 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
6605 * include/experimental/bits/simd.h: Line breaks and indenting
6606 fixed to follow the libstdc++ standard.
6607 * include/experimental/bits/simd_builtin.h: Likewise.
6608 * include/experimental/bits/simd_fixed_size.h: Likewise.
6609 * include/experimental/bits/simd_neon.h: Likewise.
6610 * include/experimental/bits/simd_ppc.h: Likewise.
6611 * include/experimental/bits/simd_scalar.h: Likewise.
6612 * include/experimental/bits/simd_x86.h: Likewise.
6614 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
6617 * include/experimental/bits/simd_fixed_size.h
6618 (_SimdImplFixedSize::_S_broadcast): Replace inline with
6619 _GLIBCXX_SIMD_INTRINSIC.
6620 (_SimdImplFixedSize::_S_generate): Likewise.
6621 (_SimdImplFixedSize::_S_load): Likewise.
6622 (_SimdImplFixedSize::_S_masked_load): Likewise.
6623 (_SimdImplFixedSize::_S_store): Likewise.
6624 (_SimdImplFixedSize::_S_masked_store): Likewise.
6625 (_SimdImplFixedSize::_S_min): Likewise.
6626 (_SimdImplFixedSize::_S_max): Likewise.
6627 (_SimdImplFixedSize::_S_complement): Likewise.
6628 (_SimdImplFixedSize::_S_unary_minus): Likewise.
6629 (_SimdImplFixedSize::_S_plus): Likewise.
6630 (_SimdImplFixedSize::_S_minus): Likewise.
6631 (_SimdImplFixedSize::_S_multiplies): Likewise.
6632 (_SimdImplFixedSize::_S_divides): Likewise.
6633 (_SimdImplFixedSize::_S_modulus): Likewise.
6634 (_SimdImplFixedSize::_S_bit_and): Likewise.
6635 (_SimdImplFixedSize::_S_bit_or): Likewise.
6636 (_SimdImplFixedSize::_S_bit_xor): Likewise.
6637 (_SimdImplFixedSize::_S_bit_shift_left): Likewise.
6638 (_SimdImplFixedSize::_S_bit_shift_right): Likewise.
6639 (_SimdImplFixedSize::_S_remquo): Add inline keyword (to be
6640 explicit about not always-inline, yet).
6641 (_SimdImplFixedSize::_S_isinf): Likewise.
6642 (_SimdImplFixedSize::_S_isfinite): Likewise.
6643 (_SimdImplFixedSize::_S_isnan): Likewise.
6644 (_SimdImplFixedSize::_S_isnormal): Likewise.
6645 (_SimdImplFixedSize::_S_signbit): Likewise.
6647 2023-02-24 Matthias Kretz <m.kretz@gsi.de>
6650 * include/experimental/bits/simd_builtin.h
6651 (_SimdImplBuiltin::_S_masked_unary): More efficient
6652 implementation of masked inc-/decrement for integers and floats
6654 * include/experimental/bits/simd_x86.h
6655 (_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract
6656 builtins for masked inc-/decrement.
6658 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
6660 * include/experimental/executor (executor): Constrain template
6663 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
6665 * include/experimental/internet (basic_endpoint): Add missing
6666 constexpr to comparison operators.
6667 * testsuite/experimental/net/internet/endpoint/cons.cc: New test.
6669 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
6671 * include/experimental/internet (network_v4::netmask()): Avoid
6673 (network_v4::broadcast()): Optimize and fix for targets with
6674 uint_least32_t wider than 32 bits.
6675 (network_v4::to_string(const Allocator&)): Fix for custom
6676 allocators and optimize using to_chars.
6677 (operator==(const network_v4&, const network_v4&)): Add missing
6679 (operator==(const network_v6&, const network_v6&)): Likewise.
6680 * testsuite/experimental/net/internet/network/v4/cons.cc: New test.
6681 * testsuite/experimental/net/internet/network/v4/members.cc: New test.
6683 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
6685 * include/experimental/internet (address_4(const bytes_type&)):
6686 Use __builtin_bit_cast if available, otherwise convert to
6688 (address_v4::to_bytes()): Likewise, but convert from network
6690 * testsuite/experimental/net/internet/address/v4/cons.cc: Fix
6691 incorrect tests. Check for constexpr too.
6692 * testsuite/experimental/net/internet/address/v4/creation.cc:
6694 * testsuite/experimental/net/internet/address/v4/members.cc:
6695 Check that bytes_type is a standard-layout type.
6697 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
6699 * include/experimental/internet (address_v4::to_string):
6701 * testsuite/experimental/net/internet/address/v4/members.cc:
6702 Check more addresses.
6704 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
6706 * include/ext/aligned_buffer.h (__aligned_buffer): Add
6709 2023-02-24 Jonathan Wakely <jwakely@redhat.com>
6711 * testsuite/std/format/arguments/lwg3810.cc: Move dg-options
6714 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
6716 * testsuite/experimental/simd/tests/reductions.cc: Introduce
6717 max_distance as the type-dependent max error.
6719 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
6721 * include/experimental/bits/simd_builtin.h (_S_set): Compare as
6722 int. The actual range of these indexes is very small.
6724 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
6726 * include/experimental/bits/simd_x86.h (_S_bit_shift_left)
6727 (_S_bit_shift_right): Declare constexpr. The implementation was
6728 already expecting constexpr evaluation.
6730 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
6733 * include/experimental/bits/simd_detail.h
6734 (_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for
6737 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
6740 * include/experimental/bits/simd.h (__vector_broadcast):
6741 Implement via __vector_broadcast_impl instead of
6742 __call_with_n_evaluations + 2 lambdas.
6743 (__vector_broadcast_impl): New.
6745 2023-02-22 Alexandre Oliva <oliva@adacore.com>
6747 * src/c++11/shared_ptr.cc (__gnu_internal::get_mutex):
6748 Avoid destruction of the mutex pool.
6750 2023-02-22 Alexandre Oliva <oliva@adacore.com>
6752 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: xfail
6754 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
6757 2023-02-22 Alexandre Oliva <oliva@adacore.com>
6759 * testsuite/17_intro/names.cc: Undef func on vxworks >= 7 in
6762 2023-02-20 Andreas Schwab <schwab@linux-m68k.org>
6764 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update.
6766 2023-02-20 Matthias Kretz <m.kretz@gsi.de>
6768 * include/experimental/bits/simd.h (__extract_part, split):
6769 Use reserved name for template parameter.
6771 2023-02-20 Andreas Schwab <schwab@suse.de>
6773 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
6775 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
6777 * doc/xml/faq.xml: Switch two links to www.open-std.org to https.
6778 * doc/html/faq.html: Regenerate.
6780 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
6782 * include/experimental/bits/simd_math.h (__hypot): Bitcasting
6783 between scalars requires the __bit_cast helper function instead
6786 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
6788 * include/experimental/bits/simd_x86.h
6789 (_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
6790 (_SimdImplX86::_S_less_equal): Do not call
6791 __builtin_is_constant_evaluated in constexpr-if.
6793 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
6795 * testsuite/experimental/simd/tests/bits/verify.h
6796 (verify::verify): Use %zx for size_t in format string.
6798 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
6800 * testsuite/experimental/simd/generate_makefile.sh: Generate and
6801 pre-compile pch.h, which includes all headers that do not depend
6802 on command-line macros.
6803 * testsuite/experimental/simd/tests/bits/main.h: New file.
6804 (iterate_abis, main): Moved from verify.h.
6805 * testsuite/experimental/simd/tests/bits/verify.h
6806 (iterate_abis, main): Moved to main.h.
6807 * testsuite/experimental/simd/tests/bits/conversions.h: Add
6809 (genHalfBits): Simplify.
6810 * testsuite/experimental/simd/tests/bits/make_vec.h: Add include
6812 (make_alternating_mask): Moved from mask_loadstore.
6813 * testsuite/experimental/simd/tests/bits/mathreference.h: Add
6815 * testsuite/experimental/simd/tests/bits/test_values.h: Ditto.
6816 * testsuite/experimental/simd/tests/mask_loadstore.cc
6817 (make_mask, make_alternating_mask): Removed.
6818 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto.
6819 * testsuite/experimental/simd/tests/operators.cc (genHalfBits):
6821 * testsuite/experimental/simd/tests/abs.cc: Only include
6824 * testsuite/experimental/simd/tests/algorithms.cc: Ditto.
6825 * testsuite/experimental/simd/tests/broadcast.cc: Ditto.
6826 * testsuite/experimental/simd/tests/casts.cc: Ditto.
6827 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto.
6828 * testsuite/experimental/simd/tests/frexp.cc: Ditto.
6829 * testsuite/experimental/simd/tests/generator.cc: Ditto.
6830 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto.
6831 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto.
6832 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc:
6833 * testsuite/experimental/simd/tests/loadstore.cc: Ditto.
6834 * testsuite/experimental/simd/tests/logarithm.cc: Ditto.
6835 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto.
6836 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto.
6837 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto.
6838 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto.
6839 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto.
6840 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto.
6841 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto.
6842 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto.
6843 * testsuite/experimental/simd/tests/reductions.cc: Ditto.
6844 * testsuite/experimental/simd/tests/remqo.cc: Ditto.
6845 * testsuite/experimental/simd/tests/simd.cc: Ditto.
6846 * testsuite/experimental/simd/tests/sincos.cc: Ditto.
6847 * testsuite/experimental/simd/tests/split_concat.cc: Ditto.
6848 * testsuite/experimental/simd/tests/splits.cc: Ditto.
6849 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto.
6850 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto.
6851 * testsuite/experimental/simd/tests/where.cc: Ditto.
6853 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
6855 * testsuite/experimental/simd/README.md: Document the timeout
6856 and timeout-factor directives. Minor typo fixed.
6858 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
6861 * include/experimental/bits/simd_detail.h: Define
6862 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
6863 * include/experimental/bits/simd.h: Annotate lambdas with
6864 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA.
6865 * include/experimental/bits/simd_builtin.h: Ditto.
6866 * include/experimental/bits/simd_converter.h: Ditto.
6867 * include/experimental/bits/simd_fixed_size.h: Ditto.
6868 * include/experimental/bits/simd_math.h: Ditto.
6869 * include/experimental/bits/simd_neon.h: Ditto.
6870 * include/experimental/bits/simd_x86.h: Ditto.
6872 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
6874 * include/experimental/bits/simd.h
6875 (_SimdWrapper::_M_is_constprop_none_of)
6876 (_SimdWrapper::_M_is_constprop_all_of): Return false unless the
6877 computed result still satisfies __builtin_constant_p.
6879 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6881 * testsuite/std/format/arguments/lwg3810.cc: Replace UTF-8
6884 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6886 * include/Makefile.am: Add new header.
6887 * include/Makefile.in: Regenerate.
6888 * include/experimental/synchronized_value: New file.
6889 * testsuite/experimental/synchronized_value.cc: New test.
6891 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6893 * include/experimental/optional: Fix header name in comment.
6895 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6897 * include/std/format (__format::_Arg_store): New class template.
6898 (basic_format_args): Remove nested type _Store and add deduction
6899 guide from _Arg_store.
6900 (basic_format_arg, make_format_args): Adjust.
6901 * testsuite/std/format/arguments/lwg3810.cc: New test.
6903 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6905 * include/bits/stl_pair.h (pair) [C++20]: Add non-dangling
6906 constraints to constructors and add deleted overloads for the
6907 dangling cases, as per P2255R2.
6908 (pair) [!C++20 && _GLIBCXX_DEBUG]: Add static assertions to
6909 make dangling cases ill-formed.
6910 * testsuite/20_util/pair/dangling_ref.cc: New test.
6912 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6914 * testsuite/17_intro/names_pstl.cc: Require et tbb_backend.
6916 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6918 * include/ext/throw_allocator.h: Use reserved names for
6921 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6923 * testsuite/17_intro/names_pstl.cc: Add space after effective
6926 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6928 * include/pstl/algorithm_fwd.h (__pattern_search_n)
6929 (__brick_unique_copy, __brick_adjacent_find)
6930 (__brick_generate_n, __pattern_generate_n): Use reserved names
6932 * include/pstl/algorithm_impl.h (__brick_unique_copy)
6933 (__pattern_reverse, __brick_generate_n): Likewise.
6934 * include/pstl/execution_impl.h (__prefer_unsequenced_tag)
6935 (__prefer_parallel_tag): Likewise.
6936 * include/pstl/glue_algorithm_impl.h (transform): Likewise.
6937 * include/pstl/glue_numeric_defs.h (adjacent_difference):
6939 * include/pstl/numeric_impl.h (__brick_adjacent_difference):
6941 * include/pstl/parallel_backend_tbb.h (__merge_func): Likewise.
6942 * include/pstl/unseq_backend_simd.h (_Combiner)
6943 (__simd_min_element, __simd_minmax_element): Likewise.
6944 * testsuite/17_intro/names_pstl.cc: New test.
6946 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
6948 * include/bits/fs_ops.h (create_directory): Use reserved name
6950 * include/bits/ranges_algo.h (__contains_subrange_fn):
6952 * include/bits/regex_automaton.h (_State_base::_M_print):
6954 * include/bits/regex_automaton.tcc(_State_base::_M_print):
6956 * include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise.
6957 * include/experimental/bits/fs_ops.h (create_directory):
6959 * include/std/mutex (timed_mutex::_M_clocklock): Likewise.
6960 (recursive_timed_mutex:_M_clocklock): Likewise.
6961 * include/std/tuple (basic_common_reference): Likewise.
6962 * libsupc++/cxxabi_init_exception.h
6963 (__cxa_init_primary_exception): Likewise.
6964 * testsuite/17_intro/names.cc: Add checks.
6966 2023-02-14 Gerald Pfeifer <gerald@pfeifer.com>
6968 * doc/xml/manual/status_cxx2017.xml: Update an open-std.org link
6969 to www.open-std.org and https.
6970 * doc/html/manual/status.html: Regenerate.
6972 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
6975 * include/std/atomic (atomic_flag_wait): Add.
6976 (atomic_flag_wait_explicit): Add.
6977 (atomic_flag_notify): Add.
6978 (atomic_flag_notify_explicit): Add.
6979 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc:
6980 Add test case to cover missing atomic_flag free functions.
6982 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
6985 * include/std/atomic (atomic_flag_test): Add.
6986 (atomic_flag_test_explicit): Add.
6987 * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
6988 test case to cover missing atomic_flag free functions.
6989 * testsuite/29_atomics/atomic_flag/test/implicit.cc:
6992 2023-02-13 Gerald Pfeifer <gerald@pfeifer.com>
6994 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust
6995 "The Component Object Model" reference.
6996 * doc/html/manual/policy_data_structures.html: Regenerate.
6998 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
7000 * doc/xml/manual/containers.xml: Tweak a link to N1780
7002 * doc/html/manual/associative.html: Regenerate.
7004 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
7006 * doc/xml/manual/ctype.xml: Change www.unix.org to unix.org.
7007 * doc/html/manual/facets.html: Regenerate.
7009 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
7011 * doc/xml/manual/policy_data_structures_biblio.xml: Update
7012 link to "Worst-case efficient priority queues".
7013 * doc/html/manual/policy_data_structures.html: Regenerate.
7015 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
7017 * doc/xml/manual/using.xml: Document newly-freestanding
7018 headers and the effect of the -ffreestanding flag.
7019 * doc/xml/manual/status_cxx2023.xml: Document P1642R11 as
7021 * doc/xml/manual/configure.xml: Document that hosted installs
7022 respect __STDC_HOSTED__.
7023 * doc/xml/manual/test.xml: Document how to run tests in
7025 * doc/html/*: Regenerate.
7027 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
7029 * include/bits/ranges_algo.h (__find_last_fn): Rename T to _Tp.
7030 (__find_last_if_fn): Likewise.
7032 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
7034 * include/std/type_traits: Add diagnostic pragmas around
7035 references to deprecated std::aligned_storage and
7036 std::aligned_union traits.
7037 * testsuite/20_util/aligned_storage/requirements/alias_decl.cc:
7038 Add dg-warning for et c++23.
7039 * testsuite/20_util/aligned_storage/requirements/explicit_instantiation.cc:
7041 * testsuite/20_util/aligned_storage/value.cc: Likewise.
7042 * testsuite/20_util/aligned_union/1.cc: Likewise.
7043 * testsuite/20_util/aligned_union/requirements/alias_decl.cc:
7046 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
7048 * doc/doxygen/user.cfg.in (PREDEFINED): Add new macros.
7049 * include/bits/c++config (_GLIBCXX23_DEPRECATED)
7050 (_GLIBCXX23_DEPRECATED_SUGGEST): New macros.
7051 * include/std/type_traits (aligned_storage, aligned_union)
7052 (aligned_storage_t, aligned_union_t): Deprecate for C++23.
7053 * testsuite/20_util/aligned_storage/deprecated-2b.cc: New test.
7054 * testsuite/20_util/aligned_union/deprecated-2b.cc: New test.
7056 2023-02-06 Nathaniel Shead <nathanieloshead@gmail.com>
7058 * doc/doxygen/user.cfg.in (PREDEFINED): Update macros.
7059 * include/bits/c++config (_GLIBCXX20_DEPRECATED): Make
7060 consistent with other 'deprecated' macros.
7061 * include/std/type_traits (is_pod, is_pod_v): Use
7062 _GLIBCXX20_DEPRECATED_SUGGEST instead.
7064 2023-02-06 Arsen Arsenović <arsen@aarsen.me>
7066 * Makefile.am [!_GLIBCXX_HOSTED]: Enable src/ subdirectory.
7067 * Makefile.in: Regenerate.
7068 * src/Makefile.am [!_GLIBCXX_HOSTED]: Omit compatibility files.
7069 There's no history to be compatible with.
7070 * src/c++11/Makefile.am [!_GLIBCXX_HOSTED]: Omit hosted-only
7071 source files from the build.
7072 * src/c++17/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
7073 * src/c++20/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
7074 * src/c++98/Makefile.am [!_GLIBCXX_HOSTED]: Likewise.
7075 * src/Makefile.in: Regenerate.
7076 * src/c++11/Makefile.in: Regenerate.
7077 * src/c++17/Makefile.in: Regenerate.
7078 * src/c++20/Makefile.in: Regenerate.
7079 * src/c++98/Makefile.in: Regenerate.
7081 2023-02-06 Jonathan Wakely <jwakely@redhat.com>
7083 * src/Makefile.am [GLIBCXX_HOSTED] (SUBDIRS): Do not add
7084 filesystem, libbacktrace and experimental.
7085 * src/Makefile.in: Regenerate.
7087 2023-02-04 Hans-Peter Nilsson <hp@axis.com>
7090 * include/pstl/unseq_backend_simd.h (__simd_or): Use __INT32_TYPE__
7093 2023-02-04 Gerald Pfeifer <gerald@pfeifer.com>
7095 * doc/xml/manual/documentation_hacking.xml: Adjust link to pdftex.
7096 * doc/html/manual/documentation_hacking.html: Regenerate.
7098 2023-02-04 François Dumont <fdumont@gcc.gnu.org>
7100 * include/bits/basic_string.h (operator=(basic_string&&)): Transfer move-to
7101 storage to the move-from instance when allocators are equal.
7102 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc (test04):
7105 2023-02-03 Samuel Thibault <samuel.thibault@gnu.org>
7107 * config/os/gnu-linux/os_defines.h [!__linux__]
7108 (_GLIBCXX_NATIVE_THREAD_ID, _GLIBCXX_GTHREAD_USE_WEAK): Do not define.
7110 2023-02-03 Patrick Palka <ppalka@redhat.com>
7112 * include/bits/ranges_algo.h (__find_last_fn, find_last):
7114 (__find_last_if_fn, find_last_if): Define.
7115 (__find_last_if_not_fn, find_last_if_not): Define.
7116 * testsuite/25_algorithms/find_last/1.cc: New test.
7117 * testsuite/25_algorithms/find_last_if/1.cc: New test.
7118 * testsuite/25_algorithms/find_last_if_not/1.cc: New test.
7120 2023-02-03 Patrick Palka <ppalka@redhat.com>
7122 * include/bits/ranges_algo.h (out_value_result): Define.
7123 (iota_result): Define.
7124 (__iota_fn, iota): Define.
7125 * testsuite/25_algorithms/iota/1.cc: New test.
7127 2023-02-03 Patrick Palka <ppalka@redhat.com>
7129 * include/bits/ranges_algo.h (__contains_fn, contains): Define.
7130 (__contains_subrange_fn, contains_subrange): Define.
7131 * testsuite/25_algorithms/contains/1.cc: New test.
7132 * testsuite/25_algorithms/contains_subrange/1.cc: New test.
7134 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
7136 * doc/xml/manual/abi.xml: Tweak link to ABIcheck project.
7137 * doc/html/manual/abi.html: Regenerate.
7139 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
7141 * src/filesystem/ops-common.h [AVR] (__unsupported): Always use
7142 errc::function_not_supported instead of errc::not_supported.
7144 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
7146 * include/std/sstream (basic_stringbuf::view): Define for old
7148 (basic_istringstream::view, basic_0stringstream::view)
7149 (basic_stringstream::view): Likewise.
7150 * testsuite/27_io/basic_istringstream/view/char/1.cc: Remove
7151 { dg-require-effective-target cxx11_abi }.
7152 * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc:
7154 * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise.
7155 * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc:
7157 * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise.
7158 * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise.
7159 * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise.
7160 * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc:
7163 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
7166 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export shared_ptr
7167 conversion operators for directory iterator comparisons with
7168 std::default_sentinel_t.
7169 * include/bits/fs_path.h (path::path(string_view, _Type))
7170 (path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
7172 * src/c++17/fs_path.cc: ... here.
7173 * testsuite/27_io/filesystem/path/108636.cc: New test.
7175 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
7177 * include/std/variant (variant::operator=): Implement resolution
7179 * testsuite/20_util/variant/lwg3585.cc: New test.
7181 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
7183 * doc/xml/manual/using_exceptions.xml: Update a www.open-std.org
7185 * doc/html/manual/using_exceptions.html: Regenerate.
7187 2023-02-02 Gerald Pfeifer <gerald@pfeifer.com>
7189 * doc/xml/manual/debug.xml: Fix link to online GDB manual.
7190 * doc/html/manual/debug.html: Regenerate.
7192 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
7194 * src/c++11/random.cc (random_device::_M_fini): Do not try to
7195 close the file handle if the target doesn't support the
7196 /dev/random and /dev/urandom files.
7198 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
7200 * config/os/generic/error_constants.h (errc::value_too_large)
7202 * src/c++11/system_error.cc
7203 (system_category::default_error_condition) [__AVR__]: Only match
7204 recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
7205 * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
7206 for ENOENT etc. in switch.
7207 (fs::remove_all) [__AVR__]: Likewise.
7208 * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
7211 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
7213 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR) [avr-*-*, msp430-*-*]: Set
7215 * configure: Regenerate.
7217 2023-02-01 Hans-Peter Nilsson <hp@axis.com>
7220 * testsuite/std/time/hh_mm_ss/1.cc (size): Add empty
7221 struct at end of S0.
7223 2023-01-30 Gerald Pfeifer <gerald@pfeifer.com>
7225 * doc/xml/manual/shared_ptr.xml: Move links from both
7226 http://open-std.org and http://www.open-std.org to
7227 https://www.open-std.org.
7228 * doc/html/manual/memory.html: Regenerate.
7230 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7232 * doc/xml/manual/appendix_contributing.xml: Adjust link to
7233 ISO C++ standard at ANSI.
7234 Move link to www.open-std.org to https.
7235 * doc/html/manual/appendix_contributing.html: Regenerate.
7237 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7239 * doc/xml/manual/documentation_hacking.xml: Move sourceforge.net
7241 * doc/html/manual/documentation_hacking.html: Regenerate.
7243 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7245 * doc/xml/manual/abi.xml: Update www.open-std.org link to https.
7246 * doc/html/manual/abi.html: Regenerate.
7248 2023-01-27 Jakub Jelinek <jakub@redhat.com>
7251 * testsuite/17_intro/names.cc (__unused): For linux or GNU hurd
7252 include features.h if present and then check __GLIBC__ and
7253 __GLIBC_MINOR__ macros for glibc prior to 2.19, instead of testing
7254 __GLIBC_PREREQ which isn't defined yet.
7256 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
7258 * src/c++20/tzdb.cc (tzdata_stream): Use constant instead of
7261 2023-01-27 Jonathan Wakely <jwakely@redhat.com>
7264 * testsuite/23_containers/map/modifiers/108554.cc: Use dg-bogus.
7266 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
7268 * src/c++20/tzdb.cc (operator>>(istream&, ZoneInfo&)): Allow
7269 rules named "+" for compatibility with older tzdata.zi files.
7271 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
7274 * include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add
7276 (_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull
7278 * testsuite/23_containers/map/modifiers/108554.cc: New test.
7280 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
7283 * src/c++20/tzdb.cc (current_zone): Look for TIMEZONE or ZONE in
7284 /etc/sysconfig/clock, not DEFAULT_TIMEZONE.
7286 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
7288 * doc/xml/manual/intro.xml: Update links to www.open-std.org to
7290 * doc/html/manual/bugs.html: Regenerate.
7292 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
7295 * src/c++20/tzdb.cc (current_zone): Look for DEFAULT_TIMEZONE in
7296 /etc/sysconfig/clock.
7298 2023-01-24 Jonathan Wakely <jwakely@redhat.com>
7301 * include/bits/ranges_base.h: Include <bits/stl_iterator.h> for
7302 std::make_reverse_iterator.
7303 * include/std/tuple: Include <bits/ranges_util.h> for subrange.
7304 (make_from_tuple): Add static assertion from P2255 to diagnose
7305 dangling references.
7306 * testsuite/20_util/tuple/make_from_tuple/dangling_ref.cc: New test.
7307 * testsuite/20_util/tuple/make_from_tuple/tuple_like.cc: New test.
7309 2023-01-23 François Dumont <fdumont@gcc.gnu.org>
7311 * include/debug/safe_iterator.h (_Safe_iterator<>::_Unchecked): New.
7312 (_Safe_iterator(const _Safe_iterator&, _Unchecked)): New.
7313 (_Safe_iterator::operator++(int)): Use latter.
7314 (_Safe_iterator::operator--(int)): Likewise.
7315 (_Safe_iterator(_Iterator, const _Safe_sequence_base*)): Remove !_M_insular()
7317 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_Unchecked):
7319 (_Safe_local_iterator(const _Safe_local_iterator&, _Unchecked)): New.
7320 (_Safe_local_iterator::operator++(int)): Use latter.
7321 * src/c++11/debug.cc (_S_debug_messages): Add as comment the _Debug_msg_id
7322 entry associated to the array entry.
7324 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
7326 * include/bits/fs_path.h (u8path): Add deprecated attribute.
7327 * testsuite/27_io/filesystem/path/construct/90281.cc: Add
7328 -Wno-deprecated-declarations for C++20 and later.
7329 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc:
7331 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise.
7332 * testsuite/27_io/filesystem/path/native/string.cc: Likewise.
7333 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: New test.
7335 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
7337 * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]:
7338 Always call _M_fini and _M_getentropy.
7340 2023-01-18 Gerald Pfeifer <gerald@pfeifer.com>
7342 * doc/xml/manual/policy_data_structures_biblio.xml: Adjust links
7343 to www.open-std.org to use https.
7344 (COM: Component Model Object Technologies): Rename from...
7345 (The Component Object Model): ...to.
7346 * doc/html/manual/policy_data_structures.html: Regenerate.
7348 2023-01-18 Dimitrij Mijoski <dmjpp@hotmail.com>
7350 * testsuite/22_locale/codecvt/codecvt_unicode.cc: Simplify.
7351 * testsuite/22_locale/codecvt/codecvt_unicode.h: Simplify.
7352 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: Simplify.
7354 2023-01-17 Jonathan Wakely <jwakely@redhat.com>
7356 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Check $target_os instead
7357 of $host. Fix check for file being present during native build.
7358 * configure: Regenerate.
7360 2023-01-17 Martin Liska <mliska@suse.cz>
7362 * src/libbacktrace/Makefile.in: Regenerate.
7364 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
7366 * src/c++20/tzdb.cc (_GLIBCXX_USE_CXX11_ABI): Define to 1.
7368 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
7371 * include/c_compatibility/stdatomic.h: Change copyright line to
7372 be consistent with other headers contributed under DCO terms.
7373 * include/std/expected: Add full stop to copyright line.
7374 * src/c++20/tzdb.cc: Likewise.
7376 2023-01-15 Gerald Pfeifer <gerald@pfeifer.com>
7378 * doc/xml/manual/status_cxx2014.xml: Switch www.open-std.org to
7380 * doc/xml/manual/status_cxx2017.xml: Ditto.
7381 * doc/xml/manual/status_cxx2020.xml: Ditto.
7382 * doc/xml/manual/status_cxx2023.xml: Ditto.
7383 * doc/html/manual/status.html: Regenerate.
7385 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
7387 * testsuite/std/time/tzdb_list/1.cc: Remove dg-xfail-run-if
7388 and fail gracefully if defining the weak symbol doesn't work.
7390 2023-01-15 François Dumont <fdumont@gcc.gnu.org>
7393 * include/debug/safe_iterator.h (_Safe_iterator<>::operator++(int)): Extend deadlock
7394 fix to other iterator category.
7395 (_Safe_iterator<>::operator--(int)): Likewise.
7396 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::operator++(int)):
7398 * testsuite/util/debug/unordered_checks.h (invalid_local_iterator_pre_increment): New.
7399 (invalid_local_iterator_post_increment): New.
7400 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_post_increment_neg.cc:
7402 * testsuite/23_containers/unordered_map/debug/invalid_local_iterator_pre_increment_neg.cc:
7405 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
7407 * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
7410 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
7412 * testsuite/std/time/clock/utc/io.cc: Use ctype to widen char.
7414 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
7416 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Add check for
7417 windows.h. Add pecoff as FORMAT_FILE.
7418 * config.h.in: Regenerate.
7419 * configure: Regenerate.
7420 * src/libbacktrace/Makefile.am: Regenerate.
7421 * src/libbacktrace/Makefile.in: Add pecoff.c as FORMAT_FILE.
7423 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
7425 * include/std/stacktrace (stacktrace_entry::_S_demangle): Use
7426 raw __name if __cxa_demangle could not demangle it.
7428 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
7431 * src/c++20/tzdb.cc (current_zone()) [_AIX]: Use TZ environment
7434 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
7436 * src/c++20/tzdb.cc (TZDB_DISABLED): Disable all code for
7438 * testsuite/std/time/tzdb/leap_seconds.cc: Require tzdb
7440 * testsuite/std/time/tzdb_list/1.cc: Likewise.
7442 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
7444 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): Replace the
7445 --with-libstdcxx-zoneinfo-dir configure option with
7446 --with-libstdcxx-zoneinfo with yes/no/static choices as well as
7448 * config.h.in: Regenerate.
7449 * configure: Regenerate.
7450 * doc/xml/manual/configure.xml: Document configure option.
7451 * doc/html/manual/configure.html: Regenerate.
7452 * src/c++20/Makefile.am: Generate tzdata.zi.h header.
7453 * src/c++20/Makefile.in: Regenerate.
7454 * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Return a
7455 null pointer if no directory is configured.
7456 (zoneinfo_dir): Replace with ...
7457 (zoneinfo_file): New function.
7458 (tzdata_stream): New istream class.
7459 (remote_version, reload_tzdb): Use tzdata_stream.
7460 * testsuite/lib/libstdc++.exp (check_effective_target_tzdb):
7461 Check new _GLIBCXX_STATIC_TZDATA macro and ignore presence of
7462 tzdata.zi file in default location.
7463 * src/c++20/tzdata.zi: New file.
7465 2023-01-14 Jonathan Wakely <jwakely@redhat.com>
7467 * include/bits/chrono_io.h (operator<<): Fix syntax errors.
7468 * testsuite/std/time/month_day/io.cc: New test.
7469 * testsuite/std/time/month_day_last/io.cc: New test.
7470 * testsuite/std/time/month_weekday/io.cc: New test.
7471 * testsuite/std/time/month_weekday_last/io.cc: New test.
7472 * testsuite/std/time/weekday_indexed/io.cc: New test.
7473 * testsuite/std/time/weekday_last/io.cc: New test.
7474 * testsuite/std/time/year_month/io.cc: New test.
7475 * testsuite/std/time/year_month_day_last/io.cc: New test.
7476 * testsuite/std/time/year_month_weekday/io.cc: New test.
7477 * testsuite/std/time/year_month_weekday_last/io.cc: New test.
7479 2023-01-14 François Dumont <fdumont@gcc.gnu.org>
7481 * include/std/format [_GLIBCXX_INLINE_VERSION](to_chars): Adapt __asm symbol
7483 * config/abi/pre/gnu-versioned-namespace.ver: Add to_chars/from_chars symbols
7486 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
7488 * include/bits/std_mutex.h: Include <errno.h>.
7490 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
7492 * testsuite/20_util/to_chars/version.cc: Mark hosted-only.
7493 * testsuite/20_util/uses_allocator/lwg3677.cc: Ditto.
7494 * testsuite/20_util/weak_ptr/cons/self_move.cc: Ditto.
7495 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Replace usage of
7496 std::make_unique with a freestanding-compatible wrapper around
7498 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
7499 Don't test for presence of __cpp_lib_string_contains on !HOSTED.
7500 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
7502 * testsuite/std/ranges/version_c++23.cc: Don't test for presence
7503 of __cpp_lib_ranges in !HOSTED.
7505 2023-01-13 Arsen Arsenović <arsen@aarsen.me>
7507 * include/Makefile.am: Install bits/char_traits.h,
7509 * include/Makefile.in: Regenerate.
7510 * include/bits/char_traits.h: Gate hosted-only, wchar-only and
7511 mbstate-only bits behind appropriate #ifs.
7512 * include/std/string_view: Gate <iostream> functionality behind
7514 * include/std/version: Enable __cpp_lib_constexpr_string_view
7515 and __cpp_lib_starts_ends_with in !HOSTED.
7516 * include/std/ranges: Re-enable __is_basic_string_view on
7517 freestanding, include <string_view> directly.
7518 * include/precompiled/stdc++.h: Include <string_view> when
7520 * testsuite/20_util/function_objects/searchers.cc: Skip testing
7521 boyer_moore searchers on freestanding
7522 * testsuite/21_strings/basic_string_view/capacity/1.cc: Guard
7523 <string>-related tests behind __STDC_HOSTED__.
7524 * testsuite/21_strings/basic_string_view/cons/char/1.cc: Ditto.
7525 * testsuite/21_strings/basic_string_view/cons/char/2.cc: Remove
7526 unused <stdexcept> include.
7527 * testsuite/21_strings/basic_string_view/cons/char/3.cc: Remove
7528 unused <vector> include.
7529 * testsuite/21_strings/basic_string_view/cons/char/range.cc:
7530 Guard <string> related testing behind __STDC_HOSTED__.
7531 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc:
7532 Guard <stdexcept> related tests behind __STDC_HOSTED__.
7533 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
7535 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
7536 Guard <stdexcept> tests behind __STDC_HOSTED__.
7537 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
7538 Enable test on freestanding, guard <stdexcept> bits behind
7540 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
7541 Guard <stdexcept> bits behind __STDC_HOSTED__.
7542 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
7545 2023-01-13 Dimitrij Mijoski <dmjpp@hotmail.com>
7548 * src/c++11/codecvt.cc (read_utf8_code_point): Correctly detect
7549 errors in incomplete multibyte sequences.
7550 (utf16_in): Remove surrogates parameter. Fix conditions for
7552 (utf16_out): Fix condition for returning partial.
7553 (ucs2_in): Do not pass surrogates argument to utf16_in.
7554 * testsuite/22_locale/codecvt/codecvt_unicode.cc: New test.
7555 * testsuite/22_locale/codecvt/codecvt_unicode.h: New header for
7557 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: New
7560 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
7563 * config/io/c_io_stdio.h (__c_lock): Define as a typedef for
7564 __GTHREAD_LEGACY_MUTEX_T if defined.
7566 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
7569 * config/os/gnu-linux/ldbl-extra.ver (GLIBCXX_LDBL_3.4.31):
7570 Export __try_use_facet specializations for facets in namespace
7572 * config/os/gnu-linux/ldbl-ieee128-extra.ver
7573 (GLIBCXX_IEEE128_3.4.31): Likewise for facets in namespace
7575 * testsuite/util/testsuite_abi.cc: Add to lists of known and
7578 2023-01-13 Jonathan Wakely <jwakely@redhat.com>
7580 * include/bits/std_mutex.h: Remove <system_error> include.
7581 * include/std/condition_variable: Add <bits/error_constants.h>
7583 * include/std/mutex: Likewise.
7584 * include/std/shared_mutex: Likewise.
7586 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
7589 * include/experimental/memory_resource
7590 (_GLIBCXX_MAX_ALIGN_MATCHES_MALLOC): Define.
7591 (do_allocate, do_deallocate): Check it.
7592 * testsuite/experimental/memory_resource/new_delete_resource.cc:
7593 Relax expected behaviour for 64-bit hppa-hp-hpux11.11.
7595 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
7597 * doc/xml/manual/abi.xml: Add latest library versions.
7598 * doc/html/manual/abi.html: Regenerate.
7600 2023-01-12 François Dumont <fdumont@gcc.gnu.org>
7603 * include/bits/stl_tree.h (_Rb_tree<>::_M_insert_range_equal): Remove
7604 unused _Alloc_node instance.
7606 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
7608 * include/bits/atomic_wait.h (__detail::__platform_wait_t):
7609 Define as unsigned long if always lock-free, and unsigned int
7612 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
7614 * src/c++20/tzdb.cc (tzdb_list::_S_init_tzdb): Use __try and
7615 __catch macros for exception handling.
7617 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
7620 * include/bits/stl_algobase.h (__lg): Replace six overloads with
7621 a single function template for all integer types.
7622 * include/bits/stl_algo.h (__merge_adaptive_resize): Cast
7623 arithmetic results back to _Distance.
7625 2023-01-10 Jonathan Wakely <jwakely@redhat.com>
7628 * include/std/span (span::span()): Un-simplify constraint to
7629 work for size_t of lesser rank than int.
7631 2023-01-07 LIU Hao <lh_mouse@126.com>
7633 PR middle-end/108300
7634 * src/c++11/system_error.cc: Define `WIN32_LEAN_AND_MEAN` before
7636 * src/c++11/thread.cc: Likewise.
7637 * src/c++17/fs_ops.cc: Likewise.
7638 * src/filesystem/ops.cc: Likewise.
7640 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
7643 * src/c++20/tzdb.cc (zoneinfo_dir): Add diagnostic pragma.
7645 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
7648 * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): New class
7649 template and partial specialization for synchronizing access to
7650 time_zone::_Impl::infos.
7651 (time_zone::_M_get_sys_info, reload_tzdb): Adjust uses of
7654 2023-01-06 Patrick Palka <ppalka@redhat.com>
7657 * include/bits/utility.h (__cpp_lib_ranges_zip): Define for C++23.
7658 * include/std/ranges (__cpp_lib_ranges_zip): Likewise.
7659 (__cpp_lib_ranges_chunk): Likewise.
7660 (__cpp_lib_ranges_slide): Likewise.
7661 (__cpp_lib_ranges_chunk_by): Likewise.
7662 (__cpp_lib_ranges_join_with): Likewise.
7663 (__cpp_lib_ranges_repeat): Likewise.
7664 (__cpp_lib_ranges_stride): Likewise.
7665 (__cpp_lib_ranges_cartesian_product): Likewise.
7666 (__cpp_lib_ranges_as_rvalue): Likewise.
7667 * include/std/version: Ditto.
7668 * testsuite/20_util/tuple/p2321r2.cc: Verify value of
7670 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: Likewise.
7671 * testsuite/std/ranges/adaptors/chunk/1.cc: Likewise.
7672 * testsuite/std/ranges/adaptors/chunk_by/1.cc: Likewise.
7673 * testsuite/std/ranges/adaptors/join_with/1.cc: Likewise.
7674 * testsuite/std/ranges/adaptors/slide/1.cc: Likewise.
7675 * testsuite/std/ranges/adaptors/stride/1.cc: Likewise.
7676 * testsuite/std/ranges/cartesian_product/1.cc: Likewise.
7677 * testsuite/std/ranges/repeat/1.cc: Likewise.
7678 * testsuite/std/ranges/zip/1.cc: Likewise.
7679 * testsuite/std/ranges/version_c++23.cc: New test.
7681 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
7684 * include/std/bitset (operator>>): Use alloca in the right
7685 scope, not in a constructor.
7686 * testsuite/20_util/bitset/io/input.cc: Check case from PR.
7688 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
7691 * include/std/format (basic_format_arg) [!__cpp_lib_to_chars]:
7692 Disable visiting floating-point types.
7694 2023-01-06 Jonathan Wakely <jwakely@redhat.com>
7697 * include/debug/safe_iterator.h (_Safe_iterator::operator++(int))
7698 (_Safe_iterator::operator--(int)): Do not hold lock around
7699 construction of return value.
7701 2023-01-05 John David Anglin <danglin@gcc.gnu.org>
7703 * config/cpu/hppa/atomicity.h (_PA_LDCW_INSN): Define.
7704 (__exchange_and_add): Use _PA_LDCW_INSN. Use ordered store for
7705 lock release. Revise loop.
7706 (__atomic_add): Likewise.
7708 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
7711 * python/libstdcxx/v6/printers.py (_utc_timezone): New global
7713 (StdChronoTimePointPrinter::to_string): Use it.
7715 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
7718 * include/std/functional (_Bind_front): Add no_unique_address
7719 attribute to data members.
7720 * testsuite/20_util/function_objects/bind_front/107784.cc: Check
7721 size of call wrappers with empty types for targets and bound
7724 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
7727 * src/c++20/tzdb.cc (chrono::current_zone()): Check for zone
7728 using only last component of the name.
7730 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
7734 * config/abi/pre/gnu.ver: Move zoneinfo_dir_override export to
7735 the latest symbol version.
7736 * src/c++20/tzdb.cc (USE_ATOMIC_SHARED_PTR): Define to 0 if
7737 atomic<_Node*> is not always lock free.
7738 (USE_ATOMIC_LIST_HEAD): New macro.
7739 [__hpux__] (__gnu_cxx::zoneinfo_dir_override()): Provide
7740 definition of weak symbol.
7741 (tzdb_list::_Node::_S_head): Rename to _S_head_cache.
7742 (tzdb_list::_Node::_S_list_head): New function for accessing
7743 list head efficiently.
7744 (tzdb_list::_Node::_S_cache_list_head): New function for
7745 updating _S_list_head.
7747 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
7750 * include/std/chrono (hh_mm_ss): Do not use chrono::abs if
7751 duration rep is unsigned.
7752 * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep.
7754 2023-01-04 Iain Sandoe <iain@sandoe.co.uk>
7757 * config/abi/pre/gnu.ver (GLIBCXX_3.4):
7758 Add __gnu_cxx::zoneinfo_dir_override().
7760 2023-01-04 Jonathan Wakely <jwakely@redhat.com>
7763 * include/std/array (__array_traits<T, 0>::operator T*()): Add
7765 * testsuite/23_containers/array/element_access/constexpr_c++17.cc: Check
7766 std::array<T, 0>::data().
7769 Copyright (C) 2023 Free Software Foundation, Inc.
7771 Copying and distribution of this file, with or without modification,
7772 are permitted in any medium without royalty provided the copyright
7773 notice and this notice are preserved.