1 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
3 * testsuite/std/ranges/adaptors/join_with/1.cc: Remove unused
5 (test04): Remove constexpr for old std::string ABI and test at
8 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
10 * include/std/type_traits (remove_cv): Use __remove_cv built-in.
11 (remove_reference): Use __remove_reference built-in.
12 (remove_cvref): Use __remove_cvref built-in. Remove inheritance
13 for fallback implementation.
15 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
17 * include/bits/random.h (__is_seed_seq): Replace with ...
18 (_If_seed_seq_for): ... this.
19 * include/ext/random: Adjust to use _If_seed_seq_for.
21 2022-10-04 Patrick Palka <ppalka@redhat.com>
23 * include/std/ranges (join_with_view::_Iterator::operator*):
24 Replace use of std::visit with manual visitation.
25 (join_with_view::_Iterator::operator++): Likewise.
26 (join_with_view::_Iterator::operator--): Likewise.
27 (join_with_view::_Iterator::iter_move): Likewise.
28 (join_with_view::_Iterator::iter_swap): Likewise.
30 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
32 * testsuite/25_algorithms/stable_sort/mem_check.cc: Do nto run
35 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
38 * include/std/coroutine: Remove all _GLIBCXXHOSTED preprocessor
41 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
44 * include/c_global/cstdint [!_GLIBCXX_HOSTED]: Include
45 <stdint-gcc.h> directly.
47 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
50 * include/bits/functexcept.h [!_GLIBCXX_HOSTED]
51 (__throw_invalid_argument, __throw_out_of_range)
52 (__throw_out_of_range_fmt, __throw_runtime_error)
53 (__throw_overflow_error): Define inline.
54 * include/std/bitset (_M_copy_from_ptr) [!_GLIBCXX_HOSTED]:
55 Replace __builtin_abort with __throw_invalid_argument.
57 2022-10-04 Patrick Palka <ppalka@redhat.com>
59 * include/std/ranges: Include <variant> for C++23.
60 (__detail::__compatible_joinable_ranges): Define.
61 (__detail::__bidirectional_common): Define.
62 (join_with_view): Define.
63 (join_with_view::_Iterator): Define.
64 (join_with_view::_Sentinel): Define.
65 (views::__detail::__can_join_with_view): Define.
66 (views::_JoinWith, views::join_with): Define.
67 * testsuite/std/ranges/adaptors/join_with/1.cc: New test.
69 2022-10-04 Arsen Arsenović <arsen@aarsen.me>
71 * include/std/iostream: Use ///< for inline documentation.
72 * include/std/limits: Likewise.
73 * include/experimental/internet: Likewise.
75 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
77 * doc/xml/manual/status_cxx2020.xml: Update C++20 status.
78 * doc/html/manual/status.html: Regenerate.
80 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
83 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc:
85 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
86 * testsuite/18_support/new_nothrow.cc: Likewise.
87 * testsuite/20_util/allocator/105975.cc: Likewise.
88 * testsuite/20_util/allocator/14176.cc: Likewise.
89 * testsuite/20_util/allocator/64135.cc: Likewise.
90 * testsuite/20_util/allocator/89510.cc: Likewise.
91 * testsuite/20_util/allocator/lwg3190.cc: Likewise.
92 * testsuite/20_util/allocator/overaligned.cc: Likewise.
93 * testsuite/20_util/allocator/rebind_c++20.cc: Likewise.
94 * testsuite/20_util/allocator/requirements/constexpr.cc:
96 * testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc:
98 * testsuite/20_util/allocator/requirements/typedefs.cc:
100 * testsuite/20_util/allocator/requirements/typedefs_c++20.cc:
102 * testsuite/20_util/allocator/void.cc: Likewise.
103 * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
104 * testsuite/20_util/allocator_traits/header.cc: Likewise.
105 * testsuite/20_util/allocator_traits/members/92878_92947.cc:
107 * testsuite/20_util/allocator_traits/members/pointers.cc:
109 * testsuite/20_util/allocator_traits/requirements/typedefs.cc:
111 * testsuite/20_util/bad_function_call/cons_virtual_derivation.cc:
113 * testsuite/20_util/bind/42593.cc: Likewise.
114 * testsuite/20_util/bitset/access/dr396.cc: Likewise.
115 * testsuite/20_util/bitset/access/to_string.cc: Likewise.
116 * testsuite/20_util/bitset/cons/16020.cc: Likewise.
117 * testsuite/20_util/bitset/cons/dr1325-2.cc: Likewise.
118 * testsuite/20_util/bitset/cons/dr396.cc: Likewise.
119 * testsuite/20_util/bitset/debug/invalidation/1.cc: Likewise.
120 * testsuite/20_util/bitset/ext/15361.cc: Likewise.
121 * testsuite/20_util/bitset/operations/13838.cc: Likewise.
122 * testsuite/20_util/bitset/operations/96303.cc: Likewise.
123 * testsuite/20_util/bitset/version.cc: Likewise.
124 * testsuite/20_util/enable_shared_from_this/56383.cc: Likewise.
125 * testsuite/20_util/enable_shared_from_this/89303.cc: Likewise.
126 * testsuite/20_util/enable_shared_from_this/members/assign.cc:
128 * testsuite/20_util/enable_shared_from_this/members/const.cc:
130 * testsuite/20_util/enable_shared_from_this/members/reinit.cc:
132 * testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc:
134 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
136 * testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc:
138 * testsuite/20_util/forward/1.cc: Likewise.
139 * testsuite/20_util/forward/1_neg.cc: Likewise.
140 * testsuite/20_util/function/1.cc: Likewise.
141 * testsuite/20_util/function/10.cc: Likewise.
142 * testsuite/20_util/function/2.cc: Likewise.
143 * testsuite/20_util/function/3.cc: Likewise.
144 * testsuite/20_util/function/4.cc: Likewise.
145 * testsuite/20_util/function/43397.cc: Likewise.
146 * testsuite/20_util/function/48541.cc: Likewise.
147 * testsuite/20_util/function/5.cc: Likewise.
148 * testsuite/20_util/function/58569.cc: Likewise.
149 * testsuite/20_util/function/6.cc: Likewise.
150 * testsuite/20_util/function/60594.cc: Likewise.
151 * testsuite/20_util/function/65760.cc: Likewise.
152 * testsuite/20_util/function/69222.cc: Likewise.
153 * testsuite/20_util/function/7.cc: Likewise.
154 * testsuite/20_util/function/77322.cc: Likewise.
155 * testsuite/20_util/function/8.cc: Likewise.
156 * testsuite/20_util/function/9.cc: Likewise.
157 * testsuite/20_util/function/91456.cc: Likewise.
158 * testsuite/20_util/function/assign/move.cc: Likewise.
159 * testsuite/20_util/function/assign/move_target.cc: Likewise.
160 * testsuite/20_util/function/cmp/cmp_neg.cc: Likewise.
161 * testsuite/20_util/function/cons/55320.cc: Likewise.
162 * testsuite/20_util/function/cons/57465.cc: Likewise.
163 * testsuite/20_util/function/cons/72820.cc: Likewise.
164 * testsuite/20_util/function/cons/addressof.cc: Likewise.
165 * testsuite/20_util/function/cons/callable.cc: Likewise.
166 * testsuite/20_util/function/cons/deduction.cc: Likewise.
167 * testsuite/20_util/function/cons/lwg2774.cc: Likewise.
168 * testsuite/20_util/function/cons/move.cc: Likewise.
169 * testsuite/20_util/function/cons/move_target.cc: Likewise.
170 * testsuite/20_util/function/cons/noexcept.cc: Likewise.
171 * testsuite/20_util/function/cons/non_copyconstructible.cc:
173 * testsuite/20_util/function/cons/refqual.cc: Likewise.
174 * testsuite/20_util/function/cons/70692.cc: Likewise.
175 * testsuite/20_util/function/cons/deduction_c++23.cc: Likewise.
176 * testsuite/20_util/function/invoke/forwarding.cc: Likewise.
177 * testsuite/20_util/function/invoke/move_only.cc: Likewise.
178 * testsuite/20_util/function/null_pointer_comparisons.cc:
180 * testsuite/20_util/function/requirements/explicit_instantiation.cc:
182 * testsuite/20_util/function/target_no_rtti.cc: Likewise.
183 * testsuite/20_util/function_objects/83607.cc: Likewise.
184 * testsuite/20_util/function_objects/mem_fn/adl.cc: Likewise.
185 * testsuite/20_util/headers/cstdlib/functions_std.cc: Likewise.
186 * testsuite/20_util/headers/functional/types_std_c++0x.cc:
188 * testsuite/20_util/headers/memory/types_std_c++0x.cc: Likewise.
189 * testsuite/20_util/is_function/35637.cc: Likewise.
190 * testsuite/20_util/move/1.cc: Likewise.
191 * testsuite/20_util/move_only_function/call.cc: Likewise.
192 * testsuite/20_util/move_only_function/cons.cc: Likewise.
193 * testsuite/20_util/move_only_function/move.cc: Likewise.
194 * testsuite/20_util/move_only_function/version.cc: Likewise.
195 * testsuite/20_util/owner_less/cmp.cc: Likewise.
196 * testsuite/20_util/owner_less/noexcept.cc: Likewise.
197 * testsuite/20_util/owner_less/void.cc: Likewise.
198 * testsuite/20_util/pointer_safety/1.cc: Likewise.
199 * testsuite/20_util/scoped_allocator/65279.cc: Likewise.
200 * testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise.
201 * testsuite/20_util/scoped_allocator/construct_pair.cc:
203 * testsuite/20_util/scoped_allocator/dr2586.cc: Likewise.
204 * testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc:
206 * testsuite/20_util/shared_ptr/assign/assign.cc: Likewise.
207 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
208 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
209 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
211 * testsuite/20_util/shared_ptr/assign/dr541.cc: Likewise.
212 * testsuite/20_util/shared_ptr/assign/move.cc: Likewise.
213 * testsuite/20_util/shared_ptr/assign/sfinae.cc: Likewise.
214 * testsuite/20_util/shared_ptr/assign/shared_ptr.cc: Likewise.
215 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc:
217 * testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc:
219 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc:
221 * testsuite/20_util/shared_ptr/atomic/1.cc: Likewise.
222 * testsuite/20_util/shared_ptr/atomic/2.cc: Likewise.
223 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
224 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
225 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
226 * testsuite/20_util/shared_ptr/comparison/42925.cc: Likewise.
227 * testsuite/20_util/shared_ptr/comparison/86537.cc: Likewise.
228 * testsuite/20_util/shared_ptr/comparison/cmp.cc: Likewise.
229 * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc:
231 * testsuite/20_util/shared_ptr/comparison/dr1401.cc: Likewise.
232 * testsuite/20_util/shared_ptr/comparison/less.cc: Likewise.
233 * testsuite/20_util/shared_ptr/cons/39405.cc: Likewise.
234 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
235 * testsuite/20_util/shared_ptr/cons/46910.cc: Likewise.
236 * testsuite/20_util/shared_ptr/cons/51365.cc: Likewise.
237 * testsuite/20_util/shared_ptr/cons/52924.cc: Likewise.
238 * testsuite/20_util/shared_ptr/cons/55123.cc: Likewise.
239 * testsuite/20_util/shared_ptr/cons/58659.cc: Likewise.
240 * testsuite/20_util/shared_ptr/cons/58839.cc: Likewise.
241 * testsuite/20_util/shared_ptr/cons/61036.cc: Likewise.
242 * testsuite/20_util/shared_ptr/cons/79467.cc: Likewise.
243 * testsuite/20_util/shared_ptr/cons/80229.cc: Likewise.
244 * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Likewise.
245 * testsuite/20_util/shared_ptr/cons/alias.cc: Likewise.
246 * testsuite/20_util/shared_ptr/cons/array.cc: Likewise.
247 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
248 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
249 * testsuite/20_util/shared_ptr/cons/copy.cc: Likewise.
250 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
251 * testsuite/20_util/shared_ptr/cons/default.cc: Likewise.
252 * testsuite/20_util/shared_ptr/cons/lwg2802.cc: Likewise.
253 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: Likewise.
254 * testsuite/20_util/shared_ptr/cons/move.cc: Likewise.
255 * testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc:
257 * testsuite/20_util/shared_ptr/cons/nullptr.cc: Likewise.
258 * testsuite/20_util/shared_ptr/cons/pointer.cc: Likewise.
259 * testsuite/20_util/shared_ptr/cons/unique_ptr.cc: Likewise.
260 * testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc:
262 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc:
264 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc:
266 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
268 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
269 * testsuite/20_util/shared_ptr/cons/weak_ptr.cc: Likewise.
270 * testsuite/20_util/shared_ptr/creation/36949.cc: Likewise.
271 * testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc:
273 * testsuite/20_util/shared_ptr/creation/58594.cc: Likewise.
274 * testsuite/20_util/shared_ptr/creation/87278.cc: Likewise.
275 * testsuite/20_util/shared_ptr/creation/92878_92947.cc:
277 * testsuite/20_util/shared_ptr/creation/99006.cc: Likewise.
278 * testsuite/20_util/shared_ptr/creation/dr402.cc: Likewise.
279 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
280 * testsuite/20_util/shared_ptr/creation/make.cc: Likewise.
281 * testsuite/20_util/shared_ptr/creation/no_rtti.cc: Likewise.
282 * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
283 * testsuite/20_util/shared_ptr/creation/private.cc: Likewise.
284 * testsuite/20_util/shared_ptr/creation/single_allocation.cc:
286 * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
288 * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
289 * testsuite/20_util/shared_ptr/dest/dest.cc: Likewise.
290 * testsuite/20_util/shared_ptr/hash/1.cc: Likewise.
291 * testsuite/20_util/shared_ptr/misc/24595.cc: Likewise.
292 * testsuite/20_util/shared_ptr/misc/42019.cc: Likewise.
293 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
294 * testsuite/20_util/shared_ptr/misc/swap.cc: Likewise.
295 * testsuite/20_util/shared_ptr/modifiers/reset.cc: Likewise.
296 * testsuite/20_util/shared_ptr/modifiers/reset_neg.cc: Likewise.
297 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc:
299 * testsuite/20_util/shared_ptr/modifiers/swap.cc: Likewise.
300 * testsuite/20_util/shared_ptr/modifiers/swap_neg.cc: Likewise.
301 * testsuite/20_util/shared_ptr/observers/array.cc: Likewise.
302 * testsuite/20_util/shared_ptr/observers/bool_conv.cc: Likewise.
303 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
304 * testsuite/20_util/shared_ptr/observers/owner_before.cc:
306 * testsuite/20_util/shared_ptr/observers/unique.cc: Likewise.
307 * testsuite/20_util/shared_ptr/observers/use_count.cc: Likewise.
308 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc:
310 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc:
312 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
314 * testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
316 * testsuite/20_util/temporary_buffer.cc: Likewise.
317 * testsuite/20_util/tuple/48476.cc: Likewise.
318 * testsuite/20_util/tuple/cons/90700.cc: Likewise.
319 * testsuite/20_util/tuple/cons/96803.cc: Likewise.
320 * testsuite/20_util/tuple/cons/allocator_with_any.cc: Likewise.
321 * testsuite/20_util/tuple/cons/allocators.cc: Likewise.
322 * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
324 * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
325 * testsuite/20_util/tuple/p2321r2.cc: Likewise.
326 * testsuite/20_util/unique_ptr/creation/92878_92947.cc:
328 * testsuite/20_util/unique_ptr/creation/array.cc: Likewise.
329 * testsuite/20_util/unique_ptr/creation/array_neg.cc: Likewise.
330 * testsuite/20_util/unique_ptr/creation/constexpr.cc: Likewise.
331 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
333 * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc:
335 * testsuite/20_util/unique_ptr/creation/single.cc: Likewise.
336 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
337 * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise.
338 * testsuite/20_util/uses_allocator/uninitialized_construct.cc:
340 * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.
341 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
342 * testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc:
344 * testsuite/20_util/weak_ptr/lock/1.cc: Likewise.
345 * testsuite/20_util/weak_ptr/observers/owner_before.cc:
347 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc:
349 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc:
351 * testsuite/21_strings/basic_string/version.cc: Likewise.
352 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
354 * testsuite/21_strings/c_strings/char/69626.cc: Likewise.
355 * testsuite/21_strings/char_traits/requirements/version.cc:
357 * testsuite/23_containers/vector/requirements/version.cc:
359 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
361 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
363 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
365 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
367 * testsuite/24_iterators/istreambuf_iterator/92285.cc: Likewise.
368 * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc:
370 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
372 * testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc:
374 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
376 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
378 * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
379 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
380 * testsuite/25_algorithms/headers/cstdlib/functions_std.cc:
382 * testsuite/25_algorithms/inplace_merge/1.cc: Likewise.
383 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
385 * testsuite/25_algorithms/make_heap/movable.cc: Likewise.
386 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
387 * testsuite/25_algorithms/random_shuffle/1.cc: Likewise.
388 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
389 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
391 * testsuite/25_algorithms/sort/35588.cc: Likewise.
392 * testsuite/25_algorithms/stable_partition/1.cc: Likewise.
393 * testsuite/25_algorithms/stable_partition/constrained.cc:
395 * testsuite/25_algorithms/stable_partition/mem_check.cc:
397 * testsuite/25_algorithms/stable_partition/moveable.cc:
399 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
401 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
403 * testsuite/25_algorithms/stable_sort/1.cc: Likewise.
404 * testsuite/26_numerics/complex/2.cc: Likewise.
405 * testsuite/26_numerics/headers/cstdlib/13943.cc: Likewise.
406 * testsuite/26_numerics/headers/cstdlib/2190.cc: Likewise.
407 * testsuite/26_numerics/headers/cstdlib/60401.cc: Likewise.
408 * testsuite/26_numerics/headers/cstdlib/dr2192.cc: Likewise.
409 * testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc: Likewise.
410 * testsuite/26_numerics/headers/cstdlib/dr2735.cc: Likewise.
411 * testsuite/26_numerics/headers/cstdlib/functions_std.cc:
413 * testsuite/26_numerics/headers/cstdlib/macros.cc: Likewise.
414 * testsuite/26_numerics/headers/cstdlib/types_std.cc: Likewise.
415 * testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc:
417 * testsuite/26_numerics/lerp/version.cc: Likewise.
418 * testsuite/26_numerics/midpoint/version.cc: Likewise.
419 * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
420 * testsuite/27_io/basic_syncstream/2.cc: Likewise.
421 * testsuite/27_io/fpos/14320-1.cc: Likewise.
422 * testsuite/27_io/fpos/14320-2.cc: Likewise.
423 * testsuite/27_io/fpos/14320-3.cc: Likewise.
424 * testsuite/27_io/fpos/14320-4.cc: Likewise.
425 * testsuite/27_io/spanstream/version.cc: Likewise.
426 * testsuite/29_atomics/atomic/lwg3220.cc: Likewise.
427 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
428 * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
429 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Likewise.
430 * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
431 * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
432 * testsuite/30_threads/barrier/2.cc: Likewise.
433 * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
435 * testsuite/30_threads/jthread/version.cc: Likewise.
436 * testsuite/30_threads/latch/2.cc: Likewise.
437 * testsuite/30_threads/semaphore/2.cc: Likewise.
438 * testsuite/30_threads/stop_token/2.cc: Likewise.
439 * testsuite/abi/pr42230.cc: Likewise.
440 * testsuite/ext/shared_ptr/1.cc: Likewise.
441 * testsuite/libstdc++-xmethods/shared_ptr.cc: Likewise.
442 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
443 * testsuite/std/ranges/adaptors/p1739.cc: Likewise.
444 * testsuite/std/ranges/iota/lwg3292_neg.cc: Likewise.
445 * testsuite/std/ranges/p2325.cc: Likewise.
447 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
449 * include/std/bitset (bitset(const C*, size_type n, C, C))
450 [!_GLIBCXX_HOSTED]: Remove std::basic_string dependency.
451 (_M_copy_from_ptr) [!_GLIBCXX_HOSTED]: Abort instead of
454 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
457 * include/std/bitset [!_GLIBCXX_HOSTED]: Re-enable std::hash.
458 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Require ET
460 * testsuite/20_util/bitset/ext/constexpr.cc: Likewise.
462 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
465 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
467 (check_effective_target_hosted): New proc.
469 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
470 Jonathan Wakely <jwakely@redhat.com>
473 * testsuite/17_intro/headers/c++1998/stdc++.cc [!__STDC_HOSTED__]:
474 Do not include C headers that aren't valid for freestanding.
475 * testsuite/17_intro/tag_type_explicit_ctor.cc [!__STDC_HOSTED__]:
476 Do not test tag types that aren't defined for freestanding.
477 * testsuite/18_support/headers/cstdlib/functions_std.cc: Do not
478 check for std::getenv and std::system for freestanding.
479 * testsuite/17_intro/using_namespace_std_exp_neg.cc [!__STDC_HOSTED__]:
480 Do not test hosted parts of the standard library.
481 * testsuite/17_intro/using_namespace_std_tr1_neg.cc [!__STDC_HOSTED__]:
483 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc [!__STDC_HOSTED__]:
485 * testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc [!HOSTED]:
487 * testsuite/20_util/headers/bitset/synopsis.cc [!__STDC_HOSTED__]: Likewise.
488 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc [!__STDC_HOSTED__]:
490 * testsuite/20_util/pointer_traits/requirements/typedefs.cc [!__STDC_HOSTED__]:
492 * testsuite/20_util/tuple/cons/deduction.cc [!__STDC_HOSTED__]: Likewise.
493 * testsuite/25_algorithms/move/93872.cc [!__STDC_HOSTED__]: Likewise.
494 * testsuite/std/ranges/adaptors/100577.cc [!__STDC_HOSTED__]: Likewise.
496 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
499 * include/Makefile.am [!_GLIBCXX_HOSTED]: Remove
500 install-freestanding-headers, unifying it with the usual
502 * include/Makefile.in: Regenerate.
504 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
505 Jonathan Wakely <jwakely@redhat.com>
508 * include/Makefile.am: Add new header.
509 * include/Makefile.in: Regenerate.
510 * include/bits/requires_hosted.h: New header.
511 * include/experimental/algorithm: Include
512 <bits/requires_hosted.h>.
513 * include/experimental/any: Likewise.
514 * include/experimental/array: Likewise.
515 * include/experimental/buffer: Likewise.
516 * include/experimental/chrono: Likewise.
517 * include/experimental/deque: Likewise.
518 * include/experimental/executor: Likewise.
519 * include/experimental/filesystem: Likewise.
520 * include/experimental/forward_list: Likewise.
521 * include/experimental/functional: Likewise.
522 * include/experimental/internet: Likewise.
523 * include/experimental/io_context: Likewise.
524 * include/experimental/iterator: Likewise.
525 * include/experimental/list: Likewise.
526 * include/experimental/map: Likewise.
527 * include/experimental/memory: Likewise.
528 * include/experimental/memory_resource: Likewise.
529 * include/experimental/net: Likewise.
530 * include/experimental/netfwd: Likewise.
531 * include/experimental/numeric: Likewise.
532 * include/experimental/optional: Likewise.
533 * include/experimental/propagate_const: Likewise.
534 * include/experimental/random: Likewise.
535 * include/experimental/ratio: Likewise.
536 * include/experimental/regex: Likewise.
537 * include/experimental/scope: Likewise.
538 * include/experimental/set: Likewise.
539 * include/experimental/simd: Likewise.
540 * include/experimental/socket: Likewise.
541 * include/experimental/source_location: Likewise.
542 * include/experimental/string: Likewise.
543 * include/experimental/string_view: Likewise.
544 * include/experimental/system_error: Likewise.
545 * include/experimental/timer: Likewise.
546 * include/experimental/tuple: Likewise.
547 * include/experimental/unordered_map: Likewise.
548 * include/experimental/unordered_set: Likewise.
549 * include/experimental/utility: Likewise.
550 * include/experimental/vector: Likewise.
551 * include/std/barrier: Likewise.
552 * include/std/chrono: Likewise.
553 * include/std/condition_variable: Likewise.
554 * include/std/deque: Likewise.
555 * include/std/execution: Likewise.
556 * include/std/filesystem: Likewise.
557 * include/std/forward_list: Likewise.
558 * include/std/fstream: Likewise.
559 * include/std/future: Likewise.
560 * include/std/iomanip: Likewise.
561 * include/std/ios: Likewise.
562 * include/std/iosfwd: Likewise.
563 * include/std/iostream: Likewise.
564 * include/std/istream: Likewise.
565 * include/std/latch: Likewise.
566 * include/std/list: Likewise.
567 * include/std/locale: Likewise.
568 * include/std/map: Likewise.
569 * include/std/memory_resource: Likewise.
570 * include/std/mutex: Likewise.
571 * include/std/ostream: Likewise.
572 * include/std/queue: Likewise.
573 * include/std/random: Likewise.
574 * include/std/regex: Likewise.
575 * include/std/semaphore: Likewise.
576 * include/std/set: Likewise.
577 * include/std/shared_mutex: Likewise.
578 * include/std/spanstream: Likewise.
579 * include/std/sstream: Likewise.
580 * include/std/stack: Likewise.
581 * include/std/stacktrace: Likewise.
582 * include/std/stop_token: Likewise.
583 * include/std/streambuf: Likewise.
584 * include/std/string: Likewise.
585 * include/std/syncstream: Likewise.
586 * include/std/system_error: Likewise.
587 * include/std/thread: Likewise.
588 * include/std/unordered_map: Likewise.
589 * include/std/unordered_set: Likewise.
590 * include/std/valarray: Likewise.
591 * include/std/vector: Likewise.
592 * include/tr1/array: Likewise.
593 * include/tr1/ccomplex: Likewise.
594 * include/tr1/cctype: Likewise.
595 * include/tr1/cfenv: Likewise.
596 * include/tr1/cfloat: Likewise.
597 * include/tr1/cinttypes: Likewise.
598 * include/tr1/climits: Likewise.
599 * include/tr1/cmath: Likewise.
600 * include/tr1/complex: Likewise.
601 * include/tr1/complex.h: Likewise.
602 * include/tr1/cstdarg: Likewise.
603 * include/tr1/cstdbool: Likewise.
604 * include/tr1/cstdint: Likewise.
605 * include/tr1/cstdio: Likewise.
606 * include/tr1/cstdlib: Likewise.
607 * include/tr1/ctgmath: Likewise.
608 * include/tr1/ctime: Likewise.
609 * include/tr1/ctype.h: Likewise.
610 * include/tr1/cwchar: Likewise.
611 * include/tr1/cwctype: Likewise.
612 * include/tr1/fenv.h: Likewise.
613 * include/tr1/float.h: Likewise.
614 * include/tr1/functional: Likewise.
615 * include/tr1/inttypes.h: Likewise.
616 * include/tr1/limits.h: Likewise.
617 * include/tr1/math.h: Likewise.
618 * include/tr1/memory: Likewise.
619 * include/tr1/random: Likewise.
620 * include/tr1/regex: Likewise.
621 * include/tr1/stdarg.h: Likewise.
622 * include/tr1/stdbool.h: Likewise.
623 * include/tr1/stdint.h: Likewise.
624 * include/tr1/stdio.h: Likewise.
625 * include/tr1/stdlib.h: Likewise.
626 * include/tr1/tgmath.h: Likewise.
627 * include/tr1/tuple: Likewise.
628 * include/tr1/type_traits: Likewise.
629 * include/tr1/unordered_map: Likewise.
630 * include/tr1/unordered_set: Likewise.
631 * include/tr1/utility: Likewise.
632 * include/tr1/wchar.h: Likewise.
633 * include/tr1/wctype.h: Likewise.
634 * include/c_global/cmath: Likewise.
635 * include/ext/algorithm: Include <bits/requires_hosted.h>.
636 * include/ext/bitmap_allocator.h: Likewise.
637 * include/ext/cmath: Likewise.
638 * include/ext/codecvt_specializations.h: Likewise.
639 * include/ext/debug_allocator.h: Likewise.
640 * include/ext/enc_filebuf.h: Likewise.
641 * include/ext/extptr_allocator.h: Likewise.
642 * include/ext/functional: Likewise.
643 * include/ext/malloc_allocator.h: Likewise.
644 * include/ext/memory: Likewise.
645 * include/ext/mt_allocator.h: Likewise.
646 * include/ext/new_allocator.h: Likewise.
647 * include/ext/numeric: Likewise.
648 * include/ext/pod_char_traits.h: Likewise.
649 * include/ext/pool_allocator.h: Likewise.
650 * include/ext/random: Likewise.
651 * include/ext/random.tcc: Likewise.
652 * include/ext/rb_tree: Likewise.
653 * include/ext/rc_string_base.h: Likewise.
654 * include/ext/rope: Likewise.
655 * include/ext/ropeimpl.h: Likewise.
656 * include/ext/slist: Likewise.
657 * include/ext/sso_string_base.h: Likewise.
658 * include/ext/stdio_filebuf.h: Likewise.
659 * include/ext/stdio_sync_filebuf.h: Likewise.
660 * include/ext/string_conversions.h: Likewise.
661 * include/ext/throw_allocator.h: Likewise.
662 * include/ext/vstring.h: Likewise.
663 * include/ext/vstring.tcc: Likewise.
664 * include/ext/vstring_fwd.h: Likewise.
665 * include/ext/vstring_util.h: Likewise.
666 * include/std/charconv: Likewise.
667 (__cpp_lib_to_chars): Do not define for freestanding.
668 * include/std/version: Adjust which macros get defined in
670 * include/ext/pointer.h [!_GLIBCXX_HOSTED]: Omit iostream
671 functionality from freestanding.
672 * include/std/algorithm [!_GLIBCXX_HOSTED]: Omit PSTL algos.
673 * include/std/memory [!_GLIBCXX_HOSTED]: Omit
674 <bits/stl_tempbuf.h> in freestanding
675 * include/bits/algorithmfwd.h [!_GLIBCXX_HOSTED]: Omit leftover
676 random_shuffle and stable_partition definition.
677 * include/bits/stl_algo.h [!_GLIBCXX_HOSTED]: Omit
678 random_shuffle and stable_partition from freestanding.
679 * include/bits/ranges_algo.h [!_GLIBCXX_HOSTED]: Omit
680 stable_partition from freestanding.
681 * include/bits/concept_check.h: Remove needless HOSTED check.
682 * include/std/iterator: Include <bits/ranges_base.h>.
683 * include/std/numeric (__cpp_lib_parallel_algorithms): Do not
684 define for freestanding.
685 * include/std/functional (__cpp_lib_boyer_moore_searcher):
687 * testsuite/lib/prune.exp: Match error for hosted-only libstdc++
690 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
691 Arsen Arsenović <arsen@aarsen.me>
693 * include/precompiled/extc++.h [!_GLIBCXX_HOSTED]: Do not
694 include headers that aren't valid for freestanding.
695 * include/precompiled/stdc++.h [!_GLIBCXX_HOSTED]: Likewise.
697 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
699 * configure.ac: Remove any lines that unconditionally include
700 <stdio.h> from ac_includes_default, when running Autoconf <2.70.
701 * configure: Regenerate.
703 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
706 * acinclude.m4 (GLIBCXX_ENABLE_HOSTED): Define _GLIBCXX_HOSTED
707 to __STDC_HOSTED__ for non-freestanding installations.
708 * configure: Regenerate.
709 * include/Makefile.am (${host_builddir}/c++config.h): Adjust
711 * include/Makefile.in: Regenerate.
712 * testsuite/lib/libstdc++.exp (v3-build_support): Use
714 * testsuite/libstdc++-abi/abi.exp: Likewise.
716 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
718 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
719 Change body of unused operator<< overload to throw if called.
720 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
723 2022-10-03 François Dumont <fdumont@gcc.gnu.org>
725 * python/libstdcxx/v6/printers.py (Printer.add_version): Do not add version
726 namespace for __cxx11 symbols.
727 (add_one_template_type_printer): Likewise.
728 (add_one_type_printer): Likewise.
729 (FilteringTypePrinter._recognizer.recognize): Add a workaround for std::string & al
730 ambiguous typedef matching both std:: and std::__cxx11:: symbols.
731 * testsuite/libstdc++-prettyprinters/cxx17.cc: Remove obsolete
732 \#define _GLIBCXX_USE_CXX11_ABI 0.
733 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. Adapt test to accept
735 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
736 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
737 * testsuite/libstdc++-prettyprinters/80276.cc: Likewise and remove xfail for c++20
739 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
741 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
743 * testsuite/20_util/bitset/access/to_ulong.cc: Construct bitset
744 from binary literal instead of using stringstream.
746 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
748 * include/std/bitset (operator>>): Use a simple buffer instead
749 of std::basic_string.
751 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
753 * include/std/bitset (_M_copy_from_ptr, _M_copy_from_string)
754 (_M_copy_to_string): Change access to private.
755 (_M_copy_from_string(const basic_string&, size_t, size_t)):
757 (_M_copy_to_string(const basic_string&)): Remove.
759 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
761 * testsuite/20_util/bind/ref_neg.cc: Fix dg-prune-output
764 2022-09-30 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
765 Yvan ROUX <yvan.roux@foss.st.com>
767 * testsuite/20_util/bind/ref_neg.cc: Prune Windows paths too.
769 2022-09-30 Arsen Arsenović <arsen@aarsen.me>
771 * include/std/bitset: Include <bits/stl_algobase.h>.
773 2022-09-29 François Dumont <fdumont@gcc.gnu.org>
775 * python/libstdcxx/v6/printers.py (add_one_template_type_printer): Register
776 printer for types in std::__debug namespace with template parameters in std::__8
779 2022-09-29 Patrick Palka <ppalka@redhat.com>
781 * include/bits/unique_ptr.h (unique_ptr<_Tp[], _Dp>): Remove
782 __remove_cv and use __remove_cv_t instead.
784 2022-09-29 Jonathan Wakely <jwakely@redhat.com>
786 * include/std/type_traits (__is_invocable_impl): Check
787 __has_builtin(__reference_converts_from_temporary) before using
790 2022-09-28 Jonathan Wakely <jwakely@redhat.com>
792 * doc/xml/manual/evolution.xml: Document std::bind API
794 * doc/xml/manual/intro.xml: Document LWG 2487 status.
795 * doc/xml/manual/using.xml: Clarify default value of
796 _GLIBCXX_USE_DEPRECATED.
797 * doc/html/*: Regenerate.
798 * include/std/functional (_Bind::operator()(Args&&...) volatile)
799 (_Bind::operator()(Args&&...) const volatile)
800 (_Bind_result::operator()(Args&&...) volatile)
801 (_Bind_result::operator()(Args&&...) const volatile): Replace
802 with deleted overload for C++20 and later.
803 * testsuite/20_util/bind/cv_quals.cc: Check for deprecated
805 * testsuite/20_util/bind/cv_quals_2.cc: Likewise, and check for
808 2022-09-28 Jonathan Wakely <jwakely@redhat.com>
811 * include/bits/invoke.h [__cplusplus < 201703] (__invoke_r):
812 Remove is_invocable and is_convertible constraints.
813 * include/std/type_traits (__is_invocable_impl::_S_conv): Use
814 non-deduced context for parameter.
815 (__is_invocable_impl::_S_test): Remove _Check_noex template
816 parameter and use deduced noexcept value in its place. Add bool
817 parameter to detect dangling references.
818 (__is_invocable_impl::type): Adjust call to _S_test to avoid
819 deducing unnecessary noexcept property..
820 (__is_invocable_impl::__nothrow_type): Rename to ...
821 (__is_invocable_impl::__nothrow_conv): ... this. Adjust call
822 to _S_test to deduce noexcept property.
823 * testsuite/20_util/bind/dangling_ref.cc: New test.
824 * testsuite/20_util/function/cons/70692.cc: New test.
825 * testsuite/20_util/function_objects/invoke/dangling_ref.cc:
827 * testsuite/20_util/is_invocable/dangling_ref.cc: New test.
828 * testsuite/30_threads/packaged_task/cons/dangling_ref.cc:
831 2022-09-27 Jonathan Wakely <jwakely@redhat.com>
834 * testsuite/20_util/is_convertible/requirements/access.cc: New
837 2022-09-27 Jonathan Wakely <jwakely@redhat.com>
840 * include/bits/std_function.h (__function_guide_t): New alias
842 [__cpp_static_call_operator] (__function_guide_static_helper):
844 (function): Use __function_guide_t in deduction guide.
845 * include/std/future (packaged_task): Use __function_guide_t in
847 * testsuite/20_util/function/cons/deduction_c++23.cc: New test.
848 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
851 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
853 * include/bits/ptr_traits.h (__ptr_traits_elem) [__cpp_concepts]:
854 Also define the __ptr_traits_elem class template for the
856 (pointer_traits<Ptr>): Remove constrained partial
858 * testsuite/20_util/pointer_traits/lwg3545.cc: Check for
859 ambiguitiy with program-defined partial specialization.
861 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
863 * include/std/type_traits (is_convertible, is_convertible_v):
864 Define using new built-in.
865 (is_nothrow_convertible is_nothrow_convertible_v): Likewise.
867 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
870 * include/std/bitset (_Base_bitset::_M_do_reset): Use
871 preprocessor conditional around non-C++03 code.
872 * testsuite/20_util/bitset/107037.cc: New test.
874 2022-09-24 Jonathan Wakely <jwakely@redhat.com>
876 * include/bits/alloc_traits.h (allocator_traits::is_always_equal):
877 Only instantiate is_empty if needed.
878 * include/bits/ptr_traits.h (__ptr_traits_impl::difference_type)
879 (__ptr_traits_impl::rebind): Use __detected_or.
880 * include/experimental/type_traits (is_same_v): Add a partial
881 specialization instead of instantiating the std::is_same class
883 (detected_t): Redefine in terms of detected_or_t.
884 (is_detected, is_detected_v): Redefine in terms of detected_t.
885 * include/std/type_traits [__cpp_concepts] (__detected_or): Add
886 new definition using concepts.
887 (__detector::value_t): Rename to __is_detected.
888 * testsuite/17_intro/names.cc: Check value_t isn't used.
890 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
892 * testsuite/20_util/is_assignable/requirements/access.cc:
895 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
898 * include/std/type_traits (__is_nothrow_invocable_lib): Remove.
899 (__is_invocable_impl::__nothrow_type): New member type which
900 checks if the conversion can throw.
901 (__is_nt_invocable_impl): Replace class template with alias
902 template to __is_nt_invocable_impl::__nothrow_type.
903 * testsuite/20_util/is_nothrow_invocable/91456.cc: New test.
904 * testsuite/20_util/is_nothrow_convertible/value.cc: Remove
905 macro used by value_ext.cc test.
906 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Remove
907 test for non-standard __is_nothrow_invocable_lib trait.
909 2022-09-23 Marek Polacek <polacek@redhat.com>
912 * include/std/type_traits: Rename __is_nothrow_convertible to
913 __is_nothrow_convertible_lib.
914 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Likewise.
916 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
918 * include/std/bitset (operator>>): Do not copy for N==0.
919 * testsuite/20_util/bitset/io/input.cc: Add comment.
921 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
923 * include/debug/bitset (__debug::bitset): Add constexpr to all
925 (operator&, operator|, operator^): Add inline and constexpr.
926 (operator>>, operator<<): Add inline.
927 * testsuite/20_util/bitset/access/constexpr.cc: Only check using
928 constexpr std::string for the cxx11 ABI.
929 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
930 * testsuite/20_util/headers/bitset/synopsis.cc: Check constexpr
933 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
935 * include/std/bitset (bitset::_M_copy_to_string): Find set bits
936 instead of iterating over individual bits.
938 2022-09-22 Jonathan Wakely <jwakely@redhat.com>
940 * include/std/bitset (bitset): Add constexpr for C++23. Guard
941 members using std::string with _GLIBCXX_HOSTED.
942 * include/std/version (__cpp_lib_constexpr_bitset): Define.
943 * testsuite/20_util/bitset/access/constexpr.cc: New test.
944 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: New test.
945 * testsuite/20_util/bitset/count/constexpr.cc: New test.
946 * testsuite/20_util/bitset/ext/constexpr.cc: New test.
947 * testsuite/20_util/bitset/operations/constexpr_c++23.cc: New test.
948 * testsuite/20_util/bitset/version.cc: New test.
950 2022-09-22 Jonathan Wakely <jwakely@redhat.com>
952 * testsuite/23_containers/bitset/18604.cc: Moved to...
953 * testsuite/20_util/bitset/18604.cc: ...here.
954 * testsuite/23_containers/bitset/45713.cc: Moved to...
955 * testsuite/20_util/bitset/45713.cc: ...here.
956 * testsuite/23_containers/bitset/to_string/dr396.cc: Moved to...
957 * testsuite/20_util/bitset/access/dr396.cc: ...here.
958 * testsuite/23_containers/bitset/to_string/1.cc: Moved to...
959 * testsuite/20_util/bitset/access/to_string.cc: ...here.
960 * testsuite/23_containers/bitset/to_ullong/1.cc: Moved to...
961 * testsuite/20_util/bitset/access/to_ullong.cc: ...here.
962 * testsuite/23_containers/bitset/to_ulong/1.cc: Moved to...
963 * testsuite/20_util/bitset/access/to_ulong.cc: ...here.
964 * testsuite/23_containers/bitset/cons/1.cc: Moved to...
965 * testsuite/20_util/bitset/cons/1.cc: ...here.
966 * testsuite/23_containers/bitset/cons/16020.cc: Moved to...
967 * testsuite/20_util/bitset/cons/16020.cc: ...here.
968 * testsuite/23_containers/bitset/cons/2.cc: Moved to...
969 * testsuite/20_util/bitset/cons/2.cc: ...here.
970 * testsuite/23_containers/bitset/cons/3.cc: Moved to...
971 * testsuite/20_util/bitset/cons/3.cc: ...here.
972 * testsuite/23_containers/bitset/cons/38244.cc: Moved to...
973 * testsuite/20_util/bitset/cons/38244.cc: ...here.
974 * testsuite/23_containers/bitset/cons/50268.cc: Moved to...
975 * testsuite/20_util/bitset/cons/50268.cc: ...here.
976 * testsuite/23_containers/bitset/cons/6282.cc: Moved to...
977 * testsuite/20_util/bitset/cons/6282.cc: ...here.
978 * testsuite/23_containers/bitset/cons/constexpr.cc: Moved to...
979 * testsuite/20_util/bitset/cons/constexpr.cc: ...here.
980 * testsuite/23_containers/bitset/cons/dr1325-1.cc: Moved to...
981 * testsuite/20_util/bitset/cons/dr1325-1.cc: ...here.
982 * testsuite/23_containers/bitset/cons/dr1325-2.cc: Moved to...
983 * testsuite/20_util/bitset/cons/dr1325-2.cc: ...here.
984 * testsuite/23_containers/bitset/cons/dr396.cc: Moved to...
985 * testsuite/20_util/bitset/cons/dr396.cc: ...here.
986 * testsuite/23_containers/bitset/debug/invalidation/1.cc: Moved to...
987 * testsuite/20_util/bitset/debug/invalidation/1.cc: ...here.
988 * testsuite/23_containers/bitset/ext/15361.cc: Moved to...
989 * testsuite/20_util/bitset/ext/15361.cc: ...here.
990 * testsuite/23_containers/bitset/hash/1.cc: Moved to...
991 * testsuite/20_util/bitset/hash/1.cc: ...here.
992 * testsuite/23_containers/bitset/input/1.cc: Moved to...
993 * testsuite/20_util/bitset/io/input.cc: ...here.
994 * testsuite/23_containers/bitset/count/6124.cc: Moved to...
995 * testsuite/20_util/bitset/observers/6124.cc: ...here.
996 * testsuite/23_containers/bitset/all/1.cc: Moved to...
997 * testsuite/20_util/bitset/observers/all.cc: ...here.
998 * testsuite/23_containers/bitset/test/1.cc: Moved to...
999 * testsuite/20_util/bitset/observers/test.cc: ...here.
1000 * testsuite/23_containers/bitset/operations/1.cc: Moved to...
1001 * testsuite/20_util/bitset/operations/1.cc: ...here.
1002 * testsuite/23_containers/bitset/operations/13838.cc: Moved to...
1003 * testsuite/20_util/bitset/operations/13838.cc: ...here.
1004 * testsuite/23_containers/bitset/operations/2.cc: Moved to...
1005 * testsuite/20_util/bitset/operations/2.cc: ...here.
1006 * testsuite/23_containers/bitset/operations/96303.cc: Moved to...
1007 * testsuite/20_util/bitset/operations/96303.cc: ...here.
1008 * testsuite/23_containers/bitset/operations/constexpr-2.cc: Moved to...
1009 * testsuite/20_util/bitset/operations/constexpr-2.cc: ...here.
1010 * testsuite/23_containers/bitset/operations/constexpr.cc: Moved to...
1011 * testsuite/20_util/bitset/operations/constexpr.cc: ...here.
1012 * testsuite/23_containers/bitset/requirements/constexpr_functions.cc: Moved to...
1013 * testsuite/20_util/bitset/requirements/constexpr_functions.cc: ...here.
1014 * testsuite/23_containers/bitset/requirements/explicit_instantiation/1.cc: Moved to...
1015 * testsuite/20_util/bitset/requirements/explicit_instantiation/1.cc: ...here.
1016 * testsuite/23_containers/bitset/requirements/explicit_instantiation/1_c++0x.cc: Moved to...
1017 * testsuite/20_util/bitset/requirements/explicit_instantiation/1_c++0x.cc: ...here.
1018 * testsuite/23_containers/headers/bitset/synopsis.cc: Moved to...
1019 * testsuite/20_util/headers/bitset/synopsis.cc: ...here.
1021 2022-09-22 François Dumont <fdumont@gcc.gnu.org>
1023 * python/libstdcxx/v6/printers.py: Remove ptinter registration for non-existing
1024 types std::__debug::unique_ptr, std::__debug::stack, std::__debug::queue,
1025 std::__debug::priority_queue.
1027 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1030 * testsuite/20_util/function/91456.cc: Add comment with PR
1032 * testsuite/20_util/is_invocable/91456.cc: Likewise. Replace
1033 std::function checks with std::is_invocable_r checks.
1035 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1037 * testsuite/17_intro/headers/c++1998/all_attributes.cc: Remove
1038 unnecessary main function.
1039 * testsuite/17_intro/headers/c++2011/all_attributes.cc:
1041 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
1043 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
1045 * testsuite/17_intro/headers/c++2020/all_attributes.cc:
1048 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1050 * testsuite/20_util/headers/memory/synopsis.cc: Add declarations
1051 from C++11 and later.
1053 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1055 * doc/xml/manual/documentation_hacking.xml: Remove trailing
1057 * doc/xml/manual/policy_data_structures.xml: Likewise.
1059 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1061 * include/c_compatibility/stdlib.h [!_GLIBCXX_HOSTED]: Add
1062 using-declaration for _Exit.
1064 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1066 * testsuite/18_support/uncaught_exception/14026.cc: Qualify
1069 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1071 * include/bits/ranges_base.h: Include <initializer_list>.
1073 2022-09-20 Jonathan Wakely <jwakely@redhat.com>
1075 * include/c_global/cstdlib [!_GLIBCXX_HOSTED] (quick_exit): Fix
1078 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1081 * include/backward/auto_ptr.h [!_GLIBCXX_HOSTED]: Do not define
1083 * include/bits/alloc_traits.h [!_GLIBCXX_HOSTED]: Do not declare
1084 std::allocator_traits<std::allocator<T>> specializations for
1086 * include/bits/memoryfwd.h [!_GLIBCXX_HOSTED] (allocator): Do
1087 not declare for freestanding.
1088 * include/bits/stl_algo.h [!_GLIBCXX_HOSTED] (stable_partition):
1089 Do not define for freestanding.
1090 [!_GLIBCXX_HOSTED] (merge, stable_sort): Do not use temporary
1091 buffers for freestanding.
1092 * include/bits/stl_algobase.h [!_GLIBCXX_HOSTED]: Do not declare
1093 streambuf iterators and overloaded algorithms using them.
1094 * include/bits/stl_uninitialized.h [!_GLIBCXX_HOSTED]: Do not
1095 define specialized overloads for std::allocator.
1096 * include/bits/unique_ptr.h [!_GLIBCXX_HOSTED] (make_unique)
1097 (make_unique_for_overwrite, operator<<): Do not define for
1099 * include/c_global/cstdlib [!_GLIBCXX_HOSTED] (_Exit): Declare.
1100 Use _GLIBCXX_NOTHROW instead of throw().
1101 * include/debug/assertions.h [!_GLIBCXX_HOSTED]: Ignore
1102 _GLIBCXX_DEBUG for freestanding.
1103 * include/debug/debug.h [!_GLIBCXX_DEBUG]: Likewise.
1104 * include/std/bit [!_GLIBCXX_HOSTED]: Do not use the custom
1105 __int_traits if <ext/numeric_traits.h> is available.
1106 * include/std/functional [!_GLIBCXX_HOSTED]: Do not include
1107 headers that aren't valid for freestanding.
1108 (boyer_moore_searcher, boyer_moore_horspool_searcher): Do not
1109 define for freestanding.
1110 * include/std/iterator [!_GLIBCXX_HOSTED]: Do not include
1111 headers that aren't valid for freestanding.
1112 * include/std/memory [!_GLIBCXX_HOSTED]: Likewise.
1113 * include/std/ranges [!_GLIBCXX_HOSTED] (istream_view): Do not
1114 define for freestanding.
1115 (views::__detail::__is_basic_string_view) [!_GLIBCXX_HOSTED]:
1116 Do not define partial specialization for freestanding.
1118 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1120 * include/bits/alloc_traits.h (__alloc_swap)
1121 (__shrink_to_fit_aux): Move here, from ...
1122 * include/bits/allocator.h: ... here.
1123 * include/ext/alloc_traits.h: Do not include allocator.h.
1125 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1127 * include/bits/stl_algo.h: Include <bits/stl_algobase.h>.
1128 * include/bits/stl_tempbuf.h: Include headers for __try and
1129 __catch macros, std::pair, and __gnu_cxx::__numeric_traits.
1130 * include/bits/stream_iterator.h: Include <iosfwd> and headers
1131 for std::addressof and std::iterator.
1132 * include/bits/streambuf_iterator.h: Include header for
1134 * include/std/iterator: Do not include <iosfwd>.
1136 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1138 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
1139 Store value with non-zero padding bits after construction.
1141 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1143 * include/tr1/random.h (__detail::_Adaptor::_BEngine): Remove.
1144 (__detail::_Adaptor::_M_g): Make public.
1145 (__detail::_Adaptor<_Engine*, _Dist>): Remove partial
1147 (variate_generate::_Value): New helper to simplify handling of
1148 _Engine* and _Engine& template arguments.
1149 (variate_generate::engine_value_type): Define to underlying
1150 engine type, not adapted type.
1151 (variate_generate::engine()): Return underlying engine instead
1153 * testsuite/tr1/5_numerical_facilities/random/variate_generator/37986.cc:
1155 * testsuite/tr1/5_numerical_facilities/random/variate_generator/requirements/typedefs.cc:
1156 Check member typedefs have the correct types.
1158 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1160 * include/debug/formatter.h [_GLIBCXX_DEBUG_BACKTRACE]
1161 (_Error_formatter): Use 0 as null pointer constant.
1163 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1165 * include/bits/allocator.h (__alloc_neq): Remove.
1166 * include/bits/stl_list.h (list::_M_check_equal_allocators):
1167 Compare allocators directly, without __alloc_neq.
1169 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1171 * doc/doxygen/user.cfg.in (PREDEFINED): Remove __allocator_base.
1172 * include/bits/allocator.h: Fix nesting of Doxygen commands.
1174 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1176 * doc/xml/manual/abi.xml: Document GLIBCXX_3.4.30 and
1177 GLIBCXX_3.4.31 versions.
1178 * doc/html/manual/abi.html: Regenerate.
1180 2022-09-15 Jonathan Wakely <jwakely@redhat.com>
1182 * include/std/memory: Do not include <bits/stl_algobase.h>.
1184 2022-09-15 Jonathan Wakely <jwakely@redhat.com>
1186 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_PRE_LOCK):
1188 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK): ... this, add try_lock flag.
1189 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK_FAILED): New macro using
1190 try_lock_failed flag
1191 (_GLIBCXX_TSAN_MUTEX_POST_LOCK): Rename to ...
1192 (_GLIBCXX_TSAN_MUTEX_LOCKED): ... this.
1193 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK): Remove invalid flag.
1194 (_GLIBCXX_TSAN_MUTEX_POST_UNLOCK): Remove invalid flag.
1195 (_Sp_atomic::_Atomic_count::lock): Use new macros.
1197 2022-09-15 Patrick Palka <ppalka@redhat.com>
1199 * include/bits/ranges_algo.h (__adjacent_find_fn, adjacent_find):
1201 * include/bits/ranges_util.h: ... here.
1202 * include/std/ranges (chunk_by_view): Define.
1203 (chunk_by_view::_Iterator): Define.
1204 (__detail::__can_chunk_by_view): Define.
1205 (_ChunkBy, chunk_by): Define.
1206 * testsuite/std/ranges/adaptors/chunk_by/1.cc: New test.
1208 2022-09-15 François Dumont <fdumont@gcc.gnu.org>
1210 * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
1211 Adapt dg-prune-output to _GLIBCXX_INLINE_VERSION mode.
1213 2022-09-15 François Dumont <fdumont@gcc.gnu.org>
1215 * config/abi/pre/gnu-versioned-namespace.ver: Remove obsolete std::__detail::__8
1218 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1220 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_DESTROY)
1221 (_GLIBCXX_TSAN_MUTEX_PRE_LOCK, _GLIBCXX_TSAN_MUTEX_POST_LOCK)
1222 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK, _GLIBCXX_TSAN_MUTEX_POST_UNLOCK)
1223 (_GLIBCXX_TSAN_MUTEX_PRE_SIGNAL, _GLIBCXX_TSAN_MUTEX_POST_SIGNAL):
1224 Define macros for TSan annotation functions.
1225 (_Sp_atomic::_Atomic_count): Add annotations.
1227 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1229 * include/bits/stl_tempbuf.h: Include <new>.
1231 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1233 * testsuite/17_intro/names.cc: Explain why poison pragma can't
1236 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1238 * include/std/future
1239 (_State_baseV2::__setter(exception_ptr&, promise&)): Add
1240 assertion for LWG 2276 precondition.
1241 * testsuite/30_threads/promise/members/set_exception_neg.cc:
1244 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1246 * doc/xml/manual/intro.xml: Document LWG 1203.
1247 * doc/html/*: Regenerate.
1249 2022-09-14 Philipp Fent <fent@in.tum.de>
1251 * python/libstdcxx/v6/printers.py (access_streambuf_ptrs):
1252 New helper function.
1253 (StdStringBufPrinter, StdStringStreamPrinter): New printers.
1254 (build_libstdcxx_dictionary): Register stringstream printers.
1255 * testsuite/libstdc++-prettyprinters/debug.cc: Check string
1257 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
1258 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1260 2022-09-13 Patrick Palka <ppalka@redhat.com>
1262 * include/std/ranges (__detail::__slide_caches_nothing): Define.
1263 (__detail::__slide_caches_last): Define.
1264 (__detail::__slide_caches_first): Define.
1265 (slide_view): Define.
1266 (enable_borrowed_range<slide_view>): Define.
1267 (slide_view::_Iterator): Define.
1268 (slide_view::_Sentinel): Define.
1269 (views::__detail::__can_slide_view): Define.
1270 (views::_Slide, views::slide): Define.
1271 * testsuite/std/ranges/adaptors/slide/1.cc: New test.
1273 2022-09-13 Patrick Palka <ppalka@redhat.com>
1275 * include/std/ranges (__detail::__div_ceil): Define.
1276 (chunk_view): Define.
1277 (chunk_view::_OuterIter): Define.
1278 (chunk_view::_OuterIter::value_type): Define.
1279 (chunk_view::_InnerIter): Define.
1280 (chunk_view<_Vp>): Define partial specialization for forward
1282 (enable_borrowed_range<chunk_view>): Define.
1283 (chunk_view<_Vp>::_Iterator): Define.
1284 (views::__detail::__can_chunk_view): Define.
1285 (views::_Chunk, views::chunk): Define.
1286 * testsuite/std/ranges/adaptors/chunk/1.cc: New test.
1288 2022-09-13 Patrick Palka <ppalka@redhat.com>
1290 * include/std/ranges (join_view::_Iterator::_M_satisfy):
1291 Adjust resetting _M_inner as per LWG 3569.
1292 (join_view::_Iterator::_M_inner): Wrap in std::optional
1294 (join_view::_Iterator::_Iterator): Relax constraints as
1296 (join_view::_Iterator::operator*): Adjust as per LWG 3569.
1297 (join_view::_Iterator::operator->): Likewise.
1298 (join_view::_Iterator::operator++): Likewise.
1299 (join_view::_Iterator::operator--): Likewise.
1300 (join_view::_Iterator::iter_move): Likewise.
1301 (join_view::_Iterator::iter_swap): Likewise.
1302 * testsuite/std/ranges/adaptors/join.cc (test14): New test.
1304 2022-09-13 Patrick Palka <ppalka@redhat.com>
1306 * include/debug/safe_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
1307 Add parentheses to avoid -Wparentheses warning.
1309 2022-09-12 Patrick Palka <ppalka@redhat.com>
1312 * testsuite/std/ranges/adaptors/join.cc (test13): New test.
1314 2022-09-12 Jonathan Wakely <jwakely@redhat.com>
1316 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Fix
1318 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
1321 2022-09-12 Jakub Jelinek <jakub@redhat.com>
1323 PR tree-optimization/105329
1324 * acinclude.m4 (libtool_VERSION): Change to 6:31:0.
1325 * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Don't export
1326 std::basic_string methods with name length of 15.
1327 (GLIBCXX_3.4.31): Export std::basic_string::_M_replace_cold.
1328 * testsuite/util/testsuite_abi.cc (check_version): Handle
1330 * include/bits/basic_string.h (std::basic_string::_M_replace_cold):
1332 * include/bits/basic_string.tcc (std::basic_string::_M_replace_cold):
1333 Define and export even for C++20.
1334 (std::basic_string::_M_replace): Use __builtin_expect, outline
1335 the overlapping case to _M_replace_cold.
1336 * configure: Regenerated.
1338 2022-09-09 Jonathan Wakely <jwakely@redhat.com>
1340 * include/bits/atomic_base.h (__atomic_impl::__compare_exchange):
1341 Rename __weak to __is_weak.
1342 * testsuite/17_intro/names.cc: Add __weak and __strong.
1344 2022-09-09 Patrick Palka <ppalka@redhat.com>
1347 * include/std/ranges (views::_ZipTransform::operator()): Correct
1348 return type in the empty case.
1349 (views::_AdjacentTransform::operator()): Likewise.
1351 2022-09-09 Patrick Palka <ppalka@redhat.com>
1354 * include/std/ranges (adjacent_view::_Iterator::_Iterator): Fix
1356 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): New test.
1358 2022-09-09 Patrick Palka <ppalka@redhat.com>
1361 * include/std/ranges (zip_view::_Iterator::operator-): Use
1362 __to_unsigned_like instead of make_unsigned_t.
1363 (zip_view::_Sentinel::operator-): Likewise.
1364 * testsuite/std/ranges/zip/1.cc (test04): New test.
1366 2022-09-08 François Dumont <fdumont@gcc.gnu.org>
1368 * testsuite/util/testsuite_performance.h (__gnu_test::MallocInfo): New.
1369 (__gnu_test::malloc_info): New, replace mallinfo on current platform
1370 supporting it and use mallinfo2 when glibc >= 2.33.
1372 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
1375 * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
1376 Prune additional errors from front-end.
1377 * testsuite/20_util/is_move_constructible/incomplete_neg.cc:
1379 * testsuite/20_util/is_nothrow_swappable/incomplete_neg.cc:
1381 * testsuite/20_util/is_nothrow_swappable_with/incomplete_neg.cc:
1383 * testsuite/20_util/is_swappable_with/incomplete_neg.cc:
1386 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
1388 * include/c_global/cstddef (byte): Add always_inline attribute
1389 to all operator overloads.
1390 (to_integer): Add always_inline attribute.
1392 2022-09-08 Thomas Rodgers <trodgers@redhat.com>
1393 Jakub Jelinek <jakub@redhat.com>
1394 Jonathan Wakely <jwakely@redhat.com>
1396 * include/bits/atomic_base.h (__atomic_impl::__maybe_has_padding):
1398 (__atomic_impl::clear_padding): Likewise.
1399 (__atomic_impl::__compare_exchange): Likewise.
1400 (__atomic_impl::compare_exchange_weak): Delegate to
1402 (__atomic_impl::compare_exchange_strong): Likewise.
1403 * include/std/atomic (atomic<T>::atomic(T)): Clear padding when
1404 possible in a constexpr function.
1405 (atomic::store): Clear padding.
1406 (atomic::exchange): Likewise.
1407 (atomic::compare_exchange_weak): Use __compare_exchange.
1408 (atomic::compare_exchange_strong): Likewise.
1409 * testsuite/29_atomics/atomic/compare_exchange_padding.cc: New
1411 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
1414 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
1416 * include/std/system_error (__adl_only::make_error_code): Add
1418 (__adl_only::make_error_condition): Likewise.
1419 (error_code::error_code(ErrorCodeEnum)): Add using-declaration
1420 for deleted function.
1421 (error_condition::error_condition(ErrorConditionEnum)):
1423 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: New test.
1424 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc: New test.
1426 2022-09-07 Jonathan Wakely <jwakely@redhat.com>
1428 * include/std/barrier: Add missing runtime exception.
1430 2022-09-07 Patrick Palka <ppalka@redhat.com>
1432 * include/std/type_traits (is_reference): Make the primary
1433 template derive from false_type. Define two partial
1434 specializations that derive from true_type.
1436 2022-09-07 Patrick Palka <ppalka@redhat.com>
1438 * include/std/type_traits (__is_void_helper): Remove.
1439 (is_void): Make the primary template derive from false_type,
1440 and define four explicit specializations that derive from
1442 (__is_null_pointer_helper, is_null_pointer): Likewise.
1444 2022-09-07 Jason Merrill <jason@redhat.com>
1446 * libsupc++/dyncast.cc (__dynamic_cast): Avoid virtual function
1447 call in simple success case.
1449 2022-09-06 Philipp Fent <fent@in.tum.de>
1451 * testsuite/libstdc++-prettyprinters/48362.cc: Fix expected
1453 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
1455 2022-09-05 Jonathan Wakely <jwakely@redhat.com>
1457 * include/std/type_traits (__success_type, __failure_type): Move
1458 definitions later in the file.
1460 2022-09-05 Jonathan Wakely <jwakely@redhat.com>
1462 * include/std/type_traits (is_trivial_v, is_trivially_copyable_v)
1463 (is_standard_layout_v, is_pod_v, is_literal_type_v): Use
1464 built-in instead of class template.
1465 (is_same_v): Add partial specialization for true case.
1467 2022-09-02 Patrick Palka <ppalka@redhat.com>
1469 * include/std/tuple (tuple::_UseOtherCtor): Use ::type when
1470 deriving from __and_, __or_ or __not_.
1471 * include/std/type_traits (negation): Likewise.
1472 (is_unsigned): Likewise.
1473 (__is_implicitly_default_constructible): Likewise.
1474 (is_trivially_destructible): Likewise.
1475 (__is_nt_invocable_impl): Likewise.
1477 2022-09-02 Jonathan Wakely <jwakely@redhat.com>
1479 * include/std/type_traits (is_constructible_v)
1480 (is_default_constructible_v, is_copy_constructible_v)
1481 (is_move_constructible_v): Define using __is_constructible.
1482 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v):
1483 Define using __is_assignable.
1484 (is_trivially_constructible_v)
1485 (is_trivially_default_constructible_v)
1486 (is_trivially_copy_constructible_v)
1487 (is_trivially_move_constructible_v): Define using
1488 __is_trivially_constructible.
1489 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
1490 (is_trivially_move_assignable_v): Define using
1491 __is_trivially_assignable.
1492 (is_nothrow_constructible_v)
1493 (is_nothrow_default_constructible_v)
1494 (is_nothrow_copy_constructible_v)
1495 (is_nothrow_move_constructible_v): Define using
1496 __is_nothrow_constructible.
1497 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
1498 (is_nothrow_move_assignable_v): Define using
1499 __is_nothrow_assignable.
1501 2022-09-02 Patrick Palka <ppalka@redhat.com>
1503 * include/std/type_traits (__or_, __and_, __not_): Redefine as a
1504 class template instead of as an alias template.
1505 * testsuite/20_util/logical_traits/requirements/short_circuit.cc:
1506 Add more tests for conjunction and disjunction. Add corresponding
1507 tests for __and_ and __or_.
1509 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1511 * include/std/ranges (adjacent_transform_view::_Iterator): Add
1512 typename keyword before dependent qualified-id.
1514 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1516 * include/std/type_traits (__is_referenceable): Remove.
1517 (__add_lvalue_reference_helper, __add_rvalue_reference_helper):
1518 Use __void_t instead of __is_referenceable.
1519 (__add_pointer_helper): Likewise.
1520 (add_pointer): Add partial specializations for reference types.
1522 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1524 * include/std/type_traits (__is_constructible_impl): Replace
1525 class template with alias template.
1526 (is_default_constructible, is_nothrow_constructible)
1527 (is_nothrow_constructible): Simplify base-specifier.
1528 (__is_copy_constructible_impl, __is_move_constructible_impl)
1529 (__is_nothrow_copy_constructible_impl)
1530 (__is_nothrow_move_constructible_impl): Remove class templates.
1531 (is_copy_constructible, is_move_constructible)
1532 (is_nothrow_constructible, is_nothrow_default_constructible)
1533 (is_nothrow_copy_constructible, is_nothrow_move_constructible):
1534 Adjust base-specifiers to use __is_constructible_impl.
1535 (__is_copy_assignable_impl, __is_move_assignable_impl)
1536 (__is_nt_copy_assignable_impl, __is_nt_move_assignable_impl):
1537 Remove class templates.
1538 (__is_assignable_impl): New alias template.
1539 (is_assignable, is_copy_assignable, is_move_assignable):
1540 Adjust base-specifiers to use new alias template.
1541 (is_nothrow_copy_assignable, is_nothrow_move_assignable):
1542 Adjust base-specifiers to use existing alias template.
1543 (__is_trivially_constructible_impl): New alias template.
1544 (is_trivially_constructible, is_trivially_default_constructible)
1545 (is_trivially_copy_constructible)
1546 (is_trivially_move_constructible): Adjust base-specifiers to use
1548 (__is_trivially_assignable_impl): New alias template.
1549 (is_trivially_assignable, is_trivially_copy_assignable)
1550 (is_trivially_move_assignable): Adjust base-specifier to use
1552 (__add_lval_ref_t, __add_rval_ref_t): New alias templates.
1553 (add_lvalue_reference, add_rvalue_reference): Use new alias
1556 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1558 * include/std/type_traits (__decay_selector): Add partial
1559 specializations for array types. Only check for function types
1560 when not dealing with an array.
1561 (decay): Add partial specializations for reference types.
1563 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1565 * include/std/type_traits (is_lvalue_reference_v)
1566 (is_rvalue_reference_v, is_reference_v, is_const_v)
1567 (is_volatile_v): Define using partial specializations instead
1568 of instantiating class templates.
1570 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1572 * include/std/type_traits (is_enum_v, is_class_v, is_union_v)
1573 (is_empty_v, is_polymoprhic_v, is_abstract_v, is_final_v)
1574 (is_base_of_v, is_aggregate_v): Use built-in directly instead of
1575 instantiating class template.
1577 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1579 * include/std/type_traits (is_scoped_enum): Remove workaround.
1581 2022-09-01 Patrick Palka <ppalka@redhat.com>
1583 * include/std/ranges (__detail::__unarize): Define.
1584 (adjacent_view::_Iterator): Befriend adjacent_transform_view.
1585 (adjacent_transform_view): Define.
1586 (adjacent_transform_view::_Iterator): Define.
1587 (adjacent_transform_view::_Sentinel): Define.
1588 (views::__detail::__can_adjacent_transform_view): Define.
1589 (views::_AdjacentTransform): Define.
1590 (views::adjacent_transform): Define.
1591 (views::pairwise_transform): Define.
1592 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: New test.
1594 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1596 * include/std/type_traits (__is_array_known_bounds): Add partial
1597 specialization instead of using std::extent.
1598 (__is_array_unknown_bounds): Likewise.
1599 (extent): Add partial specializations to stop recursion after
1600 the result is found.
1601 (is_array_v): Add partial specializations instead of
1602 instantiating the class template.
1603 (rank_v, extent_v): Likewise.
1604 (is_bounded_array_v, is_unbounded_array_v): Likewise.
1605 (is_bounded_array, is_unbounded_array): Define in terms of the
1608 2022-08-31 Patrick Palka <ppalka@redhat.com>
1610 * include/bits/ranges_base.h (__advance_fn::operator()): Add
1611 parentheses in assert condition to avoid -Wparentheses warning.
1612 * include/std/ranges: (take_view::take_view): Uglify 'base'.
1613 (take_while_view::take_while_view): Likewise.
1614 (elements_view::elements_view): Likewise.
1615 (views::_Zip::operator()): Adjust position of [[nodiscard]] for
1616 compatibility with -fconcepts-ts.
1617 (zip_transform_view::_Sentinel): Uglify 'OtherConst'.
1618 (views::_ZipTransform::operator()): Adjust position of
1619 [[nodiscard]] for compatibilty with -fconcepts-ts.
1621 2022-08-31 Martin Liska <mliska@suse.cz>
1623 * configure: Regenerate.
1624 * crossconfig.m4: Remove deprecated ports.
1626 2022-08-31 François Dumont <fdumont@gcc.gnu.org>
1628 * include/debug/debug.h: Use nullptr rather than '0' in checks in post-C++11.
1629 * include/debug/string: Likewise.
1630 * testsuite/21_strings/basic_string/operations/ends_with/char.cc: Use __gnu_test::string.
1631 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc: Likewise.
1632 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc: Likewise.
1633 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc: Likewise.
1634 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc: Likewise.
1635 * testsuite/21_strings/basic_string/operations/starts_with/char.cc: Likewise..
1637 2022-08-31 Patrick Palka <ppalka@redhat.com>
1639 * include/std/ranges (adjacent_view): Define.
1640 (enable_borrowed_range<adjacent_view>): Define.
1641 (__detail::__repeated_tuple): Define.
1642 (adjacent_view::_Iterator): Define.
1643 (adjacent_view::_Sentinel): Define.
1644 (views::__detail::__can_adjacent_view): Define.
1645 (views::_Adjacent): Define.
1646 (views::adjacent): Define.
1647 (views::pairwise): Define.
1648 * testsuite/std/ranges/adaptors/adjacent/1.cc: New test.
1650 2022-08-31 François Dumont <fdumont@gcc.gnu.org>
1652 * include/debug/formatter.h
1653 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_state): Declare.
1654 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_create_state): Declare.
1655 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_callback): Define.
1656 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_error_callback): Define.
1657 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_func): Define.
1658 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full): Declare.
1659 [_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_state): New.
1660 [_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_full): New.
1661 * src/c++11/debug.cc [_GLIBCXX_HAVE_STACKTRACE](print_backtrace): New.
1662 (_Error_formatter::_M_error()): Adapt.
1663 * src/libbacktrace/Makefile.am: Add backtrace.c.
1664 * src/libbacktrace/Makefile.in: Regenerate.
1665 * src/libbacktrace/backtrace-rename.h (backtrace_full): New.
1666 * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc: New test.
1667 * doc/xml/manual/debug_mode.xml: Document _GLIBCXX_DEBUG_BACKTRACE.
1668 * doc/xml/manual/using.xml: Likewise.
1670 2022-08-31 Patrick Palka <ppalka@redhat.com>
1672 * testsuite/20_util/logical_traits/requirements/short_circuit.cc: New test.
1674 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
1676 * include/bits/refwrap.h (reference_wrapper::operator()): Add
1677 noexcept-specifier and use __invoke_result instead of result_of.
1678 * testsuite/20_util/reference_wrapper/invoke-noexcept.cc: New test.
1680 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
1682 * testsuite/20_util/reference_wrapper/invoke-2.cc: Improve
1684 * testsuite/20_util/reference_wrapper/invoke-3.cc: Likewise.
1685 * testsuite/20_util/reference_wrapper/invoke.cc: Likewise.
1687 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
1689 * include/bits/basic_string.h (basic_string): Add nodiscard
1690 attribute to all relevant functions.
1691 * include/std/string_view (basic_string_view): Likewise.
1692 * testsuite/21_strings/basic_string/capacity/1.cc: Cast unused
1694 * testsuite/21_strings/basic_string/capacity/char/1.cc:
1696 * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc:
1698 * testsuite/21_strings/basic_string/cons/char/self_move.cc:
1700 * testsuite/21_strings/basic_string/element_access/char/1.cc:
1702 * testsuite/21_strings/basic_string/element_access/char/21674.cc:
1704 * testsuite/21_strings/basic_string/element_access/wchar_t/1.cc:
1706 * testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc:
1708 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
1709 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
1710 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc:
1711 Add -Wno-unused-result to options.
1712 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc:
1714 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc:
1716 * testsuite/21_strings/basic_string/operators/char/1.cc: Cast
1717 unused results to void.
1718 * testsuite/21_strings/basic_string/operators/wchar_t/1.cc:
1720 * testsuite/21_strings/basic_string_view/capacity/1.cc:
1722 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
1724 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
1726 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
1728 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
1730 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc:
1732 Add -Wno-unused-result to options.
1733 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc:
1735 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc:
1737 * testsuite/27_io/basic_stringbuf/sputbackc/char/1.cc: Cast
1738 unused results to void.
1739 * testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc:
1741 * testsuite/27_io/basic_stringbuf/sungetc/char/1.cc: Likewise.
1742 * testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc:
1745 2022-08-27 Patrick Palka <ppalka@redhat.com>
1747 * testsuite/20_util/logical_traits/requirements/base_classes.cc: New test.
1749 2022-08-26 Patrick Palka <ppalka@redhat.com>
1751 * include/std/ranges (zip_view::_Iterator::operator<): Remove
1753 (zip_view::_Iterator::operator>): Likewise.
1754 (zip_view::_Iterator::operator<=): Likewise.
1755 (zip_view::_Iterator::operator>=): Likewise.
1756 (zip_view::_Iterator::operator<=>): Remove three_way_comparable
1757 constraint as per LWG 3692.
1758 (zip_transform_view::_Iterator): Ditto as per LWG 3702.
1760 2022-08-26 Patrick Palka <ppalka@redhat.com>
1762 * include/std/ranges (zip_view::_Iterator): Befriend
1764 (__detail::__range_iter_cat): Define.
1765 (zip_transform_view): Define.
1766 (zip_transform_view::_Iterator): Define.
1767 (zip_transform_view::_Sentinel): Define.
1768 (views::__detail::__can_zip_transform_view): Define.
1769 (views::_ZipTransform): Define.
1770 (views::zip_transform): Define.
1771 * testsuite/std/ranges/zip_transform/1.cc: New test.
1773 2022-08-26 Patrick Palka <ppalka@redhat.com>
1775 * include/std/type_traits (enable_if, __enable_if_t): Define them
1777 (__detail::__first_t): Define.
1778 (__detail::__or_fn, __detail::__and_fn): Declare.
1779 (__or_, __and_): Redefine as alias templates in terms of __or_fn
1781 (__not_): Redefine as an alias template.
1782 (__detail::__disjunction_impl, __detail::__conjunction_impl):
1784 (conjuction, disjunction): Redefine in terms of __disjunction_impl
1785 and __conjunction_impl.
1787 2022-08-26 Jonathan Wakely <jwakely@redhat.com>
1789 * include/std/system_error (error_code::_Check): New alias
1790 template for constructor SFINAE constraint.
1791 (error_code::error_code(ErrorCodeEnum)): Use it.
1792 (error_code::operator=(ErrorCodeEnum)): Remove.
1793 (error_condition::_Check): New alias template for constraint.
1794 (error_condition::error_condition(ErrorConditionEnum)): Use it.
1795 (error_condition::operator=(ErrorConditionEnum)): Remove.
1796 * testsuite/19_diagnostics/error_code/cons/1.cc: Check
1797 constructor taking user-defined error enum.
1798 * testsuite/19_diagnostics/error_condition/cons/1.cc: Likewise.
1800 2022-08-26 Jonathan Wakely <jwakely@redhat.com>
1802 * include/bits/basic_string.h (starts_with, ends_with, contains):
1803 Add nonnull attribute.
1804 * include/bits/cow_string.h (starts_with, ends_with, contains):
1806 * include/std/string_view (starts_with, ends_with, contains):
1808 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc
1809 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc
1810 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc
1811 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc
1812 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc
1813 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc
1815 2022-08-25 Patrick Palka <ppalka@redhat.com>
1817 * include/std/ranges (lazy_split_view::_OuterIter::_M_current):
1818 Remove redundant comment.
1819 (lazy_split_view::_M_current): Likewise.
1820 (common_view::common_view): Remove commented out view-converting
1821 constructor as per LWG3405.
1822 (elements_view::_Iterator::_Iterator): Uglify 'current' and 'i'.
1824 2022-08-24 Patrick Palka <ppalka@redhat.com>
1826 * include/bits/ranges_algo.h (__min_fn, min): Move to ...
1827 * include/bits/ranges_util.h: ... here, in order to avoid
1828 including all of ranges_algo.h from <ranges>.
1829 * include/std/ranges (__detail::__zip_is_common): Define for
1830 C++23 as per P2321R2.
1831 (__detail::__tuple_or_pair): Likewise.
1832 (__detail::__tuple_or_pair_t): Likewise.
1833 (__detail::__tuple_transform): Likewise.
1834 (__detail::__tuple_for_each): Likewise.
1835 (zip_view): Likewise.
1836 (enable_borrowed_range<zip_view>): Likewise.
1837 (__detail::__all_random_access): Likewise.
1838 (__detail::__all_bidirectional): Likewise.
1839 (__detail::__all_forward): Likewise.
1840 (__detail::__zip_view_iter_cat): Likewise.
1841 (zip_view::_Iterator): Likewise.
1842 (zip_view::_Sentinel): Likewise.
1843 * testsuite/std/ranges/zip/1.cc: New test.
1845 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
1848 2022-08-24 Will Hawkins <whh8b@obs.cr>
1850 * include/bits/basic_string.h (operator+(const string&, const char*)):
1851 Remove naive implementation.
1852 * include/bits/basic_string.tcc (operator+(const string&, const char*)):
1853 Add single-allocation implementation.
1855 2022-08-24 Patrick Palka <ppalka@redhat.com>
1857 * include/bits/stl_pair.h (pair::swap const): Add non-standard
1858 is_swappable_v constraints.
1859 * include/std/tuple (tuple::swap const): Likewise.
1860 * testsuite/20_util/tuple/cons/noexcept_specs.cc: Correct some
1861 asserts in C++23 mode.
1863 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
1865 * include/bits/stl_algo.h (__stable_sort): Cast size to
1866 iterator's difference type.
1867 * testsuite/25_algorithms/stable_sort/4.cc: New test.
1869 2022-08-24 Will Hawkins <whh8b@obs.cr>
1871 * include/bits/basic_string.h (operator+(const string&, const char*)):
1872 Remove naive implementation.
1873 * include/bits/basic_string.tcc (operator+(const string&, const char*)):
1874 Add single-allocation implementation.
1876 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
1878 * testsuite/20_util/duration_cast/rounding.cc: Check abs with
1879 non-reduced duration.
1881 2022-08-23 Patrick Palka <ppalka@redhat.com>
1883 * include/bits/stl_bvector.h (_Bit_reference::operator=): Define
1884 const overload for C++23 as per P2321R2.
1885 * include/bits/stl_pair.h (pair::swap): Likewise.
1886 (pair::pair): Define additional converting constructors for
1887 C++23 as per P2321R2.
1888 (pair::operator=): Define const overloads for C++23 as per
1890 (swap): Define overload taking const pair& for C++23 as per
1892 (basic_common_reference): Define partial specialization for
1893 pair for C++23 as per P2321R2.
1894 (common_type): Likewise.
1895 * include/bits/uses_allocator_args.h
1896 (uses_allocator_construction_args): Define additional pair
1897 overloads for C++23 as per P2321R2.
1898 * include/std/tuple (_Tuple_impl::_Tuple_impl): Define
1899 additional converting constructors for C++23 as per P2321R2.
1900 (_Tuple_impl::_M_assign): Define const overloads for C++23
1902 (_Tuple_impl::_M_swap): Likewise.
1903 (tuple::__constructible): Define as a convenient renaming of
1904 _TCC<true>::__constructible.
1905 (tuple::__convertible): As above but for _TCC<true>::__convertible.
1906 (tuple::tuple): Define additional converting constructors for
1907 C++23 as per P2321R2.
1908 (tuple::operator=): Define const overloads for C++23 as per
1910 (tuple::swap): Likewise.
1911 (basic_common_reference): Define partial specialization for
1912 tuple for C++23 as per P2321R2.
1913 (common_type): Likewise.
1914 * testsuite/20_util/pair/p2321r2.cc: New test.
1915 * testsuite/20_util/tuple/p2321r2.cc: New test.
1916 * testsuite/23_containers/vector/bool/element_access/1.cc: New test.
1918 2022-08-23 Patrick Palka <ppalka@redhat.com>
1920 * include/std/tuple (_TupleConstraints::__convertible): Define.
1921 (_TupleConstraints::__constructible): Define.
1922 (_TupleConstraints::__is_explicitly_constructible): Redefine this
1923 in terms of __convertible and __constructible.
1924 (_TupleConstraints::__is_implicitly_constructible): Likewise.
1926 2022-08-23 Jonathan Wakely <jwakely@redhat.com>
1929 * include/std/variant (__do_visit): Handle is_void<R> for zero
1931 * testsuite/20_util/variant/visit_r.cc: Check std::visit<void>(v).
1933 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
1936 * doc/xml/manual/using.xml: Document -lstdc++_libbacktrace
1937 requirement for using std::stacktrace. Also adjust -frtti and
1938 -fexceptions to document non-default (i.e. negative) forms.
1939 * doc/html/*: Regenerate.
1941 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
1944 * include/bits/std_thread.h (thread::_State_impl): Forward
1945 individual arguments to _Invoker constructor.
1946 (thread::_Invoker): Add constructor. Delete copies.
1947 * include/std/future (__future_base::_Deferred_state): Forward
1948 individual arguments to _Invoker constructor.
1949 (__future_base::_Async_state_impl): Likewise.
1950 * testsuite/30_threads/async/106695.cc: New test.
1951 * testsuite/30_threads/thread/106695.cc: New test.
1953 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
1956 * include/bits/regex_compiler.tcc (_Compiler::_M_cur_int_value):
1957 Use built-ins to check for integer overflow in back-reference
1959 * testsuite/28_regex/basic_regex/106607.cc: New test.
1961 2022-08-17 Keef Aragon <keef.aragon@konscious.net>
1963 * libsupc++/eh_alloc.cc (pool::free): Inverse comparison.
1965 2022-08-08 François Dumont <fdumont@gcc.gnu.org>
1967 * include/debug/formatter.h (__singular_value_init): New _Iterator_state enum entry.
1968 (_Parameter<>(const _Safe_iterator<>&, const char*, _Is_iterator)): Check if iterator
1969 parameter is value-initialized.
1970 (_Parameter<>(const _Safe_local_iterator<>&, const char*, _Is_iterator)): Likewise.
1971 * include/debug/safe_iterator.h (_Safe_iterator<>::_M_value_initialized()): New. Adapt
1973 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_M_value_initialized()): New.
1975 * src/c++11/debug.cc (_Safe_iterator_base::_M_reset): Do not reset _M_version.
1976 (print_field(PrintContext&, const _Parameter&, const char*)): Adapt state_names.
1977 * testsuite/23_containers/deque/debug/iterator1_neg.cc: New test.
1978 * testsuite/23_containers/deque/debug/iterator2_neg.cc: New test.
1979 * testsuite/23_containers/forward_list/debug/iterator1_neg.cc: New test.
1980 * testsuite/23_containers/forward_list/debug/iterator2_neg.cc: New test.
1981 * testsuite/23_containers/forward_list/debug/iterator3_neg.cc: New test.
1983 2022-08-05 Jonathan Wakely <jwakely@redhat.com>
1985 * include/experimental/scope (__cpp_lib_experimental_scope):
1987 * testsuite/experimental/scopeguard/uniqueres.cc: Check macro.
1989 2022-08-05 Jonathan Wakely <jwakely@redhat.com>
1991 * include/Makefile.am: Add new header.
1992 * include/Makefile.in: Regenerate.
1993 * include/experimental/scope: New file.
1994 * testsuite/experimental/scopeguard/uniqueres.cc: New test.
1995 * testsuite/experimental/scopeguard/exit.cc: New test.
1997 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
1999 * include/std/string_view (basic_string_view(Range&&)): Add
2000 explicit as per P2499R0.
2001 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
2002 Adjust implicit conversions. Check implicit conversions fail.
2003 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
2006 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2008 * include/bits/fs_dir.h (directory_iterator): Add comparison
2009 with std::default_sentinel_t. Remove redundant operator!= for
2011 * (recursive_directory_iterator): Likewise.
2012 * include/bits/iterator_concepts.h [!__cpp_lib_concepts]
2013 (default_sentinel_t, default_sentinel): Define even if concepts
2015 * include/bits/regex.h (regex_iterator): Add comparison with
2016 std::default_sentinel_t. Remove redundant operator!= for C++20.
2017 (regex_token_iterator): Likewise.
2018 (regex_token_iterator::_M_end_of_seq()): Add noexcept.
2019 * testsuite/27_io/filesystem/iterators/lwg3719.cc: New test.
2020 * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
2022 * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
2025 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2027 * include/std/expected (unexpected::_M_val): Rename to _M_unex.
2028 (bad_expected_access::_M_val): Likewise.
2030 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2032 * include/bits/ios_base.h (__cpp_lib_ios_noreplace): Update
2034 * include/std/version (__cpp_lib_ios_noreplace): Likewise.
2035 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: Check
2037 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
2040 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2043 * include/bits/atomic_wait.h (__waiter_pool_base::_M_notify):
2044 Move increment of _M_ver here.
2045 [!_GLIBCXX_HAVE_PLATFORM_WAIT]: Lock mutex around increment.
2046 Use relaxed memory order and always notify all waiters.
2047 (__waiter_base::_M_do_wait) [!_GLIBCXX_HAVE_PLATFORM_WAIT]:
2048 Check value again after locking mutex.
2049 (__waiter_base::_M_notify): Remove increment of _M_ver.
2051 2022-08-04 Ulrich Drepper <drepper@gmail.com>
2053 * python/libstdcxx/v6/printers.py (class StdTuplePrinter): Use
2054 zero-based indeces just like std:get takes.
2056 2022-07-29 Jonathan Wakely <jwakely@redhat.com>
2059 * include/bits/stl_iterator.h (common_iterator::operator->):
2060 Change return type to just auto.
2062 2022-07-26 Thomas Rodgers <trodgers@redhat.com>
2064 * include/bits/atomic_wait.h (__atomic_spin): Merge spin loops.
2066 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
2069 * include/bits/stl_iterator.h (common_iterator): Define
2070 destructor, copy constructor and move constructor as trivial
2071 when the underlying types allow.
2072 * testsuite/24_iterators/common_iterator/100823.cc: Check
2073 triviality of special members.
2075 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
2078 * include/bits/stl_iterator.h (common_iterator): Define move
2079 constructor and move assignment operator.
2080 (common_iterator::_M_assign): New function implementing
2082 (common_iterator::operator=): Use _M_assign.
2083 (common_iterator::_S_valueless): New constant.
2084 * testsuite/24_iterators/common_iterator/100823.cc: New test.
2086 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
2088 * include/bits/stl_iterator.h (common_iterator): Fix incorrect
2089 uses of is_nothrow_assignable_v. Fix inconsistent constraints on
2090 friend declaration. Do not move argument in copy constructor.
2091 * testsuite/24_iterators/common_iterator/1.cc: Check for
2092 noexcept constructibnle/assignable.
2094 2022-07-19 François Dumont <fdumont@gcc.gnu.org>
2096 * include/debug/debug.h [_GLIBCXX_DEBUG](__glibcxx_requires_string): Define
2097 using _GLIBCXX_DEBUG_PEDASSERT.
2098 [_GLIBCXX_DEBUG](__glibcxx_requires_string_len): Likewise.
2099 * include/debug/macros.h
2100 (__glibcxx_check_string, __glibcxx_check_string_len): Move...
2101 * include/debug/string
2102 (__glibcxx_check_string, __glibcxx_check_string_len): ...here. And define depending
2103 on _GLIBCXX_DEBUG_PEDANTIC no matter if _GLIBCXX_DEBUG is defined.
2104 Add using of std::string find, rfind, find_first_of, find_last_of, find_first_not_of
2105 and find_last_not_of. Remove debug implementations having no debug assertion.
2106 * testsuite/util/testsuite_string.h: New file. Provides __gnu_test::string and
2107 __gnu_test::wtring which definition depends on _GLIBCXX_DEBUG.
2108 * testsuite/21_strings/basic_string/debug/find1_neg.cc: New test case.
2109 * testsuite/21_strings/basic_string/debug/find2_neg.cc: New test case.
2110 * testsuite/21_strings/basic_string/operations/find/char/1.cc:
2111 Include <testsuite_string.h> and use __gnu_test::string.
2112 * testsuite/21_strings/basic_string/operations/find/char/2.cc: Likewise.
2113 * testsuite/21_strings/basic_string/operations/find/char/3.cc: Likewise.
2114 * testsuite/21_strings/basic_string/operations/find/char/4.cc: Likewise.
2115 * testsuite/21_strings/basic_string/operations/find/char/5.cc: Likewise.
2116 * testsuite/21_strings/basic_string/operations/find/char/6.cc: Likewise.
2117 * testsuite/21_strings/basic_string/operations/find/wchar_t/1.cc:
2118 Include <testsuite_string.h> and use __gnu_test::wstring.
2119 * testsuite/21_strings/basic_string/operations/find/wchar_t/2.cc: Likewise.
2120 * testsuite/21_strings/basic_string/operations/find/wchar_t/3.cc: Likewise.
2121 * testsuite/21_strings/basic_string/operations/find/wchar_t/4.cc: Likewise.
2122 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc: Likewise.
2123 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: Likewise.
2125 2022-07-19 Jonathan Wakely <jwakely@redhat.com>
2127 * include/std/type_traits (__cpp_lib_reference_from_temporary)
2128 (reference_constructs_from_temporary)
2129 (reference_converts_from_temporary): Only define when the
2130 built-ins are available.
2132 2022-07-19 Marco Falke <falke.marco@gmail.com>
2134 * include/std/charconv (__from_chars_alnum_to_val): Replace
2135 implicit conversion from int to unsigned char with explicit
2138 2022-07-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
2140 * configure: Regnerate.
2141 * configure.ac (newlib, *-rtems*): Remove HAVE_POLL.
2143 2022-07-18 François Dumont <fdumont@gcc.gnu.org>
2145 * include/bits/stl_algo.h
2146 (__merge_adaptive): Adapt to merge only when buffer is large enough..
2147 (__merge_adaptive_resize): New, adapt merge when buffer is too small.
2148 (__inplace_merge): Adapt, use latter.
2149 (__stable_sort_adaptive): Adapt to sort only when buffer is large enough.
2150 (__stable_sort_adaptive_resize): New, adapt sort when buffer is too small.
2151 (__stable_sort): Adapt, use latter.
2153 2022-07-15 Marek Polacek <polacek@redhat.com>
2156 * include/std/type_traits (reference_constructs_from_temporary,
2157 reference_converts_from_temporary): New class templates.
2158 (reference_constructs_from_temporary_v,
2159 reference_converts_from_temporary_v): New variable templates.
2160 (__cpp_lib_reference_from_temporary): Define for C++23.
2161 * include/std/version (__cpp_lib_reference_from_temporary): Define for
2163 * testsuite/20_util/variable_templates_for_traits.cc: Test
2164 reference_constructs_from_temporary_v and
2165 reference_converts_from_temporary_v.
2166 * testsuite/20_util/reference_from_temporary/value.cc: New test.
2167 * testsuite/20_util/reference_from_temporary/value2.cc: New test.
2168 * testsuite/20_util/reference_from_temporary/version.cc: New test.
2170 2022-07-12 Jonathan Wakely <jwakely@redhat.com>
2173 * include/std/istream [C++17] (operator>>(istream&, char*)):
2174 Set eofbit if we stopped extracting at EOF.
2175 * testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc:
2177 * testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc:
2180 2022-07-12 Jonathan Wakely <jwakely@redhat.com>
2182 * include/bits/stl_iterator.h (__iter_to_alloc_t): Replace
2183 add_const_t with const-qualifier.
2184 * include/bits/utility.h (tuple_element<N, cv T>): Likewise for
2186 * include/std/type_traits (add_const, add_volatile): Replace
2187 typedef-declaration with using-declaration.
2188 (add_cv): Replace add_const and add_volatile with cv-qualifiers.
2189 * include/std/variant (variant_alternative<N, cv T>): Replace
2190 add_const_t, add_volatile_t and add_cv_t etc. with cv-qualifiers.
2192 2022-07-09 François Dumont <fdumont@gcc.gnu.org>
2194 * include/std/string: Remove obsolete comment about char_traits.h including
2197 2022-07-07 Jonathan Wakely <jwakely@redhat.com>
2200 * include/bits/char_traits.h (__gnu_cxx::char_traits::move):
2201 Remove workaround for front-end bug.
2203 2022-07-05 Alexandre Oliva <oliva@adacore.com>
2205 * testsuite/util/testsuite_fs.h (nonexistent_path): Explain
2206 why we need the typecast.
2208 2022-07-05 Alexandre Oliva <oliva@adacore.com>
2210 * testsuite/util/testsuite_fs.h (nonexistent_path): Convert
2211 the getpid result to an integral type.
2213 2022-07-01 Jonathan Wakely <jwakely@redhat.com>
2216 * include/Makefile.am (largefile-config.h): Add
2217 stamp-${host_alias} prerequisite.
2218 * include/Makefile.in: Regenerate.
2220 2022-07-01 Jonathan Wakely <jwakely@redhat.com>
2222 * include/bits/fs_ops.h: Add nodiscard to all pure functions.
2223 * include/experimental/bits/fs_ops.h: Likewise.
2224 * testsuite/27_io/filesystem/operations/all.cc: Do not discard
2225 results of absolute and canonical.
2226 * testsuite/27_io/filesystem/operations/absolute.cc: Cast
2227 discarded result to void.
2228 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
2229 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
2230 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
2231 * testsuite/27_io/filesystem/operations/read_symlink.cc:
2233 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
2234 * testsuite/27_io/filesystem/operations/symlink_status.cc:
2236 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2238 * testsuite/experimental/filesystem/operations/canonical.cc:
2240 * testsuite/experimental/filesystem/operations/exists.cc:
2242 * testsuite/experimental/filesystem/operations/is_empty.cc:
2244 * testsuite/experimental/filesystem/operations/read_symlink.cc:
2246 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2249 2022-07-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
2251 * configure: Regnerate.
2252 * configure.ac (newlib, *-rtems*): Enable TLS support for all RTEMS
2253 targets except bfin, lm32, mips, moxie, or1k, and v850.
2254 For all RTEMS targets, define HAVE_ALIGNED_ALLOC, HAVE_AT_QUICK_EXIT,
2255 HAVE_LINK, HAVE_POLL, HAVE_QUICK_EXIT, HAVE_READLINK, HAVE_SETENV,
2256 HAVE_SLEEP, HAVE_SOCKATMARK, HAVE_STRERROR_L, HAVE_SYMLINK,
2257 HAVE_TRUNCATE, and HAVE_USLEEP.
2258 * crossconfig.m4 (*-rtems*): Remove.
2260 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
2262 * include/bits/utility.h: Fix comment typos.
2264 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
2266 * src/c++17/fs_ops.cc (fs::temp_directory_path()): Include path
2268 (fs::temp_directory_path(error_code&)): Rearrange to more
2269 closely match the structure of the first overload.
2270 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2271 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2272 Check that exception contains the path.
2273 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2276 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
2279 * src/filesystem/ops.cc (has_trailing_slash): New helper
2281 (fs::status): Strip trailing slashes.
2282 (fs::symlink_status): Likewise.
2283 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2284 Clean the environment before each test and use TMP instead of
2285 TMPDIR so the test passes on Windows.
2287 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2289 * src/filesystem/dir-common.h (_Dir_base::_At_path):
2290 Use char_type consistently for paths.
2292 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2294 * src/c++17/fs_dir.cc (_Dir::dir_and_pathname):: Replace with
2295 current() returning _At_path.
2296 (_Dir::_Dir, _Dir::open_subdir, _Dir::do_unlink): Adjust.
2297 * src/filesystem/dir-common.h (_Dir_base::_At_path): New class.
2298 (_Dir_base::_Dir_Base, _Dir_base::openat): Use _At_path.
2299 * src/filesystem/dir.cc (_Dir::dir_and_pathname): Replace with
2300 current() returning _At_path.
2301 (_Dir::_Dir, _Dir::open_subdir): Adjust.
2303 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2305 * src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]:
2306 Always store pathname if we don't have openat or unlinkat,
2307 because the full path is needed to open sub-directories and
2310 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2312 * testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math
2313 functions are available.
2315 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2317 * testsuite/20_util/to_chars/long_double.cc: Use cmath
2318 long double overloads for nexttoward and ldexp.
2320 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2322 * testsuite/experimental/simd/standard_abi_usable.cc: Require
2324 * testsuite/experimental/simd/standard_abi_usable_2.cc:
2327 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2329 * testsuite/26_numerics/complex/proj.cc: Skip test in the
2330 circumstances in which the implementation of proj is known to
2333 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2335 * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if
2336 _GLIBCXX_HAVE_OPENAT.
2338 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2340 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
2341 (test06): Don't create symlinks when NO_SYMLINKS is defined.
2343 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2345 * testsuite/lib/dg-options.exp (add_options_for_net_ts):
2346 Add -Wl,--gc-sections for RTEMS targets.
2347 * testsuite/experimental/net/timer/waitable/dest.cc: Link-time
2349 * testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
2350 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
2351 Execution-time xfail on RTEMS.
2352 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
2355 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2357 * testsuite/ext/mt_allocator/22309_thread.cc: Include <string>.
2359 2022-06-27 Joel Brobecker <brobecker@adacore.com>
2360 Jonathan Wakely <jwakely@redhat.com>
2362 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path):
2363 Always include a counter in the filename returned.
2365 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2367 * include/bits/move_only_function.h (_Never_valueless_alt):
2368 Define partial specialization for std::move_only_function.
2370 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2372 * include/std/variant (_Build_FUN::_S_fun): Define fallback case
2374 (__accepted_index, _Extra_visit_slot_needed): Replace class
2375 templates with variable templates.
2377 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2379 * include/bits/fs_path.h (__is_path_iter_src): Replace class
2380 template with variable template.
2382 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2384 * include/bits/chrono.h (is_clock_v): Define to false.
2385 (is_clock_v<T>): Define partial specialization for true cases.
2386 (is_clock): Define in terms of is_clock_v.
2388 2022-06-24 Xi Ruoyao <xry111@xry111.site>
2390 * scripts/extract_symvers.in: Use grep -E instead of egrep.
2391 * scripts/run_doxygen: Likewise.
2393 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2395 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
2397 * configure, config.h.in: Rebuilt.
2398 * src/filesystem/dir-common.h (openat): Use ::openat if
2399 _GLIBCXX_HAVE_OPENAT.
2400 * src/filesystem/dir.cc (dir_and_pathname): Use dirfd if
2401 _GLIBCXX_HAVE_OPENAT.
2403 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2405 * testsuite/27_io/filesystem/operations/rename.cc: xfail on
2407 * testsuite/experimental/filesystem/operations/rename.cc:
2410 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2412 * testsuite/util/testsuite_fs.h (NO_LAST_WRITE_TIME): Define
2414 * testsuite/lib/libstdc++.exp
2415 (check_v3_target_fs_last_write_time): New.
2416 * testsuite/lib/dg-options.exp (dg-require-target-fs-lwt):
2418 * testsuite/27_io/filesystem/operations/last_write_time.cc:
2419 Skip the test if the features are unavailable.
2420 * testsuite/experimental/filesystem/operations/last_write_time.cc:
2423 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2425 * testsuite/util/testsuite_fs.h (NO_SPACE): Define if
2427 * testsuite/lib/libstdc++.exp (check_v3_target_fs_space): New.
2428 * testsuite/lib/dg-options.exp (dg-require-target-fs-space):
2430 * testsuite/27_io/filesystem/operations/space.cc: Require
2432 * testsuite/experimental/filesystem/operations/space.cc:
2435 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2437 * testsuite/util/testsuite_fs.h (NO_SYMLINKS): Define on
2438 mingw and when create_symlink is a dummy.
2439 * testsuite/27_io/filesystem/operations/symlink_status.cc:
2441 (test01, test02): Don't create symlinks when NO_SYMLINKS is
2443 * testsuite/27_io/filesystem/operations/canonical.cc (test03):
2445 * testsuite/27_io/filesystem/operations/copy.cc (test02):
2447 * testsuite/27_io/filesystem/operations/create_directories.cc
2449 * testsuite/27_io/filesystem/operations/create_directory.cc
2451 * testsuite/27_io/filesystem/operations/permissions.cc
2452 (test03, test04): Likewise.
2453 * testsuite/27_io/filesystem/operations/remove.cc (test01):
2455 * testsuite/27_io/filesystem/operations/remove_all.cc (test01):
2457 * testsuite/27_io/filesystem/operations/rename.cc
2458 (test_symlinks): Likewise.
2459 * testsuite/27_io/filesystem/operations/weakly_canonical.cc
2461 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
2463 * testsuite/experimental/filesystem/operations/copy.cc
2465 * testsuite/experimental/filesystem/operations/create_directories.cc
2467 * testsuite/experimental/filesystem/operations/create_directory.cc
2469 * testsuite/experimental/filesystem/operations/permissions.cc
2470 (test03, test04): Likewise.
2471 * testsuite/experimental/filesystem/operations/remove.cc
2473 * testsuite/experimental/filesystem/operations/remove_all.cc
2475 * testsuite/experimental/filesystem/operations/rename.cc
2477 * testsuite/lib/libstdc++.exp
2478 (v3_check_preprocessor_condition): Add optional inc parameter.
2479 Add it to the test program after include bits/c++config.h.
2480 (check_v3_target_fs_symlinks): New.
2481 * testsuite/lib/dg-options.exp
2482 (dg-require-target-fs-symlinks): New.
2483 * testsuite/27_io/filesystem/operations/read_symlink.cc:
2484 Replace mingw xfail with require target-fs-symlinks.
2485 * testsuite/experimental/filesystem/operations/read_symlink.cc:
2488 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2490 * testsuite/27_io/filesystem/operations/copy.cc (test02):
2491 Select TO after creating FROM.
2492 (test03, test04): Likewise.
2493 * testsuite/experimental/filesystem/operations/copy.cc
2494 (test02, test03, test04): Likewise.
2496 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2498 * testsuite/30_threads/thread/native_handle/cancel.cc: Add an
2499 explicit cancellation point in case sleep_for lacks one.
2501 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2503 * testsuite/lib/dg-options.exp (add_options_for_net_ts): Add
2504 -lbsd for RTEMS targets.
2506 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
2508 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
2509 rmdir to remove directories.
2510 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
2513 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
2515 * testsuite/26_numerics/random/random_device/entropy.cc: Use
2516 numeric_limits<unsigned>::digits.
2518 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2520 * libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS]
2521 (__eh_globals_init::~__eh_globals_init): Clear _S_init first.
2523 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2525 * testsuite/30_threads/this_thread/60421.cc (test02): Call
2528 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2530 * testsuite/20_util/to_chars/long_double.cc: Require cmath.
2532 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2534 * testsuite/23_containers/bitset/cons/dr1325-2.cc: Work around
2535 global struct bitset.
2536 * testsuite/23_containers/bitset/ext/15361.cc: Likewise.
2537 * testsuite/23_containers/bitset/input/1.cc: Likewise.
2538 * testsuite/23_containers/bitset/to_string/1.cc: Likewise.
2539 * testsuite/23_containers/bitset/to_string/dr396.cc: Likewise.
2541 2022-06-17 Jonathan Wakely <jwakely@redhat.com>
2543 * testsuite/21_strings/basic_string/cons/char/105995.cc: Add
2546 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
2549 * include/bits/basic_string.h (_M_use_local_data): Initialize
2550 the entire SSO buffer.
2551 * testsuite/21_strings/basic_string/cons/char/105995.cc: New test.
2553 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
2556 * include/ext/vstring.h (operator==): Always check lengths
2559 2022-06-15 François Dumont <fdumont@gcc.gnu.org>
2562 * include/bits/hashtable_policy.h (_ConvertToValueType): New.
2563 * include/bits/hashtable.h (_Hashtable<>::_M_insert_unique_aux): New.
2564 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, true_type)): Use latters.
2565 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, false_type)): Likewise.
2566 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
2567 const allocator_type&, true_type)): Use this.insert range.
2568 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
2569 const allocator_type&, false_type)): Use _M_insert.
2570 * testsuite/23_containers/unordered_map/cons/56112.cc: Check how many times conversion
2572 * testsuite/23_containers/unordered_map/insert/105717.cc: New test.
2573 * testsuite/23_containers/unordered_set/insert/105717.cc: New test.
2575 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2578 * include/bits/basic_string.h (operator==): Always compare
2579 lengths before checking string contents.
2580 [!__cpp_lib_three_way_comparison] (operator==, operator!=):
2583 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2586 * include/bits/basic_string.h (compare): Define inline.
2587 * include/bits/basic_string.tcc (compare): Remove out-of-line
2589 * include/bits/cow_string.h (compare): Define inline.
2590 * testsuite/21_strings/basic_string/operations/compare/char/3.cc:
2593 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2595 * include/bits/new_allocator.h: Fix indentation.
2596 * include/ext/malloc_allocator.h: Likewise.
2598 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2601 * include/bits/allocator.h (allocator::allocate): Check for
2602 overflow in constexpr allocation.
2603 * testsuite/20_util/allocator/105975.cc: New test.
2605 2022-06-13 Mark Mentovai <mark@mentovai.com>
2607 * include/experimental/bits/fs_path.h (__detail::__null_terminated):
2608 Rename to __nul_terminated to avoid colliding with a macro in
2611 2022-06-13 Jonathan Wakely <jwakely@redhat.com>
2613 * include/std/atomic (__atomic_val_t): Use __type_identity_t
2614 instead of atomic<T>::value_type, as per LWG 3220.
2615 * testsuite/29_atomics/atomic/lwg3220.cc: New test.
2617 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
2620 * include/experimental/numeric (experimental::gcd): Simplify
2621 assertions. Use __abs_r instead of __absu.
2622 (experimental::lcm): Likewise. Remove use of __detail::__lcm so
2623 overflow can be detected.
2624 * include/std/numeric (__detail::__absu): Rename to __abs_r and
2625 change to allow signed result type, so overflow can be detected.
2626 (__detail::__lcm): Remove.
2627 (gcd): Simplify assertions. Use __abs_r instead of __absu.
2628 (lcm): Likewise. Remove use of __detail::__lcm so overflow can
2630 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
2631 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
2632 * testsuite/26_numerics/gcd/105844.cc: New test.
2633 * testsuite/26_numerics/lcm/105844.cc: New test.
2635 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
2638 * libsupc++/eh_globals.cc (eh_globals): Ensure constant init and
2639 prevent destruction during termination.
2640 (__eh_globals_init::_M_init): Replace with static member _S_init.
2641 (__cxxabiv1::__cxa_get_globals_fast): Update.
2642 (__cxxabiv1::__cxa_get_globals): Likewise.
2644 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
2646 * include/bits/basic_string.h (__hash_str_base): New class
2648 (hash<basic_string<C, char_traits<C>, A>>): Define partial
2649 specialization for each of the standard character types.
2650 (hash<string>, hash<wstring>, hash<u8string>, hash<u16string>)
2651 (hash<u32string>): Remove explicit specializations.
2652 * include/std/string (__hash_string_base): Remove class
2654 (hash<pmr::string>, hash<pmr::wstring>, hash<pmr::u8string>)
2655 (hash<pmr::u16string>, hash<pmr::u32string>): Remove explicit
2657 * testsuite/21_strings/basic_string/hash/hash.cc: Test with
2659 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
2662 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
2665 * include/std/sstream (basic_stringbuf::_M_high_mark): Add
2666 always_inline attribute.
2668 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2671 * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
2672 Limit ga_sizes array to values that fit in size_t.
2673 * include/ext/random [__SIZE_WIDTH < 32] (sfmt86243)
2674 (sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091)
2675 (sfmt216091_64): Do not declare.
2677 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2679 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make
2680 lookup for ios_errc and future_errc check versioned namespace.
2681 (StdAtomicPrinter): Strip versioned namespace from typename.
2683 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2685 * src/c++11/Makefile.am: Add new source file.
2686 * src/c++11/Makefile.in: Regenerate.
2687 * src/c++11/cxx11-ios_failure.cc (iostream_category):
2689 * src/c++11/ios_errcat.cc: New file.
2690 * testsuite/27_io/ios_base/failure/error_code.cc: Check that
2691 std::iostream_category() is defined and used for std::io_errc.
2693 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2695 * include/bits/stl_iterator.h (counted_iterator::operator++(int)):
2696 Add 'constexpr' as per LWG 3643.
2697 * testsuite/24_iterators/counted_iterator/lwg3643.cc: New test.
2699 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2701 * include/bits/functional_hash.h (__is_fast_hash): Add doxygen
2703 * include/bits/hashtable.h: Do not include <bits/stl_function.h>
2705 * include/bits/hashtable_policy.h: Include <bits/stl_pair.h> and
2706 <bits/functional_hash.h>.
2707 * include/bits/unordered_map.h: Include required headers.
2708 * include/bits/unordered_set.h: Likewise.
2709 * include/std/unordered_map: Do not include headers for indirect
2711 * include/std/unordered_set: Likewise.
2713 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2715 * include/bits/ranges_algobase.h: Do not include
2716 <bits/stl_iterator_base_types.h>.
2717 * include/std/string: Likewise.
2718 * include/std/variant: Likewise.
2720 2022-05-26 Nathan Sidwell <nathan@acm.org>
2722 * include/bits/hashtable.h: Include required headers.
2723 * include/bits/hashtable_policy.h: Likewise.
2724 * include/bits/stl_heap.h: Likewise.
2725 * include/bits/stl_iterator_base_funcs.h: Likewise.
2727 2022-05-26 François Dumont <fdumont@gcc.gnu.org>
2729 * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__):
2730 Strip typename from version namespace.
2732 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2734 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip
2735 versioned namespace from the template argument too.
2737 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2739 * testsuite/21_strings/basic_string/modifiers/pop_back/char/1.cc:
2741 * testsuite/21_strings/basic_string/modifiers/pop_back/char.cc:
2743 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/1.cc:
2745 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t.cc:
2747 * testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc:
2749 * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
2751 * testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc:
2753 * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
2755 * testsuite/21_strings/basic_string/operations/contains/char/1.cc:
2757 * testsuite/21_strings/basic_string/operations/contains/char.cc:
2759 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc:
2761 * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc:
2763 * testsuite/21_strings/basic_string/operations/data/char/1.cc:
2765 * testsuite/21_strings/basic_string/operations/data/char.cc:
2767 * testsuite/21_strings/basic_string/operations/data/wchar_t/1.cc:
2769 * testsuite/21_strings/basic_string/operations/data/wchar_t.cc:
2771 * testsuite/21_strings/basic_string/operations/ends_with/char/1.cc:
2773 * testsuite/21_strings/basic_string/operations/ends_with/char.cc:
2775 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t/1.cc:
2777 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
2779 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
2781 * testsuite/21_strings/basic_string/operations/starts_with/char.cc:
2783 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
2785 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
2787 * testsuite/21_strings/basic_string/operations/substr/char/1.cc:
2789 * testsuite/21_strings/basic_string/operations/substr/char.cc:
2791 * testsuite/21_strings/basic_string/operations/substr/wchar_t/1.cc:
2793 * testsuite/21_strings/basic_string/operations/substr/wchar_t.cc:
2795 * testsuite/21_strings/basic_string/range_access/char/1.cc:
2797 * testsuite/21_strings/basic_string/range_access/char.cc:
2799 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
2801 * testsuite/21_strings/basic_string/range_access/wchar_t.cc:
2803 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
2805 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char.cc:
2807 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
2809 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t.cc:
2811 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
2813 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char.cc:
2815 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
2817 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t.cc:
2819 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
2821 * testsuite/21_strings/basic_string_view/modifiers/swap/char.cc:
2823 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
2825 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t.cc:
2827 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc:
2829 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
2831 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc:
2833 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc:
2835 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
2837 * testsuite/21_strings/basic_string_view/operations/data/char.cc:
2839 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
2841 * testsuite/21_strings/basic_string_view/operations/data/wchar_t.cc:
2843 * testsuite/21_strings/basic_string_view/operations/ends_with/char/1.cc:
2845 * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
2847 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t/1.cc:
2849 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
2851 * testsuite/21_strings/basic_string_view/operations/starts_with/char/1.cc:
2853 * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
2855 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t/1.cc:
2857 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
2859 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
2861 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
2863 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
2865 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
2867 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
2869 * testsuite/21_strings/basic_string_view/range_access/char.cc:
2871 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
2873 * testsuite/21_strings/basic_string_view/range_access/wchar_t.cc:
2875 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
2877 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char.cc:
2879 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
2881 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t.cc:
2883 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
2885 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t.cc:
2887 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
2889 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t.cc:
2891 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/1.cc:
2893 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
2895 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
2897 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t.cc:
2899 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
2901 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char.cc:
2903 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
2905 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t.cc:
2907 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
2909 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t.cc:
2911 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
2913 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t.cc:
2915 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
2917 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/int.cc:
2919 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
2921 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t.cc:
2923 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char/1.cc:
2925 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char.cc:
2927 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t/1.cc:
2929 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t.cc:
2931 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t/1.cc:
2933 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t.cc:
2935 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t/1.cc:
2937 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t.cc:
2939 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short/1.cc:
2941 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short.cc:
2943 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t/1.cc:
2945 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t.cc:
2948 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2950 * testsuite/20_util/duration/requirements/explicit_instantiation/explicit_instantiation.cc:
2952 * testsuite/20_util/duration/requirements/explicit_instantiation.cc: ...here.
2953 * testsuite/20_util/time_point/requirements/explicit_instantiation/explicit_instantiation.cc:
2955 * testsuite/20_util/time_point/requirements/explicit_instantiation.cc: ...here.
2956 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation/explicit_instantiation.cc:
2958 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation.cc: ...here.
2960 2022-05-25 Jason Merrill <jason@redhat.com>
2962 * testsuite/20_util/function_objects/constexpr_searcher.cc: Add
2965 2022-05-20 Jonathan Wakely <jwakely@redhat.com>
2967 * testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc:
2968 Run fewer iterations for simulator targets.
2969 * testsuite/26_numerics/random/binomial_distribution/operators/values.cc:
2971 * testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
2973 * testsuite/26_numerics/random/geometric_distribution/operators/values.cc:
2975 * testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc:
2977 * testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
2979 * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc:
2982 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
2984 * include/bits/char_traits.h: Only include <cstdint> when
2986 * include/std/stacktrace: Use __UINTPTR_TYPE__ instead of
2988 * src/c++11/cow-stdexcept.cc: Include <stdint.h>.
2989 * src/c++17/floating_to_chars.cc: Likewise.
2990 * testsuite/20_util/assume_aligned/1.cc: Include <cstdint>.
2991 * testsuite/20_util/assume_aligned/3.cc: Likewise.
2992 * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
2994 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
2996 * include/bits/basic_string.h: Do not include <ext/atomicity.h>
2998 * include/bits/cow_string.h: Include it here.
3000 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
3002 * include/Makefile.am: Add new header.
3003 * include/Makefile.in: Regenerate.
3004 * include/bits/memory_resource.h: New file.
3005 * include/std/deque: Include <bits/memory_resource.h>.
3006 * include/std/forward_list: Likewise.
3007 * include/std/list: Likewise.
3008 * include/std/map: Likewise.
3009 * include/std/memory_resource (pmr::memory_resource): Move to
3010 new <bits/memory_resource.h> header.
3011 (pmr::polymorphic_allocator): Likewise.
3012 * include/std/regex: Likewise.
3013 * include/std/set: Likewise.
3014 * include/std/stacktrace: Likewise.
3015 * include/std/string: Likewise.
3016 * include/std/unordered_map: Likewise.
3017 * include/std/unordered_set: Likewise.
3018 * include/std/vector: Likewise.
3019 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
3020 Remove <memory_resource> header and check construction.
3021 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
3022 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
3024 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
3025 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
3026 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
3027 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
3028 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
3029 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
3031 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
3033 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
3035 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
3037 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
3038 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
3040 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
3042 * include/std/memory_resource (polymorphic_allocator): Add
3043 non-template equality operator, as proposed for LWG 3683.
3044 * testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test.
3046 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3048 * src/c++17/memory_resource.cc (set_default_resource): Use
3049 memory_order_acq_rel.
3050 (get_default_resource): Use memory_order_acquire.
3052 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3054 * include/std/memory_resource (new_delete_resource): Add
3055 nodiscard, returns_nonnull and const attributes.
3056 (null_memory_resource): Likewise.
3057 (set_default_resource, get_default_resource): Add returns_nonnull
3059 (memory_resource::is_equal): Add nodiscard attribute.
3060 (operator==, operator!=): Likewise.
3062 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3064 * include/bits/ios_base.h (io_category): Add const and nodiscard
3066 (make_error_code, make_error_condition): Add nodiscard.
3067 * include/std/future (future_category): Add const and nodiscard.
3068 (make_error_code, make_error_condition): Add nodiscard.
3069 * include/std/system_error (generic_category system_category):
3070 Add nodiscard. Replace _GLIBCXX_CONST with C++11 attribute.
3071 (error_code::value, error_code::category, error_code::operator bool)
3072 (error_condition::value, error_condition::category)
3073 (error_condition::operator bool, make_error_code)
3074 (make_error_condition, operator==, operator!=, operator<=>): Add
3077 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3079 * testsuite/20_util/expected/synopsis.cc: Skip for versioned
3081 * testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise.
3083 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3085 * src/Makefile.am [ENABLE_SYMVERS_GNU_NAMESPACE] (cxx11_sources):
3086 Do not build the compatibility*-c++0x.cc objects.
3087 * src/Makefile.in: Regenerate.
3088 * src/c++11/compatibility-c++0x.cc [_GLIBCXX_INLINE_VERSION]:
3089 Refuse to build for the versioned namespace.
3090 * src/c++11/compatibility-chrono.cc: Likewise.
3091 * src/c++11/compatibility-condvar.cc: Likewise.
3092 * src/c++11/compatibility-thread-c++0x.cc: Likewise.
3093 * src/c++11/chrono.cc (system_clock, steady_clock):
3094 Use macros to define in inline namespace _V2, matching the
3095 declarations in <system_error>.
3096 * src/c++11/system_error.cc (system_category, generic_category):
3099 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3101 * doc/xml/manual/prerequisites.xml: Fix attributes for external
3103 * doc/html/manual/setup.html: Regenerate.
3105 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3107 * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support.
3108 * doc/html/*: Regenerate.
3110 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3112 * doc/xml/manual/intro.xml: Include new chapter.
3113 * doc/xml/manual/status_cxx2020.xml: Tweak release numbers.
3114 * doc/xml/manual/status_cxx2023.xml: New file.
3115 * doc/html/*: Regenerate.
3117 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3119 * doc/html/manual/status.html: Regenerate.
3120 * doc/xml/manual/status_cxx2020.xml: Fix supported version for
3121 C++20 bit operations.
3123 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3125 * include/bits/std_thread.h (thread::_State, thread::_State_ptr):
3126 Declare as private unless _GLIBCXX_THREAD_IMPL is defined.
3127 * src/c++11/thread.cc (_GLIBCXX_THREAD_IMPL): Define.
3129 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3131 * include/std/future (launch): Make operators noexcept.
3133 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3135 * doc/doxygen/user.cfg.in (PREDEFINED): Replace __exception_ptr
3136 with "__unspecified__".
3137 * libsupc++/exception_ptr.h: Improve doxygen docs.
3138 (__exception_ptr::swap): Also declare in namespace std.
3140 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3142 * libsupc++/nested_exception.h (throw_with_nested) [C++17]: Use
3143 if-constexpr instead of tag dispatching.
3144 (rethrow_if_nested) [C++17]: Likewise.
3145 (rethrow_if_nested) [!__cpp_rtti]: Do not use dynamic_cast if it
3147 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
3150 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3152 * doc/doxygen/user.cfg.in (PREDEFINED): Define
3153 _GTHREAD_USE_MUTEX_TIMEDLOCK macro.
3154 * include/bits/std_mutex.h (mutex, lock_guard): Use @since and
3156 * include/bits/unique_lock.h (unique_lock): Likewise.
3157 * include/std/mutex (recursive_mutex, timed_mutex)
3158 (recursive_timed_mutex, scoped_lock): Likewise.
3160 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3162 * doc/doxygen/user.cfg.in (PREDEFINED): Define
3163 _GLIBCXX23_CONSTEXPR macro.
3164 * include/backward/auto_ptr.h (auto_ptr): Use @deprecated.
3165 * include/bits/unique_ptr.h (default_delete): Use @since and
3167 * include/std/scoped_allocator: Remove @ingroup from @file
3170 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3172 * include/bits/std_thread.h (thread, thread::id): Improve
3174 * include/std/future: Likewise.
3175 * include/std/thread (jthread): Likewise.
3177 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3179 * include/bits/ostream_insert.h: Mark helper functions as
3180 undocumented by Doxygen.
3181 * include/bits/stl_algo.h: Use markdown for formatting and mark
3182 helper functions as undocumented.
3183 * include/bits/stl_numeric.h: Likewise.
3184 * include/bits/stl_pair.h (pair): Add @headerfile.
3186 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3188 * doc/doxygen/user.cfg.in (PREDEFINED): Define __allocator_base
3189 so that Doxygen shows the right base-class for std::allocator.
3190 * include/bits/alloc_traits.h: Improve doxygen docs.
3191 * include/bits/allocator.h: Likewise.
3192 * include/bits/new_allocator.h: Likewise.
3193 * include/ext/new_allocator.h: Likewise.
3195 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3197 * doc/doxygen/user.cfg.in (PREDEFINED): Define macro
3198 _GLIBCXX_DOXYGEN_ONLY to expand its argument.
3199 * include/bits/c++config (_GLIBCXX_DOXYGEN_ONLY): Define.
3200 * include/bits/regex.h: Improve doxygen docs.
3201 * include/bits/regex_constants.h: Likewise.
3202 * include/bits/regex_error.h: Likewise.
3204 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3206 * include/std/atomic: Suppress doxygen docs for
3207 implementation details.
3208 * include/bits/atomic_base.h: Likewise.
3209 * include/bits/shared_ptr_atomic.h: Use markdown. Fix grouping
3210 so that std::atomic is not added to the pointer abstractions
3213 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3215 * include/std/system_error: Improve doxygen comments.
3217 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3219 * include/bits/ptr_traits.h: Add some doxygen comments.
3221 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3223 * doc/doxygen/user.cfg.in (PREDEFINED): Expand new macros to
3225 * include/bits/c++config (_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE)
3226 (_GLIBCXX_END_INLINE_ABI_NAMESPACE): Define new macros.
3227 * include/bits/algorithmfwd.h (_V2::__rotate): Use new macros
3229 * include/bits/chrono.h (chrono::_V2::system_clock): Likewise.
3230 * include/bits/stl_algo.h (_V2::__rotate): Likewise.
3231 * include/std/condition_variable (_V2::condition_variable_any):
3233 * include/std/system_error (_V2::error_category): Likewise.
3235 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3237 * include/bits/mofunc_impl.h: Fix doxygen command.
3239 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3241 * doc/doxygen/user.cfg.in (GROUP_NESTED_COMPOUNDS): Set to NO.
3242 (CLASS_DIAGRAMS): Remove obsolete option.
3244 2022-05-12 Jonathan Wakely <jwakely@redhat.com>
3246 * config/locale/dragonfly/numeric_members.cc: Remove whitespace.
3247 * config/locale/gnu/numeric_members.cc: Likewise.
3248 * include/bits/locale_facets_nonio.h: Likewise.
3249 * libsupc++/typeinfo: Likewise.
3251 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
3254 * include/std/iosfwd: Add declarations for <spanstream> class
3255 templates and typedefs.
3256 * include/std/spanstream (basic_spanbuf, basic_ispanstream)
3257 (basic_ospanstream, basic_spanstream): Remove default template
3259 * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream>
3261 * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream>
3264 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
3267 * include/std/iosfwd: Add declarations for <synstream> class
3268 templates and typedefs.
3269 * include/std/syncstream (basic_syncbuf, basic_osyncstream):
3270 Remove default template arguments.
3271 * testsuite/27_io/headers/iosfwd/synopsis.cc: New test.
3272 * testsuite/27_io/headers/iosfwd/types.cc: New test.
3274 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3276 * include/bits/random.tcc (operator==): Only check
3277 normal_distribution::_M_saved_available once.
3278 * testsuite/26_numerics/random/normal_distribution/operators/equal.cc:
3279 Check equality after state changes.
3280 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3283 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3286 * include/bits/random.tcc
3287 (operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
3288 Update state when __state_avail is false.
3289 * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
3290 Check that deserialized object equals serialized one.
3292 2022-05-06 Alexandre Oliva <oliva@adacore.com>
3294 * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX
3295 for double, long long, and 64-bit long intrinsic types.
3296 [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in
3297 preexisting long double diagnostic, adjust no-VSX double
3298 diagnostic to cover 64-bit long double as well.
3300 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3303 * testsuite/27_io/filesystem/iterators/error_reporting.cc:
3304 Use a trailing char array as storage for dirent::d_name.
3306 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3308 * include/std/stacktrace: Do not include <cxxabi.h>.
3309 (__cxa_demangle): Declare.
3311 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3314 * include/bits/specfun.h: Use visibility attribute on namespace,
3315 instead of pragma push/pop.
3316 * libsupc++/compare: Likewise.
3317 * libsupc++/exception: Likewise.
3318 * libsupc++/exception.h: Likewise.
3319 * libsupc++/exception_ptr.h: Likewise.
3320 * libsupc++/initializer_list: Likewise.
3321 * libsupc++/nested_exception.h: Likewise.
3323 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3325 * doc/xml/manual/test.xml: Remove requirement for copyright and
3326 GPL notice in tests.
3327 * doc/html/manual/test.html: Regenerate.
3329 2022-05-05 Jonathan Wakely <jwakely@redhat.com>
3331 * include/experimental/memory_resource [!__cpp_rtti]
3332 (__resource_adaptor_imp::do_is_equal): Do not use dynamic_cast
3333 when RTTI is disabled.
3334 * testsuite/17_intro/freestanding.cc: Require RTTI.
3335 * testsuite/18_support/exception/38732.cc: Likewise.
3336 * testsuite/18_support/exception_ptr/rethrow_exception.cc:
3338 * testsuite/18_support/nested_exception/68139.cc: Likewise.
3339 * testsuite/18_support/nested_exception/rethrow_if_nested.cc:
3341 * testsuite/18_support/type_info/103240.cc: Likewise.
3342 * testsuite/18_support/type_info/fundamental.cc: Likewise.
3343 * testsuite/18_support/type_info/hash_code.cc: Likewise.
3344 * testsuite/20_util/any/assign/emplace.cc: Likewise.
3345 * testsuite/20_util/any/cons/in_place.cc: Likewise.
3346 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
3347 * testsuite/20_util/any/observers/type.cc: Likewise.
3348 * testsuite/20_util/function/1.cc: Likewise.
3349 * testsuite/20_util/function/2.cc: Likewise.
3350 * testsuite/20_util/function/3.cc: Likewise.
3351 * testsuite/20_util/function/4.cc: Likewise.
3352 * testsuite/20_util/function/5.cc: Likewise.
3353 * testsuite/20_util/function/6.cc: Likewise.
3354 * testsuite/20_util/function/7.cc: Likewise.
3355 * testsuite/20_util/function/8.cc: Likewise.
3356 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
3357 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
3358 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
3359 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
3361 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
3362 * testsuite/20_util/typeindex/comparison_operators.cc: Likewise.
3363 * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
3365 * testsuite/20_util/typeindex/hash.cc: Likewise.
3366 * testsuite/20_util/typeindex/hash_code.cc: Likewise.
3367 * testsuite/20_util/typeindex/name.cc: Likewise.
3368 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
3369 * testsuite/22_locale/global_templates/standard_facet_hierarchies.cc:
3371 * testsuite/22_locale/global_templates/user_facet_hierarchies.cc:
3373 * testsuite/22_locale/locale/13630.cc: Check type without using
3375 * testsuite/23_containers/array/requirements/non_default_constructible.cc:
3377 * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
3378 * testsuite/27_io/fpos/14320-1.cc: Check type without using RTTI.
3379 * testsuite/27_io/fpos/mbstate_t/12065.cc: Require RTTI.
3380 * testsuite/27_io/ios_base/failure/dual_abi.cc: Likewise.
3381 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
3382 * testsuite/experimental/any/observers/type.cc: Likewise.
3383 * testsuite/experimental/memory_resource/resource_adaptor.cc:
3385 * testsuite/lib/libstdc++.exp (check_effective_target_rtti):
3387 * testsuite/tr1/3_function_objects/function/1.cc: Likewise.
3388 * testsuite/tr1/3_function_objects/function/2.cc: Likewise.
3389 * testsuite/tr1/3_function_objects/function/3.cc: Likewise.
3390 * testsuite/tr1/3_function_objects/function/4.cc: Likewise.
3391 * testsuite/tr1/3_function_objects/function/5.cc: Likewise.
3392 * testsuite/tr1/3_function_objects/function/6.cc: Likewise.
3393 * testsuite/tr1/3_function_objects/function/7.cc: Likewise.
3394 * testsuite/tr1/3_function_objects/function/8.cc: Likewise.
3395 * testsuite/tr2/bases/value.cc: Likewise.
3396 * testsuite/tr2/direct_bases/value.cc: Likewise.
3397 * testsuite/util/exception/safety.h [!__cpp_rtti]: Don't print
3400 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
3403 * include/std/array (array::size(), array::max_size())
3404 (array::empty(), array::data()): Add always_inline attribute.
3406 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
3409 * include/std/array (__array_traits::_S_ref): Remove.
3410 (__array_traits::_S_ptr): Remove.
3411 (__array_traits<T, 0>::_Type): Define operator[] and operator T*
3412 to provide an array-like API.
3413 (array::_AT_Type): Remove public typeef.
3414 (array::operator[], array::at, array::front, array::back): Use
3415 index operator to access _M_elems instead of _S_ref.
3416 (array::data): Use implicit conversion from _M_elems to pointer.
3417 (swap(array&, array&)): Use __enable_if_t helper.
3418 (get<I>): Use index operator to access _M_elems.
3419 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
3420 Adjust dg-error line numbers.
3422 2022-05-03 Alexandre Oliva <oliva@adacore.com>
3425 * testsuite/20_util/from_chars/pr105324.cc: Guard test body
3426 with conditional for floating-point overloads of from_char.
3428 2022-05-02 Patrick Palka <ppalka@redhat.com>
3431 * src/c++17/floating_from_chars.cc (find_end_of_float): Accept
3432 two delimeters for the exponent part in the form of a possibly
3433 NULL string of length two. Don't use std::tolower.
3434 (pattern): Adjust calls to find_end_of_float accordingly.
3436 2022-05-02 Patrick Palka <ppalka@redhat.com>
3439 * src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
3440 Also accept 'P' as the start of the exponent.
3441 * testsuite/20_util/from_chars/7.cc: Add corresponding testcase.
3443 2022-04-29 Jonathan Wakely <jwakely@redhat.com>
3446 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
3448 * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]:
3449 Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I>
3450 symbols as aliases for corresponding symbols without abi-tag.
3452 2022-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3454 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
3455 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
3457 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
3458 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
3461 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
3464 * src/c++17/fs_ops.cc (fs::copy): Pass error_code to
3465 directory_iterator constructor, and check on each iteration.
3466 * src/filesystem/ops.cc (fs::copy): Likewise.
3467 * testsuite/27_io/filesystem/operations/copy.cc: Check for
3468 errors during recursion.
3469 * testsuite/experimental/filesystem/operations/copy.cc:
3472 2022-04-28 François Dumont <fdumont@gcc.gnu.org>
3474 * config/abi/pre/gnu-versioned-namespace.ver: Remove
3475 std::random_device::* pattern.
3477 2022-04-27 Jakub Jelinek <jakub@redhat.com>
3479 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3480 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
3481 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
3482 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3483 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
3484 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
3485 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3486 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
3488 2022-04-27 Jonathan Wakely <jwakely@redhat.com>
3490 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add
3491 support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>.
3492 (StdAtomicPrinter): New printer.
3493 (build_libstdcxx_dictionary): Register new printer.
3494 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic.
3495 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart
3498 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
3500 * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add
3501 constructor for constant initialization from nullptr_t.
3502 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
3503 Check for new constructor.
3505 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
3507 * include/bits/fs_path.h (hash<filesystem::path>): Define.
3508 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
3509 Check std::hash specialization.
3511 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
3513 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define
3515 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
3517 (default_delete, default_delete<T[]>, __uniq_ptr_impl)
3518 (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member
3520 * include/std/version (__cpp_lib_constexpr_memory): Define new
3522 * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test.
3523 * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test.
3524 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test.
3525 * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test.
3526 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test.
3527 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc:
3530 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
3533 * include/std/future (packaged_task): Add deduction guides.
3534 * testsuite/30_threads/packaged_task/cons/deduction.cc: New test.
3536 2022-04-25 Philipp Fent <fent@in.tum.de>
3538 * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
3540 (StdInitializerListPrinter): Define new printer.
3541 (build_libstdcxx_dictionary): Register new printer.
3542 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
3545 2022-04-22 Thomas W Rodgers <trodgers@redhat.com>
3548 * include/bits/atomic_base.h (atomic_flag::notify_one,
3549 notify_all): Remove const qualification.
3550 (__atomic_base::notify_one, notify_all): Likewise.
3551 * include/std/atomic (atomic<bool>::notify_one, notify_all):
3553 (atomic::notify_one, notify_all): Likewise.
3554 (atomic<T*>::notify_one, notify_all): Likewise.
3555 (atomic_notify_one, atomic_notify_all): Likewise.
3556 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test
3557 to account for change in notify_one/notify_all signature.
3559 2022-04-21 Patrick Palka <ppalka@redhat.com>
3561 * include/std/charconv (__from_chars_alnum_to_val_table):
3562 Simplify initialization of __lower/__upper_letters.
3563 (__from_chars_alnum_to_val): Default the template parameter to
3565 * src/c++17/floating_from_chars.cc (starts_with_ci): Don't
3566 assume the uppercase and lowercase letters are contiguous.
3567 (__floating_from_chars_hex): Likewise.
3569 2022-04-21 Patrick Palka <ppalka@redhat.com>
3573 * include/std/charconv (__from_chars_alnum_to_val): Make
3574 initializer for __table dependent in an artificial way.
3576 2022-04-21 Jonathan Wakely <jwakely@redhat.com>
3579 * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
3581 * testsuite/20_util/from_chars/pr105324.cc: New test.
3583 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
3585 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
3586 Check correct feature test macro.
3588 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
3591 * doc/xml/manual/prerequisites.xml: Document libiconv
3593 * doc/html/manual/setup.html: Regenerate.
3594 * src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
3595 * src/Makefile.in: Regenerate.
3597 2022-04-19 Patrick Palka <ppalka@redhat.com>
3599 * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't
3601 (__floating_to_chars_shortest): Add __builtin_unreachable calls to
3602 squelch false-positive -Wmaybe-uninitialized and -Wreturn-type
3604 (__floating_to_chars_precision): Likewise.
3606 2022-04-19 Philipp Fent <fent@in.tum.de>
3608 * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
3609 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
3611 2022-04-19 Jonathan Wakely <jwakely@redhat.com>
3613 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
3614 * configure: Regenerate.
3616 2022-04-18 Patrick Palka <ppalka@redhat.com>
3618 * include/std/charconv (__from_chars_pow2_base): Manually
3619 unroll the first iteration of the main loop and simplify
3622 2022-04-15 Patrick Palka <ppalka@redhat.com>
3625 * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing
3626 __first twice at the start.
3627 * testsuite/25_algorithms/minmax/constrained.cc (test06): New test.
3629 2022-04-15 Patrick Palka <ppalka@redhat.com>
3631 * include/std/charconv (__from_chars_alnum_to_val_table): Define.
3632 (__from_chars_alnum_to_val): Define.
3633 (__from_chars_binary): Rename to ...
3634 (__from_chars_pow2_base): ... this. Generalize to handle any
3635 power-of-two base using __from_chars_alnum_to_val.
3636 (__from_chars_digit): Optimize digit recognition to a single
3637 test instead of two tests. Use [[__unlikely___]] attribute.
3638 (__from_chars_alpha_to_num): Remove.
3639 (__from_chars_alnum): Use __from_chars_alnum_to_val. Use a
3640 nested loop for the overflow case. Maintain a lower bound
3641 on the number of available bits in the result and use it to
3642 omit the overflow check.
3643 (from_chars): Adjust appropriately.
3644 * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove.
3645 (__floating_from_chars_hex): Use __from_chars_alnum_to_val
3646 to recognize a hex digit instead.
3648 2022-04-14 Palmer Dabbelt <palmer@rivosinc.com>
3650 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
3652 * configure: Regenerate.
3654 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
3656 * doc/xml/manual/intro.xml: Fix comment.
3658 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
3660 * include/precompiled/stdc++.h: Include <stacktrace> and
3661 <stdatomic.h> for C++23.
3663 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
3666 * include/bits/stl_vector.h (__cpp_lib_constexpr_vector):
3668 * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h):
3670 * include/std/optional (__cpp_lib_optional): Define new value
3672 (__cpp_lib_monadic_optional): Remove.
3673 * include/std/version (__cpp_lib_constexpr_vector): Define.
3674 (__cpp_lib_stdatomic_h): Define.
3675 (__cpp_lib_optional): Define new value for C++23.
3676 (__cpp_lib_monadic_optional): Remove.
3677 * testsuite/20_util/optional/monadic/and_then.cc: Adjust.
3678 * testsuite/20_util/optional/requirements.cc: Adjust for C++23.
3679 * testsuite/20_util/optional/version.cc: Likewise.
3680 * testsuite/23_containers/vector/cons/constexpr.cc: Check
3682 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
3684 * testsuite/20_util/optional/monadic/version.cc: Removed.
3685 * testsuite/23_containers/vector/requirements/version.cc: New test.
3686 * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test.
3688 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
3690 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
3691 * config.h.in: Regenerate.
3692 * configure: Regenerate.
3694 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
3696 * include/std/stacktrace (basic_stacktrace::current): Reallocate
3697 a smaller container if the unused capacity is larger than the
3700 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
3702 * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone
3703 or _Impl::_M_assign to initialize elements in allocated storage.
3704 (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of
3706 (basic_stacktrace::_Impl::_M_destroy()): Replace with ...
3707 (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New
3709 (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct
3710 new element using allocator.
3711 (basic_stacktrace::_Impl::_M_clone): New function.
3712 (basic_stacktrace::_Impl::_M_xclone): New function.
3713 (basic_stacktrace::_Impl::_M_assign): New function.
3715 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
3717 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
3718 Use nothrow new instead of try block for std::allocator.
3719 (basic_stacktrace::_Impl::_M_deallocate): Use delete for
3722 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
3724 * include/std/stacktrace (basic_stacktrace::current): Replace
3725 calls to _M_reserve and _S_curr_cb with call to _M_prepare.
3726 Check return value of backtrace_simple when max depth given.
3727 (basic_stacktrace::_M_reserve): Remove.
3728 (basic_stacktrace::_S_curr_cb): Remove.
3729 (basic_stacktrace::_M_prepare(size_type)): New function to
3730 reserve initial capacity and return callback.
3731 (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n
3732 and remove redundant zeroing of _M_frames and _M_capacity.
3733 (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]]
3734 attribute. Assign _Impl instead of swapping.
3735 * testsuite/19_diagnostics/stacktrace/current.cc: New test.
3737 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
3739 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
3740 Change [[unlikely]] attribute to [[likely]].
3742 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
3745 * include/std/stacktrace (basic_stacktrace::basic_stacktrace):
3746 Fix allocator usage in constructors.
3747 (basic_stacktrace::operator=(const basic_stacktrace&)): Do not
3748 try to reallocate using const allocator.
3749 (basic_stacktrace::operator=(basic_stacktrace&&)): Fix
3750 if-constexpr with non-constant condition. Do not allocate new
3751 storage if allocator propagates. Do not set _M_size if
3753 (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add
3754 assertion that non-propagating allocators are equal.
3755 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test.
3757 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
3759 * include/std/stacktrace (basic_stacktrace::current): Duplicate
3760 implementation into each overload. Add noinline attribute and
3762 (basic_stacktrace::max_size()): Call _Impl::_S_max_size.
3763 (basic_stacktrace::_S_curr_cb()): New function defining lambda.
3764 (basic_stacktrace::_Impl::_S_max_size): New function defining
3765 maximum size in terms of allocator and size_type.
3766 (basic_stacktrace::_Impl::_M_allocate): Check against
3768 * testsuite/19_diagnostics/stacktrace/entry.cc: Call function
3769 for non-constexpr checks. Check line number is correct.
3771 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
3773 * testsuite/20_util/stacktrace/entry.cc: Moved to...
3774 * testsuite/19_diagnostics/stacktrace/entry.cc: ...here.
3775 * testsuite/20_util/stacktrace/synopsis.cc: Moved to...
3776 * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here.
3777 * testsuite/20_util/stacktrace/version.cc: Moved to...
3778 * testsuite/19_diagnostics/stacktrace/version.cc: ...here.
3780 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
3782 * include/experimental/bits/fs_path.h (path): Define special
3783 members after path::_Cmpt is complete.
3785 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
3788 * include/std/expected
3789 (expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
3790 * testsuite/20_util/expected/cons.cc: Check constructor.
3792 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
3795 * include/std/expected (expected<void, E>::swap): Set
3796 _M_has_value to false for objects that previously had a value.
3797 * testsuite/20_util/expected/swap.cc: Fix test to check void
3800 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
3803 * include/std/expected (bad_expected_access): Move constructor
3805 * testsuite/20_util/expected/bad.cc: New test.
3807 2022-04-07 Hans-Peter Nilsson <hp@axis.com>
3809 * testsuite/20_util/expected/requirements.cc: Correct minimal-size
3812 2022-04-02 Jakub Jelinek <jakub@redhat.com>
3815 * include/std/source_location (std::source_location::__impl): Move
3816 definition before using __builtin_ret_type.
3818 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
3820 * include/std/utility (unreachable): Define for C++23.
3821 * include/std/version (__cpp_lib_unreachable): Define.
3822 * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid
3823 arguments. Handle only the function being given.
3824 * testsuite/20_util/unreachable/1.cc: New test.
3825 * testsuite/20_util/unreachable/version.cc: New test.
3827 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
3829 * include/experimental/bits/fs_fwd.h (copy_file): Remove
3830 incorrect noexcept from declaration.
3831 * include/experimental/bits/fs_path.h (path::begin, path::end):
3832 Add noexcept to declarations, to match definitions.
3834 2022-04-01 Timm Bäder <tbaeder@redhat.com>
3836 * include/bits/fs_ops.h: Fix filename in Doxygen comment.
3837 * include/experimental/bits/fs_ops.h: Likewise.
3839 2022-03-31 Jonathan Wakely <jwakely@redhat.com>
3841 * libsupc++/new_opa.cc (aligned_alloc): Add comment.
3843 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
3845 * testsuite/18_support/exception/38732.cc: Disable for C++23.
3846 * testsuite/18_support/headers/exception/synopsis.cc: Likewise.
3847 * testsuite/18_support/unexpected_handler.cc: Likewise.
3849 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
3851 * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
3852 static data members for _Fp_fmt enumerators.
3854 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
3856 * include/std/version (__cpp_lib_variant): Fix conditions to
3858 (__cpp_lib_expected): Fix condition to match <expected>.
3860 2022-03-28 Jonathan Wakely <jwakely@redhat.com>
3862 * testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
3863 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
3864 * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
3865 * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
3866 * testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
3867 * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
3868 * testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
3869 * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
3871 2022-03-27 Jonathan Wakely <jwakely@redhat.com>
3873 * doc/doxygen/user.cfg.in: Add new header.
3874 * include/Makefile.am: Likewise.
3875 * include/Makefile.in: Regenerate.
3876 * include/precompiled/stdc++.h: Add new header.
3877 * include/std/version (__cpp_lib_expected): Define.
3878 * libsupc++/exception [__cplusplus > 202002] (unexpected)
3879 (unexpected_handler, set_unexpected): Do not declare for C++23.
3880 * include/std/expected: New file.
3881 * testsuite/20_util/expected/assign.cc: New test.
3882 * testsuite/20_util/expected/cons.cc: New test.
3883 * testsuite/20_util/expected/illformed_neg.cc: New test.
3884 * testsuite/20_util/expected/observers.cc: New test.
3885 * testsuite/20_util/expected/requirements.cc: New test.
3886 * testsuite/20_util/expected/swap.cc: New test.
3887 * testsuite/20_util/expected/synopsis.cc: New test.
3888 * testsuite/20_util/expected/unexpected.cc: New test.
3889 * testsuite/20_util/expected/version.cc: New test.
3891 2022-03-25 Jonathan Wakely <jwakely@redhat.com>
3893 * include/std/bit (bit_cast, byteswap, endian): Add doxygen
3896 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
3899 * include/std/bit (bit_cast): Add constraints.
3900 * testsuite/26_numerics/bit/bit.cast/105027.cc: New test.
3902 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
3904 * include/std/version [!_GLIBCXX_HOSTED]
3905 (__cpp_lib_hardware_interference_size): Define for freestanding.
3906 (__cpp_lib_bit_cast): Likewise.
3907 (__cpp_lib_is_layout_compatible): Likewise.
3908 (__cpp_lib_is_pointer_interconvertible): Likewise.
3909 (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for
3911 (__cpp_lib_invoke_r): Likewise.
3912 (__cpp_lib_ios_noreplace): Likewise.
3913 (__cpp_lib_monadic_optional): Likewise.
3914 (__cpp_lib_move_only_function): Likewise.
3915 (__cpp_lib_spanstream): Likewise.
3916 (__cpp_lib_stacktrace): Likewise.
3917 (__cpp_lib_string_contains): Likewise.
3918 (__cpp_lib_string_resize_and_overwrite): Likewise.
3919 (__cpp_lib_to_underlying): Likewise.
3921 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
3924 * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
3925 <bits/atomic_wait.h> for freestanding.
3927 2022-03-22 Hans-Peter Nilsson <hp@axis.com>
3929 * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
3930 Conditionalize call to fesetround.
3932 2022-03-21 Jakub Jelinek <jakub@redhat.com>
3935 * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
3936 isn't overloaded if __clang__ is defined.
3938 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
3941 * include/std/any (any(T&&)): Revert change to constraints.
3942 * testsuite/20_util/any/cons/104242.cc: New test.
3944 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
3947 * include/pstl/glue_algorithm_defs.h: Replace <functional> with
3949 * include/pstl/utils.h: Replace <iterator> with <type_traits>.
3950 (__pstl::__internal::__except_handler): Use std::__terminate
3951 instead of std::terminate.
3952 * src/c++17/fs_path.cc: Include <array>.
3953 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include
3955 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
3956 * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
3957 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
3958 * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
3959 * testsuite/25_algorithms/includes/constrained.cc: Likewise.
3960 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
3961 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
3962 * testsuite/25_algorithms/is_permutation/constrained.cc: Include
3964 * testsuite/25_algorithms/is_sorted/constexpr.cc: Include
3966 * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
3968 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
3970 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
3972 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
3974 * testsuite/25_algorithms/lower_bound/constexpr.cc: Include
3976 * testsuite/25_algorithms/max/constrained.cc: Likewise.
3977 * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
3978 * testsuite/25_algorithms/min/constrained.cc: Likewise.
3979 * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
3980 * testsuite/25_algorithms/minmax_element/constrained.cc:
3982 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
3983 * testsuite/25_algorithms/move/93872.cc: Likewise.
3984 * testsuite/25_algorithms/move_backward/93872.cc: Include
3986 * testsuite/25_algorithms/nth_element/constexpr.cc: Include
3988 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
3989 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
3991 * testsuite/25_algorithms/search/constexpr.cc: Likewise.
3992 * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
3993 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
3994 * testsuite/25_algorithms/set_difference/constrained.cc:
3996 * testsuite/25_algorithms/set_intersection/constexpr.cc:
3998 * testsuite/25_algorithms/set_intersection/constrained.cc:
4000 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
4002 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
4003 * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
4004 * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
4005 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
4006 * testsuite/25_algorithms/transform/constrained.cc: Likewise.
4007 * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
4008 * testsuite/25_algorithms/unique/constrained.cc: Likewise.
4009 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
4010 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
4011 * testsuite/std/ranges/adaptors/elements.cc: Include <vector>.
4012 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
4013 * testsuite/std/ranges/adaptors/split.cc: Likewise.
4015 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
4018 * include/bits/fs_path.h (path::make_preferred): Use
4019 handwritten loop instead of std::replace.
4021 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
4023 PR middle-end/104966
4024 * include/bits/locale_facets_nonio.tcc
4025 (__moneypunct_cache::_M_cache): Replace try-catch with RAII and
4026 make all string copies before any stores to *this.
4028 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
4030 * testsuite/util/testsuite_character.h: Fix comment.
4032 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
4035 * config/abi/pre/gnu.ver: Make version for std::from_chars
4036 depend on HAVE_USELOCALE macro.
4037 * testsuite/util/testsuite_abi.cc (compare_symbols): Treat
4038 std::from_chars for floating-point types as undesignated if
4039 not found in the baseline symbols file.
4041 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
4043 * include/std/charconv (__cpp_lib_to_chars): Only define when
4044 both from_chars and to_chars are supported for floating-point
4046 (from_chars, to_chars): Adjust preprocessor conditions guarding
4048 * include/std/version (__cpp_lib_to_chars): Adjust condition to
4049 match <charconv> definition.
4050 * src/c++17/floating_from_chars.cc (from_chars_strtod): New
4052 (from_chars): Simplify preprocessor checks and use
4053 from_chars_strtod when appropriate.
4055 2022-03-14 Jonathan Wakely <jwakely@redhat.com>
4058 * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
4059 hold octets that will be left-shifted.
4061 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
4064 * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
4065 before using fast_float.
4067 2022-03-10 Detlef Vollmann <dv@vollmann.ch>
4070 * include/bits/this_thread_sleep.h: Fix order of #endif and
4071 closing brace of namespace.
4073 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
4075 * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
4078 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
4080 * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
4083 2022-03-09 Patrick Palka <ppalka@redhat.com>
4086 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
4087 Be explicit when narrowing the shifted effective_mantissa,
4088 since it may have an integer-class type.
4090 2022-03-08 Jonathan Wakely <jwakely@redhat.com>
4092 * include/bits/uses_allocator_args.h: Remove incorrect copyright
4095 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
4098 * include/bits/c++config (__terminate, __glibcxx_assert_fail):
4099 Replace _GLIBCXX_VISIBILITY on function with visibility pragma.
4100 (__is_constant_evaluated): Add visibility pragma.
4102 2022-03-07 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
4104 * config/locale/vxworks/ctype_members.cc: Remove <iostream>
4107 2022-03-05 Jonathan Wakely <jwakely@redhat.com>
4109 * include/bits/c++config (__glibcxx_assert_fail): Add visibility
4111 (__terminate): Likewise.
4113 2022-03-04 Jonathan Wakely <jwakely@redhat.com>
4115 * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
4116 inside #if condition.
4118 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
4121 * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
4124 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
4126 * testsuite/17_intro/names.cc (func): Undef on AIX.
4128 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
4131 * libsupc++/compare (strong_order): Add missing support for
4132 floating-point types.
4133 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
4136 2022-03-01 Jonathan Wakely <jwakely@redhat.com>
4138 PR middle-end/103984
4139 * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
4140 default member initializer.
4142 2022-02-24 Jonathan Wakely <jwakely@redhat.com>
4145 * include/std/source_location (source_location::current): Use
4146 deduced type of __builtin_source_location().
4148 2022-02-22 Patrick Palka <ppalka@redhat.com>
4150 * include/bits/ranges_base.h (__detail::__is_initializer_list):
4152 (viewable_range): Adjust as per P2415R2.
4153 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
4154 * include/std/ranges (owning_view): Define as per P2415R2.
4155 (enable_borrowed_range<owning_view>): Likewise.
4156 (views::__detail::__can_subrange): Replace with ...
4157 (views::__detail::__can_owning_view): ... this.
4158 (views::_All::_S_noexcept): Sync with operator().
4159 (views::_All::operator()): Use owning_view instead of subrange
4161 * include/std/version (__cpp_lib_ranges): Adjust value.
4162 * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that
4163 views::all uses owning_view instead of subrange.
4165 * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust
4166 now that rvalue non-view non-borrowed ranges are viewable.
4167 * testsuite/std/ranges/adaptors/split.cc (test06): Likewise.
4169 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
4172 * doc/xml/manual/evolution.xml: Document deprecation.
4173 * doc/html/manual/api.html: Regenerate.
4174 * include/bits/stl_bvector.h (insert(const_iterator, const bool&)):
4175 Remove default argument.
4176 (insert(const_iterator)): New overload with deprecated attribute.
4177 * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc:
4180 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
4182 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace
4183 code that call cat->name() on std::error_category objects.
4184 Identify known categories by symbol name and use a hardcoded
4185 name. Print error code values as enumerators where appopriate.
4186 * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected
4187 name of custom category. Check io_errc and future_errc errors.
4189 2022-02-15 Jonathan Wakely <jwakely@redhat.com>
4192 * include/bits/uses_allocator_args.h (make_obj_using_allocator)
4193 (uninitialized_construct_using_allocator): Add constexpr.
4194 * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr.
4195 * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test.
4197 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4200 * config/locale/gnu/c_locale.h (__convert_from_v): Use inline
4201 namespace for IEEE128 long double mode.
4202 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol
4203 version and export __gnu_cxx_ieee128::__convert_from_v.
4204 * include/bits/locale_facets_nonio.tcc (money_put::__do_put):
4205 Make __ibm128 overload use snprintf directly
4206 * testsuite/util/testsuite_abi.cc: Add new symbol version.
4207 Remove stable IEEE128/LDBL versions.
4209 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4212 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
4214 * include/std/variant: Check feature test macros instead.
4215 * include/std/version: Likewise.
4217 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4219 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4222 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4224 * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
4225 LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.
4227 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
4229 * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
4232 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
4234 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
4235 Ignore -Walloc-larger-than warning.
4236 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4238 * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
4239 to avoid linker error for __atomic_is_lock_free.
4241 2022-02-10 Thomas Rodgers <rodgert@appliantology.com>
4243 * include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
4244 __waiter_base::_S_do_spin_v): Change memory order from relaxed
4247 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
4249 * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
4251 (atomic_fetch_xor_explicit): Likewise.
4252 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check
4253 arithmetic and logical operations for atomic_int.
4255 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
4257 * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
4258 when <dirent.h> is not available.
4259 (_GLIBCXX_HAVE_UNLINKAT): Likewise.
4261 2022-02-09 Thomas Rodgers <rodgert@appliantology.com>
4264 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin
4265 loop inside do loop so that threads failing the wait, reload
4268 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4270 * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first
4271 parameter to _Dir_base&&.
4272 * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove.
4273 * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first
4274 parameter to _Dir_base&&.
4276 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4278 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
4279 checking for CAS on correct word size.
4281 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4283 * testsuite/experimental/filesystem/operations/create_directories.cc:
4284 Adjust expected results for Windows.
4286 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4289 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase):
4290 [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member,
4291 instead of checking for errno values indicating a directory.
4292 * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar
4293 logic to non-throwing overload.
4294 (fs::remove_all(const path&, error_code&)): Add comments.
4295 * src/filesystem/ops-common.h: Likewise.
4297 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4299 * src/filesystem/dir-common.h (_Dir_base::openat): Change return
4300 type to use portable posix::DIR alias.
4302 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4304 * include/c_compatibility/stdatomic.h [__clang__]: Use
4305 #include_next <stdatomic.h>.
4307 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4309 * include/experimental/bits/fs_ops.h (fs::copy_file): Remove
4311 (fs::create_directories): Likewise.
4312 (fs::remove_all): Likewise.
4313 * src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
4314 (fs::create_directories): Likewise.
4315 (fs::remove_all): Likewise.
4317 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4320 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
4322 * config.h.in: Regenerate.
4323 * configure: Regenerate.
4324 * include/bits/fs_dir.h (recursive_directory_iterator): Declare
4325 remove_all overloads as friends.
4326 (recursive_directory_iterator::__erase): Declare new member
4328 * include/bits/fs_fwd.h (remove, remove_all): Declare.
4329 * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to
4330 constructor. Pass file descriptor argument to base constructor.
4331 (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink)
4332 (_Dir::unlink, _Dir::rmdir): Define new member functions.
4333 (directory_iterator): Pass filename_only argument to _Dir
4335 (recursive_directory_iterator::_Dir_stack): Adjust constructor
4336 parameters to take a _Dir rvalue instead of creating one.
4337 (_Dir_stack::orig): Add data member for storing original path.
4338 (_Dir_stack::report_error): Define new member function.
4339 (__directory_iterator_nofollow): Move here from dir-common.h and
4340 fix value to be a power of two.
4341 (__directory_iterator_filename_only): Define new constant.
4342 (recursive_directory_iterator): Construct _Dir object and move
4343 into _M_dirs stack. Pass skip_permission_denied argument to first
4345 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
4346 (recursive_directory_iterator::__erase): Define new member
4348 * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
4349 (fs::remove_all): Use new recursive_directory_iterator::__erase
4351 * src/filesystem/dir-common.h (_Dir_base): Add int parameter to
4352 constructor and use openat to implement nofollow semantics.
4353 (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat):
4354 Define new member functions.
4355 (__directory_iterator_nofollow): Move to fs_dir.cc.
4356 * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to
4358 (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
4360 (recursive_directory_iterator::_Dir_stack): Adjust constructor
4361 parameters to take a _Dir rvalue instead of creating one.
4362 (recursive_directory_iterator): Check for new nofollow option.
4363 Construct _Dir object and move into _M_dirs stack. Pass
4364 skip_permission_denied argument to first advance call.
4365 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
4366 * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all.
4368 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4370 * include/bits/allocator.h: Qualify std::allocator_traits in
4371 deprecated warnings.
4372 * libsupc++/exception (uncaught_exception): Add suggestion to
4375 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4377 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop):
4378 Add [[maybe_unused]] attribute.
4379 * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop):
4382 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4384 * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
4385 custom comparison function for multiset.
4386 * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
4387 comparison function for set.
4389 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4391 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
4392 Change member function to data member of function pointer type.
4394 2022-02-02 Martin Sebor <msebor@redhat.com>
4397 * include/std/array (begin): Declare const member function attribute
4399 (end, rbegin, rend, size, max_size, empty, data): Same.
4400 * testsuite/23_containers/array/capacity/empty.cc: Add test cases.
4401 * testsuite/23_containers/array/capacity/max_size.cc: Same.
4402 * testsuite/23_containers/array/capacity/size.cc: Same.
4403 * testsuite/23_containers/array/iterators/begin_end.cc: New test.
4405 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4407 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
4408 autoconf macro to check whether d_type is present.
4409 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
4412 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4414 * testsuite/27_io/filesystem/iterators/97731.cc: New test.
4415 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
4416 Check follow_directory_symlink option.
4417 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
4420 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4422 * src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
4423 Reset state to past-the-end iterator on error.
4424 (fs::recursive_directory_iterator::pop(error_code&)): Likewise.
4425 (fs::recursive_directory_iterator::pop()): Check _M_dirs before
4427 * src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
4428 for the TS implementation.
4429 * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
4430 * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
4432 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4434 * include/bits/fs_fwd.h (filesystem::perms): Fix comment.
4436 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4439 * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
4440 for stdio_pure and stdio_posix options.
4441 * configure: Regenerate.
4443 2022-02-01 Thomas Rodgers <rodgert@appliantology.com>
4445 * include/bits/atomic_wait.h: Change memory order from
4446 Acquire/Release with relaxed loads to SeqCst+Release for
4447 accesses to the waiter's count.
4449 2022-01-31 Martin Liska <mliska@suse.cz>
4451 * acinclude.m4: Detect *_ld_is_mold and use it.
4452 * configure: Regenerate.
4454 2022-01-30 Hans-Peter Nilsson <hp@axis.com>
4456 * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
4458 * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
4460 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
4463 * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
4464 Add __builtin_unreachable to loop.
4465 * testsuite/23_containers/deque/100516.cc: New test.
4467 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
4469 * include/bits/ranges_base.h (ranges::advance): Avoid signed
4470 overflow. Do nothing if already equal to desired result.
4471 * testsuite/24_iterators/range_operations/advance_overflow.cc:
4474 2022-01-27 Martin Liska <mliska@suse.cz>
4477 * acinclude.m4: Fix typo.
4478 * configure: Regenerate.
4480 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
4483 * include/bits/istream.tcc (basic_istream::sentry): Add braces
4485 * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
4486 Add pragmas to disable bogus warnings from PR 61596.
4488 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
4491 * src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
4492 * src/filesystem/dir.cc (_GNU_SOURCE): Define.
4493 * src/filesystem/ops.cc (_GNU_SOURCE): Define.
4495 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
4498 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
4500 * config.h.in: Regenerate.
4501 * configure: Regenerate.
4502 * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor
4503 and pass it to base class constructor.
4504 (directory_iterator): Pass nofollow flag to _Dir constructor.
4505 (fs::recursive_directory_iterator::increment): Likewise.
4506 * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for
4507 directory_iterator constructor. Move error check outside loop.
4508 * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to
4509 constructor and when it's set use ::open with O_NOFOLLOW and
4511 * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor
4512 and pass it to base class constructor.
4513 (directory_iterator): Pass nofollow flag to _Dir constructor.
4514 (fs::recursive_directory_iterator::increment): Likewise.
4515 * src/filesystem/ops.cc (remove_all): Use nofollow option for
4516 directory_iterator constructor. Move error check outside loop.
4518 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4521 * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
4522 mem-initializer for _M_buf.
4523 (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
4525 * testsuite/27_io/spanstream/2.cc: New test.
4527 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4529 * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS):
4530 Define macro for case where std::from_chars is implemented in
4531 terms of strtod, strtof or strtold.
4532 (buffer_resource, valid_fmt, find_end_of_float, pattern)
4533 (from_chars_impl, make_result, reserve_string): Do not define
4534 unless USE_STRTOD_FOR_FROM_CHARS is defined.
4535 (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and
4536 USE_STRTOD_FOR_FROM_CHARS is defined, instead of
4537 _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it
4540 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4543 * include/bits/hashtable_policy.h (_Map_base): Add partial
4544 specialization for maps with const key types.
4545 * testsuite/23_containers/unordered_map/104174.cc: New test.
4547 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4550 * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
4551 Set members to zero without type punning.
4553 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4555 * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
4557 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4561 * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal):
4562 Define as type long.
4563 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
4565 * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise.
4566 * include/bits/chrono.h (__cpp_lib_chrono): Likewise.
4567 (__cpp_lib_chrono_udls): Likewise.
4568 * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise.
4569 * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise.
4570 * include/bits/range_access.h (__cpp_lib_nonmember_container_access):
4572 * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
4574 * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise.
4575 (__cpp_lib_sample): Likewise.
4576 * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops):
4578 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
4580 * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
4582 * include/bits/stl_map.h (__cpp_lib_map_try_emplace):
4584 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
4586 * include/bits/unique_ptr.h (__cpp_lib_make_unique):
4588 * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
4590 * include/c_global/cmath (__cpp_lib_hypot): Likewise.
4591 * include/c_global/cstddef (__cpp_lib_byte): Likewise.
4592 * include/std/atomic (__cpp_lib_atomic_is_always_lock_free):
4594 * include/std/complex (__cpp_lib_complex_udls): Likewise.
4595 * include/std/filesystem (__cpp_lib_filesystem): Likewise.
4596 * include/std/functional (__cpp_lib_not_fn): Likewise.
4597 (__cpp_lib_boyer_moore_searcher): Likewise.
4598 * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise.
4599 * include/std/mutex (__cpp_lib_scoped_lock): Likewise.
4600 * include/std/numeric (__cpp_lib_gcd_lcm): Likewise.
4601 (__cpp_lib_gcd, __cpp_lib_lcm): Likewise.
4602 * include/std/tuple (__cpp_lib_apply): Likewise.
4603 (__cpp_lib_make_from_tuple): Likewise.
4604 * include/std/type_traits (__cpp_lib_integral_constant_callable)
4605 (__cpp_lib_bool_constant, __cpp_lib_logical_traits)
4606 (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases)
4607 (__cpp_lib_result_of_sfinae, __cpp_lib_void_t)
4608 (__cpp_lib_is_swappable, __cpp_lib_is_invocable)
4609 (__cpp_lib_has_unique_object_representations)
4610 (__cpp_lib_is_aggregate): Likewise.
4611 * include/std/version: Likewise.
4612 * libsupc++/new (__cpp_lib_launder): Likewise.
4614 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4616 * include/std/version (__cpp_lib_shared_ptr_arrays): Fix
4617 condition for C++17 definition.
4619 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4621 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
4623 (_Sp_atomic::_M_ptr): Add default member-initializer.
4624 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
4625 Check constant initialization.
4626 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
4628 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
4630 * src/c++11/cxx11-ios_failure.cc (__constinit): Define as
4631 equivalent attribute for Clang.
4632 * src/c++11/future.cc (__constinit): Likewise.
4633 * src/c++11/system_error.cc (__constinit): Likewise.
4634 * src/c++17/memory_resource.cc (__constinit): Likewise.
4636 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
4638 * scripts/testsuite_flags.in: Only add src/filesystem/.libs and
4639 src/libbacktrace/.libs to LDFLAGS if those directories exist.
4641 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4643 * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
4645 * configure: Regenerate.
4647 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4650 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
4653 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4655 * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
4656 linker search paths.
4657 * src/Makefile.am: Fix src/debug/libbacktrace build.
4658 * src/Makefile.in: Regenerate.
4659 * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
4660 variable. Use symlinks for the source files.
4661 * src/libbacktrace/Makefile.in: Regenerate.
4663 2022-01-19 Matthias Kretz <m.kretz@gsi.de>
4665 * include/experimental/bits/simd.h (__floating_point_flags): Do
4666 not rely on math_errhandling to expand to a constant expression.
4668 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4670 * doc/xml/manual/evolution.xml: Document deprecations.
4671 * doc/xml/manual/status_cxx2017.xml: Update status.
4672 * doc/html/*: Regenerate.
4674 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4676 * include/bits/stl_tempbuf.h (get_temporary_buffer): Change
4677 _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
4679 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4681 * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
4684 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4687 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
4688 Only use __thread_relax if __cpp_lib_atomic_wait is defined.
4690 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4693 * include/bits/basic_string.h (basic_string(nullptr_t)): Only
4695 (operator=(nullptr_t)): Likewise.
4696 * include/bits/cow_string.h: Likewise.
4697 * include/std/string_view (basic_string_view(nullptr_t)):
4699 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust
4700 expected error. Add examples that become ill-formed in C++23.
4701 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
4702 Adjust expected errors.
4703 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
4706 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4709 * include/bits/stl_iterator.h (reverse_iterator): Check
4710 __cpp_lib_concepts instead of __cplusplus.
4712 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4715 * include/bits/stl_pair.h (pair): Adjust constraints on
4716 deprecated constructors accepting literal zero as null pointer
4717 constant. Improve wording of deprecated attribute.
4718 * testsuite/20_util/pair/cons/99957.cc: Check that deprecated
4719 constructors do not cause ambiguities for copyable types.
4721 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4723 * include/bits/stl_function.h (ptr_fun): Fix suggestion for
4724 non-deprecated alternative.
4726 2022-01-18 Tom Honermann <tom@honermann.net>
4728 * acinclude.m4: Define config macros if uchar.h provides
4729 c8rtomb() and mbrtoc8().
4730 * config.h.in: Regenerate.
4731 * configure: Regenerate.
4732 * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define.
4733 * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise.
4734 * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise.
4735 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
4737 * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
4740 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4742 * include/Makefile.am: Install new header.
4743 * include/Makefile.in: Regenerate.
4744 * include/c_compatibility/stdatomic.h: New file.
4745 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test.
4747 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4750 * src/c++17/fast_float/LOCAL_PATCHES: Update.
4751 * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
4752 Define in terms of __BYTE_ORDER__.
4754 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4757 * src/c++17/fast_float/LOCAL_PATCHES: UPDATE.
4758 * src/c++17/fast_float/fast_float.h (round): Use explicit
4759 template argument list for std::min.
4761 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4763 * doc/xml/manual/status_cxx2017.xml: Update C++17 status.
4764 * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for
4766 * doc/html/manual/status.html: Regenerate.
4768 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4770 * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
4772 * configure: Regenerate.
4774 2022-01-17 Patrick Palka <ppalka@redhat.com>
4776 * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
4777 Conditionally define, and use it to conditionally include
4779 (from_chars): Use fast_float for float and double when
4782 2022-01-17 Patrick Palka <ppalka@redhat.com>
4784 * src/c++17/fast_float/LOCAL_PATCHES: Update.
4785 * src/c++17/fast_float/fast_float.h (from_chars_advanced): In
4786 case of over/underflow, return errc::result_out_of_range and don't
4789 2022-01-17 Patrick Palka <ppalka@redhat.com>
4791 * src/c++17/fast_float/LOCAL_PATCHES: Update.
4792 * src/c++17/fast_float/fast_float.h: Apply local modifications.
4794 2022-01-17 Patrick Palka <ppalka@redhat.com>
4796 * src/c++17/fast_float/LOCAL_PATCHES: New file.
4797 * src/c++17/fast_float/MERGE: New file.
4798 * src/c++17/fast_float/README.md: New file, copied from the
4799 fast_float repository.
4800 * src/c++17/fast_float/fast_float.h: New file, an amalgamation
4801 of the fast_float library.
4803 2022-01-17 Patrick Palka <ppalka@redhat.com>
4805 * src/c++17/floating_from_chars.cc: Include <bit>.
4806 (ascii_to_hexit, starts_with_ci): Conditionally define.
4807 (__floating_from_chars_hex): Conditionally define.
4808 (from_chars): Use __floating_from_chars_hex for
4809 chars_format::hex parsing of binary32/64 float/double.
4810 (testsuite/20_util/from_chars/7.cc): New test.
4811 * testsuite/20_util/from_chars/7.cc: New file.
4813 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
4815 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
4816 * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
4817 * include/Makefile.am: Add new header.
4818 * include/Makefile.in: Regenerate.
4819 * include/std/stacktrace: New header.
4820 * include/std/version (__cpp_lib_stacktrace): Define.
4821 * Makefile.in: Regenerate.
4822 * config.h.in: Regenerate.
4823 * configure: Regenerate.
4824 * doc/Makefile.in: Regenerate.
4825 * libsupc++/Makefile.in: Regenerate.
4826 * po/Makefile.in: Regenerate.
4827 * python/Makefile.in: Regenerate.
4828 * src/Makefile.am: Regenerate.
4829 * src/Makefile.in: Regenerate.
4830 * src/c++11/Makefile.in: Regenerate.
4831 * src/c++17/Makefile.in: Regenerate.
4832 * src/c++20/Makefile.in: Regenerate.
4833 * src/c++98/Makefile.in: Regenerate.
4834 * src/filesystem/Makefile.in: Regenerate.
4835 * testsuite/Makefile.in: Regenerate.
4836 * src/libbacktrace/Makefile.am: New file.
4837 * src/libbacktrace/Makefile.in: New file.
4838 * src/libbacktrace/backtrace-rename.h: New file.
4839 * src/libbacktrace/backtrace-supported.h.in: New file.
4840 * src/libbacktrace/config.h.in: New file.
4841 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
4843 * testsuite/20_util/stacktrace/entry.cc: New test.
4844 * testsuite/20_util/stacktrace/synopsis.cc: New test.
4845 * testsuite/20_util/stacktrace/version.cc: New test.
4847 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
4849 * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
4851 * doc/html/manual/status.html: Regenerate.
4853 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
4856 * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
4857 * include/Makefile.in: Regenerate.
4858 * testsuite/17_intro/headers/c++1998/103650.cc: New test.
4860 2022-01-17 Matthias Kretz <m.kretz@gsi.de>
4862 * include/experimental/bits/simd.h (__floating_point_flags): Do
4863 not rely on the presence of the math_errhandling macro.
4865 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
4867 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
4868 to qualified-id for dependent type.
4870 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
4872 * doc/xml/manual/status_cxx2020.xml: Update.
4873 * doc/html/manual/status.html: Regenerate.
4875 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
4876 Thomas Rodgers <trodgers@redhat.com>
4878 * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
4880 (_Sp_atomic): New class template.
4881 (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
4883 * include/bits/shared_ptr_base.h (__shared_count, __weak_count)
4884 (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
4885 * include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
4886 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
4888 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
4890 2022-01-15 Matthias Kretz <m.kretz@gsi.de>
4892 * include/experimental/bits/simd.h: Move feature detection bools
4893 and add __have_avx512bitalg, __have_avx512vbmi2,
4894 __have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
4895 __have_avx512vnni, __have_avx512vpopcntdq.
4896 (__detail::__machine_flags): New function which returns a unique
4897 uint64 depending on relevant -m and -f flags.
4898 (__detail::__odr_helper): New type alias for either an anonymous
4899 type or a type specialized with the __machine_flags number.
4900 (_SimdIntOperators): Change template parameters from _Impl to
4901 _Tp, _Abi because _Impl now has an __odr_helper parameter which
4902 may be _OdrEnforcer from the anonymous namespace, which makes
4903 for a bad base class.
4904 (many): Either add __odr_helper template parameter or mark as
4906 * include/experimental/bits/simd_detail.h: Add defines for
4907 AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
4908 AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
4909 * include/experimental/bits/simd_builtin.h: Add __odr_helper
4910 template parameter or mark as always_inline.
4911 * include/experimental/bits/simd_fixed_size.h: Ditto.
4912 * include/experimental/bits/simd_math.h: Ditto.
4913 * include/experimental/bits/simd_scalar.h: Ditto.
4914 * include/experimental/bits/simd_neon.h: Add __odr_helper
4916 * include/experimental/bits/simd_ppc.h: Ditto.
4917 * include/experimental/bits/simd_x86.h: Ditto.
4919 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
4921 * testsuite/22_locale/numpunct/members/char/3.cc:
4922 Require pt_PT locale instead of nl_NL.
4923 (test02): Use pt_PT locale instead of nl_NL.
4925 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
4930 * include/backward/binders.h (bind1st, bind2nd): Add deprecated
4932 * include/bits/refwrap.h (_Maybe_unary_or_binary_function):
4933 Disable deprecated warnings for base classes.
4934 (_Reference_wrapper_base): Likewise.
4935 * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
4936 * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
4937 * include/bits/stl_function.h (unary_function, binary_function):
4938 Add deprecated attribute.
4939 (unary_negate, not1, binary_negate, not2, ptr_fun)
4940 (pointer_to_unary_function, pointer_to_binary_function)
4941 (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
4942 (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
4943 (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
4945 * include/bits/stl_iterator.h: Disable deprecated warnings for
4946 std::iterator base classes.
4947 * include/bits/stl_iterator_base_types.h (iterator): Add
4948 deprecated attribute.
4949 * include/bits/stl_map.h (map::value_compare): Disable
4950 deprecated warnings for base class.
4951 * include/bits/stl_multimap.h (multimap::value_compare):
4953 * include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
4954 Add deprecated attribute.
4955 * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
4956 * include/bits/stream_iterator.h: Disable deprecated warnings.
4957 * include/bits/streambuf_iterator.h: Likewise.
4958 * include/ext/bitmap_allocator.h: Remove unary_function base
4960 * include/ext/functional: Disable deprecated warnings.
4961 * include/ext/rope: Likewise.
4962 * include/ext/throw_allocator.h: Likewise.
4963 * include/std/type_traits (result_of): Add deprecated attribute.
4964 * include/tr1/functional: Disable deprecated warnings.
4965 * include/tr1/functional_hash.h: Likewise.
4966 * testsuite/20_util/function_objects/binders/1.cc: Add
4967 -Wno-disable-deprecations.
4968 * testsuite/20_util/function_objects/binders/3113.cc: Likewise.
4969 * testsuite/20_util/function_objects/constexpr.cc: Add
4971 * testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
4972 * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
4973 * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
4975 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
4977 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
4979 * testsuite/20_util/reference_wrapper/24803.cc:
4981 * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
4982 C++20 and check for absence of nested types.
4983 * testsuite/20_util/shared_ptr/comparison/less.cc: Remove
4984 std::binary_function base class.
4985 * testsuite/20_util/temporary_buffer.cc: Add dg-warning.
4986 * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
4987 std::iterator base class.
4988 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
4990 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
4992 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
4994 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
4996 * testsuite/24_iterators/istreambuf_iterator/92285.cc:
4998 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
5000 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
5002 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
5004 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
5006 * testsuite/25_algorithms/copy/34595.cc:
5008 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
5010 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
5011 Disable deprecated warnings.
5012 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
5014 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
5016 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
5018 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
5020 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
5022 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
5024 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
5026 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
5028 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
5030 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
5032 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
5034 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
5036 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
5038 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
5040 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
5042 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
5044 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
5046 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
5048 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
5050 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
5052 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
5054 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
5056 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
5058 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
5060 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
5062 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
5064 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
5066 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
5068 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
5070 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
5072 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
5074 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
5076 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
5078 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
5080 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
5082 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
5084 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
5086 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
5088 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
5090 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
5092 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
5094 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
5096 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
5098 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
5100 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
5102 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
5104 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
5106 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
5108 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
5110 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
5112 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
5113 Disable deprecated warnings.
5114 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
5116 * testsuite/util/regression/trait/erase_if_fn.hpp: Remove
5117 std::unary_function base classes.
5118 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
5119 Remove std::iterator base classes.
5121 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5123 * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
5124 Correct type of macro value.
5125 (shared_ptr): Add additional friend declarations.
5126 (make_shared, allocate_shared): Constrain existing overloads and
5127 remove static_assert.
5128 * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
5130 (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
5131 specialization for use with make_shared_for_overwrite.
5132 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
5133 (_Sp_counted_array_base): New class template.
5134 (_Sp_counted_array): New class template.
5135 (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
5136 New constructor for allocating shared arrays.
5137 (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
5138 * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
5140 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
5141 (__cpp_lib_smart_ptr_for_overwrite): New macro.
5142 * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
5144 * testsuite/20_util/shared_ptr/creation/array.cc: New test.
5145 * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
5146 * testsuite/20_util/shared_ptr/creation/version.cc: New test.
5147 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
5148 feature test macro. Test non-trivial default-initialization.
5150 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5152 * include/bits/stl_construct.h (_Construct, _Construct_novalue):
5153 Also cast away cv-qualifiers when converting pointer to void.
5154 * testsuite/20_util/allocator/void.cc: Test construct function
5155 with cv-qualified types.
5157 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5160 * include/bits/stl_iterator.h (common_iterator): Use
5161 std::construct_at instead of placement new.
5162 * testsuite/24_iterators/common_iterator/1.cc: Check copy
5163 construction is usable in constant expressions.
5165 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5167 * doc/xml/manual/status_cxx2011.xml: Document new tokens
5168 accepted by std::random_device constructor.
5169 * doc/html/manual/status.html: Regenerate.
5171 2022-01-12 Patrick Palka <ppalka@redhat.com>
5173 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
5176 2022-01-12 Patrick Palka <ppalka@redhat.com>
5179 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
5180 Track the excess precision separately from the effective
5181 precision. Avoid overflow in bounds check by splitting it into
5183 (__floating_to_chars_precision): Avoid overflow in bounds checks
5185 * testsuite/20_util/to_chars/103955.cc: New test.
5187 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5190 * include/Makefile.am: Install <source_location> for
5192 * include/Makefile.in: Regenerate.
5193 * include/std/version (__cpp_lib_source_location): Define for
5196 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5198 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
5199 Add neoxcept (LWG 3593).
5201 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5203 * include/std/ranges (ranges::__detail::__box): Add constexpr to
5204 assignment operators (LWG 3572).
5205 * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
5206 view that uses copyable-box.
5208 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5211 * include/Makefile.am: Install <coroutine> for freestanding.
5212 * include/Makefile.in: Regenerate.
5213 * include/std/coroutine: Adjust headers and preprocessor
5215 (__coroutine_traits_impl): Use concepts when available.
5216 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
5218 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5220 * include/std/ostream (operator<<(basic_ostream&, charT)):
5221 Use unformatted input if no padding is needed.
5222 (operator<<(basic_ostream<char>&, char)): Likewise.
5224 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5227 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
5229 * include/std/variant (__cpp_lib_variant): Only define C++20
5230 value when the compiler is known to support conditionally
5231 trivial destructors.
5232 * include/std/version (__cpp_lib_variant): Likewise.
5234 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5236 * include/bits/stl_iterator.h (common_iterator): Add constexpr
5237 to all member functions (LWG 3574).
5238 * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
5239 tests as constant expressions.
5240 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
5242 2022-01-10 Jakub Jelinek <jakub@redhat.com>
5245 * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
5246 (time_get::_M_extract_via_format): Declare new method with
5247 __time_get_state& as an extra argument.
5248 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
5249 __state argument, set various fields in it while parsing. Handle %j,
5250 %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
5251 for %p immediately. Add a wrapper around the method without the
5252 __state argument for backwards compatibility.
5253 (_M_extract_num): Remove all __len == 4 special cases.
5254 (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
5255 initialize __state, pass it to _M_extract_via_format and finalize it
5257 (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
5258 69-99 to 1969-1999. For 3-4 digit parsed years use that as year.
5259 (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
5260 version, don't call do_get but call _M_extract_via_format instead to
5262 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
5263 with extra __time_get_state and __time_get_state::_M_finalize_state.
5264 * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
5265 day_of_the_year): New functions in anon namespace.
5266 (mon_yday): New var in anon namespace.
5267 (__time_get_state::_M_finalize_state): Define.
5268 * testsuite/22_locale/time_get/get/char/4.cc: New test.
5269 * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
5270 * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
5271 as year 197AD instead of error.
5272 * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
5273 year 2001 instead of error.
5274 * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
5275 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
5276 197 as year 197AD instead of error.
5277 * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
5278 1 as year 2001 instead of error.
5279 * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
5281 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5284 * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
5285 nothing for freestanding builds.
5286 (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
5287 * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
5288 with --without-headers. Do not use GCC_HEADER_STDINT for
5289 freestanding builds.
5290 * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
5291 for freestanding builds.
5292 * configure: Regenerate.
5293 * Makefile.in: Regenerate.
5294 * doc/Makefile.in: Regenerate.
5295 * include/Makefile.in: Regenerate.
5296 * libsupc++/Makefile.in: Regenerate.
5297 * po/Makefile.in: Regenerate.
5298 * python/Makefile.in: Regenerate.
5299 * src/Makefile.in: Regenerate.
5300 * src/c++11/Makefile.in: Regenerate.
5301 * src/c++17/Makefile.in: Regenerate.
5302 * src/c++20/Makefile.in: Regenerate.
5303 * src/c++98/Makefile.in: Regenerate.
5304 * src/filesystem/Makefile.in: Regenerate.
5305 * testsuite/Makefile.in: Regenerate.
5307 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5309 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
5310 Add dg-timeout-factor directive.
5311 * testsuite/28_regex/basic_regex/84110.cc: Likewise.
5312 * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
5313 * testsuite/28_regex/match_results/102667.cc: Likewise.
5315 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5317 * doc/xml/manual/using.xml: Update documentation around default
5319 * doc/html/*: Regenerate.
5321 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5324 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
5325 * src/c++17/Makefile.in: Regenerate.
5327 2022-01-09 Sandra Loosemore <sandra@codesourcery.com>
5329 * testsuite/18_support/type_info/constexpr.cc: Add explicit
5330 -fdelete-null-pointer-checks option.
5332 2022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
5333 Jonathan Wakely <jwakely@redhat.com>
5336 * include/bits/forward_list.tcc (forward_list::merge): Check for
5338 * testsuite/23_containers/forward_list/operations/merge.cc: New test.
5340 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
5342 * include/bits/regex.h (basic_regex, match_results): Qualify
5343 name in friend declaration, to work around Clang bug.
5345 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
5347 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
5349 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
5352 * include/std/charconv (__from_chars_alpha_to_num): Return
5353 char instead of unsigned char. Change invalid return value to
5354 127 instead of using numeric trait.
5355 (__from_chars_alnum): Fix comment. Do not use std::isdigit.
5356 Change type of variable to char.
5358 2022-01-05 François Dumont <fdumont@gcc.gnu.org>
5361 * include/bits/hashtable_policy.h
5362 (_Hashtable_hash_traits<_Hash>): New.
5363 (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
5364 (_Hashtable_base<>::_M_key_equals): New.
5365 (_Hashtable_base<>::_M_equals): Use latter.
5366 (_Hashtable_base<>::_M_key_equals_tr): New.
5367 (_Hashtable_base<>::_M_equals_tr): Use latter.
5368 * include/bits/hashtable.h
5369 (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
5370 (_Hashtable<>::find): Loop through elements to look for key if size is lower
5371 than __small_size_threshold().
5372 (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
5373 (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
5374 (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
5375 (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
5376 (_Hashtable<>::_M_find_before_node(const key_type&)): New.
5377 (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
5378 (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
5379 * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
5380 * testsuite/util/testsuite_performance.h
5381 (report_performance): Use 9 width to display memory.
5382 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
5383 New performance test case.
5385 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5388 * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
5389 Relax constraints on string_view parameter.
5390 * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
5392 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
5394 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5396 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
5398 * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
5399 * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
5400 * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
5402 (type_info::__equal): Define alias symbol.
5403 * libsupc++/typeinfo (type_info::before): Combine different
5404 implementations into one.
5405 (type_info::operator==): Likewise. Use address equality for
5406 constant evaluation. Call __equal for targets that require the
5407 definition to be non-inline.
5408 * testsuite/18_support/type_info/constexpr.cc: New test.
5410 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5412 * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
5413 class and virtual functions as 'final'.
5414 (io_category_instance): Use constinit union to make the object
5416 * src/c++11/future.cc (future_error_category): Define class and
5417 virtual functions as 'final'.
5418 (future_category_instance): Use constinit union.
5420 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5422 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
5423 versioned namespace from the type name that is printed.
5425 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5427 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
5428 printer for std::regex NFA states.
5430 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5432 * testsuite/23_containers/forward_list/operations/1.cc: Fill in
5433 placeholders in comments.
5434 * testsuite/23_containers/forward_list/operations/2.cc:
5436 * testsuite/23_containers/forward_list/operations/3.cc:
5438 * testsuite/23_containers/forward_list/operations/4.cc:
5440 * testsuite/23_containers/forward_list/operations/5.cc:
5442 * testsuite/23_containers/forward_list/operations/6.cc:
5444 * testsuite/23_containers/forward_list/operations/7.cc:
5447 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5450 * include/bits/stl_deque.h (operator-): Do not use 0 as null
5453 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5455 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
5456 Use std::_Construct for construct.
5458 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5461 * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
5462 * doc/html/faq.html: Regenerate.
5464 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5466 * include/bits/regex.h (__regex_algo_impl): Change __policy and
5467 __match_mode template parameters to be function parameters.
5468 (regex_match, regex_search): Pass policy and match mode as
5470 * include/bits/regex.tcc (__regex_algo_impl): Change template
5471 parameters to function parameters.
5472 * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
5473 'if constexpr' for conditions using template parameters.
5474 (_RegexTranslator): Likewise.
5475 * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
5477 * testsuite/util/testsuite_regex.h (regex_match_debug)
5478 (regex_search_debug): Move template arguments to function
5481 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5483 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
5484 results even if the match failed.
5486 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5488 * include/bits/regex_compiler.tcc: Adjust all calls to
5489 __throw_regex_error.
5490 * include/bits/regex_error.h (__throw_regex_error): Add noreturn
5492 * include/bits/regex_scanner.tcc: Likewise.
5493 * src/c++11/regex.cc (desc): New helper function.
5494 (regex_error::regex_error(error_type)): Use desc to get a string
5495 corresponding to the error code.
5498 Copyright (C) 2022 Free Software Foundation, Inc.
5500 Copying and distribution of this file, with or without modification,
5501 are permitted in any medium without royalty provided the copyright
5502 notice and this notice are preserved.