1 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
3 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
4 rmdir to remove directories.
5 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
8 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
10 * testsuite/26_numerics/random/random_device/entropy.cc: Use
11 numeric_limits<unsigned>::digits.
13 2022-06-22 Alexandre Oliva <oliva@adacore.com>
15 * libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS]
16 (__eh_globals_init::~__eh_globals_init): Clear _S_init first.
18 2022-06-22 Alexandre Oliva <oliva@adacore.com>
20 * testsuite/30_threads/this_thread/60421.cc (test02): Call
23 2022-06-22 Alexandre Oliva <oliva@adacore.com>
25 * testsuite/20_util/to_chars/long_double.cc: Require cmath.
27 2022-06-22 Alexandre Oliva <oliva@adacore.com>
29 * testsuite/23_containers/bitset/cons/dr1325-2.cc: Work around
31 * testsuite/23_containers/bitset/ext/15361.cc: Likewise.
32 * testsuite/23_containers/bitset/input/1.cc: Likewise.
33 * testsuite/23_containers/bitset/to_string/1.cc: Likewise.
34 * testsuite/23_containers/bitset/to_string/dr396.cc: Likewise.
36 2022-06-17 Jonathan Wakely <jwakely@redhat.com>
38 * testsuite/21_strings/basic_string/cons/char/105995.cc: Add
41 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
44 * include/bits/basic_string.h (_M_use_local_data): Initialize
45 the entire SSO buffer.
46 * testsuite/21_strings/basic_string/cons/char/105995.cc: New test.
48 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
51 * include/ext/vstring.h (operator==): Always check lengths
54 2022-06-15 François Dumont <fdumont@gcc.gnu.org>
57 * include/bits/hashtable_policy.h (_ConvertToValueType): New.
58 * include/bits/hashtable.h (_Hashtable<>::_M_insert_unique_aux): New.
59 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, true_type)): Use latters.
60 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, false_type)): Likewise.
61 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
62 const allocator_type&, true_type)): Use this.insert range.
63 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&,
64 const allocator_type&, false_type)): Use _M_insert.
65 * testsuite/23_containers/unordered_map/cons/56112.cc: Check how many times conversion
67 * testsuite/23_containers/unordered_map/insert/105717.cc: New test.
68 * testsuite/23_containers/unordered_set/insert/105717.cc: New test.
70 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
73 * include/bits/basic_string.h (operator==): Always compare
74 lengths before checking string contents.
75 [!__cpp_lib_three_way_comparison] (operator==, operator!=):
78 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
81 * include/bits/basic_string.h (compare): Define inline.
82 * include/bits/basic_string.tcc (compare): Remove out-of-line
84 * include/bits/cow_string.h (compare): Define inline.
85 * testsuite/21_strings/basic_string/operations/compare/char/3.cc:
88 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
90 * include/bits/new_allocator.h: Fix indentation.
91 * include/ext/malloc_allocator.h: Likewise.
93 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
96 * include/bits/allocator.h (allocator::allocate): Check for
97 overflow in constexpr allocation.
98 * testsuite/20_util/allocator/105975.cc: New test.
100 2022-06-13 Mark Mentovai <mark@mentovai.com>
102 * include/experimental/bits/fs_path.h (__detail::__null_terminated):
103 Rename to __nul_terminated to avoid colliding with a macro in
106 2022-06-13 Jonathan Wakely <jwakely@redhat.com>
108 * include/std/atomic (__atomic_val_t): Use __type_identity_t
109 instead of atomic<T>::value_type, as per LWG 3220.
110 * testsuite/29_atomics/atomic/lwg3220.cc: New test.
112 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
115 * include/experimental/numeric (experimental::gcd): Simplify
116 assertions. Use __abs_r instead of __absu.
117 (experimental::lcm): Likewise. Remove use of __detail::__lcm so
118 overflow can be detected.
119 * include/std/numeric (__detail::__absu): Rename to __abs_r and
120 change to allow signed result type, so overflow can be detected.
121 (__detail::__lcm): Remove.
122 (gcd): Simplify assertions. Use __abs_r instead of __absu.
123 (lcm): Likewise. Remove use of __detail::__lcm so overflow can
125 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
126 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
127 * testsuite/26_numerics/gcd/105844.cc: New test.
128 * testsuite/26_numerics/lcm/105844.cc: New test.
130 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
133 * libsupc++/eh_globals.cc (eh_globals): Ensure constant init and
134 prevent destruction during termination.
135 (__eh_globals_init::_M_init): Replace with static member _S_init.
136 (__cxxabiv1::__cxa_get_globals_fast): Update.
137 (__cxxabiv1::__cxa_get_globals): Likewise.
139 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
141 * include/bits/basic_string.h (__hash_str_base): New class
143 (hash<basic_string<C, char_traits<C>, A>>): Define partial
144 specialization for each of the standard character types.
145 (hash<string>, hash<wstring>, hash<u8string>, hash<u16string>)
146 (hash<u32string>): Remove explicit specializations.
147 * include/std/string (__hash_string_base): Remove class
149 (hash<pmr::string>, hash<pmr::wstring>, hash<pmr::u8string>)
150 (hash<pmr::u16string>, hash<pmr::u32string>): Remove explicit
152 * testsuite/21_strings/basic_string/hash/hash.cc: Test with
154 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc:
157 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
160 * include/std/sstream (basic_stringbuf::_M_high_mark): Add
161 always_inline attribute.
163 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
166 * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
167 Limit ga_sizes array to values that fit in size_t.
168 * include/ext/random [__SIZE_WIDTH < 32] (sfmt86243)
169 (sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091)
170 (sfmt216091_64): Do not declare.
172 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
174 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make
175 lookup for ios_errc and future_errc check versioned namespace.
176 (StdAtomicPrinter): Strip versioned namespace from typename.
178 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
180 * src/c++11/Makefile.am: Add new source file.
181 * src/c++11/Makefile.in: Regenerate.
182 * src/c++11/cxx11-ios_failure.cc (iostream_category):
184 * src/c++11/ios_errcat.cc: New file.
185 * testsuite/27_io/ios_base/failure/error_code.cc: Check that
186 std::iostream_category() is defined and used for std::io_errc.
188 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
190 * include/bits/stl_iterator.h (counted_iterator::operator++(int)):
191 Add 'constexpr' as per LWG 3643.
192 * testsuite/24_iterators/counted_iterator/lwg3643.cc: New test.
194 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
196 * include/bits/functional_hash.h (__is_fast_hash): Add doxygen
198 * include/bits/hashtable.h: Do not include <bits/stl_function.h>
200 * include/bits/hashtable_policy.h: Include <bits/stl_pair.h> and
201 <bits/functional_hash.h>.
202 * include/bits/unordered_map.h: Include required headers.
203 * include/bits/unordered_set.h: Likewise.
204 * include/std/unordered_map: Do not include headers for indirect
206 * include/std/unordered_set: Likewise.
208 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
210 * include/bits/ranges_algobase.h: Do not include
211 <bits/stl_iterator_base_types.h>.
212 * include/std/string: Likewise.
213 * include/std/variant: Likewise.
215 2022-05-26 Nathan Sidwell <nathan@acm.org>
217 * include/bits/hashtable.h: Include required headers.
218 * include/bits/hashtable_policy.h: Likewise.
219 * include/bits/stl_heap.h: Likewise.
220 * include/bits/stl_iterator_base_funcs.h: Likewise.
222 2022-05-26 François Dumont <fdumont@gcc.gnu.org>
224 * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__):
225 Strip typename from version namespace.
227 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
229 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip
230 versioned namespace from the template argument too.
232 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
234 * testsuite/21_strings/basic_string/modifiers/pop_back/char/1.cc:
236 * testsuite/21_strings/basic_string/modifiers/pop_back/char.cc:
238 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/1.cc:
240 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t.cc:
242 * testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc:
244 * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc:
246 * testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc:
248 * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc:
250 * testsuite/21_strings/basic_string/operations/contains/char/1.cc:
252 * testsuite/21_strings/basic_string/operations/contains/char.cc:
254 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc:
256 * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc:
258 * testsuite/21_strings/basic_string/operations/data/char/1.cc:
260 * testsuite/21_strings/basic_string/operations/data/char.cc:
262 * testsuite/21_strings/basic_string/operations/data/wchar_t/1.cc:
264 * testsuite/21_strings/basic_string/operations/data/wchar_t.cc:
266 * testsuite/21_strings/basic_string/operations/ends_with/char/1.cc:
268 * testsuite/21_strings/basic_string/operations/ends_with/char.cc:
270 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t/1.cc:
272 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc:
274 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc:
276 * testsuite/21_strings/basic_string/operations/starts_with/char.cc:
278 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc:
280 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc:
282 * testsuite/21_strings/basic_string/operations/substr/char/1.cc:
284 * testsuite/21_strings/basic_string/operations/substr/char.cc:
286 * testsuite/21_strings/basic_string/operations/substr/wchar_t/1.cc:
288 * testsuite/21_strings/basic_string/operations/substr/wchar_t.cc:
290 * testsuite/21_strings/basic_string/range_access/char/1.cc:
292 * testsuite/21_strings/basic_string/range_access/char.cc:
294 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc:
296 * testsuite/21_strings/basic_string/range_access/wchar_t.cc:
298 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc:
300 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char.cc:
302 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc:
304 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t.cc:
306 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc:
308 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char.cc:
310 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc:
312 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t.cc:
314 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc:
316 * testsuite/21_strings/basic_string_view/modifiers/swap/char.cc:
318 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc:
320 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t.cc:
322 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc:
324 * testsuite/21_strings/basic_string_view/operations/contains/char.cc:
326 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc:
328 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc:
330 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc:
332 * testsuite/21_strings/basic_string_view/operations/data/char.cc:
334 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc:
336 * testsuite/21_strings/basic_string_view/operations/data/wchar_t.cc:
338 * testsuite/21_strings/basic_string_view/operations/ends_with/char/1.cc:
340 * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc:
342 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t/1.cc:
344 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc:
346 * testsuite/21_strings/basic_string_view/operations/starts_with/char/1.cc:
348 * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc:
350 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t/1.cc:
352 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc:
354 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc:
356 * testsuite/21_strings/basic_string_view/operations/substr/char.cc:
358 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc:
360 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc:
362 * testsuite/21_strings/basic_string_view/range_access/char/1.cc:
364 * testsuite/21_strings/basic_string_view/range_access/char.cc:
366 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc:
368 * testsuite/21_strings/basic_string_view/range_access/wchar_t.cc:
370 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc:
372 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char.cc:
374 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc:
376 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t.cc:
378 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc:
380 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t.cc:
382 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc:
384 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t.cc:
386 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/1.cc:
388 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc:
390 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc:
392 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t.cc:
394 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc:
396 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char.cc:
398 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc:
400 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t.cc:
402 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc:
404 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t.cc:
406 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc:
408 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t.cc:
410 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc:
412 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/int.cc:
414 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc:
416 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t.cc:
418 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char/1.cc:
420 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char.cc:
422 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t/1.cc:
424 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t.cc:
426 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t/1.cc:
428 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t.cc:
430 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t/1.cc:
432 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t.cc:
434 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short/1.cc:
436 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short.cc:
438 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t/1.cc:
440 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t.cc:
443 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
445 * testsuite/20_util/duration/requirements/explicit_instantiation/explicit_instantiation.cc:
447 * testsuite/20_util/duration/requirements/explicit_instantiation.cc: ...here.
448 * testsuite/20_util/time_point/requirements/explicit_instantiation/explicit_instantiation.cc:
450 * testsuite/20_util/time_point/requirements/explicit_instantiation.cc: ...here.
451 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation/explicit_instantiation.cc:
453 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation.cc: ...here.
455 2022-05-25 Jason Merrill <jason@redhat.com>
457 * testsuite/20_util/function_objects/constexpr_searcher.cc: Add
460 2022-05-20 Jonathan Wakely <jwakely@redhat.com>
462 * testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc:
463 Run fewer iterations for simulator targets.
464 * testsuite/26_numerics/random/binomial_distribution/operators/values.cc:
466 * testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
468 * testsuite/26_numerics/random/geometric_distribution/operators/values.cc:
470 * testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc:
472 * testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
474 * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc:
477 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
479 * include/bits/char_traits.h: Only include <cstdint> when
481 * include/std/stacktrace: Use __UINTPTR_TYPE__ instead of
483 * src/c++11/cow-stdexcept.cc: Include <stdint.h>.
484 * src/c++17/floating_to_chars.cc: Likewise.
485 * testsuite/20_util/assume_aligned/1.cc: Include <cstdint>.
486 * testsuite/20_util/assume_aligned/3.cc: Likewise.
487 * testsuite/20_util/shared_ptr/creation/array.cc: Likewise.
489 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
491 * include/bits/basic_string.h: Do not include <ext/atomicity.h>
493 * include/bits/cow_string.h: Include it here.
495 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
497 * include/Makefile.am: Add new header.
498 * include/Makefile.in: Regenerate.
499 * include/bits/memory_resource.h: New file.
500 * include/std/deque: Include <bits/memory_resource.h>.
501 * include/std/forward_list: Likewise.
502 * include/std/list: Likewise.
503 * include/std/map: Likewise.
504 * include/std/memory_resource (pmr::memory_resource): Move to
505 new <bits/memory_resource.h> header.
506 (pmr::polymorphic_allocator): Likewise.
507 * include/std/regex: Likewise.
508 * include/std/set: Likewise.
509 * include/std/stacktrace: Likewise.
510 * include/std/string: Likewise.
511 * include/std/unordered_map: Likewise.
512 * include/std/unordered_set: Likewise.
513 * include/std/vector: Likewise.
514 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc:
515 Remove <memory_resource> header and check construction.
516 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise.
517 * testsuite/23_containers/forward_list/pmr_typedefs.cc:
519 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise.
520 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise.
521 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise.
522 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise.
523 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise.
524 * testsuite/23_containers/unordered_map/pmr_typedefs.cc:
526 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc:
528 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc:
530 * testsuite/23_containers/unordered_set/pmr_typedefs.cc:
532 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise.
533 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise.
535 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
537 * include/std/memory_resource (polymorphic_allocator): Add
538 non-template equality operator, as proposed for LWG 3683.
539 * testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test.
541 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
543 * src/c++17/memory_resource.cc (set_default_resource): Use
544 memory_order_acq_rel.
545 (get_default_resource): Use memory_order_acquire.
547 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
549 * include/std/memory_resource (new_delete_resource): Add
550 nodiscard, returns_nonnull and const attributes.
551 (null_memory_resource): Likewise.
552 (set_default_resource, get_default_resource): Add returns_nonnull
554 (memory_resource::is_equal): Add nodiscard attribute.
555 (operator==, operator!=): Likewise.
557 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
559 * include/bits/ios_base.h (io_category): Add const and nodiscard
561 (make_error_code, make_error_condition): Add nodiscard.
562 * include/std/future (future_category): Add const and nodiscard.
563 (make_error_code, make_error_condition): Add nodiscard.
564 * include/std/system_error (generic_category system_category):
565 Add nodiscard. Replace _GLIBCXX_CONST with C++11 attribute.
566 (error_code::value, error_code::category, error_code::operator bool)
567 (error_condition::value, error_condition::category)
568 (error_condition::operator bool, make_error_code)
569 (make_error_condition, operator==, operator!=, operator<=>): Add
572 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
574 * testsuite/20_util/expected/synopsis.cc: Skip for versioned
576 * testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise.
578 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
580 * src/Makefile.am [ENABLE_SYMVERS_GNU_NAMESPACE] (cxx11_sources):
581 Do not build the compatibility*-c++0x.cc objects.
582 * src/Makefile.in: Regenerate.
583 * src/c++11/compatibility-c++0x.cc [_GLIBCXX_INLINE_VERSION]:
584 Refuse to build for the versioned namespace.
585 * src/c++11/compatibility-chrono.cc: Likewise.
586 * src/c++11/compatibility-condvar.cc: Likewise.
587 * src/c++11/compatibility-thread-c++0x.cc: Likewise.
588 * src/c++11/chrono.cc (system_clock, steady_clock):
589 Use macros to define in inline namespace _V2, matching the
590 declarations in <system_error>.
591 * src/c++11/system_error.cc (system_category, generic_category):
594 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
596 * doc/xml/manual/prerequisites.xml: Fix attributes for external
598 * doc/html/manual/setup.html: Regenerate.
600 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
602 * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support.
603 * doc/html/*: Regenerate.
605 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
607 * doc/xml/manual/intro.xml: Include new chapter.
608 * doc/xml/manual/status_cxx2020.xml: Tweak release numbers.
609 * doc/xml/manual/status_cxx2023.xml: New file.
610 * doc/html/*: Regenerate.
612 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
614 * doc/html/manual/status.html: Regenerate.
615 * doc/xml/manual/status_cxx2020.xml: Fix supported version for
616 C++20 bit operations.
618 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
620 * include/bits/std_thread.h (thread::_State, thread::_State_ptr):
621 Declare as private unless _GLIBCXX_THREAD_IMPL is defined.
622 * src/c++11/thread.cc (_GLIBCXX_THREAD_IMPL): Define.
624 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
626 * include/std/future (launch): Make operators noexcept.
628 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
630 * doc/doxygen/user.cfg.in (PREDEFINED): Replace __exception_ptr
631 with "__unspecified__".
632 * libsupc++/exception_ptr.h: Improve doxygen docs.
633 (__exception_ptr::swap): Also declare in namespace std.
635 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
637 * libsupc++/nested_exception.h (throw_with_nested) [C++17]: Use
638 if-constexpr instead of tag dispatching.
639 (rethrow_if_nested) [C++17]: Likewise.
640 (rethrow_if_nested) [!__cpp_rtti]: Do not use dynamic_cast if it
642 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc:
645 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
647 * doc/doxygen/user.cfg.in (PREDEFINED): Define
648 _GTHREAD_USE_MUTEX_TIMEDLOCK macro.
649 * include/bits/std_mutex.h (mutex, lock_guard): Use @since and
651 * include/bits/unique_lock.h (unique_lock): Likewise.
652 * include/std/mutex (recursive_mutex, timed_mutex)
653 (recursive_timed_mutex, scoped_lock): Likewise.
655 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
657 * doc/doxygen/user.cfg.in (PREDEFINED): Define
658 _GLIBCXX23_CONSTEXPR macro.
659 * include/backward/auto_ptr.h (auto_ptr): Use @deprecated.
660 * include/bits/unique_ptr.h (default_delete): Use @since and
662 * include/std/scoped_allocator: Remove @ingroup from @file
665 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
667 * include/bits/std_thread.h (thread, thread::id): Improve
669 * include/std/future: Likewise.
670 * include/std/thread (jthread): Likewise.
672 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
674 * include/bits/ostream_insert.h: Mark helper functions as
675 undocumented by Doxygen.
676 * include/bits/stl_algo.h: Use markdown for formatting and mark
677 helper functions as undocumented.
678 * include/bits/stl_numeric.h: Likewise.
679 * include/bits/stl_pair.h (pair): Add @headerfile.
681 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
683 * doc/doxygen/user.cfg.in (PREDEFINED): Define __allocator_base
684 so that Doxygen shows the right base-class for std::allocator.
685 * include/bits/alloc_traits.h: Improve doxygen docs.
686 * include/bits/allocator.h: Likewise.
687 * include/bits/new_allocator.h: Likewise.
688 * include/ext/new_allocator.h: Likewise.
690 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
692 * doc/doxygen/user.cfg.in (PREDEFINED): Define macro
693 _GLIBCXX_DOXYGEN_ONLY to expand its argument.
694 * include/bits/c++config (_GLIBCXX_DOXYGEN_ONLY): Define.
695 * include/bits/regex.h: Improve doxygen docs.
696 * include/bits/regex_constants.h: Likewise.
697 * include/bits/regex_error.h: Likewise.
699 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
701 * include/std/atomic: Suppress doxygen docs for
702 implementation details.
703 * include/bits/atomic_base.h: Likewise.
704 * include/bits/shared_ptr_atomic.h: Use markdown. Fix grouping
705 so that std::atomic is not added to the pointer abstractions
708 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
710 * include/std/system_error: Improve doxygen comments.
712 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
714 * include/bits/ptr_traits.h: Add some doxygen comments.
716 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
718 * doc/doxygen/user.cfg.in (PREDEFINED): Expand new macros to
720 * include/bits/c++config (_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE)
721 (_GLIBCXX_END_INLINE_ABI_NAMESPACE): Define new macros.
722 * include/bits/algorithmfwd.h (_V2::__rotate): Use new macros
724 * include/bits/chrono.h (chrono::_V2::system_clock): Likewise.
725 * include/bits/stl_algo.h (_V2::__rotate): Likewise.
726 * include/std/condition_variable (_V2::condition_variable_any):
728 * include/std/system_error (_V2::error_category): Likewise.
730 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
732 * include/bits/mofunc_impl.h: Fix doxygen command.
734 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
736 * doc/doxygen/user.cfg.in (GROUP_NESTED_COMPOUNDS): Set to NO.
737 (CLASS_DIAGRAMS): Remove obsolete option.
739 2022-05-12 Jonathan Wakely <jwakely@redhat.com>
741 * config/locale/dragonfly/numeric_members.cc: Remove whitespace.
742 * config/locale/gnu/numeric_members.cc: Likewise.
743 * include/bits/locale_facets_nonio.h: Likewise.
744 * libsupc++/typeinfo: Likewise.
746 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
749 * include/std/iosfwd: Add declarations for <spanstream> class
750 templates and typedefs.
751 * include/std/spanstream (basic_spanbuf, basic_ispanstream)
752 (basic_ospanstream, basic_spanstream): Remove default template
754 * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream>
756 * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream>
759 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
762 * include/std/iosfwd: Add declarations for <synstream> class
763 templates and typedefs.
764 * include/std/syncstream (basic_syncbuf, basic_osyncstream):
765 Remove default template arguments.
766 * testsuite/27_io/headers/iosfwd/synopsis.cc: New test.
767 * testsuite/27_io/headers/iosfwd/types.cc: New test.
769 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
771 * include/bits/random.tcc (operator==): Only check
772 normal_distribution::_M_saved_available once.
773 * testsuite/26_numerics/random/normal_distribution/operators/equal.cc:
774 Check equality after state changes.
775 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
778 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
781 * include/bits/random.tcc
782 (operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
783 Update state when __state_avail is false.
784 * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
785 Check that deserialized object equals serialized one.
787 2022-05-06 Alexandre Oliva <oliva@adacore.com>
789 * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX
790 for double, long long, and 64-bit long intrinsic types.
791 [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in
792 preexisting long double diagnostic, adjust no-VSX double
793 diagnostic to cover 64-bit long double as well.
795 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
798 * testsuite/27_io/filesystem/iterators/error_reporting.cc:
799 Use a trailing char array as storage for dirent::d_name.
801 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
803 * include/std/stacktrace: Do not include <cxxabi.h>.
804 (__cxa_demangle): Declare.
806 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
809 * include/bits/specfun.h: Use visibility attribute on namespace,
810 instead of pragma push/pop.
811 * libsupc++/compare: Likewise.
812 * libsupc++/exception: Likewise.
813 * libsupc++/exception.h: Likewise.
814 * libsupc++/exception_ptr.h: Likewise.
815 * libsupc++/initializer_list: Likewise.
816 * libsupc++/nested_exception.h: Likewise.
818 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
820 * doc/xml/manual/test.xml: Remove requirement for copyright and
822 * doc/html/manual/test.html: Regenerate.
824 2022-05-05 Jonathan Wakely <jwakely@redhat.com>
826 * include/experimental/memory_resource [!__cpp_rtti]
827 (__resource_adaptor_imp::do_is_equal): Do not use dynamic_cast
828 when RTTI is disabled.
829 * testsuite/17_intro/freestanding.cc: Require RTTI.
830 * testsuite/18_support/exception/38732.cc: Likewise.
831 * testsuite/18_support/exception_ptr/rethrow_exception.cc:
833 * testsuite/18_support/nested_exception/68139.cc: Likewise.
834 * testsuite/18_support/nested_exception/rethrow_if_nested.cc:
836 * testsuite/18_support/type_info/103240.cc: Likewise.
837 * testsuite/18_support/type_info/fundamental.cc: Likewise.
838 * testsuite/18_support/type_info/hash_code.cc: Likewise.
839 * testsuite/20_util/any/assign/emplace.cc: Likewise.
840 * testsuite/20_util/any/cons/in_place.cc: Likewise.
841 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
842 * testsuite/20_util/any/observers/type.cc: Likewise.
843 * testsuite/20_util/function/1.cc: Likewise.
844 * testsuite/20_util/function/2.cc: Likewise.
845 * testsuite/20_util/function/3.cc: Likewise.
846 * testsuite/20_util/function/4.cc: Likewise.
847 * testsuite/20_util/function/5.cc: Likewise.
848 * testsuite/20_util/function/6.cc: Likewise.
849 * testsuite/20_util/function/7.cc: Likewise.
850 * testsuite/20_util/function/8.cc: Likewise.
851 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
852 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
853 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
854 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
856 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
857 * testsuite/20_util/typeindex/comparison_operators.cc: Likewise.
858 * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
860 * testsuite/20_util/typeindex/hash.cc: Likewise.
861 * testsuite/20_util/typeindex/hash_code.cc: Likewise.
862 * testsuite/20_util/typeindex/name.cc: Likewise.
863 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
864 * testsuite/22_locale/global_templates/standard_facet_hierarchies.cc:
866 * testsuite/22_locale/global_templates/user_facet_hierarchies.cc:
868 * testsuite/22_locale/locale/13630.cc: Check type without using
870 * testsuite/23_containers/array/requirements/non_default_constructible.cc:
872 * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
873 * testsuite/27_io/fpos/14320-1.cc: Check type without using RTTI.
874 * testsuite/27_io/fpos/mbstate_t/12065.cc: Require RTTI.
875 * testsuite/27_io/ios_base/failure/dual_abi.cc: Likewise.
876 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
877 * testsuite/experimental/any/observers/type.cc: Likewise.
878 * testsuite/experimental/memory_resource/resource_adaptor.cc:
880 * testsuite/lib/libstdc++.exp (check_effective_target_rtti):
882 * testsuite/tr1/3_function_objects/function/1.cc: Likewise.
883 * testsuite/tr1/3_function_objects/function/2.cc: Likewise.
884 * testsuite/tr1/3_function_objects/function/3.cc: Likewise.
885 * testsuite/tr1/3_function_objects/function/4.cc: Likewise.
886 * testsuite/tr1/3_function_objects/function/5.cc: Likewise.
887 * testsuite/tr1/3_function_objects/function/6.cc: Likewise.
888 * testsuite/tr1/3_function_objects/function/7.cc: Likewise.
889 * testsuite/tr1/3_function_objects/function/8.cc: Likewise.
890 * testsuite/tr2/bases/value.cc: Likewise.
891 * testsuite/tr2/direct_bases/value.cc: Likewise.
892 * testsuite/util/exception/safety.h [!__cpp_rtti]: Don't print
895 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
898 * include/std/array (array::size(), array::max_size())
899 (array::empty(), array::data()): Add always_inline attribute.
901 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
904 * include/std/array (__array_traits::_S_ref): Remove.
905 (__array_traits::_S_ptr): Remove.
906 (__array_traits<T, 0>::_Type): Define operator[] and operator T*
907 to provide an array-like API.
908 (array::_AT_Type): Remove public typeef.
909 (array::operator[], array::at, array::front, array::back): Use
910 index operator to access _M_elems instead of _S_ref.
911 (array::data): Use implicit conversion from _M_elems to pointer.
912 (swap(array&, array&)): Use __enable_if_t helper.
913 (get<I>): Use index operator to access _M_elems.
914 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
915 Adjust dg-error line numbers.
917 2022-05-03 Alexandre Oliva <oliva@adacore.com>
920 * testsuite/20_util/from_chars/pr105324.cc: Guard test body
921 with conditional for floating-point overloads of from_char.
923 2022-05-02 Patrick Palka <ppalka@redhat.com>
926 * src/c++17/floating_from_chars.cc (find_end_of_float): Accept
927 two delimeters for the exponent part in the form of a possibly
928 NULL string of length two. Don't use std::tolower.
929 (pattern): Adjust calls to find_end_of_float accordingly.
931 2022-05-02 Patrick Palka <ppalka@redhat.com>
934 * src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
935 Also accept 'P' as the start of the exponent.
936 * testsuite/20_util/from_chars/7.cc: Add corresponding testcase.
938 2022-04-29 Jonathan Wakely <jwakely@redhat.com>
941 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
943 * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]:
944 Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I>
945 symbols as aliases for corresponding symbols without abi-tag.
947 2022-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
949 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
950 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
952 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
953 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
956 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
959 * src/c++17/fs_ops.cc (fs::copy): Pass error_code to
960 directory_iterator constructor, and check on each iteration.
961 * src/filesystem/ops.cc (fs::copy): Likewise.
962 * testsuite/27_io/filesystem/operations/copy.cc: Check for
963 errors during recursion.
964 * testsuite/experimental/filesystem/operations/copy.cc:
967 2022-04-28 François Dumont <fdumont@gcc.gnu.org>
969 * config/abi/pre/gnu-versioned-namespace.ver: Remove
970 std::random_device::* pattern.
972 2022-04-27 Jakub Jelinek <jakub@redhat.com>
974 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
975 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
976 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
977 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
978 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
979 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
980 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
981 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
983 2022-04-27 Jonathan Wakely <jwakely@redhat.com>
985 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add
986 support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>.
987 (StdAtomicPrinter): New printer.
988 (build_libstdcxx_dictionary): Register new printer.
989 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic.
990 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart
993 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
995 * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add
996 constructor for constant initialization from nullptr_t.
997 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
998 Check for new constructor.
1000 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
1002 * include/bits/fs_path.h (hash<filesystem::path>): Define.
1003 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
1004 Check std::hash specialization.
1006 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
1008 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define
1010 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
1012 (default_delete, default_delete<T[]>, __uniq_ptr_impl)
1013 (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member
1015 * include/std/version (__cpp_lib_constexpr_memory): Define new
1017 * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test.
1018 * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test.
1019 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test.
1020 * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test.
1021 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test.
1022 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc:
1025 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
1028 * include/std/future (packaged_task): Add deduction guides.
1029 * testsuite/30_threads/packaged_task/cons/deduction.cc: New test.
1031 2022-04-25 Philipp Fent <fent@in.tum.de>
1033 * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
1035 (StdInitializerListPrinter): Define new printer.
1036 (build_libstdcxx_dictionary): Register new printer.
1037 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
1040 2022-04-22 Thomas W Rodgers <trodgers@redhat.com>
1043 * include/bits/atomic_base.h (atomic_flag::notify_one,
1044 notify_all): Remove const qualification.
1045 (__atomic_base::notify_one, notify_all): Likewise.
1046 * include/std/atomic (atomic<bool>::notify_one, notify_all):
1048 (atomic::notify_one, notify_all): Likewise.
1049 (atomic<T*>::notify_one, notify_all): Likewise.
1050 (atomic_notify_one, atomic_notify_all): Likewise.
1051 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test
1052 to account for change in notify_one/notify_all signature.
1054 2022-04-21 Patrick Palka <ppalka@redhat.com>
1056 * include/std/charconv (__from_chars_alnum_to_val_table):
1057 Simplify initialization of __lower/__upper_letters.
1058 (__from_chars_alnum_to_val): Default the template parameter to
1060 * src/c++17/floating_from_chars.cc (starts_with_ci): Don't
1061 assume the uppercase and lowercase letters are contiguous.
1062 (__floating_from_chars_hex): Likewise.
1064 2022-04-21 Patrick Palka <ppalka@redhat.com>
1068 * include/std/charconv (__from_chars_alnum_to_val): Make
1069 initializer for __table dependent in an artificial way.
1071 2022-04-21 Jonathan Wakely <jwakely@redhat.com>
1074 * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
1076 * testsuite/20_util/from_chars/pr105324.cc: New test.
1078 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
1080 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
1081 Check correct feature test macro.
1083 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
1086 * doc/xml/manual/prerequisites.xml: Document libiconv
1088 * doc/html/manual/setup.html: Regenerate.
1089 * src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
1090 * src/Makefile.in: Regenerate.
1092 2022-04-19 Patrick Palka <ppalka@redhat.com>
1094 * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't
1096 (__floating_to_chars_shortest): Add __builtin_unreachable calls to
1097 squelch false-positive -Wmaybe-uninitialized and -Wreturn-type
1099 (__floating_to_chars_precision): Likewise.
1101 2022-04-19 Philipp Fent <fent@in.tum.de>
1103 * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
1104 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
1106 2022-04-19 Jonathan Wakely <jwakely@redhat.com>
1108 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
1109 * configure: Regenerate.
1111 2022-04-18 Patrick Palka <ppalka@redhat.com>
1113 * include/std/charconv (__from_chars_pow2_base): Manually
1114 unroll the first iteration of the main loop and simplify
1117 2022-04-15 Patrick Palka <ppalka@redhat.com>
1120 * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing
1121 __first twice at the start.
1122 * testsuite/25_algorithms/minmax/constrained.cc (test06): New test.
1124 2022-04-15 Patrick Palka <ppalka@redhat.com>
1126 * include/std/charconv (__from_chars_alnum_to_val_table): Define.
1127 (__from_chars_alnum_to_val): Define.
1128 (__from_chars_binary): Rename to ...
1129 (__from_chars_pow2_base): ... this. Generalize to handle any
1130 power-of-two base using __from_chars_alnum_to_val.
1131 (__from_chars_digit): Optimize digit recognition to a single
1132 test instead of two tests. Use [[__unlikely___]] attribute.
1133 (__from_chars_alpha_to_num): Remove.
1134 (__from_chars_alnum): Use __from_chars_alnum_to_val. Use a
1135 nested loop for the overflow case. Maintain a lower bound
1136 on the number of available bits in the result and use it to
1137 omit the overflow check.
1138 (from_chars): Adjust appropriately.
1139 * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove.
1140 (__floating_from_chars_hex): Use __from_chars_alnum_to_val
1141 to recognize a hex digit instead.
1143 2022-04-14 Palmer Dabbelt <palmer@rivosinc.com>
1145 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
1147 * configure: Regenerate.
1149 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
1151 * doc/xml/manual/intro.xml: Fix comment.
1153 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
1155 * include/precompiled/stdc++.h: Include <stacktrace> and
1156 <stdatomic.h> for C++23.
1158 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
1161 * include/bits/stl_vector.h (__cpp_lib_constexpr_vector):
1163 * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h):
1165 * include/std/optional (__cpp_lib_optional): Define new value
1167 (__cpp_lib_monadic_optional): Remove.
1168 * include/std/version (__cpp_lib_constexpr_vector): Define.
1169 (__cpp_lib_stdatomic_h): Define.
1170 (__cpp_lib_optional): Define new value for C++23.
1171 (__cpp_lib_monadic_optional): Remove.
1172 * testsuite/20_util/optional/monadic/and_then.cc: Adjust.
1173 * testsuite/20_util/optional/requirements.cc: Adjust for C++23.
1174 * testsuite/20_util/optional/version.cc: Likewise.
1175 * testsuite/23_containers/vector/cons/constexpr.cc: Check
1177 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
1179 * testsuite/20_util/optional/monadic/version.cc: Removed.
1180 * testsuite/23_containers/vector/requirements/version.cc: New test.
1181 * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test.
1183 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1185 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
1186 * config.h.in: Regenerate.
1187 * configure: Regenerate.
1189 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1191 * include/std/stacktrace (basic_stacktrace::current): Reallocate
1192 a smaller container if the unused capacity is larger than the
1195 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1197 * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone
1198 or _Impl::_M_assign to initialize elements in allocated storage.
1199 (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of
1201 (basic_stacktrace::_Impl::_M_destroy()): Replace with ...
1202 (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New
1204 (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct
1205 new element using allocator.
1206 (basic_stacktrace::_Impl::_M_clone): New function.
1207 (basic_stacktrace::_Impl::_M_xclone): New function.
1208 (basic_stacktrace::_Impl::_M_assign): New function.
1210 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1212 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
1213 Use nothrow new instead of try block for std::allocator.
1214 (basic_stacktrace::_Impl::_M_deallocate): Use delete for
1217 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1219 * include/std/stacktrace (basic_stacktrace::current): Replace
1220 calls to _M_reserve and _S_curr_cb with call to _M_prepare.
1221 Check return value of backtrace_simple when max depth given.
1222 (basic_stacktrace::_M_reserve): Remove.
1223 (basic_stacktrace::_S_curr_cb): Remove.
1224 (basic_stacktrace::_M_prepare(size_type)): New function to
1225 reserve initial capacity and return callback.
1226 (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n
1227 and remove redundant zeroing of _M_frames and _M_capacity.
1228 (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]]
1229 attribute. Assign _Impl instead of swapping.
1230 * testsuite/19_diagnostics/stacktrace/current.cc: New test.
1232 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1234 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
1235 Change [[unlikely]] attribute to [[likely]].
1237 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1240 * include/std/stacktrace (basic_stacktrace::basic_stacktrace):
1241 Fix allocator usage in constructors.
1242 (basic_stacktrace::operator=(const basic_stacktrace&)): Do not
1243 try to reallocate using const allocator.
1244 (basic_stacktrace::operator=(basic_stacktrace&&)): Fix
1245 if-constexpr with non-constant condition. Do not allocate new
1246 storage if allocator propagates. Do not set _M_size if
1248 (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add
1249 assertion that non-propagating allocators are equal.
1250 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test.
1252 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1254 * include/std/stacktrace (basic_stacktrace::current): Duplicate
1255 implementation into each overload. Add noinline attribute and
1257 (basic_stacktrace::max_size()): Call _Impl::_S_max_size.
1258 (basic_stacktrace::_S_curr_cb()): New function defining lambda.
1259 (basic_stacktrace::_Impl::_S_max_size): New function defining
1260 maximum size in terms of allocator and size_type.
1261 (basic_stacktrace::_Impl::_M_allocate): Check against
1263 * testsuite/19_diagnostics/stacktrace/entry.cc: Call function
1264 for non-constexpr checks. Check line number is correct.
1266 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1268 * testsuite/20_util/stacktrace/entry.cc: Moved to...
1269 * testsuite/19_diagnostics/stacktrace/entry.cc: ...here.
1270 * testsuite/20_util/stacktrace/synopsis.cc: Moved to...
1271 * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here.
1272 * testsuite/20_util/stacktrace/version.cc: Moved to...
1273 * testsuite/19_diagnostics/stacktrace/version.cc: ...here.
1275 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1277 * include/experimental/bits/fs_path.h (path): Define special
1278 members after path::_Cmpt is complete.
1280 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
1283 * include/std/expected
1284 (expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
1285 * testsuite/20_util/expected/cons.cc: Check constructor.
1287 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
1290 * include/std/expected (expected<void, E>::swap): Set
1291 _M_has_value to false for objects that previously had a value.
1292 * testsuite/20_util/expected/swap.cc: Fix test to check void
1295 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
1298 * include/std/expected (bad_expected_access): Move constructor
1300 * testsuite/20_util/expected/bad.cc: New test.
1302 2022-04-07 Hans-Peter Nilsson <hp@axis.com>
1304 * testsuite/20_util/expected/requirements.cc: Correct minimal-size
1307 2022-04-02 Jakub Jelinek <jakub@redhat.com>
1310 * include/std/source_location (std::source_location::__impl): Move
1311 definition before using __builtin_ret_type.
1313 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
1315 * include/std/utility (unreachable): Define for C++23.
1316 * include/std/version (__cpp_lib_unreachable): Define.
1317 * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid
1318 arguments. Handle only the function being given.
1319 * testsuite/20_util/unreachable/1.cc: New test.
1320 * testsuite/20_util/unreachable/version.cc: New test.
1322 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
1324 * include/experimental/bits/fs_fwd.h (copy_file): Remove
1325 incorrect noexcept from declaration.
1326 * include/experimental/bits/fs_path.h (path::begin, path::end):
1327 Add noexcept to declarations, to match definitions.
1329 2022-04-01 Timm Bäder <tbaeder@redhat.com>
1331 * include/bits/fs_ops.h: Fix filename in Doxygen comment.
1332 * include/experimental/bits/fs_ops.h: Likewise.
1334 2022-03-31 Jonathan Wakely <jwakely@redhat.com>
1336 * libsupc++/new_opa.cc (aligned_alloc): Add comment.
1338 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
1340 * testsuite/18_support/exception/38732.cc: Disable for C++23.
1341 * testsuite/18_support/headers/exception/synopsis.cc: Likewise.
1342 * testsuite/18_support/unexpected_handler.cc: Likewise.
1344 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
1346 * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
1347 static data members for _Fp_fmt enumerators.
1349 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
1351 * include/std/version (__cpp_lib_variant): Fix conditions to
1353 (__cpp_lib_expected): Fix condition to match <expected>.
1355 2022-03-28 Jonathan Wakely <jwakely@redhat.com>
1357 * testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
1358 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
1359 * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
1360 * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
1361 * testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
1362 * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
1363 * testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
1364 * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
1366 2022-03-27 Jonathan Wakely <jwakely@redhat.com>
1368 * doc/doxygen/user.cfg.in: Add new header.
1369 * include/Makefile.am: Likewise.
1370 * include/Makefile.in: Regenerate.
1371 * include/precompiled/stdc++.h: Add new header.
1372 * include/std/version (__cpp_lib_expected): Define.
1373 * libsupc++/exception [__cplusplus > 202002] (unexpected)
1374 (unexpected_handler, set_unexpected): Do not declare for C++23.
1375 * include/std/expected: New file.
1376 * testsuite/20_util/expected/assign.cc: New test.
1377 * testsuite/20_util/expected/cons.cc: New test.
1378 * testsuite/20_util/expected/illformed_neg.cc: New test.
1379 * testsuite/20_util/expected/observers.cc: New test.
1380 * testsuite/20_util/expected/requirements.cc: New test.
1381 * testsuite/20_util/expected/swap.cc: New test.
1382 * testsuite/20_util/expected/synopsis.cc: New test.
1383 * testsuite/20_util/expected/unexpected.cc: New test.
1384 * testsuite/20_util/expected/version.cc: New test.
1386 2022-03-25 Jonathan Wakely <jwakely@redhat.com>
1388 * include/std/bit (bit_cast, byteswap, endian): Add doxygen
1391 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
1394 * include/std/bit (bit_cast): Add constraints.
1395 * testsuite/26_numerics/bit/bit.cast/105027.cc: New test.
1397 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
1399 * include/std/version [!_GLIBCXX_HOSTED]
1400 (__cpp_lib_hardware_interference_size): Define for freestanding.
1401 (__cpp_lib_bit_cast): Likewise.
1402 (__cpp_lib_is_layout_compatible): Likewise.
1403 (__cpp_lib_is_pointer_interconvertible): Likewise.
1404 (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for
1406 (__cpp_lib_invoke_r): Likewise.
1407 (__cpp_lib_ios_noreplace): Likewise.
1408 (__cpp_lib_monadic_optional): Likewise.
1409 (__cpp_lib_move_only_function): Likewise.
1410 (__cpp_lib_spanstream): Likewise.
1411 (__cpp_lib_stacktrace): Likewise.
1412 (__cpp_lib_string_contains): Likewise.
1413 (__cpp_lib_string_resize_and_overwrite): Likewise.
1414 (__cpp_lib_to_underlying): Likewise.
1416 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
1419 * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
1420 <bits/atomic_wait.h> for freestanding.
1422 2022-03-22 Hans-Peter Nilsson <hp@axis.com>
1424 * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
1425 Conditionalize call to fesetround.
1427 2022-03-21 Jakub Jelinek <jakub@redhat.com>
1430 * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
1431 isn't overloaded if __clang__ is defined.
1433 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
1436 * include/std/any (any(T&&)): Revert change to constraints.
1437 * testsuite/20_util/any/cons/104242.cc: New test.
1439 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
1442 * include/pstl/glue_algorithm_defs.h: Replace <functional> with
1444 * include/pstl/utils.h: Replace <iterator> with <type_traits>.
1445 (__pstl::__internal::__except_handler): Use std::__terminate
1446 instead of std::terminate.
1447 * src/c++17/fs_path.cc: Include <array>.
1448 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include
1450 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
1451 * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
1452 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
1453 * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
1454 * testsuite/25_algorithms/includes/constrained.cc: Likewise.
1455 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
1456 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
1457 * testsuite/25_algorithms/is_permutation/constrained.cc: Include
1459 * testsuite/25_algorithms/is_sorted/constexpr.cc: Include
1461 * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
1463 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
1465 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
1467 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
1469 * testsuite/25_algorithms/lower_bound/constexpr.cc: Include
1471 * testsuite/25_algorithms/max/constrained.cc: Likewise.
1472 * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
1473 * testsuite/25_algorithms/min/constrained.cc: Likewise.
1474 * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
1475 * testsuite/25_algorithms/minmax_element/constrained.cc:
1477 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
1478 * testsuite/25_algorithms/move/93872.cc: Likewise.
1479 * testsuite/25_algorithms/move_backward/93872.cc: Include
1481 * testsuite/25_algorithms/nth_element/constexpr.cc: Include
1483 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
1484 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
1486 * testsuite/25_algorithms/search/constexpr.cc: Likewise.
1487 * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
1488 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
1489 * testsuite/25_algorithms/set_difference/constrained.cc:
1491 * testsuite/25_algorithms/set_intersection/constexpr.cc:
1493 * testsuite/25_algorithms/set_intersection/constrained.cc:
1495 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
1497 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
1498 * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
1499 * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
1500 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
1501 * testsuite/25_algorithms/transform/constrained.cc: Likewise.
1502 * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
1503 * testsuite/25_algorithms/unique/constrained.cc: Likewise.
1504 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
1505 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
1506 * testsuite/std/ranges/adaptors/elements.cc: Include <vector>.
1507 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
1508 * testsuite/std/ranges/adaptors/split.cc: Likewise.
1510 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
1513 * include/bits/fs_path.h (path::make_preferred): Use
1514 handwritten loop instead of std::replace.
1516 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
1518 PR middle-end/104966
1519 * include/bits/locale_facets_nonio.tcc
1520 (__moneypunct_cache::_M_cache): Replace try-catch with RAII and
1521 make all string copies before any stores to *this.
1523 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
1525 * testsuite/util/testsuite_character.h: Fix comment.
1527 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
1530 * config/abi/pre/gnu.ver: Make version for std::from_chars
1531 depend on HAVE_USELOCALE macro.
1532 * testsuite/util/testsuite_abi.cc (compare_symbols): Treat
1533 std::from_chars for floating-point types as undesignated if
1534 not found in the baseline symbols file.
1536 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
1538 * include/std/charconv (__cpp_lib_to_chars): Only define when
1539 both from_chars and to_chars are supported for floating-point
1541 (from_chars, to_chars): Adjust preprocessor conditions guarding
1543 * include/std/version (__cpp_lib_to_chars): Adjust condition to
1544 match <charconv> definition.
1545 * src/c++17/floating_from_chars.cc (from_chars_strtod): New
1547 (from_chars): Simplify preprocessor checks and use
1548 from_chars_strtod when appropriate.
1550 2022-03-14 Jonathan Wakely <jwakely@redhat.com>
1553 * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
1554 hold octets that will be left-shifted.
1556 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
1559 * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
1560 before using fast_float.
1562 2022-03-10 Detlef Vollmann <dv@vollmann.ch>
1565 * include/bits/this_thread_sleep.h: Fix order of #endif and
1566 closing brace of namespace.
1568 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
1570 * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
1573 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
1575 * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
1578 2022-03-09 Patrick Palka <ppalka@redhat.com>
1581 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
1582 Be explicit when narrowing the shifted effective_mantissa,
1583 since it may have an integer-class type.
1585 2022-03-08 Jonathan Wakely <jwakely@redhat.com>
1587 * include/bits/uses_allocator_args.h: Remove incorrect copyright
1590 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
1593 * include/bits/c++config (__terminate, __glibcxx_assert_fail):
1594 Replace _GLIBCXX_VISIBILITY on function with visibility pragma.
1595 (__is_constant_evaluated): Add visibility pragma.
1597 2022-03-07 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
1599 * config/locale/vxworks/ctype_members.cc: Remove <iostream>
1602 2022-03-05 Jonathan Wakely <jwakely@redhat.com>
1604 * include/bits/c++config (__glibcxx_assert_fail): Add visibility
1606 (__terminate): Likewise.
1608 2022-03-04 Jonathan Wakely <jwakely@redhat.com>
1610 * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
1611 inside #if condition.
1613 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
1616 * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
1619 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
1621 * testsuite/17_intro/names.cc (func): Undef on AIX.
1623 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
1626 * libsupc++/compare (strong_order): Add missing support for
1627 floating-point types.
1628 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
1631 2022-03-01 Jonathan Wakely <jwakely@redhat.com>
1633 PR middle-end/103984
1634 * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
1635 default member initializer.
1637 2022-02-24 Jonathan Wakely <jwakely@redhat.com>
1640 * include/std/source_location (source_location::current): Use
1641 deduced type of __builtin_source_location().
1643 2022-02-22 Patrick Palka <ppalka@redhat.com>
1645 * include/bits/ranges_base.h (__detail::__is_initializer_list):
1647 (viewable_range): Adjust as per P2415R2.
1648 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
1649 * include/std/ranges (owning_view): Define as per P2415R2.
1650 (enable_borrowed_range<owning_view>): Likewise.
1651 (views::__detail::__can_subrange): Replace with ...
1652 (views::__detail::__can_owning_view): ... this.
1653 (views::_All::_S_noexcept): Sync with operator().
1654 (views::_All::operator()): Use owning_view instead of subrange
1656 * include/std/version (__cpp_lib_ranges): Adjust value.
1657 * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that
1658 views::all uses owning_view instead of subrange.
1660 * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust
1661 now that rvalue non-view non-borrowed ranges are viewable.
1662 * testsuite/std/ranges/adaptors/split.cc (test06): Likewise.
1664 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
1667 * doc/xml/manual/evolution.xml: Document deprecation.
1668 * doc/html/manual/api.html: Regenerate.
1669 * include/bits/stl_bvector.h (insert(const_iterator, const bool&)):
1670 Remove default argument.
1671 (insert(const_iterator)): New overload with deprecated attribute.
1672 * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc:
1675 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
1677 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace
1678 code that call cat->name() on std::error_category objects.
1679 Identify known categories by symbol name and use a hardcoded
1680 name. Print error code values as enumerators where appopriate.
1681 * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected
1682 name of custom category. Check io_errc and future_errc errors.
1684 2022-02-15 Jonathan Wakely <jwakely@redhat.com>
1687 * include/bits/uses_allocator_args.h (make_obj_using_allocator)
1688 (uninitialized_construct_using_allocator): Add constexpr.
1689 * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr.
1690 * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test.
1692 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
1695 * config/locale/gnu/c_locale.h (__convert_from_v): Use inline
1696 namespace for IEEE128 long double mode.
1697 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol
1698 version and export __gnu_cxx_ieee128::__convert_from_v.
1699 * include/bits/locale_facets_nonio.tcc (money_put::__do_put):
1700 Make __ibm128 overload use snprintf directly
1701 * testsuite/util/testsuite_abi.cc: Add new symbol version.
1702 Remove stable IEEE128/LDBL versions.
1704 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
1707 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
1709 * include/std/variant: Check feature test macros instead.
1710 * include/std/version: Likewise.
1712 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
1714 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
1717 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
1719 * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
1720 LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.
1722 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
1724 * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
1727 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
1729 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
1730 Ignore -Walloc-larger-than warning.
1731 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
1733 * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
1734 to avoid linker error for __atomic_is_lock_free.
1736 2022-02-10 Thomas Rodgers <rodgert@appliantology.com>
1738 * include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
1739 __waiter_base::_S_do_spin_v): Change memory order from relaxed
1742 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
1744 * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
1746 (atomic_fetch_xor_explicit): Likewise.
1747 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check
1748 arithmetic and logical operations for atomic_int.
1750 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
1752 * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
1753 when <dirent.h> is not available.
1754 (_GLIBCXX_HAVE_UNLINKAT): Likewise.
1756 2022-02-09 Thomas Rodgers <rodgert@appliantology.com>
1759 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin
1760 loop inside do loop so that threads failing the wait, reload
1763 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
1765 * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first
1766 parameter to _Dir_base&&.
1767 * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove.
1768 * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first
1769 parameter to _Dir_base&&.
1771 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
1773 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
1774 checking for CAS on correct word size.
1776 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
1778 * testsuite/experimental/filesystem/operations/create_directories.cc:
1779 Adjust expected results for Windows.
1781 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
1784 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase):
1785 [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member,
1786 instead of checking for errno values indicating a directory.
1787 * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar
1788 logic to non-throwing overload.
1789 (fs::remove_all(const path&, error_code&)): Add comments.
1790 * src/filesystem/ops-common.h: Likewise.
1792 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
1794 * src/filesystem/dir-common.h (_Dir_base::openat): Change return
1795 type to use portable posix::DIR alias.
1797 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
1799 * include/c_compatibility/stdatomic.h [__clang__]: Use
1800 #include_next <stdatomic.h>.
1802 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
1804 * include/experimental/bits/fs_ops.h (fs::copy_file): Remove
1806 (fs::create_directories): Likewise.
1807 (fs::remove_all): Likewise.
1808 * src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
1809 (fs::create_directories): Likewise.
1810 (fs::remove_all): Likewise.
1812 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
1815 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
1817 * config.h.in: Regenerate.
1818 * configure: Regenerate.
1819 * include/bits/fs_dir.h (recursive_directory_iterator): Declare
1820 remove_all overloads as friends.
1821 (recursive_directory_iterator::__erase): Declare new member
1823 * include/bits/fs_fwd.h (remove, remove_all): Declare.
1824 * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to
1825 constructor. Pass file descriptor argument to base constructor.
1826 (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink)
1827 (_Dir::unlink, _Dir::rmdir): Define new member functions.
1828 (directory_iterator): Pass filename_only argument to _Dir
1830 (recursive_directory_iterator::_Dir_stack): Adjust constructor
1831 parameters to take a _Dir rvalue instead of creating one.
1832 (_Dir_stack::orig): Add data member for storing original path.
1833 (_Dir_stack::report_error): Define new member function.
1834 (__directory_iterator_nofollow): Move here from dir-common.h and
1835 fix value to be a power of two.
1836 (__directory_iterator_filename_only): Define new constant.
1837 (recursive_directory_iterator): Construct _Dir object and move
1838 into _M_dirs stack. Pass skip_permission_denied argument to first
1840 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
1841 (recursive_directory_iterator::__erase): Define new member
1843 * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
1844 (fs::remove_all): Use new recursive_directory_iterator::__erase
1846 * src/filesystem/dir-common.h (_Dir_base): Add int parameter to
1847 constructor and use openat to implement nofollow semantics.
1848 (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat):
1849 Define new member functions.
1850 (__directory_iterator_nofollow): Move to fs_dir.cc.
1851 * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to
1853 (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
1855 (recursive_directory_iterator::_Dir_stack): Adjust constructor
1856 parameters to take a _Dir rvalue instead of creating one.
1857 (recursive_directory_iterator): Check for new nofollow option.
1858 Construct _Dir object and move into _M_dirs stack. Pass
1859 skip_permission_denied argument to first advance call.
1860 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
1861 * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all.
1863 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
1865 * include/bits/allocator.h: Qualify std::allocator_traits in
1866 deprecated warnings.
1867 * libsupc++/exception (uncaught_exception): Add suggestion to
1870 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
1872 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop):
1873 Add [[maybe_unused]] attribute.
1874 * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop):
1877 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
1879 * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
1880 custom comparison function for multiset.
1881 * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
1882 comparison function for set.
1884 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
1886 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
1887 Change member function to data member of function pointer type.
1889 2022-02-02 Martin Sebor <msebor@redhat.com>
1892 * include/std/array (begin): Declare const member function attribute
1894 (end, rbegin, rend, size, max_size, empty, data): Same.
1895 * testsuite/23_containers/array/capacity/empty.cc: Add test cases.
1896 * testsuite/23_containers/array/capacity/max_size.cc: Same.
1897 * testsuite/23_containers/array/capacity/size.cc: Same.
1898 * testsuite/23_containers/array/iterators/begin_end.cc: New test.
1900 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
1902 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
1903 autoconf macro to check whether d_type is present.
1904 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
1907 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
1909 * testsuite/27_io/filesystem/iterators/97731.cc: New test.
1910 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1911 Check follow_directory_symlink option.
1912 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
1915 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
1917 * src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
1918 Reset state to past-the-end iterator on error.
1919 (fs::recursive_directory_iterator::pop(error_code&)): Likewise.
1920 (fs::recursive_directory_iterator::pop()): Check _M_dirs before
1922 * src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
1923 for the TS implementation.
1924 * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
1925 * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
1927 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
1929 * include/bits/fs_fwd.h (filesystem::perms): Fix comment.
1931 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
1934 * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
1935 for stdio_pure and stdio_posix options.
1936 * configure: Regenerate.
1938 2022-02-01 Thomas Rodgers <rodgert@appliantology.com>
1940 * include/bits/atomic_wait.h: Change memory order from
1941 Acquire/Release with relaxed loads to SeqCst+Release for
1942 accesses to the waiter's count.
1944 2022-01-31 Martin Liska <mliska@suse.cz>
1946 * acinclude.m4: Detect *_ld_is_mold and use it.
1947 * configure: Regenerate.
1949 2022-01-30 Hans-Peter Nilsson <hp@axis.com>
1951 * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
1953 * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
1955 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
1958 * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
1959 Add __builtin_unreachable to loop.
1960 * testsuite/23_containers/deque/100516.cc: New test.
1962 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
1964 * include/bits/ranges_base.h (ranges::advance): Avoid signed
1965 overflow. Do nothing if already equal to desired result.
1966 * testsuite/24_iterators/range_operations/advance_overflow.cc:
1969 2022-01-27 Martin Liska <mliska@suse.cz>
1972 * acinclude.m4: Fix typo.
1973 * configure: Regenerate.
1975 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
1978 * include/bits/istream.tcc (basic_istream::sentry): Add braces
1980 * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
1981 Add pragmas to disable bogus warnings from PR 61596.
1983 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
1986 * src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
1987 * src/filesystem/dir.cc (_GNU_SOURCE): Define.
1988 * src/filesystem/ops.cc (_GNU_SOURCE): Define.
1990 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
1993 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
1995 * config.h.in: Regenerate.
1996 * configure: Regenerate.
1997 * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor
1998 and pass it to base class constructor.
1999 (directory_iterator): Pass nofollow flag to _Dir constructor.
2000 (fs::recursive_directory_iterator::increment): Likewise.
2001 * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for
2002 directory_iterator constructor. Move error check outside loop.
2003 * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to
2004 constructor and when it's set use ::open with O_NOFOLLOW and
2006 * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor
2007 and pass it to base class constructor.
2008 (directory_iterator): Pass nofollow flag to _Dir constructor.
2009 (fs::recursive_directory_iterator::increment): Likewise.
2010 * src/filesystem/ops.cc (remove_all): Use nofollow option for
2011 directory_iterator constructor. Move error check outside loop.
2013 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
2016 * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
2017 mem-initializer for _M_buf.
2018 (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
2020 * testsuite/27_io/spanstream/2.cc: New test.
2022 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
2024 * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS):
2025 Define macro for case where std::from_chars is implemented in
2026 terms of strtod, strtof or strtold.
2027 (buffer_resource, valid_fmt, find_end_of_float, pattern)
2028 (from_chars_impl, make_result, reserve_string): Do not define
2029 unless USE_STRTOD_FOR_FROM_CHARS is defined.
2030 (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and
2031 USE_STRTOD_FOR_FROM_CHARS is defined, instead of
2032 _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it
2035 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
2038 * include/bits/hashtable_policy.h (_Map_base): Add partial
2039 specialization for maps with const key types.
2040 * testsuite/23_containers/unordered_map/104174.cc: New test.
2042 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
2045 * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
2046 Set members to zero without type punning.
2048 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
2050 * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
2052 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
2056 * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal):
2057 Define as type long.
2058 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
2060 * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise.
2061 * include/bits/chrono.h (__cpp_lib_chrono): Likewise.
2062 (__cpp_lib_chrono_udls): Likewise.
2063 * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise.
2064 * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise.
2065 * include/bits/range_access.h (__cpp_lib_nonmember_container_access):
2067 * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
2069 * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise.
2070 (__cpp_lib_sample): Likewise.
2071 * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops):
2073 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
2075 * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
2077 * include/bits/stl_map.h (__cpp_lib_map_try_emplace):
2079 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
2081 * include/bits/unique_ptr.h (__cpp_lib_make_unique):
2083 * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
2085 * include/c_global/cmath (__cpp_lib_hypot): Likewise.
2086 * include/c_global/cstddef (__cpp_lib_byte): Likewise.
2087 * include/std/atomic (__cpp_lib_atomic_is_always_lock_free):
2089 * include/std/complex (__cpp_lib_complex_udls): Likewise.
2090 * include/std/filesystem (__cpp_lib_filesystem): Likewise.
2091 * include/std/functional (__cpp_lib_not_fn): Likewise.
2092 (__cpp_lib_boyer_moore_searcher): Likewise.
2093 * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise.
2094 * include/std/mutex (__cpp_lib_scoped_lock): Likewise.
2095 * include/std/numeric (__cpp_lib_gcd_lcm): Likewise.
2096 (__cpp_lib_gcd, __cpp_lib_lcm): Likewise.
2097 * include/std/tuple (__cpp_lib_apply): Likewise.
2098 (__cpp_lib_make_from_tuple): Likewise.
2099 * include/std/type_traits (__cpp_lib_integral_constant_callable)
2100 (__cpp_lib_bool_constant, __cpp_lib_logical_traits)
2101 (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases)
2102 (__cpp_lib_result_of_sfinae, __cpp_lib_void_t)
2103 (__cpp_lib_is_swappable, __cpp_lib_is_invocable)
2104 (__cpp_lib_has_unique_object_representations)
2105 (__cpp_lib_is_aggregate): Likewise.
2106 * include/std/version: Likewise.
2107 * libsupc++/new (__cpp_lib_launder): Likewise.
2109 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
2111 * include/std/version (__cpp_lib_shared_ptr_arrays): Fix
2112 condition for C++17 definition.
2114 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
2116 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
2118 (_Sp_atomic::_M_ptr): Add default member-initializer.
2119 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
2120 Check constant initialization.
2121 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
2123 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
2125 * src/c++11/cxx11-ios_failure.cc (__constinit): Define as
2126 equivalent attribute for Clang.
2127 * src/c++11/future.cc (__constinit): Likewise.
2128 * src/c++11/system_error.cc (__constinit): Likewise.
2129 * src/c++17/memory_resource.cc (__constinit): Likewise.
2131 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
2133 * scripts/testsuite_flags.in: Only add src/filesystem/.libs and
2134 src/libbacktrace/.libs to LDFLAGS if those directories exist.
2136 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2138 * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
2140 * configure: Regenerate.
2142 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2145 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
2148 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2150 * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
2151 linker search paths.
2152 * src/Makefile.am: Fix src/debug/libbacktrace build.
2153 * src/Makefile.in: Regenerate.
2154 * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
2155 variable. Use symlinks for the source files.
2156 * src/libbacktrace/Makefile.in: Regenerate.
2158 2022-01-19 Matthias Kretz <m.kretz@gsi.de>
2160 * include/experimental/bits/simd.h (__floating_point_flags): Do
2161 not rely on math_errhandling to expand to a constant expression.
2163 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2165 * doc/xml/manual/evolution.xml: Document deprecations.
2166 * doc/xml/manual/status_cxx2017.xml: Update status.
2167 * doc/html/*: Regenerate.
2169 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2171 * include/bits/stl_tempbuf.h (get_temporary_buffer): Change
2172 _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
2174 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2176 * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
2179 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2182 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
2183 Only use __thread_relax if __cpp_lib_atomic_wait is defined.
2185 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2188 * include/bits/basic_string.h (basic_string(nullptr_t)): Only
2190 (operator=(nullptr_t)): Likewise.
2191 * include/bits/cow_string.h: Likewise.
2192 * include/std/string_view (basic_string_view(nullptr_t)):
2194 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust
2195 expected error. Add examples that become ill-formed in C++23.
2196 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
2197 Adjust expected errors.
2198 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
2201 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2204 * include/bits/stl_iterator.h (reverse_iterator): Check
2205 __cpp_lib_concepts instead of __cplusplus.
2207 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2210 * include/bits/stl_pair.h (pair): Adjust constraints on
2211 deprecated constructors accepting literal zero as null pointer
2212 constant. Improve wording of deprecated attribute.
2213 * testsuite/20_util/pair/cons/99957.cc: Check that deprecated
2214 constructors do not cause ambiguities for copyable types.
2216 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2218 * include/bits/stl_function.h (ptr_fun): Fix suggestion for
2219 non-deprecated alternative.
2221 2022-01-18 Tom Honermann <tom@honermann.net>
2223 * acinclude.m4: Define config macros if uchar.h provides
2224 c8rtomb() and mbrtoc8().
2225 * config.h.in: Regenerate.
2226 * configure: Regenerate.
2227 * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define.
2228 * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise.
2229 * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise.
2230 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
2232 * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
2235 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2237 * include/Makefile.am: Install new header.
2238 * include/Makefile.in: Regenerate.
2239 * include/c_compatibility/stdatomic.h: New file.
2240 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test.
2242 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2245 * src/c++17/fast_float/LOCAL_PATCHES: Update.
2246 * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
2247 Define in terms of __BYTE_ORDER__.
2249 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2252 * src/c++17/fast_float/LOCAL_PATCHES: UPDATE.
2253 * src/c++17/fast_float/fast_float.h (round): Use explicit
2254 template argument list for std::min.
2256 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2258 * doc/xml/manual/status_cxx2017.xml: Update C++17 status.
2259 * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for
2261 * doc/html/manual/status.html: Regenerate.
2263 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2265 * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
2267 * configure: Regenerate.
2269 2022-01-17 Patrick Palka <ppalka@redhat.com>
2271 * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
2272 Conditionally define, and use it to conditionally include
2274 (from_chars): Use fast_float for float and double when
2277 2022-01-17 Patrick Palka <ppalka@redhat.com>
2279 * src/c++17/fast_float/LOCAL_PATCHES: Update.
2280 * src/c++17/fast_float/fast_float.h (from_chars_advanced): In
2281 case of over/underflow, return errc::result_out_of_range and don't
2284 2022-01-17 Patrick Palka <ppalka@redhat.com>
2286 * src/c++17/fast_float/LOCAL_PATCHES: Update.
2287 * src/c++17/fast_float/fast_float.h: Apply local modifications.
2289 2022-01-17 Patrick Palka <ppalka@redhat.com>
2291 * src/c++17/fast_float/LOCAL_PATCHES: New file.
2292 * src/c++17/fast_float/MERGE: New file.
2293 * src/c++17/fast_float/README.md: New file, copied from the
2294 fast_float repository.
2295 * src/c++17/fast_float/fast_float.h: New file, an amalgamation
2296 of the fast_float library.
2298 2022-01-17 Patrick Palka <ppalka@redhat.com>
2300 * src/c++17/floating_from_chars.cc: Include <bit>.
2301 (ascii_to_hexit, starts_with_ci): Conditionally define.
2302 (__floating_from_chars_hex): Conditionally define.
2303 (from_chars): Use __floating_from_chars_hex for
2304 chars_format::hex parsing of binary32/64 float/double.
2305 (testsuite/20_util/from_chars/7.cc): New test.
2306 * testsuite/20_util/from_chars/7.cc: New file.
2308 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2310 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
2311 * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
2312 * include/Makefile.am: Add new header.
2313 * include/Makefile.in: Regenerate.
2314 * include/std/stacktrace: New header.
2315 * include/std/version (__cpp_lib_stacktrace): Define.
2316 * Makefile.in: Regenerate.
2317 * config.h.in: Regenerate.
2318 * configure: Regenerate.
2319 * doc/Makefile.in: Regenerate.
2320 * libsupc++/Makefile.in: Regenerate.
2321 * po/Makefile.in: Regenerate.
2322 * python/Makefile.in: Regenerate.
2323 * src/Makefile.am: Regenerate.
2324 * src/Makefile.in: Regenerate.
2325 * src/c++11/Makefile.in: Regenerate.
2326 * src/c++17/Makefile.in: Regenerate.
2327 * src/c++20/Makefile.in: Regenerate.
2328 * src/c++98/Makefile.in: Regenerate.
2329 * src/filesystem/Makefile.in: Regenerate.
2330 * testsuite/Makefile.in: Regenerate.
2331 * src/libbacktrace/Makefile.am: New file.
2332 * src/libbacktrace/Makefile.in: New file.
2333 * src/libbacktrace/backtrace-rename.h: New file.
2334 * src/libbacktrace/backtrace-supported.h.in: New file.
2335 * src/libbacktrace/config.h.in: New file.
2336 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
2338 * testsuite/20_util/stacktrace/entry.cc: New test.
2339 * testsuite/20_util/stacktrace/synopsis.cc: New test.
2340 * testsuite/20_util/stacktrace/version.cc: New test.
2342 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2344 * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
2346 * doc/html/manual/status.html: Regenerate.
2348 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2351 * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
2352 * include/Makefile.in: Regenerate.
2353 * testsuite/17_intro/headers/c++1998/103650.cc: New test.
2355 2022-01-17 Matthias Kretz <m.kretz@gsi.de>
2357 * include/experimental/bits/simd.h (__floating_point_flags): Do
2358 not rely on the presence of the math_errhandling macro.
2360 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2362 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
2363 to qualified-id for dependent type.
2365 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2367 * doc/xml/manual/status_cxx2020.xml: Update.
2368 * doc/html/manual/status.html: Regenerate.
2370 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2371 Thomas Rodgers <trodgers@redhat.com>
2373 * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
2375 (_Sp_atomic): New class template.
2376 (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
2378 * include/bits/shared_ptr_base.h (__shared_count, __weak_count)
2379 (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
2380 * include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
2381 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
2383 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
2385 2022-01-15 Matthias Kretz <m.kretz@gsi.de>
2387 * include/experimental/bits/simd.h: Move feature detection bools
2388 and add __have_avx512bitalg, __have_avx512vbmi2,
2389 __have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
2390 __have_avx512vnni, __have_avx512vpopcntdq.
2391 (__detail::__machine_flags): New function which returns a unique
2392 uint64 depending on relevant -m and -f flags.
2393 (__detail::__odr_helper): New type alias for either an anonymous
2394 type or a type specialized with the __machine_flags number.
2395 (_SimdIntOperators): Change template parameters from _Impl to
2396 _Tp, _Abi because _Impl now has an __odr_helper parameter which
2397 may be _OdrEnforcer from the anonymous namespace, which makes
2398 for a bad base class.
2399 (many): Either add __odr_helper template parameter or mark as
2401 * include/experimental/bits/simd_detail.h: Add defines for
2402 AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
2403 AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
2404 * include/experimental/bits/simd_builtin.h: Add __odr_helper
2405 template parameter or mark as always_inline.
2406 * include/experimental/bits/simd_fixed_size.h: Ditto.
2407 * include/experimental/bits/simd_math.h: Ditto.
2408 * include/experimental/bits/simd_scalar.h: Ditto.
2409 * include/experimental/bits/simd_neon.h: Add __odr_helper
2411 * include/experimental/bits/simd_ppc.h: Ditto.
2412 * include/experimental/bits/simd_x86.h: Ditto.
2414 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
2416 * testsuite/22_locale/numpunct/members/char/3.cc:
2417 Require pt_PT locale instead of nl_NL.
2418 (test02): Use pt_PT locale instead of nl_NL.
2420 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
2425 * include/backward/binders.h (bind1st, bind2nd): Add deprecated
2427 * include/bits/refwrap.h (_Maybe_unary_or_binary_function):
2428 Disable deprecated warnings for base classes.
2429 (_Reference_wrapper_base): Likewise.
2430 * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
2431 * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
2432 * include/bits/stl_function.h (unary_function, binary_function):
2433 Add deprecated attribute.
2434 (unary_negate, not1, binary_negate, not2, ptr_fun)
2435 (pointer_to_unary_function, pointer_to_binary_function)
2436 (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
2437 (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
2438 (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
2440 * include/bits/stl_iterator.h: Disable deprecated warnings for
2441 std::iterator base classes.
2442 * include/bits/stl_iterator_base_types.h (iterator): Add
2443 deprecated attribute.
2444 * include/bits/stl_map.h (map::value_compare): Disable
2445 deprecated warnings for base class.
2446 * include/bits/stl_multimap.h (multimap::value_compare):
2448 * include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
2449 Add deprecated attribute.
2450 * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
2451 * include/bits/stream_iterator.h: Disable deprecated warnings.
2452 * include/bits/streambuf_iterator.h: Likewise.
2453 * include/ext/bitmap_allocator.h: Remove unary_function base
2455 * include/ext/functional: Disable deprecated warnings.
2456 * include/ext/rope: Likewise.
2457 * include/ext/throw_allocator.h: Likewise.
2458 * include/std/type_traits (result_of): Add deprecated attribute.
2459 * include/tr1/functional: Disable deprecated warnings.
2460 * include/tr1/functional_hash.h: Likewise.
2461 * testsuite/20_util/function_objects/binders/1.cc: Add
2462 -Wno-disable-deprecations.
2463 * testsuite/20_util/function_objects/binders/3113.cc: Likewise.
2464 * testsuite/20_util/function_objects/constexpr.cc: Add
2466 * testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
2467 * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
2468 * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
2470 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
2472 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
2474 * testsuite/20_util/reference_wrapper/24803.cc:
2476 * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
2477 C++20 and check for absence of nested types.
2478 * testsuite/20_util/shared_ptr/comparison/less.cc: Remove
2479 std::binary_function base class.
2480 * testsuite/20_util/temporary_buffer.cc: Add dg-warning.
2481 * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
2482 std::iterator base class.
2483 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
2485 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
2487 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
2489 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
2491 * testsuite/24_iterators/istreambuf_iterator/92285.cc:
2493 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
2495 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
2497 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
2499 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
2501 * testsuite/25_algorithms/copy/34595.cc:
2503 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
2505 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
2506 Disable deprecated warnings.
2507 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
2509 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
2511 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
2513 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
2515 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
2517 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
2519 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
2521 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
2523 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
2525 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
2527 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
2529 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
2531 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
2533 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
2535 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
2537 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
2539 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
2541 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
2543 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
2545 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
2547 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
2549 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
2551 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
2553 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
2555 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
2557 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
2559 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
2561 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
2563 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
2565 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
2567 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
2569 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
2571 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
2573 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
2575 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
2577 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
2579 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
2581 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
2583 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
2585 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
2587 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
2589 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
2591 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
2593 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
2595 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
2597 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
2599 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
2601 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
2603 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
2605 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
2607 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
2608 Disable deprecated warnings.
2609 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
2611 * testsuite/util/regression/trait/erase_if_fn.hpp: Remove
2612 std::unary_function base classes.
2613 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
2614 Remove std::iterator base classes.
2616 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
2618 * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
2619 Correct type of macro value.
2620 (shared_ptr): Add additional friend declarations.
2621 (make_shared, allocate_shared): Constrain existing overloads and
2622 remove static_assert.
2623 * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
2625 (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
2626 specialization for use with make_shared_for_overwrite.
2627 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
2628 (_Sp_counted_array_base): New class template.
2629 (_Sp_counted_array): New class template.
2630 (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
2631 New constructor for allocating shared arrays.
2632 (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
2633 * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
2635 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
2636 (__cpp_lib_smart_ptr_for_overwrite): New macro.
2637 * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
2639 * testsuite/20_util/shared_ptr/creation/array.cc: New test.
2640 * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
2641 * testsuite/20_util/shared_ptr/creation/version.cc: New test.
2642 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
2643 feature test macro. Test non-trivial default-initialization.
2645 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
2647 * include/bits/stl_construct.h (_Construct, _Construct_novalue):
2648 Also cast away cv-qualifiers when converting pointer to void.
2649 * testsuite/20_util/allocator/void.cc: Test construct function
2650 with cv-qualified types.
2652 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
2655 * include/bits/stl_iterator.h (common_iterator): Use
2656 std::construct_at instead of placement new.
2657 * testsuite/24_iterators/common_iterator/1.cc: Check copy
2658 construction is usable in constant expressions.
2660 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
2662 * doc/xml/manual/status_cxx2011.xml: Document new tokens
2663 accepted by std::random_device constructor.
2664 * doc/html/manual/status.html: Regenerate.
2666 2022-01-12 Patrick Palka <ppalka@redhat.com>
2668 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
2671 2022-01-12 Patrick Palka <ppalka@redhat.com>
2674 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
2675 Track the excess precision separately from the effective
2676 precision. Avoid overflow in bounds check by splitting it into
2678 (__floating_to_chars_precision): Avoid overflow in bounds checks
2680 * testsuite/20_util/to_chars/103955.cc: New test.
2682 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2685 * include/Makefile.am: Install <source_location> for
2687 * include/Makefile.in: Regenerate.
2688 * include/std/version (__cpp_lib_source_location): Define for
2691 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2693 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
2694 Add neoxcept (LWG 3593).
2696 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2698 * include/std/ranges (ranges::__detail::__box): Add constexpr to
2699 assignment operators (LWG 3572).
2700 * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
2701 view that uses copyable-box.
2703 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2706 * include/Makefile.am: Install <coroutine> for freestanding.
2707 * include/Makefile.in: Regenerate.
2708 * include/std/coroutine: Adjust headers and preprocessor
2710 (__coroutine_traits_impl): Use concepts when available.
2711 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
2713 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2715 * include/std/ostream (operator<<(basic_ostream&, charT)):
2716 Use unformatted input if no padding is needed.
2717 (operator<<(basic_ostream<char>&, char)): Likewise.
2719 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2722 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
2724 * include/std/variant (__cpp_lib_variant): Only define C++20
2725 value when the compiler is known to support conditionally
2726 trivial destructors.
2727 * include/std/version (__cpp_lib_variant): Likewise.
2729 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
2731 * include/bits/stl_iterator.h (common_iterator): Add constexpr
2732 to all member functions (LWG 3574).
2733 * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
2734 tests as constant expressions.
2735 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
2737 2022-01-10 Jakub Jelinek <jakub@redhat.com>
2740 * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
2741 (time_get::_M_extract_via_format): Declare new method with
2742 __time_get_state& as an extra argument.
2743 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
2744 __state argument, set various fields in it while parsing. Handle %j,
2745 %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
2746 for %p immediately. Add a wrapper around the method without the
2747 __state argument for backwards compatibility.
2748 (_M_extract_num): Remove all __len == 4 special cases.
2749 (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
2750 initialize __state, pass it to _M_extract_via_format and finalize it
2752 (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
2753 69-99 to 1969-1999. For 3-4 digit parsed years use that as year.
2754 (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
2755 version, don't call do_get but call _M_extract_via_format instead to
2757 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
2758 with extra __time_get_state and __time_get_state::_M_finalize_state.
2759 * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
2760 day_of_the_year): New functions in anon namespace.
2761 (mon_yday): New var in anon namespace.
2762 (__time_get_state::_M_finalize_state): Define.
2763 * testsuite/22_locale/time_get/get/char/4.cc: New test.
2764 * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
2765 * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
2766 as year 197AD instead of error.
2767 * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
2768 year 2001 instead of error.
2769 * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
2770 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
2771 197 as year 197AD instead of error.
2772 * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
2773 1 as year 2001 instead of error.
2774 * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
2776 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
2779 * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
2780 nothing for freestanding builds.
2781 (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
2782 * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
2783 with --without-headers. Do not use GCC_HEADER_STDINT for
2784 freestanding builds.
2785 * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
2786 for freestanding builds.
2787 * configure: Regenerate.
2788 * Makefile.in: Regenerate.
2789 * doc/Makefile.in: Regenerate.
2790 * include/Makefile.in: Regenerate.
2791 * libsupc++/Makefile.in: Regenerate.
2792 * po/Makefile.in: Regenerate.
2793 * python/Makefile.in: Regenerate.
2794 * src/Makefile.in: Regenerate.
2795 * src/c++11/Makefile.in: Regenerate.
2796 * src/c++17/Makefile.in: Regenerate.
2797 * src/c++20/Makefile.in: Regenerate.
2798 * src/c++98/Makefile.in: Regenerate.
2799 * src/filesystem/Makefile.in: Regenerate.
2800 * testsuite/Makefile.in: Regenerate.
2802 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
2804 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
2805 Add dg-timeout-factor directive.
2806 * testsuite/28_regex/basic_regex/84110.cc: Likewise.
2807 * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
2808 * testsuite/28_regex/match_results/102667.cc: Likewise.
2810 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
2812 * doc/xml/manual/using.xml: Update documentation around default
2814 * doc/html/*: Regenerate.
2816 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
2819 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
2820 * src/c++17/Makefile.in: Regenerate.
2822 2022-01-09 Sandra Loosemore <sandra@codesourcery.com>
2824 * testsuite/18_support/type_info/constexpr.cc: Add explicit
2825 -fdelete-null-pointer-checks option.
2827 2022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
2828 Jonathan Wakely <jwakely@redhat.com>
2831 * include/bits/forward_list.tcc (forward_list::merge): Check for
2833 * testsuite/23_containers/forward_list/operations/merge.cc: New test.
2835 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
2837 * include/bits/regex.h (basic_regex, match_results): Qualify
2838 name in friend declaration, to work around Clang bug.
2840 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
2842 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
2844 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
2847 * include/std/charconv (__from_chars_alpha_to_num): Return
2848 char instead of unsigned char. Change invalid return value to
2849 127 instead of using numeric trait.
2850 (__from_chars_alnum): Fix comment. Do not use std::isdigit.
2851 Change type of variable to char.
2853 2022-01-05 François Dumont <fdumont@gcc.gnu.org>
2856 * include/bits/hashtable_policy.h
2857 (_Hashtable_hash_traits<_Hash>): New.
2858 (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
2859 (_Hashtable_base<>::_M_key_equals): New.
2860 (_Hashtable_base<>::_M_equals): Use latter.
2861 (_Hashtable_base<>::_M_key_equals_tr): New.
2862 (_Hashtable_base<>::_M_equals_tr): Use latter.
2863 * include/bits/hashtable.h
2864 (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
2865 (_Hashtable<>::find): Loop through elements to look for key if size is lower
2866 than __small_size_threshold().
2867 (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
2868 (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
2869 (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
2870 (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
2871 (_Hashtable<>::_M_find_before_node(const key_type&)): New.
2872 (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
2873 (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
2874 * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
2875 * testsuite/util/testsuite_performance.h
2876 (report_performance): Use 9 width to display memory.
2877 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
2878 New performance test case.
2880 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2883 * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
2884 Relax constraints on string_view parameter.
2885 * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
2887 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
2889 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2891 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
2893 * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
2894 * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
2895 * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
2897 (type_info::__equal): Define alias symbol.
2898 * libsupc++/typeinfo (type_info::before): Combine different
2899 implementations into one.
2900 (type_info::operator==): Likewise. Use address equality for
2901 constant evaluation. Call __equal for targets that require the
2902 definition to be non-inline.
2903 * testsuite/18_support/type_info/constexpr.cc: New test.
2905 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2907 * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
2908 class and virtual functions as 'final'.
2909 (io_category_instance): Use constinit union to make the object
2911 * src/c++11/future.cc (future_error_category): Define class and
2912 virtual functions as 'final'.
2913 (future_category_instance): Use constinit union.
2915 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2917 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
2918 versioned namespace from the type name that is printed.
2920 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2922 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
2923 printer for std::regex NFA states.
2925 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2927 * testsuite/23_containers/forward_list/operations/1.cc: Fill in
2928 placeholders in comments.
2929 * testsuite/23_containers/forward_list/operations/2.cc:
2931 * testsuite/23_containers/forward_list/operations/3.cc:
2933 * testsuite/23_containers/forward_list/operations/4.cc:
2935 * testsuite/23_containers/forward_list/operations/5.cc:
2937 * testsuite/23_containers/forward_list/operations/6.cc:
2939 * testsuite/23_containers/forward_list/operations/7.cc:
2942 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2945 * include/bits/stl_deque.h (operator-): Do not use 0 as null
2948 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2950 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
2951 Use std::_Construct for construct.
2953 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2956 * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
2957 * doc/html/faq.html: Regenerate.
2959 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2961 * include/bits/regex.h (__regex_algo_impl): Change __policy and
2962 __match_mode template parameters to be function parameters.
2963 (regex_match, regex_search): Pass policy and match mode as
2965 * include/bits/regex.tcc (__regex_algo_impl): Change template
2966 parameters to function parameters.
2967 * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
2968 'if constexpr' for conditions using template parameters.
2969 (_RegexTranslator): Likewise.
2970 * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
2972 * testsuite/util/testsuite_regex.h (regex_match_debug)
2973 (regex_search_debug): Move template arguments to function
2976 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2978 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
2979 results even if the match failed.
2981 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2983 * include/bits/regex_compiler.tcc: Adjust all calls to
2984 __throw_regex_error.
2985 * include/bits/regex_error.h (__throw_regex_error): Add noreturn
2987 * include/bits/regex_scanner.tcc: Likewise.
2988 * src/c++11/regex.cc (desc): New helper function.
2989 (regex_error::regex_error(error_type)): Use desc to get a string
2990 corresponding to the error code.
2993 Copyright (C) 2022 Free Software Foundation, Inc.
2995 Copying and distribution of this file, with or without modification,
2996 are permitted in any medium without royalty provided the copyright
2997 notice and this notice are preserved.