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