1 2023-04-20 Jonathan Wakely <jwakely@redhat.com>
3 Backported from master:
4 2022-11-29 Jonathan Wakely <jwakely@redhat.com>
9 * include/bits/vector.tcc (vector::_M_fill_insert): Copy
10 _M_start and _M_finish members before allocating.
11 (vector::_M_default_append): Likewise.
12 (vector::_M_range_insert): Likewise.
14 2023-04-20 Jonathan Wakely <jwakely@redhat.com>
16 Backported from master:
17 2023-04-04 Jonathan Wakely <jwakely@redhat.com>
19 * doc/xml/manual/extensions.xml: Remove std::bad_exception from
21 * doc/html/manual/ext_demangling.html: Regenerate.
23 2023-04-20 Jonathan Wakely <jwakely@redhat.com>
25 Backported from master:
26 2023-04-05 Jonathan Wakely <jwakely@redhat.com>
28 * include/bits/regex.h (sub_match::swap): New function.
29 * testsuite/28_regex/sub_match/lwg3204.cc: New test.
31 2023-04-20 Jonathan Wakely <jwakely@redhat.com>
33 Backported from master:
34 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
37 * include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use
38 std::use_facet instead of cached _M_num_get facet.
39 (istream::operator>>(short&)): Likewise.
40 (istream::operator>>(int&)): Likewise.
41 * include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use
42 std::use_facet instead of cached _M_num_put facet.
44 2023-04-20 Jonathan Wakely <jwakely@redhat.com>
46 Backported from master:
47 2023-01-15 Jonathan Wakely <jwakely@redhat.com>
49 * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from
52 2023-04-20 Jonathan Wakely <jwakely@redhat.com>
54 Backported from master:
55 2023-03-22 Jonathan Wakely <jwakely@redhat.com>
57 * include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)):
58 Add overload, as per LWG 3893.
59 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
60 Check assignment from nullptr.
62 2023-04-20 Jonathan Wakely <jwakely@redhat.com>
64 Backported from master:
65 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
67 * include/std/expected (expected::value() &): Use const lvalue
68 for unex member passed to bad_expected_access constructor, as
71 2023-04-20 Jonathan Wakely <jwakely@redhat.com>
73 Backported from master:
74 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
76 * include/std/variant (variant::operator=): Implement resolution
78 * testsuite/20_util/variant/lwg3585.cc: New test.
80 2023-04-12 Patrick Palka <ppalka@redhat.com>
82 Backported from master:
83 2023-04-12 Patrick Palka <ppalka@redhat.com>
85 * src/c++17/floating_from_chars.cc: Include <algorithm>,
86 <iterator>, <limits> and <cstdint>.
88 2023-03-30 Jonathan Wakely <jwakely@redhat.com>
90 Backported from master:
91 2023-03-29 Jonathan Wakely <jwakely@redhat.com>
94 * include/std/optional (transform): Use std::remove_cv_t.
95 * testsuite/20_util/optional/monadic/pr109242.cc: New test.
97 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
99 Backported from master:
100 2022-12-16 Jonathan Wakely <jwakely@redhat.com>
103 * include/bits/shared_ptr_base.h (weak_ptr::operator=):
104 Implement as move-and-swap exactly as specified in the standard.
105 * testsuite/20_util/weak_ptr/cons/self_move.cc: New test.
107 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
109 Backported from master:
110 2022-11-03 Jonathan Wakely <jwakely@redhat.com>
112 * include/bits/ranges_algobase.h (__detail::__copy_or_move):
113 Move output iterator.
114 * testsuite/25_algorithms/copy/constrained.cc: Check copying to
115 move-only output iterator.
117 2023-03-28 Björn Schäpers <bjoern@hazardy.de>
119 Backported from master:
120 2023-01-14 Björn Schäpers <bjoern@hazardy.de>
122 * include/std/stacktrace (stacktrace_entry::_S_demangle): Use
123 raw __name if __cxa_demangle could not demangle it.
125 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
127 Backported from master:
128 2022-12-12 Jonathan Wakely <jwakely@redhat.com>
130 * include/std/stacktrace (operator<<): Only output to narrow
132 * testsuite/19_diagnostics/stacktrace/synopsis.cc:
134 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
136 Backported from master:
137 2022-12-09 Jonathan Wakely <jwakely@redhat.com>
139 * include/bits/chrono.h (duration_cast, floor, round, abs, ceil)
140 (time_point_cast): Add [[nodiscard]] attribute and doxygen
142 (treat_as_floating_point): Add doxygen commen.
144 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
146 Backported from master:
147 2022-12-09 Jonathan Wakely <jwakely@redhat.com>
149 * include/bits/chrono.h (duration, time_point): Change 'struct'
152 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
154 Backported from master:
155 2023-01-26 Jonathan Wakely <jwakely@redhat.com>
158 * include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add
160 (_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull
162 * testsuite/23_containers/map/modifiers/108554.cc: New test.
164 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
166 Backported from master:
167 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
169 * include/std/bitset (bitset::_M_copy_to_string): Find set bits
170 instead of iterating over individual bits.
172 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
174 Backported from master:
175 2022-09-15 Jonathan Wakely <jwakely@redhat.com>
177 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_PRE_LOCK):
179 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK): ... this, add try_lock flag.
180 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK_FAILED): New macro using
182 (_GLIBCXX_TSAN_MUTEX_POST_LOCK): Rename to ...
183 (_GLIBCXX_TSAN_MUTEX_LOCKED): ... this.
184 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK): Remove invalid flag.
185 (_GLIBCXX_TSAN_MUTEX_POST_UNLOCK): Remove invalid flag.
186 (_Sp_atomic::_Atomic_count::lock): Use new macros.
188 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
190 Backported from master:
191 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
193 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_DESTROY)
194 (_GLIBCXX_TSAN_MUTEX_PRE_LOCK, _GLIBCXX_TSAN_MUTEX_POST_LOCK)
195 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK, _GLIBCXX_TSAN_MUTEX_POST_UNLOCK)
196 (_GLIBCXX_TSAN_MUTEX_PRE_SIGNAL, _GLIBCXX_TSAN_MUTEX_POST_SIGNAL):
197 Define macros for TSan annotation functions.
198 (_Sp_atomic::_Atomic_count): Add annotations.
200 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
202 Backported from master:
203 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
205 * include/std/memory_resource (new_delete_resource): Add
206 nodiscard, returns_nonnull and const attributes.
207 (null_memory_resource): Likewise.
208 (set_default_resource, get_default_resource): Add returns_nonnull
210 (memory_resource::is_equal): Add nodiscard attribute.
211 (operator==, operator!=): Likewise.
213 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
215 Backported from master:
216 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
219 (_State_baseV2::__setter(exception_ptr&, promise&)): Add
220 assertion for LWG 2276 precondition.
221 * testsuite/30_threads/promise/members/set_exception_neg.cc:
224 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
226 Backported from master:
227 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
229 * include/c_global/cstddef (byte): Add always_inline attribute
230 to all operator overloads.
231 (to_integer): Add always_inline attribute.
233 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
235 Backported from master:
236 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
238 * include/std/system_error (__adl_only::make_error_code): Add
240 (__adl_only::make_error_condition): Likewise.
241 (error_code::error_code(ErrorCodeEnum)): Add using-declaration
242 for deleted function.
243 (error_condition::error_condition(ErrorConditionEnum)):
245 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: New test.
246 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc: New test.
248 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
250 Backported from master:
251 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
253 * include/bits/ios_base.h (io_category): Add const and nodiscard
255 (make_error_code, make_error_condition): Add nodiscard.
256 * include/std/future (future_category): Add const and nodiscard.
257 (make_error_code, make_error_condition): Add nodiscard.
258 * include/std/system_error (generic_category system_category):
259 Add nodiscard. Replace _GLIBCXX_CONST with C++11 attribute.
260 (error_code::value, error_code::category, error_code::operator bool)
261 (error_condition::value, error_condition::category)
262 (error_condition::operator bool, make_error_code)
263 (make_error_condition, operator==, operator!=, operator<=>): Add
266 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
268 Backported from master:
269 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
271 * include/bits/std_thread.h (thread, thread::id): Improve
273 * include/std/future: Likewise.
274 * include/std/thread (jthread): Likewise.
276 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
278 Backported from master:
279 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
281 * include/std/system_error: Improve doxygen comments.
283 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
285 Backported from master:
286 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
288 * include/ext/throw_allocator.h: Use reserved names for
291 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
293 Backported from master:
294 2022-11-25 Jonathan Wakely <jwakely@redhat.com>
296 * acinclude.m4 (GLIBCXX_CHECK_UCHAR_H): Don't use AC_MSG_RESULT
297 unless the AC_MSG_CHECKING happened.
298 * configure: Regenerate.
300 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
302 Backported from master:
303 2023-01-12 Jonathan Wakely <jwakely@redhat.com>
305 * doc/xml/manual/abi.xml: Add latest library versions.
306 * doc/html/manual/abi.html: Regenerate.
308 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
310 Backported from master:
311 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
313 * include/bits/char_traits.h (char_traits::copy): Return without
314 using memcpy if n==0.
315 (char_traits::assign): Likewise for memset.
317 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
319 Backported from master:
320 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
323 * include/bits/basic_string.h (basic_string::_M_is_local()): Add
324 hint for compiler that local strings fit in the local buffer.
326 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
328 Backported from master:
329 2023-03-01 Jonathan Wakely <jwakely@redhat.com>
331 * include/bits/cow_string.h: Fix typo in comment.
333 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
335 Backported from master:
336 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
338 * include/experimental/optional: Fix header name in comment.
340 2023-03-28 Jonathan Wakely <jwakely@redhat.com>
342 Backported from master:
343 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
346 * include/c_compatibility/stdatomic.h: Change copyright line to
347 be consistent with other headers contributed under DCO terms.
348 * include/std/expected: Add full stop to copyright line.
350 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
352 Backported from master:
353 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
355 * include/experimental/bits/simd_x86.h
356 (_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0
357 with __RECIPROCAL_MATH__.
359 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
361 Backported from master:
362 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
364 * include/experimental/bits/simd_detail.h: Don't define
365 _GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang.
366 * include/experimental/bits/simd_x86.h (_S_divides): Remove
369 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
371 Backported from master:
372 2023-03-21 Matthias Kretz <m.kretz@gsi.de>
374 * testsuite/experimental/simd/tests/operators.cc: Clang doesn't
375 define __GCC_IEC_559. Use __STDC_IEC_559__ instead.
377 2023-03-20 François Dumont <fdumont@gcc.gnu.org>
379 Backported from master:
380 2022-11-16 François Dumont <fdumont@gcc.gnu.org>
382 * python/libstdcxx/v6/printers.py (FilteringTypePrinter): Rename 'match' field
383 'template'. Add self.targ1 to specify the first template parameter of the instantiation
385 (add_one_type_printer): Add targ1 optional parameter, default to None.
386 Use gdb.types.get_basic_type to compare the type to recognize and the type
387 returned from the typedef lookup.
388 (register_type_printers): Adapt calls to add_one_type_printers.
390 2023-03-20 François Dumont <fdumont@gcc.gnu.org>
392 Backported from master:
393 2022-10-03 François Dumont <fdumont@gcc.gnu.org>
395 * python/libstdcxx/v6/printers.py (Printer.add_version): Do not add version
396 namespace for __cxx11 symbols.
397 (add_one_template_type_printer): Likewise.
398 (add_one_type_printer): Likewise.
399 (FilteringTypePrinter._recognizer.recognize): Add a workaround for std::string & al
400 ambiguous typedef matching both std:: and std::__cxx11:: symbols.
401 * testsuite/libstdc++-prettyprinters/cxx17.cc: Remove obsolete
402 \#define _GLIBCXX_USE_CXX11_ABI 0.
403 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. Adapt test to accept
405 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
406 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
407 * testsuite/libstdc++-prettyprinters/80276.cc: Likewise and remove xfail for c++20
409 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
411 2023-03-20 François Dumont <fdumont@gcc.gnu.org>
413 Backported from master:
414 2022-09-22 François Dumont <fdumont@gcc.gnu.org>
416 * python/libstdcxx/v6/printers.py: Remove ptinter registration for non-existing
417 types std::__debug::unique_ptr, std::__debug::stack, std::__debug::queue,
418 std::__debug::priority_queue.
420 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
422 Backported from master:
423 2023-03-10 Jonathan Wakely <jwakely@redhat.com>
426 * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker):
427 Remove self-recursion in __init__. Add missing _supports.
428 * testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count()
431 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
434 * include/std/expected (expected<void>::expected(in_place_t)):
435 Remove template-head.
437 2023-03-20 Jonathan Wakely <jwakely@redhat.com>
440 * include/std/coroutine (hash<>::operator()): Add const.
441 * testsuite/18_support/coroutines/hash.cc: New test.
443 2023-03-10 Thomas W Rodgers <rodgert@twrodgers.com>
445 Backported from master:
446 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
449 * include/std/atomic (atomic_flag_wait): Add.
450 (atomic_flag_wait_explicit): Add.
451 (atomic_flag_notify): Add.
452 (atomic_flag_notify_explicit): Add.
453 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc:
454 Add test case to cover missing atomic_flag free functions.
456 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
458 Backported from master:
459 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
462 * include/experimental/bits/simd.h (__vector_broadcast):
463 Implement via __vector_broadcast_impl instead of
464 __call_with_n_evaluations + 2 lambdas.
465 (__vector_broadcast_impl): New.
467 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
469 Backported from master:
470 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
472 * include/experimental/bits/simd_builtin.h (_S_set): Compare as
473 int. The actual range of these indexes is very small.
475 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
477 Backported from master:
478 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
480 * include/experimental/bits/simd_x86.h (_S_bit_shift_left)
481 (_S_bit_shift_right): Declare constexpr. The implementation was
482 already expecting constexpr evaluation.
484 2023-02-23 Matthias Kretz <m.kretz@gsi.de>
486 Backported from master:
487 2023-02-20 Matthias Kretz <m.kretz@gsi.de>
489 * include/experimental/bits/simd.h (__extract_part, split):
490 Use reserved name for template parameter.
492 2023-02-21 Jonathan Wakely <jwakely@redhat.com>
494 Backported from master:
495 2022-08-31 Jonathan Wakely <jwakely@redhat.com>
497 * include/bits/refwrap.h (reference_wrapper::operator()): Add
498 noexcept-specifier and use __invoke_result instead of result_of.
499 * testsuite/20_util/reference_wrapper/invoke-noexcept.cc: New test.
501 2023-02-21 Jonathan Wakely <jwakely@redhat.com>
503 Backported from master:
504 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
507 * include/bits/fs_path.h (path::path(string_view, _Type))
508 (path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline
510 * src/c++17/fs_path.cc: ... here.
511 * testsuite/27_io/filesystem/path/108636.cc: New test.
513 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
515 Backported from master:
516 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
518 * include/experimental/bits/simd_math.h (__hypot): Bitcasting
519 between scalars requires the __bit_cast helper function instead
522 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
524 Backported from master:
525 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
527 * include/experimental/bits/simd_x86.h
528 (_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less)
529 (_SimdImplX86::_S_less_equal): Do not call
530 __builtin_is_constant_evaluated in constexpr-if.
532 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
534 Backported from master:
535 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
537 * testsuite/experimental/simd/tests/bits/verify.h
538 (verify::verify): Use %zx for size_t in format string.
540 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
542 Backported from master:
543 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
545 * testsuite/experimental/simd/README.md: Document the timeout
546 and timeout-factor directives. Minor typo fixed.
548 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
550 Backported from master:
551 2023-02-16 Matthias Kretz <m.kretz@gsi.de>
553 * include/experimental/bits/simd.h
554 (_SimdWrapper::_M_is_constprop_none_of)
555 (_SimdWrapper::_M_is_constprop_all_of): Return false unless the
556 computed result still satisfies __builtin_constant_p.
558 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
560 Backported from master:
561 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com>
564 * include/std/atomic (atomic_flag_test): Add.
565 (atomic_flag_test_explicit): Add.
566 * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add
567 test case to cover missing atomic_flag free functions.
568 * testsuite/29_atomics/atomic_flag/test/implicit.cc:
571 2023-02-10 Jakub Jelinek <jakub@redhat.com>
573 Backported from master:
574 2022-11-24 Jakub Jelinek <jakub@redhat.com>
577 * src/c++17/fast_float/fast_float.h: Partial merge from fast_float
578 2ef9abbcf6a11958b6fa685a89d0150022e82e78 commit.
580 2023-02-10 Jakub Jelinek <jakub@redhat.com>
582 Backported from master:
583 2022-11-07 Jakub Jelinek <jakub@redhat.com>
586 * src/c++17/fast_float/fast_float.h: Partial merge from fast_float
587 662497742fea7055f0e0ee27e5a7ddc382c2c38e commit.
588 * testsuite/20_util/from_chars/pr107468.cc: New test.
590 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
592 Backported from master:
593 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
595 * src/c++11/random.cc (random_device::_M_fini): Do not try to
596 close the file handle if the target doesn't support the
597 /dev/random and /dev/urandom files.
599 2023-02-02 Jonathan Wakely <jwakely@redhat.com>
601 Backported from master:
602 2023-02-01 Jonathan Wakely <jwakely@redhat.com>
604 * config/os/generic/error_constants.h (errc::value_too_large)
606 * src/c++11/system_error.cc
607 (system_category::default_error_condition) [__AVR__]: Only match
608 recognize values equal to EDOM, ERANGE, ENOSYS and EINTR.
609 * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check
610 for ENOENT etc. in switch.
611 (fs::remove_all) [__AVR__]: Likewise.
612 * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open,
615 2023-02-02 Patrick Palka <ppalka@redhat.com>
617 Backported from master:
618 2022-11-06 Patrick Palka <ppalka@redhat.com>
620 * include/bits/atomic_wait.h (_detail::__platform_wait_alignment):
621 Declare inline. Remove redundant static specifier.
622 (__detail::__atomic_spin_count_relax): Declare inline.
623 (__detail::__atomic_spin_count): Likewise.
624 * include/bits/regex_automaton.h (__detail::_S_invalid_state_id):
625 Declare inline for C++17. Declare constexpr. Remove
626 redundant const and static specifiers.
627 * include/bits/regex_error.h (regex_constants::error_collate):
628 Declare inline for C++17 as per P0607R0.
629 (regex_constants::error_ctype): Likewise.
630 (regex_constants::error_escape): Likewise.
631 (regex_constants::error_backref): Likewise.
632 (regex_constants::error_brack): Likewise.
633 (regex_constants::error_paren): Likewise.
634 (regex_constants::error_brace): Likewise.
635 (regex_constants::error_badbrace): Likewise.
636 (regex_constants::error_range): Likewise.
637 (regex_constants::error_space): Likewise.
638 (regex_constants::error_badrepeat): Likewise.
639 (regex_constants::error_complexity): Likewise.
640 (regex_constants::error_stack): Likewise.
641 * include/ext/concurrence.h (__gnu_cxx::__default_lock_policy):
642 Likewise. Remove redundant static specifier.
643 * include/pstl/execution_defs.h (execution::seq): Declare inline
644 for C++17 as per P0607R0.
645 (execution::par): Likewise.
646 (execution::par_unseq): Likewise.
647 (execution::unseq): Likewise.
649 2023-01-18 Jonathan Wakely <jwakely@redhat.com>
651 Backported from master:
652 2022-12-22 Jonathan Wakely <jwakely@redhat.com>
655 * src/c++11/compatibility-condvar.cc (__nothrow_wait_cv::wait):
656 Access private data member of base class and call its wait
659 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
661 Backported from master:
662 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
665 * include/bits/atomic_wait.h (__waiter_pool_base::_M_notify):
666 Move increment of _M_ver here.
667 [!_GLIBCXX_HAVE_PLATFORM_WAIT]: Lock mutex around increment.
668 Use relaxed memory order and always notify all waiters.
669 (__waiter_base::_M_do_wait) [!_GLIBCXX_HAVE_PLATFORM_WAIT]:
670 Check value again after locking mutex.
671 (__waiter_base::_M_notify): Remove increment of _M_ver.
673 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
675 Backported from master:
676 2023-01-05 Jonathan Wakely <jwakely@redhat.com>
679 * include/std/chrono (hh_mm_ss): Do not use chrono::abs if
680 duration rep is unsigned. Remove incorrect noexcept-specifier.
681 * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep. Check
682 floating-point representations. Check default construction.
684 2022-12-21 Jonathan Wakely <jwakely@redhat.com>
686 Backported from master:
687 2022-11-23 Jonathan Wakely <jwakely@redhat.com>
690 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
691 Use a static buffer with space after it.
693 2022-12-21 Jonathan Wakely <jwakely@redhat.com>
695 Backported from master:
696 2022-12-16 Jonathan Wakely <jwakely@redhat.com>
698 * include/std/expected (expected::_M_swap_val_unex): Guard the
700 (expected::swap): Move is_swappable
701 requirement from static_assert to constraint.
703 (operator==): Remove noexcept-specifier.
704 * testsuite/20_util/expected/swap.cc: Check swapping of
705 types without non-throwing move constructor. Check constraints
707 * testsuite/20_util/expected/unexpected.cc: Check constraints on
709 * testsuite/20_util/expected/equality.cc: New test.
711 2022-12-14 Jonathan Wakely <jwakely@redhat.com>
713 Backported from master:
714 2022-12-14 Jonathan Wakely <jwakely@redhat.com>
717 * include/std/stacktrace (basic_stracktrace::_Impl): Do not
718 multiply N by sizeof(value_type) when allocating.
720 2022-11-24 Jonathan Wakely <jwakely@redhat.com>
722 Backported from master:
723 2022-09-15 Jonathan Wakely <jwakely@redhat.com>
725 * include/std/memory: Do not include <bits/stl_algobase.h>.
727 2022-11-24 Jonathan Wakely <jwakely@redhat.com>
729 Backported from master:
730 2022-11-11 Jonathan Wakely <jwakely@redhat.com>
732 * testsuite/20_util/tuple/swap.cc (MoveOnly::operator==): Add
734 * testsuite/26_numerics/valarray/87641.cc (X::operator==):
737 2022-11-24 Jonathan Wakely <jwakely@redhat.com>
739 Backported from master:
740 2022-11-02 Jonathan Wakely <jwakely@redhat.com>
742 * include/std/expected (expected::_M_invalid): Remove.
744 2022-11-24 Jonathan Wakely <jwakely@redhat.com>
746 Backported from master:
747 2022-11-21 Jonathan Wakely <jwakely@redhat.com>
749 * include/bits/chrono.h (duration): Check preconditions on
750 template arguments before using them.
752 2022-11-24 Jonathan Wakely <jwakely@redhat.com>
754 Backported from master:
755 2022-10-28 Jonathan Wakely <jwakely@redhat.com>
757 * include/bits/fs_path.h (path::filename()): Fix dangling
760 2022-11-24 Jonathan Wakely <jwakely@redhat.com>
762 Backported from master:
763 2022-09-14 Jonathan Wakely <jwakely@redhat.com>
765 * doc/xml/manual/intro.xml: Document LWG 1203.
766 * doc/html/*: Regenerate.
768 2022-11-24 Jonathan Wakely <jwakely@redhat.com>
770 Backported from master:
771 2022-09-07 Jonathan Wakely <jwakely@redhat.com>
773 * include/std/barrier: Add missing runtime exception.
775 2022-11-24 Jonathan Wakely <jwakely@redhat.com>
777 Backported from master:
778 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
780 * include/bits/fs_dir.h (directory_iterator): Add comparison
781 with std::default_sentinel_t. Remove redundant operator!= for
783 * (recursive_directory_iterator): Likewise.
784 * include/bits/iterator_concepts.h [!__cpp_lib_concepts]
785 (default_sentinel_t, default_sentinel): Define even if concepts
787 * include/bits/regex.h (regex_iterator): Add comparison with
788 std::default_sentinel_t. Remove redundant operator!= for C++20.
789 (regex_token_iterator): Likewise.
790 (regex_token_iterator::_M_end_of_seq()): Add noexcept.
791 * testsuite/27_io/filesystem/iterators/lwg3719.cc: New test.
792 * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc:
794 * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc:
797 2022-11-24 Jonathan Wakely <jwakely@redhat.com>
799 Backported from master:
800 2022-09-23 Jonathan Wakely <jwakely@redhat.com>
803 * include/std/type_traits (__is_nothrow_invocable): Remove.
804 (__is_invocable_impl::__nothrow_type): New member type which
805 checks if the conversion can throw.
806 (__is_nt_invocable_impl): Replace class template with alias
807 template to __is_nt_invocable_impl::__nothrow_type.
808 * testsuite/20_util/is_nothrow_invocable/91456.cc: New test.
809 * testsuite/20_util/is_nothrow_convertible/value.cc: Remove
810 macro used by value_ext.cc test.
811 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Remove
812 test for non-standard __is_nothrow_invocable trait.
814 2022-11-22 Jonathan Wakely <jwakely@redhat.com>
817 * include/bits/fs_path.h (filesystem::swap(path&, path&)):
818 Replace with abbreviated function template.
819 * include/experimental/bits/fs_path.h (filesystem::swap):
821 * testsuite/27_io/filesystem/iterators/106201.cc: New test.
822 * testsuite/experimental/filesystem/iterators/106201.cc: New test.
824 2022-11-22 Jonathan Wakely <jwakely@redhat.com>
826 Backported from master:
827 2022-11-22 Jonathan Wakely <jwakely@redhat.com>
830 * src/c++17/memory_resource.cc (pool_sizes): Disable large pools
831 for targets with 16-bit int.
833 2022-11-14 Jonathan Wakely <jwakely@redhat.com>
835 * include/bits/mofunc_impl.h (move_only_function::__param_t):
836 Use __is_scalar instead of is_trivially_copyable.
837 * testsuite/20_util/move_only_function/call.cc: Check parameters
838 involving incomplete types.
840 2022-11-14 Jonathan Wakely <jwakely@redhat.com>
842 Backported from master:
843 2022-11-11 Jonathan Wakely <jwakely@redhat.com>
846 * include/bits/fs_path.h (path::_Codecvt): New class template
847 that selects the kind of code conversion done.
848 (path::_Codecvt<wchar_t>): Select based on sizeof(wchar_t).
849 (_GLIBCXX_CONV_FROM_UTF8): New macro to allow the same code to
850 be used for Windows and POSIX.
851 (path::_S_convert(const EcharT*, const EcharT*)): Simplify by
852 using _Codecvt and _GLIBCXX_CONV_FROM_UTF8 abstractions.
853 (path::_S_str_convert(basic_string_view<value_type>, const A&)):
854 Simplify nested conditions.
855 * include/experimental/bits/fs_path.h (path::_Cvt): Define
856 nested typedef controlling type of code conversion done.
857 (path::_Cvt::_S_wconvert): Use new typedef.
858 (path::string(const A&)): Likewise.
859 * testsuite/27_io/filesystem/path/construct/95048.cc: New test.
860 * testsuite/experimental/filesystem/path/construct/95048.cc: New
863 2022-11-14 Nathaniel Shead <nathanieloshead@gmail.com>
865 Backported from master:
866 2022-11-11 Nathaniel Shead <nathanieloshead@gmail.com>
869 * include/bits/basic_string.h (_M_use_local_data): Set active
870 member to _M_local_buf.
872 2022-11-08 Jonathan Wakely <jwakely@redhat.com>
874 Backported from master:
875 2022-11-08 Jonathan Wakely <jwakely@redhat.com>
877 * doc/xml/authors.xml: Remove empty author element.
878 * doc/xml/manual/spine.xml: Likewise.
879 * doc/html/manual/index.html: Regenerate.
881 2022-10-19 Alexandre Oliva <oliva@adacore.com>
883 Backported from master:
884 2022-06-22 Alexandre Oliva <oliva@adacore.com>
886 * libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS]
887 (__eh_globals_init::~__eh_globals_init): Clear _S_init first.
889 2022-09-29 Jonathan Wakely <jwakely@redhat.com>
891 Backported from master:
892 2022-09-28 Jonathan Wakely <jwakely@redhat.com>
894 * doc/xml/manual/evolution.xml: Document std::bind API
896 * doc/xml/manual/intro.xml: Document LWG 2487 status.
897 * doc/xml/manual/using.xml: Clarify default value of
898 _GLIBCXX_USE_DEPRECATED.
899 * doc/html/*: Regenerate.
900 * include/std/functional (_Bind::operator()(Args&&...) volatile)
901 (_Bind::operator()(Args&&...) const volatile)
902 (_Bind_result::operator()(Args&&...) volatile)
903 (_Bind_result::operator()(Args&&...) const volatile): Replace
904 with deleted overload for C++20 and later.
905 * testsuite/20_util/bind/cv_quals.cc: Check for deprecated
907 * testsuite/20_util/bind/cv_quals_2.cc: Likewise, and check for
910 2022-09-16 Jonathan Wakely <jwakely@redhat.com>
912 * doc/xml/manual/abi.xml: Document GLIBCXX_3.4.30 version.
913 * doc/html/manual/abi.html: Regenerate.
915 2022-09-12 Patrick Palka <ppalka@redhat.com>
917 Backported from master:
918 2022-09-12 Patrick Palka <ppalka@redhat.com>
921 * testsuite/std/ranges/adaptors/join.cc (test13): New test.
923 2022-09-07 Jonathan Wakely <jwakely@redhat.com>
925 Backported from master:
926 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
929 * include/bits/std_thread.h (thread::_State_impl): Forward
930 individual arguments to _Invoker constructor.
931 (thread::_Invoker): Add constructor. Delete copies.
932 * include/std/future (__future_base::_Deferred_state): Forward
933 individual arguments to _Invoker constructor.
934 (__future_base::_Async_state_impl): Likewise.
935 * testsuite/30_threads/async/106695.cc: New test.
936 * testsuite/30_threads/thread/106695.cc: New test.
938 2022-09-07 Jonathan Wakely <jwakely@redhat.com>
940 Backported from master:
941 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
944 * include/bits/regex_compiler.tcc (_Compiler::_M_cur_int_value):
945 Use built-ins to check for integer overflow in back-reference
947 * testsuite/28_regex/basic_regex/106607.cc: New test.
949 2022-08-24 Jonathan Wakely <jwakely@redhat.com>
951 Backported from master:
952 2022-08-23 Jonathan Wakely <jwakely@redhat.com>
955 * include/std/variant (__do_visit): Handle is_void<R> for zero
957 * testsuite/20_util/variant/visit_r.cc: Check std::visit<void>(v).
959 2022-08-23 Jonathan Wakely <jwakely@redhat.com>
961 Backported from master:
962 2022-08-22 Jonathan Wakely <jwakely@redhat.com>
965 * doc/xml/manual/using.xml: Document -lstdc++_libbacktrace
966 requirement for using std::stacktrace. Also adjust -frtti and
967 -fexceptions to document non-default (i.e. negative) forms.
968 * doc/html/*: Regenerate.
970 2022-08-19 Release Manager
972 * GCC 12.2.0 released.
974 2022-08-05 Jonathan Wakely <jwakely@redhat.com>
976 Backported from master:
977 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
979 * include/std/string_view (basic_string_view(Range&&)): Add
980 explicit as per P2499R0.
981 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc:
982 Adjust implicit conversions. Check implicit conversions fail.
983 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc:
986 2022-08-05 Jonathan Wakely <jwakely@redhat.com>
988 Backported from master:
989 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
991 * include/std/expected (unexpected::_M_val): Rename to _M_unex.
992 (bad_expected_access::_M_val): Likewise.
994 2022-08-05 Jonathan Wakely <jwakely@redhat.com>
996 Backported from master:
997 2022-08-04 Jonathan Wakely <jwakely@redhat.com>
999 * include/bits/ios_base.h (__cpp_lib_ios_noreplace): Update
1001 * include/std/version (__cpp_lib_ios_noreplace): Likewise.
1002 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: Check
1004 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc:
1007 2022-08-03 Jonathan Wakely <jwakely@redhat.com>
1009 Backported from master:
1010 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
1012 * src/c++17/fs_dir.cc (_Dir::dir_and_pathname):: Replace with
1013 current() returning _At_path.
1014 (_Dir::_Dir, _Dir::open_subdir, _Dir::do_unlink): Adjust.
1015 * src/filesystem/dir-common.h (_Dir_base::_At_path): New class.
1016 (_Dir_base::_Dir_Base, _Dir_base::openat): Use _At_path.
1017 * src/filesystem/dir.cc (_Dir::dir_and_pathname): Replace with
1018 current() returning _At_path.
1019 (_Dir::_Dir, _Dir::open_subdir): Adjust.
1021 2022-08-03 Jonathan Wakely <jwakely@redhat.com>
1023 Backported from master:
1024 2022-07-29 Jonathan Wakely <jwakely@redhat.com>
1027 * include/bits/stl_iterator.h (common_iterator::operator->):
1028 Change return type to just auto.
1030 2022-08-03 Jonathan Wakely <jwakely@redhat.com>
1032 Backported from master:
1033 2022-07-12 Jonathan Wakely <jwakely@redhat.com>
1036 * include/std/istream [C++17] (operator>>(istream&, char*)):
1037 Set eofbit if we stopped extracting at EOF.
1038 * testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc:
1040 * testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc:
1043 2022-08-03 Jonathan Wakely <jwakely@redhat.com>
1045 Backported from master:
1046 2022-07-01 Jonathan Wakely <jwakely@redhat.com>
1048 * include/bits/fs_ops.h: Add nodiscard to all pure functions.
1049 * include/experimental/bits/fs_ops.h: Likewise.
1050 * testsuite/27_io/filesystem/operations/all.cc: Do not discard
1051 results of absolute and canonical.
1052 * testsuite/27_io/filesystem/operations/absolute.cc: Cast
1053 discarded result to void.
1054 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise.
1055 * testsuite/27_io/filesystem/operations/exists.cc: Likewise.
1056 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise.
1057 * testsuite/27_io/filesystem/operations/read_symlink.cc:
1059 * testsuite/27_io/filesystem/operations/status.cc: Likewise.
1060 * testsuite/27_io/filesystem/operations/symlink_status.cc:
1062 * testsuite/27_io/filesystem/operations/temp_directory_path.cc:
1064 * testsuite/experimental/filesystem/operations/canonical.cc:
1066 * testsuite/experimental/filesystem/operations/exists.cc:
1068 * testsuite/experimental/filesystem/operations/is_empty.cc:
1070 * testsuite/experimental/filesystem/operations/read_symlink.cc:
1072 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1075 2022-08-03 Jonathan Wakely <jwakely@redhat.com>
1077 Backported from master:
1078 2022-06-16 Jonathan Wakely <jwakely@redhat.com>
1081 * include/bits/basic_string.h (_M_use_local_data): Initialize
1082 the entire SSO buffer.
1083 * testsuite/21_strings/basic_string/cons/char/105995.cc: New test.
1085 2022-08-03 Jonathan Wakely <jwakely@redhat.com>
1087 Backported from master:
1088 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
1090 * include/bits/new_allocator.h: Fix indentation.
1091 * include/ext/malloc_allocator.h: Likewise.
1093 2022-08-03 Jonathan Wakely <jwakely@redhat.com>
1095 Backported from master:
1096 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
1099 * include/bits/allocator.h (allocator::allocate): Check for
1100 overflow in constexpr allocation.
1101 * testsuite/20_util/allocator/105975.cc: New test.
1103 2022-08-03 Jonathan Wakely <jwakely@redhat.com>
1105 Backported from master:
1106 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
1109 * include/experimental/numeric (experimental::gcd): Simplify
1110 assertions. Use __abs_r instead of __absu.
1111 (experimental::lcm): Likewise. Remove use of __detail::__lcm so
1112 overflow can be detected.
1113 * include/std/numeric (__detail::__absu): Rename to __abs_r and
1114 change to allow signed result type, so overflow can be detected.
1115 (__detail::__lcm): Remove.
1116 (gcd): Simplify assertions. Use __abs_r instead of __absu.
1117 (lcm): Likewise. Remove use of __detail::__lcm so overflow can
1119 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines.
1120 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise.
1121 * testsuite/26_numerics/gcd/105844.cc: New test.
1122 * testsuite/26_numerics/lcm/105844.cc: New test.
1124 2022-07-26 Thomas Rodgers <trodgers@redhat.com>
1126 Backported from master:
1127 2022-07-26 Thomas Rodgers <trodgers@redhat.com>
1129 * include/bits/atomic_wait.h (__atomic_spin): Merge spin loops.
1131 2022-07-22 Jonathan Wakely <jwakely@redhat.com>
1133 Backported from master:
1134 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
1136 * src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]:
1137 Always store pathname if we don't have openat or unlinkat,
1138 because the full path is needed to open sub-directories and
1141 2022-07-22 Alexandre Oliva <oliva@adacore.com>
1143 Backported from master:
1144 2022-06-27 Alexandre Oliva <oliva@adacore.com>
1146 * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if
1147 _GLIBCXX_HAVE_OPENAT.
1149 2022-07-22 Alexandre Oliva <oliva@adacore.com>
1151 Backported from master:
1152 2022-06-24 Alexandre Oliva <oliva@adacore.com>
1154 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
1156 * configure, config.h.in: Rebuilt.
1157 * src/filesystem/dir-common.h (openat): Use ::openat if
1158 _GLIBCXX_HAVE_OPENAT.
1159 * src/filesystem/dir.cc (dir_and_pathname): Use dirfd if
1160 _GLIBCXX_HAVE_OPENAT.
1162 2022-07-22 Jonathan Wakely <jwakely@redhat.com>
1164 Backported from master:
1165 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
1167 * include/std/stacktrace: Do not include <cxxabi.h>.
1168 (__cxa_demangle): Declare.
1170 2022-07-21 Jonathan Wakely <jwakely@redhat.com>
1172 Backported from master:
1173 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
1176 * include/bits/stl_iterator.h (common_iterator): Define move
1177 constructor and move assignment operator.
1178 (common_iterator::_M_assign): New function implementing
1180 (common_iterator::operator=): Use _M_assign.
1181 (common_iterator::_S_valueless): New constant.
1182 * testsuite/24_iterators/common_iterator/100823.cc: New test.
1184 2022-07-21 Jonathan Wakely <jwakely@redhat.com>
1186 Backported from master:
1187 2022-07-20 Jonathan Wakely <jwakely@redhat.com>
1189 * include/bits/stl_iterator.h (common_iterator): Fix incorrect
1190 uses of is_nothrow_assignable_v. Fix inconsistent constraints on
1191 friend declaration. Do not move argument in copy constructor.
1192 * testsuite/24_iterators/common_iterator/1.cc: Check for
1193 noexcept constructibnle/assignable.
1195 2022-07-21 Nathan Sidwell <nathan@acm.org>
1197 Backported from master:
1198 2022-05-26 Nathan Sidwell <nathan@acm.org>
1200 * include/bits/hashtable.h: Include required headers.
1201 * include/bits/hashtable_policy.h: Likewise.
1202 * include/bits/stl_heap.h: Likewise.
1203 * include/bits/stl_iterator_base_funcs.h: Likewise.
1205 2022-07-21 Jonathan Wakely <jwakely@redhat.com>
1207 Backported from master:
1208 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
1210 * include/bits/utility.h: Fix comment typos.
1212 2022-07-21 Jonathan Wakely <jwakely@redhat.com>
1214 Backported from master:
1215 2022-06-28 Jonathan Wakely <jwakely@redhat.com>
1217 * testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math
1218 functions are available.
1220 2022-07-21 Jonathan Wakely <jwakely@redhat.com>
1222 Backported from master:
1223 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
1225 * testsuite/26_numerics/random/random_device/entropy.cc: Use
1226 numeric_limits<unsigned>::digits.
1228 2022-07-21 Marco Falke <falke.marco@gmail.com>
1230 Backported from master:
1231 2022-07-19 Marco Falke <falke.marco@gmail.com>
1233 * include/std/charconv (__from_chars_alnum_to_val): Replace
1234 implicit conversion from int to unsigned char with explicit
1237 2022-07-21 Jonathan Wakely <jwakely@redhat.com>
1239 Backported from master:
1240 2022-06-30 Jonathan Wakely <jwakely@redhat.com>
1243 * src/filesystem/ops.cc (has_trailing_slash): New helper
1245 (fs::status): Strip trailing slashes.
1246 (fs::symlink_status): Likewise.
1247 * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
1248 Clean the environment before each test and use TMP instead of
1249 TMPDIR so the test passes on Windows.
1251 2022-07-21 Jonathan Wakely <jwakely@redhat.com>
1253 Backported from master:
1254 2022-06-10 Jonathan Wakely <jwakely@redhat.com>
1257 * libsupc++/eh_globals.cc (eh_globals): Ensure constant init and
1258 prevent destruction during termination.
1259 (__eh_globals_init::_M_init): Replace with static member _S_init.
1260 (__cxxabiv1::__cxa_get_globals_fast): Update.
1261 (__cxxabiv1::__cxa_get_globals): Likewise.
1263 2022-07-07 Jonathan Wakely <jwakely@redhat.com>
1265 Backported from master:
1266 2022-07-01 Jonathan Wakely <jwakely@redhat.com>
1269 * include/Makefile.am (largefile-config.h): Add
1270 stamp-${host_alias} prerequisite.
1271 * include/Makefile.in: Regenerate.
1273 2022-07-07 Jonathan Wakely <jwakely@redhat.com>
1275 Backported from master:
1276 2022-06-23 Jonathan Wakely <jwakely@redhat.com>
1278 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
1279 rmdir to remove directories.
1280 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
1283 2022-06-14 Jonathan Wakely <jwakely@redhat.com>
1285 Backported from master:
1286 2022-06-13 Jonathan Wakely <jwakely@redhat.com>
1288 * include/std/atomic (__atomic_val_t): Use __type_identity_t
1289 instead of atomic<T>::value_type, as per LWG 3220.
1290 * testsuite/29_atomics/atomic/lwg3220.cc: New test.
1292 2022-06-14 Mark Mentovai <mark@mentovai.com>
1294 Backported from master:
1295 2022-06-13 Mark Mentovai <mark@mentovai.com>
1297 * include/experimental/bits/fs_path.h (__detail::__null_terminated):
1298 Rename to __nul_terminated to avoid colliding with a macro in
1301 2022-06-08 Jonathan Wakely <jwakely@redhat.com>
1303 Backported from master:
1304 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
1307 * include/std/sstream (basic_stringbuf::_M_high_mark): Add
1308 always_inline attribute.
1310 2022-06-08 Jonathan Wakely <jwakely@redhat.com>
1312 Backported from master:
1313 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
1316 * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp:
1317 Limit ga_sizes array to values that fit in size_t.
1318 * include/ext/random [__SIZE_WIDTH < 32] (sfmt86243)
1319 (sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091)
1320 (sfmt216091_64): Do not declare.
1322 2022-06-08 Jonathan Wakely <jwakely@redhat.com>
1324 Backported from master:
1325 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
1327 * include/bits/basic_string.h: Do not include <ext/atomicity.h>
1329 * include/bits/cow_string.h: Include it here.
1331 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
1333 Backported from master:
1334 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
1336 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make
1337 lookup for ios_errc and future_errc check versioned namespace.
1338 (StdAtomicPrinter): Strip versioned namespace from typename.
1340 2022-05-27 François Dumont <fdumont@gcc.gnu.org>
1342 Backported from master:
1343 2022-05-26 François Dumont <fdumont@gcc.gnu.org>
1345 * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__):
1346 Strip typename from version namespace.
1348 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
1350 Backported from master:
1351 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
1353 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip
1354 versioned namespace from the template argument too.
1356 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
1358 Backported from master:
1359 2022-05-26 Jonathan Wakely <jwakely@redhat.com>
1361 * include/bits/stl_iterator.h (counted_iterator::operator++(int)):
1362 Add 'constexpr' as per LWG 3643.
1363 * testsuite/24_iterators/counted_iterator/lwg3643.cc: New test.
1365 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
1367 Backported from master:
1368 2022-05-19 Jonathan Wakely <jwakely@redhat.com>
1370 * include/std/memory_resource (polymorphic_allocator): Add
1371 non-template equality operator, as proposed for LWG 3683.
1372 * testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test.
1374 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
1376 Backported from master:
1377 2022-05-20 Jonathan Wakely <jwakely@redhat.com>
1379 * testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc:
1380 Run fewer iterations for simulator targets.
1381 * testsuite/26_numerics/random/binomial_distribution/operators/values.cc:
1383 * testsuite/26_numerics/random/discrete_distribution/operators/values.cc:
1385 * testsuite/26_numerics/random/geometric_distribution/operators/values.cc:
1387 * testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc:
1389 * testsuite/26_numerics/random/poisson_distribution/operators/values.cc:
1391 * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc:
1394 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
1396 Backported from master:
1397 2022-05-17 Jonathan Wakely <jwakely@redhat.com>
1399 * testsuite/20_util/expected/synopsis.cc: Skip for versioned
1401 * testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise.
1403 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
1405 Backported from master:
1406 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
1408 * include/bits/mofunc_impl.h: Fix doxygen command.
1410 2022-05-27 Jonathan Wakely <jwakely@redhat.com>
1412 Backported from master:
1413 2022-05-13 Jonathan Wakely <jwakely@redhat.com>
1415 * include/std/future (launch): Make operators noexcept.
1417 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
1419 Backported from master:
1420 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
1422 * doc/xml/manual/prerequisites.xml: Fix attributes for external
1424 * doc/html/manual/setup.html: Regenerate.
1426 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
1428 Backported from master:
1429 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
1431 * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support.
1432 * doc/html/*: Regenerate.
1434 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
1436 Backported from master:
1437 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
1439 * doc/xml/manual/intro.xml: Include new chapter.
1440 * doc/xml/manual/status_cxx2020.xml: Tweak release numbers.
1441 * doc/xml/manual/status_cxx2023.xml: New file.
1442 * doc/html/*: Regenerate.
1444 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
1446 Backported from master:
1447 2022-05-16 Jonathan Wakely <jwakely@redhat.com>
1449 * doc/html/manual/status.html: Regenerate.
1450 * doc/xml/manual/status_cxx2020.xml: Fix supported version for
1451 C++20 bit operations.
1453 2022-05-13 Alexandre Oliva <oliva@adacore.com>
1455 Backported from master:
1456 2022-05-06 Alexandre Oliva <oliva@adacore.com>
1458 * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX
1459 for double, long long, and 64-bit long intrinsic types.
1460 [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in
1461 preexisting long double diagnostic, adjust no-VSX double
1462 diagnostic to cover 64-bit long double as well.
1464 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
1466 Backported from master:
1467 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
1470 * include/std/iosfwd: Add declarations for <spanstream> class
1471 templates and typedefs.
1472 * include/std/spanstream (basic_spanbuf, basic_ispanstream)
1473 (basic_ospanstream, basic_spanstream): Remove default template
1475 * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream>
1477 * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream>
1480 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
1482 Backported from master:
1483 2022-05-10 Jonathan Wakely <jwakely@redhat.com>
1486 * include/std/iosfwd: Add declarations for <synstream> class
1487 templates and typedefs.
1488 * include/std/syncstream (basic_syncbuf, basic_osyncstream):
1489 Remove default template arguments.
1490 * testsuite/27_io/headers/iosfwd/synopsis.cc: New test.
1491 * testsuite/27_io/headers/iosfwd/types.cc: New test.
1493 2022-05-09 Jonathan Wakely <jwakely@redhat.com>
1495 Backported from master:
1496 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
1499 * testsuite/27_io/filesystem/iterators/error_reporting.cc:
1500 Use a trailing char array as storage for dirent::d_name.
1502 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
1504 Backported from master:
1505 2022-05-06 Jonathan Wakely <jwakely@redhat.com>
1508 * include/bits/random.tcc
1509 (operator>>(basic_istream<C,T>&, normal_distribution<R>&)):
1510 Update state when __state_avail is false.
1511 * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc:
1512 Check that deserialized object equals serialized one.
1514 2022-05-06 Patrick Palka <ppalka@redhat.com>
1516 Backported from master:
1517 2022-05-02 Patrick Palka <ppalka@redhat.com>
1520 * src/c++17/floating_from_chars.cc (find_end_of_float): Accept
1521 two delimeters for the exponent part in the form of a possibly
1522 NULL string of length two. Don't use std::tolower.
1523 (pattern): Adjust calls to find_end_of_float accordingly.
1525 2022-05-06 Alexandre Oliva <oliva@adacore.com>
1527 Backported from master:
1528 2022-05-03 Alexandre Oliva <oliva@adacore.com>
1531 * testsuite/20_util/from_chars/pr105324.cc: Guard test body
1532 with conditional for floating-point overloads of from_char.
1534 2022-05-06 Release Manager
1536 * GCC 12.1.0 released.
1538 2022-05-02 Patrick Palka <ppalka@redhat.com>
1540 Backported from master:
1541 2022-05-02 Patrick Palka <ppalka@redhat.com>
1544 * src/c++17/floating_from_chars.cc (__floating_from_chars_hex):
1545 Also accept 'P' as the start of the exponent.
1546 * testsuite/20_util/from_chars/7.cc: Add corresponding testcase.
1548 2022-04-29 Jonathan Wakely <jwakely@redhat.com>
1550 Backported from master:
1551 2022-04-29 Jonathan Wakely <jwakely@redhat.com>
1554 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt:
1556 * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]:
1557 Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I>
1558 symbols as aliases for corresponding symbols without abi-tag.
1560 2022-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1562 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate.
1563 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt:
1565 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise.
1566 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt:
1569 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
1571 * doc/xml/manual/status_cxx1998.xml: Refer to GCC 12 not
1573 * doc/xml/manual/status_cxx2011.xml: Likewise.
1574 * doc/xml/manual/status_cxx2014.xml: Likewise.
1575 * doc/xml/manual/status_cxx2017.xml: Likewise.
1576 * doc/xml/manual/status_cxx2020.xml: Likewise.
1577 * doc/xml/manual/status_cxxtr1.xml: Likewise.
1578 * doc/xml/manual/status_cxxtr24733.xml: Likewise.
1579 * doc/html/manual/status.html: Regenerate.
1581 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
1584 * src/c++17/fs_ops.cc (fs::copy): Pass error_code to
1585 directory_iterator constructor, and check on each iteration.
1586 * src/filesystem/ops.cc (fs::copy): Likewise.
1587 * testsuite/27_io/filesystem/operations/copy.cc: Check for
1588 errors during recursion.
1589 * testsuite/experimental/filesystem/operations/copy.cc:
1592 2022-04-28 François Dumont <fdumont@gcc.gnu.org>
1594 * config/abi/pre/gnu-versioned-namespace.ver: Remove
1595 std::random_device::* pattern.
1597 2022-04-27 Jakub Jelinek <jakub@redhat.com>
1599 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update.
1600 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update.
1601 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update.
1602 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update.
1603 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update.
1604 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update.
1605 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update.
1606 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update.
1608 2022-04-27 Jonathan Wakely <jwakely@redhat.com>
1610 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add
1611 support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>.
1612 (StdAtomicPrinter): New printer.
1613 (build_libstdcxx_dictionary): Register new printer.
1614 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic.
1615 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart
1618 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
1620 * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add
1621 constructor for constant initialization from nullptr_t.
1622 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
1623 Check for new constructor.
1625 2022-04-26 Jonathan Wakely <jwakely@redhat.com>
1627 * include/bits/fs_path.h (hash<filesystem::path>): Define.
1628 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc:
1629 Check std::hash specialization.
1631 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
1633 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define
1635 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory):
1637 (default_delete, default_delete<T[]>, __uniq_ptr_impl)
1638 (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member
1640 * include/std/version (__cpp_lib_constexpr_memory): Define new
1642 * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test.
1643 * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test.
1644 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test.
1645 * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test.
1646 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test.
1647 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc:
1650 2022-04-25 Jonathan Wakely <jwakely@redhat.com>
1653 * include/std/future (packaged_task): Add deduction guides.
1654 * testsuite/30_threads/packaged_task/cons/deduction.cc: New test.
1656 2022-04-25 Philipp Fent <fent@in.tum.de>
1658 * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator):
1660 (StdInitializerListPrinter): Define new printer.
1661 (build_libstdcxx_dictionary): Register new printer.
1662 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for
1665 2022-04-22 Thomas W Rodgers <trodgers@redhat.com>
1668 * include/bits/atomic_base.h (atomic_flag::notify_one,
1669 notify_all): Remove const qualification.
1670 (__atomic_base::notify_one, notify_all): Likewise.
1671 * include/std/atomic (atomic<bool>::notify_one, notify_all):
1673 (atomic::notify_one, notify_all): Likewise.
1674 (atomic<T*>::notify_one, notify_all): Likewise.
1675 (atomic_notify_one, atomic_notify_all): Likewise.
1676 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test
1677 to account for change in notify_one/notify_all signature.
1679 2022-04-21 Patrick Palka <ppalka@redhat.com>
1681 * include/std/charconv (__from_chars_alnum_to_val_table):
1682 Simplify initialization of __lower/__upper_letters.
1683 (__from_chars_alnum_to_val): Default the template parameter to
1685 * src/c++17/floating_from_chars.cc (starts_with_ci): Don't
1686 assume the uppercase and lowercase letters are contiguous.
1687 (__floating_from_chars_hex): Likewise.
1689 2022-04-21 Patrick Palka <ppalka@redhat.com>
1693 * include/std/charconv (__from_chars_alnum_to_val): Make
1694 initializer for __table dependent in an artificial way.
1696 2022-04-21 Jonathan Wakely <jwakely@redhat.com>
1699 * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate):
1701 * testsuite/20_util/from_chars/pr105324.cc: New test.
1703 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
1705 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc:
1706 Check correct feature test macro.
1708 2022-04-20 Jonathan Wakely <jwakely@redhat.com>
1711 * doc/xml/manual/prerequisites.xml: Document libiconv
1713 * doc/html/manual/setup.html: Regenerate.
1714 * src/Makefile.am (CXXLINK): Add $(LTLIBICONV).
1715 * src/Makefile.in: Regenerate.
1717 2022-04-19 Patrick Palka <ppalka@redhat.com>
1719 * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't
1721 (__floating_to_chars_shortest): Add __builtin_unreachable calls to
1722 squelch false-positive -Wmaybe-uninitialized and -Wreturn-type
1724 (__floating_to_chars_precision): Likewise.
1726 2022-04-19 Philipp Fent <fent@in.tum.de>
1728 * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define.
1729 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it.
1731 2022-04-19 Jonathan Wakely <jwakely@redhat.com>
1733 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators.
1734 * configure: Regenerate.
1736 2022-04-18 Patrick Palka <ppalka@redhat.com>
1738 * include/std/charconv (__from_chars_pow2_base): Manually
1739 unroll the first iteration of the main loop and simplify
1742 2022-04-15 Patrick Palka <ppalka@redhat.com>
1745 * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing
1746 __first twice at the start.
1747 * testsuite/25_algorithms/minmax/constrained.cc (test06): New test.
1749 2022-04-15 Patrick Palka <ppalka@redhat.com>
1751 * include/std/charconv (__from_chars_alnum_to_val_table): Define.
1752 (__from_chars_alnum_to_val): Define.
1753 (__from_chars_binary): Rename to ...
1754 (__from_chars_pow2_base): ... this. Generalize to handle any
1755 power-of-two base using __from_chars_alnum_to_val.
1756 (__from_chars_digit): Optimize digit recognition to a single
1757 test instead of two tests. Use [[__unlikely___]] attribute.
1758 (__from_chars_alpha_to_num): Remove.
1759 (__from_chars_alnum): Use __from_chars_alnum_to_val. Use a
1760 nested loop for the overflow case. Maintain a lower bound
1761 on the number of available bits in the result and use it to
1762 omit the overflow check.
1763 (from_chars): Adjust appropriately.
1764 * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove.
1765 (__floating_from_chars_hex): Use __from_chars_alnum_to_val
1766 to recognize a hex digit instead.
1768 2022-04-14 Palmer Dabbelt <palmer@rivosinc.com>
1770 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex
1772 * configure: Regenerate.
1774 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
1776 * doc/xml/manual/intro.xml: Fix comment.
1778 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
1780 * include/precompiled/stdc++.h: Include <stacktrace> and
1781 <stdatomic.h> for C++23.
1783 2022-04-14 Jonathan Wakely <jwakely@redhat.com>
1786 * include/bits/stl_vector.h (__cpp_lib_constexpr_vector):
1788 * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h):
1790 * include/std/optional (__cpp_lib_optional): Define new value
1792 (__cpp_lib_monadic_optional): Remove.
1793 * include/std/version (__cpp_lib_constexpr_vector): Define.
1794 (__cpp_lib_stdatomic_h): Define.
1795 (__cpp_lib_optional): Define new value for C++23.
1796 (__cpp_lib_monadic_optional): Remove.
1797 * testsuite/20_util/optional/monadic/and_then.cc: Adjust.
1798 * testsuite/20_util/optional/requirements.cc: Adjust for C++23.
1799 * testsuite/20_util/optional/version.cc: Likewise.
1800 * testsuite/23_containers/vector/cons/constexpr.cc: Check
1802 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc:
1804 * testsuite/20_util/optional/monadic/version.cc: Removed.
1805 * testsuite/23_containers/vector/requirements/version.cc: New test.
1806 * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test.
1808 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1810 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap.
1811 * config.h.in: Regenerate.
1812 * configure: Regenerate.
1814 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1816 * include/std/stacktrace (basic_stacktrace::current): Reallocate
1817 a smaller container if the unused capacity is larger than the
1820 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1822 * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone
1823 or _Impl::_M_assign to initialize elements in allocated storage.
1824 (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of
1826 (basic_stacktrace::_Impl::_M_destroy()): Replace with ...
1827 (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New
1829 (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct
1830 new element using allocator.
1831 (basic_stacktrace::_Impl::_M_clone): New function.
1832 (basic_stacktrace::_Impl::_M_xclone): New function.
1833 (basic_stacktrace::_Impl::_M_assign): New function.
1835 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1837 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
1838 Use nothrow new instead of try block for std::allocator.
1839 (basic_stacktrace::_Impl::_M_deallocate): Use delete for
1842 2022-04-12 Jonathan Wakely <jwakely@redhat.com>
1844 * include/std/stacktrace (basic_stacktrace::current): Replace
1845 calls to _M_reserve and _S_curr_cb with call to _M_prepare.
1846 Check return value of backtrace_simple when max depth given.
1847 (basic_stacktrace::_M_reserve): Remove.
1848 (basic_stacktrace::_S_curr_cb): Remove.
1849 (basic_stacktrace::_M_prepare(size_type)): New function to
1850 reserve initial capacity and return callback.
1851 (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n
1852 and remove redundant zeroing of _M_frames and _M_capacity.
1853 (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]]
1854 attribute. Assign _Impl instead of swapping.
1855 * testsuite/19_diagnostics/stacktrace/current.cc: New test.
1857 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1859 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate):
1860 Change [[unlikely]] attribute to [[likely]].
1862 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1865 * include/std/stacktrace (basic_stacktrace::basic_stacktrace):
1866 Fix allocator usage in constructors.
1867 (basic_stacktrace::operator=(const basic_stacktrace&)): Do not
1868 try to reallocate using const allocator.
1869 (basic_stacktrace::operator=(basic_stacktrace&&)): Fix
1870 if-constexpr with non-constant condition. Do not allocate new
1871 storage if allocator propagates. Do not set _M_size if
1873 (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add
1874 assertion that non-propagating allocators are equal.
1875 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test.
1877 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1879 * include/std/stacktrace (basic_stacktrace::current): Duplicate
1880 implementation into each overload. Add noinline attribute and
1882 (basic_stacktrace::max_size()): Call _Impl::_S_max_size.
1883 (basic_stacktrace::_S_curr_cb()): New function defining lambda.
1884 (basic_stacktrace::_Impl::_S_max_size): New function defining
1885 maximum size in terms of allocator and size_type.
1886 (basic_stacktrace::_Impl::_M_allocate): Check against
1888 * testsuite/19_diagnostics/stacktrace/entry.cc: Call function
1889 for non-constexpr checks. Check line number is correct.
1891 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1893 * testsuite/20_util/stacktrace/entry.cc: Moved to...
1894 * testsuite/19_diagnostics/stacktrace/entry.cc: ...here.
1895 * testsuite/20_util/stacktrace/synopsis.cc: Moved to...
1896 * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here.
1897 * testsuite/20_util/stacktrace/version.cc: Moved to...
1898 * testsuite/19_diagnostics/stacktrace/version.cc: ...here.
1900 2022-04-11 Jonathan Wakely <jwakely@redhat.com>
1902 * include/experimental/bits/fs_path.h (path): Define special
1903 members after path::_Cmpt is complete.
1905 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
1908 * include/std/expected
1909 (expected<void,E>::expected(expected<U,G>&&)): Fix constraints.
1910 * testsuite/20_util/expected/cons.cc: Check constructor.
1912 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
1915 * include/std/expected (expected<void, E>::swap): Set
1916 _M_has_value to false for objects that previously had a value.
1917 * testsuite/20_util/expected/swap.cc: Fix test to check void
1920 2022-04-08 Jonathan Wakely <jwakely@redhat.com>
1923 * include/std/expected (bad_expected_access): Move constructor
1925 * testsuite/20_util/expected/bad.cc: New test.
1927 2022-04-07 Hans-Peter Nilsson <hp@axis.com>
1929 * testsuite/20_util/expected/requirements.cc: Correct minimal-size
1932 2022-04-02 Jakub Jelinek <jakub@redhat.com>
1935 * include/std/source_location (std::source_location::__impl): Move
1936 definition before using __builtin_ret_type.
1938 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
1940 * include/std/utility (unreachable): Define for C++23.
1941 * include/std/version (__cpp_lib_unreachable): Define.
1942 * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid
1943 arguments. Handle only the function being given.
1944 * testsuite/20_util/unreachable/1.cc: New test.
1945 * testsuite/20_util/unreachable/version.cc: New test.
1947 2022-04-01 Jonathan Wakely <jwakely@redhat.com>
1949 * include/experimental/bits/fs_fwd.h (copy_file): Remove
1950 incorrect noexcept from declaration.
1951 * include/experimental/bits/fs_path.h (path::begin, path::end):
1952 Add noexcept to declarations, to match definitions.
1954 2022-04-01 Timm Bäder <tbaeder@redhat.com>
1956 * include/bits/fs_ops.h: Fix filename in Doxygen comment.
1957 * include/experimental/bits/fs_ops.h: Likewise.
1959 2022-03-31 Jonathan Wakely <jwakely@redhat.com>
1961 * libsupc++/new_opa.cc (aligned_alloc): Add comment.
1963 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
1965 * testsuite/18_support/exception/38732.cc: Disable for C++23.
1966 * testsuite/18_support/headers/exception/synopsis.cc: Likewise.
1967 * testsuite/18_support/unexpected_handler.cc: Likewise.
1969 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
1971 * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add
1972 static data members for _Fp_fmt enumerators.
1974 2022-03-29 Jonathan Wakely <jwakely@redhat.com>
1976 * include/std/version (__cpp_lib_variant): Fix conditions to
1978 (__cpp_lib_expected): Fix condition to match <expected>.
1980 2022-03-28 Jonathan Wakely <jwakely@redhat.com>
1982 * testsuite/20_util/optional/monadic/and_then.cc: Fix typo.
1983 * testsuite/20_util/optional/monadic/transform.cc: Likewise.
1984 * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise.
1985 * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise.
1986 * testsuite/22_locale/codecvt/in/char/1.cc: Likewise.
1987 * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise.
1988 * testsuite/22_locale/codecvt/out/char/1.cc: Likewise.
1989 * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise.
1991 2022-03-27 Jonathan Wakely <jwakely@redhat.com>
1993 * doc/doxygen/user.cfg.in: Add new header.
1994 * include/Makefile.am: Likewise.
1995 * include/Makefile.in: Regenerate.
1996 * include/precompiled/stdc++.h: Add new header.
1997 * include/std/version (__cpp_lib_expected): Define.
1998 * libsupc++/exception [__cplusplus > 202002] (unexpected)
1999 (unexpected_handler, set_unexpected): Do not declare for C++23.
2000 * include/std/expected: New file.
2001 * testsuite/20_util/expected/assign.cc: New test.
2002 * testsuite/20_util/expected/cons.cc: New test.
2003 * testsuite/20_util/expected/illformed_neg.cc: New test.
2004 * testsuite/20_util/expected/observers.cc: New test.
2005 * testsuite/20_util/expected/requirements.cc: New test.
2006 * testsuite/20_util/expected/swap.cc: New test.
2007 * testsuite/20_util/expected/synopsis.cc: New test.
2008 * testsuite/20_util/expected/unexpected.cc: New test.
2009 * testsuite/20_util/expected/version.cc: New test.
2011 2022-03-25 Jonathan Wakely <jwakely@redhat.com>
2013 * include/std/bit (bit_cast, byteswap, endian): Add doxygen
2016 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
2019 * include/std/bit (bit_cast): Add constraints.
2020 * testsuite/26_numerics/bit/bit.cast/105027.cc: New test.
2022 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
2024 * include/std/version [!_GLIBCXX_HOSTED]
2025 (__cpp_lib_hardware_interference_size): Define for freestanding.
2026 (__cpp_lib_bit_cast): Likewise.
2027 (__cpp_lib_is_layout_compatible): Likewise.
2028 (__cpp_lib_is_pointer_interconvertible): Likewise.
2029 (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for
2031 (__cpp_lib_invoke_r): Likewise.
2032 (__cpp_lib_ios_noreplace): Likewise.
2033 (__cpp_lib_monadic_optional): Likewise.
2034 (__cpp_lib_move_only_function): Likewise.
2035 (__cpp_lib_spanstream): Likewise.
2036 (__cpp_lib_stacktrace): Likewise.
2037 (__cpp_lib_string_contains): Likewise.
2038 (__cpp_lib_string_resize_and_overwrite): Likewise.
2039 (__cpp_lib_to_underlying): Likewise.
2041 2022-03-23 Jonathan Wakely <jwakely@redhat.com>
2044 * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include
2045 <bits/atomic_wait.h> for freestanding.
2047 2022-03-22 Hans-Peter Nilsson <hp@axis.com>
2049 * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]:
2050 Conditionalize call to fesetround.
2052 2022-03-21 Jakub Jelinek <jakub@redhat.com>
2055 * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get
2056 isn't overloaded if __clang__ is defined.
2058 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
2061 * include/std/any (any(T&&)): Revert change to constraints.
2062 * testsuite/20_util/any/cons/104242.cc: New test.
2064 2022-03-18 Jonathan Wakely <jwakely@redhat.com>
2067 * include/pstl/glue_algorithm_defs.h: Replace <functional> with
2069 * include/pstl/utils.h: Replace <iterator> with <type_traits>.
2070 (__pstl::__internal::__except_handler): Use std::__terminate
2071 instead of std::terminate.
2072 * src/c++17/fs_path.cc: Include <array>.
2073 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include
2075 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise.
2076 * testsuite/25_algorithms/clamp/constrained.cc: Likewise.
2077 * testsuite/25_algorithms/equal/constrained.cc: Likewise.
2078 * testsuite/25_algorithms/for_each/constrained.cc: Likewise.
2079 * testsuite/25_algorithms/includes/constrained.cc: Likewise.
2080 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise.
2081 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise.
2082 * testsuite/25_algorithms/is_permutation/constrained.cc: Include
2084 * testsuite/25_algorithms/is_sorted/constexpr.cc: Include
2086 * testsuite/25_algorithms/is_sorted_until/constexpr.cc:
2088 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc:
2090 * testsuite/25_algorithms/lexicographical_compare/constrained.cc:
2092 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc:
2094 * testsuite/25_algorithms/lower_bound/constexpr.cc: Include
2096 * testsuite/25_algorithms/max/constrained.cc: Likewise.
2097 * testsuite/25_algorithms/max_element/constrained.cc: Likewise.
2098 * testsuite/25_algorithms/min/constrained.cc: Likewise.
2099 * testsuite/25_algorithms/min_element/constrained.cc: Likewise.
2100 * testsuite/25_algorithms/minmax_element/constrained.cc:
2102 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise.
2103 * testsuite/25_algorithms/move/93872.cc: Likewise.
2104 * testsuite/25_algorithms/move_backward/93872.cc: Include
2106 * testsuite/25_algorithms/nth_element/constexpr.cc: Include
2108 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise.
2109 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc:
2111 * testsuite/25_algorithms/search/constexpr.cc: Likewise.
2112 * testsuite/25_algorithms/search_n/constrained.cc: Likewise.
2113 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise.
2114 * testsuite/25_algorithms/set_difference/constrained.cc:
2116 * testsuite/25_algorithms/set_intersection/constexpr.cc:
2118 * testsuite/25_algorithms/set_intersection/constrained.cc:
2120 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc:
2122 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise.
2123 * testsuite/25_algorithms/set_union/constrained.cc: Likewise.
2124 * testsuite/25_algorithms/sort/constexpr.cc: Likewise.
2125 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise.
2126 * testsuite/25_algorithms/transform/constrained.cc: Likewise.
2127 * testsuite/25_algorithms/unique/constexpr.cc: Likewise.
2128 * testsuite/25_algorithms/unique/constrained.cc: Likewise.
2129 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise.
2130 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise.
2131 * testsuite/std/ranges/adaptors/elements.cc: Include <vector>.
2132 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise.
2133 * testsuite/std/ranges/adaptors/split.cc: Likewise.
2135 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
2138 * include/bits/fs_path.h (path::make_preferred): Use
2139 handwritten loop instead of std::replace.
2141 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
2143 PR middle-end/104966
2144 * include/bits/locale_facets_nonio.tcc
2145 (__moneypunct_cache::_M_cache): Replace try-catch with RAII and
2146 make all string copies before any stores to *this.
2148 2022-03-17 Jonathan Wakely <jwakely@redhat.com>
2150 * testsuite/util/testsuite_character.h: Fix comment.
2152 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
2155 * config/abi/pre/gnu.ver: Make version for std::from_chars
2156 depend on HAVE_USELOCALE macro.
2157 * testsuite/util/testsuite_abi.cc (compare_symbols): Treat
2158 std::from_chars for floating-point types as undesignated if
2159 not found in the baseline symbols file.
2161 2022-03-16 Jonathan Wakely <jwakely@redhat.com>
2163 * include/std/charconv (__cpp_lib_to_chars): Only define when
2164 both from_chars and to_chars are supported for floating-point
2166 (from_chars, to_chars): Adjust preprocessor conditions guarding
2168 * include/std/version (__cpp_lib_to_chars): Adjust condition to
2169 match <charconv> definition.
2170 * src/c++17/floating_from_chars.cc (from_chars_strtod): New
2172 (from_chars): Simplify preprocessor checks and use
2173 from_chars_strtod when appropriate.
2175 2022-03-14 Jonathan Wakely <jwakely@redhat.com>
2178 * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to
2179 hold octets that will be left-shifted.
2181 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
2184 * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32
2185 before using fast_float.
2187 2022-03-10 Detlef Vollmann <dv@vollmann.ch>
2190 * include/bits/this_thread_sleep.h: Fix order of #endif and
2191 closing brace of namespace.
2193 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
2195 * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]:
2198 2022-03-10 Jonathan Wakely <jwakely@redhat.com>
2200 * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use
2203 2022-03-09 Patrick Palka <ppalka@redhat.com>
2206 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
2207 Be explicit when narrowing the shifted effective_mantissa,
2208 since it may have an integer-class type.
2210 2022-03-08 Jonathan Wakely <jwakely@redhat.com>
2212 * include/bits/uses_allocator_args.h: Remove incorrect copyright
2215 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
2218 * include/bits/c++config (__terminate, __glibcxx_assert_fail):
2219 Replace _GLIBCXX_VISIBILITY on function with visibility pragma.
2220 (__is_constant_evaluated): Add visibility pragma.
2222 2022-03-07 Rasmus Villemoes <rasmus.villemoes@prevas.dk>
2224 * config/locale/vxworks/ctype_members.cc: Remove <iostream>
2227 2022-03-05 Jonathan Wakely <jwakely@redhat.com>
2229 * include/bits/c++config (__glibcxx_assert_fail): Add visibility
2231 (__terminate): Likewise.
2233 2022-03-04 Jonathan Wakely <jwakely@redhat.com>
2235 * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef
2236 inside #if condition.
2238 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
2241 * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for
2244 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
2246 * testsuite/17_intro/names.cc (func): Undef on AIX.
2248 2022-03-03 Jonathan Wakely <jwakely@redhat.com>
2251 * libsupc++/compare (strong_order): Add missing support for
2252 floating-point types.
2253 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc:
2256 2022-03-01 Jonathan Wakely <jwakely@redhat.com>
2258 PR middle-end/103984
2259 * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use
2260 default member initializer.
2262 2022-02-24 Jonathan Wakely <jwakely@redhat.com>
2265 * include/std/source_location (source_location::current): Use
2266 deduced type of __builtin_source_location().
2268 2022-02-22 Patrick Palka <ppalka@redhat.com>
2270 * include/bits/ranges_base.h (__detail::__is_initializer_list):
2272 (viewable_range): Adjust as per P2415R2.
2273 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value.
2274 * include/std/ranges (owning_view): Define as per P2415R2.
2275 (enable_borrowed_range<owning_view>): Likewise.
2276 (views::__detail::__can_subrange): Replace with ...
2277 (views::__detail::__can_owning_view): ... this.
2278 (views::_All::_S_noexcept): Sync with operator().
2279 (views::_All::operator()): Use owning_view instead of subrange
2281 * include/std/version (__cpp_lib_ranges): Adjust value.
2282 * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that
2283 views::all uses owning_view instead of subrange.
2285 * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust
2286 now that rvalue non-view non-borrowed ranges are viewable.
2287 * testsuite/std/ranges/adaptors/split.cc (test06): Likewise.
2289 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
2292 * doc/xml/manual/evolution.xml: Document deprecation.
2293 * doc/html/manual/api.html: Regenerate.
2294 * include/bits/stl_bvector.h (insert(const_iterator, const bool&)):
2295 Remove default argument.
2296 (insert(const_iterator)): New overload with deprecated attribute.
2297 * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc:
2300 2022-02-17 Jonathan Wakely <jwakely@redhat.com>
2302 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace
2303 code that call cat->name() on std::error_category objects.
2304 Identify known categories by symbol name and use a hardcoded
2305 name. Print error code values as enumerators where appopriate.
2306 * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected
2307 name of custom category. Check io_errc and future_errc errors.
2309 2022-02-15 Jonathan Wakely <jwakely@redhat.com>
2312 * include/bits/uses_allocator_args.h (make_obj_using_allocator)
2313 (uninitialized_construct_using_allocator): Add constexpr.
2314 * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr.
2315 * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test.
2317 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
2320 * config/locale/gnu/c_locale.h (__convert_from_v): Use inline
2321 namespace for IEEE128 long double mode.
2322 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol
2323 version and export __gnu_cxx_ieee128::__convert_from_v.
2324 * include/bits/locale_facets_nonio.tcc (money_put::__do_put):
2325 Make __ibm128 overload use snprintf directly
2326 * testsuite/util/testsuite_abi.cc: Add new symbol version.
2327 Remove stable IEEE128/LDBL versions.
2329 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
2332 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
2334 * include/std/variant: Check feature test macros instead.
2335 * include/std/version: Likewise.
2337 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
2339 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
2342 2022-02-14 Jonathan Wakely <jwakely@redhat.com>
2344 * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on
2345 LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128.
2347 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
2349 * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target
2352 2022-02-11 Jonathan Wakely <jwakely@redhat.com>
2354 * testsuite/20_util/monotonic_buffer_resource/allocate.cc:
2355 Ignore -Walloc-larger-than warning.
2356 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc:
2358 * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1
2359 to avoid linker error for __atomic_is_lock_free.
2361 2022-02-10 Thomas Rodgers <rodgert@appliantology.com>
2363 * include/bits/atomic_wait.h (__waiter_base::_S_do_spin,
2364 __waiter_base::_S_do_spin_v): Change memory order from relaxed
2367 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
2369 * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add
2371 (atomic_fetch_xor_explicit): Likewise.
2372 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check
2373 arithmetic and logical operations for atomic_int.
2375 2022-02-10 Jonathan Wakely <jwakely@redhat.com>
2377 * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine
2378 when <dirent.h> is not available.
2379 (_GLIBCXX_HAVE_UNLINKAT): Likewise.
2381 2022-02-09 Thomas Rodgers <rodgert@appliantology.com>
2384 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin
2385 loop inside do loop so that threads failing the wait, reload
2388 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
2390 * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first
2391 parameter to _Dir_base&&.
2392 * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove.
2393 * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first
2394 parameter to _Dir_base&&.
2396 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
2398 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about
2399 checking for CAS on correct word size.
2401 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
2403 * testsuite/experimental/filesystem/operations/create_directories.cc:
2404 Adjust expected results for Windows.
2406 2022-02-08 Jonathan Wakely <jwakely@redhat.com>
2409 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase):
2410 [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member,
2411 instead of checking for errno values indicating a directory.
2412 * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar
2413 logic to non-throwing overload.
2414 (fs::remove_all(const path&, error_code&)): Add comments.
2415 * src/filesystem/ops-common.h: Likewise.
2417 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
2419 * src/filesystem/dir-common.h (_Dir_base::openat): Change return
2420 type to use portable posix::DIR alias.
2422 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
2424 * include/c_compatibility/stdatomic.h [__clang__]: Use
2425 #include_next <stdatomic.h>.
2427 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
2429 * include/experimental/bits/fs_ops.h (fs::copy_file): Remove
2431 (fs::create_directories): Likewise.
2432 (fs::remove_all): Likewise.
2433 * src/filesystem/ops.cc (fs::copy_file): Remove noexcept.
2434 (fs::create_directories): Likewise.
2435 (fs::remove_all): Likewise.
2437 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
2440 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd
2442 * config.h.in: Regenerate.
2443 * configure: Regenerate.
2444 * include/bits/fs_dir.h (recursive_directory_iterator): Declare
2445 remove_all overloads as friends.
2446 (recursive_directory_iterator::__erase): Declare new member
2448 * include/bits/fs_fwd.h (remove, remove_all): Declare.
2449 * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to
2450 constructor. Pass file descriptor argument to base constructor.
2451 (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink)
2452 (_Dir::unlink, _Dir::rmdir): Define new member functions.
2453 (directory_iterator): Pass filename_only argument to _Dir
2455 (recursive_directory_iterator::_Dir_stack): Adjust constructor
2456 parameters to take a _Dir rvalue instead of creating one.
2457 (_Dir_stack::orig): Add data member for storing original path.
2458 (_Dir_stack::report_error): Define new member function.
2459 (__directory_iterator_nofollow): Move here from dir-common.h and
2460 fix value to be a power of two.
2461 (__directory_iterator_filename_only): Define new constant.
2462 (recursive_directory_iterator): Construct _Dir object and move
2463 into _M_dirs stack. Pass skip_permission_denied argument to first
2465 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
2466 (recursive_directory_iterator::__erase): Define new member
2468 * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove.
2469 (fs::remove_all): Use new recursive_directory_iterator::__erase
2471 * src/filesystem/dir-common.h (_Dir_base): Add int parameter to
2472 constructor and use openat to implement nofollow semantics.
2473 (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat):
2474 Define new member functions.
2475 (__directory_iterator_nofollow): Move to fs_dir.cc.
2476 * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to
2478 (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member
2480 (recursive_directory_iterator::_Dir_stack): Adjust constructor
2481 parameters to take a _Dir rvalue instead of creating one.
2482 (recursive_directory_iterator): Check for new nofollow option.
2483 Construct _Dir object and move into _M_dirs stack. Pass
2484 skip_permission_denied argument to first advance call.
2485 (recursive_directory_iterator::increment): Use _Dir::open_subdir.
2486 * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all.
2488 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
2490 * include/bits/allocator.h: Qualify std::allocator_traits in
2491 deprecated warnings.
2492 * libsupc++/exception (uncaught_exception): Add suggestion to
2495 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
2497 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop):
2498 Add [[maybe_unused]] attribute.
2499 * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop):
2502 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
2504 * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
2505 custom comparison function for multiset.
2506 * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
2507 comparison function for set.
2509 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
2511 * include/bits/boost_concept_check.h (_OutputIteratorConcept):
2512 Change member function to data member of function pointer type.
2514 2022-02-02 Martin Sebor <msebor@redhat.com>
2517 * include/std/array (begin): Declare const member function attribute
2519 (end, rbegin, rend, size, max_size, empty, data): Same.
2520 * testsuite/23_containers/array/capacity/empty.cc: Add test cases.
2521 * testsuite/23_containers/array/capacity/max_size.cc: Same.
2522 * testsuite/23_containers/array/capacity/size.cc: Same.
2523 * testsuite/23_containers/array/iterators/begin_end.cc: New test.
2525 2022-02-02 Jonathan Wakely <jwakely@redhat.com>
2527 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use
2528 autoconf macro to check whether d_type is present.
2529 * testsuite/experimental/filesystem/iterators/error_reporting.cc:
2532 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
2534 * testsuite/27_io/filesystem/iterators/97731.cc: New test.
2535 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
2536 Check follow_directory_symlink option.
2537 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc:
2540 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
2542 * src/c++17/fs_dir.cc (recursive_directory_iterator::increment):
2543 Reset state to past-the-end iterator on error.
2544 (fs::recursive_directory_iterator::pop(error_code&)): Likewise.
2545 (fs::recursive_directory_iterator::pop()): Check _M_dirs before
2547 * src/filesystem/dir.cc (recursive_directory_iterator): Likewise,
2548 for the TS implementation.
2549 * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test.
2550 * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test.
2552 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
2554 * include/bits/fs_fwd.h (filesystem::perms): Fix comment.
2556 2022-02-01 Jonathan Wakely <jwakely@redhat.com>
2559 * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages
2560 for stdio_pure and stdio_posix options.
2561 * configure: Regenerate.
2563 2022-02-01 Thomas Rodgers <rodgert@appliantology.com>
2565 * include/bits/atomic_wait.h: Change memory order from
2566 Acquire/Release with relaxed loads to SeqCst+Release for
2567 accesses to the waiter's count.
2569 2022-01-31 Martin Liska <mliska@suse.cz>
2571 * acinclude.m4: Detect *_ld_is_mold and use it.
2572 * configure: Regenerate.
2574 2022-01-30 Hans-Peter Nilsson <hp@axis.com>
2576 * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on
2578 * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise.
2580 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
2583 * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>):
2584 Add __builtin_unreachable to loop.
2585 * testsuite/23_containers/deque/100516.cc: New test.
2587 2022-01-27 Jonathan Wakely <jwakely@redhat.com>
2589 * include/bits/ranges_base.h (ranges::advance): Avoid signed
2590 overflow. Do nothing if already equal to desired result.
2591 * testsuite/24_iterators/range_operations/advance_overflow.cc:
2594 2022-01-27 Martin Liska <mliska@suse.cz>
2597 * acinclude.m4: Fix typo.
2598 * configure: Regenerate.
2600 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
2603 * include/bits/istream.tcc (basic_istream::sentry): Add braces
2605 * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init):
2606 Add pragmas to disable bogus warnings from PR 61596.
2608 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
2611 * src/c++17/fs_ops.cc (_GNU_SOURCE): Define.
2612 * src/filesystem/dir.cc (_GNU_SOURCE): Define.
2613 * src/filesystem/ops.cc (_GNU_SOURCE): Define.
2615 2022-01-25 Jonathan Wakely <jwakely@redhat.com>
2618 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for
2620 * config.h.in: Regenerate.
2621 * configure: Regenerate.
2622 * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor
2623 and pass it to base class constructor.
2624 (directory_iterator): Pass nofollow flag to _Dir constructor.
2625 (fs::recursive_directory_iterator::increment): Likewise.
2626 * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for
2627 directory_iterator constructor. Move error check outside loop.
2628 * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to
2629 constructor and when it's set use ::open with O_NOFOLLOW and
2631 * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor
2632 and pass it to base class constructor.
2633 (directory_iterator): Pass nofollow flag to _Dir constructor.
2634 (fs::recursive_directory_iterator::increment): Likewise.
2635 * src/filesystem/ops.cc (remove_all): Use nofollow option for
2636 directory_iterator constructor. Move error check outside loop.
2638 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
2641 * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use
2642 mem-initializer for _M_buf.
2643 (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed
2645 * testsuite/27_io/spanstream/2.cc: New test.
2647 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
2649 * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS):
2650 Define macro for case where std::from_chars is implemented in
2651 terms of strtod, strtof or strtold.
2652 (buffer_resource, valid_fmt, find_end_of_float, pattern)
2653 (from_chars_impl, make_result, reserve_string): Do not define
2654 unless USE_STRTOD_FOR_FROM_CHARS is defined.
2655 (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and
2656 USE_STRTOD_FOR_FROM_CHARS is defined, instead of
2657 _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it
2660 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
2663 * include/bits/hashtable_policy.h (_Map_base): Add partial
2664 specialization for maps with const key types.
2665 * testsuite/23_containers/unordered_map/104174.cc: New test.
2667 2022-01-23 Jonathan Wakely <jwakely@redhat.com>
2670 * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release):
2671 Set members to zero without type punning.
2673 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
2675 * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment.
2677 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
2681 * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal):
2682 Define as type long.
2683 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements):
2685 * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise.
2686 * include/bits/chrono.h (__cpp_lib_chrono): Likewise.
2687 (__cpp_lib_chrono_udls): Likewise.
2688 * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise.
2689 * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise.
2690 * include/bits/range_access.h (__cpp_lib_nonmember_container_access):
2692 * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this):
2694 * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise.
2695 (__cpp_lib_sample): Likewise.
2696 * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops):
2698 * include/bits/stl_function.h (__cpp_lib_transparent_operators):
2700 * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator):
2702 * include/bits/stl_map.h (__cpp_lib_map_try_emplace):
2704 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup):
2706 * include/bits/unique_ptr.h (__cpp_lib_make_unique):
2708 * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace):
2710 * include/c_global/cmath (__cpp_lib_hypot): Likewise.
2711 * include/c_global/cstddef (__cpp_lib_byte): Likewise.
2712 * include/std/atomic (__cpp_lib_atomic_is_always_lock_free):
2714 * include/std/complex (__cpp_lib_complex_udls): Likewise.
2715 * include/std/filesystem (__cpp_lib_filesystem): Likewise.
2716 * include/std/functional (__cpp_lib_not_fn): Likewise.
2717 (__cpp_lib_boyer_moore_searcher): Likewise.
2718 * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise.
2719 * include/std/mutex (__cpp_lib_scoped_lock): Likewise.
2720 * include/std/numeric (__cpp_lib_gcd_lcm): Likewise.
2721 (__cpp_lib_gcd, __cpp_lib_lcm): Likewise.
2722 * include/std/tuple (__cpp_lib_apply): Likewise.
2723 (__cpp_lib_make_from_tuple): Likewise.
2724 * include/std/type_traits (__cpp_lib_integral_constant_callable)
2725 (__cpp_lib_bool_constant, __cpp_lib_logical_traits)
2726 (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases)
2727 (__cpp_lib_result_of_sfinae, __cpp_lib_void_t)
2728 (__cpp_lib_is_swappable, __cpp_lib_is_invocable)
2729 (__cpp_lib_has_unique_object_representations)
2730 (__cpp_lib_is_aggregate): Likewise.
2731 * include/std/version: Likewise.
2732 * libsupc++/new (__cpp_lib_launder): Likewise.
2734 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
2736 * include/std/version (__cpp_lib_shared_ptr_arrays): Fix
2737 condition for C++17 definition.
2739 2022-01-21 Jonathan Wakely <jwakely@redhat.com>
2741 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count):
2743 (_Sp_atomic::_M_ptr): Add default member-initializer.
2744 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc:
2745 Check constant initialization.
2746 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise.
2748 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
2750 * src/c++11/cxx11-ios_failure.cc (__constinit): Define as
2751 equivalent attribute for Clang.
2752 * src/c++11/future.cc (__constinit): Likewise.
2753 * src/c++11/system_error.cc (__constinit): Likewise.
2754 * src/c++17/memory_resource.cc (__constinit): Likewise.
2756 2022-01-20 Jonathan Wakely <jwakely@redhat.com>
2758 * scripts/testsuite_flags.in: Only add src/filesystem/.libs and
2759 src/libbacktrace/.libs to LDFLAGS if those directories exist.
2761 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2763 * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4
2765 * configure: Regenerate.
2767 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2770 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include
2773 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2775 * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to
2776 linker search paths.
2777 * src/Makefile.am: Fix src/debug/libbacktrace build.
2778 * src/Makefile.in: Regenerate.
2779 * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS
2780 variable. Use symlinks for the source files.
2781 * src/libbacktrace/Makefile.in: Regenerate.
2783 2022-01-19 Matthias Kretz <m.kretz@gsi.de>
2785 * include/experimental/bits/simd.h (__floating_point_flags): Do
2786 not rely on math_errhandling to expand to a constant expression.
2788 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2790 * doc/xml/manual/evolution.xml: Document deprecations.
2791 * doc/xml/manual/status_cxx2017.xml: Update status.
2792 * doc/html/*: Regenerate.
2794 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2796 * include/bits/stl_tempbuf.h (get_temporary_buffer): Change
2797 _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED.
2799 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2801 * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused
2804 2022-01-19 Jonathan Wakely <jwakely@redhat.com>
2807 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock):
2808 Only use __thread_relax if __cpp_lib_atomic_wait is defined.
2810 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2813 * include/bits/basic_string.h (basic_string(nullptr_t)): Only
2815 (operator=(nullptr_t)): Likewise.
2816 * include/bits/cow_string.h: Likewise.
2817 * include/std/string_view (basic_string_view(nullptr_t)):
2819 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust
2820 expected error. Add examples that become ill-formed in C++23.
2821 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc:
2822 Adjust expected errors.
2823 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc:
2826 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2829 * include/bits/stl_iterator.h (reverse_iterator): Check
2830 __cpp_lib_concepts instead of __cplusplus.
2832 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2835 * include/bits/stl_pair.h (pair): Adjust constraints on
2836 deprecated constructors accepting literal zero as null pointer
2837 constant. Improve wording of deprecated attribute.
2838 * testsuite/20_util/pair/cons/99957.cc: Check that deprecated
2839 constructors do not cause ambiguities for copyable types.
2841 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2843 * include/bits/stl_function.h (ptr_fun): Fix suggestion for
2844 non-deprecated alternative.
2846 2022-01-18 Tom Honermann <tom@honermann.net>
2848 * acinclude.m4: Define config macros if uchar.h provides
2849 c8rtomb() and mbrtoc8().
2850 * config.h.in: Regenerate.
2851 * configure: Regenerate.
2852 * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define.
2853 * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise.
2854 * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise.
2855 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc:
2857 * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc:
2860 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2862 * include/Makefile.am: Install new header.
2863 * include/Makefile.in: Regenerate.
2864 * include/c_compatibility/stdatomic.h: New file.
2865 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test.
2867 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2870 * src/c++17/fast_float/LOCAL_PATCHES: Update.
2871 * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN):
2872 Define in terms of __BYTE_ORDER__.
2874 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2877 * src/c++17/fast_float/LOCAL_PATCHES: UPDATE.
2878 * src/c++17/fast_float/fast_float.h (round): Use explicit
2879 template argument list for std::min.
2881 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2883 * doc/xml/manual/status_cxx2017.xml: Update C++17 status.
2884 * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for
2886 * doc/html/manual/status.html: Regenerate.
2888 2022-01-18 Jonathan Wakely <jwakely@redhat.com>
2890 * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve
2892 * configure: Regenerate.
2894 2022-01-17 Patrick Palka <ppalka@redhat.com>
2896 * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT):
2897 Conditionally define, and use it to conditionally include
2899 (from_chars): Use fast_float for float and double when
2902 2022-01-17 Patrick Palka <ppalka@redhat.com>
2904 * src/c++17/fast_float/LOCAL_PATCHES: Update.
2905 * src/c++17/fast_float/fast_float.h (from_chars_advanced): In
2906 case of over/underflow, return errc::result_out_of_range and don't
2909 2022-01-17 Patrick Palka <ppalka@redhat.com>
2911 * src/c++17/fast_float/LOCAL_PATCHES: Update.
2912 * src/c++17/fast_float/fast_float.h: Apply local modifications.
2914 2022-01-17 Patrick Palka <ppalka@redhat.com>
2916 * src/c++17/fast_float/LOCAL_PATCHES: New file.
2917 * src/c++17/fast_float/MERGE: New file.
2918 * src/c++17/fast_float/README.md: New file, copied from the
2919 fast_float repository.
2920 * src/c++17/fast_float/fast_float.h: New file, an amalgamation
2921 of the fast_float library.
2923 2022-01-17 Patrick Palka <ppalka@redhat.com>
2925 * src/c++17/floating_from_chars.cc: Include <bit>.
2926 (ascii_to_hexit, starts_with_ci): Conditionally define.
2927 (__floating_from_chars_hex): Conditionally define.
2928 (from_chars): Use __floating_from_chars_hex for
2929 chars_format::hex parsing of binary32/64 float/double.
2930 (testsuite/20_util/from_chars/7.cc): New test.
2931 * testsuite/20_util/from_chars/7.cc: New file.
2933 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2935 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro.
2936 * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE.
2937 * include/Makefile.am: Add new header.
2938 * include/Makefile.in: Regenerate.
2939 * include/std/stacktrace: New header.
2940 * include/std/version (__cpp_lib_stacktrace): Define.
2941 * Makefile.in: Regenerate.
2942 * config.h.in: Regenerate.
2943 * configure: Regenerate.
2944 * doc/Makefile.in: Regenerate.
2945 * libsupc++/Makefile.in: Regenerate.
2946 * po/Makefile.in: Regenerate.
2947 * python/Makefile.in: Regenerate.
2948 * src/Makefile.am: Regenerate.
2949 * src/Makefile.in: Regenerate.
2950 * src/c++11/Makefile.in: Regenerate.
2951 * src/c++17/Makefile.in: Regenerate.
2952 * src/c++20/Makefile.in: Regenerate.
2953 * src/c++98/Makefile.in: Regenerate.
2954 * src/filesystem/Makefile.in: Regenerate.
2955 * testsuite/Makefile.in: Regenerate.
2956 * src/libbacktrace/Makefile.am: New file.
2957 * src/libbacktrace/Makefile.in: New file.
2958 * src/libbacktrace/backtrace-rename.h: New file.
2959 * src/libbacktrace/backtrace-supported.h.in: New file.
2960 * src/libbacktrace/config.h.in: New file.
2961 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace):
2963 * testsuite/20_util/stacktrace/entry.cc: New test.
2964 * testsuite/20_util/stacktrace/synopsis.cc: New test.
2965 * testsuite/20_util/stacktrace/version.cc: New test.
2967 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2969 * doc/xml/manual/status_cxx2020.xml: Use final C++20 option
2971 * doc/html/manual/status.html: Regenerate.
2973 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2976 * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS.
2977 * include/Makefile.in: Regenerate.
2978 * testsuite/17_intro/headers/c++1998/103650.cc: New test.
2980 2022-01-17 Matthias Kretz <m.kretz@gsi.de>
2982 * include/experimental/bits/simd.h (__floating_point_flags): Do
2983 not rely on the presence of the math_errhandling macro.
2985 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2987 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename
2988 to qualified-id for dependent type.
2990 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2992 * doc/xml/manual/status_cxx2020.xml: Update.
2993 * doc/html/manual/status.html: Regenerate.
2995 2022-01-17 Jonathan Wakely <jwakely@redhat.com>
2996 Thomas Rodgers <trodgers@redhat.com>
2998 * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr):
3000 (_Sp_atomic): New class template.
3001 (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial
3003 * include/bits/shared_ptr_base.h (__shared_count, __weak_count)
3004 (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend.
3005 * include/std/version (__cpp_lib_atomic_shared_ptr): New macro.
3006 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New
3008 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test.
3010 2022-01-15 Matthias Kretz <m.kretz@gsi.de>
3012 * include/experimental/bits/simd.h: Move feature detection bools
3013 and add __have_avx512bitalg, __have_avx512vbmi2,
3014 __have_avx512vbmi, __have_avx512ifma, __have_avx512cd,
3015 __have_avx512vnni, __have_avx512vpopcntdq.
3016 (__detail::__machine_flags): New function which returns a unique
3017 uint64 depending on relevant -m and -f flags.
3018 (__detail::__odr_helper): New type alias for either an anonymous
3019 type or a type specialized with the __machine_flags number.
3020 (_SimdIntOperators): Change template parameters from _Impl to
3021 _Tp, _Abi because _Impl now has an __odr_helper parameter which
3022 may be _OdrEnforcer from the anonymous namespace, which makes
3023 for a bad base class.
3024 (many): Either add __odr_helper template parameter or mark as
3026 * include/experimental/bits/simd_detail.h: Add defines for
3027 AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD,
3028 AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT.
3029 * include/experimental/bits/simd_builtin.h: Add __odr_helper
3030 template parameter or mark as always_inline.
3031 * include/experimental/bits/simd_fixed_size.h: Ditto.
3032 * include/experimental/bits/simd_math.h: Ditto.
3033 * include/experimental/bits/simd_scalar.h: Ditto.
3034 * include/experimental/bits/simd_neon.h: Add __odr_helper
3036 * include/experimental/bits/simd_ppc.h: Ditto.
3037 * include/experimental/bits/simd_x86.h: Ditto.
3039 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
3041 * testsuite/22_locale/numpunct/members/char/3.cc:
3042 Require pt_PT locale instead of nl_NL.
3043 (test02): Use pt_PT locale instead of nl_NL.
3045 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
3050 * include/backward/binders.h (bind1st, bind2nd): Add deprecated
3052 * include/bits/refwrap.h (_Maybe_unary_or_binary_function):
3053 Disable deprecated warnings for base classes.
3054 (_Reference_wrapper_base): Likewise.
3055 * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise.
3056 * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise.
3057 * include/bits/stl_function.h (unary_function, binary_function):
3058 Add deprecated attribute.
3059 (unary_negate, not1, binary_negate, not2, ptr_fun)
3060 (pointer_to_unary_function, pointer_to_binary_function)
3061 (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t)
3062 (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t)
3063 (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated
3065 * include/bits/stl_iterator.h: Disable deprecated warnings for
3066 std::iterator base classes.
3067 * include/bits/stl_iterator_base_types.h (iterator): Add
3068 deprecated attribute.
3069 * include/bits/stl_map.h (map::value_compare): Disable
3070 deprecated warnings for base class.
3071 * include/bits/stl_multimap.h (multimap::value_compare):
3073 * include/bits/stl_raw_storage_iter.h (raw_storage_iterator):
3074 Add deprecated attribute.
3075 * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise.
3076 * include/bits/stream_iterator.h: Disable deprecated warnings.
3077 * include/bits/streambuf_iterator.h: Likewise.
3078 * include/ext/bitmap_allocator.h: Remove unary_function base
3080 * include/ext/functional: Disable deprecated warnings.
3081 * include/ext/rope: Likewise.
3082 * include/ext/throw_allocator.h: Likewise.
3083 * include/std/type_traits (result_of): Add deprecated attribute.
3084 * include/tr1/functional: Disable deprecated warnings.
3085 * include/tr1/functional_hash.h: Likewise.
3086 * testsuite/20_util/function_objects/binders/1.cc: Add
3087 -Wno-disable-deprecations.
3088 * testsuite/20_util/function_objects/binders/3113.cc: Likewise.
3089 * testsuite/20_util/function_objects/constexpr.cc: Add
3091 * testsuite/20_util/raw_storage_iterator/base.cc: Likewise.
3092 * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise.
3093 * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc:
3095 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc:
3097 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc:
3099 * testsuite/20_util/reference_wrapper/24803.cc:
3101 * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for
3102 C++20 and check for absence of nested types.
3103 * testsuite/20_util/shared_ptr/comparison/less.cc: Remove
3104 std::binary_function base class.
3105 * testsuite/20_util/temporary_buffer.cc: Add dg-warning.
3106 * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove
3107 std::iterator base class.
3108 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc:
3110 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc:
3112 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc:
3114 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc:
3116 * testsuite/24_iterators/istreambuf_iterator/92285.cc:
3118 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc:
3120 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc:
3122 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc:
3124 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc:
3126 * testsuite/25_algorithms/copy/34595.cc:
3128 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function
3130 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc:
3131 Disable deprecated warnings.
3132 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc:
3134 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc:
3136 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc:
3138 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc:
3140 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc:
3142 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc:
3144 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc:
3146 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc:
3148 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc:
3150 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc:
3152 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc:
3154 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc:
3156 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc:
3158 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc:
3160 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc:
3162 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc:
3164 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc:
3166 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc:
3168 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc:
3170 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc:
3172 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc:
3174 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc:
3176 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc:
3178 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc:
3180 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc:
3182 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc:
3184 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc:
3186 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc:
3188 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc:
3190 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc:
3192 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc:
3194 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc:
3196 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc:
3198 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc:
3200 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc:
3202 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc:
3204 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc:
3206 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc:
3208 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc:
3210 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc:
3212 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc:
3214 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc:
3216 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc:
3218 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc:
3220 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc:
3222 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc:
3224 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc:
3226 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add
3228 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc:
3230 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc:
3232 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
3233 Disable deprecated warnings.
3234 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc:
3236 * testsuite/util/regression/trait/erase_if_fn.hpp: Remove
3237 std::unary_function base classes.
3238 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
3239 Remove std::iterator base classes.
3241 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
3243 * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type):
3244 Correct type of macro value.
3245 (shared_ptr): Add additional friend declarations.
3246 (make_shared, allocate_shared): Constrain existing overloads and
3247 remove static_assert.
3248 * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite):
3250 (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial
3251 specialization for use with make_shared_for_overwrite.
3252 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
3253 (_Sp_counted_array_base): New class template.
3254 (_Sp_counted_array): New class template.
3255 (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)):
3256 New constructor for allocating shared arrays.
3257 (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise.
3258 * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct
3260 (__cpp_lib_shared_ptr_arrays): Update value for C++20.
3261 (__cpp_lib_smart_ptr_for_overwrite): New macro.
3262 * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust
3264 * testsuite/20_util/shared_ptr/creation/array.cc: New test.
3265 * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test.
3266 * testsuite/20_util/shared_ptr/creation/version.cc: New test.
3267 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check
3268 feature test macro. Test non-trivial default-initialization.
3270 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
3272 * include/bits/stl_construct.h (_Construct, _Construct_novalue):
3273 Also cast away cv-qualifiers when converting pointer to void.
3274 * testsuite/20_util/allocator/void.cc: Test construct function
3275 with cv-qualified types.
3277 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
3280 * include/bits/stl_iterator.h (common_iterator): Use
3281 std::construct_at instead of placement new.
3282 * testsuite/24_iterators/common_iterator/1.cc: Check copy
3283 construction is usable in constant expressions.
3285 2022-01-14 Jonathan Wakely <jwakely@redhat.com>
3287 * doc/xml/manual/status_cxx2011.xml: Document new tokens
3288 accepted by std::random_device constructor.
3289 * doc/html/manual/status.html: Regenerate.
3291 2022-01-12 Patrick Palka <ppalka@redhat.com>
3293 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do
3296 2022-01-12 Patrick Palka <ppalka@redhat.com>
3299 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex):
3300 Track the excess precision separately from the effective
3301 precision. Avoid overflow in bounds check by splitting it into
3303 (__floating_to_chars_precision): Avoid overflow in bounds checks
3305 * testsuite/20_util/to_chars/103955.cc: New test.
3307 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
3310 * include/Makefile.am: Install <source_location> for
3312 * include/Makefile.in: Regenerate.
3313 * include/std/version (__cpp_lib_source_location): Define for
3316 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
3318 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()):
3319 Add neoxcept (LWG 3593).
3321 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
3323 * include/std/ranges (ranges::__detail::__box): Add constexpr to
3324 assignment operators (LWG 3572).
3325 * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a
3326 view that uses copyable-box.
3328 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
3331 * include/Makefile.am: Install <coroutine> for freestanding.
3332 * include/Makefile.in: Regenerate.
3333 * include/std/coroutine: Adjust headers and preprocessor
3335 (__coroutine_traits_impl): Use concepts when available.
3336 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define.
3338 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
3340 * include/std/ostream (operator<<(basic_ostream&, charT)):
3341 Use unformatted input if no padding is needed.
3342 (operator<<(basic_ostream<char>&, char)): Likewise.
3344 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
3347 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS):
3349 * include/std/variant (__cpp_lib_variant): Only define C++20
3350 value when the compiler is known to support conditionally
3351 trivial destructors.
3352 * include/std/version (__cpp_lib_variant): Likewise.
3354 2022-01-11 Jonathan Wakely <jwakely@redhat.com>
3356 * include/bits/stl_iterator.h (common_iterator): Add constexpr
3357 to all member functions (LWG 3574).
3358 * testsuite/24_iterators/common_iterator/1.cc: Evaluate some
3359 tests as constant expressions.
3360 * testsuite/24_iterators/common_iterator/2.cc: Likewise.
3362 2022-01-10 Jakub Jelinek <jakub@redhat.com>
3365 * include/bits/locale_facets_nonio.h (__time_get_state): New struct.
3366 (time_get::_M_extract_via_format): Declare new method with
3367 __time_get_state& as an extra argument.
3368 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add
3369 __state argument, set various fields in it while parsing. Handle %j,
3370 %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour
3371 for %p immediately. Add a wrapper around the method without the
3372 __state argument for backwards compatibility.
3373 (_M_extract_num): Remove all __len == 4 special cases.
3374 (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero
3375 initialize __state, pass it to _M_extract_via_format and finalize it
3377 (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068,
3378 69-99 to 1969-1999. For 3-4 digit parsed years use that as year.
3379 (get): If do_get isn't overloaded from the locale_facets_nonio.tcc
3380 version, don't call do_get but call _M_extract_via_format instead to
3382 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format
3383 with extra __time_get_state and __time_get_state::_M_finalize_state.
3384 * src/c++98/locale_facets.cc (is_leap, day_of_the_week,
3385 day_of_the_year): New functions in anon namespace.
3386 (mon_yday): New var in anon namespace.
3387 (__time_get_state::_M_finalize_state): Define.
3388 * testsuite/22_locale/time_get/get/char/4.cc: New test.
3389 * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test.
3390 * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197
3391 as year 197AD instead of error.
3392 * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as
3393 year 2001 instead of error.
3394 * testsuite/22_locale/time_get/get_year/char/6.cc: New test.
3395 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse
3396 197 as year 197AD instead of error.
3397 * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse
3398 1 as year 2001 instead of error.
3399 * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test.
3401 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
3404 * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do
3405 nothing for freestanding builds.
3406 (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS.
3407 * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured
3408 with --without-headers. Do not use GCC_HEADER_STDINT for
3409 freestanding builds.
3410 * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding
3411 for freestanding builds.
3412 * configure: Regenerate.
3413 * Makefile.in: Regenerate.
3414 * doc/Makefile.in: Regenerate.
3415 * include/Makefile.in: Regenerate.
3416 * libsupc++/Makefile.in: Regenerate.
3417 * po/Makefile.in: Regenerate.
3418 * python/Makefile.in: Regenerate.
3419 * src/Makefile.in: Regenerate.
3420 * src/c++11/Makefile.in: Regenerate.
3421 * src/c++17/Makefile.in: Regenerate.
3422 * src/c++20/Makefile.in: Regenerate.
3423 * src/c++98/Makefile.in: Regenerate.
3424 * src/filesystem/Makefile.in: Regenerate.
3425 * testsuite/Makefile.in: Regenerate.
3427 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
3429 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc:
3430 Add dg-timeout-factor directive.
3431 * testsuite/28_regex/basic_regex/84110.cc: Likewise.
3432 * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise.
3433 * testsuite/28_regex/match_results/102667.cc: Likewise.
3435 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
3437 * doc/xml/manual/using.xml: Update documentation around default
3439 * doc/html/*: Regenerate.
3441 2022-01-10 Jonathan Wakely <jwakely@redhat.com>
3444 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++.
3445 * src/c++17/Makefile.in: Regenerate.
3447 2022-01-09 Sandra Loosemore <sandra@codesourcery.com>
3449 * testsuite/18_support/type_info/constexpr.cc: Add explicit
3450 -fdelete-null-pointer-checks option.
3452 2022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu>
3453 Jonathan Wakely <jwakely@redhat.com>
3456 * include/bits/forward_list.tcc (forward_list::merge): Check for
3458 * testsuite/23_containers/forward_list/operations/merge.cc: New test.
3460 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
3462 * include/bits/regex.h (basic_regex, match_results): Qualify
3463 name in friend declaration, to work around Clang bug.
3465 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
3467 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor.
3469 2022-01-06 Jonathan Wakely <jwakely@redhat.com>
3472 * include/std/charconv (__from_chars_alpha_to_num): Return
3473 char instead of unsigned char. Change invalid return value to
3474 127 instead of using numeric trait.
3475 (__from_chars_alnum): Fix comment. Do not use std::isdigit.
3476 Change type of variable to char.
3478 2022-01-05 François Dumont <fdumont@gcc.gnu.org>
3481 * include/bits/hashtable_policy.h
3482 (_Hashtable_hash_traits<_Hash>): New.
3483 (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New.
3484 (_Hashtable_base<>::_M_key_equals): New.
3485 (_Hashtable_base<>::_M_equals): Use latter.
3486 (_Hashtable_base<>::_M_key_equals_tr): New.
3487 (_Hashtable_base<>::_M_equals_tr): Use latter.
3488 * include/bits/hashtable.h
3489 (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits.
3490 (_Hashtable<>::find): Loop through elements to look for key if size is lower
3491 than __small_size_threshold().
3492 (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise.
3493 (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise.
3494 (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New.
3495 (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter.
3496 (_Hashtable<>::_M_find_before_node(const key_type&)): New.
3497 (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter.
3498 (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise.
3499 * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>.
3500 * testsuite/util/testsuite_performance.h
3501 (report_performance): Use 9 width to display memory.
3502 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc:
3503 New performance test case.
3505 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3508 * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)):
3509 Relax constraints on string_view parameter.
3510 * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)):
3512 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test.
3514 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3516 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for
3518 * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define.
3519 * include/std/version (__cpp_lib_constexpr_typeinfo): Define.
3520 * libsupc++/tinfo.cc: Add #error to ensure non-inline definition
3522 (type_info::__equal): Define alias symbol.
3523 * libsupc++/typeinfo (type_info::before): Combine different
3524 implementations into one.
3525 (type_info::operator==): Likewise. Use address equality for
3526 constant evaluation. Call __equal for targets that require the
3527 definition to be non-inline.
3528 * testsuite/18_support/type_info/constexpr.cc: New test.
3530 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3532 * src/c++11/cxx11-ios_failure.cc (io_error_category): Define
3533 class and virtual functions as 'final'.
3534 (io_category_instance): Use constinit union to make the object
3536 * src/c++11/future.cc (future_error_category): Define class and
3537 virtual functions as 'final'.
3538 (future_category_instance): Use constinit union.
3540 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3542 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip
3543 versioned namespace from the type name that is printed.
3545 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3547 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New
3548 printer for std::regex NFA states.
3550 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3552 * testsuite/23_containers/forward_list/operations/1.cc: Fill in
3553 placeholders in comments.
3554 * testsuite/23_containers/forward_list/operations/2.cc:
3556 * testsuite/23_containers/forward_list/operations/3.cc:
3558 * testsuite/23_containers/forward_list/operations/4.cc:
3560 * testsuite/23_containers/forward_list/operations/5.cc:
3562 * testsuite/23_containers/forward_list/operations/6.cc:
3564 * testsuite/23_containers/forward_list/operations/7.cc:
3567 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3570 * include/bits/stl_deque.h (operator-): Do not use 0 as null
3573 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3575 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>):
3576 Use std::_Construct for construct.
3578 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3581 * doc/xml/faq.xml: Add '-x c++' to preprocessor command.
3582 * doc/html/faq.html: Regenerate.
3584 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3586 * include/bits/regex.h (__regex_algo_impl): Change __policy and
3587 __match_mode template parameters to be function parameters.
3588 (regex_match, regex_search): Pass policy and match mode as
3590 * include/bits/regex.tcc (__regex_algo_impl): Change template
3591 parameters to function parameters.
3592 * include/bits/regex_compiler.h (_RegexTranslatorBase): Use
3593 'if constexpr' for conditions using template parameters.
3594 (_RegexTranslator): Likewise.
3595 * include/bits/regex_executor.tcc (_Executor::_M_handle_accept):
3597 * testsuite/util/testsuite_regex.h (regex_match_debug)
3598 (regex_search_debug): Move template arguments to function
3601 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3603 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare
3604 results even if the match failed.
3606 2022-01-05 Jonathan Wakely <jwakely@redhat.com>
3608 * include/bits/regex_compiler.tcc: Adjust all calls to
3609 __throw_regex_error.
3610 * include/bits/regex_error.h (__throw_regex_error): Add noreturn
3612 * include/bits/regex_scanner.tcc: Likewise.
3613 * src/c++11/regex.cc (desc): New helper function.
3614 (regex_error::regex_error(error_type)): Use desc to get a string
3615 corresponding to the error code.
3618 Copyright (C) 2022 Free Software Foundation, Inc.
3620 Copying and distribution of this file, with or without modification,
3621 are permitted in any medium without royalty provided the copyright
3622 notice and this notice are preserved.