1 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
3 * include/bits/random.tcc (operator==): Only check
4 normal_distribution::_M_saved_available once.
5 * testsuite/26_numerics/random/normal_distribution/operators/equal.cc:
6 Check equality after state changes.
7 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error
10 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
13 * include/bits/random.tcc
14 (operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
15 Update state when __state_avail is false.
16 * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
17 Check that deserialized object equals serialized one.
19 2022-05-06 Alexandre Oliva <oliva@adacore.com>
21 * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX
22 for double, long long, and 64-bit long intrinsic types.
23 [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in
24 preexisting long double diagnostic, adjust no-VSX double
25 diagnostic to cover 64-bit long double as well.
27 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
30 * testsuite/27_io/filesystem/iterators/error_reporting.cc:
31 Use a trailing char array as storage for dirent::d_name.
33 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
35 * include/std/stacktrace: Do not include <cxxabi.h>.
36 (__cxa_demangle): Declare.
38 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
41 * include/bits/specfun.h: Use visibility attribute on namespace,
42 instead of pragma push/pop.
43 * libsupc++/compare: Likewise.
44 * libsupc++/exception: Likewise.
45 * libsupc++/exception.h: Likewise.
46 * libsupc++/exception_ptr.h: Likewise.
47 * libsupc++/initializer_list: Likewise.
48 * libsupc++/nested_exception.h: Likewise.
50 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
52 * doc/xml/manual/test.xml: Remove requirement for copyright and
54 * doc/html/manual/test.html: Regenerate.
56 2022-05-05 Jonathan Wakely <jwakely@redhat.com>
58 * include/experimental/memory_resource [!__cpp_rtti]
59 (__resource_adaptor_imp::do_is_equal): Do not use dynamic_cast
60 when RTTI is disabled.
61 * testsuite/17_intro/freestanding.cc: Require RTTI.
62 * testsuite/18_support/exception/38732.cc: Likewise.
63 * testsuite/18_support/exception_ptr/rethrow_exception.cc:
65 * testsuite/18_support/nested_exception/68139.cc: Likewise.
66 * testsuite/18_support/nested_exception/rethrow_if_nested.cc:
68 * testsuite/18_support/type_info/103240.cc: Likewise.
69 * testsuite/18_support/type_info/fundamental.cc: Likewise.
70 * testsuite/18_support/type_info/hash_code.cc: Likewise.
71 * testsuite/20_util/any/assign/emplace.cc: Likewise.
72 * testsuite/20_util/any/cons/in_place.cc: Likewise.
73 * testsuite/20_util/any/misc/any_cast.cc: Likewise.
74 * testsuite/20_util/any/observers/type.cc: Likewise.
75 * testsuite/20_util/function/1.cc: Likewise.
76 * testsuite/20_util/function/2.cc: Likewise.
77 * testsuite/20_util/function/3.cc: Likewise.
78 * testsuite/20_util/function/4.cc: Likewise.
79 * testsuite/20_util/function/5.cc: Likewise.
80 * testsuite/20_util/function/6.cc: Likewise.
81 * testsuite/20_util/function/7.cc: Likewise.
82 * testsuite/20_util/function/8.cc: Likewise.
83 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise.
84 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise.
85 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise.
86 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc:
88 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise.
89 * testsuite/20_util/typeindex/comparison_operators.cc: Likewise.
90 * testsuite/20_util/typeindex/comparison_operators_c++20.cc:
92 * testsuite/20_util/typeindex/hash.cc: Likewise.
93 * testsuite/20_util/typeindex/hash_code.cc: Likewise.
94 * testsuite/20_util/typeindex/name.cc: Likewise.
95 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise.
96 * testsuite/22_locale/global_templates/standard_facet_hierarchies.cc:
98 * testsuite/22_locale/global_templates/user_facet_hierarchies.cc:
100 * testsuite/22_locale/locale/13630.cc: Check type without using
102 * testsuite/23_containers/array/requirements/non_default_constructible.cc:
104 * testsuite/27_io/basic_ostream/emit/1.cc: Likewise.
105 * testsuite/27_io/fpos/14320-1.cc: Check type without using RTTI.
106 * testsuite/27_io/fpos/mbstate_t/12065.cc: Require RTTI.
107 * testsuite/27_io/ios_base/failure/dual_abi.cc: Likewise.
108 * testsuite/experimental/any/misc/any_cast.cc: Likewise.
109 * testsuite/experimental/any/observers/type.cc: Likewise.
110 * testsuite/experimental/memory_resource/resource_adaptor.cc:
112 * testsuite/lib/libstdc++.exp (check_effective_target_rtti):
114 * testsuite/tr1/3_function_objects/function/1.cc: Likewise.
115 * testsuite/tr1/3_function_objects/function/2.cc: Likewise.
116 * testsuite/tr1/3_function_objects/function/3.cc: Likewise.
117 * testsuite/tr1/3_function_objects/function/4.cc: Likewise.
118 * testsuite/tr1/3_function_objects/function/5.cc: Likewise.
119 * testsuite/tr1/3_function_objects/function/6.cc: Likewise.
120 * testsuite/tr1/3_function_objects/function/7.cc: Likewise.
121 * testsuite/tr1/3_function_objects/function/8.cc: Likewise.
122 * testsuite/tr2/bases/value.cc: Likewise.
123 * testsuite/tr2/direct_bases/value.cc: Likewise.
124 * testsuite/util/exception/safety.h [!__cpp_rtti]: Don't print
127 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
130 * include/std/array (array::size(), array::max_size())
131 (array::empty(), array::data()): Add always_inline attribute.
133 2022-05-04 Jonathan Wakely <jwakely@redhat.com>
136 * include/std/array (__array_traits::_S_ref): Remove.
137 (__array_traits::_S_ptr): Remove.
138 (__array_traits<T, 0>::_Type): Define operator[] and operator T*
139 to provide an array-like API.
140 (array::_AT_Type): Remove public typeef.
141 (array::operator[], array::at, array::front, array::back): Use
142 index operator to access _M_elems instead of _S_ref.
143 (array::data): Use implicit conversion from _M_elems to pointer.
144 (swap(array&, array&)): Use __enable_if_t helper.
145 (get<I>): Use index operator to access _M_elems.
146 * testsuite/23_containers/array/tuple_interface/get_neg.cc:
147 Adjust dg-error line numbers.
149 2022-05-03 Alexandre Oliva <oliva@adacore.com>
152 * testsuite/20_util/from_chars/pr105324.cc: Guard test body
153 with conditional for floating-point overloads of from_char.
155 2022-05-02 Patrick Palka <ppalka@redhat.com>
158 * src/c++17/floating_from_chars.cc (find_end_of_float): Accept
159 two delimeters for the exponent part in the form of a possibly
160 NULL string of length two. Don't use std::tolower.
161 (pattern): Adjust calls to find_end_of_float accordingly.
163 2022-05-02 Patrick Palka <ppalka@redhat.com>
166 * src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
167 Also accept 'P' as the start of the exponent.
168 * testsuite/20_util/from_chars/7.cc: Add corresponding testcase.
170 2022-04-29 Jonathan Wakely <jwakely@redhat.com>
173 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
175 * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]:
176 Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I>
177 symbols as aliases for corresponding symbols without abi-tag.
179 2022-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
181 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
182 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
184 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
185 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
188 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
191 * src/c++17/fs_ops.cc (fs::copy): Pass error_code to
192 directory_iterator constructor, and check on each iteration.
193 * src/filesystem/ops.cc (fs::copy): Likewise.
194 * testsuite/27_io/filesystem/operations/copy.cc: Check for
195 errors during recursion.
196 * testsuite/experimental/filesystem/operations/copy.cc:
199 2022-04-28 François Dumont <fdumont@gcc.gnu.org>
201 * config/abi/pre/gnu-versioned-namespace.ver: Remove
202 std::random_device::* pattern.
204 2022-04-27 Jakub Jelinek <jakub@redhat.com>
206 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
207 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
208 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
209 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
210 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
211 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
212 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
213 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
215 2022-04-27 Jonathan Wakely <jwakely@redhat.com>
217 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add
218 support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>.
219 (StdAtomicPrinter): New printer.
220 (build_libstdcxx_dictionary): Register new printer.
221 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic.
222 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart
225 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
227 * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add
228 constructor for constant initialization from nullptr_t.
229 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
230 Check for new constructor.
232 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
234 * include/bits/fs_path.h (hash<filesystem::path>): Define.
235 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
236 Check std::hash specialization.
238 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
240 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define
242 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
244 (default_delete, default_delete<T[]>, __uniq_ptr_impl)
245 (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member
247 * include/std/version (__cpp_lib_constexpr_memory): Define new
249 * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test.
250 * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test.
251 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test.
252 * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test.
253 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test.
254 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc:
257 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
260 * include/std/future (packaged_task): Add deduction guides.
261 * testsuite/30_threads/packaged_task/cons/deduction.cc: New test.
263 2022-04-25 Philipp Fent <fent@in.tum.de>
265 * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
267 (StdInitializerListPrinter): Define new printer.
268 (build_libstdcxx_dictionary): Register new printer.
269 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
272 2022-04-22 Thomas W Rodgers <trodgers@redhat.com>
275 * include/bits/atomic_base.h (atomic_flag::notify_one,
276 notify_all): Remove const qualification.
277 (__atomic_base::notify_one, notify_all): Likewise.
278 * include/std/atomic (atomic<bool>::notify_one, notify_all):
280 (atomic::notify_one, notify_all): Likewise.
281 (atomic<T*>::notify_one, notify_all): Likewise.
282 (atomic_notify_one, atomic_notify_all): Likewise.
283 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test
284 to account for change in notify_one/notify_all signature.
286 2022-04-21 Patrick Palka <ppalka@redhat.com>
288 * include/std/charconv (__from_chars_alnum_to_val_table):
289 Simplify initialization of __lower/__upper_letters.
290 (__from_chars_alnum_to_val): Default the template parameter to
292 * src/c++17/floating_from_chars.cc (starts_with_ci): Don't
293 assume the uppercase and lowercase letters are contiguous.
294 (__floating_from_chars_hex): Likewise.
296 2022-04-21 Patrick Palka <ppalka@redhat.com>
300 * include/std/charconv (__from_chars_alnum_to_val): Make
301 initializer for __table dependent in an artificial way.
303 2022-04-21 Jonathan Wakely <jwakely@redhat.com>
306 * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
308 * testsuite/20_util/from_chars/pr105324.cc: New test.
310 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
312 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
313 Check correct feature test macro.
315 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
318 * doc/xml/manual/prerequisites.xml: Document libiconv
320 * doc/html/manual/setup.html: Regenerate.
321 * src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
322 * src/Makefile.in: Regenerate.
324 2022-04-19 Patrick Palka <ppalka@redhat.com>
326 * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't
328 (__floating_to_chars_shortest): Add __builtin_unreachable calls to
329 squelch false-positive -Wmaybe-uninitialized and -Wreturn-type
331 (__floating_to_chars_precision): Likewise.
333 2022-04-19 Philipp Fent <fent@in.tum.de>
335 * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
336 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
338 2022-04-19 Jonathan Wakely <jwakely@redhat.com>
340 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
341 * configure: Regenerate.
343 2022-04-18 Patrick Palka <ppalka@redhat.com>
345 * include/std/charconv (__from_chars_pow2_base): Manually
346 unroll the first iteration of the main loop and simplify
349 2022-04-15 Patrick Palka <ppalka@redhat.com>
352 * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing
353 __first twice at the start.
354 * testsuite/25_algorithms/minmax/constrained.cc (test06): New test.
356 2022-04-15 Patrick Palka <ppalka@redhat.com>
358 * include/std/charconv (__from_chars_alnum_to_val_table): Define.
359 (__from_chars_alnum_to_val): Define.
360 (__from_chars_binary): Rename to ...
361 (__from_chars_pow2_base): ... this. Generalize to handle any
362 power-of-two base using __from_chars_alnum_to_val.
363 (__from_chars_digit): Optimize digit recognition to a single
364 test instead of two tests. Use [[__unlikely___]] attribute.
365 (__from_chars_alpha_to_num): Remove.
366 (__from_chars_alnum): Use __from_chars_alnum_to_val. Use a
367 nested loop for the overflow case. Maintain a lower bound
368 on the number of available bits in the result and use it to
369 omit the overflow check.
370 (from_chars): Adjust appropriately.
371 * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove.
372 (__floating_from_chars_hex): Use __from_chars_alnum_to_val
373 to recognize a hex digit instead.
375 2022-04-14 Palmer Dabbelt <palmer@rivosinc.com>
377 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
379 * configure: Regenerate.
381 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
383 * doc/xml/manual/intro.xml: Fix comment.
385 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
387 * include/precompiled/stdc++.h: Include <stacktrace> and
388 <stdatomic.h> for C++23.
390 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
393 * include/bits/stl_vector.h (__cpp_lib_constexpr_vector):
395 * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h):
397 * include/std/optional (__cpp_lib_optional): Define new value
399 (__cpp_lib_monadic_optional): Remove.
400 * include/std/version (__cpp_lib_constexpr_vector): Define.
401 (__cpp_lib_stdatomic_h): Define.
402 (__cpp_lib_optional): Define new value for C++23.
403 (__cpp_lib_monadic_optional): Remove.
404 * testsuite/20_util/optional/monadic/and_then.cc: Adjust.
405 * testsuite/20_util/optional/requirements.cc: Adjust for C++23.
406 * testsuite/20_util/optional/version.cc: Likewise.
407 * testsuite/23_containers/vector/cons/constexpr.cc: Check
409 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
411 * testsuite/20_util/optional/monadic/version.cc: Removed.
412 * testsuite/23_containers/vector/requirements/version.cc: New test.
413 * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test.
415 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
417 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
418 * config.h.in: Regenerate.
419 * configure: Regenerate.
421 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
423 * include/std/stacktrace (basic_stacktrace::current): Reallocate
424 a smaller container if the unused capacity is larger than the
427 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
429 * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone
430 or _Impl::_M_assign to initialize elements in allocated storage.
431 (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of
433 (basic_stacktrace::_Impl::_M_destroy()): Replace with ...
434 (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New
436 (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct
437 new element using allocator.
438 (basic_stacktrace::_Impl::_M_clone): New function.
439 (basic_stacktrace::_Impl::_M_xclone): New function.
440 (basic_stacktrace::_Impl::_M_assign): New function.
442 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
444 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
445 Use nothrow new instead of try block for std::allocator.
446 (basic_stacktrace::_Impl::_M_deallocate): Use delete for
449 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
451 * include/std/stacktrace (basic_stacktrace::current): Replace
452 calls to _M_reserve and _S_curr_cb with call to _M_prepare.
453 Check return value of backtrace_simple when max depth given.
454 (basic_stacktrace::_M_reserve): Remove.
455 (basic_stacktrace::_S_curr_cb): Remove.
456 (basic_stacktrace::_M_prepare(size_type)): New function to
457 reserve initial capacity and return callback.
458 (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n
459 and remove redundant zeroing of _M_frames and _M_capacity.
460 (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]]
461 attribute. Assign _Impl instead of swapping.
462 * testsuite/19_diagnostics/stacktrace/current.cc: New test.
464 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
466 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
467 Change [[unlikely]] attribute to [[likely]].
469 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
472 * include/std/stacktrace (basic_stacktrace::basic_stacktrace):
473 Fix allocator usage in constructors.
474 (basic_stacktrace::operator=(const basic_stacktrace&)): Do not
475 try to reallocate using const allocator.
476 (basic_stacktrace::operator=(basic_stacktrace&&)): Fix
477 if-constexpr with non-constant condition. Do not allocate new
478 storage if allocator propagates. Do not set _M_size if
480 (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add
481 assertion that non-propagating allocators are equal.
482 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test.
484 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
486 * include/std/stacktrace (basic_stacktrace::current): Duplicate
487 implementation into each overload. Add noinline attribute and
489 (basic_stacktrace::max_size()): Call _Impl::_S_max_size.
490 (basic_stacktrace::_S_curr_cb()): New function defining lambda.
491 (basic_stacktrace::_Impl::_S_max_size): New function defining
492 maximum size in terms of allocator and size_type.
493 (basic_stacktrace::_Impl::_M_allocate): Check against
495 * testsuite/19_diagnostics/stacktrace/entry.cc: Call function
496 for non-constexpr checks. Check line number is correct.
498 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
500 * testsuite/20_util/stacktrace/entry.cc: Moved to...
501 * testsuite/19_diagnostics/stacktrace/entry.cc: ...here.
502 * testsuite/20_util/stacktrace/synopsis.cc: Moved to...
503 * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here.
504 * testsuite/20_util/stacktrace/version.cc: Moved to...
505 * testsuite/19_diagnostics/stacktrace/version.cc: ...here.
507 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
509 * include/experimental/bits/fs_path.h (path): Define special
510 members after path::_Cmpt is complete.
512 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
515 * include/std/expected
516 (expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
517 * testsuite/20_util/expected/cons.cc: Check constructor.
519 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
522 * include/std/expected (expected<void, E>::swap): Set
523 _M_has_value to false for objects that previously had a value.
524 * testsuite/20_util/expected/swap.cc: Fix test to check void
527 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
530 * include/std/expected (bad_expected_access): Move constructor
532 * testsuite/20_util/expected/bad.cc: New test.
534 2022-04-07 Hans-Peter Nilsson <hp@axis.com>
536 * testsuite/20_util/expected/requirements.cc: Correct minimal-size
539 2022-04-02 Jakub Jelinek <jakub@redhat.com>
542 * include/std/source_location (std::source_location::__impl): Move
543 definition before using __builtin_ret_type.
545 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
547 * include/std/utility (unreachable): Define for C++23.
548 * include/std/version (__cpp_lib_unreachable): Define.
549 * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid
550 arguments. Handle only the function being given.
551 * testsuite/20_util/unreachable/1.cc: New test.
552 * testsuite/20_util/unreachable/version.cc: New test.
554 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
556 * include/experimental/bits/fs_fwd.h (copy_file): Remove
557 incorrect noexcept from declaration.
558 * include/experimental/bits/fs_path.h (path::begin, path::end):
559 Add noexcept to declarations, to match definitions.
561 2022-04-01 Timm Bäder <tbaeder@redhat.com>
563 * include/bits/fs_ops.h: Fix filename in Doxygen comment.
564 * include/experimental/bits/fs_ops.h: Likewise.
566 2022-03-31 Jonathan Wakely <jwakely@redhat.com>
568 * libsupc++/new_opa.cc (aligned_alloc): Add comment.
570 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
572 * testsuite/18_support/exception/38732.cc: Disable for C++23.
573 * testsuite/18_support/headers/exception/synopsis.cc: Likewise.
574 * testsuite/18_support/unexpected_handler.cc: Likewise.
576 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
578 * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
579 static data members for _Fp_fmt enumerators.
581 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
583 * include/std/version (__cpp_lib_variant): Fix conditions to
585 (__cpp_lib_expected): Fix condition to match <expected>.
587 2022-03-28 Jonathan Wakely <jwakely@redhat.com>
589 * testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
590 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
591 * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
592 * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
593 * testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
594 * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
595 * testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
596 * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
598 2022-03-27 Jonathan Wakely <jwakely@redhat.com>
600 * doc/doxygen/user.cfg.in: Add new header.
601 * include/Makefile.am: Likewise.
602 * include/Makefile.in: Regenerate.
603 * include/precompiled/stdc++.h: Add new header.
604 * include/std/version (__cpp_lib_expected): Define.
605 * libsupc++/exception [__cplusplus > 202002] (unexpected)
606 (unexpected_handler, set_unexpected): Do not declare for C++23.
607 * include/std/expected: New file.
608 * testsuite/20_util/expected/assign.cc: New test.
609 * testsuite/20_util/expected/cons.cc: New test.
610 * testsuite/20_util/expected/illformed_neg.cc: New test.
611 * testsuite/20_util/expected/observers.cc: New test.
612 * testsuite/20_util/expected/requirements.cc: New test.
613 * testsuite/20_util/expected/swap.cc: New test.
614 * testsuite/20_util/expected/synopsis.cc: New test.
615 * testsuite/20_util/expected/unexpected.cc: New test.
616 * testsuite/20_util/expected/version.cc: New test.
618 2022-03-25 Jonathan Wakely <jwakely@redhat.com>
620 * include/std/bit (bit_cast, byteswap, endian): Add doxygen
623 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
626 * include/std/bit (bit_cast): Add constraints.
627 * testsuite/26_numerics/bit/bit.cast/105027.cc: New test.
629 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
631 * include/std/version [!_GLIBCXX_HOSTED]
632 (__cpp_lib_hardware_interference_size): Define for freestanding.
633 (__cpp_lib_bit_cast): Likewise.
634 (__cpp_lib_is_layout_compatible): Likewise.
635 (__cpp_lib_is_pointer_interconvertible): Likewise.
636 (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for
638 (__cpp_lib_invoke_r): Likewise.
639 (__cpp_lib_ios_noreplace): Likewise.
640 (__cpp_lib_monadic_optional): Likewise.
641 (__cpp_lib_move_only_function): Likewise.
642 (__cpp_lib_spanstream): Likewise.
643 (__cpp_lib_stacktrace): Likewise.
644 (__cpp_lib_string_contains): Likewise.
645 (__cpp_lib_string_resize_and_overwrite): Likewise.
646 (__cpp_lib_to_underlying): Likewise.
648 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
651 * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
652 <bits/atomic_wait.h> for freestanding.
654 2022-03-22 Hans-Peter Nilsson <hp@axis.com>
656 * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
657 Conditionalize call to fesetround.
659 2022-03-21 Jakub Jelinek <jakub@redhat.com>
662 * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
663 isn't overloaded if __clang__ is defined.
665 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
668 * include/std/any (any(T&&)): Revert change to constraints.
669 * testsuite/20_util/any/cons/104242.cc: New test.
671 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
674 * include/pstl/glue_algorithm_defs.h: Replace <functional> with
676 * include/pstl/utils.h: Replace <iterator> with <type_traits>.
677 (__pstl::__internal::__except_handler): Use std::__terminate
678 instead of std::terminate.
679 * src/c++17/fs_path.cc: Include <array>.
680 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include
682 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
683 * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
684 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
685 * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
686 * testsuite/25_algorithms/includes/constrained.cc: Likewise.
687 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
688 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
689 * testsuite/25_algorithms/is_permutation/constrained.cc: Include
691 * testsuite/25_algorithms/is_sorted/constexpr.cc: Include
693 * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
695 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
697 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
699 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
701 * testsuite/25_algorithms/lower_bound/constexpr.cc: Include
703 * testsuite/25_algorithms/max/constrained.cc: Likewise.
704 * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
705 * testsuite/25_algorithms/min/constrained.cc: Likewise.
706 * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
707 * testsuite/25_algorithms/minmax_element/constrained.cc:
709 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
710 * testsuite/25_algorithms/move/93872.cc: Likewise.
711 * testsuite/25_algorithms/move_backward/93872.cc: Include
713 * testsuite/25_algorithms/nth_element/constexpr.cc: Include
715 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
716 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
718 * testsuite/25_algorithms/search/constexpr.cc: Likewise.
719 * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
720 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
721 * testsuite/25_algorithms/set_difference/constrained.cc:
723 * testsuite/25_algorithms/set_intersection/constexpr.cc:
725 * testsuite/25_algorithms/set_intersection/constrained.cc:
727 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
729 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
730 * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
731 * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
732 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
733 * testsuite/25_algorithms/transform/constrained.cc: Likewise.
734 * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
735 * testsuite/25_algorithms/unique/constrained.cc: Likewise.
736 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
737 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
738 * testsuite/std/ranges/adaptors/elements.cc: Include <vector>.
739 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
740 * testsuite/std/ranges/adaptors/split.cc: Likewise.
742 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
745 * include/bits/fs_path.h (path::make_preferred): Use
746 handwritten loop instead of std::replace.
748 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
751 * include/bits/locale_facets_nonio.tcc
752 (__moneypunct_cache::_M_cache): Replace try-catch with RAII and
753 make all string copies before any stores to *this.
755 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
757 * testsuite/util/testsuite_character.h: Fix comment.
759 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
762 * config/abi/pre/gnu.ver: Make version for std::from_chars
763 depend on HAVE_USELOCALE macro.
764 * testsuite/util/testsuite_abi.cc (compare_symbols): Treat
765 std::from_chars for floating-point types as undesignated if
766 not found in the baseline symbols file.
768 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
770 * include/std/charconv (__cpp_lib_to_chars): Only define when
771 both from_chars and to_chars are supported for floating-point
773 (from_chars, to_chars): Adjust preprocessor conditions guarding
775 * include/std/version (__cpp_lib_to_chars): Adjust condition to
776 match <charconv> definition.
777 * src/c++17/floating_from_chars.cc (from_chars_strtod): New
779 (from_chars): Simplify preprocessor checks and use
780 from_chars_strtod when appropriate.
782 2022-03-14 Jonathan Wakely <jwakely@redhat.com>
785 * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
786 hold octets that will be left-shifted.
788 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
791 * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
792 before using fast_float.
794 2022-03-10 Detlef Vollmann <dv@vollmann.ch>
797 * include/bits/this_thread_sleep.h: Fix order of #endif and
798 closing brace of namespace.
800 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
802 * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
805 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
807 * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
810 2022-03-09 Patrick Palka <ppalka@redhat.com>
813 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
814 Be explicit when narrowing the shifted effective_mantissa,
815 since it may have an integer-class type.
817 2022-03-08 Jonathan Wakely <jwakely@redhat.com>
819 * include/bits/uses_allocator_args.h: Remove incorrect copyright
822 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
825 * include/bits/c++config (__terminate, __glibcxx_assert_fail):
826 Replace _GLIBCXX_VISIBILITY on function with visibility pragma.
827 (__is_constant_evaluated): Add visibility pragma.
829 2022-03-07 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
831 * config/locale/vxworks/ctype_members.cc: Remove <iostream>
834 2022-03-05 Jonathan Wakely <jwakely@redhat.com>
836 * include/bits/c++config (__glibcxx_assert_fail): Add visibility
838 (__terminate): Likewise.
840 2022-03-04 Jonathan Wakely <jwakely@redhat.com>
842 * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
843 inside #if condition.
845 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
848 * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
851 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
853 * testsuite/17_intro/names.cc (func): Undef on AIX.
855 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
858 * libsupc++/compare (strong_order): Add missing support for
859 floating-point types.
860 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
863 2022-03-01 Jonathan Wakely <jwakely@redhat.com>
866 * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
867 default member initializer.
869 2022-02-24 Jonathan Wakely <jwakely@redhat.com>
872 * include/std/source_location (source_location::current): Use
873 deduced type of __builtin_source_location().
875 2022-02-22 Patrick Palka <ppalka@redhat.com>
877 * include/bits/ranges_base.h (__detail::__is_initializer_list):
879 (viewable_range): Adjust as per P2415R2.
880 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
881 * include/std/ranges (owning_view): Define as per P2415R2.
882 (enable_borrowed_range<owning_view>): Likewise.
883 (views::__detail::__can_subrange): Replace with ...
884 (views::__detail::__can_owning_view): ... this.
885 (views::_All::_S_noexcept): Sync with operator().
886 (views::_All::operator()): Use owning_view instead of subrange
888 * include/std/version (__cpp_lib_ranges): Adjust value.
889 * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that
890 views::all uses owning_view instead of subrange.
892 * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust
893 now that rvalue non-view non-borrowed ranges are viewable.
894 * testsuite/std/ranges/adaptors/split.cc (test06): Likewise.
896 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
899 * doc/xml/manual/evolution.xml: Document deprecation.
900 * doc/html/manual/api.html: Regenerate.
901 * include/bits/stl_bvector.h (insert(const_iterator, const bool&)):
902 Remove default argument.
903 (insert(const_iterator)): New overload with deprecated attribute.
904 * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc:
907 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
909 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace
910 code that call cat->name() on std::error_category objects.
911 Identify known categories by symbol name and use a hardcoded
912 name. Print error code values as enumerators where appopriate.
913 * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected
914 name of custom category. Check io_errc and future_errc errors.
916 2022-02-15 Jonathan Wakely <jwakely@redhat.com>
919 * include/bits/uses_allocator_args.h (make_obj_using_allocator)
920 (uninitialized_construct_using_allocator): Add constexpr.
921 * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr.
922 * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test.
924 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
927 * config/locale/gnu/c_locale.h (__convert_from_v): Use inline
928 namespace for IEEE128 long double mode.
929 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol
930 version and export __gnu_cxx_ieee128::__convert_from_v.
931 * include/bits/locale_facets_nonio.tcc (money_put::__do_put):
932 Make __ibm128 overload use snprintf directly
933 * testsuite/util/testsuite_abi.cc: Add new symbol version.
934 Remove stable IEEE128/LDBL versions.
936 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
939 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
941 * include/std/variant: Check feature test macros instead.
942 * include/std/version: Likewise.
944 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
946 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
949 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
951 * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
952 LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.
954 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
956 * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
959 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
961 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
962 Ignore -Walloc-larger-than warning.
963 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
965 * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
966 to avoid linker error for __atomic_is_lock_free.
968 2022-02-10 Thomas Rodgers <rodgert@appliantology.com>
970 * include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
971 __waiter_base::_S_do_spin_v): Change memory order from relaxed
974 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
976 * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
978 (atomic_fetch_xor_explicit): Likewise.
979 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check
980 arithmetic and logical operations for atomic_int.
982 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
984 * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
985 when <dirent.h> is not available.
986 (_GLIBCXX_HAVE_UNLINKAT): Likewise.
988 2022-02-09 Thomas Rodgers <rodgert@appliantology.com>
991 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin
992 loop inside do loop so that threads failing the wait, reload
995 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
997 * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first
998 parameter to _Dir_base&&.
999 * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove.
1000 * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first
1001 parameter to _Dir_base&&.
1003 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
1005 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
1006 checking for CAS on correct word size.
1008 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
1010 * testsuite/experimental/filesystem/operations/create_directories.cc:
1011 Adjust expected results for Windows.
1013 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
1016 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase):
1017 [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member,
1018 instead of checking for errno values indicating a directory.
1019 * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar
1020 logic to non-throwing overload.
1021 (fs::remove_all(const path&, error_code&)): Add comments.
1022 * src/filesystem/ops-common.h: Likewise.
1024 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
1026 * src/filesystem/dir-common.h (_Dir_base::openat): Change return
1027 type to use portable posix::DIR alias.
1029 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
1031 * include/c_compatibility/stdatomic.h [__clang__]: Use
1032 #include_next <stdatomic.h>.
1034 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
1036 * include/experimental/bits/fs_ops.h (fs::copy_file): Remove
1038 (fs::create_directories): Likewise.
1039 (fs::remove_all): Likewise.
1040 * src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
1041 (fs::create_directories): Likewise.
1042 (fs::remove_all): Likewise.
1044 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
1047 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
1049 * config.h.in: Regenerate.
1050 * configure: Regenerate.
1051 * include/bits/fs_dir.h (recursive_directory_iterator): Declare
1052 remove_all overloads as friends.
1053 (recursive_directory_iterator::__erase): Declare new member
1055 * include/bits/fs_fwd.h (remove, remove_all): Declare.
1056 * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to
1057 constructor. Pass file descriptor argument to base constructor.
1058 (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink)
1059 (_Dir::unlink, _Dir::rmdir): Define new member functions.
1060 (directory_iterator): Pass filename_only argument to _Dir
1062 (recursive_directory_iterator::_Dir_stack): Adjust constructor
1063 parameters to take a _Dir rvalue instead of creating one.
1064 (_Dir_stack::orig): Add data member for storing original path.
1065 (_Dir_stack::report_error): Define new member function.
1066 (__directory_iterator_nofollow): Move here from dir-common.h and
1067 fix value to be a power of two.
1068 (__directory_iterator_filename_only): Define new constant.
1069 (recursive_directory_iterator): Construct _Dir object and move
1070 into _M_dirs stack. Pass skip_permission_denied argument to first
1072 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
1073 (recursive_directory_iterator::__erase): Define new member
1075 * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
1076 (fs::remove_all): Use new recursive_directory_iterator::__erase
1078 * src/filesystem/dir-common.h (_Dir_base): Add int parameter to
1079 constructor and use openat to implement nofollow semantics.
1080 (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat):
1081 Define new member functions.
1082 (__directory_iterator_nofollow): Move to fs_dir.cc.
1083 * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to
1085 (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
1087 (recursive_directory_iterator::_Dir_stack): Adjust constructor
1088 parameters to take a _Dir rvalue instead of creating one.
1089 (recursive_directory_iterator): Check for new nofollow option.
1090 Construct _Dir object and move into _M_dirs stack. Pass
1091 skip_permission_denied argument to first advance call.
1092 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
1093 * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all.
1095 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
1097 * include/bits/allocator.h: Qualify std::allocator_traits in
1098 deprecated warnings.
1099 * libsupc++/exception (uncaught_exception): Add suggestion to
1102 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
1104 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop):
1105 Add [[maybe_unused]] attribute.
1106 * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop):
1109 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
1111 * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
1112 custom comparison function for multiset.
1113 * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
1114 comparison function for set.
1116 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
1118 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
1119 Change member function to data member of function pointer type.
1121 2022-02-02 Martin Sebor <msebor@redhat.com>
1124 * include/std/array (begin): Declare const member function attribute
1126 (end, rbegin, rend, size, max_size, empty, data): Same.
1127 * testsuite/23_containers/array/capacity/empty.cc: Add test cases.
1128 * testsuite/23_containers/array/capacity/max_size.cc: Same.
1129 * testsuite/23_containers/array/capacity/size.cc: Same.
1130 * testsuite/23_containers/array/iterators/begin_end.cc: New test.
1132 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
1134 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
1135 autoconf macro to check whether d_type is present.
1136 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
1139 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
1141 * testsuite/27_io/filesystem/iterators/97731.cc: New test.
1142 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
1143 Check follow_directory_symlink option.
1144 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
1147 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
1149 * src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
1150 Reset state to past-the-end iterator on error.
1151 (fs::recursive_directory_iterator::pop(error_code&)): Likewise.
1152 (fs::recursive_directory_iterator::pop()): Check _M_dirs before
1154 * src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
1155 for the TS implementation.
1156 * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
1157 * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
1159 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
1161 * include/bits/fs_fwd.h (filesystem::perms): Fix comment.
1163 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
1166 * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
1167 for stdio_pure and stdio_posix options.
1168 * configure: Regenerate.
1170 2022-02-01 Thomas Rodgers <rodgert@appliantology.com>
1172 * include/bits/atomic_wait.h: Change memory order from
1173 Acquire/Release with relaxed loads to SeqCst+Release for
1174 accesses to the waiter's count.
1176 2022-01-31 Martin Liska <mliska@suse.cz>
1178 * acinclude.m4: Detect *_ld_is_mold and use it.
1179 * configure: Regenerate.
1181 2022-01-30 Hans-Peter Nilsson <hp@axis.com>
1183 * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
1185 * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
1187 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
1190 * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
1191 Add __builtin_unreachable to loop.
1192 * testsuite/23_containers/deque/100516.cc: New test.
1194 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
1196 * include/bits/ranges_base.h (ranges::advance): Avoid signed
1197 overflow. Do nothing if already equal to desired result.
1198 * testsuite/24_iterators/range_operations/advance_overflow.cc:
1201 2022-01-27 Martin Liska <mliska@suse.cz>
1204 * acinclude.m4: Fix typo.
1205 * configure: Regenerate.
1207 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
1210 * include/bits/istream.tcc (basic_istream::sentry): Add braces
1212 * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
1213 Add pragmas to disable bogus warnings from PR 61596.
1215 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
1218 * src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
1219 * src/filesystem/dir.cc (_GNU_SOURCE): Define.
1220 * src/filesystem/ops.cc (_GNU_SOURCE): Define.
1222 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
1225 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
1227 * config.h.in: Regenerate.
1228 * configure: Regenerate.
1229 * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor
1230 and pass it to base class constructor.
1231 (directory_iterator): Pass nofollow flag to _Dir constructor.
1232 (fs::recursive_directory_iterator::increment): Likewise.
1233 * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for
1234 directory_iterator constructor. Move error check outside loop.
1235 * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to
1236 constructor and when it's set use ::open with O_NOFOLLOW and
1238 * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor
1239 and pass it to base class constructor.
1240 (directory_iterator): Pass nofollow flag to _Dir constructor.
1241 (fs::recursive_directory_iterator::increment): Likewise.
1242 * src/filesystem/ops.cc (remove_all): Use nofollow option for
1243 directory_iterator constructor. Move error check outside loop.
1245 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
1248 * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
1249 mem-initializer for _M_buf.
1250 (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
1252 * testsuite/27_io/spanstream/2.cc: New test.
1254 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
1256 * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS):
1257 Define macro for case where std::from_chars is implemented in
1258 terms of strtod, strtof or strtold.
1259 (buffer_resource, valid_fmt, find_end_of_float, pattern)
1260 (from_chars_impl, make_result, reserve_string): Do not define
1261 unless USE_STRTOD_FOR_FROM_CHARS is defined.
1262 (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and
1263 USE_STRTOD_FOR_FROM_CHARS is defined, instead of
1264 _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it
1267 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
1270 * include/bits/hashtable_policy.h (_Map_base): Add partial
1271 specialization for maps with const key types.
1272 * testsuite/23_containers/unordered_map/104174.cc: New test.
1274 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
1277 * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
1278 Set members to zero without type punning.
1280 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
1282 * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
1284 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
1288 * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal):
1289 Define as type long.
1290 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
1292 * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise.
1293 * include/bits/chrono.h (__cpp_lib_chrono): Likewise.
1294 (__cpp_lib_chrono_udls): Likewise.
1295 * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise.
1296 * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise.
1297 * include/bits/range_access.h (__cpp_lib_nonmember_container_access):
1299 * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
1301 * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise.
1302 (__cpp_lib_sample): Likewise.
1303 * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops):
1305 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
1307 * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
1309 * include/bits/stl_map.h (__cpp_lib_map_try_emplace):
1311 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
1313 * include/bits/unique_ptr.h (__cpp_lib_make_unique):
1315 * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
1317 * include/c_global/cmath (__cpp_lib_hypot): Likewise.
1318 * include/c_global/cstddef (__cpp_lib_byte): Likewise.
1319 * include/std/atomic (__cpp_lib_atomic_is_always_lock_free):
1321 * include/std/complex (__cpp_lib_complex_udls): Likewise.
1322 * include/std/filesystem (__cpp_lib_filesystem): Likewise.
1323 * include/std/functional (__cpp_lib_not_fn): Likewise.
1324 (__cpp_lib_boyer_moore_searcher): Likewise.
1325 * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise.
1326 * include/std/mutex (__cpp_lib_scoped_lock): Likewise.
1327 * include/std/numeric (__cpp_lib_gcd_lcm): Likewise.
1328 (__cpp_lib_gcd, __cpp_lib_lcm): Likewise.
1329 * include/std/tuple (__cpp_lib_apply): Likewise.
1330 (__cpp_lib_make_from_tuple): Likewise.
1331 * include/std/type_traits (__cpp_lib_integral_constant_callable)
1332 (__cpp_lib_bool_constant, __cpp_lib_logical_traits)
1333 (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases)
1334 (__cpp_lib_result_of_sfinae, __cpp_lib_void_t)
1335 (__cpp_lib_is_swappable, __cpp_lib_is_invocable)
1336 (__cpp_lib_has_unique_object_representations)
1337 (__cpp_lib_is_aggregate): Likewise.
1338 * include/std/version: Likewise.
1339 * libsupc++/new (__cpp_lib_launder): Likewise.
1341 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
1343 * include/std/version (__cpp_lib_shared_ptr_arrays): Fix
1344 condition for C++17 definition.
1346 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
1348 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
1350 (_Sp_atomic::_M_ptr): Add default member-initializer.
1351 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
1352 Check constant initialization.
1353 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
1355 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
1357 * src/c++11/cxx11-ios_failure.cc (__constinit): Define as
1358 equivalent attribute for Clang.
1359 * src/c++11/future.cc (__constinit): Likewise.
1360 * src/c++11/system_error.cc (__constinit): Likewise.
1361 * src/c++17/memory_resource.cc (__constinit): Likewise.
1363 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
1365 * scripts/testsuite_flags.in: Only add src/filesystem/.libs and
1366 src/libbacktrace/.libs to LDFLAGS if those directories exist.
1368 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
1370 * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
1372 * configure: Regenerate.
1374 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
1377 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
1380 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
1382 * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
1383 linker search paths.
1384 * src/Makefile.am: Fix src/debug/libbacktrace build.
1385 * src/Makefile.in: Regenerate.
1386 * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
1387 variable. Use symlinks for the source files.
1388 * src/libbacktrace/Makefile.in: Regenerate.
1390 2022-01-19 Matthias Kretz <m.kretz@gsi.de>
1392 * include/experimental/bits/simd.h (__floating_point_flags): Do
1393 not rely on math_errhandling to expand to a constant expression.
1395 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
1397 * doc/xml/manual/evolution.xml: Document deprecations.
1398 * doc/xml/manual/status_cxx2017.xml: Update status.
1399 * doc/html/*: Regenerate.
1401 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
1403 * include/bits/stl_tempbuf.h (get_temporary_buffer): Change
1404 _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
1406 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
1408 * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
1411 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
1414 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
1415 Only use __thread_relax if __cpp_lib_atomic_wait is defined.
1417 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
1420 * include/bits/basic_string.h (basic_string(nullptr_t)): Only
1422 (operator=(nullptr_t)): Likewise.
1423 * include/bits/cow_string.h: Likewise.
1424 * include/std/string_view (basic_string_view(nullptr_t)):
1426 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust
1427 expected error. Add examples that become ill-formed in C++23.
1428 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
1429 Adjust expected errors.
1430 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
1433 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
1436 * include/bits/stl_iterator.h (reverse_iterator): Check
1437 __cpp_lib_concepts instead of __cplusplus.
1439 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
1442 * include/bits/stl_pair.h (pair): Adjust constraints on
1443 deprecated constructors accepting literal zero as null pointer
1444 constant. Improve wording of deprecated attribute.
1445 * testsuite/20_util/pair/cons/99957.cc: Check that deprecated
1446 constructors do not cause ambiguities for copyable types.
1448 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
1450 * include/bits/stl_function.h (ptr_fun): Fix suggestion for
1451 non-deprecated alternative.
1453 2022-01-18 Tom Honermann <tom@honermann.net>
1455 * acinclude.m4: Define config macros if uchar.h provides
1456 c8rtomb() and mbrtoc8().
1457 * config.h.in: Regenerate.
1458 * configure: Regenerate.
1459 * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define.
1460 * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise.
1461 * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise.
1462 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
1464 * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
1467 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
1469 * include/Makefile.am: Install new header.
1470 * include/Makefile.in: Regenerate.
1471 * include/c_compatibility/stdatomic.h: New file.
1472 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test.
1474 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
1477 * src/c++17/fast_float/LOCAL_PATCHES: Update.
1478 * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
1479 Define in terms of __BYTE_ORDER__.
1481 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
1484 * src/c++17/fast_float/LOCAL_PATCHES: UPDATE.
1485 * src/c++17/fast_float/fast_float.h (round): Use explicit
1486 template argument list for std::min.
1488 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
1490 * doc/xml/manual/status_cxx2017.xml: Update C++17 status.
1491 * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for
1493 * doc/html/manual/status.html: Regenerate.
1495 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
1497 * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
1499 * configure: Regenerate.
1501 2022-01-17 Patrick Palka <ppalka@redhat.com>
1503 * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
1504 Conditionally define, and use it to conditionally include
1506 (from_chars): Use fast_float for float and double when
1509 2022-01-17 Patrick Palka <ppalka@redhat.com>
1511 * src/c++17/fast_float/LOCAL_PATCHES: Update.
1512 * src/c++17/fast_float/fast_float.h (from_chars_advanced): In
1513 case of over/underflow, return errc::result_out_of_range and don't
1516 2022-01-17 Patrick Palka <ppalka@redhat.com>
1518 * src/c++17/fast_float/LOCAL_PATCHES: Update.
1519 * src/c++17/fast_float/fast_float.h: Apply local modifications.
1521 2022-01-17 Patrick Palka <ppalka@redhat.com>
1523 * src/c++17/fast_float/LOCAL_PATCHES: New file.
1524 * src/c++17/fast_float/MERGE: New file.
1525 * src/c++17/fast_float/README.md: New file, copied from the
1526 fast_float repository.
1527 * src/c++17/fast_float/fast_float.h: New file, an amalgamation
1528 of the fast_float library.
1530 2022-01-17 Patrick Palka <ppalka@redhat.com>
1532 * src/c++17/floating_from_chars.cc: Include <bit>.
1533 (ascii_to_hexit, starts_with_ci): Conditionally define.
1534 (__floating_from_chars_hex): Conditionally define.
1535 (from_chars): Use __floating_from_chars_hex for
1536 chars_format::hex parsing of binary32/64 float/double.
1537 (testsuite/20_util/from_chars/7.cc): New test.
1538 * testsuite/20_util/from_chars/7.cc: New file.
1540 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
1542 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
1543 * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
1544 * include/Makefile.am: Add new header.
1545 * include/Makefile.in: Regenerate.
1546 * include/std/stacktrace: New header.
1547 * include/std/version (__cpp_lib_stacktrace): Define.
1548 * Makefile.in: Regenerate.
1549 * config.h.in: Regenerate.
1550 * configure: Regenerate.
1551 * doc/Makefile.in: Regenerate.
1552 * libsupc++/Makefile.in: Regenerate.
1553 * po/Makefile.in: Regenerate.
1554 * python/Makefile.in: Regenerate.
1555 * src/Makefile.am: Regenerate.
1556 * src/Makefile.in: Regenerate.
1557 * src/c++11/Makefile.in: Regenerate.
1558 * src/c++17/Makefile.in: Regenerate.
1559 * src/c++20/Makefile.in: Regenerate.
1560 * src/c++98/Makefile.in: Regenerate.
1561 * src/filesystem/Makefile.in: Regenerate.
1562 * testsuite/Makefile.in: Regenerate.
1563 * src/libbacktrace/Makefile.am: New file.
1564 * src/libbacktrace/Makefile.in: New file.
1565 * src/libbacktrace/backtrace-rename.h: New file.
1566 * src/libbacktrace/backtrace-supported.h.in: New file.
1567 * src/libbacktrace/config.h.in: New file.
1568 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
1570 * testsuite/20_util/stacktrace/entry.cc: New test.
1571 * testsuite/20_util/stacktrace/synopsis.cc: New test.
1572 * testsuite/20_util/stacktrace/version.cc: New test.
1574 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
1576 * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
1578 * doc/html/manual/status.html: Regenerate.
1580 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
1583 * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
1584 * include/Makefile.in: Regenerate.
1585 * testsuite/17_intro/headers/c++1998/103650.cc: New test.
1587 2022-01-17 Matthias Kretz <m.kretz@gsi.de>
1589 * include/experimental/bits/simd.h (__floating_point_flags): Do
1590 not rely on the presence of the math_errhandling macro.
1592 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
1594 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
1595 to qualified-id for dependent type.
1597 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
1599 * doc/xml/manual/status_cxx2020.xml: Update.
1600 * doc/html/manual/status.html: Regenerate.
1602 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
1603 Thomas Rodgers <trodgers@redhat.com>
1605 * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
1607 (_Sp_atomic): New class template.
1608 (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
1610 * include/bits/shared_ptr_base.h (__shared_count, __weak_count)
1611 (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
1612 * include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
1613 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
1615 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
1617 2022-01-15 Matthias Kretz <m.kretz@gsi.de>
1619 * include/experimental/bits/simd.h: Move feature detection bools
1620 and add __have_avx512bitalg, __have_avx512vbmi2,
1621 __have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
1622 __have_avx512vnni, __have_avx512vpopcntdq.
1623 (__detail::__machine_flags): New function which returns a unique
1624 uint64 depending on relevant -m and -f flags.
1625 (__detail::__odr_helper): New type alias for either an anonymous
1626 type or a type specialized with the __machine_flags number.
1627 (_SimdIntOperators): Change template parameters from _Impl to
1628 _Tp, _Abi because _Impl now has an __odr_helper parameter which
1629 may be _OdrEnforcer from the anonymous namespace, which makes
1630 for a bad base class.
1631 (many): Either add __odr_helper template parameter or mark as
1633 * include/experimental/bits/simd_detail.h: Add defines for
1634 AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
1635 AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
1636 * include/experimental/bits/simd_builtin.h: Add __odr_helper
1637 template parameter or mark as always_inline.
1638 * include/experimental/bits/simd_fixed_size.h: Ditto.
1639 * include/experimental/bits/simd_math.h: Ditto.
1640 * include/experimental/bits/simd_scalar.h: Ditto.
1641 * include/experimental/bits/simd_neon.h: Add __odr_helper
1643 * include/experimental/bits/simd_ppc.h: Ditto.
1644 * include/experimental/bits/simd_x86.h: Ditto.
1646 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
1648 * testsuite/22_locale/numpunct/members/char/3.cc:
1649 Require pt_PT locale instead of nl_NL.
1650 (test02): Use pt_PT locale instead of nl_NL.
1652 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
1657 * include/backward/binders.h (bind1st, bind2nd): Add deprecated
1659 * include/bits/refwrap.h (_Maybe_unary_or_binary_function):
1660 Disable deprecated warnings for base classes.
1661 (_Reference_wrapper_base): Likewise.
1662 * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
1663 * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
1664 * include/bits/stl_function.h (unary_function, binary_function):
1665 Add deprecated attribute.
1666 (unary_negate, not1, binary_negate, not2, ptr_fun)
1667 (pointer_to_unary_function, pointer_to_binary_function)
1668 (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
1669 (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
1670 (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
1672 * include/bits/stl_iterator.h: Disable deprecated warnings for
1673 std::iterator base classes.
1674 * include/bits/stl_iterator_base_types.h (iterator): Add
1675 deprecated attribute.
1676 * include/bits/stl_map.h (map::value_compare): Disable
1677 deprecated warnings for base class.
1678 * include/bits/stl_multimap.h (multimap::value_compare):
1680 * include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
1681 Add deprecated attribute.
1682 * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
1683 * include/bits/stream_iterator.h: Disable deprecated warnings.
1684 * include/bits/streambuf_iterator.h: Likewise.
1685 * include/ext/bitmap_allocator.h: Remove unary_function base
1687 * include/ext/functional: Disable deprecated warnings.
1688 * include/ext/rope: Likewise.
1689 * include/ext/throw_allocator.h: Likewise.
1690 * include/std/type_traits (result_of): Add deprecated attribute.
1691 * include/tr1/functional: Disable deprecated warnings.
1692 * include/tr1/functional_hash.h: Likewise.
1693 * testsuite/20_util/function_objects/binders/1.cc: Add
1694 -Wno-disable-deprecations.
1695 * testsuite/20_util/function_objects/binders/3113.cc: Likewise.
1696 * testsuite/20_util/function_objects/constexpr.cc: Add
1698 * testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
1699 * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
1700 * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
1702 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
1704 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
1706 * testsuite/20_util/reference_wrapper/24803.cc:
1708 * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
1709 C++20 and check for absence of nested types.
1710 * testsuite/20_util/shared_ptr/comparison/less.cc: Remove
1711 std::binary_function base class.
1712 * testsuite/20_util/temporary_buffer.cc: Add dg-warning.
1713 * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
1714 std::iterator base class.
1715 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
1717 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
1719 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
1721 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
1723 * testsuite/24_iterators/istreambuf_iterator/92285.cc:
1725 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
1727 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
1729 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
1731 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
1733 * testsuite/25_algorithms/copy/34595.cc:
1735 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
1737 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
1738 Disable deprecated warnings.
1739 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
1741 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
1743 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
1745 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
1747 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
1749 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
1751 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
1753 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
1755 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
1757 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
1759 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
1761 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
1763 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
1765 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
1767 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
1769 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
1771 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
1773 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
1775 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
1777 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
1779 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
1781 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
1783 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
1785 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
1787 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
1789 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
1791 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
1793 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
1795 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
1797 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
1799 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
1801 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
1803 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
1805 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
1807 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
1809 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
1811 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
1813 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
1815 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
1817 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
1819 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
1821 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
1823 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
1825 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
1827 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
1829 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
1831 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
1833 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
1835 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
1837 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
1839 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
1840 Disable deprecated warnings.
1841 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
1843 * testsuite/util/regression/trait/erase_if_fn.hpp: Remove
1844 std::unary_function base classes.
1845 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
1846 Remove std::iterator base classes.
1848 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
1850 * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
1851 Correct type of macro value.
1852 (shared_ptr): Add additional friend declarations.
1853 (make_shared, allocate_shared): Constrain existing overloads and
1854 remove static_assert.
1855 * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
1857 (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
1858 specialization for use with make_shared_for_overwrite.
1859 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
1860 (_Sp_counted_array_base): New class template.
1861 (_Sp_counted_array): New class template.
1862 (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
1863 New constructor for allocating shared arrays.
1864 (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
1865 * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
1867 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
1868 (__cpp_lib_smart_ptr_for_overwrite): New macro.
1869 * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
1871 * testsuite/20_util/shared_ptr/creation/array.cc: New test.
1872 * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
1873 * testsuite/20_util/shared_ptr/creation/version.cc: New test.
1874 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
1875 feature test macro. Test non-trivial default-initialization.
1877 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
1879 * include/bits/stl_construct.h (_Construct, _Construct_novalue):
1880 Also cast away cv-qualifiers when converting pointer to void.
1881 * testsuite/20_util/allocator/void.cc: Test construct function
1882 with cv-qualified types.
1884 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
1887 * include/bits/stl_iterator.h (common_iterator): Use
1888 std::construct_at instead of placement new.
1889 * testsuite/24_iterators/common_iterator/1.cc: Check copy
1890 construction is usable in constant expressions.
1892 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
1894 * doc/xml/manual/status_cxx2011.xml: Document new tokens
1895 accepted by std::random_device constructor.
1896 * doc/html/manual/status.html: Regenerate.
1898 2022-01-12 Patrick Palka <ppalka@redhat.com>
1900 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
1903 2022-01-12 Patrick Palka <ppalka@redhat.com>
1906 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
1907 Track the excess precision separately from the effective
1908 precision. Avoid overflow in bounds check by splitting it into
1910 (__floating_to_chars_precision): Avoid overflow in bounds checks
1912 * testsuite/20_util/to_chars/103955.cc: New test.
1914 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
1917 * include/Makefile.am: Install <source_location> for
1919 * include/Makefile.in: Regenerate.
1920 * include/std/version (__cpp_lib_source_location): Define for
1923 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
1925 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
1926 Add neoxcept (LWG 3593).
1928 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
1930 * include/std/ranges (ranges::__detail::__box): Add constexpr to
1931 assignment operators (LWG 3572).
1932 * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
1933 view that uses copyable-box.
1935 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
1938 * include/Makefile.am: Install <coroutine> for freestanding.
1939 * include/Makefile.in: Regenerate.
1940 * include/std/coroutine: Adjust headers and preprocessor
1942 (__coroutine_traits_impl): Use concepts when available.
1943 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
1945 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
1947 * include/std/ostream (operator<<(basic_ostream&, charT)):
1948 Use unformatted input if no padding is needed.
1949 (operator<<(basic_ostream<char>&, char)): Likewise.
1951 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
1954 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
1956 * include/std/variant (__cpp_lib_variant): Only define C++20
1957 value when the compiler is known to support conditionally
1958 trivial destructors.
1959 * include/std/version (__cpp_lib_variant): Likewise.
1961 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
1963 * include/bits/stl_iterator.h (common_iterator): Add constexpr
1964 to all member functions (LWG 3574).
1965 * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
1966 tests as constant expressions.
1967 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
1969 2022-01-10 Jakub Jelinek <jakub@redhat.com>
1972 * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
1973 (time_get::_M_extract_via_format): Declare new method with
1974 __time_get_state& as an extra argument.
1975 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
1976 __state argument, set various fields in it while parsing. Handle %j,
1977 %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
1978 for %p immediately. Add a wrapper around the method without the
1979 __state argument for backwards compatibility.
1980 (_M_extract_num): Remove all __len == 4 special cases.
1981 (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
1982 initialize __state, pass it to _M_extract_via_format and finalize it
1984 (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
1985 69-99 to 1969-1999. For 3-4 digit parsed years use that as year.
1986 (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
1987 version, don't call do_get but call _M_extract_via_format instead to
1989 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
1990 with extra __time_get_state and __time_get_state::_M_finalize_state.
1991 * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
1992 day_of_the_year): New functions in anon namespace.
1993 (mon_yday): New var in anon namespace.
1994 (__time_get_state::_M_finalize_state): Define.
1995 * testsuite/22_locale/time_get/get/char/4.cc: New test.
1996 * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
1997 * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
1998 as year 197AD instead of error.
1999 * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
2000 year 2001 instead of error.
2001 * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
2002 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
2003 197 as year 197AD instead of error.
2004 * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
2005 1 as year 2001 instead of error.
2006 * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
2008 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
2011 * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
2012 nothing for freestanding builds.
2013 (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
2014 * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
2015 with --without-headers. Do not use GCC_HEADER_STDINT for
2016 freestanding builds.
2017 * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
2018 for freestanding builds.
2019 * configure: Regenerate.
2020 * Makefile.in: Regenerate.
2021 * doc/Makefile.in: Regenerate.
2022 * include/Makefile.in: Regenerate.
2023 * libsupc++/Makefile.in: Regenerate.
2024 * po/Makefile.in: Regenerate.
2025 * python/Makefile.in: Regenerate.
2026 * src/Makefile.in: Regenerate.
2027 * src/c++11/Makefile.in: Regenerate.
2028 * src/c++17/Makefile.in: Regenerate.
2029 * src/c++20/Makefile.in: Regenerate.
2030 * src/c++98/Makefile.in: Regenerate.
2031 * src/filesystem/Makefile.in: Regenerate.
2032 * testsuite/Makefile.in: Regenerate.
2034 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
2036 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
2037 Add dg-timeout-factor directive.
2038 * testsuite/28_regex/basic_regex/84110.cc: Likewise.
2039 * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
2040 * testsuite/28_regex/match_results/102667.cc: Likewise.
2042 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
2044 * doc/xml/manual/using.xml: Update documentation around default
2046 * doc/html/*: Regenerate.
2048 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
2051 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
2052 * src/c++17/Makefile.in: Regenerate.
2054 2022-01-09 Sandra Loosemore <sandra@codesourcery.com>
2056 * testsuite/18_support/type_info/constexpr.cc: Add explicit
2057 -fdelete-null-pointer-checks option.
2059 2022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
2060 Jonathan Wakely <jwakely@redhat.com>
2063 * include/bits/forward_list.tcc (forward_list::merge): Check for
2065 * testsuite/23_containers/forward_list/operations/merge.cc: New test.
2067 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
2069 * include/bits/regex.h (basic_regex, match_results): Qualify
2070 name in friend declaration, to work around Clang bug.
2072 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
2074 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
2076 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
2079 * include/std/charconv (__from_chars_alpha_to_num): Return
2080 char instead of unsigned char. Change invalid return value to
2081 127 instead of using numeric trait.
2082 (__from_chars_alnum): Fix comment. Do not use std::isdigit.
2083 Change type of variable to char.
2085 2022-01-05 François Dumont <fdumont@gcc.gnu.org>
2088 * include/bits/hashtable_policy.h
2089 (_Hashtable_hash_traits<_Hash>): New.
2090 (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
2091 (_Hashtable_base<>::_M_key_equals): New.
2092 (_Hashtable_base<>::_M_equals): Use latter.
2093 (_Hashtable_base<>::_M_key_equals_tr): New.
2094 (_Hashtable_base<>::_M_equals_tr): Use latter.
2095 * include/bits/hashtable.h
2096 (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
2097 (_Hashtable<>::find): Loop through elements to look for key if size is lower
2098 than __small_size_threshold().
2099 (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
2100 (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
2101 (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
2102 (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
2103 (_Hashtable<>::_M_find_before_node(const key_type&)): New.
2104 (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
2105 (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
2106 * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
2107 * testsuite/util/testsuite_performance.h
2108 (report_performance): Use 9 width to display memory.
2109 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
2110 New performance test case.
2112 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2115 * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
2116 Relax constraints on string_view parameter.
2117 * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
2119 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
2121 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2123 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
2125 * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
2126 * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
2127 * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
2129 (type_info::__equal): Define alias symbol.
2130 * libsupc++/typeinfo (type_info::before): Combine different
2131 implementations into one.
2132 (type_info::operator==): Likewise. Use address equality for
2133 constant evaluation. Call __equal for targets that require the
2134 definition to be non-inline.
2135 * testsuite/18_support/type_info/constexpr.cc: New test.
2137 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2139 * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
2140 class and virtual functions as 'final'.
2141 (io_category_instance): Use constinit union to make the object
2143 * src/c++11/future.cc (future_error_category): Define class and
2144 virtual functions as 'final'.
2145 (future_category_instance): Use constinit union.
2147 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2149 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
2150 versioned namespace from the type name that is printed.
2152 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2154 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
2155 printer for std::regex NFA states.
2157 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2159 * testsuite/23_containers/forward_list/operations/1.cc: Fill in
2160 placeholders in comments.
2161 * testsuite/23_containers/forward_list/operations/2.cc:
2163 * testsuite/23_containers/forward_list/operations/3.cc:
2165 * testsuite/23_containers/forward_list/operations/4.cc:
2167 * testsuite/23_containers/forward_list/operations/5.cc:
2169 * testsuite/23_containers/forward_list/operations/6.cc:
2171 * testsuite/23_containers/forward_list/operations/7.cc:
2174 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2177 * include/bits/stl_deque.h (operator-): Do not use 0 as null
2180 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2182 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
2183 Use std::_Construct for construct.
2185 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2188 * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
2189 * doc/html/faq.html: Regenerate.
2191 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2193 * include/bits/regex.h (__regex_algo_impl): Change __policy and
2194 __match_mode template parameters to be function parameters.
2195 (regex_match, regex_search): Pass policy and match mode as
2197 * include/bits/regex.tcc (__regex_algo_impl): Change template
2198 parameters to function parameters.
2199 * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
2200 'if constexpr' for conditions using template parameters.
2201 (_RegexTranslator): Likewise.
2202 * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
2204 * testsuite/util/testsuite_regex.h (regex_match_debug)
2205 (regex_search_debug): Move template arguments to function
2208 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2210 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
2211 results even if the match failed.
2213 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
2215 * include/bits/regex_compiler.tcc: Adjust all calls to
2216 __throw_regex_error.
2217 * include/bits/regex_error.h (__throw_regex_error): Add noreturn
2219 * include/bits/regex_scanner.tcc: Likewise.
2220 * src/c++11/regex.cc (desc): New helper function.
2221 (regex_error::regex_error(error_type)): Use desc to get a string
2222 corresponding to the error code.
2225 Copyright (C) 2022 Free Software Foundation, Inc.
2227 Copying and distribution of this file, with or without modification,
2228 are permitted in any medium without royalty provided the copyright
2229 notice and this notice are preserved.