1 2022-10-12 François Dumont <fdumont@gcc.gnu.org>
3 * include/debug/string: Add using _Base::compare.
4 (__gnu_debug::basic_string<>::compare(const basic_string<>&)): Remove.
5 (__gnu_debug::basic_string<>::compare(size_type, size_type, const basic_string<>&)):
7 (__gnu_debug::basic_string<>::compare(size_type, size_type, const basic_string<>&,
8 size_type, size_type)): Remove.
9 * testsuite/util/testsuite_string.h [_GLIBCXX_TEST_DEBUG_STRING]: Include <debug/string>.
10 * testsuite/21_strings/basic_string/operations/compare/char/1.cc: Include testsuite_string.h
11 and use __gnu_test::string.
12 * testsuite/21_strings/basic_string/operations/compare/char/13650.cc: Likewise.
13 * testsuite/21_strings/basic_string/operations/compare/char/2.cc: Likewise.
14 * testsuite/21_strings/basic_string/operations/rfind/char/1.cc: Likewise.
15 * testsuite/21_strings/basic_string/operations/rfind/char/2.cc: Likewise.
16 * testsuite/21_strings/basic_string/operations/rfind/char/3.cc: Likewise.
17 * testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc:
18 Include testsuite_string.h
19 and use __gnu_test::wstring.
20 * testsuite/21_strings/basic_string/operations/compare/wchar_t/13650.cc: Likewise.
21 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc: Likewise.
23 2022-10-12 Patrick Palka <ppalka@redhat.com>
25 * include/std/ranges (repeat_view): Define.
26 (repeat_view::_Iterator): Define.
27 (views::__detail::__can_repeat_view): Define.
28 (views::__detail::__can_bounded_repeat_view): Define.
29 (views::_Repeat, views::repeat): Define.
30 * testsuite/std/ranges/repeat/1.cc: New test.
32 2022-10-12 Martin Liska <mliska@suse.cz>
34 * configure: Regenerate.
36 2022-10-11 Jonathan Wakely <jwakely@redhat.com>
39 * libsupc++/eh_alloc.cc (pool): Change preprocessor condition
40 for using __mutex from __GTHREADS to _GLIBCXX_HOSTED.
41 (pool::allocate): Remove namespace qualification to use
42 pool::__scoped_lock instead of __gnu_cxx::__scoped_lock.
44 2022-10-11 Jonathan Wakely <jwakely@redhat.com>
47 * Makefile.in: Regenerate.
48 * acinclude.m4 (GLIBCXX_EMERGENCY_EH_ALLOC): New macro.
49 * configure: Regenerate.
50 * configure.ac: Use GLIBCXX_EMERGENCY_EH_ALLOC.
51 * crossconfig.m4: Check for secure_getenv.
52 * doc/Makefile.in: Regenerate.
53 * doc/xml/manual/configure.xml: Document new configure options.
54 * doc/xml/manual/evolution.xml: Document addition of tunables.
55 * doc/xml/manual/using_exceptions.xml: Document emergency
57 * doc/html/*: Regenerate.
58 * include/Makefile.in: Regenerate.
59 * libsupc++/Makefile.am: Use EH_POOL_FLAGS.
60 * libsupc++/Makefile.in: Regenerate.
61 * libsupc++/eh_alloc.cc (EMERGENCY_OBJ_SIZE): Define in units
62 of sizeof(void*) not including the ABI's exception header.
63 (EMERGENCY_OBJ_COUNT): Define as target-independent calculation
65 (MAX_OBJ_COUNT): Define macro for upper limit on pool size.
66 (pool) [_GLIBCXX_EH_POOL_STATIC]: Use fixed-size buffer.
67 (pool::buffer_size_in_bytes): New static member function.
68 (pool::pool): Parse GLIBCXX_TUNABLES environment variable to set
70 (pool::in_pool): Use std::less<void*> for total order.
71 (__freeres) [_GLIBCXX_EH_POOL_STATIC]: Do nothing.
72 (__cxa_free_exception, __cxa_free_dependent_exception): Add
73 [[unlikely]] attributes.
74 * po/Makefile.in: Regenerate.
75 * python/Makefile.in: Regenerate.
76 * src/Makefile.in: Regenerate.
77 * src/c++11/Makefile.in: Regenerate.
78 * src/c++17/Makefile.in: Regenerate.
79 * src/c++20/Makefile.in: Regenerate.
80 * src/c++98/Makefile.in: Regenerate.
81 * src/filesystem/Makefile.in: Regenerate.
82 * src/libbacktrace/Makefile.in: Regenerate.
83 * testsuite/Makefile.in: Regenerate.
85 2022-10-11 Olivier Hainque <hainque@adacore.com>
86 Olivier Hainque <hainque@adacore.com>
88 * configure: Regenerate.
90 2022-10-10 Jonathan Wakely <jwakely@redhat.com>
92 * include/std/type_traits (make_signed, make_unsigned): Remove
93 constraints on primary template.
94 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
95 Undo changes to expected error in C++20 mode.
96 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
98 * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
100 * testsuite/20_util/make_signed/requirements/uninstantiated.cc:
102 * testsuite/20_util/make_unsigned/requirements/uninstantiated.cc:
105 2022-10-10 Jonathan Wakely <jwakely@redhat.com>
107 * include/std/type_traits (make_signed, make_unsigned): Add
108 specializations for cv bool. Add requires-clause for C++20 to
109 improve diagnostics for non-integral, non-enum cases.
110 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
112 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
114 * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc:
115 Adjust expected errors for C++20 and later.
116 * testsuite/lib/prune.exp: Prune "in requirements [with ...]"
117 lines from diagnostics.
119 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
121 * acinclude.m4 (GLIBCXX_ENABLE_HOSTED): Add libstdcxx-hosted
122 enable arg as an alias for hosted-libstdcxx enable arg.
123 * configure: Regenerate.
125 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
127 * include/bits/std_function.h: Include <new> but do not include
128 <bits/stl_function.h>.
129 * include/std/functional: Do not include <new>.
131 2022-10-07 Jonathan Wakely <jwakely@redhat.com>
133 * doc/xml/manual/intro.xml: Add role="bold" attribute to
134 emphasis elements for issue titles.
135 * doc/html/manual/bugs.html: Regenerate.
137 2022-10-05 Jonathan Wakely <jwakely@redhat.com>
139 * include/Makefile.in: Regenerate.
141 2022-10-05 Jonathan Wakely <jwakely@redhat.com>
143 * include/bits/invoke.h (__invoke_r): Check
144 __has_builtin(__reference_converts_from_temporary) before using
147 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
149 * testsuite/std/ranges/adaptors/join_with/1.cc: Remove unused
151 (test04): Remove constexpr for old std::string ABI and test at
154 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
156 * include/std/type_traits (remove_cv): Use __remove_cv built-in.
157 (remove_reference): Use __remove_reference built-in.
158 (remove_cvref): Use __remove_cvref built-in. Remove inheritance
159 for fallback implementation.
161 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
163 * include/bits/random.h (__is_seed_seq): Replace with ...
164 (_If_seed_seq_for): ... this.
165 * include/ext/random: Adjust to use _If_seed_seq_for.
167 2022-10-04 Patrick Palka <ppalka@redhat.com>
169 * include/std/ranges (join_with_view::_Iterator::operator*):
170 Replace use of std::visit with manual visitation.
171 (join_with_view::_Iterator::operator++): Likewise.
172 (join_with_view::_Iterator::operator--): Likewise.
173 (join_with_view::_Iterator::iter_move): Likewise.
174 (join_with_view::_Iterator::iter_swap): Likewise.
176 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
178 * testsuite/25_algorithms/stable_sort/mem_check.cc: Do nto run
181 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
184 * include/std/coroutine: Remove all _GLIBCXXHOSTED preprocessor
187 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
190 * include/c_global/cstdint [!_GLIBCXX_HOSTED]: Include
191 <stdint-gcc.h> directly.
193 2022-10-04 Jonathan Wakely <jwakely@redhat.com>
196 * include/bits/functexcept.h [!_GLIBCXX_HOSTED]
197 (__throw_invalid_argument, __throw_out_of_range)
198 (__throw_out_of_range_fmt, __throw_runtime_error)
199 (__throw_overflow_error): Define inline.
200 * include/std/bitset (_M_copy_from_ptr) [!_GLIBCXX_HOSTED]:
201 Replace __builtin_abort with __throw_invalid_argument.
203 2022-10-04 Patrick Palka <ppalka@redhat.com>
205 * include/std/ranges: Include <variant> for C++23.
206 (__detail::__compatible_joinable_ranges): Define.
207 (__detail::__bidirectional_common): Define.
208 (join_with_view): Define.
209 (join_with_view::_Iterator): Define.
210 (join_with_view::_Sentinel): Define.
211 (views::__detail::__can_join_with_view): Define.
212 (views::_JoinWith, views::join_with): Define.
213 * testsuite/std/ranges/adaptors/join_with/1.cc: New test.
215 2022-10-04 Arsen Arsenović <arsen@aarsen.me>
217 * include/std/iostream: Use ///< for inline documentation.
218 * include/std/limits: Likewise.
219 * include/experimental/internet: Likewise.
221 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
223 * doc/xml/manual/status_cxx2020.xml: Update C++20 status.
224 * doc/html/manual/status.html: Regenerate.
226 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
229 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc:
231 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise.
232 * testsuite/18_support/new_nothrow.cc: Likewise.
233 * testsuite/20_util/allocator/105975.cc: Likewise.
234 * testsuite/20_util/allocator/14176.cc: Likewise.
235 * testsuite/20_util/allocator/64135.cc: Likewise.
236 * testsuite/20_util/allocator/89510.cc: Likewise.
237 * testsuite/20_util/allocator/lwg3190.cc: Likewise.
238 * testsuite/20_util/allocator/overaligned.cc: Likewise.
239 * testsuite/20_util/allocator/rebind_c++20.cc: Likewise.
240 * testsuite/20_util/allocator/requirements/constexpr.cc:
242 * testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc:
244 * testsuite/20_util/allocator/requirements/typedefs.cc:
246 * testsuite/20_util/allocator/requirements/typedefs_c++20.cc:
248 * testsuite/20_util/allocator/void.cc: Likewise.
249 * testsuite/20_util/allocator_traits/header-2.cc: Likewise.
250 * testsuite/20_util/allocator_traits/header.cc: Likewise.
251 * testsuite/20_util/allocator_traits/members/92878_92947.cc:
253 * testsuite/20_util/allocator_traits/members/pointers.cc:
255 * testsuite/20_util/allocator_traits/requirements/typedefs.cc:
257 * testsuite/20_util/bad_function_call/cons_virtual_derivation.cc:
259 * testsuite/20_util/bind/42593.cc: Likewise.
260 * testsuite/20_util/bitset/access/dr396.cc: Likewise.
261 * testsuite/20_util/bitset/access/to_string.cc: Likewise.
262 * testsuite/20_util/bitset/cons/16020.cc: Likewise.
263 * testsuite/20_util/bitset/cons/dr1325-2.cc: Likewise.
264 * testsuite/20_util/bitset/cons/dr396.cc: Likewise.
265 * testsuite/20_util/bitset/debug/invalidation/1.cc: Likewise.
266 * testsuite/20_util/bitset/ext/15361.cc: Likewise.
267 * testsuite/20_util/bitset/operations/13838.cc: Likewise.
268 * testsuite/20_util/bitset/operations/96303.cc: Likewise.
269 * testsuite/20_util/bitset/version.cc: Likewise.
270 * testsuite/20_util/enable_shared_from_this/56383.cc: Likewise.
271 * testsuite/20_util/enable_shared_from_this/89303.cc: Likewise.
272 * testsuite/20_util/enable_shared_from_this/members/assign.cc:
274 * testsuite/20_util/enable_shared_from_this/members/const.cc:
276 * testsuite/20_util/enable_shared_from_this/members/reinit.cc:
278 * testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc:
280 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc:
282 * testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc:
284 * testsuite/20_util/forward/1.cc: Likewise.
285 * testsuite/20_util/forward/1_neg.cc: Likewise.
286 * testsuite/20_util/function/1.cc: Likewise.
287 * testsuite/20_util/function/10.cc: Likewise.
288 * testsuite/20_util/function/2.cc: Likewise.
289 * testsuite/20_util/function/3.cc: Likewise.
290 * testsuite/20_util/function/4.cc: Likewise.
291 * testsuite/20_util/function/43397.cc: Likewise.
292 * testsuite/20_util/function/48541.cc: Likewise.
293 * testsuite/20_util/function/5.cc: Likewise.
294 * testsuite/20_util/function/58569.cc: Likewise.
295 * testsuite/20_util/function/6.cc: Likewise.
296 * testsuite/20_util/function/60594.cc: Likewise.
297 * testsuite/20_util/function/65760.cc: Likewise.
298 * testsuite/20_util/function/69222.cc: Likewise.
299 * testsuite/20_util/function/7.cc: Likewise.
300 * testsuite/20_util/function/77322.cc: Likewise.
301 * testsuite/20_util/function/8.cc: Likewise.
302 * testsuite/20_util/function/9.cc: Likewise.
303 * testsuite/20_util/function/91456.cc: Likewise.
304 * testsuite/20_util/function/assign/move.cc: Likewise.
305 * testsuite/20_util/function/assign/move_target.cc: Likewise.
306 * testsuite/20_util/function/cmp/cmp_neg.cc: Likewise.
307 * testsuite/20_util/function/cons/55320.cc: Likewise.
308 * testsuite/20_util/function/cons/57465.cc: Likewise.
309 * testsuite/20_util/function/cons/72820.cc: Likewise.
310 * testsuite/20_util/function/cons/addressof.cc: Likewise.
311 * testsuite/20_util/function/cons/callable.cc: Likewise.
312 * testsuite/20_util/function/cons/deduction.cc: Likewise.
313 * testsuite/20_util/function/cons/lwg2774.cc: Likewise.
314 * testsuite/20_util/function/cons/move.cc: Likewise.
315 * testsuite/20_util/function/cons/move_target.cc: Likewise.
316 * testsuite/20_util/function/cons/noexcept.cc: Likewise.
317 * testsuite/20_util/function/cons/non_copyconstructible.cc:
319 * testsuite/20_util/function/cons/refqual.cc: Likewise.
320 * testsuite/20_util/function/cons/70692.cc: Likewise.
321 * testsuite/20_util/function/cons/deduction_c++23.cc: Likewise.
322 * testsuite/20_util/function/invoke/forwarding.cc: Likewise.
323 * testsuite/20_util/function/invoke/move_only.cc: Likewise.
324 * testsuite/20_util/function/null_pointer_comparisons.cc:
326 * testsuite/20_util/function/requirements/explicit_instantiation.cc:
328 * testsuite/20_util/function/target_no_rtti.cc: Likewise.
329 * testsuite/20_util/function_objects/83607.cc: Likewise.
330 * testsuite/20_util/function_objects/mem_fn/adl.cc: Likewise.
331 * testsuite/20_util/headers/cstdlib/functions_std.cc: Likewise.
332 * testsuite/20_util/headers/functional/types_std_c++0x.cc:
334 * testsuite/20_util/headers/memory/types_std_c++0x.cc: Likewise.
335 * testsuite/20_util/is_function/35637.cc: Likewise.
336 * testsuite/20_util/move/1.cc: Likewise.
337 * testsuite/20_util/move_only_function/call.cc: Likewise.
338 * testsuite/20_util/move_only_function/cons.cc: Likewise.
339 * testsuite/20_util/move_only_function/move.cc: Likewise.
340 * testsuite/20_util/move_only_function/version.cc: Likewise.
341 * testsuite/20_util/owner_less/cmp.cc: Likewise.
342 * testsuite/20_util/owner_less/noexcept.cc: Likewise.
343 * testsuite/20_util/owner_less/void.cc: Likewise.
344 * testsuite/20_util/pointer_safety/1.cc: Likewise.
345 * testsuite/20_util/scoped_allocator/65279.cc: Likewise.
346 * testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise.
347 * testsuite/20_util/scoped_allocator/construct_pair.cc:
349 * testsuite/20_util/scoped_allocator/dr2586.cc: Likewise.
350 * testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc:
352 * testsuite/20_util/shared_ptr/assign/assign.cc: Likewise.
353 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise.
354 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise.
355 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc:
357 * testsuite/20_util/shared_ptr/assign/dr541.cc: Likewise.
358 * testsuite/20_util/shared_ptr/assign/move.cc: Likewise.
359 * testsuite/20_util/shared_ptr/assign/sfinae.cc: Likewise.
360 * testsuite/20_util/shared_ptr/assign/shared_ptr.cc: Likewise.
361 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc:
363 * testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc:
365 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc:
367 * testsuite/20_util/shared_ptr/atomic/1.cc: Likewise.
368 * testsuite/20_util/shared_ptr/atomic/2.cc: Likewise.
369 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
370 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise.
371 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
372 * testsuite/20_util/shared_ptr/comparison/42925.cc: Likewise.
373 * testsuite/20_util/shared_ptr/comparison/86537.cc: Likewise.
374 * testsuite/20_util/shared_ptr/comparison/cmp.cc: Likewise.
375 * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc:
377 * testsuite/20_util/shared_ptr/comparison/dr1401.cc: Likewise.
378 * testsuite/20_util/shared_ptr/comparison/less.cc: Likewise.
379 * testsuite/20_util/shared_ptr/cons/39405.cc: Likewise.
380 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise.
381 * testsuite/20_util/shared_ptr/cons/46910.cc: Likewise.
382 * testsuite/20_util/shared_ptr/cons/51365.cc: Likewise.
383 * testsuite/20_util/shared_ptr/cons/52924.cc: Likewise.
384 * testsuite/20_util/shared_ptr/cons/55123.cc: Likewise.
385 * testsuite/20_util/shared_ptr/cons/58659.cc: Likewise.
386 * testsuite/20_util/shared_ptr/cons/58839.cc: Likewise.
387 * testsuite/20_util/shared_ptr/cons/61036.cc: Likewise.
388 * testsuite/20_util/shared_ptr/cons/79467.cc: Likewise.
389 * testsuite/20_util/shared_ptr/cons/80229.cc: Likewise.
390 * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Likewise.
391 * testsuite/20_util/shared_ptr/cons/alias.cc: Likewise.
392 * testsuite/20_util/shared_ptr/cons/array.cc: Likewise.
393 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise.
394 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise.
395 * testsuite/20_util/shared_ptr/cons/copy.cc: Likewise.
396 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise.
397 * testsuite/20_util/shared_ptr/cons/default.cc: Likewise.
398 * testsuite/20_util/shared_ptr/cons/lwg2802.cc: Likewise.
399 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: Likewise.
400 * testsuite/20_util/shared_ptr/cons/move.cc: Likewise.
401 * testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc:
403 * testsuite/20_util/shared_ptr/cons/nullptr.cc: Likewise.
404 * testsuite/20_util/shared_ptr/cons/pointer.cc: Likewise.
405 * testsuite/20_util/shared_ptr/cons/unique_ptr.cc: Likewise.
406 * testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc:
408 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc:
410 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc:
412 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
414 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
415 * testsuite/20_util/shared_ptr/cons/weak_ptr.cc: Likewise.
416 * testsuite/20_util/shared_ptr/creation/36949.cc: Likewise.
417 * testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc:
419 * testsuite/20_util/shared_ptr/creation/58594.cc: Likewise.
420 * testsuite/20_util/shared_ptr/creation/87278.cc: Likewise.
421 * testsuite/20_util/shared_ptr/creation/92878_92947.cc:
423 * testsuite/20_util/shared_ptr/creation/99006.cc: Likewise.
424 * testsuite/20_util/shared_ptr/creation/dr402.cc: Likewise.
425 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise.
426 * testsuite/20_util/shared_ptr/creation/make.cc: Likewise.
427 * testsuite/20_util/shared_ptr/creation/no_rtti.cc: Likewise.
428 * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise.
429 * testsuite/20_util/shared_ptr/creation/private.cc: Likewise.
430 * testsuite/20_util/shared_ptr/creation/single_allocation.cc:
432 * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc:
434 * testsuite/20_util/shared_ptr/creation/version.cc: Likewise.
435 * testsuite/20_util/shared_ptr/dest/dest.cc: Likewise.
436 * testsuite/20_util/shared_ptr/hash/1.cc: Likewise.
437 * testsuite/20_util/shared_ptr/misc/24595.cc: Likewise.
438 * testsuite/20_util/shared_ptr/misc/42019.cc: Likewise.
439 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
440 * testsuite/20_util/shared_ptr/misc/swap.cc: Likewise.
441 * testsuite/20_util/shared_ptr/modifiers/reset.cc: Likewise.
442 * testsuite/20_util/shared_ptr/modifiers/reset_neg.cc: Likewise.
443 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc:
445 * testsuite/20_util/shared_ptr/modifiers/swap.cc: Likewise.
446 * testsuite/20_util/shared_ptr/modifiers/swap_neg.cc: Likewise.
447 * testsuite/20_util/shared_ptr/observers/array.cc: Likewise.
448 * testsuite/20_util/shared_ptr/observers/bool_conv.cc: Likewise.
449 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise.
450 * testsuite/20_util/shared_ptr/observers/owner_before.cc:
452 * testsuite/20_util/shared_ptr/observers/unique.cc: Likewise.
453 * testsuite/20_util/shared_ptr/observers/use_count.cc: Likewise.
454 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc:
456 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc:
458 * testsuite/20_util/shared_ptr/requirements/weak_type.cc:
460 * testsuite/20_util/specialized_algorithms/construct_at/95788.cc:
462 * testsuite/20_util/temporary_buffer.cc: Likewise.
463 * testsuite/20_util/tuple/48476.cc: Likewise.
464 * testsuite/20_util/tuple/cons/90700.cc: Likewise.
465 * testsuite/20_util/tuple/cons/96803.cc: Likewise.
466 * testsuite/20_util/tuple/cons/allocator_with_any.cc: Likewise.
467 * testsuite/20_util/tuple/cons/allocators.cc: Likewise.
468 * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc:
470 * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise.
471 * testsuite/20_util/tuple/p2321r2.cc: Likewise.
472 * testsuite/20_util/unique_ptr/creation/92878_92947.cc:
474 * testsuite/20_util/unique_ptr/creation/array.cc: Likewise.
475 * testsuite/20_util/unique_ptr/creation/array_neg.cc: Likewise.
476 * testsuite/20_util/unique_ptr/creation/constexpr.cc: Likewise.
477 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc:
479 * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc:
481 * testsuite/20_util/unique_ptr/creation/single.cc: Likewise.
482 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise.
483 * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise.
484 * testsuite/20_util/uses_allocator/uninitialized_construct.cc:
486 * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise.
487 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise.
488 * testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc:
490 * testsuite/20_util/weak_ptr/lock/1.cc: Likewise.
491 * testsuite/20_util/weak_ptr/observers/owner_before.cc:
493 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc:
495 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc:
497 * testsuite/21_strings/basic_string/version.cc: Likewise.
498 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc:
500 * testsuite/21_strings/c_strings/char/69626.cc: Likewise.
501 * testsuite/21_strings/char_traits/requirements/version.cc:
503 * testsuite/23_containers/vector/requirements/version.cc:
505 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
507 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
509 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
511 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
513 * testsuite/24_iterators/istreambuf_iterator/92285.cc: Likewise.
514 * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc:
516 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
518 * testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc:
520 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
522 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
524 * testsuite/25_algorithms/constexpr_macro.cc: Likewise.
525 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
526 * testsuite/25_algorithms/headers/cstdlib/functions_std.cc:
528 * testsuite/25_algorithms/inplace_merge/1.cc: Likewise.
529 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
531 * testsuite/25_algorithms/make_heap/movable.cc: Likewise.
532 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise.
533 * testsuite/25_algorithms/random_shuffle/1.cc: Likewise.
534 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise.
535 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
537 * testsuite/25_algorithms/sort/35588.cc: Likewise.
538 * testsuite/25_algorithms/stable_partition/1.cc: Likewise.
539 * testsuite/25_algorithms/stable_partition/constrained.cc:
541 * testsuite/25_algorithms/stable_partition/mem_check.cc:
543 * testsuite/25_algorithms/stable_partition/moveable.cc:
545 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
547 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
549 * testsuite/25_algorithms/stable_sort/1.cc: Likewise.
550 * testsuite/26_numerics/complex/2.cc: Likewise.
551 * testsuite/26_numerics/headers/cstdlib/13943.cc: Likewise.
552 * testsuite/26_numerics/headers/cstdlib/2190.cc: Likewise.
553 * testsuite/26_numerics/headers/cstdlib/60401.cc: Likewise.
554 * testsuite/26_numerics/headers/cstdlib/dr2192.cc: Likewise.
555 * testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc: Likewise.
556 * testsuite/26_numerics/headers/cstdlib/dr2735.cc: Likewise.
557 * testsuite/26_numerics/headers/cstdlib/functions_std.cc:
559 * testsuite/26_numerics/headers/cstdlib/macros.cc: Likewise.
560 * testsuite/26_numerics/headers/cstdlib/types_std.cc: Likewise.
561 * testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc:
563 * testsuite/26_numerics/lerp/version.cc: Likewise.
564 * testsuite/26_numerics/midpoint/version.cc: Likewise.
565 * testsuite/27_io/basic_syncbuf/2.cc: Likewise.
566 * testsuite/27_io/basic_syncstream/2.cc: Likewise.
567 * testsuite/27_io/fpos/14320-1.cc: Likewise.
568 * testsuite/27_io/fpos/14320-2.cc: Likewise.
569 * testsuite/27_io/fpos/14320-3.cc: Likewise.
570 * testsuite/27_io/fpos/14320-4.cc: Likewise.
571 * testsuite/27_io/spanstream/version.cc: Likewise.
572 * testsuite/29_atomics/atomic/lwg3220.cc: Likewise.
573 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise.
574 * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise.
575 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Likewise.
576 * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise.
577 * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise.
578 * testsuite/30_threads/barrier/2.cc: Likewise.
579 * testsuite/30_threads/condition_variable_any/stop_token/2.cc:
581 * testsuite/30_threads/jthread/version.cc: Likewise.
582 * testsuite/30_threads/latch/2.cc: Likewise.
583 * testsuite/30_threads/semaphore/2.cc: Likewise.
584 * testsuite/30_threads/stop_token/2.cc: Likewise.
585 * testsuite/abi/pr42230.cc: Likewise.
586 * testsuite/ext/shared_ptr/1.cc: Likewise.
587 * testsuite/libstdc++-xmethods/shared_ptr.cc: Likewise.
588 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise.
589 * testsuite/std/ranges/adaptors/p1739.cc: Likewise.
590 * testsuite/std/ranges/iota/lwg3292_neg.cc: Likewise.
591 * testsuite/std/ranges/p2325.cc: Likewise.
593 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
595 * include/std/bitset (bitset(const C*, size_type n, C, C))
596 [!_GLIBCXX_HOSTED]: Remove std::basic_string dependency.
597 (_M_copy_from_ptr) [!_GLIBCXX_HOSTED]: Abort instead of
600 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
603 * include/std/bitset [!_GLIBCXX_HOSTED]: Re-enable std::hash.
604 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Require ET
606 * testsuite/20_util/bitset/ext/constexpr.cc: Likewise.
608 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
611 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
613 (check_effective_target_hosted): New proc.
615 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
616 Jonathan Wakely <jwakely@redhat.com>
619 * testsuite/17_intro/headers/c++1998/stdc++.cc [!__STDC_HOSTED__]:
620 Do not include C headers that aren't valid for freestanding.
621 * testsuite/17_intro/tag_type_explicit_ctor.cc [!__STDC_HOSTED__]:
622 Do not test tag types that aren't defined for freestanding.
623 * testsuite/18_support/headers/cstdlib/functions_std.cc: Do not
624 check for std::getenv and std::system for freestanding.
625 * testsuite/17_intro/using_namespace_std_exp_neg.cc [!__STDC_HOSTED__]:
626 Do not test hosted parts of the standard library.
627 * testsuite/17_intro/using_namespace_std_tr1_neg.cc [!__STDC_HOSTED__]:
629 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc [!__STDC_HOSTED__]:
631 * testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc [!HOSTED]:
633 * testsuite/20_util/headers/bitset/synopsis.cc [!__STDC_HOSTED__]: Likewise.
634 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc [!__STDC_HOSTED__]:
636 * testsuite/20_util/pointer_traits/requirements/typedefs.cc [!__STDC_HOSTED__]:
638 * testsuite/20_util/tuple/cons/deduction.cc [!__STDC_HOSTED__]: Likewise.
639 * testsuite/25_algorithms/move/93872.cc [!__STDC_HOSTED__]: Likewise.
640 * testsuite/std/ranges/adaptors/100577.cc [!__STDC_HOSTED__]: Likewise.
642 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
645 * include/Makefile.am [!_GLIBCXX_HOSTED]: Remove
646 install-freestanding-headers, unifying it with the usual
648 * include/Makefile.in: Regenerate.
650 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
651 Jonathan Wakely <jwakely@redhat.com>
654 * include/Makefile.am: Add new header.
655 * include/Makefile.in: Regenerate.
656 * include/bits/requires_hosted.h: New header.
657 * include/experimental/algorithm: Include
658 <bits/requires_hosted.h>.
659 * include/experimental/any: Likewise.
660 * include/experimental/array: Likewise.
661 * include/experimental/buffer: Likewise.
662 * include/experimental/chrono: Likewise.
663 * include/experimental/deque: Likewise.
664 * include/experimental/executor: Likewise.
665 * include/experimental/filesystem: Likewise.
666 * include/experimental/forward_list: Likewise.
667 * include/experimental/functional: Likewise.
668 * include/experimental/internet: Likewise.
669 * include/experimental/io_context: Likewise.
670 * include/experimental/iterator: Likewise.
671 * include/experimental/list: Likewise.
672 * include/experimental/map: Likewise.
673 * include/experimental/memory: Likewise.
674 * include/experimental/memory_resource: Likewise.
675 * include/experimental/net: Likewise.
676 * include/experimental/netfwd: Likewise.
677 * include/experimental/numeric: Likewise.
678 * include/experimental/optional: Likewise.
679 * include/experimental/propagate_const: Likewise.
680 * include/experimental/random: Likewise.
681 * include/experimental/ratio: Likewise.
682 * include/experimental/regex: Likewise.
683 * include/experimental/scope: Likewise.
684 * include/experimental/set: Likewise.
685 * include/experimental/simd: Likewise.
686 * include/experimental/socket: Likewise.
687 * include/experimental/source_location: Likewise.
688 * include/experimental/string: Likewise.
689 * include/experimental/string_view: Likewise.
690 * include/experimental/system_error: Likewise.
691 * include/experimental/timer: Likewise.
692 * include/experimental/tuple: Likewise.
693 * include/experimental/unordered_map: Likewise.
694 * include/experimental/unordered_set: Likewise.
695 * include/experimental/utility: Likewise.
696 * include/experimental/vector: Likewise.
697 * include/std/barrier: Likewise.
698 * include/std/chrono: Likewise.
699 * include/std/condition_variable: Likewise.
700 * include/std/deque: Likewise.
701 * include/std/execution: Likewise.
702 * include/std/filesystem: Likewise.
703 * include/std/forward_list: Likewise.
704 * include/std/fstream: Likewise.
705 * include/std/future: Likewise.
706 * include/std/iomanip: Likewise.
707 * include/std/ios: Likewise.
708 * include/std/iosfwd: Likewise.
709 * include/std/iostream: Likewise.
710 * include/std/istream: Likewise.
711 * include/std/latch: Likewise.
712 * include/std/list: Likewise.
713 * include/std/locale: Likewise.
714 * include/std/map: Likewise.
715 * include/std/memory_resource: Likewise.
716 * include/std/mutex: Likewise.
717 * include/std/ostream: Likewise.
718 * include/std/queue: Likewise.
719 * include/std/random: Likewise.
720 * include/std/regex: Likewise.
721 * include/std/semaphore: Likewise.
722 * include/std/set: Likewise.
723 * include/std/shared_mutex: Likewise.
724 * include/std/spanstream: Likewise.
725 * include/std/sstream: Likewise.
726 * include/std/stack: Likewise.
727 * include/std/stacktrace: Likewise.
728 * include/std/stop_token: Likewise.
729 * include/std/streambuf: Likewise.
730 * include/std/string: Likewise.
731 * include/std/syncstream: Likewise.
732 * include/std/system_error: Likewise.
733 * include/std/thread: Likewise.
734 * include/std/unordered_map: Likewise.
735 * include/std/unordered_set: Likewise.
736 * include/std/valarray: Likewise.
737 * include/std/vector: Likewise.
738 * include/tr1/array: Likewise.
739 * include/tr1/ccomplex: Likewise.
740 * include/tr1/cctype: Likewise.
741 * include/tr1/cfenv: Likewise.
742 * include/tr1/cfloat: Likewise.
743 * include/tr1/cinttypes: Likewise.
744 * include/tr1/climits: Likewise.
745 * include/tr1/cmath: Likewise.
746 * include/tr1/complex: Likewise.
747 * include/tr1/complex.h: Likewise.
748 * include/tr1/cstdarg: Likewise.
749 * include/tr1/cstdbool: Likewise.
750 * include/tr1/cstdint: Likewise.
751 * include/tr1/cstdio: Likewise.
752 * include/tr1/cstdlib: Likewise.
753 * include/tr1/ctgmath: Likewise.
754 * include/tr1/ctime: Likewise.
755 * include/tr1/ctype.h: Likewise.
756 * include/tr1/cwchar: Likewise.
757 * include/tr1/cwctype: Likewise.
758 * include/tr1/fenv.h: Likewise.
759 * include/tr1/float.h: Likewise.
760 * include/tr1/functional: Likewise.
761 * include/tr1/inttypes.h: Likewise.
762 * include/tr1/limits.h: Likewise.
763 * include/tr1/math.h: Likewise.
764 * include/tr1/memory: Likewise.
765 * include/tr1/random: Likewise.
766 * include/tr1/regex: Likewise.
767 * include/tr1/stdarg.h: Likewise.
768 * include/tr1/stdbool.h: Likewise.
769 * include/tr1/stdint.h: Likewise.
770 * include/tr1/stdio.h: Likewise.
771 * include/tr1/stdlib.h: Likewise.
772 * include/tr1/tgmath.h: Likewise.
773 * include/tr1/tuple: Likewise.
774 * include/tr1/type_traits: Likewise.
775 * include/tr1/unordered_map: Likewise.
776 * include/tr1/unordered_set: Likewise.
777 * include/tr1/utility: Likewise.
778 * include/tr1/wchar.h: Likewise.
779 * include/tr1/wctype.h: Likewise.
780 * include/c_global/cmath: Likewise.
781 * include/ext/algorithm: Include <bits/requires_hosted.h>.
782 * include/ext/bitmap_allocator.h: Likewise.
783 * include/ext/cmath: Likewise.
784 * include/ext/codecvt_specializations.h: Likewise.
785 * include/ext/debug_allocator.h: Likewise.
786 * include/ext/enc_filebuf.h: Likewise.
787 * include/ext/extptr_allocator.h: Likewise.
788 * include/ext/functional: Likewise.
789 * include/ext/malloc_allocator.h: Likewise.
790 * include/ext/memory: Likewise.
791 * include/ext/mt_allocator.h: Likewise.
792 * include/ext/new_allocator.h: Likewise.
793 * include/ext/numeric: Likewise.
794 * include/ext/pod_char_traits.h: Likewise.
795 * include/ext/pool_allocator.h: Likewise.
796 * include/ext/random: Likewise.
797 * include/ext/random.tcc: Likewise.
798 * include/ext/rb_tree: Likewise.
799 * include/ext/rc_string_base.h: Likewise.
800 * include/ext/rope: Likewise.
801 * include/ext/ropeimpl.h: Likewise.
802 * include/ext/slist: Likewise.
803 * include/ext/sso_string_base.h: Likewise.
804 * include/ext/stdio_filebuf.h: Likewise.
805 * include/ext/stdio_sync_filebuf.h: Likewise.
806 * include/ext/string_conversions.h: Likewise.
807 * include/ext/throw_allocator.h: Likewise.
808 * include/ext/vstring.h: Likewise.
809 * include/ext/vstring.tcc: Likewise.
810 * include/ext/vstring_fwd.h: Likewise.
811 * include/ext/vstring_util.h: Likewise.
812 * include/std/charconv: Likewise.
813 (__cpp_lib_to_chars): Do not define for freestanding.
814 * include/std/version: Adjust which macros get defined in
816 * include/ext/pointer.h [!_GLIBCXX_HOSTED]: Omit iostream
817 functionality from freestanding.
818 * include/std/algorithm [!_GLIBCXX_HOSTED]: Omit PSTL algos.
819 * include/std/memory [!_GLIBCXX_HOSTED]: Omit
820 <bits/stl_tempbuf.h> in freestanding
821 * include/bits/algorithmfwd.h [!_GLIBCXX_HOSTED]: Omit leftover
822 random_shuffle and stable_partition definition.
823 * include/bits/stl_algo.h [!_GLIBCXX_HOSTED]: Omit
824 random_shuffle and stable_partition from freestanding.
825 * include/bits/ranges_algo.h [!_GLIBCXX_HOSTED]: Omit
826 stable_partition from freestanding.
827 * include/bits/concept_check.h: Remove needless HOSTED check.
828 * include/std/iterator: Include <bits/ranges_base.h>.
829 * include/std/numeric (__cpp_lib_parallel_algorithms): Do not
830 define for freestanding.
831 * include/std/functional (__cpp_lib_boyer_moore_searcher):
833 * testsuite/lib/prune.exp: Match error for hosted-only libstdc++
836 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
837 Arsen Arsenović <arsen@aarsen.me>
839 * include/precompiled/extc++.h [!_GLIBCXX_HOSTED]: Do not
840 include headers that aren't valid for freestanding.
841 * include/precompiled/stdc++.h [!_GLIBCXX_HOSTED]: Likewise.
843 2022-10-03 Arsen Arsenović <arsen@aarsen.me>
845 * configure.ac: Remove any lines that unconditionally include
846 <stdio.h> from ac_includes_default, when running Autoconf <2.70.
847 * configure: Regenerate.
849 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
852 * acinclude.m4 (GLIBCXX_ENABLE_HOSTED): Define _GLIBCXX_HOSTED
853 to __STDC_HOSTED__ for non-freestanding installations.
854 * configure: Regenerate.
855 * include/Makefile.am (${host_builddir}/c++config.h): Adjust
857 * include/Makefile.in: Regenerate.
858 * testsuite/lib/libstdc++.exp (v3-build_support): Use
860 * testsuite/libstdc++-abi/abi.exp: Likewise.
862 2022-10-03 Jonathan Wakely <jwakely@redhat.com>
864 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
865 Change body of unused operator<< overload to throw if called.
866 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
869 2022-10-03 François Dumont <fdumont@gcc.gnu.org>
871 * python/libstdcxx/v6/printers.py (Printer.add_version): Do not add version
872 namespace for __cxx11 symbols.
873 (add_one_template_type_printer): Likewise.
874 (add_one_type_printer): Likewise.
875 (FilteringTypePrinter._recognizer.recognize): Add a workaround for std::string & al
876 ambiguous typedef matching both std:: and std::__cxx11:: symbols.
877 * testsuite/libstdc++-prettyprinters/cxx17.cc: Remove obsolete
878 \#define _GLIBCXX_USE_CXX11_ABI 0.
879 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. Adapt test to accept
881 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
882 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
883 * testsuite/libstdc++-prettyprinters/80276.cc: Likewise and remove xfail for c++20
885 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
887 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
889 * testsuite/20_util/bitset/access/to_ulong.cc: Construct bitset
890 from binary literal instead of using stringstream.
892 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
894 * include/std/bitset (operator>>): Use a simple buffer instead
895 of std::basic_string.
897 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
899 * include/std/bitset (_M_copy_from_ptr, _M_copy_from_string)
900 (_M_copy_to_string): Change access to private.
901 (_M_copy_from_string(const basic_string&, size_t, size_t)):
903 (_M_copy_to_string(const basic_string&)): Remove.
905 2022-09-30 Jonathan Wakely <jwakely@redhat.com>
907 * testsuite/20_util/bind/ref_neg.cc: Fix dg-prune-output
910 2022-09-30 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
911 Yvan ROUX <yvan.roux@foss.st.com>
913 * testsuite/20_util/bind/ref_neg.cc: Prune Windows paths too.
915 2022-09-30 Arsen Arsenović <arsen@aarsen.me>
917 * include/std/bitset: Include <bits/stl_algobase.h>.
919 2022-09-29 François Dumont <fdumont@gcc.gnu.org>
921 * python/libstdcxx/v6/printers.py (add_one_template_type_printer): Register
922 printer for types in std::__debug namespace with template parameters in std::__8
925 2022-09-29 Patrick Palka <ppalka@redhat.com>
927 * include/bits/unique_ptr.h (unique_ptr<_Tp[], _Dp>): Remove
928 __remove_cv and use __remove_cv_t instead.
930 2022-09-29 Jonathan Wakely <jwakely@redhat.com>
932 * include/std/type_traits (__is_invocable_impl): Check
933 __has_builtin(__reference_converts_from_temporary) before using
936 2022-09-28 Jonathan Wakely <jwakely@redhat.com>
938 * doc/xml/manual/evolution.xml: Document std::bind API
940 * doc/xml/manual/intro.xml: Document LWG 2487 status.
941 * doc/xml/manual/using.xml: Clarify default value of
942 _GLIBCXX_USE_DEPRECATED.
943 * doc/html/*: Regenerate.
944 * include/std/functional (_Bind::operator()(Args&&...) volatile)
945 (_Bind::operator()(Args&&...) const volatile)
946 (_Bind_result::operator()(Args&&...) volatile)
947 (_Bind_result::operator()(Args&&...) const volatile): Replace
948 with deleted overload for C++20 and later.
949 * testsuite/20_util/bind/cv_quals.cc: Check for deprecated
951 * testsuite/20_util/bind/cv_quals_2.cc: Likewise, and check for
954 2022-09-28 Jonathan Wakely <jwakely@redhat.com>
957 * include/bits/invoke.h [__cplusplus < 201703] (__invoke_r):
958 Remove is_invocable and is_convertible constraints.
959 * include/std/type_traits (__is_invocable_impl::_S_conv): Use
960 non-deduced context for parameter.
961 (__is_invocable_impl::_S_test): Remove _Check_noex template
962 parameter and use deduced noexcept value in its place. Add bool
963 parameter to detect dangling references.
964 (__is_invocable_impl::type): Adjust call to _S_test to avoid
965 deducing unnecessary noexcept property..
966 (__is_invocable_impl::__nothrow_type): Rename to ...
967 (__is_invocable_impl::__nothrow_conv): ... this. Adjust call
968 to _S_test to deduce noexcept property.
969 * testsuite/20_util/bind/dangling_ref.cc: New test.
970 * testsuite/20_util/function/cons/70692.cc: New test.
971 * testsuite/20_util/function_objects/invoke/dangling_ref.cc:
973 * testsuite/20_util/is_invocable/dangling_ref.cc: New test.
974 * testsuite/30_threads/packaged_task/cons/dangling_ref.cc:
977 2022-09-27 Jonathan Wakely <jwakely@redhat.com>
980 * testsuite/20_util/is_convertible/requirements/access.cc: New
983 2022-09-27 Jonathan Wakely <jwakely@redhat.com>
986 * include/bits/std_function.h (__function_guide_t): New alias
988 [__cpp_static_call_operator] (__function_guide_static_helper):
990 (function): Use __function_guide_t in deduction guide.
991 * include/std/future (packaged_task): Use __function_guide_t in
993 * testsuite/20_util/function/cons/deduction_c++23.cc: New test.
994 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc:
997 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
999 * include/bits/ptr_traits.h (__ptr_traits_elem) [__cpp_concepts]:
1000 Also define the __ptr_traits_elem class template for the
1002 (pointer_traits<Ptr>): Remove constrained partial
1004 * testsuite/20_util/pointer_traits/lwg3545.cc: Check for
1005 ambiguitiy with program-defined partial specialization.
1007 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
1009 * include/std/type_traits (is_convertible, is_convertible_v):
1010 Define using new built-in.
1011 (is_nothrow_convertible is_nothrow_convertible_v): Likewise.
1013 2022-09-26 Jonathan Wakely <jwakely@redhat.com>
1016 * include/std/bitset (_Base_bitset::_M_do_reset): Use
1017 preprocessor conditional around non-C++03 code.
1018 * testsuite/20_util/bitset/107037.cc: New test.
1020 2022-09-24 Jonathan Wakely <jwakely@redhat.com>
1022 * include/bits/alloc_traits.h (allocator_traits::is_always_equal):
1023 Only instantiate is_empty if needed.
1024 * include/bits/ptr_traits.h (__ptr_traits_impl::difference_type)
1025 (__ptr_traits_impl::rebind): Use __detected_or.
1026 * include/experimental/type_traits (is_same_v): Add a partial
1027 specialization instead of instantiating the std::is_same class
1029 (detected_t): Redefine in terms of detected_or_t.
1030 (is_detected, is_detected_v): Redefine in terms of detected_t.
1031 * include/std/type_traits [__cpp_concepts] (__detected_or): Add
1032 new definition using concepts.
1033 (__detector::value_t): Rename to __is_detected.
1034 * testsuite/17_intro/names.cc: Check value_t isn't used.
1036 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
1038 * testsuite/20_util/is_assignable/requirements/access.cc:
1041 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
1044 * include/std/type_traits (__is_nothrow_invocable_lib): Remove.
1045 (__is_invocable_impl::__nothrow_type): New member type which
1046 checks if the conversion can throw.
1047 (__is_nt_invocable_impl): Replace class template with alias
1048 template to __is_nt_invocable_impl::__nothrow_type.
1049 * testsuite/20_util/is_nothrow_invocable/91456.cc: New test.
1050 * testsuite/20_util/is_nothrow_convertible/value.cc: Remove
1051 macro used by value_ext.cc test.
1052 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Remove
1053 test for non-standard __is_nothrow_invocable_lib trait.
1055 2022-09-23 Marek Polacek <polacek@redhat.com>
1058 * include/std/type_traits: Rename __is_nothrow_convertible to
1059 __is_nothrow_convertible_lib.
1060 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Likewise.
1062 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
1064 * include/std/bitset (operator>>): Do not copy for N==0.
1065 * testsuite/20_util/bitset/io/input.cc: Add comment.
1067 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
1069 * include/debug/bitset (__debug::bitset): Add constexpr to all
1071 (operator&, operator|, operator^): Add inline and constexpr.
1072 (operator>>, operator<<): Add inline.
1073 * testsuite/20_util/bitset/access/constexpr.cc: Only check using
1074 constexpr std::string for the cxx11 ABI.
1075 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise.
1076 * testsuite/20_util/headers/bitset/synopsis.cc: Check constexpr
1079 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
1081 * include/std/bitset (bitset::_M_copy_to_string): Find set bits
1082 instead of iterating over individual bits.
1084 2022-09-22 Jonathan Wakely <jwakely@redhat.com>
1086 * include/std/bitset (bitset): Add constexpr for C++23. Guard
1087 members using std::string with _GLIBCXX_HOSTED.
1088 * include/std/version (__cpp_lib_constexpr_bitset): Define.
1089 * testsuite/20_util/bitset/access/constexpr.cc: New test.
1090 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: New test.
1091 * testsuite/20_util/bitset/count/constexpr.cc: New test.
1092 * testsuite/20_util/bitset/ext/constexpr.cc: New test.
1093 * testsuite/20_util/bitset/operations/constexpr_c++23.cc: New test.
1094 * testsuite/20_util/bitset/version.cc: New test.
1096 2022-09-22 Jonathan Wakely <jwakely@redhat.com>
1098 * testsuite/23_containers/bitset/18604.cc: Moved to...
1099 * testsuite/20_util/bitset/18604.cc: ...here.
1100 * testsuite/23_containers/bitset/45713.cc: Moved to...
1101 * testsuite/20_util/bitset/45713.cc: ...here.
1102 * testsuite/23_containers/bitset/to_string/dr396.cc: Moved to...
1103 * testsuite/20_util/bitset/access/dr396.cc: ...here.
1104 * testsuite/23_containers/bitset/to_string/1.cc: Moved to...
1105 * testsuite/20_util/bitset/access/to_string.cc: ...here.
1106 * testsuite/23_containers/bitset/to_ullong/1.cc: Moved to...
1107 * testsuite/20_util/bitset/access/to_ullong.cc: ...here.
1108 * testsuite/23_containers/bitset/to_ulong/1.cc: Moved to...
1109 * testsuite/20_util/bitset/access/to_ulong.cc: ...here.
1110 * testsuite/23_containers/bitset/cons/1.cc: Moved to...
1111 * testsuite/20_util/bitset/cons/1.cc: ...here.
1112 * testsuite/23_containers/bitset/cons/16020.cc: Moved to...
1113 * testsuite/20_util/bitset/cons/16020.cc: ...here.
1114 * testsuite/23_containers/bitset/cons/2.cc: Moved to...
1115 * testsuite/20_util/bitset/cons/2.cc: ...here.
1116 * testsuite/23_containers/bitset/cons/3.cc: Moved to...
1117 * testsuite/20_util/bitset/cons/3.cc: ...here.
1118 * testsuite/23_containers/bitset/cons/38244.cc: Moved to...
1119 * testsuite/20_util/bitset/cons/38244.cc: ...here.
1120 * testsuite/23_containers/bitset/cons/50268.cc: Moved to...
1121 * testsuite/20_util/bitset/cons/50268.cc: ...here.
1122 * testsuite/23_containers/bitset/cons/6282.cc: Moved to...
1123 * testsuite/20_util/bitset/cons/6282.cc: ...here.
1124 * testsuite/23_containers/bitset/cons/constexpr.cc: Moved to...
1125 * testsuite/20_util/bitset/cons/constexpr.cc: ...here.
1126 * testsuite/23_containers/bitset/cons/dr1325-1.cc: Moved to...
1127 * testsuite/20_util/bitset/cons/dr1325-1.cc: ...here.
1128 * testsuite/23_containers/bitset/cons/dr1325-2.cc: Moved to...
1129 * testsuite/20_util/bitset/cons/dr1325-2.cc: ...here.
1130 * testsuite/23_containers/bitset/cons/dr396.cc: Moved to...
1131 * testsuite/20_util/bitset/cons/dr396.cc: ...here.
1132 * testsuite/23_containers/bitset/debug/invalidation/1.cc: Moved to...
1133 * testsuite/20_util/bitset/debug/invalidation/1.cc: ...here.
1134 * testsuite/23_containers/bitset/ext/15361.cc: Moved to...
1135 * testsuite/20_util/bitset/ext/15361.cc: ...here.
1136 * testsuite/23_containers/bitset/hash/1.cc: Moved to...
1137 * testsuite/20_util/bitset/hash/1.cc: ...here.
1138 * testsuite/23_containers/bitset/input/1.cc: Moved to...
1139 * testsuite/20_util/bitset/io/input.cc: ...here.
1140 * testsuite/23_containers/bitset/count/6124.cc: Moved to...
1141 * testsuite/20_util/bitset/observers/6124.cc: ...here.
1142 * testsuite/23_containers/bitset/all/1.cc: Moved to...
1143 * testsuite/20_util/bitset/observers/all.cc: ...here.
1144 * testsuite/23_containers/bitset/test/1.cc: Moved to...
1145 * testsuite/20_util/bitset/observers/test.cc: ...here.
1146 * testsuite/23_containers/bitset/operations/1.cc: Moved to...
1147 * testsuite/20_util/bitset/operations/1.cc: ...here.
1148 * testsuite/23_containers/bitset/operations/13838.cc: Moved to...
1149 * testsuite/20_util/bitset/operations/13838.cc: ...here.
1150 * testsuite/23_containers/bitset/operations/2.cc: Moved to...
1151 * testsuite/20_util/bitset/operations/2.cc: ...here.
1152 * testsuite/23_containers/bitset/operations/96303.cc: Moved to...
1153 * testsuite/20_util/bitset/operations/96303.cc: ...here.
1154 * testsuite/23_containers/bitset/operations/constexpr-2.cc: Moved to...
1155 * testsuite/20_util/bitset/operations/constexpr-2.cc: ...here.
1156 * testsuite/23_containers/bitset/operations/constexpr.cc: Moved to...
1157 * testsuite/20_util/bitset/operations/constexpr.cc: ...here.
1158 * testsuite/23_containers/bitset/requirements/constexpr_functions.cc: Moved to...
1159 * testsuite/20_util/bitset/requirements/constexpr_functions.cc: ...here.
1160 * testsuite/23_containers/bitset/requirements/explicit_instantiation/1.cc: Moved to...
1161 * testsuite/20_util/bitset/requirements/explicit_instantiation/1.cc: ...here.
1162 * testsuite/23_containers/bitset/requirements/explicit_instantiation/1_c++0x.cc: Moved to...
1163 * testsuite/20_util/bitset/requirements/explicit_instantiation/1_c++0x.cc: ...here.
1164 * testsuite/23_containers/headers/bitset/synopsis.cc: Moved to...
1165 * testsuite/20_util/headers/bitset/synopsis.cc: ...here.
1167 2022-09-22 François Dumont <fdumont@gcc.gnu.org>
1169 * python/libstdcxx/v6/printers.py: Remove ptinter registration for non-existing
1170 types std::__debug::unique_ptr, std::__debug::stack, std::__debug::queue,
1171 std::__debug::priority_queue.
1173 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1176 * testsuite/20_util/function/91456.cc: Add comment with PR
1178 * testsuite/20_util/is_invocable/91456.cc: Likewise. Replace
1179 std::function checks with std::is_invocable_r checks.
1181 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1183 * testsuite/17_intro/headers/c++1998/all_attributes.cc: Remove
1184 unnecessary main function.
1185 * testsuite/17_intro/headers/c++2011/all_attributes.cc:
1187 * testsuite/17_intro/headers/c++2014/all_attributes.cc:
1189 * testsuite/17_intro/headers/c++2017/all_attributes.cc:
1191 * testsuite/17_intro/headers/c++2020/all_attributes.cc:
1194 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1196 * testsuite/20_util/headers/memory/synopsis.cc: Add declarations
1197 from C++11 and later.
1199 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1201 * doc/xml/manual/documentation_hacking.xml: Remove trailing
1203 * doc/xml/manual/policy_data_structures.xml: Likewise.
1205 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1207 * include/c_compatibility/stdlib.h [!_GLIBCXX_HOSTED]: Add
1208 using-declaration for _Exit.
1210 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1212 * testsuite/18_support/uncaught_exception/14026.cc: Qualify
1215 2022-09-21 Jonathan Wakely <jwakely@redhat.com>
1217 * include/bits/ranges_base.h: Include <initializer_list>.
1219 2022-09-20 Jonathan Wakely <jwakely@redhat.com>
1221 * include/c_global/cstdlib [!_GLIBCXX_HOSTED] (quick_exit): Fix
1224 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1227 * include/backward/auto_ptr.h [!_GLIBCXX_HOSTED]: Do not define
1229 * include/bits/alloc_traits.h [!_GLIBCXX_HOSTED]: Do not declare
1230 std::allocator_traits<std::allocator<T>> specializations for
1232 * include/bits/memoryfwd.h [!_GLIBCXX_HOSTED] (allocator): Do
1233 not declare for freestanding.
1234 * include/bits/stl_algo.h [!_GLIBCXX_HOSTED] (stable_partition):
1235 Do not define for freestanding.
1236 [!_GLIBCXX_HOSTED] (merge, stable_sort): Do not use temporary
1237 buffers for freestanding.
1238 * include/bits/stl_algobase.h [!_GLIBCXX_HOSTED]: Do not declare
1239 streambuf iterators and overloaded algorithms using them.
1240 * include/bits/stl_uninitialized.h [!_GLIBCXX_HOSTED]: Do not
1241 define specialized overloads for std::allocator.
1242 * include/bits/unique_ptr.h [!_GLIBCXX_HOSTED] (make_unique)
1243 (make_unique_for_overwrite, operator<<): Do not define for
1245 * include/c_global/cstdlib [!_GLIBCXX_HOSTED] (_Exit): Declare.
1246 Use _GLIBCXX_NOTHROW instead of throw().
1247 * include/debug/assertions.h [!_GLIBCXX_HOSTED]: Ignore
1248 _GLIBCXX_DEBUG for freestanding.
1249 * include/debug/debug.h [!_GLIBCXX_DEBUG]: Likewise.
1250 * include/std/bit [!_GLIBCXX_HOSTED]: Do not use the custom
1251 __int_traits if <ext/numeric_traits.h> is available.
1252 * include/std/functional [!_GLIBCXX_HOSTED]: Do not include
1253 headers that aren't valid for freestanding.
1254 (boyer_moore_searcher, boyer_moore_horspool_searcher): Do not
1255 define for freestanding.
1256 * include/std/iterator [!_GLIBCXX_HOSTED]: Do not include
1257 headers that aren't valid for freestanding.
1258 * include/std/memory [!_GLIBCXX_HOSTED]: Likewise.
1259 * include/std/ranges [!_GLIBCXX_HOSTED] (istream_view): Do not
1260 define for freestanding.
1261 (views::__detail::__is_basic_string_view) [!_GLIBCXX_HOSTED]:
1262 Do not define partial specialization for freestanding.
1264 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1266 * include/bits/alloc_traits.h (__alloc_swap)
1267 (__shrink_to_fit_aux): Move here, from ...
1268 * include/bits/allocator.h: ... here.
1269 * include/ext/alloc_traits.h: Do not include allocator.h.
1271 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1273 * include/bits/stl_algo.h: Include <bits/stl_algobase.h>.
1274 * include/bits/stl_tempbuf.h: Include headers for __try and
1275 __catch macros, std::pair, and __gnu_cxx::__numeric_traits.
1276 * include/bits/stream_iterator.h: Include <iosfwd> and headers
1277 for std::addressof and std::iterator.
1278 * include/bits/streambuf_iterator.h: Include header for
1280 * include/std/iterator: Do not include <iosfwd>.
1282 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1284 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
1285 Store value with non-zero padding bits after construction.
1287 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1289 * include/tr1/random.h (__detail::_Adaptor::_BEngine): Remove.
1290 (__detail::_Adaptor::_M_g): Make public.
1291 (__detail::_Adaptor<_Engine*, _Dist>): Remove partial
1293 (variate_generate::_Value): New helper to simplify handling of
1294 _Engine* and _Engine& template arguments.
1295 (variate_generate::engine_value_type): Define to underlying
1296 engine type, not adapted type.
1297 (variate_generate::engine()): Return underlying engine instead
1299 * testsuite/tr1/5_numerical_facilities/random/variate_generator/37986.cc:
1301 * testsuite/tr1/5_numerical_facilities/random/variate_generator/requirements/typedefs.cc:
1302 Check member typedefs have the correct types.
1304 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1306 * include/debug/formatter.h [_GLIBCXX_DEBUG_BACKTRACE]
1307 (_Error_formatter): Use 0 as null pointer constant.
1309 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1311 * include/bits/allocator.h (__alloc_neq): Remove.
1312 * include/bits/stl_list.h (list::_M_check_equal_allocators):
1313 Compare allocators directly, without __alloc_neq.
1315 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1317 * doc/doxygen/user.cfg.in (PREDEFINED): Remove __allocator_base.
1318 * include/bits/allocator.h: Fix nesting of Doxygen commands.
1320 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
1322 * doc/xml/manual/abi.xml: Document GLIBCXX_3.4.30 and
1323 GLIBCXX_3.4.31 versions.
1324 * doc/html/manual/abi.html: Regenerate.
1326 2022-09-15 Jonathan Wakely <jwakely@redhat.com>
1328 * include/std/memory: Do not include <bits/stl_algobase.h>.
1330 2022-09-15 Jonathan Wakely <jwakely@redhat.com>
1332 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_PRE_LOCK):
1334 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK): ... this, add try_lock flag.
1335 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK_FAILED): New macro using
1336 try_lock_failed flag
1337 (_GLIBCXX_TSAN_MUTEX_POST_LOCK): Rename to ...
1338 (_GLIBCXX_TSAN_MUTEX_LOCKED): ... this.
1339 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK): Remove invalid flag.
1340 (_GLIBCXX_TSAN_MUTEX_POST_UNLOCK): Remove invalid flag.
1341 (_Sp_atomic::_Atomic_count::lock): Use new macros.
1343 2022-09-15 Patrick Palka <ppalka@redhat.com>
1345 * include/bits/ranges_algo.h (__adjacent_find_fn, adjacent_find):
1347 * include/bits/ranges_util.h: ... here.
1348 * include/std/ranges (chunk_by_view): Define.
1349 (chunk_by_view::_Iterator): Define.
1350 (__detail::__can_chunk_by_view): Define.
1351 (_ChunkBy, chunk_by): Define.
1352 * testsuite/std/ranges/adaptors/chunk_by/1.cc: New test.
1354 2022-09-15 François Dumont <fdumont@gcc.gnu.org>
1356 * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
1357 Adapt dg-prune-output to _GLIBCXX_INLINE_VERSION mode.
1359 2022-09-15 François Dumont <fdumont@gcc.gnu.org>
1361 * config/abi/pre/gnu-versioned-namespace.ver: Remove obsolete std::__detail::__8
1364 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1366 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_DESTROY)
1367 (_GLIBCXX_TSAN_MUTEX_PRE_LOCK, _GLIBCXX_TSAN_MUTEX_POST_LOCK)
1368 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK, _GLIBCXX_TSAN_MUTEX_POST_UNLOCK)
1369 (_GLIBCXX_TSAN_MUTEX_PRE_SIGNAL, _GLIBCXX_TSAN_MUTEX_POST_SIGNAL):
1370 Define macros for TSan annotation functions.
1371 (_Sp_atomic::_Atomic_count): Add annotations.
1373 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1375 * include/bits/stl_tempbuf.h: Include <new>.
1377 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1379 * testsuite/17_intro/names.cc: Explain why poison pragma can't
1382 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1384 * include/std/future
1385 (_State_baseV2::__setter(exception_ptr&, promise&)): Add
1386 assertion for LWG 2276 precondition.
1387 * testsuite/30_threads/promise/members/set_exception_neg.cc:
1390 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
1392 * doc/xml/manual/intro.xml: Document LWG 1203.
1393 * doc/html/*: Regenerate.
1395 2022-09-14 Philipp Fent <fent@in.tum.de>
1397 * python/libstdcxx/v6/printers.py (access_streambuf_ptrs):
1398 New helper function.
1399 (StdStringBufPrinter, StdStringStreamPrinter): New printers.
1400 (build_libstdcxx_dictionary): Register stringstream printers.
1401 * testsuite/libstdc++-prettyprinters/debug.cc: Check string
1403 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
1404 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
1406 2022-09-13 Patrick Palka <ppalka@redhat.com>
1408 * include/std/ranges (__detail::__slide_caches_nothing): Define.
1409 (__detail::__slide_caches_last): Define.
1410 (__detail::__slide_caches_first): Define.
1411 (slide_view): Define.
1412 (enable_borrowed_range<slide_view>): Define.
1413 (slide_view::_Iterator): Define.
1414 (slide_view::_Sentinel): Define.
1415 (views::__detail::__can_slide_view): Define.
1416 (views::_Slide, views::slide): Define.
1417 * testsuite/std/ranges/adaptors/slide/1.cc: New test.
1419 2022-09-13 Patrick Palka <ppalka@redhat.com>
1421 * include/std/ranges (__detail::__div_ceil): Define.
1422 (chunk_view): Define.
1423 (chunk_view::_OuterIter): Define.
1424 (chunk_view::_OuterIter::value_type): Define.
1425 (chunk_view::_InnerIter): Define.
1426 (chunk_view<_Vp>): Define partial specialization for forward
1428 (enable_borrowed_range<chunk_view>): Define.
1429 (chunk_view<_Vp>::_Iterator): Define.
1430 (views::__detail::__can_chunk_view): Define.
1431 (views::_Chunk, views::chunk): Define.
1432 * testsuite/std/ranges/adaptors/chunk/1.cc: New test.
1434 2022-09-13 Patrick Palka <ppalka@redhat.com>
1436 * include/std/ranges (join_view::_Iterator::_M_satisfy):
1437 Adjust resetting _M_inner as per LWG 3569.
1438 (join_view::_Iterator::_M_inner): Wrap in std::optional
1440 (join_view::_Iterator::_Iterator): Relax constraints as
1442 (join_view::_Iterator::operator*): Adjust as per LWG 3569.
1443 (join_view::_Iterator::operator->): Likewise.
1444 (join_view::_Iterator::operator++): Likewise.
1445 (join_view::_Iterator::operator--): Likewise.
1446 (join_view::_Iterator::iter_move): Likewise.
1447 (join_view::_Iterator::iter_swap): Likewise.
1448 * testsuite/std/ranges/adaptors/join.cc (test14): New test.
1450 2022-09-13 Patrick Palka <ppalka@redhat.com>
1452 * include/debug/safe_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS):
1453 Add parentheses to avoid -Wparentheses warning.
1455 2022-09-12 Patrick Palka <ppalka@redhat.com>
1458 * testsuite/std/ranges/adaptors/join.cc (test13): New test.
1460 2022-09-12 Jonathan Wakely <jwakely@redhat.com>
1462 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Fix
1464 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc:
1467 2022-09-12 Jakub Jelinek <jakub@redhat.com>
1469 PR tree-optimization/105329
1470 * acinclude.m4 (libtool_VERSION): Change to 6:31:0.
1471 * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Don't export
1472 std::basic_string methods with name length of 15.
1473 (GLIBCXX_3.4.31): Export std::basic_string::_M_replace_cold.
1474 * testsuite/util/testsuite_abi.cc (check_version): Handle
1476 * include/bits/basic_string.h (std::basic_string::_M_replace_cold):
1478 * include/bits/basic_string.tcc (std::basic_string::_M_replace_cold):
1479 Define and export even for C++20.
1480 (std::basic_string::_M_replace): Use __builtin_expect, outline
1481 the overlapping case to _M_replace_cold.
1482 * configure: Regenerated.
1484 2022-09-09 Jonathan Wakely <jwakely@redhat.com>
1486 * include/bits/atomic_base.h (__atomic_impl::__compare_exchange):
1487 Rename __weak to __is_weak.
1488 * testsuite/17_intro/names.cc: Add __weak and __strong.
1490 2022-09-09 Patrick Palka <ppalka@redhat.com>
1493 * include/std/ranges (views::_ZipTransform::operator()): Correct
1494 return type in the empty case.
1495 (views::_AdjacentTransform::operator()): Likewise.
1497 2022-09-09 Patrick Palka <ppalka@redhat.com>
1500 * include/std/ranges (adjacent_view::_Iterator::_Iterator): Fix
1502 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): New test.
1504 2022-09-09 Patrick Palka <ppalka@redhat.com>
1507 * include/std/ranges (zip_view::_Iterator::operator-): Use
1508 __to_unsigned_like instead of make_unsigned_t.
1509 (zip_view::_Sentinel::operator-): Likewise.
1510 * testsuite/std/ranges/zip/1.cc (test04): New test.
1512 2022-09-08 François Dumont <fdumont@gcc.gnu.org>
1514 * testsuite/util/testsuite_performance.h (__gnu_test::MallocInfo): New.
1515 (__gnu_test::malloc_info): New, replace mallinfo on current platform
1516 supporting it and use mallinfo2 when glibc >= 2.33.
1518 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
1521 * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc:
1522 Prune additional errors from front-end.
1523 * testsuite/20_util/is_move_constructible/incomplete_neg.cc:
1525 * testsuite/20_util/is_nothrow_swappable/incomplete_neg.cc:
1527 * testsuite/20_util/is_nothrow_swappable_with/incomplete_neg.cc:
1529 * testsuite/20_util/is_swappable_with/incomplete_neg.cc:
1532 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
1534 * include/c_global/cstddef (byte): Add always_inline attribute
1535 to all operator overloads.
1536 (to_integer): Add always_inline attribute.
1538 2022-09-08 Thomas Rodgers <trodgers@redhat.com>
1539 Jakub Jelinek <jakub@redhat.com>
1540 Jonathan Wakely <jwakely@redhat.com>
1542 * include/bits/atomic_base.h (__atomic_impl::__maybe_has_padding):
1544 (__atomic_impl::clear_padding): Likewise.
1545 (__atomic_impl::__compare_exchange): Likewise.
1546 (__atomic_impl::compare_exchange_weak): Delegate to
1548 (__atomic_impl::compare_exchange_strong): Likewise.
1549 * include/std/atomic (atomic<T>::atomic(T)): Clear padding when
1550 possible in a constexpr function.
1551 (atomic::store): Clear padding.
1552 (atomic::exchange): Likewise.
1553 (atomic::compare_exchange_weak): Use __compare_exchange.
1554 (atomic::compare_exchange_strong): Likewise.
1555 * testsuite/29_atomics/atomic/compare_exchange_padding.cc: New
1557 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc:
1560 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
1562 * include/std/system_error (__adl_only::make_error_code): Add
1564 (__adl_only::make_error_condition): Likewise.
1565 (error_code::error_code(ErrorCodeEnum)): Add using-declaration
1566 for deleted function.
1567 (error_condition::error_condition(ErrorConditionEnum)):
1569 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: New test.
1570 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc: New test.
1572 2022-09-07 Jonathan Wakely <jwakely@redhat.com>
1574 * include/std/barrier: Add missing runtime exception.
1576 2022-09-07 Patrick Palka <ppalka@redhat.com>
1578 * include/std/type_traits (is_reference): Make the primary
1579 template derive from false_type. Define two partial
1580 specializations that derive from true_type.
1582 2022-09-07 Patrick Palka <ppalka@redhat.com>
1584 * include/std/type_traits (__is_void_helper): Remove.
1585 (is_void): Make the primary template derive from false_type,
1586 and define four explicit specializations that derive from
1588 (__is_null_pointer_helper, is_null_pointer): Likewise.
1590 2022-09-07 Jason Merrill <jason@redhat.com>
1592 * libsupc++/dyncast.cc (__dynamic_cast): Avoid virtual function
1593 call in simple success case.
1595 2022-09-06 Philipp Fent <fent@in.tum.de>
1597 * testsuite/libstdc++-prettyprinters/48362.cc: Fix expected
1599 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
1601 2022-09-05 Jonathan Wakely <jwakely@redhat.com>
1603 * include/std/type_traits (__success_type, __failure_type): Move
1604 definitions later in the file.
1606 2022-09-05 Jonathan Wakely <jwakely@redhat.com>
1608 * include/std/type_traits (is_trivial_v, is_trivially_copyable_v)
1609 (is_standard_layout_v, is_pod_v, is_literal_type_v): Use
1610 built-in instead of class template.
1611 (is_same_v): Add partial specialization for true case.
1613 2022-09-02 Patrick Palka <ppalka@redhat.com>
1615 * include/std/tuple (tuple::_UseOtherCtor): Use ::type when
1616 deriving from __and_, __or_ or __not_.
1617 * include/std/type_traits (negation): Likewise.
1618 (is_unsigned): Likewise.
1619 (__is_implicitly_default_constructible): Likewise.
1620 (is_trivially_destructible): Likewise.
1621 (__is_nt_invocable_impl): Likewise.
1623 2022-09-02 Jonathan Wakely <jwakely@redhat.com>
1625 * include/std/type_traits (is_constructible_v)
1626 (is_default_constructible_v, is_copy_constructible_v)
1627 (is_move_constructible_v): Define using __is_constructible.
1628 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v):
1629 Define using __is_assignable.
1630 (is_trivially_constructible_v)
1631 (is_trivially_default_constructible_v)
1632 (is_trivially_copy_constructible_v)
1633 (is_trivially_move_constructible_v): Define using
1634 __is_trivially_constructible.
1635 (is_trivially_assignable_v, is_trivially_copy_assignable_v)
1636 (is_trivially_move_assignable_v): Define using
1637 __is_trivially_assignable.
1638 (is_nothrow_constructible_v)
1639 (is_nothrow_default_constructible_v)
1640 (is_nothrow_copy_constructible_v)
1641 (is_nothrow_move_constructible_v): Define using
1642 __is_nothrow_constructible.
1643 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v)
1644 (is_nothrow_move_assignable_v): Define using
1645 __is_nothrow_assignable.
1647 2022-09-02 Patrick Palka <ppalka@redhat.com>
1649 * include/std/type_traits (__or_, __and_, __not_): Redefine as a
1650 class template instead of as an alias template.
1651 * testsuite/20_util/logical_traits/requirements/short_circuit.cc:
1652 Add more tests for conjunction and disjunction. Add corresponding
1653 tests for __and_ and __or_.
1655 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1657 * include/std/ranges (adjacent_transform_view::_Iterator): Add
1658 typename keyword before dependent qualified-id.
1660 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1662 * include/std/type_traits (__is_referenceable): Remove.
1663 (__add_lvalue_reference_helper, __add_rvalue_reference_helper):
1664 Use __void_t instead of __is_referenceable.
1665 (__add_pointer_helper): Likewise.
1666 (add_pointer): Add partial specializations for reference types.
1668 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1670 * include/std/type_traits (__is_constructible_impl): Replace
1671 class template with alias template.
1672 (is_default_constructible, is_nothrow_constructible)
1673 (is_nothrow_constructible): Simplify base-specifier.
1674 (__is_copy_constructible_impl, __is_move_constructible_impl)
1675 (__is_nothrow_copy_constructible_impl)
1676 (__is_nothrow_move_constructible_impl): Remove class templates.
1677 (is_copy_constructible, is_move_constructible)
1678 (is_nothrow_constructible, is_nothrow_default_constructible)
1679 (is_nothrow_copy_constructible, is_nothrow_move_constructible):
1680 Adjust base-specifiers to use __is_constructible_impl.
1681 (__is_copy_assignable_impl, __is_move_assignable_impl)
1682 (__is_nt_copy_assignable_impl, __is_nt_move_assignable_impl):
1683 Remove class templates.
1684 (__is_assignable_impl): New alias template.
1685 (is_assignable, is_copy_assignable, is_move_assignable):
1686 Adjust base-specifiers to use new alias template.
1687 (is_nothrow_copy_assignable, is_nothrow_move_assignable):
1688 Adjust base-specifiers to use existing alias template.
1689 (__is_trivially_constructible_impl): New alias template.
1690 (is_trivially_constructible, is_trivially_default_constructible)
1691 (is_trivially_copy_constructible)
1692 (is_trivially_move_constructible): Adjust base-specifiers to use
1694 (__is_trivially_assignable_impl): New alias template.
1695 (is_trivially_assignable, is_trivially_copy_assignable)
1696 (is_trivially_move_assignable): Adjust base-specifier to use
1698 (__add_lval_ref_t, __add_rval_ref_t): New alias templates.
1699 (add_lvalue_reference, add_rvalue_reference): Use new alias
1702 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1704 * include/std/type_traits (__decay_selector): Add partial
1705 specializations for array types. Only check for function types
1706 when not dealing with an array.
1707 (decay): Add partial specializations for reference types.
1709 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1711 * include/std/type_traits (is_lvalue_reference_v)
1712 (is_rvalue_reference_v, is_reference_v, is_const_v)
1713 (is_volatile_v): Define using partial specializations instead
1714 of instantiating class templates.
1716 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1718 * include/std/type_traits (is_enum_v, is_class_v, is_union_v)
1719 (is_empty_v, is_polymoprhic_v, is_abstract_v, is_final_v)
1720 (is_base_of_v, is_aggregate_v): Use built-in directly instead of
1721 instantiating class template.
1723 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1725 * include/std/type_traits (is_scoped_enum): Remove workaround.
1727 2022-09-01 Patrick Palka <ppalka@redhat.com>
1729 * include/std/ranges (__detail::__unarize): Define.
1730 (adjacent_view::_Iterator): Befriend adjacent_transform_view.
1731 (adjacent_transform_view): Define.
1732 (adjacent_transform_view::_Iterator): Define.
1733 (adjacent_transform_view::_Sentinel): Define.
1734 (views::__detail::__can_adjacent_transform_view): Define.
1735 (views::_AdjacentTransform): Define.
1736 (views::adjacent_transform): Define.
1737 (views::pairwise_transform): Define.
1738 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: New test.
1740 2022-09-01 Jonathan Wakely <jwakely@redhat.com>
1742 * include/std/type_traits (__is_array_known_bounds): Add partial
1743 specialization instead of using std::extent.
1744 (__is_array_unknown_bounds): Likewise.
1745 (extent): Add partial specializations to stop recursion after
1746 the result is found.
1747 (is_array_v): Add partial specializations instead of
1748 instantiating the class template.
1749 (rank_v, extent_v): Likewise.
1750 (is_bounded_array_v, is_unbounded_array_v): Likewise.
1751 (is_bounded_array, is_unbounded_array): Define in terms of the
1754 2022-08-31 Patrick Palka <ppalka@redhat.com>
1756 * include/bits/ranges_base.h (__advance_fn::operator()): Add
1757 parentheses in assert condition to avoid -Wparentheses warning.
1758 * include/std/ranges: (take_view::take_view): Uglify 'base'.
1759 (take_while_view::take_while_view): Likewise.
1760 (elements_view::elements_view): Likewise.
1761 (views::_Zip::operator()): Adjust position of [[nodiscard]] for
1762 compatibility with -fconcepts-ts.
1763 (zip_transform_view::_Sentinel): Uglify 'OtherConst'.
1764 (views::_ZipTransform::operator()): Adjust position of
1765 [[nodiscard]] for compatibilty with -fconcepts-ts.
1767 2022-08-31 Martin Liska <mliska@suse.cz>
1769 * configure: Regenerate.
1770 * crossconfig.m4: Remove deprecated ports.
1772 2022-08-31 François Dumont <fdumont@gcc.gnu.org>
1774 * include/debug/debug.h: Use nullptr rather than '0' in checks in post-C++11.
1775 * include/debug/string: Likewise.
1776 * testsuite/21_strings/basic_string/operations/ends_with/char.cc: Use __gnu_test::string.
1777 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc: Likewise.
1778 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc: Likewise.
1779 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc: Likewise.
1780 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc: Likewise.
1781 * testsuite/21_strings/basic_string/operations/starts_with/char.cc: Likewise..
1783 2022-08-31 Patrick Palka <ppalka@redhat.com>
1785 * include/std/ranges (adjacent_view): Define.
1786 (enable_borrowed_range<adjacent_view>): Define.
1787 (__detail::__repeated_tuple): Define.
1788 (adjacent_view::_Iterator): Define.
1789 (adjacent_view::_Sentinel): Define.
1790 (views::__detail::__can_adjacent_view): Define.
1791 (views::_Adjacent): Define.
1792 (views::adjacent): Define.
1793 (views::pairwise): Define.
1794 * testsuite/std/ranges/adaptors/adjacent/1.cc: New test.
1796 2022-08-31 François Dumont <fdumont@gcc.gnu.org>
1798 * include/debug/formatter.h
1799 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_state): Declare.
1800 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_create_state): Declare.
1801 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_callback): Define.
1802 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_error_callback): Define.
1803 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_func): Define.
1804 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full): Declare.
1805 [_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_state): New.
1806 [_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_full): New.
1807 * src/c++11/debug.cc [_GLIBCXX_HAVE_STACKTRACE](print_backtrace): New.
1808 (_Error_formatter::_M_error()): Adapt.
1809 * src/libbacktrace/Makefile.am: Add backtrace.c.
1810 * src/libbacktrace/Makefile.in: Regenerate.
1811 * src/libbacktrace/backtrace-rename.h (backtrace_full): New.
1812 * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc: New test.
1813 * doc/xml/manual/debug_mode.xml: Document _GLIBCXX_DEBUG_BACKTRACE.
1814 * doc/xml/manual/using.xml: Likewise.
1816 2022-08-31 Patrick Palka <ppalka@redhat.com>
1818 * testsuite/20_util/logical_traits/requirements/short_circuit.cc: New test.
1820 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
1822 * include/bits/refwrap.h (reference_wrapper::operator()): Add
1823 noexcept-specifier and use __invoke_result instead of result_of.
1824 * testsuite/20_util/reference_wrapper/invoke-noexcept.cc: New test.
1826 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
1828 * testsuite/20_util/reference_wrapper/invoke-2.cc: Improve
1830 * testsuite/20_util/reference_wrapper/invoke-3.cc: Likewise.
1831 * testsuite/20_util/reference_wrapper/invoke.cc: Likewise.
1833 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
1835 * include/bits/basic_string.h (basic_string): Add nodiscard
1836 attribute to all relevant functions.
1837 * include/std/string_view (basic_string_view): Likewise.
1838 * testsuite/21_strings/basic_string/capacity/1.cc: Cast unused
1840 * testsuite/21_strings/basic_string/capacity/char/1.cc:
1842 * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc:
1844 * testsuite/21_strings/basic_string/cons/char/self_move.cc:
1846 * testsuite/21_strings/basic_string/element_access/char/1.cc:
1848 * testsuite/21_strings/basic_string/element_access/char/21674.cc:
1850 * testsuite/21_strings/basic_string/element_access/wchar_t/1.cc:
1852 * testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc:
1854 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise.
1855 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise.
1856 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc:
1857 Add -Wno-unused-result to options.
1858 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc:
1860 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc:
1862 * testsuite/21_strings/basic_string/operators/char/1.cc: Cast
1863 unused results to void.
1864 * testsuite/21_strings/basic_string/operators/wchar_t/1.cc:
1866 * testsuite/21_strings/basic_string_view/capacity/1.cc:
1868 * testsuite/21_strings/basic_string_view/element_access/char/1.cc:
1870 * testsuite/21_strings/basic_string_view/element_access/char/2.cc:
1872 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc:
1874 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc:
1876 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc:
1878 Add -Wno-unused-result to options.
1879 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc:
1881 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc:
1883 * testsuite/27_io/basic_stringbuf/sputbackc/char/1.cc: Cast
1884 unused results to void.
1885 * testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc:
1887 * testsuite/27_io/basic_stringbuf/sungetc/char/1.cc: Likewise.
1888 * testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc:
1891 2022-08-27 Patrick Palka <ppalka@redhat.com>
1893 * testsuite/20_util/logical_traits/requirements/base_classes.cc: New test.
1895 2022-08-26 Patrick Palka <ppalka@redhat.com>
1897 * include/std/ranges (zip_view::_Iterator::operator<): Remove
1899 (zip_view::_Iterator::operator>): Likewise.
1900 (zip_view::_Iterator::operator<=): Likewise.
1901 (zip_view::_Iterator::operator>=): Likewise.
1902 (zip_view::_Iterator::operator<=>): Remove three_way_comparable
1903 constraint as per LWG 3692.
1904 (zip_transform_view::_Iterator): Ditto as per LWG 3702.
1906 2022-08-26 Patrick Palka <ppalka@redhat.com>
1908 * include/std/ranges (zip_view::_Iterator): Befriend
1910 (__detail::__range_iter_cat): Define.
1911 (zip_transform_view): Define.
1912 (zip_transform_view::_Iterator): Define.
1913 (zip_transform_view::_Sentinel): Define.
1914 (views::__detail::__can_zip_transform_view): Define.
1915 (views::_ZipTransform): Define.
1916 (views::zip_transform): Define.
1917 * testsuite/std/ranges/zip_transform/1.cc: New test.
1919 2022-08-26 Patrick Palka <ppalka@redhat.com>
1921 * include/std/type_traits (enable_if, __enable_if_t): Define them
1923 (__detail::__first_t): Define.
1924 (__detail::__or_fn, __detail::__and_fn): Declare.
1925 (__or_, __and_): Redefine as alias templates in terms of __or_fn
1927 (__not_): Redefine as an alias template.
1928 (__detail::__disjunction_impl, __detail::__conjunction_impl):
1930 (conjuction, disjunction): Redefine in terms of __disjunction_impl
1931 and __conjunction_impl.
1933 2022-08-26 Jonathan Wakely <jwakely@redhat.com>
1935 * include/std/system_error (error_code::_Check): New alias
1936 template for constructor SFINAE constraint.
1937 (error_code::error_code(ErrorCodeEnum)): Use it.
1938 (error_code::operator=(ErrorCodeEnum)): Remove.
1939 (error_condition::_Check): New alias template for constraint.
1940 (error_condition::error_condition(ErrorConditionEnum)): Use it.
1941 (error_condition::operator=(ErrorConditionEnum)): Remove.
1942 * testsuite/19_diagnostics/error_code/cons/1.cc: Check
1943 constructor taking user-defined error enum.
1944 * testsuite/19_diagnostics/error_condition/cons/1.cc: Likewise.
1946 2022-08-26 Jonathan Wakely <jwakely@redhat.com>
1948 * include/bits/basic_string.h (starts_with, ends_with, contains):
1949 Add nonnull attribute.
1950 * include/bits/cow_string.h (starts_with, ends_with, contains):
1952 * include/std/string_view (starts_with, ends_with, contains):
1954 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc
1955 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc
1956 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc
1957 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc
1958 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc
1959 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc
1961 2022-08-25 Patrick Palka <ppalka@redhat.com>
1963 * include/std/ranges (lazy_split_view::_OuterIter::_M_current):
1964 Remove redundant comment.
1965 (lazy_split_view::_M_current): Likewise.
1966 (common_view::common_view): Remove commented out view-converting
1967 constructor as per LWG3405.
1968 (elements_view::_Iterator::_Iterator): Uglify 'current' and 'i'.
1970 2022-08-24 Patrick Palka <ppalka@redhat.com>
1972 * include/bits/ranges_algo.h (__min_fn, min): Move to ...
1973 * include/bits/ranges_util.h: ... here, in order to avoid
1974 including all of ranges_algo.h from <ranges>.
1975 * include/std/ranges (__detail::__zip_is_common): Define for
1976 C++23 as per P2321R2.
1977 (__detail::__tuple_or_pair): Likewise.
1978 (__detail::__tuple_or_pair_t): Likewise.
1979 (__detail::__tuple_transform): Likewise.
1980 (__detail::__tuple_for_each): Likewise.
1981 (zip_view): Likewise.
1982 (enable_borrowed_range<zip_view>): Likewise.
1983 (__detail::__all_random_access): Likewise.
1984 (__detail::__all_bidirectional): Likewise.
1985 (__detail::__all_forward): Likewise.
1986 (__detail::__zip_view_iter_cat): Likewise.
1987 (zip_view::_Iterator): Likewise.
1988 (zip_view::_Sentinel): Likewise.
1989 * testsuite/std/ranges/zip/1.cc: New test.
1991 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
1994 2022-08-24 Will Hawkins <whh8b@obs.cr>
1996 * include/bits/basic_string.h (operator+(const string&, const char*)):
1997 Remove naive implementation.
1998 * include/bits/basic_string.tcc (operator+(const string&, const char*)):
1999 Add single-allocation implementation.
2001 2022-08-24 Patrick Palka <ppalka@redhat.com>
2003 * include/bits/stl_pair.h (pair::swap const): Add non-standard
2004 is_swappable_v constraints.
2005 * include/std/tuple (tuple::swap const): Likewise.
2006 * testsuite/20_util/tuple/cons/noexcept_specs.cc: Correct some
2007 asserts in C++23 mode.
2009 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
2011 * include/bits/stl_algo.h (__stable_sort): Cast size to
2012 iterator's difference type.
2013 * testsuite/25_algorithms/stable_sort/4.cc: New test.
2015 2022-08-24 Will Hawkins <whh8b@obs.cr>
2017 * include/bits/basic_string.h (operator+(const string&, const char*)):
2018 Remove naive implementation.
2019 * include/bits/basic_string.tcc (operator+(const string&, const char*)):
2020 Add single-allocation implementation.
2022 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
2024 * testsuite/20_util/duration_cast/rounding.cc: Check abs with
2025 non-reduced duration.
2027 2022-08-23 Patrick Palka <ppalka@redhat.com>
2029 * include/bits/stl_bvector.h (_Bit_reference::operator=): Define
2030 const overload for C++23 as per P2321R2.
2031 * include/bits/stl_pair.h (pair::swap): Likewise.
2032 (pair::pair): Define additional converting constructors for
2033 C++23 as per P2321R2.
2034 (pair::operator=): Define const overloads for C++23 as per
2036 (swap): Define overload taking const pair& for C++23 as per
2038 (basic_common_reference): Define partial specialization for
2039 pair for C++23 as per P2321R2.
2040 (common_type): Likewise.
2041 * include/bits/uses_allocator_args.h
2042 (uses_allocator_construction_args): Define additional pair
2043 overloads for C++23 as per P2321R2.
2044 * include/std/tuple (_Tuple_impl::_Tuple_impl): Define
2045 additional converting constructors for C++23 as per P2321R2.
2046 (_Tuple_impl::_M_assign): Define const overloads for C++23
2048 (_Tuple_impl::_M_swap): Likewise.
2049 (tuple::__constructible): Define as a convenient renaming of
2050 _TCC<true>::__constructible.
2051 (tuple::__convertible): As above but for _TCC<true>::__convertible.
2052 (tuple::tuple): Define additional converting constructors for
2053 C++23 as per P2321R2.
2054 (tuple::operator=): Define const overloads for C++23 as per
2056 (tuple::swap): Likewise.
2057 (basic_common_reference): Define partial specialization for
2058 tuple for C++23 as per P2321R2.
2059 (common_type): Likewise.
2060 * testsuite/20_util/pair/p2321r2.cc: New test.
2061 * testsuite/20_util/tuple/p2321r2.cc: New test.
2062 * testsuite/23_containers/vector/bool/element_access/1.cc: New test.
2064 2022-08-23 Patrick Palka <ppalka@redhat.com>
2066 * include/std/tuple (_TupleConstraints::__convertible): Define.
2067 (_TupleConstraints::__constructible): Define.
2068 (_TupleConstraints::__is_explicitly_constructible): Redefine this
2069 in terms of __convertible and __constructible.
2070 (_TupleConstraints::__is_implicitly_constructible): Likewise.
2072 2022-08-23 Jonathan Wakely <jwakely@redhat.com>
2075 * include/std/variant (__do_visit): Handle is_void<R> for zero
2077 * testsuite/20_util/variant/visit_r.cc: Check std::visit<void>(v).
2079 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
2082 * doc/xml/manual/using.xml: Document -lstdc++_libbacktrace
2083 requirement for using std::stacktrace. Also adjust -frtti and
2084 -fexceptions to document non-default (i.e. negative) forms.
2085 * doc/html/*: Regenerate.
2087 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
2090 * include/bits/std_thread.h (thread::_State_impl): Forward
2091 individual arguments to _Invoker constructor.
2092 (thread::_Invoker): Add constructor. Delete copies.
2093 * include/std/future (__future_base::_Deferred_state): Forward
2094 individual arguments to _Invoker constructor.
2095 (__future_base::_Async_state_impl): Likewise.
2096 * testsuite/30_threads/async/106695.cc: New test.
2097 * testsuite/30_threads/thread/106695.cc: New test.
2099 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
2102 * include/bits/regex_compiler.tcc (_Compiler::_M_cur_int_value):
2103 Use built-ins to check for integer overflow in back-reference
2105 * testsuite/28_regex/basic_regex/106607.cc: New test.
2107 2022-08-17 Keef Aragon <keef.aragon@konscious.net>
2109 * libsupc++/eh_alloc.cc (pool::free): Inverse comparison.
2111 2022-08-08 François Dumont <fdumont@gcc.gnu.org>
2113 * include/debug/formatter.h (__singular_value_init): New _Iterator_state enum entry.
2114 (_Parameter<>(const _Safe_iterator<>&, const char*, _Is_iterator)): Check if iterator
2115 parameter is value-initialized.
2116 (_Parameter<>(const _Safe_local_iterator<>&, const char*, _Is_iterator)): Likewise.
2117 * include/debug/safe_iterator.h (_Safe_iterator<>::_M_value_initialized()): New. Adapt
2119 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_M_value_initialized()): New.
2121 * src/c++11/debug.cc (_Safe_iterator_base::_M_reset): Do not reset _M_version.
2122 (print_field(PrintContext&, const _Parameter&, const char*)): Adapt state_names.
2123 * testsuite/23_containers/deque/debug/iterator1_neg.cc: New test.
2124 * testsuite/23_containers/deque/debug/iterator2_neg.cc: New test.
2125 * testsuite/23_containers/forward_list/debug/iterator1_neg.cc: New test.
2126 * testsuite/23_containers/forward_list/debug/iterator2_neg.cc: New test.
2127 * testsuite/23_containers/forward_list/debug/iterator3_neg.cc: New test.
2129 2022-08-05 Jonathan Wakely <jwakely@redhat.com>
2131 * include/experimental/scope (__cpp_lib_experimental_scope):
2133 * testsuite/experimental/scopeguard/uniqueres.cc: Check macro.
2135 2022-08-05 Jonathan Wakely <jwakely@redhat.com>
2137 * include/Makefile.am: Add new header.
2138 * include/Makefile.in: Regenerate.
2139 * include/experimental/scope: New file.
2140 * testsuite/experimental/scopeguard/uniqueres.cc: New test.
2141 * testsuite/experimental/scopeguard/exit.cc: New test.
2143 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2145 * include/std/string_view (basic_string_view(Range&&)): Add
2146 explicit as per P2499R0.
2147 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
2148 Adjust implicit conversions. Check implicit conversions fail.
2149 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
2152 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2154 * include/bits/fs_dir.h (directory_iterator): Add comparison
2155 with std::default_sentinel_t. Remove redundant operator!= for
2157 * (recursive_directory_iterator): Likewise.
2158 * include/bits/iterator_concepts.h [!__cpp_lib_concepts]
2159 (default_sentinel_t, default_sentinel): Define even if concepts
2161 * include/bits/regex.h (regex_iterator): Add comparison with
2162 std::default_sentinel_t. Remove redundant operator!= for C++20.
2163 (regex_token_iterator): Likewise.
2164 (regex_token_iterator::_M_end_of_seq()): Add noexcept.
2165 * testsuite/27_io/filesystem/iterators/lwg3719.cc: New test.
2166 * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
2168 * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
2171 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2173 * include/std/expected (unexpected::_M_val): Rename to _M_unex.
2174 (bad_expected_access::_M_val): Likewise.
2176 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2178 * include/bits/ios_base.h (__cpp_lib_ios_noreplace): Update
2180 * include/std/version (__cpp_lib_ios_noreplace): Likewise.
2181 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: Check
2183 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
2186 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
2189 * include/bits/atomic_wait.h (__waiter_pool_base::_M_notify):
2190 Move increment of _M_ver here.
2191 [!_GLIBCXX_HAVE_PLATFORM_WAIT]: Lock mutex around increment.
2192 Use relaxed memory order and always notify all waiters.
2193 (__waiter_base::_M_do_wait) [!_GLIBCXX_HAVE_PLATFORM_WAIT]:
2194 Check value again after locking mutex.
2195 (__waiter_base::_M_notify): Remove increment of _M_ver.
2197 2022-08-04 Ulrich Drepper <drepper@gmail.com>
2199 * python/libstdcxx/v6/printers.py (class StdTuplePrinter): Use
2200 zero-based indeces just like std:get takes.
2202 2022-07-29 Jonathan Wakely <jwakely@redhat.com>
2205 * include/bits/stl_iterator.h (common_iterator::operator->):
2206 Change return type to just auto.
2208 2022-07-26 Thomas Rodgers <trodgers@redhat.com>
2210 * include/bits/atomic_wait.h (__atomic_spin): Merge spin loops.
2212 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
2215 * include/bits/stl_iterator.h (common_iterator): Define
2216 destructor, copy constructor and move constructor as trivial
2217 when the underlying types allow.
2218 * testsuite/24_iterators/common_iterator/100823.cc: Check
2219 triviality of special members.
2221 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
2224 * include/bits/stl_iterator.h (common_iterator): Define move
2225 constructor and move assignment operator.
2226 (common_iterator::_M_assign): New function implementing
2228 (common_iterator::operator=): Use _M_assign.
2229 (common_iterator::_S_valueless): New constant.
2230 * testsuite/24_iterators/common_iterator/100823.cc: New test.
2232 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
2234 * include/bits/stl_iterator.h (common_iterator): Fix incorrect
2235 uses of is_nothrow_assignable_v. Fix inconsistent constraints on
2236 friend declaration. Do not move argument in copy constructor.
2237 * testsuite/24_iterators/common_iterator/1.cc: Check for
2238 noexcept constructibnle/assignable.
2240 2022-07-19 François Dumont <fdumont@gcc.gnu.org>
2242 * include/debug/debug.h [_GLIBCXX_DEBUG](__glibcxx_requires_string): Define
2243 using _GLIBCXX_DEBUG_PEDASSERT.
2244 [_GLIBCXX_DEBUG](__glibcxx_requires_string_len): Likewise.
2245 * include/debug/macros.h
2246 (__glibcxx_check_string, __glibcxx_check_string_len): Move...
2247 * include/debug/string
2248 (__glibcxx_check_string, __glibcxx_check_string_len): ...here. And define depending
2249 on _GLIBCXX_DEBUG_PEDANTIC no matter if _GLIBCXX_DEBUG is defined.
2250 Add using of std::string find, rfind, find_first_of, find_last_of, find_first_not_of
2251 and find_last_not_of. Remove debug implementations having no debug assertion.
2252 * testsuite/util/testsuite_string.h: New file. Provides __gnu_test::string and
2253 __gnu_test::wtring which definition depends on _GLIBCXX_DEBUG.
2254 * testsuite/21_strings/basic_string/debug/find1_neg.cc: New test case.
2255 * testsuite/21_strings/basic_string/debug/find2_neg.cc: New test case.
2256 * testsuite/21_strings/basic_string/operations/find/char/1.cc:
2257 Include <testsuite_string.h> and use __gnu_test::string.
2258 * testsuite/21_strings/basic_string/operations/find/char/2.cc: Likewise.
2259 * testsuite/21_strings/basic_string/operations/find/char/3.cc: Likewise.
2260 * testsuite/21_strings/basic_string/operations/find/char/4.cc: Likewise.
2261 * testsuite/21_strings/basic_string/operations/find/char/5.cc: Likewise.
2262 * testsuite/21_strings/basic_string/operations/find/char/6.cc: Likewise.
2263 * testsuite/21_strings/basic_string/operations/find/wchar_t/1.cc:
2264 Include <testsuite_string.h> and use __gnu_test::wstring.
2265 * testsuite/21_strings/basic_string/operations/find/wchar_t/2.cc: Likewise.
2266 * testsuite/21_strings/basic_string/operations/find/wchar_t/3.cc: Likewise.
2267 * testsuite/21_strings/basic_string/operations/find/wchar_t/4.cc: Likewise.
2268 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc: Likewise.
2269 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: Likewise.
2271 2022-07-19 Jonathan Wakely <jwakely@redhat.com>
2273 * include/std/type_traits (__cpp_lib_reference_from_temporary)
2274 (reference_constructs_from_temporary)
2275 (reference_converts_from_temporary): Only define when the
2276 built-ins are available.
2278 2022-07-19 Marco Falke <falke.marco@gmail.com>
2280 * include/std/charconv (__from_chars_alnum_to_val): Replace
2281 implicit conversion from int to unsigned char with explicit
2284 2022-07-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
2286 * configure: Regnerate.
2287 * configure.ac (newlib, *-rtems*): Remove HAVE_POLL.
2289 2022-07-18 François Dumont <fdumont@gcc.gnu.org>
2291 * include/bits/stl_algo.h
2292 (__merge_adaptive): Adapt to merge only when buffer is large enough..
2293 (__merge_adaptive_resize): New, adapt merge when buffer is too small.
2294 (__inplace_merge): Adapt, use latter.
2295 (__stable_sort_adaptive): Adapt to sort only when buffer is large enough.
2296 (__stable_sort_adaptive_resize): New, adapt sort when buffer is too small.
2297 (__stable_sort): Adapt, use latter.
2299 2022-07-15 Marek Polacek <polacek@redhat.com>
2302 * include/std/type_traits (reference_constructs_from_temporary,
2303 reference_converts_from_temporary): New class templates.
2304 (reference_constructs_from_temporary_v,
2305 reference_converts_from_temporary_v): New variable templates.
2306 (__cpp_lib_reference_from_temporary): Define for C++23.
2307 * include/std/version (__cpp_lib_reference_from_temporary): Define for
2309 * testsuite/20_util/variable_templates_for_traits.cc: Test
2310 reference_constructs_from_temporary_v and
2311 reference_converts_from_temporary_v.
2312 * testsuite/20_util/reference_from_temporary/value.cc: New test.
2313 * testsuite/20_util/reference_from_temporary/value2.cc: New test.
2314 * testsuite/20_util/reference_from_temporary/version.cc: New test.
2316 2022-07-12 Jonathan Wakely <jwakely@redhat.com>
2319 * include/std/istream [C++17] (operator>>(istream&, char*)):
2320 Set eofbit if we stopped extracting at EOF.
2321 * testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc:
2323 * testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc:
2326 2022-07-12 Jonathan Wakely <jwakely@redhat.com>
2328 * include/bits/stl_iterator.h (__iter_to_alloc_t): Replace
2329 add_const_t with const-qualifier.
2330 * include/bits/utility.h (tuple_element<N, cv T>): Likewise for
2332 * include/std/type_traits (add_const, add_volatile): Replace
2333 typedef-declaration with using-declaration.
2334 (add_cv): Replace add_const and add_volatile with cv-qualifiers.
2335 * include/std/variant (variant_alternative<N, cv T>): Replace
2336 add_const_t, add_volatile_t and add_cv_t etc. with cv-qualifiers.
2338 2022-07-09 François Dumont <fdumont@gcc.gnu.org>
2340 * include/std/string: Remove obsolete comment about char_traits.h including
2343 2022-07-07 Jonathan Wakely <jwakely@redhat.com>
2346 * include/bits/char_traits.h (__gnu_cxx::char_traits::move):
2347 Remove workaround for front-end bug.
2349 2022-07-05 Alexandre Oliva <oliva@adacore.com>
2351 * testsuite/util/testsuite_fs.h (nonexistent_path): Explain
2352 why we need the typecast.
2354 2022-07-05 Alexandre Oliva <oliva@adacore.com>
2356 * testsuite/util/testsuite_fs.h (nonexistent_path): Convert
2357 the getpid result to an integral type.
2359 2022-07-01 Jonathan Wakely <jwakely@redhat.com>
2362 * include/Makefile.am (largefile-config.h): Add
2363 stamp-${host_alias} prerequisite.
2364 * include/Makefile.in: Regenerate.
2366 2022-07-01 Jonathan Wakely <jwakely@redhat.com>
2368 * include/bits/fs_ops.h: Add nodiscard to all pure functions.
2369 * include/experimental/bits/fs_ops.h: Likewise.
2370 * testsuite/27_io/filesystem/operations/all.cc: Do not discard
2371 results of absolute and canonical.
2372 * testsuite/27_io/filesystem/operations/absolute.cc: Cast
2373 discarded result to void.
2374 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
2375 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
2376 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
2377 * testsuite/27_io/filesystem/operations/read_symlink.cc:
2379 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
2380 * testsuite/27_io/filesystem/operations/symlink_status.cc:
2382 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2384 * testsuite/experimental/filesystem/operations/canonical.cc:
2386 * testsuite/experimental/filesystem/operations/exists.cc:
2388 * testsuite/experimental/filesystem/operations/is_empty.cc:
2390 * testsuite/experimental/filesystem/operations/read_symlink.cc:
2392 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2395 2022-07-01 Sebastian Huber <sebastian.huber@embedded-brains.de>
2397 * configure: Regnerate.
2398 * configure.ac (newlib, *-rtems*): Enable TLS support for all RTEMS
2399 targets except bfin, lm32, mips, moxie, or1k, and v850.
2400 For all RTEMS targets, define HAVE_ALIGNED_ALLOC, HAVE_AT_QUICK_EXIT,
2401 HAVE_LINK, HAVE_POLL, HAVE_QUICK_EXIT, HAVE_READLINK, HAVE_SETENV,
2402 HAVE_SLEEP, HAVE_SOCKATMARK, HAVE_STRERROR_L, HAVE_SYMLINK,
2403 HAVE_TRUNCATE, and HAVE_USLEEP.
2404 * crossconfig.m4 (*-rtems*): Remove.
2406 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
2408 * include/bits/utility.h: Fix comment typos.
2410 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
2412 * src/c++17/fs_ops.cc (fs::temp_directory_path()): Include path
2414 (fs::temp_directory_path(error_code&)): Rearrange to more
2415 closely match the structure of the first overload.
2416 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
2417 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
2418 Check that exception contains the path.
2419 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2422 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
2425 * src/filesystem/ops.cc (has_trailing_slash): New helper
2427 (fs::status): Strip trailing slashes.
2428 (fs::symlink_status): Likewise.
2429 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
2430 Clean the environment before each test and use TMP instead of
2431 TMPDIR so the test passes on Windows.
2433 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2435 * src/filesystem/dir-common.h (_Dir_base::_At_path):
2436 Use char_type consistently for paths.
2438 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2440 * src/c++17/fs_dir.cc (_Dir::dir_and_pathname):: Replace with
2441 current() returning _At_path.
2442 (_Dir::_Dir, _Dir::open_subdir, _Dir::do_unlink): Adjust.
2443 * src/filesystem/dir-common.h (_Dir_base::_At_path): New class.
2444 (_Dir_base::_Dir_Base, _Dir_base::openat): Use _At_path.
2445 * src/filesystem/dir.cc (_Dir::dir_and_pathname): Replace with
2446 current() returning _At_path.
2447 (_Dir::_Dir, _Dir::open_subdir): Adjust.
2449 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2451 * src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]:
2452 Always store pathname if we don't have openat or unlinkat,
2453 because the full path is needed to open sub-directories and
2456 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
2458 * testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math
2459 functions are available.
2461 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2463 * testsuite/20_util/to_chars/long_double.cc: Use cmath
2464 long double overloads for nexttoward and ldexp.
2466 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2468 * testsuite/experimental/simd/standard_abi_usable.cc: Require
2470 * testsuite/experimental/simd/standard_abi_usable_2.cc:
2473 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2475 * testsuite/26_numerics/complex/proj.cc: Skip test in the
2476 circumstances in which the implementation of proj is known to
2479 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2481 * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if
2482 _GLIBCXX_HAVE_OPENAT.
2484 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2486 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
2487 (test06): Don't create symlinks when NO_SYMLINKS is defined.
2489 2022-06-27 Alexandre Oliva <oliva@adacore.com>
2491 * testsuite/lib/dg-options.exp (add_options_for_net_ts):
2492 Add -Wl,--gc-sections for RTEMS targets.
2493 * testsuite/experimental/net/timer/waitable/dest.cc: Link-time
2495 * testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
2496 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
2497 Execution-time xfail on RTEMS.
2498 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
2501 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2503 * testsuite/ext/mt_allocator/22309_thread.cc: Include <string>.
2505 2022-06-27 Joel Brobecker <brobecker@adacore.com>
2506 Jonathan Wakely <jwakely@redhat.com>
2508 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path):
2509 Always include a counter in the filename returned.
2511 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2513 * include/bits/move_only_function.h (_Never_valueless_alt):
2514 Define partial specialization for std::move_only_function.
2516 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2518 * include/std/variant (_Build_FUN::_S_fun): Define fallback case
2520 (__accepted_index, _Extra_visit_slot_needed): Replace class
2521 templates with variable templates.
2523 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2525 * include/bits/fs_path.h (__is_path_iter_src): Replace class
2526 template with variable template.
2528 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
2530 * include/bits/chrono.h (is_clock_v): Define to false.
2531 (is_clock_v<T>): Define partial specialization for true cases.
2532 (is_clock): Define in terms of is_clock_v.
2534 2022-06-24 Xi Ruoyao <xry111@xry111.site>
2536 * scripts/extract_symvers.in: Use grep -E instead of egrep.
2537 * scripts/run_doxygen: Likewise.
2539 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2541 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
2543 * configure, config.h.in: Rebuilt.
2544 * src/filesystem/dir-common.h (openat): Use ::openat if
2545 _GLIBCXX_HAVE_OPENAT.
2546 * src/filesystem/dir.cc (dir_and_pathname): Use dirfd if
2547 _GLIBCXX_HAVE_OPENAT.
2549 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2551 * testsuite/27_io/filesystem/operations/rename.cc: xfail on
2553 * testsuite/experimental/filesystem/operations/rename.cc:
2556 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2558 * testsuite/util/testsuite_fs.h (NO_LAST_WRITE_TIME): Define
2560 * testsuite/lib/libstdc++.exp
2561 (check_v3_target_fs_last_write_time): New.
2562 * testsuite/lib/dg-options.exp (dg-require-target-fs-lwt):
2564 * testsuite/27_io/filesystem/operations/last_write_time.cc:
2565 Skip the test if the features are unavailable.
2566 * testsuite/experimental/filesystem/operations/last_write_time.cc:
2569 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2571 * testsuite/util/testsuite_fs.h (NO_SPACE): Define if
2573 * testsuite/lib/libstdc++.exp (check_v3_target_fs_space): New.
2574 * testsuite/lib/dg-options.exp (dg-require-target-fs-space):
2576 * testsuite/27_io/filesystem/operations/space.cc: Require
2578 * testsuite/experimental/filesystem/operations/space.cc:
2581 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2583 * testsuite/util/testsuite_fs.h (NO_SYMLINKS): Define on
2584 mingw and when create_symlink is a dummy.
2585 * testsuite/27_io/filesystem/operations/symlink_status.cc:
2587 (test01, test02): Don't create symlinks when NO_SYMLINKS is
2589 * testsuite/27_io/filesystem/operations/canonical.cc (test03):
2591 * testsuite/27_io/filesystem/operations/copy.cc (test02):
2593 * testsuite/27_io/filesystem/operations/create_directories.cc
2595 * testsuite/27_io/filesystem/operations/create_directory.cc
2597 * testsuite/27_io/filesystem/operations/permissions.cc
2598 (test03, test04): Likewise.
2599 * testsuite/27_io/filesystem/operations/remove.cc (test01):
2601 * testsuite/27_io/filesystem/operations/remove_all.cc (test01):
2603 * testsuite/27_io/filesystem/operations/rename.cc
2604 (test_symlinks): Likewise.
2605 * testsuite/27_io/filesystem/operations/weakly_canonical.cc
2607 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
2609 * testsuite/experimental/filesystem/operations/copy.cc
2611 * testsuite/experimental/filesystem/operations/create_directories.cc
2613 * testsuite/experimental/filesystem/operations/create_directory.cc
2615 * testsuite/experimental/filesystem/operations/permissions.cc
2616 (test03, test04): Likewise.
2617 * testsuite/experimental/filesystem/operations/remove.cc
2619 * testsuite/experimental/filesystem/operations/remove_all.cc
2621 * testsuite/experimental/filesystem/operations/rename.cc
2623 * testsuite/lib/libstdc++.exp
2624 (v3_check_preprocessor_condition): Add optional inc parameter.
2625 Add it to the test program after include bits/c++config.h.
2626 (check_v3_target_fs_symlinks): New.
2627 * testsuite/lib/dg-options.exp
2628 (dg-require-target-fs-symlinks): New.
2629 * testsuite/27_io/filesystem/operations/read_symlink.cc:
2630 Replace mingw xfail with require target-fs-symlinks.
2631 * testsuite/experimental/filesystem/operations/read_symlink.cc:
2634 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2636 * testsuite/27_io/filesystem/operations/copy.cc (test02):
2637 Select TO after creating FROM.
2638 (test03, test04): Likewise.
2639 * testsuite/experimental/filesystem/operations/copy.cc
2640 (test02, test03, test04): Likewise.
2642 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2644 * testsuite/30_threads/thread/native_handle/cancel.cc: Add an
2645 explicit cancellation point in case sleep_for lacks one.
2647 2022-06-24 Alexandre Oliva <oliva@adacore.com>
2649 * testsuite/lib/dg-options.exp (add_options_for_net_ts): Add
2650 -lbsd for RTEMS targets.
2652 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
2654 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
2655 rmdir to remove directories.
2656 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
2659 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
2661 * testsuite/26_numerics/random/random_device/entropy.cc: Use
2662 numeric_limits<unsigned>::digits.
2664 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2666 * libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS]
2667 (__eh_globals_init::~__eh_globals_init): Clear _S_init first.
2669 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2671 * testsuite/30_threads/this_thread/60421.cc (test02): Call
2674 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2676 * testsuite/20_util/to_chars/long_double.cc: Require cmath.
2678 2022-06-22 Alexandre Oliva <oliva@adacore.com>
2680 * testsuite/23_containers/bitset/cons/dr1325-2.cc: Work around
2681 global struct bitset.
2682 * testsuite/23_containers/bitset/ext/15361.cc: Likewise.
2683 * testsuite/23_containers/bitset/input/1.cc: Likewise.
2684 * testsuite/23_containers/bitset/to_string/1.cc: Likewise.
2685 * testsuite/23_containers/bitset/to_string/dr396.cc: Likewise.
2687 2022-06-17 Jonathan Wakely <jwakely@redhat.com>
2689 * testsuite/21_strings/basic_string/cons/char/105995.cc: Add
2692 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
2695 * include/bits/basic_string.h (_M_use_local_data): Initialize
2696 the entire SSO buffer.
2697 * testsuite/21_strings/basic_string/cons/char/105995.cc: New test.
2699 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
2702 * include/ext/vstring.h (operator==): Always check lengths
2705 2022-06-15 François Dumont <fdumont@gcc.gnu.org>
2708 * include/bits/hashtable_policy.h (_ConvertToValueType): New.
2709 * include/bits/hashtable.h (_Hashtable<>::_M_insert_unique_aux): New.
2710 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, true_type)): Use latters.
2711 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, false_type)): Likewise.
2712 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
2713 const allocator_type&, true_type)): Use this.insert range.
2714 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
2715 const allocator_type&, false_type)): Use _M_insert.
2716 * testsuite/23_containers/unordered_map/cons/56112.cc: Check how many times conversion
2718 * testsuite/23_containers/unordered_map/insert/105717.cc: New test.
2719 * testsuite/23_containers/unordered_set/insert/105717.cc: New test.
2721 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2724 * include/bits/basic_string.h (operator==): Always compare
2725 lengths before checking string contents.
2726 [!__cpp_lib_three_way_comparison] (operator==, operator!=):
2729 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2732 * include/bits/basic_string.h (compare): Define inline.
2733 * include/bits/basic_string.tcc (compare): Remove out-of-line
2735 * include/bits/cow_string.h (compare): Define inline.
2736 * testsuite/21_strings/basic_string/operations/compare/char/3.cc:
2739 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2741 * include/bits/new_allocator.h: Fix indentation.
2742 * include/ext/malloc_allocator.h: Likewise.
2744 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
2747 * include/bits/allocator.h (allocator::allocate): Check for
2748 overflow in constexpr allocation.
2749 * testsuite/20_util/allocator/105975.cc: New test.
2751 2022-06-13 Mark Mentovai <mark@mentovai.com>
2753 * include/experimental/bits/fs_path.h (__detail::__null_terminated):
2754 Rename to __nul_terminated to avoid colliding with a macro in
2757 2022-06-13 Jonathan Wakely <jwakely@redhat.com>
2759 * include/std/atomic (__atomic_val_t): Use __type_identity_t
2760 instead of atomic<T>::value_type, as per LWG 3220.
2761 * testsuite/29_atomics/atomic/lwg3220.cc: New test.
2763 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
2766 * include/experimental/numeric (experimental::gcd): Simplify
2767 assertions. Use __abs_r instead of __absu.
2768 (experimental::lcm): Likewise. Remove use of __detail::__lcm so
2769 overflow can be detected.
2770 * include/std/numeric (__detail::__absu): Rename to __abs_r and
2771 change to allow signed result type, so overflow can be detected.
2772 (__detail::__lcm): Remove.
2773 (gcd): Simplify assertions. Use __abs_r instead of __absu.
2774 (lcm): Likewise. Remove use of __detail::__lcm so overflow can
2776 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
2777 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
2778 * testsuite/26_numerics/gcd/105844.cc: New test.
2779 * testsuite/26_numerics/lcm/105844.cc: New test.
2781 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
2784 * libsupc++/eh_globals.cc (eh_globals): Ensure constant init and
2785 prevent destruction during termination.
2786 (__eh_globals_init::_M_init): Replace with static member _S_init.
2787 (__cxxabiv1::__cxa_get_globals_fast): Update.
2788 (__cxxabiv1::__cxa_get_globals): Likewise.
2790 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
2792 * include/bits/basic_string.h (__hash_str_base): New class
2794 (hash<basic_string<C, char_traits<C>, A>>): Define partial
2795 specialization for each of the standard character types.
2796 (hash<string>, hash<wstring>, hash<u8string>, hash<u16string>)
2797 (hash<u32string>): Remove explicit specializations.
2798 * include/std/string (__hash_string_base): Remove class
2800 (hash<pmr::string>, hash<pmr::wstring>, hash<pmr::u8string>)
2801 (hash<pmr::u16string>, hash<pmr::u32string>): Remove explicit
2803 * testsuite/21_strings/basic_string/hash/hash.cc: Test with
2805 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
2808 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
2811 * include/std/sstream (basic_stringbuf::_M_high_mark): Add
2812 always_inline attribute.
2814 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2817 * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
2818 Limit ga_sizes array to values that fit in size_t.
2819 * include/ext/random [__SIZE_WIDTH < 32] (sfmt86243)
2820 (sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091)
2821 (sfmt216091_64): Do not declare.
2823 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2825 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make
2826 lookup for ios_errc and future_errc check versioned namespace.
2827 (StdAtomicPrinter): Strip versioned namespace from typename.
2829 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2831 * src/c++11/Makefile.am: Add new source file.
2832 * src/c++11/Makefile.in: Regenerate.
2833 * src/c++11/cxx11-ios_failure.cc (iostream_category):
2835 * src/c++11/ios_errcat.cc: New file.
2836 * testsuite/27_io/ios_base/failure/error_code.cc: Check that
2837 std::iostream_category() is defined and used for std::io_errc.
2839 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2841 * include/bits/stl_iterator.h (counted_iterator::operator++(int)):
2842 Add 'constexpr' as per LWG 3643.
2843 * testsuite/24_iterators/counted_iterator/lwg3643.cc: New test.
2845 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2847 * include/bits/functional_hash.h (__is_fast_hash): Add doxygen
2849 * include/bits/hashtable.h: Do not include <bits/stl_function.h>
2851 * include/bits/hashtable_policy.h: Include <bits/stl_pair.h> and
2852 <bits/functional_hash.h>.
2853 * include/bits/unordered_map.h: Include required headers.
2854 * include/bits/unordered_set.h: Likewise.
2855 * include/std/unordered_map: Do not include headers for indirect
2857 * include/std/unordered_set: Likewise.
2859 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2861 * include/bits/ranges_algobase.h: Do not include
2862 <bits/stl_iterator_base_types.h>.
2863 * include/std/string: Likewise.
2864 * include/std/variant: Likewise.
2866 2022-05-26 Nathan Sidwell <nathan@acm.org>
2868 * include/bits/hashtable.h: Include required headers.
2869 * include/bits/hashtable_policy.h: Likewise.
2870 * include/bits/stl_heap.h: Likewise.
2871 * include/bits/stl_iterator_base_funcs.h: Likewise.
2873 2022-05-26 François Dumont <fdumont@gcc.gnu.org>
2875 * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__):
2876 Strip typename from version namespace.
2878 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2880 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip
2881 versioned namespace from the template argument too.
2883 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
2885 * testsuite/21_strings/basic_string/modifiers/pop_back/char/1.cc:
2887 * testsuite/21_strings/basic_string/modifiers/pop_back/char.cc:
2889 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/1.cc:
2891 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t.cc:
2893 * testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc:
2895 * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
2897 * testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc:
2899 * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
2901 * testsuite/21_strings/basic_string/operations/contains/char/1.cc:
2903 * testsuite/21_strings/basic_string/operations/contains/char.cc:
2905 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc:
2907 * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc:
2909 * testsuite/21_strings/basic_string/operations/data/char/1.cc:
2911 * testsuite/21_strings/basic_string/operations/data/char.cc:
2913 * testsuite/21_strings/basic_string/operations/data/wchar_t/1.cc:
2915 * testsuite/21_strings/basic_string/operations/data/wchar_t.cc:
2917 * testsuite/21_strings/basic_string/operations/ends_with/char/1.cc:
2919 * testsuite/21_strings/basic_string/operations/ends_with/char.cc:
2921 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t/1.cc:
2923 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
2925 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
2927 * testsuite/21_strings/basic_string/operations/starts_with/char.cc:
2929 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
2931 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
2933 * testsuite/21_strings/basic_string/operations/substr/char/1.cc:
2935 * testsuite/21_strings/basic_string/operations/substr/char.cc:
2937 * testsuite/21_strings/basic_string/operations/substr/wchar_t/1.cc:
2939 * testsuite/21_strings/basic_string/operations/substr/wchar_t.cc:
2941 * testsuite/21_strings/basic_string/range_access/char/1.cc:
2943 * testsuite/21_strings/basic_string/range_access/char.cc:
2945 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
2947 * testsuite/21_strings/basic_string/range_access/wchar_t.cc:
2949 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
2951 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char.cc:
2953 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
2955 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t.cc:
2957 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
2959 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char.cc:
2961 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
2963 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t.cc:
2965 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
2967 * testsuite/21_strings/basic_string_view/modifiers/swap/char.cc:
2969 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
2971 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t.cc:
2973 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc:
2975 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
2977 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc:
2979 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc:
2981 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
2983 * testsuite/21_strings/basic_string_view/operations/data/char.cc:
2985 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
2987 * testsuite/21_strings/basic_string_view/operations/data/wchar_t.cc:
2989 * testsuite/21_strings/basic_string_view/operations/ends_with/char/1.cc:
2991 * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
2993 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t/1.cc:
2995 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
2997 * testsuite/21_strings/basic_string_view/operations/starts_with/char/1.cc:
2999 * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
3001 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t/1.cc:
3003 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
3005 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
3007 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
3009 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
3011 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
3013 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
3015 * testsuite/21_strings/basic_string_view/range_access/char.cc:
3017 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
3019 * testsuite/21_strings/basic_string_view/range_access/wchar_t.cc:
3021 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
3023 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char.cc:
3025 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
3027 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t.cc:
3029 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
3031 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t.cc:
3033 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
3035 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t.cc:
3037 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/1.cc:
3039 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
3041 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
3043 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t.cc:
3045 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
3047 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char.cc:
3049 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
3051 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t.cc:
3053 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
3055 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t.cc:
3057 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
3059 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t.cc:
3061 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
3063 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/int.cc:
3065 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
3067 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t.cc:
3069 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char/1.cc:
3071 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char.cc:
3073 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t/1.cc:
3075 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t.cc:
3077 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t/1.cc:
3079 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t.cc:
3081 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t/1.cc:
3083 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t.cc:
3085 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short/1.cc:
3087 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short.cc:
3089 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t/1.cc:
3091 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t.cc:
3094 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
3096 * testsuite/20_util/duration/requirements/explicit_instantiation/explicit_instantiation.cc:
3098 * testsuite/20_util/duration/requirements/explicit_instantiation.cc: ...here.
3099 * testsuite/20_util/time_point/requirements/explicit_instantiation/explicit_instantiation.cc:
3101 * testsuite/20_util/time_point/requirements/explicit_instantiation.cc: ...here.
3102 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation/explicit_instantiation.cc:
3104 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation.cc: ...here.
3106 2022-05-25 Jason Merrill <jason@redhat.com>
3108 * testsuite/20_util/function_objects/constexpr_searcher.cc: Add
3111 2022-05-20 Jonathan Wakely <jwakely@redhat.com>
3113 * testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc:
3114 Run fewer iterations for simulator targets.
3115 * testsuite/26_numerics/random/binomial_distribution/operators/values.cc:
3117 * testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
3119 * testsuite/26_numerics/random/geometric_distribution/operators/values.cc:
3121 * testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc:
3123 * testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
3125 * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc:
3128 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
3130 * include/bits/char_traits.h: Only include <cstdint> when
3132 * include/std/stacktrace: Use __UINTPTR_TYPE__ instead of
3134 * src/c++11/cow-stdexcept.cc: Include <stdint.h>.
3135 * src/c++17/floating_to_chars.cc: Likewise.
3136 * testsuite/20_util/assume_aligned/1.cc: Include <cstdint>.
3137 * testsuite/20_util/assume_aligned/3.cc: Likewise.
3138 * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
3140 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
3142 * include/bits/basic_string.h: Do not include <ext/atomicity.h>
3144 * include/bits/cow_string.h: Include it here.
3146 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
3148 * include/Makefile.am: Add new header.
3149 * include/Makefile.in: Regenerate.
3150 * include/bits/memory_resource.h: New file.
3151 * include/std/deque: Include <bits/memory_resource.h>.
3152 * include/std/forward_list: Likewise.
3153 * include/std/list: Likewise.
3154 * include/std/map: Likewise.
3155 * include/std/memory_resource (pmr::memory_resource): Move to
3156 new <bits/memory_resource.h> header.
3157 (pmr::polymorphic_allocator): Likewise.
3158 * include/std/regex: Likewise.
3159 * include/std/set: Likewise.
3160 * include/std/stacktrace: Likewise.
3161 * include/std/string: Likewise.
3162 * include/std/unordered_map: Likewise.
3163 * include/std/unordered_set: Likewise.
3164 * include/std/vector: Likewise.
3165 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
3166 Remove <memory_resource> header and check construction.
3167 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
3168 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
3170 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
3171 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
3172 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
3173 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
3174 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
3175 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
3177 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
3179 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
3181 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
3183 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
3184 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
3186 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
3188 * include/std/memory_resource (polymorphic_allocator): Add
3189 non-template equality operator, as proposed for LWG 3683.
3190 * testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test.
3192 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3194 * src/c++17/memory_resource.cc (set_default_resource): Use
3195 memory_order_acq_rel.
3196 (get_default_resource): Use memory_order_acquire.
3198 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3200 * include/std/memory_resource (new_delete_resource): Add
3201 nodiscard, returns_nonnull and const attributes.
3202 (null_memory_resource): Likewise.
3203 (set_default_resource, get_default_resource): Add returns_nonnull
3205 (memory_resource::is_equal): Add nodiscard attribute.
3206 (operator==, operator!=): Likewise.
3208 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3210 * include/bits/ios_base.h (io_category): Add const and nodiscard
3212 (make_error_code, make_error_condition): Add nodiscard.
3213 * include/std/future (future_category): Add const and nodiscard.
3214 (make_error_code, make_error_condition): Add nodiscard.
3215 * include/std/system_error (generic_category system_category):
3216 Add nodiscard. Replace _GLIBCXX_CONST with C++11 attribute.
3217 (error_code::value, error_code::category, error_code::operator bool)
3218 (error_condition::value, error_condition::category)
3219 (error_condition::operator bool, make_error_code)
3220 (make_error_condition, operator==, operator!=, operator<=>): Add
3223 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3225 * testsuite/20_util/expected/synopsis.cc: Skip for versioned
3227 * testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise.
3229 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
3231 * src/Makefile.am [ENABLE_SYMVERS_GNU_NAMESPACE] (cxx11_sources):
3232 Do not build the compatibility*-c++0x.cc objects.
3233 * src/Makefile.in: Regenerate.
3234 * src/c++11/compatibility-c++0x.cc [_GLIBCXX_INLINE_VERSION]:
3235 Refuse to build for the versioned namespace.
3236 * src/c++11/compatibility-chrono.cc: Likewise.
3237 * src/c++11/compatibility-condvar.cc: Likewise.
3238 * src/c++11/compatibility-thread-c++0x.cc: Likewise.
3239 * src/c++11/chrono.cc (system_clock, steady_clock):
3240 Use macros to define in inline namespace _V2, matching the
3241 declarations in <system_error>.
3242 * src/c++11/system_error.cc (system_category, generic_category):
3245 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3247 * doc/xml/manual/prerequisites.xml: Fix attributes for external
3249 * doc/html/manual/setup.html: Regenerate.
3251 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3253 * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support.
3254 * doc/html/*: Regenerate.
3256 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3258 * doc/xml/manual/intro.xml: Include new chapter.
3259 * doc/xml/manual/status_cxx2020.xml: Tweak release numbers.
3260 * doc/xml/manual/status_cxx2023.xml: New file.
3261 * doc/html/*: Regenerate.
3263 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
3265 * doc/html/manual/status.html: Regenerate.
3266 * doc/xml/manual/status_cxx2020.xml: Fix supported version for
3267 C++20 bit operations.
3269 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3271 * include/bits/std_thread.h (thread::_State, thread::_State_ptr):
3272 Declare as private unless _GLIBCXX_THREAD_IMPL is defined.
3273 * src/c++11/thread.cc (_GLIBCXX_THREAD_IMPL): Define.
3275 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3277 * include/std/future (launch): Make operators noexcept.
3279 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3281 * doc/doxygen/user.cfg.in (PREDEFINED): Replace __exception_ptr
3282 with "__unspecified__".
3283 * libsupc++/exception_ptr.h: Improve doxygen docs.
3284 (__exception_ptr::swap): Also declare in namespace std.
3286 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3288 * libsupc++/nested_exception.h (throw_with_nested) [C++17]: Use
3289 if-constexpr instead of tag dispatching.
3290 (rethrow_if_nested) [C++17]: Likewise.
3291 (rethrow_if_nested) [!__cpp_rtti]: Do not use dynamic_cast if it
3293 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
3296 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3298 * doc/doxygen/user.cfg.in (PREDEFINED): Define
3299 _GTHREAD_USE_MUTEX_TIMEDLOCK macro.
3300 * include/bits/std_mutex.h (mutex, lock_guard): Use @since and
3302 * include/bits/unique_lock.h (unique_lock): Likewise.
3303 * include/std/mutex (recursive_mutex, timed_mutex)
3304 (recursive_timed_mutex, scoped_lock): Likewise.
3306 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3308 * doc/doxygen/user.cfg.in (PREDEFINED): Define
3309 _GLIBCXX23_CONSTEXPR macro.
3310 * include/backward/auto_ptr.h (auto_ptr): Use @deprecated.
3311 * include/bits/unique_ptr.h (default_delete): Use @since and
3313 * include/std/scoped_allocator: Remove @ingroup from @file
3316 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3318 * include/bits/std_thread.h (thread, thread::id): Improve
3320 * include/std/future: Likewise.
3321 * include/std/thread (jthread): Likewise.
3323 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3325 * include/bits/ostream_insert.h: Mark helper functions as
3326 undocumented by Doxygen.
3327 * include/bits/stl_algo.h: Use markdown for formatting and mark
3328 helper functions as undocumented.
3329 * include/bits/stl_numeric.h: Likewise.
3330 * include/bits/stl_pair.h (pair): Add @headerfile.
3332 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3334 * doc/doxygen/user.cfg.in (PREDEFINED): Define __allocator_base
3335 so that Doxygen shows the right base-class for std::allocator.
3336 * include/bits/alloc_traits.h: Improve doxygen docs.
3337 * include/bits/allocator.h: Likewise.
3338 * include/bits/new_allocator.h: Likewise.
3339 * include/ext/new_allocator.h: Likewise.
3341 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3343 * doc/doxygen/user.cfg.in (PREDEFINED): Define macro
3344 _GLIBCXX_DOXYGEN_ONLY to expand its argument.
3345 * include/bits/c++config (_GLIBCXX_DOXYGEN_ONLY): Define.
3346 * include/bits/regex.h: Improve doxygen docs.
3347 * include/bits/regex_constants.h: Likewise.
3348 * include/bits/regex_error.h: Likewise.
3350 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3352 * include/std/atomic: Suppress doxygen docs for
3353 implementation details.
3354 * include/bits/atomic_base.h: Likewise.
3355 * include/bits/shared_ptr_atomic.h: Use markdown. Fix grouping
3356 so that std::atomic is not added to the pointer abstractions
3359 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3361 * include/std/system_error: Improve doxygen comments.
3363 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3365 * include/bits/ptr_traits.h: Add some doxygen comments.
3367 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3369 * doc/doxygen/user.cfg.in (PREDEFINED): Expand new macros to
3371 * include/bits/c++config (_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE)
3372 (_GLIBCXX_END_INLINE_ABI_NAMESPACE): Define new macros.
3373 * include/bits/algorithmfwd.h (_V2::__rotate): Use new macros
3375 * include/bits/chrono.h (chrono::_V2::system_clock): Likewise.
3376 * include/bits/stl_algo.h (_V2::__rotate): Likewise.
3377 * include/std/condition_variable (_V2::condition_variable_any):
3379 * include/std/system_error (_V2::error_category): Likewise.
3381 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3383 * include/bits/mofunc_impl.h: Fix doxygen command.
3385 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
3387 * doc/doxygen/user.cfg.in (GROUP_NESTED_COMPOUNDS): Set to NO.
3388 (CLASS_DIAGRAMS): Remove obsolete option.
3390 2022-05-12 Jonathan Wakely <jwakely@redhat.com>
3392 * config/locale/dragonfly/numeric_members.cc: Remove whitespace.
3393 * config/locale/gnu/numeric_members.cc: Likewise.
3394 * include/bits/locale_facets_nonio.h: Likewise.
3395 * libsupc++/typeinfo: Likewise.
3397 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
3400 * include/std/iosfwd: Add declarations for <spanstream> class
3401 templates and typedefs.
3402 * include/std/spanstream (basic_spanbuf, basic_ispanstream)
3403 (basic_ospanstream, basic_spanstream): Remove default template
3405 * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream>
3407 * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream>
3410 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
3413 * include/std/iosfwd: Add declarations for <synstream> class
3414 templates and typedefs.
3415 * include/std/syncstream (basic_syncbuf, basic_osyncstream):
3416 Remove default template arguments.
3417 * testsuite/27_io/headers/iosfwd/synopsis.cc: New test.
3418 * testsuite/27_io/headers/iosfwd/types.cc: New test.
3420 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3422 * include/bits/random.tcc (operator==): Only check
3423 normal_distribution::_M_saved_available once.
3424 * testsuite/26_numerics/random/normal_distribution/operators/equal.cc:
3425 Check equality after state changes.
3426 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
3429 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3432 * include/bits/random.tcc
3433 (operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
3434 Update state when __state_avail is false.
3435 * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
3436 Check that deserialized object equals serialized one.
3438 2022-05-06 Alexandre Oliva <oliva@adacore.com>
3440 * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX
3441 for double, long long, and 64-bit long intrinsic types.
3442 [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in
3443 preexisting long double diagnostic, adjust no-VSX double
3444 diagnostic to cover 64-bit long double as well.
3446 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3449 * testsuite/27_io/filesystem/iterators/error_reporting.cc:
3450 Use a trailing char array as storage for dirent::d_name.
3452 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3454 * include/std/stacktrace: Do not include <cxxabi.h>.
3455 (__cxa_demangle): Declare.
3457 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3460 * include/bits/specfun.h: Use visibility attribute on namespace,
3461 instead of pragma push/pop.
3462 * libsupc++/compare: Likewise.
3463 * libsupc++/exception: Likewise.
3464 * libsupc++/exception.h: Likewise.
3465 * libsupc++/exception_ptr.h: Likewise.
3466 * libsupc++/initializer_list: Likewise.
3467 * libsupc++/nested_exception.h: Likewise.
3469 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3471 * doc/xml/manual/test.xml: Remove requirement for copyright and
3472 GPL notice in tests.
3473 * doc/html/manual/test.html: Regenerate.
3475 2022-05-05 Jonathan Wakely <jwakely@redhat.com>
3477 * include/experimental/memory_resource [!__cpp_rtti]
3478 (__resource_adaptor_imp::do_is_equal): Do not use dynamic_cast
3479 when RTTI is disabled.
3480 * testsuite/17_intro/freestanding.cc: Require RTTI.
3481 * testsuite/18_support/exception/38732.cc: Likewise.
3482 * testsuite/18_support/exception_ptr/rethrow_exception.cc:
3484 * testsuite/18_support/nested_exception/68139.cc: Likewise.
3485 * testsuite/18_support/nested_exception/rethrow_if_nested.cc:
3487 * testsuite/18_support/type_info/103240.cc: Likewise.
3488 * testsuite/18_support/type_info/fundamental.cc: Likewise.
3489 * testsuite/18_support/type_info/hash_code.cc: Likewise.
3490 * testsuite/20_util/any/assign/emplace.cc: Likewise.
3491 * testsuite/20_util/any/cons/in_place.cc: Likewise.
3492 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
3493 * testsuite/20_util/any/observers/type.cc: Likewise.
3494 * testsuite/20_util/function/1.cc: Likewise.
3495 * testsuite/20_util/function/2.cc: Likewise.
3496 * testsuite/20_util/function/3.cc: Likewise.
3497 * testsuite/20_util/function/4.cc: Likewise.
3498 * testsuite/20_util/function/5.cc: Likewise.
3499 * testsuite/20_util/function/6.cc: Likewise.
3500 * testsuite/20_util/function/7.cc: Likewise.
3501 * testsuite/20_util/function/8.cc: Likewise.
3502 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
3503 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
3504 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
3505 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
3507 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
3508 * testsuite/20_util/typeindex/comparison_operators.cc: Likewise.
3509 * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
3511 * testsuite/20_util/typeindex/hash.cc: Likewise.
3512 * testsuite/20_util/typeindex/hash_code.cc: Likewise.
3513 * testsuite/20_util/typeindex/name.cc: Likewise.
3514 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
3515 * testsuite/22_locale/global_templates/standard_facet_hierarchies.cc:
3517 * testsuite/22_locale/global_templates/user_facet_hierarchies.cc:
3519 * testsuite/22_locale/locale/13630.cc: Check type without using
3521 * testsuite/23_containers/array/requirements/non_default_constructible.cc:
3523 * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
3524 * testsuite/27_io/fpos/14320-1.cc: Check type without using RTTI.
3525 * testsuite/27_io/fpos/mbstate_t/12065.cc: Require RTTI.
3526 * testsuite/27_io/ios_base/failure/dual_abi.cc: Likewise.
3527 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
3528 * testsuite/experimental/any/observers/type.cc: Likewise.
3529 * testsuite/experimental/memory_resource/resource_adaptor.cc:
3531 * testsuite/lib/libstdc++.exp (check_effective_target_rtti):
3533 * testsuite/tr1/3_function_objects/function/1.cc: Likewise.
3534 * testsuite/tr1/3_function_objects/function/2.cc: Likewise.
3535 * testsuite/tr1/3_function_objects/function/3.cc: Likewise.
3536 * testsuite/tr1/3_function_objects/function/4.cc: Likewise.
3537 * testsuite/tr1/3_function_objects/function/5.cc: Likewise.
3538 * testsuite/tr1/3_function_objects/function/6.cc: Likewise.
3539 * testsuite/tr1/3_function_objects/function/7.cc: Likewise.
3540 * testsuite/tr1/3_function_objects/function/8.cc: Likewise.
3541 * testsuite/tr2/bases/value.cc: Likewise.
3542 * testsuite/tr2/direct_bases/value.cc: Likewise.
3543 * testsuite/util/exception/safety.h [!__cpp_rtti]: Don't print
3546 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
3549 * include/std/array (array::size(), array::max_size())
3550 (array::empty(), array::data()): Add always_inline attribute.
3552 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
3555 * include/std/array (__array_traits::_S_ref): Remove.
3556 (__array_traits::_S_ptr): Remove.
3557 (__array_traits<T, 0>::_Type): Define operator[] and operator T*
3558 to provide an array-like API.
3559 (array::_AT_Type): Remove public typeef.
3560 (array::operator[], array::at, array::front, array::back): Use
3561 index operator to access _M_elems instead of _S_ref.
3562 (array::data): Use implicit conversion from _M_elems to pointer.
3563 (swap(array&, array&)): Use __enable_if_t helper.
3564 (get<I>): Use index operator to access _M_elems.
3565 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
3566 Adjust dg-error line numbers.
3568 2022-05-03 Alexandre Oliva <oliva@adacore.com>
3571 * testsuite/20_util/from_chars/pr105324.cc: Guard test body
3572 with conditional for floating-point overloads of from_char.
3574 2022-05-02 Patrick Palka <ppalka@redhat.com>
3577 * src/c++17/floating_from_chars.cc (find_end_of_float): Accept
3578 two delimeters for the exponent part in the form of a possibly
3579 NULL string of length two. Don't use std::tolower.
3580 (pattern): Adjust calls to find_end_of_float accordingly.
3582 2022-05-02 Patrick Palka <ppalka@redhat.com>
3585 * src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
3586 Also accept 'P' as the start of the exponent.
3587 * testsuite/20_util/from_chars/7.cc: Add corresponding testcase.
3589 2022-04-29 Jonathan Wakely <jwakely@redhat.com>
3592 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
3594 * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]:
3595 Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I>
3596 symbols as aliases for corresponding symbols without abi-tag.
3598 2022-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3600 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
3601 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
3603 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
3604 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
3607 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
3610 * src/c++17/fs_ops.cc (fs::copy): Pass error_code to
3611 directory_iterator constructor, and check on each iteration.
3612 * src/filesystem/ops.cc (fs::copy): Likewise.
3613 * testsuite/27_io/filesystem/operations/copy.cc: Check for
3614 errors during recursion.
3615 * testsuite/experimental/filesystem/operations/copy.cc:
3618 2022-04-28 François Dumont <fdumont@gcc.gnu.org>
3620 * config/abi/pre/gnu-versioned-namespace.ver: Remove
3621 std::random_device::* pattern.
3623 2022-04-27 Jakub Jelinek <jakub@redhat.com>
3625 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
3626 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
3627 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
3628 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
3629 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
3630 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
3631 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
3632 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
3634 2022-04-27 Jonathan Wakely <jwakely@redhat.com>
3636 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add
3637 support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>.
3638 (StdAtomicPrinter): New printer.
3639 (build_libstdcxx_dictionary): Register new printer.
3640 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic.
3641 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart
3644 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
3646 * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add
3647 constructor for constant initialization from nullptr_t.
3648 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
3649 Check for new constructor.
3651 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
3653 * include/bits/fs_path.h (hash<filesystem::path>): Define.
3654 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
3655 Check std::hash specialization.
3657 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
3659 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define
3661 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
3663 (default_delete, default_delete<T[]>, __uniq_ptr_impl)
3664 (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member
3666 * include/std/version (__cpp_lib_constexpr_memory): Define new
3668 * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test.
3669 * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test.
3670 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test.
3671 * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test.
3672 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test.
3673 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc:
3676 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
3679 * include/std/future (packaged_task): Add deduction guides.
3680 * testsuite/30_threads/packaged_task/cons/deduction.cc: New test.
3682 2022-04-25 Philipp Fent <fent@in.tum.de>
3684 * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
3686 (StdInitializerListPrinter): Define new printer.
3687 (build_libstdcxx_dictionary): Register new printer.
3688 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
3691 2022-04-22 Thomas W Rodgers <trodgers@redhat.com>
3694 * include/bits/atomic_base.h (atomic_flag::notify_one,
3695 notify_all): Remove const qualification.
3696 (__atomic_base::notify_one, notify_all): Likewise.
3697 * include/std/atomic (atomic<bool>::notify_one, notify_all):
3699 (atomic::notify_one, notify_all): Likewise.
3700 (atomic<T*>::notify_one, notify_all): Likewise.
3701 (atomic_notify_one, atomic_notify_all): Likewise.
3702 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test
3703 to account for change in notify_one/notify_all signature.
3705 2022-04-21 Patrick Palka <ppalka@redhat.com>
3707 * include/std/charconv (__from_chars_alnum_to_val_table):
3708 Simplify initialization of __lower/__upper_letters.
3709 (__from_chars_alnum_to_val): Default the template parameter to
3711 * src/c++17/floating_from_chars.cc (starts_with_ci): Don't
3712 assume the uppercase and lowercase letters are contiguous.
3713 (__floating_from_chars_hex): Likewise.
3715 2022-04-21 Patrick Palka <ppalka@redhat.com>
3719 * include/std/charconv (__from_chars_alnum_to_val): Make
3720 initializer for __table dependent in an artificial way.
3722 2022-04-21 Jonathan Wakely <jwakely@redhat.com>
3725 * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
3727 * testsuite/20_util/from_chars/pr105324.cc: New test.
3729 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
3731 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
3732 Check correct feature test macro.
3734 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
3737 * doc/xml/manual/prerequisites.xml: Document libiconv
3739 * doc/html/manual/setup.html: Regenerate.
3740 * src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
3741 * src/Makefile.in: Regenerate.
3743 2022-04-19 Patrick Palka <ppalka@redhat.com>
3745 * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't
3747 (__floating_to_chars_shortest): Add __builtin_unreachable calls to
3748 squelch false-positive -Wmaybe-uninitialized and -Wreturn-type
3750 (__floating_to_chars_precision): Likewise.
3752 2022-04-19 Philipp Fent <fent@in.tum.de>
3754 * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
3755 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
3757 2022-04-19 Jonathan Wakely <jwakely@redhat.com>
3759 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
3760 * configure: Regenerate.
3762 2022-04-18 Patrick Palka <ppalka@redhat.com>
3764 * include/std/charconv (__from_chars_pow2_base): Manually
3765 unroll the first iteration of the main loop and simplify
3768 2022-04-15 Patrick Palka <ppalka@redhat.com>
3771 * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing
3772 __first twice at the start.
3773 * testsuite/25_algorithms/minmax/constrained.cc (test06): New test.
3775 2022-04-15 Patrick Palka <ppalka@redhat.com>
3777 * include/std/charconv (__from_chars_alnum_to_val_table): Define.
3778 (__from_chars_alnum_to_val): Define.
3779 (__from_chars_binary): Rename to ...
3780 (__from_chars_pow2_base): ... this. Generalize to handle any
3781 power-of-two base using __from_chars_alnum_to_val.
3782 (__from_chars_digit): Optimize digit recognition to a single
3783 test instead of two tests. Use [[__unlikely___]] attribute.
3784 (__from_chars_alpha_to_num): Remove.
3785 (__from_chars_alnum): Use __from_chars_alnum_to_val. Use a
3786 nested loop for the overflow case. Maintain a lower bound
3787 on the number of available bits in the result and use it to
3788 omit the overflow check.
3789 (from_chars): Adjust appropriately.
3790 * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove.
3791 (__floating_from_chars_hex): Use __from_chars_alnum_to_val
3792 to recognize a hex digit instead.
3794 2022-04-14 Palmer Dabbelt <palmer@rivosinc.com>
3796 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
3798 * configure: Regenerate.
3800 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
3802 * doc/xml/manual/intro.xml: Fix comment.
3804 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
3806 * include/precompiled/stdc++.h: Include <stacktrace> and
3807 <stdatomic.h> for C++23.
3809 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
3812 * include/bits/stl_vector.h (__cpp_lib_constexpr_vector):
3814 * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h):
3816 * include/std/optional (__cpp_lib_optional): Define new value
3818 (__cpp_lib_monadic_optional): Remove.
3819 * include/std/version (__cpp_lib_constexpr_vector): Define.
3820 (__cpp_lib_stdatomic_h): Define.
3821 (__cpp_lib_optional): Define new value for C++23.
3822 (__cpp_lib_monadic_optional): Remove.
3823 * testsuite/20_util/optional/monadic/and_then.cc: Adjust.
3824 * testsuite/20_util/optional/requirements.cc: Adjust for C++23.
3825 * testsuite/20_util/optional/version.cc: Likewise.
3826 * testsuite/23_containers/vector/cons/constexpr.cc: Check
3828 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
3830 * testsuite/20_util/optional/monadic/version.cc: Removed.
3831 * testsuite/23_containers/vector/requirements/version.cc: New test.
3832 * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test.
3834 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
3836 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
3837 * config.h.in: Regenerate.
3838 * configure: Regenerate.
3840 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
3842 * include/std/stacktrace (basic_stacktrace::current): Reallocate
3843 a smaller container if the unused capacity is larger than the
3846 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
3848 * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone
3849 or _Impl::_M_assign to initialize elements in allocated storage.
3850 (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of
3852 (basic_stacktrace::_Impl::_M_destroy()): Replace with ...
3853 (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New
3855 (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct
3856 new element using allocator.
3857 (basic_stacktrace::_Impl::_M_clone): New function.
3858 (basic_stacktrace::_Impl::_M_xclone): New function.
3859 (basic_stacktrace::_Impl::_M_assign): New function.
3861 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
3863 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
3864 Use nothrow new instead of try block for std::allocator.
3865 (basic_stacktrace::_Impl::_M_deallocate): Use delete for
3868 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
3870 * include/std/stacktrace (basic_stacktrace::current): Replace
3871 calls to _M_reserve and _S_curr_cb with call to _M_prepare.
3872 Check return value of backtrace_simple when max depth given.
3873 (basic_stacktrace::_M_reserve): Remove.
3874 (basic_stacktrace::_S_curr_cb): Remove.
3875 (basic_stacktrace::_M_prepare(size_type)): New function to
3876 reserve initial capacity and return callback.
3877 (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n
3878 and remove redundant zeroing of _M_frames and _M_capacity.
3879 (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]]
3880 attribute. Assign _Impl instead of swapping.
3881 * testsuite/19_diagnostics/stacktrace/current.cc: New test.
3883 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
3885 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
3886 Change [[unlikely]] attribute to [[likely]].
3888 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
3891 * include/std/stacktrace (basic_stacktrace::basic_stacktrace):
3892 Fix allocator usage in constructors.
3893 (basic_stacktrace::operator=(const basic_stacktrace&)): Do not
3894 try to reallocate using const allocator.
3895 (basic_stacktrace::operator=(basic_stacktrace&&)): Fix
3896 if-constexpr with non-constant condition. Do not allocate new
3897 storage if allocator propagates. Do not set _M_size if
3899 (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add
3900 assertion that non-propagating allocators are equal.
3901 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test.
3903 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
3905 * include/std/stacktrace (basic_stacktrace::current): Duplicate
3906 implementation into each overload. Add noinline attribute and
3908 (basic_stacktrace::max_size()): Call _Impl::_S_max_size.
3909 (basic_stacktrace::_S_curr_cb()): New function defining lambda.
3910 (basic_stacktrace::_Impl::_S_max_size): New function defining
3911 maximum size in terms of allocator and size_type.
3912 (basic_stacktrace::_Impl::_M_allocate): Check against
3914 * testsuite/19_diagnostics/stacktrace/entry.cc: Call function
3915 for non-constexpr checks. Check line number is correct.
3917 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
3919 * testsuite/20_util/stacktrace/entry.cc: Moved to...
3920 * testsuite/19_diagnostics/stacktrace/entry.cc: ...here.
3921 * testsuite/20_util/stacktrace/synopsis.cc: Moved to...
3922 * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here.
3923 * testsuite/20_util/stacktrace/version.cc: Moved to...
3924 * testsuite/19_diagnostics/stacktrace/version.cc: ...here.
3926 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
3928 * include/experimental/bits/fs_path.h (path): Define special
3929 members after path::_Cmpt is complete.
3931 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
3934 * include/std/expected
3935 (expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
3936 * testsuite/20_util/expected/cons.cc: Check constructor.
3938 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
3941 * include/std/expected (expected<void, E>::swap): Set
3942 _M_has_value to false for objects that previously had a value.
3943 * testsuite/20_util/expected/swap.cc: Fix test to check void
3946 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
3949 * include/std/expected (bad_expected_access): Move constructor
3951 * testsuite/20_util/expected/bad.cc: New test.
3953 2022-04-07 Hans-Peter Nilsson <hp@axis.com>
3955 * testsuite/20_util/expected/requirements.cc: Correct minimal-size
3958 2022-04-02 Jakub Jelinek <jakub@redhat.com>
3961 * include/std/source_location (std::source_location::__impl): Move
3962 definition before using __builtin_ret_type.
3964 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
3966 * include/std/utility (unreachable): Define for C++23.
3967 * include/std/version (__cpp_lib_unreachable): Define.
3968 * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid
3969 arguments. Handle only the function being given.
3970 * testsuite/20_util/unreachable/1.cc: New test.
3971 * testsuite/20_util/unreachable/version.cc: New test.
3973 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
3975 * include/experimental/bits/fs_fwd.h (copy_file): Remove
3976 incorrect noexcept from declaration.
3977 * include/experimental/bits/fs_path.h (path::begin, path::end):
3978 Add noexcept to declarations, to match definitions.
3980 2022-04-01 Timm Bäder <tbaeder@redhat.com>
3982 * include/bits/fs_ops.h: Fix filename in Doxygen comment.
3983 * include/experimental/bits/fs_ops.h: Likewise.
3985 2022-03-31 Jonathan Wakely <jwakely@redhat.com>
3987 * libsupc++/new_opa.cc (aligned_alloc): Add comment.
3989 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
3991 * testsuite/18_support/exception/38732.cc: Disable for C++23.
3992 * testsuite/18_support/headers/exception/synopsis.cc: Likewise.
3993 * testsuite/18_support/unexpected_handler.cc: Likewise.
3995 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
3997 * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
3998 static data members for _Fp_fmt enumerators.
4000 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
4002 * include/std/version (__cpp_lib_variant): Fix conditions to
4004 (__cpp_lib_expected): Fix condition to match <expected>.
4006 2022-03-28 Jonathan Wakely <jwakely@redhat.com>
4008 * testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
4009 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
4010 * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
4011 * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
4012 * testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
4013 * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
4014 * testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
4015 * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
4017 2022-03-27 Jonathan Wakely <jwakely@redhat.com>
4019 * doc/doxygen/user.cfg.in: Add new header.
4020 * include/Makefile.am: Likewise.
4021 * include/Makefile.in: Regenerate.
4022 * include/precompiled/stdc++.h: Add new header.
4023 * include/std/version (__cpp_lib_expected): Define.
4024 * libsupc++/exception [__cplusplus > 202002] (unexpected)
4025 (unexpected_handler, set_unexpected): Do not declare for C++23.
4026 * include/std/expected: New file.
4027 * testsuite/20_util/expected/assign.cc: New test.
4028 * testsuite/20_util/expected/cons.cc: New test.
4029 * testsuite/20_util/expected/illformed_neg.cc: New test.
4030 * testsuite/20_util/expected/observers.cc: New test.
4031 * testsuite/20_util/expected/requirements.cc: New test.
4032 * testsuite/20_util/expected/swap.cc: New test.
4033 * testsuite/20_util/expected/synopsis.cc: New test.
4034 * testsuite/20_util/expected/unexpected.cc: New test.
4035 * testsuite/20_util/expected/version.cc: New test.
4037 2022-03-25 Jonathan Wakely <jwakely@redhat.com>
4039 * include/std/bit (bit_cast, byteswap, endian): Add doxygen
4042 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
4045 * include/std/bit (bit_cast): Add constraints.
4046 * testsuite/26_numerics/bit/bit.cast/105027.cc: New test.
4048 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
4050 * include/std/version [!_GLIBCXX_HOSTED]
4051 (__cpp_lib_hardware_interference_size): Define for freestanding.
4052 (__cpp_lib_bit_cast): Likewise.
4053 (__cpp_lib_is_layout_compatible): Likewise.
4054 (__cpp_lib_is_pointer_interconvertible): Likewise.
4055 (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for
4057 (__cpp_lib_invoke_r): Likewise.
4058 (__cpp_lib_ios_noreplace): Likewise.
4059 (__cpp_lib_monadic_optional): Likewise.
4060 (__cpp_lib_move_only_function): Likewise.
4061 (__cpp_lib_spanstream): Likewise.
4062 (__cpp_lib_stacktrace): Likewise.
4063 (__cpp_lib_string_contains): Likewise.
4064 (__cpp_lib_string_resize_and_overwrite): Likewise.
4065 (__cpp_lib_to_underlying): Likewise.
4067 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
4070 * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
4071 <bits/atomic_wait.h> for freestanding.
4073 2022-03-22 Hans-Peter Nilsson <hp@axis.com>
4075 * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
4076 Conditionalize call to fesetround.
4078 2022-03-21 Jakub Jelinek <jakub@redhat.com>
4081 * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
4082 isn't overloaded if __clang__ is defined.
4084 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
4087 * include/std/any (any(T&&)): Revert change to constraints.
4088 * testsuite/20_util/any/cons/104242.cc: New test.
4090 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
4093 * include/pstl/glue_algorithm_defs.h: Replace <functional> with
4095 * include/pstl/utils.h: Replace <iterator> with <type_traits>.
4096 (__pstl::__internal::__except_handler): Use std::__terminate
4097 instead of std::terminate.
4098 * src/c++17/fs_path.cc: Include <array>.
4099 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include
4101 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
4102 * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
4103 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
4104 * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
4105 * testsuite/25_algorithms/includes/constrained.cc: Likewise.
4106 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
4107 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
4108 * testsuite/25_algorithms/is_permutation/constrained.cc: Include
4110 * testsuite/25_algorithms/is_sorted/constexpr.cc: Include
4112 * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
4114 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
4116 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
4118 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
4120 * testsuite/25_algorithms/lower_bound/constexpr.cc: Include
4122 * testsuite/25_algorithms/max/constrained.cc: Likewise.
4123 * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
4124 * testsuite/25_algorithms/min/constrained.cc: Likewise.
4125 * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
4126 * testsuite/25_algorithms/minmax_element/constrained.cc:
4128 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
4129 * testsuite/25_algorithms/move/93872.cc: Likewise.
4130 * testsuite/25_algorithms/move_backward/93872.cc: Include
4132 * testsuite/25_algorithms/nth_element/constexpr.cc: Include
4134 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
4135 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
4137 * testsuite/25_algorithms/search/constexpr.cc: Likewise.
4138 * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
4139 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
4140 * testsuite/25_algorithms/set_difference/constrained.cc:
4142 * testsuite/25_algorithms/set_intersection/constexpr.cc:
4144 * testsuite/25_algorithms/set_intersection/constrained.cc:
4146 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
4148 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
4149 * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
4150 * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
4151 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
4152 * testsuite/25_algorithms/transform/constrained.cc: Likewise.
4153 * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
4154 * testsuite/25_algorithms/unique/constrained.cc: Likewise.
4155 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
4156 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
4157 * testsuite/std/ranges/adaptors/elements.cc: Include <vector>.
4158 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
4159 * testsuite/std/ranges/adaptors/split.cc: Likewise.
4161 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
4164 * include/bits/fs_path.h (path::make_preferred): Use
4165 handwritten loop instead of std::replace.
4167 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
4169 PR middle-end/104966
4170 * include/bits/locale_facets_nonio.tcc
4171 (__moneypunct_cache::_M_cache): Replace try-catch with RAII and
4172 make all string copies before any stores to *this.
4174 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
4176 * testsuite/util/testsuite_character.h: Fix comment.
4178 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
4181 * config/abi/pre/gnu.ver: Make version for std::from_chars
4182 depend on HAVE_USELOCALE macro.
4183 * testsuite/util/testsuite_abi.cc (compare_symbols): Treat
4184 std::from_chars for floating-point types as undesignated if
4185 not found in the baseline symbols file.
4187 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
4189 * include/std/charconv (__cpp_lib_to_chars): Only define when
4190 both from_chars and to_chars are supported for floating-point
4192 (from_chars, to_chars): Adjust preprocessor conditions guarding
4194 * include/std/version (__cpp_lib_to_chars): Adjust condition to
4195 match <charconv> definition.
4196 * src/c++17/floating_from_chars.cc (from_chars_strtod): New
4198 (from_chars): Simplify preprocessor checks and use
4199 from_chars_strtod when appropriate.
4201 2022-03-14 Jonathan Wakely <jwakely@redhat.com>
4204 * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
4205 hold octets that will be left-shifted.
4207 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
4210 * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
4211 before using fast_float.
4213 2022-03-10 Detlef Vollmann <dv@vollmann.ch>
4216 * include/bits/this_thread_sleep.h: Fix order of #endif and
4217 closing brace of namespace.
4219 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
4221 * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
4224 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
4226 * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
4229 2022-03-09 Patrick Palka <ppalka@redhat.com>
4232 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
4233 Be explicit when narrowing the shifted effective_mantissa,
4234 since it may have an integer-class type.
4236 2022-03-08 Jonathan Wakely <jwakely@redhat.com>
4238 * include/bits/uses_allocator_args.h: Remove incorrect copyright
4241 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
4244 * include/bits/c++config (__terminate, __glibcxx_assert_fail):
4245 Replace _GLIBCXX_VISIBILITY on function with visibility pragma.
4246 (__is_constant_evaluated): Add visibility pragma.
4248 2022-03-07 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
4250 * config/locale/vxworks/ctype_members.cc: Remove <iostream>
4253 2022-03-05 Jonathan Wakely <jwakely@redhat.com>
4255 * include/bits/c++config (__glibcxx_assert_fail): Add visibility
4257 (__terminate): Likewise.
4259 2022-03-04 Jonathan Wakely <jwakely@redhat.com>
4261 * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
4262 inside #if condition.
4264 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
4267 * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
4270 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
4272 * testsuite/17_intro/names.cc (func): Undef on AIX.
4274 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
4277 * libsupc++/compare (strong_order): Add missing support for
4278 floating-point types.
4279 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
4282 2022-03-01 Jonathan Wakely <jwakely@redhat.com>
4284 PR middle-end/103984
4285 * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
4286 default member initializer.
4288 2022-02-24 Jonathan Wakely <jwakely@redhat.com>
4291 * include/std/source_location (source_location::current): Use
4292 deduced type of __builtin_source_location().
4294 2022-02-22 Patrick Palka <ppalka@redhat.com>
4296 * include/bits/ranges_base.h (__detail::__is_initializer_list):
4298 (viewable_range): Adjust as per P2415R2.
4299 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
4300 * include/std/ranges (owning_view): Define as per P2415R2.
4301 (enable_borrowed_range<owning_view>): Likewise.
4302 (views::__detail::__can_subrange): Replace with ...
4303 (views::__detail::__can_owning_view): ... this.
4304 (views::_All::_S_noexcept): Sync with operator().
4305 (views::_All::operator()): Use owning_view instead of subrange
4307 * include/std/version (__cpp_lib_ranges): Adjust value.
4308 * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that
4309 views::all uses owning_view instead of subrange.
4311 * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust
4312 now that rvalue non-view non-borrowed ranges are viewable.
4313 * testsuite/std/ranges/adaptors/split.cc (test06): Likewise.
4315 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
4318 * doc/xml/manual/evolution.xml: Document deprecation.
4319 * doc/html/manual/api.html: Regenerate.
4320 * include/bits/stl_bvector.h (insert(const_iterator, const bool&)):
4321 Remove default argument.
4322 (insert(const_iterator)): New overload with deprecated attribute.
4323 * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc:
4326 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
4328 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace
4329 code that call cat->name() on std::error_category objects.
4330 Identify known categories by symbol name and use a hardcoded
4331 name. Print error code values as enumerators where appopriate.
4332 * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected
4333 name of custom category. Check io_errc and future_errc errors.
4335 2022-02-15 Jonathan Wakely <jwakely@redhat.com>
4338 * include/bits/uses_allocator_args.h (make_obj_using_allocator)
4339 (uninitialized_construct_using_allocator): Add constexpr.
4340 * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr.
4341 * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test.
4343 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4346 * config/locale/gnu/c_locale.h (__convert_from_v): Use inline
4347 namespace for IEEE128 long double mode.
4348 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol
4349 version and export __gnu_cxx_ieee128::__convert_from_v.
4350 * include/bits/locale_facets_nonio.tcc (money_put::__do_put):
4351 Make __ibm128 overload use snprintf directly
4352 * testsuite/util/testsuite_abi.cc: Add new symbol version.
4353 Remove stable IEEE128/LDBL versions.
4355 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4358 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
4360 * include/std/variant: Check feature test macros instead.
4361 * include/std/version: Likewise.
4363 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4365 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4368 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
4370 * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
4371 LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.
4373 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
4375 * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
4378 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
4380 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
4381 Ignore -Walloc-larger-than warning.
4382 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
4384 * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
4385 to avoid linker error for __atomic_is_lock_free.
4387 2022-02-10 Thomas Rodgers <rodgert@appliantology.com>
4389 * include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
4390 __waiter_base::_S_do_spin_v): Change memory order from relaxed
4393 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
4395 * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
4397 (atomic_fetch_xor_explicit): Likewise.
4398 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check
4399 arithmetic and logical operations for atomic_int.
4401 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
4403 * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
4404 when <dirent.h> is not available.
4405 (_GLIBCXX_HAVE_UNLINKAT): Likewise.
4407 2022-02-09 Thomas Rodgers <rodgert@appliantology.com>
4410 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin
4411 loop inside do loop so that threads failing the wait, reload
4414 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4416 * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first
4417 parameter to _Dir_base&&.
4418 * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove.
4419 * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first
4420 parameter to _Dir_base&&.
4422 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4424 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
4425 checking for CAS on correct word size.
4427 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4429 * testsuite/experimental/filesystem/operations/create_directories.cc:
4430 Adjust expected results for Windows.
4432 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
4435 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase):
4436 [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member,
4437 instead of checking for errno values indicating a directory.
4438 * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar
4439 logic to non-throwing overload.
4440 (fs::remove_all(const path&, error_code&)): Add comments.
4441 * src/filesystem/ops-common.h: Likewise.
4443 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4445 * src/filesystem/dir-common.h (_Dir_base::openat): Change return
4446 type to use portable posix::DIR alias.
4448 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4450 * include/c_compatibility/stdatomic.h [__clang__]: Use
4451 #include_next <stdatomic.h>.
4453 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4455 * include/experimental/bits/fs_ops.h (fs::copy_file): Remove
4457 (fs::create_directories): Likewise.
4458 (fs::remove_all): Likewise.
4459 * src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
4460 (fs::create_directories): Likewise.
4461 (fs::remove_all): Likewise.
4463 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4466 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
4468 * config.h.in: Regenerate.
4469 * configure: Regenerate.
4470 * include/bits/fs_dir.h (recursive_directory_iterator): Declare
4471 remove_all overloads as friends.
4472 (recursive_directory_iterator::__erase): Declare new member
4474 * include/bits/fs_fwd.h (remove, remove_all): Declare.
4475 * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to
4476 constructor. Pass file descriptor argument to base constructor.
4477 (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink)
4478 (_Dir::unlink, _Dir::rmdir): Define new member functions.
4479 (directory_iterator): Pass filename_only argument to _Dir
4481 (recursive_directory_iterator::_Dir_stack): Adjust constructor
4482 parameters to take a _Dir rvalue instead of creating one.
4483 (_Dir_stack::orig): Add data member for storing original path.
4484 (_Dir_stack::report_error): Define new member function.
4485 (__directory_iterator_nofollow): Move here from dir-common.h and
4486 fix value to be a power of two.
4487 (__directory_iterator_filename_only): Define new constant.
4488 (recursive_directory_iterator): Construct _Dir object and move
4489 into _M_dirs stack. Pass skip_permission_denied argument to first
4491 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
4492 (recursive_directory_iterator::__erase): Define new member
4494 * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
4495 (fs::remove_all): Use new recursive_directory_iterator::__erase
4497 * src/filesystem/dir-common.h (_Dir_base): Add int parameter to
4498 constructor and use openat to implement nofollow semantics.
4499 (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat):
4500 Define new member functions.
4501 (__directory_iterator_nofollow): Move to fs_dir.cc.
4502 * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to
4504 (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
4506 (recursive_directory_iterator::_Dir_stack): Adjust constructor
4507 parameters to take a _Dir rvalue instead of creating one.
4508 (recursive_directory_iterator): Check for new nofollow option.
4509 Construct _Dir object and move into _M_dirs stack. Pass
4510 skip_permission_denied argument to first advance call.
4511 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
4512 * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all.
4514 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
4516 * include/bits/allocator.h: Qualify std::allocator_traits in
4517 deprecated warnings.
4518 * libsupc++/exception (uncaught_exception): Add suggestion to
4521 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4523 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop):
4524 Add [[maybe_unused]] attribute.
4525 * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop):
4528 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4530 * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
4531 custom comparison function for multiset.
4532 * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
4533 comparison function for set.
4535 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4537 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
4538 Change member function to data member of function pointer type.
4540 2022-02-02 Martin Sebor <msebor@redhat.com>
4543 * include/std/array (begin): Declare const member function attribute
4545 (end, rbegin, rend, size, max_size, empty, data): Same.
4546 * testsuite/23_containers/array/capacity/empty.cc: Add test cases.
4547 * testsuite/23_containers/array/capacity/max_size.cc: Same.
4548 * testsuite/23_containers/array/capacity/size.cc: Same.
4549 * testsuite/23_containers/array/iterators/begin_end.cc: New test.
4551 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
4553 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
4554 autoconf macro to check whether d_type is present.
4555 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
4558 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4560 * testsuite/27_io/filesystem/iterators/97731.cc: New test.
4561 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
4562 Check follow_directory_symlink option.
4563 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
4566 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4568 * src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
4569 Reset state to past-the-end iterator on error.
4570 (fs::recursive_directory_iterator::pop(error_code&)): Likewise.
4571 (fs::recursive_directory_iterator::pop()): Check _M_dirs before
4573 * src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
4574 for the TS implementation.
4575 * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
4576 * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
4578 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4580 * include/bits/fs_fwd.h (filesystem::perms): Fix comment.
4582 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
4585 * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
4586 for stdio_pure and stdio_posix options.
4587 * configure: Regenerate.
4589 2022-02-01 Thomas Rodgers <rodgert@appliantology.com>
4591 * include/bits/atomic_wait.h: Change memory order from
4592 Acquire/Release with relaxed loads to SeqCst+Release for
4593 accesses to the waiter's count.
4595 2022-01-31 Martin Liska <mliska@suse.cz>
4597 * acinclude.m4: Detect *_ld_is_mold and use it.
4598 * configure: Regenerate.
4600 2022-01-30 Hans-Peter Nilsson <hp@axis.com>
4602 * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
4604 * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
4606 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
4609 * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
4610 Add __builtin_unreachable to loop.
4611 * testsuite/23_containers/deque/100516.cc: New test.
4613 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
4615 * include/bits/ranges_base.h (ranges::advance): Avoid signed
4616 overflow. Do nothing if already equal to desired result.
4617 * testsuite/24_iterators/range_operations/advance_overflow.cc:
4620 2022-01-27 Martin Liska <mliska@suse.cz>
4623 * acinclude.m4: Fix typo.
4624 * configure: Regenerate.
4626 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
4629 * include/bits/istream.tcc (basic_istream::sentry): Add braces
4631 * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
4632 Add pragmas to disable bogus warnings from PR 61596.
4634 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
4637 * src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
4638 * src/filesystem/dir.cc (_GNU_SOURCE): Define.
4639 * src/filesystem/ops.cc (_GNU_SOURCE): Define.
4641 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
4644 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
4646 * config.h.in: Regenerate.
4647 * configure: Regenerate.
4648 * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor
4649 and pass it to base class constructor.
4650 (directory_iterator): Pass nofollow flag to _Dir constructor.
4651 (fs::recursive_directory_iterator::increment): Likewise.
4652 * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for
4653 directory_iterator constructor. Move error check outside loop.
4654 * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to
4655 constructor and when it's set use ::open with O_NOFOLLOW and
4657 * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor
4658 and pass it to base class constructor.
4659 (directory_iterator): Pass nofollow flag to _Dir constructor.
4660 (fs::recursive_directory_iterator::increment): Likewise.
4661 * src/filesystem/ops.cc (remove_all): Use nofollow option for
4662 directory_iterator constructor. Move error check outside loop.
4664 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4667 * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
4668 mem-initializer for _M_buf.
4669 (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
4671 * testsuite/27_io/spanstream/2.cc: New test.
4673 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4675 * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS):
4676 Define macro for case where std::from_chars is implemented in
4677 terms of strtod, strtof or strtold.
4678 (buffer_resource, valid_fmt, find_end_of_float, pattern)
4679 (from_chars_impl, make_result, reserve_string): Do not define
4680 unless USE_STRTOD_FOR_FROM_CHARS is defined.
4681 (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and
4682 USE_STRTOD_FOR_FROM_CHARS is defined, instead of
4683 _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it
4686 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4689 * include/bits/hashtable_policy.h (_Map_base): Add partial
4690 specialization for maps with const key types.
4691 * testsuite/23_containers/unordered_map/104174.cc: New test.
4693 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
4696 * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
4697 Set members to zero without type punning.
4699 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4701 * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
4703 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4707 * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal):
4708 Define as type long.
4709 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
4711 * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise.
4712 * include/bits/chrono.h (__cpp_lib_chrono): Likewise.
4713 (__cpp_lib_chrono_udls): Likewise.
4714 * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise.
4715 * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise.
4716 * include/bits/range_access.h (__cpp_lib_nonmember_container_access):
4718 * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
4720 * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise.
4721 (__cpp_lib_sample): Likewise.
4722 * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops):
4724 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
4726 * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
4728 * include/bits/stl_map.h (__cpp_lib_map_try_emplace):
4730 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
4732 * include/bits/unique_ptr.h (__cpp_lib_make_unique):
4734 * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
4736 * include/c_global/cmath (__cpp_lib_hypot): Likewise.
4737 * include/c_global/cstddef (__cpp_lib_byte): Likewise.
4738 * include/std/atomic (__cpp_lib_atomic_is_always_lock_free):
4740 * include/std/complex (__cpp_lib_complex_udls): Likewise.
4741 * include/std/filesystem (__cpp_lib_filesystem): Likewise.
4742 * include/std/functional (__cpp_lib_not_fn): Likewise.
4743 (__cpp_lib_boyer_moore_searcher): Likewise.
4744 * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise.
4745 * include/std/mutex (__cpp_lib_scoped_lock): Likewise.
4746 * include/std/numeric (__cpp_lib_gcd_lcm): Likewise.
4747 (__cpp_lib_gcd, __cpp_lib_lcm): Likewise.
4748 * include/std/tuple (__cpp_lib_apply): Likewise.
4749 (__cpp_lib_make_from_tuple): Likewise.
4750 * include/std/type_traits (__cpp_lib_integral_constant_callable)
4751 (__cpp_lib_bool_constant, __cpp_lib_logical_traits)
4752 (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases)
4753 (__cpp_lib_result_of_sfinae, __cpp_lib_void_t)
4754 (__cpp_lib_is_swappable, __cpp_lib_is_invocable)
4755 (__cpp_lib_has_unique_object_representations)
4756 (__cpp_lib_is_aggregate): Likewise.
4757 * include/std/version: Likewise.
4758 * libsupc++/new (__cpp_lib_launder): Likewise.
4760 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4762 * include/std/version (__cpp_lib_shared_ptr_arrays): Fix
4763 condition for C++17 definition.
4765 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
4767 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
4769 (_Sp_atomic::_M_ptr): Add default member-initializer.
4770 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
4771 Check constant initialization.
4772 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
4774 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
4776 * src/c++11/cxx11-ios_failure.cc (__constinit): Define as
4777 equivalent attribute for Clang.
4778 * src/c++11/future.cc (__constinit): Likewise.
4779 * src/c++11/system_error.cc (__constinit): Likewise.
4780 * src/c++17/memory_resource.cc (__constinit): Likewise.
4782 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
4784 * scripts/testsuite_flags.in: Only add src/filesystem/.libs and
4785 src/libbacktrace/.libs to LDFLAGS if those directories exist.
4787 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4789 * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
4791 * configure: Regenerate.
4793 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4796 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
4799 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4801 * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
4802 linker search paths.
4803 * src/Makefile.am: Fix src/debug/libbacktrace build.
4804 * src/Makefile.in: Regenerate.
4805 * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
4806 variable. Use symlinks for the source files.
4807 * src/libbacktrace/Makefile.in: Regenerate.
4809 2022-01-19 Matthias Kretz <m.kretz@gsi.de>
4811 * include/experimental/bits/simd.h (__floating_point_flags): Do
4812 not rely on math_errhandling to expand to a constant expression.
4814 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4816 * doc/xml/manual/evolution.xml: Document deprecations.
4817 * doc/xml/manual/status_cxx2017.xml: Update status.
4818 * doc/html/*: Regenerate.
4820 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4822 * include/bits/stl_tempbuf.h (get_temporary_buffer): Change
4823 _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
4825 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4827 * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
4830 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
4833 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
4834 Only use __thread_relax if __cpp_lib_atomic_wait is defined.
4836 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4839 * include/bits/basic_string.h (basic_string(nullptr_t)): Only
4841 (operator=(nullptr_t)): Likewise.
4842 * include/bits/cow_string.h: Likewise.
4843 * include/std/string_view (basic_string_view(nullptr_t)):
4845 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust
4846 expected error. Add examples that become ill-formed in C++23.
4847 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
4848 Adjust expected errors.
4849 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
4852 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4855 * include/bits/stl_iterator.h (reverse_iterator): Check
4856 __cpp_lib_concepts instead of __cplusplus.
4858 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4861 * include/bits/stl_pair.h (pair): Adjust constraints on
4862 deprecated constructors accepting literal zero as null pointer
4863 constant. Improve wording of deprecated attribute.
4864 * testsuite/20_util/pair/cons/99957.cc: Check that deprecated
4865 constructors do not cause ambiguities for copyable types.
4867 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4869 * include/bits/stl_function.h (ptr_fun): Fix suggestion for
4870 non-deprecated alternative.
4872 2022-01-18 Tom Honermann <tom@honermann.net>
4874 * acinclude.m4: Define config macros if uchar.h provides
4875 c8rtomb() and mbrtoc8().
4876 * config.h.in: Regenerate.
4877 * configure: Regenerate.
4878 * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define.
4879 * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise.
4880 * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise.
4881 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
4883 * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
4886 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4888 * include/Makefile.am: Install new header.
4889 * include/Makefile.in: Regenerate.
4890 * include/c_compatibility/stdatomic.h: New file.
4891 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test.
4893 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4896 * src/c++17/fast_float/LOCAL_PATCHES: Update.
4897 * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
4898 Define in terms of __BYTE_ORDER__.
4900 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4903 * src/c++17/fast_float/LOCAL_PATCHES: UPDATE.
4904 * src/c++17/fast_float/fast_float.h (round): Use explicit
4905 template argument list for std::min.
4907 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4909 * doc/xml/manual/status_cxx2017.xml: Update C++17 status.
4910 * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for
4912 * doc/html/manual/status.html: Regenerate.
4914 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
4916 * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
4918 * configure: Regenerate.
4920 2022-01-17 Patrick Palka <ppalka@redhat.com>
4922 * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
4923 Conditionally define, and use it to conditionally include
4925 (from_chars): Use fast_float for float and double when
4928 2022-01-17 Patrick Palka <ppalka@redhat.com>
4930 * src/c++17/fast_float/LOCAL_PATCHES: Update.
4931 * src/c++17/fast_float/fast_float.h (from_chars_advanced): In
4932 case of over/underflow, return errc::result_out_of_range and don't
4935 2022-01-17 Patrick Palka <ppalka@redhat.com>
4937 * src/c++17/fast_float/LOCAL_PATCHES: Update.
4938 * src/c++17/fast_float/fast_float.h: Apply local modifications.
4940 2022-01-17 Patrick Palka <ppalka@redhat.com>
4942 * src/c++17/fast_float/LOCAL_PATCHES: New file.
4943 * src/c++17/fast_float/MERGE: New file.
4944 * src/c++17/fast_float/README.md: New file, copied from the
4945 fast_float repository.
4946 * src/c++17/fast_float/fast_float.h: New file, an amalgamation
4947 of the fast_float library.
4949 2022-01-17 Patrick Palka <ppalka@redhat.com>
4951 * src/c++17/floating_from_chars.cc: Include <bit>.
4952 (ascii_to_hexit, starts_with_ci): Conditionally define.
4953 (__floating_from_chars_hex): Conditionally define.
4954 (from_chars): Use __floating_from_chars_hex for
4955 chars_format::hex parsing of binary32/64 float/double.
4956 (testsuite/20_util/from_chars/7.cc): New test.
4957 * testsuite/20_util/from_chars/7.cc: New file.
4959 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
4961 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
4962 * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
4963 * include/Makefile.am: Add new header.
4964 * include/Makefile.in: Regenerate.
4965 * include/std/stacktrace: New header.
4966 * include/std/version (__cpp_lib_stacktrace): Define.
4967 * Makefile.in: Regenerate.
4968 * config.h.in: Regenerate.
4969 * configure: Regenerate.
4970 * doc/Makefile.in: Regenerate.
4971 * libsupc++/Makefile.in: Regenerate.
4972 * po/Makefile.in: Regenerate.
4973 * python/Makefile.in: Regenerate.
4974 * src/Makefile.am: Regenerate.
4975 * src/Makefile.in: Regenerate.
4976 * src/c++11/Makefile.in: Regenerate.
4977 * src/c++17/Makefile.in: Regenerate.
4978 * src/c++20/Makefile.in: Regenerate.
4979 * src/c++98/Makefile.in: Regenerate.
4980 * src/filesystem/Makefile.in: Regenerate.
4981 * testsuite/Makefile.in: Regenerate.
4982 * src/libbacktrace/Makefile.am: New file.
4983 * src/libbacktrace/Makefile.in: New file.
4984 * src/libbacktrace/backtrace-rename.h: New file.
4985 * src/libbacktrace/backtrace-supported.h.in: New file.
4986 * src/libbacktrace/config.h.in: New file.
4987 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
4989 * testsuite/20_util/stacktrace/entry.cc: New test.
4990 * testsuite/20_util/stacktrace/synopsis.cc: New test.
4991 * testsuite/20_util/stacktrace/version.cc: New test.
4993 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
4995 * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
4997 * doc/html/manual/status.html: Regenerate.
4999 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
5002 * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
5003 * include/Makefile.in: Regenerate.
5004 * testsuite/17_intro/headers/c++1998/103650.cc: New test.
5006 2022-01-17 Matthias Kretz <m.kretz@gsi.de>
5008 * include/experimental/bits/simd.h (__floating_point_flags): Do
5009 not rely on the presence of the math_errhandling macro.
5011 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
5013 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
5014 to qualified-id for dependent type.
5016 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
5018 * doc/xml/manual/status_cxx2020.xml: Update.
5019 * doc/html/manual/status.html: Regenerate.
5021 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
5022 Thomas Rodgers <trodgers@redhat.com>
5024 * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
5026 (_Sp_atomic): New class template.
5027 (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
5029 * include/bits/shared_ptr_base.h (__shared_count, __weak_count)
5030 (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
5031 * include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
5032 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
5034 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
5036 2022-01-15 Matthias Kretz <m.kretz@gsi.de>
5038 * include/experimental/bits/simd.h: Move feature detection bools
5039 and add __have_avx512bitalg, __have_avx512vbmi2,
5040 __have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
5041 __have_avx512vnni, __have_avx512vpopcntdq.
5042 (__detail::__machine_flags): New function which returns a unique
5043 uint64 depending on relevant -m and -f flags.
5044 (__detail::__odr_helper): New type alias for either an anonymous
5045 type or a type specialized with the __machine_flags number.
5046 (_SimdIntOperators): Change template parameters from _Impl to
5047 _Tp, _Abi because _Impl now has an __odr_helper parameter which
5048 may be _OdrEnforcer from the anonymous namespace, which makes
5049 for a bad base class.
5050 (many): Either add __odr_helper template parameter or mark as
5052 * include/experimental/bits/simd_detail.h: Add defines for
5053 AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
5054 AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
5055 * include/experimental/bits/simd_builtin.h: Add __odr_helper
5056 template parameter or mark as always_inline.
5057 * include/experimental/bits/simd_fixed_size.h: Ditto.
5058 * include/experimental/bits/simd_math.h: Ditto.
5059 * include/experimental/bits/simd_scalar.h: Ditto.
5060 * include/experimental/bits/simd_neon.h: Add __odr_helper
5062 * include/experimental/bits/simd_ppc.h: Ditto.
5063 * include/experimental/bits/simd_x86.h: Ditto.
5065 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
5067 * testsuite/22_locale/numpunct/members/char/3.cc:
5068 Require pt_PT locale instead of nl_NL.
5069 (test02): Use pt_PT locale instead of nl_NL.
5071 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5076 * include/backward/binders.h (bind1st, bind2nd): Add deprecated
5078 * include/bits/refwrap.h (_Maybe_unary_or_binary_function):
5079 Disable deprecated warnings for base classes.
5080 (_Reference_wrapper_base): Likewise.
5081 * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
5082 * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
5083 * include/bits/stl_function.h (unary_function, binary_function):
5084 Add deprecated attribute.
5085 (unary_negate, not1, binary_negate, not2, ptr_fun)
5086 (pointer_to_unary_function, pointer_to_binary_function)
5087 (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
5088 (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
5089 (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
5091 * include/bits/stl_iterator.h: Disable deprecated warnings for
5092 std::iterator base classes.
5093 * include/bits/stl_iterator_base_types.h (iterator): Add
5094 deprecated attribute.
5095 * include/bits/stl_map.h (map::value_compare): Disable
5096 deprecated warnings for base class.
5097 * include/bits/stl_multimap.h (multimap::value_compare):
5099 * include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
5100 Add deprecated attribute.
5101 * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
5102 * include/bits/stream_iterator.h: Disable deprecated warnings.
5103 * include/bits/streambuf_iterator.h: Likewise.
5104 * include/ext/bitmap_allocator.h: Remove unary_function base
5106 * include/ext/functional: Disable deprecated warnings.
5107 * include/ext/rope: Likewise.
5108 * include/ext/throw_allocator.h: Likewise.
5109 * include/std/type_traits (result_of): Add deprecated attribute.
5110 * include/tr1/functional: Disable deprecated warnings.
5111 * include/tr1/functional_hash.h: Likewise.
5112 * testsuite/20_util/function_objects/binders/1.cc: Add
5113 -Wno-disable-deprecations.
5114 * testsuite/20_util/function_objects/binders/3113.cc: Likewise.
5115 * testsuite/20_util/function_objects/constexpr.cc: Add
5117 * testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
5118 * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
5119 * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
5121 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
5123 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
5125 * testsuite/20_util/reference_wrapper/24803.cc:
5127 * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
5128 C++20 and check for absence of nested types.
5129 * testsuite/20_util/shared_ptr/comparison/less.cc: Remove
5130 std::binary_function base class.
5131 * testsuite/20_util/temporary_buffer.cc: Add dg-warning.
5132 * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
5133 std::iterator base class.
5134 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
5136 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
5138 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
5140 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
5142 * testsuite/24_iterators/istreambuf_iterator/92285.cc:
5144 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
5146 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
5148 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
5150 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
5152 * testsuite/25_algorithms/copy/34595.cc:
5154 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
5156 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
5157 Disable deprecated warnings.
5158 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
5160 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
5162 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
5164 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
5166 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
5168 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
5170 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
5172 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
5174 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
5176 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
5178 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
5180 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
5182 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
5184 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
5186 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
5188 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
5190 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
5192 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
5194 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
5196 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
5198 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
5200 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
5202 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
5204 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
5206 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
5208 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
5210 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
5212 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
5214 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
5216 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
5218 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
5220 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
5222 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
5224 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
5226 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
5228 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
5230 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
5232 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
5234 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
5236 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
5238 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
5240 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
5242 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
5244 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
5246 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
5248 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
5250 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
5252 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
5254 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
5256 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
5258 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
5259 Disable deprecated warnings.
5260 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
5262 * testsuite/util/regression/trait/erase_if_fn.hpp: Remove
5263 std::unary_function base classes.
5264 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
5265 Remove std::iterator base classes.
5267 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5269 * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
5270 Correct type of macro value.
5271 (shared_ptr): Add additional friend declarations.
5272 (make_shared, allocate_shared): Constrain existing overloads and
5273 remove static_assert.
5274 * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
5276 (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
5277 specialization for use with make_shared_for_overwrite.
5278 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
5279 (_Sp_counted_array_base): New class template.
5280 (_Sp_counted_array): New class template.
5281 (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
5282 New constructor for allocating shared arrays.
5283 (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
5284 * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
5286 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
5287 (__cpp_lib_smart_ptr_for_overwrite): New macro.
5288 * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
5290 * testsuite/20_util/shared_ptr/creation/array.cc: New test.
5291 * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
5292 * testsuite/20_util/shared_ptr/creation/version.cc: New test.
5293 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
5294 feature test macro. Test non-trivial default-initialization.
5296 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5298 * include/bits/stl_construct.h (_Construct, _Construct_novalue):
5299 Also cast away cv-qualifiers when converting pointer to void.
5300 * testsuite/20_util/allocator/void.cc: Test construct function
5301 with cv-qualified types.
5303 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5306 * include/bits/stl_iterator.h (common_iterator): Use
5307 std::construct_at instead of placement new.
5308 * testsuite/24_iterators/common_iterator/1.cc: Check copy
5309 construction is usable in constant expressions.
5311 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
5313 * doc/xml/manual/status_cxx2011.xml: Document new tokens
5314 accepted by std::random_device constructor.
5315 * doc/html/manual/status.html: Regenerate.
5317 2022-01-12 Patrick Palka <ppalka@redhat.com>
5319 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
5322 2022-01-12 Patrick Palka <ppalka@redhat.com>
5325 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
5326 Track the excess precision separately from the effective
5327 precision. Avoid overflow in bounds check by splitting it into
5329 (__floating_to_chars_precision): Avoid overflow in bounds checks
5331 * testsuite/20_util/to_chars/103955.cc: New test.
5333 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5336 * include/Makefile.am: Install <source_location> for
5338 * include/Makefile.in: Regenerate.
5339 * include/std/version (__cpp_lib_source_location): Define for
5342 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5344 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
5345 Add neoxcept (LWG 3593).
5347 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5349 * include/std/ranges (ranges::__detail::__box): Add constexpr to
5350 assignment operators (LWG 3572).
5351 * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
5352 view that uses copyable-box.
5354 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5357 * include/Makefile.am: Install <coroutine> for freestanding.
5358 * include/Makefile.in: Regenerate.
5359 * include/std/coroutine: Adjust headers and preprocessor
5361 (__coroutine_traits_impl): Use concepts when available.
5362 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
5364 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5366 * include/std/ostream (operator<<(basic_ostream&, charT)):
5367 Use unformatted input if no padding is needed.
5368 (operator<<(basic_ostream<char>&, char)): Likewise.
5370 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5373 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
5375 * include/std/variant (__cpp_lib_variant): Only define C++20
5376 value when the compiler is known to support conditionally
5377 trivial destructors.
5378 * include/std/version (__cpp_lib_variant): Likewise.
5380 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
5382 * include/bits/stl_iterator.h (common_iterator): Add constexpr
5383 to all member functions (LWG 3574).
5384 * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
5385 tests as constant expressions.
5386 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
5388 2022-01-10 Jakub Jelinek <jakub@redhat.com>
5391 * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
5392 (time_get::_M_extract_via_format): Declare new method with
5393 __time_get_state& as an extra argument.
5394 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
5395 __state argument, set various fields in it while parsing. Handle %j,
5396 %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
5397 for %p immediately. Add a wrapper around the method without the
5398 __state argument for backwards compatibility.
5399 (_M_extract_num): Remove all __len == 4 special cases.
5400 (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
5401 initialize __state, pass it to _M_extract_via_format and finalize it
5403 (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
5404 69-99 to 1969-1999. For 3-4 digit parsed years use that as year.
5405 (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
5406 version, don't call do_get but call _M_extract_via_format instead to
5408 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
5409 with extra __time_get_state and __time_get_state::_M_finalize_state.
5410 * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
5411 day_of_the_year): New functions in anon namespace.
5412 (mon_yday): New var in anon namespace.
5413 (__time_get_state::_M_finalize_state): Define.
5414 * testsuite/22_locale/time_get/get/char/4.cc: New test.
5415 * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
5416 * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
5417 as year 197AD instead of error.
5418 * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
5419 year 2001 instead of error.
5420 * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
5421 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
5422 197 as year 197AD instead of error.
5423 * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
5424 1 as year 2001 instead of error.
5425 * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
5427 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5430 * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
5431 nothing for freestanding builds.
5432 (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
5433 * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
5434 with --without-headers. Do not use GCC_HEADER_STDINT for
5435 freestanding builds.
5436 * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
5437 for freestanding builds.
5438 * configure: Regenerate.
5439 * Makefile.in: Regenerate.
5440 * doc/Makefile.in: Regenerate.
5441 * include/Makefile.in: Regenerate.
5442 * libsupc++/Makefile.in: Regenerate.
5443 * po/Makefile.in: Regenerate.
5444 * python/Makefile.in: Regenerate.
5445 * src/Makefile.in: Regenerate.
5446 * src/c++11/Makefile.in: Regenerate.
5447 * src/c++17/Makefile.in: Regenerate.
5448 * src/c++20/Makefile.in: Regenerate.
5449 * src/c++98/Makefile.in: Regenerate.
5450 * src/filesystem/Makefile.in: Regenerate.
5451 * testsuite/Makefile.in: Regenerate.
5453 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5455 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
5456 Add dg-timeout-factor directive.
5457 * testsuite/28_regex/basic_regex/84110.cc: Likewise.
5458 * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
5459 * testsuite/28_regex/match_results/102667.cc: Likewise.
5461 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5463 * doc/xml/manual/using.xml: Update documentation around default
5465 * doc/html/*: Regenerate.
5467 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
5470 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
5471 * src/c++17/Makefile.in: Regenerate.
5473 2022-01-09 Sandra Loosemore <sandra@codesourcery.com>
5475 * testsuite/18_support/type_info/constexpr.cc: Add explicit
5476 -fdelete-null-pointer-checks option.
5478 2022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
5479 Jonathan Wakely <jwakely@redhat.com>
5482 * include/bits/forward_list.tcc (forward_list::merge): Check for
5484 * testsuite/23_containers/forward_list/operations/merge.cc: New test.
5486 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
5488 * include/bits/regex.h (basic_regex, match_results): Qualify
5489 name in friend declaration, to work around Clang bug.
5491 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
5493 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
5495 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
5498 * include/std/charconv (__from_chars_alpha_to_num): Return
5499 char instead of unsigned char. Change invalid return value to
5500 127 instead of using numeric trait.
5501 (__from_chars_alnum): Fix comment. Do not use std::isdigit.
5502 Change type of variable to char.
5504 2022-01-05 François Dumont <fdumont@gcc.gnu.org>
5507 * include/bits/hashtable_policy.h
5508 (_Hashtable_hash_traits<_Hash>): New.
5509 (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
5510 (_Hashtable_base<>::_M_key_equals): New.
5511 (_Hashtable_base<>::_M_equals): Use latter.
5512 (_Hashtable_base<>::_M_key_equals_tr): New.
5513 (_Hashtable_base<>::_M_equals_tr): Use latter.
5514 * include/bits/hashtable.h
5515 (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
5516 (_Hashtable<>::find): Loop through elements to look for key if size is lower
5517 than __small_size_threshold().
5518 (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
5519 (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
5520 (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
5521 (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
5522 (_Hashtable<>::_M_find_before_node(const key_type&)): New.
5523 (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
5524 (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
5525 * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
5526 * testsuite/util/testsuite_performance.h
5527 (report_performance): Use 9 width to display memory.
5528 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
5529 New performance test case.
5531 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5534 * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
5535 Relax constraints on string_view parameter.
5536 * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
5538 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
5540 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5542 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
5544 * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
5545 * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
5546 * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
5548 (type_info::__equal): Define alias symbol.
5549 * libsupc++/typeinfo (type_info::before): Combine different
5550 implementations into one.
5551 (type_info::operator==): Likewise. Use address equality for
5552 constant evaluation. Call __equal for targets that require the
5553 definition to be non-inline.
5554 * testsuite/18_support/type_info/constexpr.cc: New test.
5556 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5558 * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
5559 class and virtual functions as 'final'.
5560 (io_category_instance): Use constinit union to make the object
5562 * src/c++11/future.cc (future_error_category): Define class and
5563 virtual functions as 'final'.
5564 (future_category_instance): Use constinit union.
5566 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5568 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
5569 versioned namespace from the type name that is printed.
5571 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5573 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
5574 printer for std::regex NFA states.
5576 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5578 * testsuite/23_containers/forward_list/operations/1.cc: Fill in
5579 placeholders in comments.
5580 * testsuite/23_containers/forward_list/operations/2.cc:
5582 * testsuite/23_containers/forward_list/operations/3.cc:
5584 * testsuite/23_containers/forward_list/operations/4.cc:
5586 * testsuite/23_containers/forward_list/operations/5.cc:
5588 * testsuite/23_containers/forward_list/operations/6.cc:
5590 * testsuite/23_containers/forward_list/operations/7.cc:
5593 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5596 * include/bits/stl_deque.h (operator-): Do not use 0 as null
5599 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5601 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
5602 Use std::_Construct for construct.
5604 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5607 * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
5608 * doc/html/faq.html: Regenerate.
5610 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5612 * include/bits/regex.h (__regex_algo_impl): Change __policy and
5613 __match_mode template parameters to be function parameters.
5614 (regex_match, regex_search): Pass policy and match mode as
5616 * include/bits/regex.tcc (__regex_algo_impl): Change template
5617 parameters to function parameters.
5618 * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
5619 'if constexpr' for conditions using template parameters.
5620 (_RegexTranslator): Likewise.
5621 * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
5623 * testsuite/util/testsuite_regex.h (regex_match_debug)
5624 (regex_search_debug): Move template arguments to function
5627 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5629 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
5630 results even if the match failed.
5632 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
5634 * include/bits/regex_compiler.tcc: Adjust all calls to
5635 __throw_regex_error.
5636 * include/bits/regex_error.h (__throw_regex_error): Add noreturn
5638 * include/bits/regex_scanner.tcc: Likewise.
5639 * src/c++11/regex.cc (desc): New helper function.
5640 (regex_error::regex_error(error_type)): Use desc to get a string
5641 corresponding to the error code.
5644 Copyright (C) 2022 Free Software Foundation, Inc.
5646 Copying and distribution of this file, with or without modification,
5647 are permitted in any medium without royalty provided the copyright
5648 notice and this notice are preserved.