1 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
3 * include/bits/utility.h: Fix comment typos.
5 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
7 * src/c++17/fs_ops.cc (fs::temp_directory_path()): Include path
9 (fs::temp_directory_path(error_code&)): Rearrange to more
10 closely match the structure of the first overload.
11 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise.
12 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
13 Check that exception contains the path.
14 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
17 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
20 * src/filesystem/ops.cc (has_trailing_slash): New helper
22 (fs::status): Strip trailing slashes.
23 (fs::symlink_status): Likewise.
24 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
25 Clean the environment before each test and use TMP instead of
26 TMPDIR so the test passes on Windows.
28 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
30 * src/filesystem/dir-common.h (_Dir_base::_At_path):
31 Use char_type consistently for paths.
33 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
35 * src/c++17/fs_dir.cc (_Dir::dir_and_pathname):: Replace with
36 current() returning _At_path.
37 (_Dir::_Dir, _Dir::open_subdir, _Dir::do_unlink): Adjust.
38 * src/filesystem/dir-common.h (_Dir_base::_At_path): New class.
39 (_Dir_base::_Dir_Base, _Dir_base::openat): Use _At_path.
40 * src/filesystem/dir.cc (_Dir::dir_and_pathname): Replace with
41 current() returning _At_path.
42 (_Dir::_Dir, _Dir::open_subdir): Adjust.
44 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
46 * src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]:
47 Always store pathname if we don't have openat or unlinkat,
48 because the full path is needed to open sub-directories and
51 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
53 * testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math
54 functions are available.
56 2022-06-27 Alexandre Oliva <oliva@adacore.com>
58 * testsuite/20_util/to_chars/long_double.cc: Use cmath
59 long double overloads for nexttoward and ldexp.
61 2022-06-27 Alexandre Oliva <oliva@adacore.com>
63 * testsuite/experimental/simd/standard_abi_usable.cc: Require
65 * testsuite/experimental/simd/standard_abi_usable_2.cc:
68 2022-06-27 Alexandre Oliva <oliva@adacore.com>
70 * testsuite/26_numerics/complex/proj.cc: Skip test in the
71 circumstances in which the implementation of proj is known to
74 2022-06-27 Alexandre Oliva <oliva@adacore.com>
76 * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if
79 2022-06-27 Alexandre Oliva <oliva@adacore.com>
81 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc
82 (test06): Don't create symlinks when NO_SYMLINKS is defined.
84 2022-06-27 Alexandre Oliva <oliva@adacore.com>
86 * testsuite/lib/dg-options.exp (add_options_for_net_ts):
87 Add -Wl,--gc-sections for RTEMS targets.
88 * testsuite/experimental/net/timer/waitable/dest.cc: Link-time
90 * testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
91 * testsuite/experimental/net/internet/resolver/ops/lookup.cc:
92 Execution-time xfail on RTEMS.
93 * testsuite/experimental/net/internet/resolver/ops/reverse.cc:
96 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
98 * testsuite/ext/mt_allocator/22309_thread.cc: Include <string>.
100 2022-06-27 Joel Brobecker <brobecker@adacore.com>
101 Jonathan Wakely <jwakely@redhat.com>
103 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path):
104 Always include a counter in the filename returned.
106 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
108 * include/bits/move_only_function.h (_Never_valueless_alt):
109 Define partial specialization for std::move_only_function.
111 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
113 * include/std/variant (_Build_FUN::_S_fun): Define fallback case
115 (__accepted_index, _Extra_visit_slot_needed): Replace class
116 templates with variable templates.
118 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
120 * include/bits/fs_path.h (__is_path_iter_src): Replace class
121 template with variable template.
123 2022-06-27 Jonathan Wakely <jwakely@redhat.com>
125 * include/bits/chrono.h (is_clock_v): Define to false.
126 (is_clock_v<T>): Define partial specialization for true cases.
127 (is_clock): Define in terms of is_clock_v.
129 2022-06-24 Xi Ruoyao <xry111@xry111.site>
131 * scripts/extract_symvers.in: Use grep -E instead of egrep.
132 * scripts/run_doxygen: Likewise.
134 2022-06-24 Alexandre Oliva <oliva@adacore.com>
136 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
138 * configure, config.h.in: Rebuilt.
139 * src/filesystem/dir-common.h (openat): Use ::openat if
140 _GLIBCXX_HAVE_OPENAT.
141 * src/filesystem/dir.cc (dir_and_pathname): Use dirfd if
142 _GLIBCXX_HAVE_OPENAT.
144 2022-06-24 Alexandre Oliva <oliva@adacore.com>
146 * testsuite/27_io/filesystem/operations/rename.cc: xfail on
148 * testsuite/experimental/filesystem/operations/rename.cc:
151 2022-06-24 Alexandre Oliva <oliva@adacore.com>
153 * testsuite/util/testsuite_fs.h (NO_LAST_WRITE_TIME): Define
155 * testsuite/lib/libstdc++.exp
156 (check_v3_target_fs_last_write_time): New.
157 * testsuite/lib/dg-options.exp (dg-require-target-fs-lwt):
159 * testsuite/27_io/filesystem/operations/last_write_time.cc:
160 Skip the test if the features are unavailable.
161 * testsuite/experimental/filesystem/operations/last_write_time.cc:
164 2022-06-24 Alexandre Oliva <oliva@adacore.com>
166 * testsuite/util/testsuite_fs.h (NO_SPACE): Define if
168 * testsuite/lib/libstdc++.exp (check_v3_target_fs_space): New.
169 * testsuite/lib/dg-options.exp (dg-require-target-fs-space):
171 * testsuite/27_io/filesystem/operations/space.cc: Require
173 * testsuite/experimental/filesystem/operations/space.cc:
176 2022-06-24 Alexandre Oliva <oliva@adacore.com>
178 * testsuite/util/testsuite_fs.h (NO_SYMLINKS): Define on
179 mingw and when create_symlink is a dummy.
180 * testsuite/27_io/filesystem/operations/symlink_status.cc:
182 (test01, test02): Don't create symlinks when NO_SYMLINKS is
184 * testsuite/27_io/filesystem/operations/canonical.cc (test03):
186 * testsuite/27_io/filesystem/operations/copy.cc (test02):
188 * testsuite/27_io/filesystem/operations/create_directories.cc
190 * testsuite/27_io/filesystem/operations/create_directory.cc
192 * testsuite/27_io/filesystem/operations/permissions.cc
193 (test03, test04): Likewise.
194 * testsuite/27_io/filesystem/operations/remove.cc (test01):
196 * testsuite/27_io/filesystem/operations/remove_all.cc (test01):
198 * testsuite/27_io/filesystem/operations/rename.cc
199 (test_symlinks): Likewise.
200 * testsuite/27_io/filesystem/operations/weakly_canonical.cc
202 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc
204 * testsuite/experimental/filesystem/operations/copy.cc
206 * testsuite/experimental/filesystem/operations/create_directories.cc
208 * testsuite/experimental/filesystem/operations/create_directory.cc
210 * testsuite/experimental/filesystem/operations/permissions.cc
211 (test03, test04): Likewise.
212 * testsuite/experimental/filesystem/operations/remove.cc
214 * testsuite/experimental/filesystem/operations/remove_all.cc
216 * testsuite/experimental/filesystem/operations/rename.cc
218 * testsuite/lib/libstdc++.exp
219 (v3_check_preprocessor_condition): Add optional inc parameter.
220 Add it to the test program after include bits/c++config.h.
221 (check_v3_target_fs_symlinks): New.
222 * testsuite/lib/dg-options.exp
223 (dg-require-target-fs-symlinks): New.
224 * testsuite/27_io/filesystem/operations/read_symlink.cc:
225 Replace mingw xfail with require target-fs-symlinks.
226 * testsuite/experimental/filesystem/operations/read_symlink.cc:
229 2022-06-24 Alexandre Oliva <oliva@adacore.com>
231 * testsuite/27_io/filesystem/operations/copy.cc (test02):
232 Select TO after creating FROM.
233 (test03, test04): Likewise.
234 * testsuite/experimental/filesystem/operations/copy.cc
235 (test02, test03, test04): Likewise.
237 2022-06-24 Alexandre Oliva <oliva@adacore.com>
239 * testsuite/30_threads/thread/native_handle/cancel.cc: Add an
240 explicit cancellation point in case sleep_for lacks one.
242 2022-06-24 Alexandre Oliva <oliva@adacore.com>
244 * testsuite/lib/dg-options.exp (add_options_for_net_ts): Add
245 -lbsd for RTEMS targets.
247 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
249 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
250 rmdir to remove directories.
251 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
254 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
256 * testsuite/26_numerics/random/random_device/entropy.cc: Use
257 numeric_limits<unsigned>::digits.
259 2022-06-22 Alexandre Oliva <oliva@adacore.com>
261 * libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS]
262 (__eh_globals_init::~__eh_globals_init): Clear _S_init first.
264 2022-06-22 Alexandre Oliva <oliva@adacore.com>
266 * testsuite/30_threads/this_thread/60421.cc (test02): Call
269 2022-06-22 Alexandre Oliva <oliva@adacore.com>
271 * testsuite/20_util/to_chars/long_double.cc: Require cmath.
273 2022-06-22 Alexandre Oliva <oliva@adacore.com>
275 * testsuite/23_containers/bitset/cons/dr1325-2.cc: Work around
276 global struct bitset.
277 * testsuite/23_containers/bitset/ext/15361.cc: Likewise.
278 * testsuite/23_containers/bitset/input/1.cc: Likewise.
279 * testsuite/23_containers/bitset/to_string/1.cc: Likewise.
280 * testsuite/23_containers/bitset/to_string/dr396.cc: Likewise.
282 2022-06-17 Jonathan Wakely <jwakely@redhat.com>
284 * testsuite/21_strings/basic_string/cons/char/105995.cc: Add
287 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
290 * include/bits/basic_string.h (_M_use_local_data): Initialize
291 the entire SSO buffer.
292 * testsuite/21_strings/basic_string/cons/char/105995.cc: New test.
294 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
297 * include/ext/vstring.h (operator==): Always check lengths
300 2022-06-15 François Dumont <fdumont@gcc.gnu.org>
303 * include/bits/hashtable_policy.h (_ConvertToValueType): New.
304 * include/bits/hashtable.h (_Hashtable<>::_M_insert_unique_aux): New.
305 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, true_type)): Use latters.
306 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, false_type)): Likewise.
307 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
308 const allocator_type&, true_type)): Use this.insert range.
309 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
310 const allocator_type&, false_type)): Use _M_insert.
311 * testsuite/23_containers/unordered_map/cons/56112.cc: Check how many times conversion
313 * testsuite/23_containers/unordered_map/insert/105717.cc: New test.
314 * testsuite/23_containers/unordered_set/insert/105717.cc: New test.
316 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
319 * include/bits/basic_string.h (operator==): Always compare
320 lengths before checking string contents.
321 [!__cpp_lib_three_way_comparison] (operator==, operator!=):
324 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
327 * include/bits/basic_string.h (compare): Define inline.
328 * include/bits/basic_string.tcc (compare): Remove out-of-line
330 * include/bits/cow_string.h (compare): Define inline.
331 * testsuite/21_strings/basic_string/operations/compare/char/3.cc:
334 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
336 * include/bits/new_allocator.h: Fix indentation.
337 * include/ext/malloc_allocator.h: Likewise.
339 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
342 * include/bits/allocator.h (allocator::allocate): Check for
343 overflow in constexpr allocation.
344 * testsuite/20_util/allocator/105975.cc: New test.
346 2022-06-13 Mark Mentovai <mark@mentovai.com>
348 * include/experimental/bits/fs_path.h (__detail::__null_terminated):
349 Rename to __nul_terminated to avoid colliding with a macro in
352 2022-06-13 Jonathan Wakely <jwakely@redhat.com>
354 * include/std/atomic (__atomic_val_t): Use __type_identity_t
355 instead of atomic<T>::value_type, as per LWG 3220.
356 * testsuite/29_atomics/atomic/lwg3220.cc: New test.
358 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
361 * include/experimental/numeric (experimental::gcd): Simplify
362 assertions. Use __abs_r instead of __absu.
363 (experimental::lcm): Likewise. Remove use of __detail::__lcm so
364 overflow can be detected.
365 * include/std/numeric (__detail::__absu): Rename to __abs_r and
366 change to allow signed result type, so overflow can be detected.
367 (__detail::__lcm): Remove.
368 (gcd): Simplify assertions. Use __abs_r instead of __absu.
369 (lcm): Likewise. Remove use of __detail::__lcm so overflow can
371 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
372 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
373 * testsuite/26_numerics/gcd/105844.cc: New test.
374 * testsuite/26_numerics/lcm/105844.cc: New test.
376 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
379 * libsupc++/eh_globals.cc (eh_globals): Ensure constant init and
380 prevent destruction during termination.
381 (__eh_globals_init::_M_init): Replace with static member _S_init.
382 (__cxxabiv1::__cxa_get_globals_fast): Update.
383 (__cxxabiv1::__cxa_get_globals): Likewise.
385 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
387 * include/bits/basic_string.h (__hash_str_base): New class
389 (hash<basic_string<C, char_traits<C>, A>>): Define partial
390 specialization for each of the standard character types.
391 (hash<string>, hash<wstring>, hash<u8string>, hash<u16string>)
392 (hash<u32string>): Remove explicit specializations.
393 * include/std/string (__hash_string_base): Remove class
395 (hash<pmr::string>, hash<pmr::wstring>, hash<pmr::u8string>)
396 (hash<pmr::u16string>, hash<pmr::u32string>): Remove explicit
398 * testsuite/21_strings/basic_string/hash/hash.cc: Test with
400 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
403 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
406 * include/std/sstream (basic_stringbuf::_M_high_mark): Add
407 always_inline attribute.
409 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
412 * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
413 Limit ga_sizes array to values that fit in size_t.
414 * include/ext/random [__SIZE_WIDTH < 32] (sfmt86243)
415 (sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091)
416 (sfmt216091_64): Do not declare.
418 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
420 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make
421 lookup for ios_errc and future_errc check versioned namespace.
422 (StdAtomicPrinter): Strip versioned namespace from typename.
424 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
426 * src/c++11/Makefile.am: Add new source file.
427 * src/c++11/Makefile.in: Regenerate.
428 * src/c++11/cxx11-ios_failure.cc (iostream_category):
430 * src/c++11/ios_errcat.cc: New file.
431 * testsuite/27_io/ios_base/failure/error_code.cc: Check that
432 std::iostream_category() is defined and used for std::io_errc.
434 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
436 * include/bits/stl_iterator.h (counted_iterator::operator++(int)):
437 Add 'constexpr' as per LWG 3643.
438 * testsuite/24_iterators/counted_iterator/lwg3643.cc: New test.
440 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
442 * include/bits/functional_hash.h (__is_fast_hash): Add doxygen
444 * include/bits/hashtable.h: Do not include <bits/stl_function.h>
446 * include/bits/hashtable_policy.h: Include <bits/stl_pair.h> and
447 <bits/functional_hash.h>.
448 * include/bits/unordered_map.h: Include required headers.
449 * include/bits/unordered_set.h: Likewise.
450 * include/std/unordered_map: Do not include headers for indirect
452 * include/std/unordered_set: Likewise.
454 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
456 * include/bits/ranges_algobase.h: Do not include
457 <bits/stl_iterator_base_types.h>.
458 * include/std/string: Likewise.
459 * include/std/variant: Likewise.
461 2022-05-26 Nathan Sidwell <nathan@acm.org>
463 * include/bits/hashtable.h: Include required headers.
464 * include/bits/hashtable_policy.h: Likewise.
465 * include/bits/stl_heap.h: Likewise.
466 * include/bits/stl_iterator_base_funcs.h: Likewise.
468 2022-05-26 François Dumont <fdumont@gcc.gnu.org>
470 * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__):
471 Strip typename from version namespace.
473 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
475 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip
476 versioned namespace from the template argument too.
478 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
480 * testsuite/21_strings/basic_string/modifiers/pop_back/char/1.cc:
482 * testsuite/21_strings/basic_string/modifiers/pop_back/char.cc:
484 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/1.cc:
486 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t.cc:
488 * testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc:
490 * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
492 * testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc:
494 * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
496 * testsuite/21_strings/basic_string/operations/contains/char/1.cc:
498 * testsuite/21_strings/basic_string/operations/contains/char.cc:
500 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc:
502 * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc:
504 * testsuite/21_strings/basic_string/operations/data/char/1.cc:
506 * testsuite/21_strings/basic_string/operations/data/char.cc:
508 * testsuite/21_strings/basic_string/operations/data/wchar_t/1.cc:
510 * testsuite/21_strings/basic_string/operations/data/wchar_t.cc:
512 * testsuite/21_strings/basic_string/operations/ends_with/char/1.cc:
514 * testsuite/21_strings/basic_string/operations/ends_with/char.cc:
516 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t/1.cc:
518 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
520 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
522 * testsuite/21_strings/basic_string/operations/starts_with/char.cc:
524 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
526 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
528 * testsuite/21_strings/basic_string/operations/substr/char/1.cc:
530 * testsuite/21_strings/basic_string/operations/substr/char.cc:
532 * testsuite/21_strings/basic_string/operations/substr/wchar_t/1.cc:
534 * testsuite/21_strings/basic_string/operations/substr/wchar_t.cc:
536 * testsuite/21_strings/basic_string/range_access/char/1.cc:
538 * testsuite/21_strings/basic_string/range_access/char.cc:
540 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
542 * testsuite/21_strings/basic_string/range_access/wchar_t.cc:
544 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
546 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char.cc:
548 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
550 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t.cc:
552 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
554 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char.cc:
556 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
558 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t.cc:
560 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
562 * testsuite/21_strings/basic_string_view/modifiers/swap/char.cc:
564 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
566 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t.cc:
568 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc:
570 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
572 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc:
574 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc:
576 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
578 * testsuite/21_strings/basic_string_view/operations/data/char.cc:
580 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
582 * testsuite/21_strings/basic_string_view/operations/data/wchar_t.cc:
584 * testsuite/21_strings/basic_string_view/operations/ends_with/char/1.cc:
586 * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
588 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t/1.cc:
590 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
592 * testsuite/21_strings/basic_string_view/operations/starts_with/char/1.cc:
594 * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
596 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t/1.cc:
598 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
600 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
602 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
604 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
606 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
608 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
610 * testsuite/21_strings/basic_string_view/range_access/char.cc:
612 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
614 * testsuite/21_strings/basic_string_view/range_access/wchar_t.cc:
616 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
618 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char.cc:
620 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
622 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t.cc:
624 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
626 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t.cc:
628 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
630 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t.cc:
632 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/1.cc:
634 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
636 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
638 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t.cc:
640 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
642 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char.cc:
644 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
646 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t.cc:
648 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
650 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t.cc:
652 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
654 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t.cc:
656 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
658 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/int.cc:
660 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
662 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t.cc:
664 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char/1.cc:
666 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char.cc:
668 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t/1.cc:
670 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t.cc:
672 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t/1.cc:
674 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t.cc:
676 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t/1.cc:
678 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t.cc:
680 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short/1.cc:
682 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short.cc:
684 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t/1.cc:
686 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t.cc:
689 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
691 * testsuite/20_util/duration/requirements/explicit_instantiation/explicit_instantiation.cc:
693 * testsuite/20_util/duration/requirements/explicit_instantiation.cc: ...here.
694 * testsuite/20_util/time_point/requirements/explicit_instantiation/explicit_instantiation.cc:
696 * testsuite/20_util/time_point/requirements/explicit_instantiation.cc: ...here.
697 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation/explicit_instantiation.cc:
699 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation.cc: ...here.
701 2022-05-25 Jason Merrill <jason@redhat.com>
703 * testsuite/20_util/function_objects/constexpr_searcher.cc: Add
706 2022-05-20 Jonathan Wakely <jwakely@redhat.com>
708 * testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc:
709 Run fewer iterations for simulator targets.
710 * testsuite/26_numerics/random/binomial_distribution/operators/values.cc:
712 * testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
714 * testsuite/26_numerics/random/geometric_distribution/operators/values.cc:
716 * testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc:
718 * testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
720 * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc:
723 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
725 * include/bits/char_traits.h: Only include <cstdint> when
727 * include/std/stacktrace: Use __UINTPTR_TYPE__ instead of
729 * src/c++11/cow-stdexcept.cc: Include <stdint.h>.
730 * src/c++17/floating_to_chars.cc: Likewise.
731 * testsuite/20_util/assume_aligned/1.cc: Include <cstdint>.
732 * testsuite/20_util/assume_aligned/3.cc: Likewise.
733 * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
735 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
737 * include/bits/basic_string.h: Do not include <ext/atomicity.h>
739 * include/bits/cow_string.h: Include it here.
741 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
743 * include/Makefile.am: Add new header.
744 * include/Makefile.in: Regenerate.
745 * include/bits/memory_resource.h: New file.
746 * include/std/deque: Include <bits/memory_resource.h>.
747 * include/std/forward_list: Likewise.
748 * include/std/list: Likewise.
749 * include/std/map: Likewise.
750 * include/std/memory_resource (pmr::memory_resource): Move to
751 new <bits/memory_resource.h> header.
752 (pmr::polymorphic_allocator): Likewise.
753 * include/std/regex: Likewise.
754 * include/std/set: Likewise.
755 * include/std/stacktrace: Likewise.
756 * include/std/string: Likewise.
757 * include/std/unordered_map: Likewise.
758 * include/std/unordered_set: Likewise.
759 * include/std/vector: Likewise.
760 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
761 Remove <memory_resource> header and check construction.
762 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
763 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
765 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
766 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
767 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
768 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
769 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
770 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
772 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
774 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
776 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
778 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
779 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
781 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
783 * include/std/memory_resource (polymorphic_allocator): Add
784 non-template equality operator, as proposed for LWG 3683.
785 * testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test.
787 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
789 * src/c++17/memory_resource.cc (set_default_resource): Use
790 memory_order_acq_rel.
791 (get_default_resource): Use memory_order_acquire.
793 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
795 * include/std/memory_resource (new_delete_resource): Add
796 nodiscard, returns_nonnull and const attributes.
797 (null_memory_resource): Likewise.
798 (set_default_resource, get_default_resource): Add returns_nonnull
800 (memory_resource::is_equal): Add nodiscard attribute.
801 (operator==, operator!=): Likewise.
803 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
805 * include/bits/ios_base.h (io_category): Add const and nodiscard
807 (make_error_code, make_error_condition): Add nodiscard.
808 * include/std/future (future_category): Add const and nodiscard.
809 (make_error_code, make_error_condition): Add nodiscard.
810 * include/std/system_error (generic_category system_category):
811 Add nodiscard. Replace _GLIBCXX_CONST with C++11 attribute.
812 (error_code::value, error_code::category, error_code::operator bool)
813 (error_condition::value, error_condition::category)
814 (error_condition::operator bool, make_error_code)
815 (make_error_condition, operator==, operator!=, operator<=>): Add
818 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
820 * testsuite/20_util/expected/synopsis.cc: Skip for versioned
822 * testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise.
824 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
826 * src/Makefile.am [ENABLE_SYMVERS_GNU_NAMESPACE] (cxx11_sources):
827 Do not build the compatibility*-c++0x.cc objects.
828 * src/Makefile.in: Regenerate.
829 * src/c++11/compatibility-c++0x.cc [_GLIBCXX_INLINE_VERSION]:
830 Refuse to build for the versioned namespace.
831 * src/c++11/compatibility-chrono.cc: Likewise.
832 * src/c++11/compatibility-condvar.cc: Likewise.
833 * src/c++11/compatibility-thread-c++0x.cc: Likewise.
834 * src/c++11/chrono.cc (system_clock, steady_clock):
835 Use macros to define in inline namespace _V2, matching the
836 declarations in <system_error>.
837 * src/c++11/system_error.cc (system_category, generic_category):
840 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
842 * doc/xml/manual/prerequisites.xml: Fix attributes for external
844 * doc/html/manual/setup.html: Regenerate.
846 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
848 * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support.
849 * doc/html/*: Regenerate.
851 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
853 * doc/xml/manual/intro.xml: Include new chapter.
854 * doc/xml/manual/status_cxx2020.xml: Tweak release numbers.
855 * doc/xml/manual/status_cxx2023.xml: New file.
856 * doc/html/*: Regenerate.
858 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
860 * doc/html/manual/status.html: Regenerate.
861 * doc/xml/manual/status_cxx2020.xml: Fix supported version for
862 C++20 bit operations.
864 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
866 * include/bits/std_thread.h (thread::_State, thread::_State_ptr):
867 Declare as private unless _GLIBCXX_THREAD_IMPL is defined.
868 * src/c++11/thread.cc (_GLIBCXX_THREAD_IMPL): Define.
870 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
872 * include/std/future (launch): Make operators noexcept.
874 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
876 * doc/doxygen/user.cfg.in (PREDEFINED): Replace __exception_ptr
877 with "__unspecified__".
878 * libsupc++/exception_ptr.h: Improve doxygen docs.
879 (__exception_ptr::swap): Also declare in namespace std.
881 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
883 * libsupc++/nested_exception.h (throw_with_nested) [C++17]: Use
884 if-constexpr instead of tag dispatching.
885 (rethrow_if_nested) [C++17]: Likewise.
886 (rethrow_if_nested) [!__cpp_rtti]: Do not use dynamic_cast if it
888 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
891 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
893 * doc/doxygen/user.cfg.in (PREDEFINED): Define
894 _GTHREAD_USE_MUTEX_TIMEDLOCK macro.
895 * include/bits/std_mutex.h (mutex, lock_guard): Use @since and
897 * include/bits/unique_lock.h (unique_lock): Likewise.
898 * include/std/mutex (recursive_mutex, timed_mutex)
899 (recursive_timed_mutex, scoped_lock): Likewise.
901 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
903 * doc/doxygen/user.cfg.in (PREDEFINED): Define
904 _GLIBCXX23_CONSTEXPR macro.
905 * include/backward/auto_ptr.h (auto_ptr): Use @deprecated.
906 * include/bits/unique_ptr.h (default_delete): Use @since and
908 * include/std/scoped_allocator: Remove @ingroup from @file
911 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
913 * include/bits/std_thread.h (thread, thread::id): Improve
915 * include/std/future: Likewise.
916 * include/std/thread (jthread): Likewise.
918 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
920 * include/bits/ostream_insert.h: Mark helper functions as
921 undocumented by Doxygen.
922 * include/bits/stl_algo.h: Use markdown for formatting and mark
923 helper functions as undocumented.
924 * include/bits/stl_numeric.h: Likewise.
925 * include/bits/stl_pair.h (pair): Add @headerfile.
927 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
929 * doc/doxygen/user.cfg.in (PREDEFINED): Define __allocator_base
930 so that Doxygen shows the right base-class for std::allocator.
931 * include/bits/alloc_traits.h: Improve doxygen docs.
932 * include/bits/allocator.h: Likewise.
933 * include/bits/new_allocator.h: Likewise.
934 * include/ext/new_allocator.h: Likewise.
936 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
938 * doc/doxygen/user.cfg.in (PREDEFINED): Define macro
939 _GLIBCXX_DOXYGEN_ONLY to expand its argument.
940 * include/bits/c++config (_GLIBCXX_DOXYGEN_ONLY): Define.
941 * include/bits/regex.h: Improve doxygen docs.
942 * include/bits/regex_constants.h: Likewise.
943 * include/bits/regex_error.h: Likewise.
945 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
947 * include/std/atomic: Suppress doxygen docs for
948 implementation details.
949 * include/bits/atomic_base.h: Likewise.
950 * include/bits/shared_ptr_atomic.h: Use markdown. Fix grouping
951 so that std::atomic is not added to the pointer abstractions
954 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
956 * include/std/system_error: Improve doxygen comments.
958 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
960 * include/bits/ptr_traits.h: Add some doxygen comments.
962 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
964 * doc/doxygen/user.cfg.in (PREDEFINED): Expand new macros to
966 * include/bits/c++config (_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE)
967 (_GLIBCXX_END_INLINE_ABI_NAMESPACE): Define new macros.
968 * include/bits/algorithmfwd.h (_V2::__rotate): Use new macros
970 * include/bits/chrono.h (chrono::_V2::system_clock): Likewise.
971 * include/bits/stl_algo.h (_V2::__rotate): Likewise.
972 * include/std/condition_variable (_V2::condition_variable_any):
974 * include/std/system_error (_V2::error_category): Likewise.
976 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
978 * include/bits/mofunc_impl.h: Fix doxygen command.
980 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
982 * doc/doxygen/user.cfg.in (GROUP_NESTED_COMPOUNDS): Set to NO.
983 (CLASS_DIAGRAMS): Remove obsolete option.
985 2022-05-12 Jonathan Wakely <jwakely@redhat.com>
987 * config/locale/dragonfly/numeric_members.cc: Remove whitespace.
988 * config/locale/gnu/numeric_members.cc: Likewise.
989 * include/bits/locale_facets_nonio.h: Likewise.
990 * libsupc++/typeinfo: Likewise.
992 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
995 * include/std/iosfwd: Add declarations for <spanstream> class
996 templates and typedefs.
997 * include/std/spanstream (basic_spanbuf, basic_ispanstream)
998 (basic_ospanstream, basic_spanstream): Remove default template
1000 * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream>
1002 * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream>
1005 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
1008 * include/std/iosfwd: Add declarations for <synstream> class
1009 templates and typedefs.
1010 * include/std/syncstream (basic_syncbuf, basic_osyncstream):
1011 Remove default template arguments.
1012 * testsuite/27_io/headers/iosfwd/synopsis.cc: New test.
1013 * testsuite/27_io/headers/iosfwd/types.cc: New test.
1015 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
1017 * include/bits/random.tcc (operator==): Only check
1018 normal_distribution::_M_saved_available once.
1019 * testsuite/26_numerics/random/normal_distribution/operators/equal.cc:
1020 Check equality after state changes.
1021 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
1024 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
1027 * include/bits/random.tcc
1028 (operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
1029 Update state when __state_avail is false.
1030 * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
1031 Check that deserialized object equals serialized one.
1033 2022-05-06 Alexandre Oliva <oliva@adacore.com>
1035 * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX
1036 for double, long long, and 64-bit long intrinsic types.
1037 [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in
1038 preexisting long double diagnostic, adjust no-VSX double
1039 diagnostic to cover 64-bit long double as well.
1041 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
1044 * testsuite/27_io/filesystem/iterators/error_reporting.cc:
1045 Use a trailing char array as storage for dirent::d_name.
1047 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
1049 * include/std/stacktrace: Do not include <cxxabi.h>.
1050 (__cxa_demangle): Declare.
1052 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
1055 * include/bits/specfun.h: Use visibility attribute on namespace,
1056 instead of pragma push/pop.
1057 * libsupc++/compare: Likewise.
1058 * libsupc++/exception: Likewise.
1059 * libsupc++/exception.h: Likewise.
1060 * libsupc++/exception_ptr.h: Likewise.
1061 * libsupc++/initializer_list: Likewise.
1062 * libsupc++/nested_exception.h: Likewise.
1064 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
1066 * doc/xml/manual/test.xml: Remove requirement for copyright and
1067 GPL notice in tests.
1068 * doc/html/manual/test.html: Regenerate.
1070 2022-05-05 Jonathan Wakely <jwakely@redhat.com>
1072 * include/experimental/memory_resource [!__cpp_rtti]
1073 (__resource_adaptor_imp::do_is_equal): Do not use dynamic_cast
1074 when RTTI is disabled.
1075 * testsuite/17_intro/freestanding.cc: Require RTTI.
1076 * testsuite/18_support/exception/38732.cc: Likewise.
1077 * testsuite/18_support/exception_ptr/rethrow_exception.cc:
1079 * testsuite/18_support/nested_exception/68139.cc: Likewise.
1080 * testsuite/18_support/nested_exception/rethrow_if_nested.cc:
1082 * testsuite/18_support/type_info/103240.cc: Likewise.
1083 * testsuite/18_support/type_info/fundamental.cc: Likewise.
1084 * testsuite/18_support/type_info/hash_code.cc: Likewise.
1085 * testsuite/20_util/any/assign/emplace.cc: Likewise.
1086 * testsuite/20_util/any/cons/in_place.cc: Likewise.
1087 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
1088 * testsuite/20_util/any/observers/type.cc: Likewise.
1089 * testsuite/20_util/function/1.cc: Likewise.
1090 * testsuite/20_util/function/2.cc: Likewise.
1091 * testsuite/20_util/function/3.cc: Likewise.
1092 * testsuite/20_util/function/4.cc: Likewise.
1093 * testsuite/20_util/function/5.cc: Likewise.
1094 * testsuite/20_util/function/6.cc: Likewise.
1095 * testsuite/20_util/function/7.cc: Likewise.
1096 * testsuite/20_util/function/8.cc: Likewise.
1097 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
1098 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
1099 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
1100 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
1102 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
1103 * testsuite/20_util/typeindex/comparison_operators.cc: Likewise.
1104 * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
1106 * testsuite/20_util/typeindex/hash.cc: Likewise.
1107 * testsuite/20_util/typeindex/hash_code.cc: Likewise.
1108 * testsuite/20_util/typeindex/name.cc: Likewise.
1109 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
1110 * testsuite/22_locale/global_templates/standard_facet_hierarchies.cc:
1112 * testsuite/22_locale/global_templates/user_facet_hierarchies.cc:
1114 * testsuite/22_locale/locale/13630.cc: Check type without using
1116 * testsuite/23_containers/array/requirements/non_default_constructible.cc:
1118 * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
1119 * testsuite/27_io/fpos/14320-1.cc: Check type without using RTTI.
1120 * testsuite/27_io/fpos/mbstate_t/12065.cc: Require RTTI.
1121 * testsuite/27_io/ios_base/failure/dual_abi.cc: Likewise.
1122 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
1123 * testsuite/experimental/any/observers/type.cc: Likewise.
1124 * testsuite/experimental/memory_resource/resource_adaptor.cc:
1126 * testsuite/lib/libstdc++.exp (check_effective_target_rtti):
1128 * testsuite/tr1/3_function_objects/function/1.cc: Likewise.
1129 * testsuite/tr1/3_function_objects/function/2.cc: Likewise.
1130 * testsuite/tr1/3_function_objects/function/3.cc: Likewise.
1131 * testsuite/tr1/3_function_objects/function/4.cc: Likewise.
1132 * testsuite/tr1/3_function_objects/function/5.cc: Likewise.
1133 * testsuite/tr1/3_function_objects/function/6.cc: Likewise.
1134 * testsuite/tr1/3_function_objects/function/7.cc: Likewise.
1135 * testsuite/tr1/3_function_objects/function/8.cc: Likewise.
1136 * testsuite/tr2/bases/value.cc: Likewise.
1137 * testsuite/tr2/direct_bases/value.cc: Likewise.
1138 * testsuite/util/exception/safety.h [!__cpp_rtti]: Don't print
1141 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
1144 * include/std/array (array::size(), array::max_size())
1145 (array::empty(), array::data()): Add always_inline attribute.
1147 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
1150 * include/std/array (__array_traits::_S_ref): Remove.
1151 (__array_traits::_S_ptr): Remove.
1152 (__array_traits<T, 0>::_Type): Define operator[] and operator T*
1153 to provide an array-like API.
1154 (array::_AT_Type): Remove public typeef.
1155 (array::operator[], array::at, array::front, array::back): Use
1156 index operator to access _M_elems instead of _S_ref.
1157 (array::data): Use implicit conversion from _M_elems to pointer.
1158 (swap(array&, array&)): Use __enable_if_t helper.
1159 (get<I>): Use index operator to access _M_elems.
1160 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
1161 Adjust dg-error line numbers.
1163 2022-05-03 Alexandre Oliva <oliva@adacore.com>
1166 * testsuite/20_util/from_chars/pr105324.cc: Guard test body
1167 with conditional for floating-point overloads of from_char.
1169 2022-05-02 Patrick Palka <ppalka@redhat.com>
1172 * src/c++17/floating_from_chars.cc (find_end_of_float): Accept
1173 two delimeters for the exponent part in the form of a possibly
1174 NULL string of length two. Don't use std::tolower.
1175 (pattern): Adjust calls to find_end_of_float accordingly.
1177 2022-05-02 Patrick Palka <ppalka@redhat.com>
1180 * src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
1181 Also accept 'P' as the start of the exponent.
1182 * testsuite/20_util/from_chars/7.cc: Add corresponding testcase.
1184 2022-04-29 Jonathan Wakely <jwakely@redhat.com>
1187 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
1189 * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]:
1190 Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I>
1191 symbols as aliases for corresponding symbols without abi-tag.
1193 2022-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1195 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
1196 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
1198 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
1199 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
1202 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
1205 * src/c++17/fs_ops.cc (fs::copy): Pass error_code to
1206 directory_iterator constructor, and check on each iteration.
1207 * src/filesystem/ops.cc (fs::copy): Likewise.
1208 * testsuite/27_io/filesystem/operations/copy.cc: Check for
1209 errors during recursion.
1210 * testsuite/experimental/filesystem/operations/copy.cc:
1213 2022-04-28 François Dumont <fdumont@gcc.gnu.org>
1215 * config/abi/pre/gnu-versioned-namespace.ver: Remove
1216 std::random_device::* pattern.
1218 2022-04-27 Jakub Jelinek <jakub@redhat.com>
1220 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1221 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
1222 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
1223 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1224 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
1225 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
1226 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
1227 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
1229 2022-04-27 Jonathan Wakely <jwakely@redhat.com>
1231 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add
1232 support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>.
1233 (StdAtomicPrinter): New printer.
1234 (build_libstdcxx_dictionary): Register new printer.
1235 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic.
1236 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart
1239 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
1241 * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add
1242 constructor for constant initialization from nullptr_t.
1243 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
1244 Check for new constructor.
1246 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
1248 * include/bits/fs_path.h (hash<filesystem::path>): Define.
1249 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
1250 Check std::hash specialization.
1252 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
1254 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define
1256 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
1258 (default_delete, default_delete<T[]>, __uniq_ptr_impl)
1259 (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member
1261 * include/std/version (__cpp_lib_constexpr_memory): Define new
1263 * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test.
1264 * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test.
1265 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test.
1266 * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test.
1267 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test.
1268 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc:
1271 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
1274 * include/std/future (packaged_task): Add deduction guides.
1275 * testsuite/30_threads/packaged_task/cons/deduction.cc: New test.
1277 2022-04-25 Philipp Fent <fent@in.tum.de>
1279 * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
1281 (StdInitializerListPrinter): Define new printer.
1282 (build_libstdcxx_dictionary): Register new printer.
1283 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
1286 2022-04-22 Thomas W Rodgers <trodgers@redhat.com>
1289 * include/bits/atomic_base.h (atomic_flag::notify_one,
1290 notify_all): Remove const qualification.
1291 (__atomic_base::notify_one, notify_all): Likewise.
1292 * include/std/atomic (atomic<bool>::notify_one, notify_all):
1294 (atomic::notify_one, notify_all): Likewise.
1295 (atomic<T*>::notify_one, notify_all): Likewise.
1296 (atomic_notify_one, atomic_notify_all): Likewise.
1297 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test
1298 to account for change in notify_one/notify_all signature.
1300 2022-04-21 Patrick Palka <ppalka@redhat.com>
1302 * include/std/charconv (__from_chars_alnum_to_val_table):
1303 Simplify initialization of __lower/__upper_letters.
1304 (__from_chars_alnum_to_val): Default the template parameter to
1306 * src/c++17/floating_from_chars.cc (starts_with_ci): Don't
1307 assume the uppercase and lowercase letters are contiguous.
1308 (__floating_from_chars_hex): Likewise.
1310 2022-04-21 Patrick Palka <ppalka@redhat.com>
1314 * include/std/charconv (__from_chars_alnum_to_val): Make
1315 initializer for __table dependent in an artificial way.
1317 2022-04-21 Jonathan Wakely <jwakely@redhat.com>
1320 * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
1322 * testsuite/20_util/from_chars/pr105324.cc: New test.
1324 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
1326 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
1327 Check correct feature test macro.
1329 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
1332 * doc/xml/manual/prerequisites.xml: Document libiconv
1334 * doc/html/manual/setup.html: Regenerate.
1335 * src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
1336 * src/Makefile.in: Regenerate.
1338 2022-04-19 Patrick Palka <ppalka@redhat.com>
1340 * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't
1342 (__floating_to_chars_shortest): Add __builtin_unreachable calls to
1343 squelch false-positive -Wmaybe-uninitialized and -Wreturn-type
1345 (__floating_to_chars_precision): Likewise.
1347 2022-04-19 Philipp Fent <fent@in.tum.de>
1349 * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
1350 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
1352 2022-04-19 Jonathan Wakely <jwakely@redhat.com>
1354 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
1355 * configure: Regenerate.
1357 2022-04-18 Patrick Palka <ppalka@redhat.com>
1359 * include/std/charconv (__from_chars_pow2_base): Manually
1360 unroll the first iteration of the main loop and simplify
1363 2022-04-15 Patrick Palka <ppalka@redhat.com>
1366 * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing
1367 __first twice at the start.
1368 * testsuite/25_algorithms/minmax/constrained.cc (test06): New test.
1370 2022-04-15 Patrick Palka <ppalka@redhat.com>
1372 * include/std/charconv (__from_chars_alnum_to_val_table): Define.
1373 (__from_chars_alnum_to_val): Define.
1374 (__from_chars_binary): Rename to ...
1375 (__from_chars_pow2_base): ... this. Generalize to handle any
1376 power-of-two base using __from_chars_alnum_to_val.
1377 (__from_chars_digit): Optimize digit recognition to a single
1378 test instead of two tests. Use [[__unlikely___]] attribute.
1379 (__from_chars_alpha_to_num): Remove.
1380 (__from_chars_alnum): Use __from_chars_alnum_to_val. Use a
1381 nested loop for the overflow case. Maintain a lower bound
1382 on the number of available bits in the result and use it to
1383 omit the overflow check.
1384 (from_chars): Adjust appropriately.
1385 * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove.
1386 (__floating_from_chars_hex): Use __from_chars_alnum_to_val
1387 to recognize a hex digit instead.
1389 2022-04-14 Palmer Dabbelt <palmer@rivosinc.com>
1391 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
1393 * configure: Regenerate.
1395 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
1397 * doc/xml/manual/intro.xml: Fix comment.
1399 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
1401 * include/precompiled/stdc++.h: Include <stacktrace> and
1402 <stdatomic.h> for C++23.
1404 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
1407 * include/bits/stl_vector.h (__cpp_lib_constexpr_vector):
1409 * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h):
1411 * include/std/optional (__cpp_lib_optional): Define new value
1413 (__cpp_lib_monadic_optional): Remove.
1414 * include/std/version (__cpp_lib_constexpr_vector): Define.
1415 (__cpp_lib_stdatomic_h): Define.
1416 (__cpp_lib_optional): Define new value for C++23.
1417 (__cpp_lib_monadic_optional): Remove.
1418 * testsuite/20_util/optional/monadic/and_then.cc: Adjust.
1419 * testsuite/20_util/optional/requirements.cc: Adjust for C++23.
1420 * testsuite/20_util/optional/version.cc: Likewise.
1421 * testsuite/23_containers/vector/cons/constexpr.cc: Check
1423 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
1425 * testsuite/20_util/optional/monadic/version.cc: Removed.
1426 * testsuite/23_containers/vector/requirements/version.cc: New test.
1427 * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test.
1429 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1431 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
1432 * config.h.in: Regenerate.
1433 * configure: Regenerate.
1435 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1437 * include/std/stacktrace (basic_stacktrace::current): Reallocate
1438 a smaller container if the unused capacity is larger than the
1441 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1443 * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone
1444 or _Impl::_M_assign to initialize elements in allocated storage.
1445 (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of
1447 (basic_stacktrace::_Impl::_M_destroy()): Replace with ...
1448 (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New
1450 (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct
1451 new element using allocator.
1452 (basic_stacktrace::_Impl::_M_clone): New function.
1453 (basic_stacktrace::_Impl::_M_xclone): New function.
1454 (basic_stacktrace::_Impl::_M_assign): New function.
1456 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1458 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
1459 Use nothrow new instead of try block for std::allocator.
1460 (basic_stacktrace::_Impl::_M_deallocate): Use delete for
1463 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1465 * include/std/stacktrace (basic_stacktrace::current): Replace
1466 calls to _M_reserve and _S_curr_cb with call to _M_prepare.
1467 Check return value of backtrace_simple when max depth given.
1468 (basic_stacktrace::_M_reserve): Remove.
1469 (basic_stacktrace::_S_curr_cb): Remove.
1470 (basic_stacktrace::_M_prepare(size_type)): New function to
1471 reserve initial capacity and return callback.
1472 (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n
1473 and remove redundant zeroing of _M_frames and _M_capacity.
1474 (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]]
1475 attribute. Assign _Impl instead of swapping.
1476 * testsuite/19_diagnostics/stacktrace/current.cc: New test.
1478 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1480 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
1481 Change [[unlikely]] attribute to [[likely]].
1483 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1486 * include/std/stacktrace (basic_stacktrace::basic_stacktrace):
1487 Fix allocator usage in constructors.
1488 (basic_stacktrace::operator=(const basic_stacktrace&)): Do not
1489 try to reallocate using const allocator.
1490 (basic_stacktrace::operator=(basic_stacktrace&&)): Fix
1491 if-constexpr with non-constant condition. Do not allocate new
1492 storage if allocator propagates. Do not set _M_size if
1494 (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add
1495 assertion that non-propagating allocators are equal.
1496 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test.
1498 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1500 * include/std/stacktrace (basic_stacktrace::current): Duplicate
1501 implementation into each overload. Add noinline attribute and
1503 (basic_stacktrace::max_size()): Call _Impl::_S_max_size.
1504 (basic_stacktrace::_S_curr_cb()): New function defining lambda.
1505 (basic_stacktrace::_Impl::_S_max_size): New function defining
1506 maximum size in terms of allocator and size_type.
1507 (basic_stacktrace::_Impl::_M_allocate): Check against
1509 * testsuite/19_diagnostics/stacktrace/entry.cc: Call function
1510 for non-constexpr checks. Check line number is correct.
1512 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1514 * testsuite/20_util/stacktrace/entry.cc: Moved to...
1515 * testsuite/19_diagnostics/stacktrace/entry.cc: ...here.
1516 * testsuite/20_util/stacktrace/synopsis.cc: Moved to...
1517 * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here.
1518 * testsuite/20_util/stacktrace/version.cc: Moved to...
1519 * testsuite/19_diagnostics/stacktrace/version.cc: ...here.
1521 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1523 * include/experimental/bits/fs_path.h (path): Define special
1524 members after path::_Cmpt is complete.
1526 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
1529 * include/std/expected
1530 (expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
1531 * testsuite/20_util/expected/cons.cc: Check constructor.
1533 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
1536 * include/std/expected (expected<void, E>::swap): Set
1537 _M_has_value to false for objects that previously had a value.
1538 * testsuite/20_util/expected/swap.cc: Fix test to check void
1541 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
1544 * include/std/expected (bad_expected_access): Move constructor
1546 * testsuite/20_util/expected/bad.cc: New test.
1548 2022-04-07 Hans-Peter Nilsson <hp@axis.com>
1550 * testsuite/20_util/expected/requirements.cc: Correct minimal-size
1553 2022-04-02 Jakub Jelinek <jakub@redhat.com>
1556 * include/std/source_location (std::source_location::__impl): Move
1557 definition before using __builtin_ret_type.
1559 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
1561 * include/std/utility (unreachable): Define for C++23.
1562 * include/std/version (__cpp_lib_unreachable): Define.
1563 * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid
1564 arguments. Handle only the function being given.
1565 * testsuite/20_util/unreachable/1.cc: New test.
1566 * testsuite/20_util/unreachable/version.cc: New test.
1568 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
1570 * include/experimental/bits/fs_fwd.h (copy_file): Remove
1571 incorrect noexcept from declaration.
1572 * include/experimental/bits/fs_path.h (path::begin, path::end):
1573 Add noexcept to declarations, to match definitions.
1575 2022-04-01 Timm Bäder <tbaeder@redhat.com>
1577 * include/bits/fs_ops.h: Fix filename in Doxygen comment.
1578 * include/experimental/bits/fs_ops.h: Likewise.
1580 2022-03-31 Jonathan Wakely <jwakely@redhat.com>
1582 * libsupc++/new_opa.cc (aligned_alloc): Add comment.
1584 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
1586 * testsuite/18_support/exception/38732.cc: Disable for C++23.
1587 * testsuite/18_support/headers/exception/synopsis.cc: Likewise.
1588 * testsuite/18_support/unexpected_handler.cc: Likewise.
1590 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
1592 * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
1593 static data members for _Fp_fmt enumerators.
1595 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
1597 * include/std/version (__cpp_lib_variant): Fix conditions to
1599 (__cpp_lib_expected): Fix condition to match <expected>.
1601 2022-03-28 Jonathan Wakely <jwakely@redhat.com>
1603 * testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
1604 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
1605 * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
1606 * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
1607 * testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
1608 * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
1609 * testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
1610 * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
1612 2022-03-27 Jonathan Wakely <jwakely@redhat.com>
1614 * doc/doxygen/user.cfg.in: Add new header.
1615 * include/Makefile.am: Likewise.
1616 * include/Makefile.in: Regenerate.
1617 * include/precompiled/stdc++.h: Add new header.
1618 * include/std/version (__cpp_lib_expected): Define.
1619 * libsupc++/exception [__cplusplus > 202002] (unexpected)
1620 (unexpected_handler, set_unexpected): Do not declare for C++23.
1621 * include/std/expected: New file.
1622 * testsuite/20_util/expected/assign.cc: New test.
1623 * testsuite/20_util/expected/cons.cc: New test.
1624 * testsuite/20_util/expected/illformed_neg.cc: New test.
1625 * testsuite/20_util/expected/observers.cc: New test.
1626 * testsuite/20_util/expected/requirements.cc: New test.
1627 * testsuite/20_util/expected/swap.cc: New test.
1628 * testsuite/20_util/expected/synopsis.cc: New test.
1629 * testsuite/20_util/expected/unexpected.cc: New test.
1630 * testsuite/20_util/expected/version.cc: New test.
1632 2022-03-25 Jonathan Wakely <jwakely@redhat.com>
1634 * include/std/bit (bit_cast, byteswap, endian): Add doxygen
1637 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
1640 * include/std/bit (bit_cast): Add constraints.
1641 * testsuite/26_numerics/bit/bit.cast/105027.cc: New test.
1643 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
1645 * include/std/version [!_GLIBCXX_HOSTED]
1646 (__cpp_lib_hardware_interference_size): Define for freestanding.
1647 (__cpp_lib_bit_cast): Likewise.
1648 (__cpp_lib_is_layout_compatible): Likewise.
1649 (__cpp_lib_is_pointer_interconvertible): Likewise.
1650 (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for
1652 (__cpp_lib_invoke_r): Likewise.
1653 (__cpp_lib_ios_noreplace): Likewise.
1654 (__cpp_lib_monadic_optional): Likewise.
1655 (__cpp_lib_move_only_function): Likewise.
1656 (__cpp_lib_spanstream): Likewise.
1657 (__cpp_lib_stacktrace): Likewise.
1658 (__cpp_lib_string_contains): Likewise.
1659 (__cpp_lib_string_resize_and_overwrite): Likewise.
1660 (__cpp_lib_to_underlying): Likewise.
1662 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
1665 * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
1666 <bits/atomic_wait.h> for freestanding.
1668 2022-03-22 Hans-Peter Nilsson <hp@axis.com>
1670 * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
1671 Conditionalize call to fesetround.
1673 2022-03-21 Jakub Jelinek <jakub@redhat.com>
1676 * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
1677 isn't overloaded if __clang__ is defined.
1679 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
1682 * include/std/any (any(T&&)): Revert change to constraints.
1683 * testsuite/20_util/any/cons/104242.cc: New test.
1685 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
1688 * include/pstl/glue_algorithm_defs.h: Replace <functional> with
1690 * include/pstl/utils.h: Replace <iterator> with <type_traits>.
1691 (__pstl::__internal::__except_handler): Use std::__terminate
1692 instead of std::terminate.
1693 * src/c++17/fs_path.cc: Include <array>.
1694 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include
1696 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
1697 * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
1698 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
1699 * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
1700 * testsuite/25_algorithms/includes/constrained.cc: Likewise.
1701 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
1702 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
1703 * testsuite/25_algorithms/is_permutation/constrained.cc: Include
1705 * testsuite/25_algorithms/is_sorted/constexpr.cc: Include
1707 * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
1709 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
1711 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
1713 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
1715 * testsuite/25_algorithms/lower_bound/constexpr.cc: Include
1717 * testsuite/25_algorithms/max/constrained.cc: Likewise.
1718 * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
1719 * testsuite/25_algorithms/min/constrained.cc: Likewise.
1720 * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
1721 * testsuite/25_algorithms/minmax_element/constrained.cc:
1723 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
1724 * testsuite/25_algorithms/move/93872.cc: Likewise.
1725 * testsuite/25_algorithms/move_backward/93872.cc: Include
1727 * testsuite/25_algorithms/nth_element/constexpr.cc: Include
1729 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
1730 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
1732 * testsuite/25_algorithms/search/constexpr.cc: Likewise.
1733 * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
1734 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
1735 * testsuite/25_algorithms/set_difference/constrained.cc:
1737 * testsuite/25_algorithms/set_intersection/constexpr.cc:
1739 * testsuite/25_algorithms/set_intersection/constrained.cc:
1741 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
1743 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
1744 * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
1745 * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
1746 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
1747 * testsuite/25_algorithms/transform/constrained.cc: Likewise.
1748 * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
1749 * testsuite/25_algorithms/unique/constrained.cc: Likewise.
1750 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
1751 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
1752 * testsuite/std/ranges/adaptors/elements.cc: Include <vector>.
1753 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
1754 * testsuite/std/ranges/adaptors/split.cc: Likewise.
1756 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
1759 * include/bits/fs_path.h (path::make_preferred): Use
1760 handwritten loop instead of std::replace.
1762 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
1764 PR middle-end/104966
1765 * include/bits/locale_facets_nonio.tcc
1766 (__moneypunct_cache::_M_cache): Replace try-catch with RAII and
1767 make all string copies before any stores to *this.
1769 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
1771 * testsuite/util/testsuite_character.h: Fix comment.
1773 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
1776 * config/abi/pre/gnu.ver: Make version for std::from_chars
1777 depend on HAVE_USELOCALE macro.
1778 * testsuite/util/testsuite_abi.cc (compare_symbols): Treat
1779 std::from_chars for floating-point types as undesignated if
1780 not found in the baseline symbols file.
1782 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
1784 * include/std/charconv (__cpp_lib_to_chars): Only define when
1785 both from_chars and to_chars are supported for floating-point
1787 (from_chars, to_chars): Adjust preprocessor conditions guarding
1789 * include/std/version (__cpp_lib_to_chars): Adjust condition to
1790 match <charconv> definition.
1791 * src/c++17/floating_from_chars.cc (from_chars_strtod): New
1793 (from_chars): Simplify preprocessor checks and use
1794 from_chars_strtod when appropriate.
1796 2022-03-14 Jonathan Wakely <jwakely@redhat.com>
1799 * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
1800 hold octets that will be left-shifted.
1802 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
1805 * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
1806 before using fast_float.
1808 2022-03-10 Detlef Vollmann <dv@vollmann.ch>
1811 * include/bits/this_thread_sleep.h: Fix order of #endif and
1812 closing brace of namespace.
1814 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
1816 * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
1819 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
1821 * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
1824 2022-03-09 Patrick Palka <ppalka@redhat.com>
1827 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
1828 Be explicit when narrowing the shifted effective_mantissa,
1829 since it may have an integer-class type.
1831 2022-03-08 Jonathan Wakely <jwakely@redhat.com>
1833 * include/bits/uses_allocator_args.h: Remove incorrect copyright
1836 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
1839 * include/bits/c++config (__terminate, __glibcxx_assert_fail):
1840 Replace _GLIBCXX_VISIBILITY on function with visibility pragma.
1841 (__is_constant_evaluated): Add visibility pragma.
1843 2022-03-07 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
1845 * config/locale/vxworks/ctype_members.cc: Remove <iostream>
1848 2022-03-05 Jonathan Wakely <jwakely@redhat.com>
1850 * include/bits/c++config (__glibcxx_assert_fail): Add visibility
1852 (__terminate): Likewise.
1854 2022-03-04 Jonathan Wakely <jwakely@redhat.com>
1856 * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
1857 inside #if condition.
1859 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
1862 * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
1865 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
1867 * testsuite/17_intro/names.cc (func): Undef on AIX.
1869 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
1872 * libsupc++/compare (strong_order): Add missing support for
1873 floating-point types.
1874 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
1877 2022-03-01 Jonathan Wakely <jwakely@redhat.com>
1879 PR middle-end/103984
1880 * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
1881 default member initializer.
1883 2022-02-24 Jonathan Wakely <jwakely@redhat.com>
1886 * include/std/source_location (source_location::current): Use
1887 deduced type of __builtin_source_location().
1889 2022-02-22 Patrick Palka <ppalka@redhat.com>
1891 * include/bits/ranges_base.h (__detail::__is_initializer_list):
1893 (viewable_range): Adjust as per P2415R2.
1894 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
1895 * include/std/ranges (owning_view): Define as per P2415R2.
1896 (enable_borrowed_range<owning_view>): Likewise.
1897 (views::__detail::__can_subrange): Replace with ...
1898 (views::__detail::__can_owning_view): ... this.
1899 (views::_All::_S_noexcept): Sync with operator().
1900 (views::_All::operator()): Use owning_view instead of subrange
1902 * include/std/version (__cpp_lib_ranges): Adjust value.
1903 * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that
1904 views::all uses owning_view instead of subrange.
1906 * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust
1907 now that rvalue non-view non-borrowed ranges are viewable.
1908 * testsuite/std/ranges/adaptors/split.cc (test06): Likewise.
1910 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
1913 * doc/xml/manual/evolution.xml: Document deprecation.
1914 * doc/html/manual/api.html: Regenerate.
1915 * include/bits/stl_bvector.h (insert(const_iterator, const bool&)):
1916 Remove default argument.
1917 (insert(const_iterator)): New overload with deprecated attribute.
1918 * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc:
1921 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
1923 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace
1924 code that call cat->name() on std::error_category objects.
1925 Identify known categories by symbol name and use a hardcoded
1926 name. Print error code values as enumerators where appopriate.
1927 * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected
1928 name of custom category. Check io_errc and future_errc errors.
1930 2022-02-15 Jonathan Wakely <jwakely@redhat.com>
1933 * include/bits/uses_allocator_args.h (make_obj_using_allocator)
1934 (uninitialized_construct_using_allocator): Add constexpr.
1935 * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr.
1936 * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test.
1938 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
1941 * config/locale/gnu/c_locale.h (__convert_from_v): Use inline
1942 namespace for IEEE128 long double mode.
1943 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol
1944 version and export __gnu_cxx_ieee128::__convert_from_v.
1945 * include/bits/locale_facets_nonio.tcc (money_put::__do_put):
1946 Make __ibm128 overload use snprintf directly
1947 * testsuite/util/testsuite_abi.cc: Add new symbol version.
1948 Remove stable IEEE128/LDBL versions.
1950 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
1953 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
1955 * include/std/variant: Check feature test macros instead.
1956 * include/std/version: Likewise.
1958 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
1960 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
1963 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
1965 * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
1966 LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.
1968 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
1970 * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
1973 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
1975 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
1976 Ignore -Walloc-larger-than warning.
1977 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
1979 * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
1980 to avoid linker error for __atomic_is_lock_free.
1982 2022-02-10 Thomas Rodgers <rodgert@appliantology.com>
1984 * include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
1985 __waiter_base::_S_do_spin_v): Change memory order from relaxed
1988 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
1990 * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
1992 (atomic_fetch_xor_explicit): Likewise.
1993 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check
1994 arithmetic and logical operations for atomic_int.
1996 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
1998 * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
1999 when <dirent.h> is not available.
2000 (_GLIBCXX_HAVE_UNLINKAT): Likewise.
2002 2022-02-09 Thomas Rodgers <rodgert@appliantology.com>
2005 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin
2006 loop inside do loop so that threads failing the wait, reload
2009 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
2011 * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first
2012 parameter to _Dir_base&&.
2013 * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove.
2014 * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first
2015 parameter to _Dir_base&&.
2017 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
2019 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
2020 checking for CAS on correct word size.
2022 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
2024 * testsuite/experimental/filesystem/operations/create_directories.cc:
2025 Adjust expected results for Windows.
2027 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
2030 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase):
2031 [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member,
2032 instead of checking for errno values indicating a directory.
2033 * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar
2034 logic to non-throwing overload.
2035 (fs::remove_all(const path&, error_code&)): Add comments.
2036 * src/filesystem/ops-common.h: Likewise.
2038 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
2040 * src/filesystem/dir-common.h (_Dir_base::openat): Change return
2041 type to use portable posix::DIR alias.
2043 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
2045 * include/c_compatibility/stdatomic.h [__clang__]: Use
2046 #include_next <stdatomic.h>.
2048 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
2050 * include/experimental/bits/fs_ops.h (fs::copy_file): Remove
2052 (fs::create_directories): Likewise.
2053 (fs::remove_all): Likewise.
2054 * src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
2055 (fs::create_directories): Likewise.
2056 (fs::remove_all): Likewise.
2058 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
2061 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
2063 * config.h.in: Regenerate.
2064 * configure: Regenerate.
2065 * include/bits/fs_dir.h (recursive_directory_iterator): Declare
2066 remove_all overloads as friends.
2067 (recursive_directory_iterator::__erase): Declare new member
2069 * include/bits/fs_fwd.h (remove, remove_all): Declare.
2070 * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to
2071 constructor. Pass file descriptor argument to base constructor.
2072 (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink)
2073 (_Dir::unlink, _Dir::rmdir): Define new member functions.
2074 (directory_iterator): Pass filename_only argument to _Dir
2076 (recursive_directory_iterator::_Dir_stack): Adjust constructor
2077 parameters to take a _Dir rvalue instead of creating one.
2078 (_Dir_stack::orig): Add data member for storing original path.
2079 (_Dir_stack::report_error): Define new member function.
2080 (__directory_iterator_nofollow): Move here from dir-common.h and
2081 fix value to be a power of two.
2082 (__directory_iterator_filename_only): Define new constant.
2083 (recursive_directory_iterator): Construct _Dir object and move
2084 into _M_dirs stack. Pass skip_permission_denied argument to first
2086 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
2087 (recursive_directory_iterator::__erase): Define new member
2089 * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
2090 (fs::remove_all): Use new recursive_directory_iterator::__erase
2092 * src/filesystem/dir-common.h (_Dir_base): Add int parameter to
2093 constructor and use openat to implement nofollow semantics.
2094 (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat):
2095 Define new member functions.
2096 (__directory_iterator_nofollow): Move to fs_dir.cc.
2097 * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to
2099 (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
2101 (recursive_directory_iterator::_Dir_stack): Adjust constructor
2102 parameters to take a _Dir rvalue instead of creating one.
2103 (recursive_directory_iterator): Check for new nofollow option.
2104 Construct _Dir object and move into _M_dirs stack. Pass
2105 skip_permission_denied argument to first advance call.
2106 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
2107 * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all.
2109 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
2111 * include/bits/allocator.h: Qualify std::allocator_traits in
2112 deprecated warnings.
2113 * libsupc++/exception (uncaught_exception): Add suggestion to
2116 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
2118 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop):
2119 Add [[maybe_unused]] attribute.
2120 * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop):
2123 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
2125 * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
2126 custom comparison function for multiset.
2127 * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
2128 comparison function for set.
2130 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
2132 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
2133 Change member function to data member of function pointer type.
2135 2022-02-02 Martin Sebor <msebor@redhat.com>
2138 * include/std/array (begin): Declare const member function attribute
2140 (end, rbegin, rend, size, max_size, empty, data): Same.
2141 * testsuite/23_containers/array/capacity/empty.cc: Add test cases.
2142 * testsuite/23_containers/array/capacity/max_size.cc: Same.
2143 * testsuite/23_containers/array/capacity/size.cc: Same.
2144 * testsuite/23_containers/array/iterators/begin_end.cc: New test.
2146 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
2148 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
2149 autoconf macro to check whether d_type is present.
2150 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
2153 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
2155 * testsuite/27_io/filesystem/iterators/97731.cc: New test.
2156 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
2157 Check follow_directory_symlink option.
2158 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
2161 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
2163 * src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
2164 Reset state to past-the-end iterator on error.
2165 (fs::recursive_directory_iterator::pop(error_code&)): Likewise.
2166 (fs::recursive_directory_iterator::pop()): Check _M_dirs before
2168 * src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
2169 for the TS implementation.
2170 * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
2171 * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
2173 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
2175 * include/bits/fs_fwd.h (filesystem::perms): Fix comment.
2177 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
2180 * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
2181 for stdio_pure and stdio_posix options.
2182 * configure: Regenerate.
2184 2022-02-01 Thomas Rodgers <rodgert@appliantology.com>
2186 * include/bits/atomic_wait.h: Change memory order from
2187 Acquire/Release with relaxed loads to SeqCst+Release for
2188 accesses to the waiter's count.
2190 2022-01-31 Martin Liska <mliska@suse.cz>
2192 * acinclude.m4: Detect *_ld_is_mold and use it.
2193 * configure: Regenerate.
2195 2022-01-30 Hans-Peter Nilsson <hp@axis.com>
2197 * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
2199 * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
2201 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
2204 * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
2205 Add __builtin_unreachable to loop.
2206 * testsuite/23_containers/deque/100516.cc: New test.
2208 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
2210 * include/bits/ranges_base.h (ranges::advance): Avoid signed
2211 overflow. Do nothing if already equal to desired result.
2212 * testsuite/24_iterators/range_operations/advance_overflow.cc:
2215 2022-01-27 Martin Liska <mliska@suse.cz>
2218 * acinclude.m4: Fix typo.
2219 * configure: Regenerate.
2221 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
2224 * include/bits/istream.tcc (basic_istream::sentry): Add braces
2226 * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
2227 Add pragmas to disable bogus warnings from PR 61596.
2229 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
2232 * src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
2233 * src/filesystem/dir.cc (_GNU_SOURCE): Define.
2234 * src/filesystem/ops.cc (_GNU_SOURCE): Define.
2236 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
2239 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
2241 * config.h.in: Regenerate.
2242 * configure: Regenerate.
2243 * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor
2244 and pass it to base class constructor.
2245 (directory_iterator): Pass nofollow flag to _Dir constructor.
2246 (fs::recursive_directory_iterator::increment): Likewise.
2247 * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for
2248 directory_iterator constructor. Move error check outside loop.
2249 * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to
2250 constructor and when it's set use ::open with O_NOFOLLOW and
2252 * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor
2253 and pass it to base class constructor.
2254 (directory_iterator): Pass nofollow flag to _Dir constructor.
2255 (fs::recursive_directory_iterator::increment): Likewise.
2256 * src/filesystem/ops.cc (remove_all): Use nofollow option for
2257 directory_iterator constructor. Move error check outside loop.
2259 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
2262 * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
2263 mem-initializer for _M_buf.
2264 (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
2266 * testsuite/27_io/spanstream/2.cc: New test.
2268 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
2270 * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS):
2271 Define macro for case where std::from_chars is implemented in
2272 terms of strtod, strtof or strtold.
2273 (buffer_resource, valid_fmt, find_end_of_float, pattern)
2274 (from_chars_impl, make_result, reserve_string): Do not define
2275 unless USE_STRTOD_FOR_FROM_CHARS is defined.
2276 (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and
2277 USE_STRTOD_FOR_FROM_CHARS is defined, instead of
2278 _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it
2281 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
2284 * include/bits/hashtable_policy.h (_Map_base): Add partial
2285 specialization for maps with const key types.
2286 * testsuite/23_containers/unordered_map/104174.cc: New test.
2288 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
2291 * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
2292 Set members to zero without type punning.
2294 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
2296 * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
2298 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
2302 * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal):
2303 Define as type long.
2304 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
2306 * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise.
2307 * include/bits/chrono.h (__cpp_lib_chrono): Likewise.
2308 (__cpp_lib_chrono_udls): Likewise.
2309 * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise.
2310 * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise.
2311 * include/bits/range_access.h (__cpp_lib_nonmember_container_access):
2313 * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
2315 * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise.
2316 (__cpp_lib_sample): Likewise.
2317 * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops):
2319 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
2321 * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
2323 * include/bits/stl_map.h (__cpp_lib_map_try_emplace):
2325 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
2327 * include/bits/unique_ptr.h (__cpp_lib_make_unique):
2329 * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
2331 * include/c_global/cmath (__cpp_lib_hypot): Likewise.
2332 * include/c_global/cstddef (__cpp_lib_byte): Likewise.
2333 * include/std/atomic (__cpp_lib_atomic_is_always_lock_free):
2335 * include/std/complex (__cpp_lib_complex_udls): Likewise.
2336 * include/std/filesystem (__cpp_lib_filesystem): Likewise.
2337 * include/std/functional (__cpp_lib_not_fn): Likewise.
2338 (__cpp_lib_boyer_moore_searcher): Likewise.
2339 * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise.
2340 * include/std/mutex (__cpp_lib_scoped_lock): Likewise.
2341 * include/std/numeric (__cpp_lib_gcd_lcm): Likewise.
2342 (__cpp_lib_gcd, __cpp_lib_lcm): Likewise.
2343 * include/std/tuple (__cpp_lib_apply): Likewise.
2344 (__cpp_lib_make_from_tuple): Likewise.
2345 * include/std/type_traits (__cpp_lib_integral_constant_callable)
2346 (__cpp_lib_bool_constant, __cpp_lib_logical_traits)
2347 (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases)
2348 (__cpp_lib_result_of_sfinae, __cpp_lib_void_t)
2349 (__cpp_lib_is_swappable, __cpp_lib_is_invocable)
2350 (__cpp_lib_has_unique_object_representations)
2351 (__cpp_lib_is_aggregate): Likewise.
2352 * include/std/version: Likewise.
2353 * libsupc++/new (__cpp_lib_launder): Likewise.
2355 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
2357 * include/std/version (__cpp_lib_shared_ptr_arrays): Fix
2358 condition for C++17 definition.
2360 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
2362 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
2364 (_Sp_atomic::_M_ptr): Add default member-initializer.
2365 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
2366 Check constant initialization.
2367 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
2369 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
2371 * src/c++11/cxx11-ios_failure.cc (__constinit): Define as
2372 equivalent attribute for Clang.
2373 * src/c++11/future.cc (__constinit): Likewise.
2374 * src/c++11/system_error.cc (__constinit): Likewise.
2375 * src/c++17/memory_resource.cc (__constinit): Likewise.
2377 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
2379 * scripts/testsuite_flags.in: Only add src/filesystem/.libs and
2380 src/libbacktrace/.libs to LDFLAGS if those directories exist.
2382 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2384 * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
2386 * configure: Regenerate.
2388 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2391 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
2394 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2396 * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
2397 linker search paths.
2398 * src/Makefile.am: Fix src/debug/libbacktrace build.
2399 * src/Makefile.in: Regenerate.
2400 * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
2401 variable. Use symlinks for the source files.
2402 * src/libbacktrace/Makefile.in: Regenerate.
2404 2022-01-19 Matthias Kretz <m.kretz@gsi.de>
2406 * include/experimental/bits/simd.h (__floating_point_flags): Do
2407 not rely on math_errhandling to expand to a constant expression.
2409 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2411 * doc/xml/manual/evolution.xml: Document deprecations.
2412 * doc/xml/manual/status_cxx2017.xml: Update status.
2413 * doc/html/*: Regenerate.
2415 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2417 * include/bits/stl_tempbuf.h (get_temporary_buffer): Change
2418 _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
2420 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2422 * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
2425 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2428 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
2429 Only use __thread_relax if __cpp_lib_atomic_wait is defined.
2431 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2434 * include/bits/basic_string.h (basic_string(nullptr_t)): Only
2436 (operator=(nullptr_t)): Likewise.
2437 * include/bits/cow_string.h: Likewise.
2438 * include/std/string_view (basic_string_view(nullptr_t)):
2440 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust
2441 expected error. Add examples that become ill-formed in C++23.
2442 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
2443 Adjust expected errors.
2444 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
2447 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2450 * include/bits/stl_iterator.h (reverse_iterator): Check
2451 __cpp_lib_concepts instead of __cplusplus.
2453 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2456 * include/bits/stl_pair.h (pair): Adjust constraints on
2457 deprecated constructors accepting literal zero as null pointer
2458 constant. Improve wording of deprecated attribute.
2459 * testsuite/20_util/pair/cons/99957.cc: Check that deprecated
2460 constructors do not cause ambiguities for copyable types.
2462 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2464 * include/bits/stl_function.h (ptr_fun): Fix suggestion for
2465 non-deprecated alternative.
2467 2022-01-18 Tom Honermann <tom@honermann.net>
2469 * acinclude.m4: Define config macros if uchar.h provides
2470 c8rtomb() and mbrtoc8().
2471 * config.h.in: Regenerate.
2472 * configure: Regenerate.
2473 * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define.
2474 * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise.
2475 * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise.
2476 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
2478 * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
2481 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2483 * include/Makefile.am: Install new header.
2484 * include/Makefile.in: Regenerate.
2485 * include/c_compatibility/stdatomic.h: New file.
2486 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test.
2488 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2491 * src/c++17/fast_float/LOCAL_PATCHES: Update.
2492 * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
2493 Define in terms of __BYTE_ORDER__.
2495 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2498 * src/c++17/fast_float/LOCAL_PATCHES: UPDATE.
2499 * src/c++17/fast_float/fast_float.h (round): Use explicit
2500 template argument list for std::min.
2502 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2504 * doc/xml/manual/status_cxx2017.xml: Update C++17 status.
2505 * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for
2507 * doc/html/manual/status.html: Regenerate.
2509 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2511 * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
2513 * configure: Regenerate.
2515 2022-01-17 Patrick Palka <ppalka@redhat.com>
2517 * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
2518 Conditionally define, and use it to conditionally include
2520 (from_chars): Use fast_float for float and double when
2523 2022-01-17 Patrick Palka <ppalka@redhat.com>
2525 * src/c++17/fast_float/LOCAL_PATCHES: Update.
2526 * src/c++17/fast_float/fast_float.h (from_chars_advanced): In
2527 case of over/underflow, return errc::result_out_of_range and don't
2530 2022-01-17 Patrick Palka <ppalka@redhat.com>
2532 * src/c++17/fast_float/LOCAL_PATCHES: Update.
2533 * src/c++17/fast_float/fast_float.h: Apply local modifications.
2535 2022-01-17 Patrick Palka <ppalka@redhat.com>
2537 * src/c++17/fast_float/LOCAL_PATCHES: New file.
2538 * src/c++17/fast_float/MERGE: New file.
2539 * src/c++17/fast_float/README.md: New file, copied from the
2540 fast_float repository.
2541 * src/c++17/fast_float/fast_float.h: New file, an amalgamation
2542 of the fast_float library.
2544 2022-01-17 Patrick Palka <ppalka@redhat.com>
2546 * src/c++17/floating_from_chars.cc: Include <bit>.
2547 (ascii_to_hexit, starts_with_ci): Conditionally define.
2548 (__floating_from_chars_hex): Conditionally define.
2549 (from_chars): Use __floating_from_chars_hex for
2550 chars_format::hex parsing of binary32/64 float/double.
2551 (testsuite/20_util/from_chars/7.cc): New test.
2552 * testsuite/20_util/from_chars/7.cc: New file.
2554 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2556 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
2557 * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
2558 * include/Makefile.am: Add new header.
2559 * include/Makefile.in: Regenerate.
2560 * include/std/stacktrace: New header.
2561 * include/std/version (__cpp_lib_stacktrace): Define.
2562 * Makefile.in: Regenerate.
2563 * config.h.in: Regenerate.
2564 * configure: Regenerate.
2565 * doc/Makefile.in: Regenerate.
2566 * libsupc++/Makefile.in: Regenerate.
2567 * po/Makefile.in: Regenerate.
2568 * python/Makefile.in: Regenerate.
2569 * src/Makefile.am: Regenerate.
2570 * src/Makefile.in: Regenerate.
2571 * src/c++11/Makefile.in: Regenerate.
2572 * src/c++17/Makefile.in: Regenerate.
2573 * src/c++20/Makefile.in: Regenerate.
2574 * src/c++98/Makefile.in: Regenerate.
2575 * src/filesystem/Makefile.in: Regenerate.
2576 * testsuite/Makefile.in: Regenerate.
2577 * src/libbacktrace/Makefile.am: New file.
2578 * src/libbacktrace/Makefile.in: New file.
2579 * src/libbacktrace/backtrace-rename.h: New file.
2580 * src/libbacktrace/backtrace-supported.h.in: New file.
2581 * src/libbacktrace/config.h.in: New file.
2582 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
2584 * testsuite/20_util/stacktrace/entry.cc: New test.
2585 * testsuite/20_util/stacktrace/synopsis.cc: New test.
2586 * testsuite/20_util/stacktrace/version.cc: New test.
2588 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2590 * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
2592 * doc/html/manual/status.html: Regenerate.
2594 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2597 * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
2598 * include/Makefile.in: Regenerate.
2599 * testsuite/17_intro/headers/c++1998/103650.cc: New test.
2601 2022-01-17 Matthias Kretz <m.kretz@gsi.de>
2603 * include/experimental/bits/simd.h (__floating_point_flags): Do
2604 not rely on the presence of the math_errhandling macro.
2606 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2608 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
2609 to qualified-id for dependent type.
2611 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2613 * doc/xml/manual/status_cxx2020.xml: Update.
2614 * doc/html/manual/status.html: Regenerate.
2616 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2617 Thomas Rodgers <trodgers@redhat.com>
2619 * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
2621 (_Sp_atomic): New class template.
2622 (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
2624 * include/bits/shared_ptr_base.h (__shared_count, __weak_count)
2625 (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
2626 * include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
2627 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
2629 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
2631 2022-01-15 Matthias Kretz <m.kretz@gsi.de>
2633 * include/experimental/bits/simd.h: Move feature detection bools
2634 and add __have_avx512bitalg, __have_avx512vbmi2,
2635 __have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
2636 __have_avx512vnni, __have_avx512vpopcntdq.
2637 (__detail::__machine_flags): New function which returns a unique
2638 uint64 depending on relevant -m and -f flags.
2639 (__detail::__odr_helper): New type alias for either an anonymous
2640 type or a type specialized with the __machine_flags number.
2641 (_SimdIntOperators): Change template parameters from _Impl to
2642 _Tp, _Abi because _Impl now has an __odr_helper parameter which
2643 may be _OdrEnforcer from the anonymous namespace, which makes
2644 for a bad base class.
2645 (many): Either add __odr_helper template parameter or mark as
2647 * include/experimental/bits/simd_detail.h: Add defines for
2648 AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
2649 AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
2650 * include/experimental/bits/simd_builtin.h: Add __odr_helper
2651 template parameter or mark as always_inline.
2652 * include/experimental/bits/simd_fixed_size.h: Ditto.
2653 * include/experimental/bits/simd_math.h: Ditto.
2654 * include/experimental/bits/simd_scalar.h: Ditto.
2655 * include/experimental/bits/simd_neon.h: Add __odr_helper
2657 * include/experimental/bits/simd_ppc.h: Ditto.
2658 * include/experimental/bits/simd_x86.h: Ditto.
2660 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
2662 * testsuite/22_locale/numpunct/members/char/3.cc:
2663 Require pt_PT locale instead of nl_NL.
2664 (test02): Use pt_PT locale instead of nl_NL.
2666 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
2671 * include/backward/binders.h (bind1st, bind2nd): Add deprecated
2673 * include/bits/refwrap.h (_Maybe_unary_or_binary_function):
2674 Disable deprecated warnings for base classes.
2675 (_Reference_wrapper_base): Likewise.
2676 * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
2677 * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
2678 * include/bits/stl_function.h (unary_function, binary_function):
2679 Add deprecated attribute.
2680 (unary_negate, not1, binary_negate, not2, ptr_fun)
2681 (pointer_to_unary_function, pointer_to_binary_function)
2682 (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
2683 (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
2684 (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
2686 * include/bits/stl_iterator.h: Disable deprecated warnings for
2687 std::iterator base classes.
2688 * include/bits/stl_iterator_base_types.h (iterator): Add
2689 deprecated attribute.
2690 * include/bits/stl_map.h (map::value_compare): Disable
2691 deprecated warnings for base class.
2692 * include/bits/stl_multimap.h (multimap::value_compare):
2694 * include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
2695 Add deprecated attribute.
2696 * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
2697 * include/bits/stream_iterator.h: Disable deprecated warnings.
2698 * include/bits/streambuf_iterator.h: Likewise.
2699 * include/ext/bitmap_allocator.h: Remove unary_function base
2701 * include/ext/functional: Disable deprecated warnings.
2702 * include/ext/rope: Likewise.
2703 * include/ext/throw_allocator.h: Likewise.
2704 * include/std/type_traits (result_of): Add deprecated attribute.
2705 * include/tr1/functional: Disable deprecated warnings.
2706 * include/tr1/functional_hash.h: Likewise.
2707 * testsuite/20_util/function_objects/binders/1.cc: Add
2708 -Wno-disable-deprecations.
2709 * testsuite/20_util/function_objects/binders/3113.cc: Likewise.
2710 * testsuite/20_util/function_objects/constexpr.cc: Add
2712 * testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
2713 * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
2714 * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
2716 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
2718 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
2720 * testsuite/20_util/reference_wrapper/24803.cc:
2722 * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
2723 C++20 and check for absence of nested types.
2724 * testsuite/20_util/shared_ptr/comparison/less.cc: Remove
2725 std::binary_function base class.
2726 * testsuite/20_util/temporary_buffer.cc: Add dg-warning.
2727 * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
2728 std::iterator base class.
2729 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
2731 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
2733 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
2735 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
2737 * testsuite/24_iterators/istreambuf_iterator/92285.cc:
2739 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
2741 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
2743 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
2745 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
2747 * testsuite/25_algorithms/copy/34595.cc:
2749 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
2751 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
2752 Disable deprecated warnings.
2753 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
2755 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
2757 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
2759 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
2761 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
2763 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
2765 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
2767 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
2769 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
2771 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
2773 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
2775 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
2777 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
2779 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
2781 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
2783 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
2785 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
2787 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
2789 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
2791 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
2793 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
2795 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
2797 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
2799 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
2801 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
2803 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
2805 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
2807 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
2809 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
2811 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2813 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2815 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
2817 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
2819 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
2821 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
2823 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
2825 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
2827 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
2829 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
2831 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
2833 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
2835 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
2837 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
2839 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
2841 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
2843 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
2845 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
2847 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
2849 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
2851 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
2853 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
2854 Disable deprecated warnings.
2855 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
2857 * testsuite/util/regression/trait/erase_if_fn.hpp: Remove
2858 std::unary_function base classes.
2859 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
2860 Remove std::iterator base classes.
2862 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
2864 * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
2865 Correct type of macro value.
2866 (shared_ptr): Add additional friend declarations.
2867 (make_shared, allocate_shared): Constrain existing overloads and
2868 remove static_assert.
2869 * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
2871 (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
2872 specialization for use with make_shared_for_overwrite.
2873 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
2874 (_Sp_counted_array_base): New class template.
2875 (_Sp_counted_array): New class template.
2876 (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
2877 New constructor for allocating shared arrays.
2878 (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
2879 * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
2881 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
2882 (__cpp_lib_smart_ptr_for_overwrite): New macro.
2883 * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
2885 * testsuite/20_util/shared_ptr/creation/array.cc: New test.
2886 * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
2887 * testsuite/20_util/shared_ptr/creation/version.cc: New test.
2888 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
2889 feature test macro. Test non-trivial default-initialization.
2891 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
2893 * include/bits/stl_construct.h (_Construct, _Construct_novalue):
2894 Also cast away cv-qualifiers when converting pointer to void.
2895 * testsuite/20_util/allocator/void.cc: Test construct function
2896 with cv-qualified types.
2898 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
2901 * include/bits/stl_iterator.h (common_iterator): Use
2902 std::construct_at instead of placement new.
2903 * testsuite/24_iterators/common_iterator/1.cc: Check copy
2904 construction is usable in constant expressions.
2906 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
2908 * doc/xml/manual/status_cxx2011.xml: Document new tokens
2909 accepted by std::random_device constructor.
2910 * doc/html/manual/status.html: Regenerate.
2912 2022-01-12 Patrick Palka <ppalka@redhat.com>
2914 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
2917 2022-01-12 Patrick Palka <ppalka@redhat.com>
2920 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
2921 Track the excess precision separately from the effective
2922 precision. Avoid overflow in bounds check by splitting it into
2924 (__floating_to_chars_precision): Avoid overflow in bounds checks
2926 * testsuite/20_util/to_chars/103955.cc: New test.
2928 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2931 * include/Makefile.am: Install <source_location> for
2933 * include/Makefile.in: Regenerate.
2934 * include/std/version (__cpp_lib_source_location): Define for
2937 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2939 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
2940 Add neoxcept (LWG 3593).
2942 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2944 * include/std/ranges (ranges::__detail::__box): Add constexpr to
2945 assignment operators (LWG 3572).
2946 * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
2947 view that uses copyable-box.
2949 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2952 * include/Makefile.am: Install <coroutine> for freestanding.
2953 * include/Makefile.in: Regenerate.
2954 * include/std/coroutine: Adjust headers and preprocessor
2956 (__coroutine_traits_impl): Use concepts when available.
2957 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
2959 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2961 * include/std/ostream (operator<<(basic_ostream&, charT)):
2962 Use unformatted input if no padding is needed.
2963 (operator<<(basic_ostream<char>&, char)): Likewise.
2965 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2968 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
2970 * include/std/variant (__cpp_lib_variant): Only define C++20
2971 value when the compiler is known to support conditionally
2972 trivial destructors.
2973 * include/std/version (__cpp_lib_variant): Likewise.
2975 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2977 * include/bits/stl_iterator.h (common_iterator): Add constexpr
2978 to all member functions (LWG 3574).
2979 * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
2980 tests as constant expressions.
2981 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
2983 2022-01-10 Jakub Jelinek <jakub@redhat.com>
2986 * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
2987 (time_get::_M_extract_via_format): Declare new method with
2988 __time_get_state& as an extra argument.
2989 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
2990 __state argument, set various fields in it while parsing. Handle %j,
2991 %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
2992 for %p immediately. Add a wrapper around the method without the
2993 __state argument for backwards compatibility.
2994 (_M_extract_num): Remove all __len == 4 special cases.
2995 (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
2996 initialize __state, pass it to _M_extract_via_format and finalize it
2998 (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
2999 69-99 to 1969-1999. For 3-4 digit parsed years use that as year.
3000 (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
3001 version, don't call do_get but call _M_extract_via_format instead to
3003 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
3004 with extra __time_get_state and __time_get_state::_M_finalize_state.
3005 * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
3006 day_of_the_year): New functions in anon namespace.
3007 (mon_yday): New var in anon namespace.
3008 (__time_get_state::_M_finalize_state): Define.
3009 * testsuite/22_locale/time_get/get/char/4.cc: New test.
3010 * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
3011 * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
3012 as year 197AD instead of error.
3013 * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
3014 year 2001 instead of error.
3015 * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
3016 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
3017 197 as year 197AD instead of error.
3018 * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
3019 1 as year 2001 instead of error.
3020 * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
3022 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
3025 * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
3026 nothing for freestanding builds.
3027 (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
3028 * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
3029 with --without-headers. Do not use GCC_HEADER_STDINT for
3030 freestanding builds.
3031 * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
3032 for freestanding builds.
3033 * configure: Regenerate.
3034 * Makefile.in: Regenerate.
3035 * doc/Makefile.in: Regenerate.
3036 * include/Makefile.in: Regenerate.
3037 * libsupc++/Makefile.in: Regenerate.
3038 * po/Makefile.in: Regenerate.
3039 * python/Makefile.in: Regenerate.
3040 * src/Makefile.in: Regenerate.
3041 * src/c++11/Makefile.in: Regenerate.
3042 * src/c++17/Makefile.in: Regenerate.
3043 * src/c++20/Makefile.in: Regenerate.
3044 * src/c++98/Makefile.in: Regenerate.
3045 * src/filesystem/Makefile.in: Regenerate.
3046 * testsuite/Makefile.in: Regenerate.
3048 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
3050 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
3051 Add dg-timeout-factor directive.
3052 * testsuite/28_regex/basic_regex/84110.cc: Likewise.
3053 * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
3054 * testsuite/28_regex/match_results/102667.cc: Likewise.
3056 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
3058 * doc/xml/manual/using.xml: Update documentation around default
3060 * doc/html/*: Regenerate.
3062 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
3065 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
3066 * src/c++17/Makefile.in: Regenerate.
3068 2022-01-09 Sandra Loosemore <sandra@codesourcery.com>
3070 * testsuite/18_support/type_info/constexpr.cc: Add explicit
3071 -fdelete-null-pointer-checks option.
3073 2022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
3074 Jonathan Wakely <jwakely@redhat.com>
3077 * include/bits/forward_list.tcc (forward_list::merge): Check for
3079 * testsuite/23_containers/forward_list/operations/merge.cc: New test.
3081 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
3083 * include/bits/regex.h (basic_regex, match_results): Qualify
3084 name in friend declaration, to work around Clang bug.
3086 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
3088 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
3090 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
3093 * include/std/charconv (__from_chars_alpha_to_num): Return
3094 char instead of unsigned char. Change invalid return value to
3095 127 instead of using numeric trait.
3096 (__from_chars_alnum): Fix comment. Do not use std::isdigit.
3097 Change type of variable to char.
3099 2022-01-05 François Dumont <fdumont@gcc.gnu.org>
3102 * include/bits/hashtable_policy.h
3103 (_Hashtable_hash_traits<_Hash>): New.
3104 (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
3105 (_Hashtable_base<>::_M_key_equals): New.
3106 (_Hashtable_base<>::_M_equals): Use latter.
3107 (_Hashtable_base<>::_M_key_equals_tr): New.
3108 (_Hashtable_base<>::_M_equals_tr): Use latter.
3109 * include/bits/hashtable.h
3110 (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
3111 (_Hashtable<>::find): Loop through elements to look for key if size is lower
3112 than __small_size_threshold().
3113 (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
3114 (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
3115 (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
3116 (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
3117 (_Hashtable<>::_M_find_before_node(const key_type&)): New.
3118 (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
3119 (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
3120 * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
3121 * testsuite/util/testsuite_performance.h
3122 (report_performance): Use 9 width to display memory.
3123 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
3124 New performance test case.
3126 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3129 * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
3130 Relax constraints on string_view parameter.
3131 * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
3133 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
3135 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3137 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
3139 * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
3140 * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
3141 * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
3143 (type_info::__equal): Define alias symbol.
3144 * libsupc++/typeinfo (type_info::before): Combine different
3145 implementations into one.
3146 (type_info::operator==): Likewise. Use address equality for
3147 constant evaluation. Call __equal for targets that require the
3148 definition to be non-inline.
3149 * testsuite/18_support/type_info/constexpr.cc: New test.
3151 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3153 * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
3154 class and virtual functions as 'final'.
3155 (io_category_instance): Use constinit union to make the object
3157 * src/c++11/future.cc (future_error_category): Define class and
3158 virtual functions as 'final'.
3159 (future_category_instance): Use constinit union.
3161 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3163 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
3164 versioned namespace from the type name that is printed.
3166 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3168 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
3169 printer for std::regex NFA states.
3171 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3173 * testsuite/23_containers/forward_list/operations/1.cc: Fill in
3174 placeholders in comments.
3175 * testsuite/23_containers/forward_list/operations/2.cc:
3177 * testsuite/23_containers/forward_list/operations/3.cc:
3179 * testsuite/23_containers/forward_list/operations/4.cc:
3181 * testsuite/23_containers/forward_list/operations/5.cc:
3183 * testsuite/23_containers/forward_list/operations/6.cc:
3185 * testsuite/23_containers/forward_list/operations/7.cc:
3188 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3191 * include/bits/stl_deque.h (operator-): Do not use 0 as null
3194 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3196 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
3197 Use std::_Construct for construct.
3199 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3202 * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
3203 * doc/html/faq.html: Regenerate.
3205 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3207 * include/bits/regex.h (__regex_algo_impl): Change __policy and
3208 __match_mode template parameters to be function parameters.
3209 (regex_match, regex_search): Pass policy and match mode as
3211 * include/bits/regex.tcc (__regex_algo_impl): Change template
3212 parameters to function parameters.
3213 * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
3214 'if constexpr' for conditions using template parameters.
3215 (_RegexTranslator): Likewise.
3216 * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
3218 * testsuite/util/testsuite_regex.h (regex_match_debug)
3219 (regex_search_debug): Move template arguments to function
3222 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3224 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
3225 results even if the match failed.
3227 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3229 * include/bits/regex_compiler.tcc: Adjust all calls to
3230 __throw_regex_error.
3231 * include/bits/regex_error.h (__throw_regex_error): Add noreturn
3233 * include/bits/regex_scanner.tcc: Likewise.
3234 * src/c++11/regex.cc (desc): New helper function.
3235 (regex_error::regex_error(error_type)): Use desc to get a string
3236 corresponding to the error code.
3239 Copyright (C) 2022 Free Software Foundation, Inc.
3241 Copying and distribution of this file, with or without modification,
3242 are permitted in any medium without royalty provided the copyright
3243 notice and this notice are preserved.