12023-05-08 Release Manager 2 3 * GCC 12.3.0 released. 4 52023-05-03 Kefu Chai <kefu.chai@scylladb.com> 6 7 Backported from master: 8 2023-05-03 Kefu Chai <kefu.chai@scylladb.com> 9 Jonathan Wakely <jwakely@redhat.com> 10 11 PR libstdc++/109703 12 * include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)): 13 Initialize _M_string_length. 14 152023-05-03 Jonathan Wakely <jwakely@redhat.com> 16 17 Backported from master: 18 2023-04-28 Jonathan Wakely <jwakely@redhat.com> 19 20 * doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes 21 from header paths. 22 232023-04-29 Patrick Palka <ppalka@redhat.com> 24 25 Backported from master: 26 2023-04-12 Patrick Palka <ppalka@redhat.com> 27 28 * include/std/ranges (lazy_split_view::_OuterIter::_OuterIter): 29 Propagate _M_trailing_empty in the const-converting constructor 30 as per LWG 3904. 31 * testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test. 32 332023-04-29 Patrick Palka <ppalka@redhat.com> 34 35 Backported from master: 36 2023-03-14 Patrick Palka <ppalka@redhat.com> 37 38 * include/bits/stl_iterator.h (move_iterator::_S_iter_concept): 39 Define. 40 (__cpp_lib_move_iterator_concept): Define for C++20. 41 (move_iterator::iterator_concept): Strengthen as per P2520R0. 42 * include/std/version (__cpp_lib_move_iterator_concept): Define 43 for C++20. 44 * testsuite/24_iterators/move_iterator/p2520r0.cc: New test. 45 462023-04-29 Patrick Palka <ppalka@redhat.com> 47 48 Backported from master: 49 2023-03-09 Patrick Palka <ppalka@redhat.com> 50 51 PR libstdc++/108362 52 * include/std/ranges (__detail::__can_single_view): New concept. 53 (_Single::operator()): Constrain it. Move [[nodiscard]] to the 54 end of the function declarator. 55 (__detail::__can_iota_view): New concept. 56 (_Iota::operator()): Constrain it. Move [[nodiscard]] to the 57 end of the function declarator. 58 (__detail::__can_istream_view): New concept. 59 (_Istream::operator()): Constrain it. Move [[nodiscard]] to the 60 end of the function declarator. 61 * testsuite/std/ranges/iota/lwg3292_neg.cc: Prune "in 62 requirements" diagnostic. 63 * testsuite/std/ranges/iota/iota_view.cc (test07): New test. 64 * testsuite/std/ranges/istream_view.cc (test08): New test. 65 * testsuite/std/ranges/single_view.cc (test07): New test. 66 672023-04-28 Patrick Palka <ppalka@redhat.com> 68 69 Backported from master: 70 2023-04-24 Patrick Palka <ppalka@redhat.com> 71 72 * include/bits/max_size_type.h (__max_diff_type::operator>>=): 73 Fix propagation of sign bit. 74 * testsuite/std/ranges/iota/max_size_type.cc: Avoid using the 75 non-standard 'signed typedef-name'. Add some compile-time tests 76 for right-shifting a negative __max_diff_type value by more than 77 one. 78 792023-04-27 Jonathan Wakely <jwakely@redhat.com> 80 81 * include/std/atomic: Add missing @endcond doxygen comment. 82 832023-04-27 Jonathan Wakely <jwakely@redhat.com> 84 85 Backported from master: 86 2022-11-25 Jonathan Wakely <jwakely@redhat.com> 87 88 PR libstdc++/107850 89 * include/bits/erase_if.h (__erase_nodes_if): Use non-const 90 reference to the container. 91 * include/experimental/map (erase_if): Likewise. 92 * include/experimental/set (erase_if): Likewise. 93 * include/experimental/unordered_map (erase_if): Likewise. 94 * include/experimental/unordered_set (erase_if): Likewise. 95 * include/std/map (erase_if): Likewise. 96 * include/std/set (erase_if): Likewise. 97 * include/std/unordered_map (erase_if): Likewise. 98 * include/std/unordered_set (erase_if): Likewise. 99 * testsuite/23_containers/map/erasure.cc: Check with 100 const-incorrect predicate. 101 * testsuite/23_containers/set/erasure.cc: Likewise. 102 * testsuite/23_containers/unordered_map/erasure.cc: Likewise. 103 * testsuite/23_containers/unordered_set/erasure.cc: Likewise. 104 * testsuite/experimental/map/erasure.cc: Likewise. 105 * testsuite/experimental/set/erasure.cc: Likewise. 106 * testsuite/experimental/unordered_map/erasure.cc: Likewise. 107 * testsuite/experimental/unordered_set/erasure.cc: Likewise. 108 1092023-04-27 Jonathan Wakely <jwakely@redhat.com> 110 111 Backported from master: 112 2022-11-28 Jonathan Wakely <jwakely@redhat.com> 113 114 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc: 115 Replace non-ASCII character. 116 1172023-04-27 Jonathan Wakely <jwakely@redhat.com> 118 119 Backported from master: 120 2023-02-28 Jonathan Wakely <jwakely@redhat.com> 121 122 PR libstdc++/108952 123 * include/bits/uses_allocator_args.h 124 (uses_allocator_construction_args): Implement LWG 3527. 125 * testsuite/20_util/pair/astuple/get-2.cc: New test. 126 * testsuite/20_util/scoped_allocator/108952.cc: New test. 127 * testsuite/20_util/uses_allocator/lwg3527.cc: New test. 128 1292023-04-27 Jonathan Wakely <jwakely@redhat.com> 130 131 Backported from master: 132 2023-03-31 Jonathan Wakely <jwakely@redhat.com> 133 134 PR libstdc++/109339 135 * include/std/stop_token (_Stop_state_ptr(const stop_source&)): 136 Add attribute access with access-mode 'none'. 137 * testsuite/30_threads/stop_token/stop_source/109339.cc: New test. 138 1392023-04-27 Jonathan Wakely <jwakely@redhat.com> 140 141 Backported from master: 142 2022-11-28 Jonathan Wakely <jwakely@redhat.com> 143 144 PR libstdc++/107466 145 * include/bits/random.h (subtract_with_carry_engine): Use 32-bit 146 type for default seed. Use 0u as default argument for 147 subtract_with_carry_engine(result_type) constructor and 148 seed(result_type) member function. 149 * include/bits/random.tcc (subtract_with_carry_engine): Use 150 32-bit type for default seed and engine used for initial state. 151 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc: 152 New test. 153 1542023-04-27 Jonathan Wakely <jwakely@redhat.com> 155 156 Backported from master: 157 2023-04-27 Jonathan Wakely <jwakely@redhat.com> 158 159 * include/bits/mofunc_impl.h: Fix typo in doxygen comment. 160 1612023-04-27 Jonathan Wakely <jwakely@redhat.com> 162 163 Backported from master: 164 2023-04-27 Jonathan Wakely <jwakely@redhat.com> 165 166 * doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for 167 HTML docs. 168 * include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit 169 from doxygen docs. 170 * include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR): 171 Likewise. 172 * include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR): 173 Likewise. 174 * include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR): 175 Likewise. 176 * include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR) 177 (_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT) 178 (_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT) 179 (_DEFINE_BINARY_OPERATOR): Likewise. 180 1812023-04-21 Jonathan Wakely <jwakely@redhat.com> 182 183 PR libstdc++/103755 184 * include/bits/locale_classes.tcc (try_facet, use_facet): Do not 185 check array index or dynamic type when accessing required 186 specializations of std::ctype, std::num_get, or std::num_put. 187 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Adjust 188 expected errors. 189 1902023-04-20 Jonathan Wakely <jwakely@redhat.com> 191 192 Backported from master: 193 2022-11-29 Jonathan Wakely <jwakely@redhat.com> 194 195 PR libstdc++/107852 196 PR libstdc++/106199 197 PR libstdc++/100366 198 * include/bits/vector.tcc (vector::_M_fill_insert): Copy 199 _M_start and _M_finish members before allocating. 200 (vector::_M_default_append): Likewise. 201 (vector::_M_range_insert): Likewise. 202 2032023-04-20 Jonathan Wakely <jwakely@redhat.com> 204 205 Backported from master: 206 2023-04-04 Jonathan Wakely <jwakely@redhat.com> 207 208 * doc/xml/manual/extensions.xml: Remove std::bad_exception from 209 example program. 210 * doc/html/manual/ext_demangling.html: Regenerate. 211 2122023-04-20 Jonathan Wakely <jwakely@redhat.com> 213 214 Backported from master: 215 2023-04-05 Jonathan Wakely <jwakely@redhat.com> 216 217 * include/bits/regex.h (sub_match::swap): New function. 218 * testsuite/28_regex/sub_match/lwg3204.cc: New test. 219 2202023-04-20 Jonathan Wakely <jwakely@redhat.com> 221 222 Backported from master: 223 2023-03-28 Jonathan Wakely <jwakely@redhat.com> 224 225 PR libstdc++/103387 226 * include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use 227 std::use_facet instead of cached _M_num_get facet. 228 (istream::operator>>(short&)): Likewise. 229 (istream::operator>>(int&)): Likewise. 230 * include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use 231 std::use_facet instead of cached _M_num_put facet. 232 2332023-04-20 Jonathan Wakely <jwakely@redhat.com> 234 235 Backported from master: 236 2023-01-15 Jonathan Wakely <jwakely@redhat.com> 237 238 * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from 239 dg-options. 240 2412023-04-20 Jonathan Wakely <jwakely@redhat.com> 242 243 Backported from master: 244 2023-03-22 Jonathan Wakely <jwakely@redhat.com> 245 246 * include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)): 247 Add overload, as per LWG 3893. 248 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: 249 Check assignment from nullptr. 250 2512023-04-20 Jonathan Wakely <jwakely@redhat.com> 252 253 Backported from master: 254 2023-03-29 Jonathan Wakely <jwakely@redhat.com> 255 256 * include/std/expected (expected::value() &): Use const lvalue 257 for unex member passed to bad_expected_access constructor, as 258 per LWG 3843. 259 2602023-04-20 Jonathan Wakely <jwakely@redhat.com> 261 262 Backported from master: 263 2023-02-02 Jonathan Wakely <jwakely@redhat.com> 264 265 * include/std/variant (variant::operator=): Implement resolution 266 of LWG 3585. 267 * testsuite/20_util/variant/lwg3585.cc: New test. 268 2692023-04-12 Patrick Palka <ppalka@redhat.com> 270 271 Backported from master: 272 2023-04-12 Patrick Palka <ppalka@redhat.com> 273 274 * src/c++17/floating_from_chars.cc: Include <algorithm>, 275 <iterator>, <limits> and <cstdint>. 276 2772023-03-30 Jonathan Wakely <jwakely@redhat.com> 278 279 Backported from master: 280 2023-03-29 Jonathan Wakely <jwakely@redhat.com> 281 282 PR libstdc++/109242 283 * include/std/optional (transform): Use std::remove_cv_t. 284 * testsuite/20_util/optional/monadic/pr109242.cc: New test. 285 2862023-03-28 Jonathan Wakely <jwakely@redhat.com> 287 288 Backported from master: 289 2022-12-16 Jonathan Wakely <jwakely@redhat.com> 290 291 PR libstdc++/108118 292 * include/bits/shared_ptr_base.h (weak_ptr::operator=): 293 Implement as move-and-swap exactly as specified in the standard. 294 * testsuite/20_util/weak_ptr/cons/self_move.cc: New test. 295 2962023-03-28 Jonathan Wakely <jwakely@redhat.com> 297 298 Backported from master: 299 2022-11-03 Jonathan Wakely <jwakely@redhat.com> 300 301 * include/bits/ranges_algobase.h (__detail::__copy_or_move): 302 Move output iterator. 303 * testsuite/25_algorithms/copy/constrained.cc: Check copying to 304 move-only output iterator. 305 3062023-03-28 Björn Schäpers <bjoern@hazardy.de> 307 308 Backported from master: 309 2023-01-14 Björn Schäpers <bjoern@hazardy.de> 310 311 * include/std/stacktrace (stacktrace_entry::_S_demangle): Use 312 raw __name if __cxa_demangle could not demangle it. 313 3142023-03-28 Jonathan Wakely <jwakely@redhat.com> 315 316 Backported from master: 317 2022-12-12 Jonathan Wakely <jwakely@redhat.com> 318 319 * include/std/stacktrace (operator<<): Only output to narrow 320 ostreams (LWG 3515). 321 * testsuite/19_diagnostics/stacktrace/synopsis.cc: 322 3232023-03-28 Jonathan Wakely <jwakely@redhat.com> 324 325 Backported from master: 326 2022-12-09 Jonathan Wakely <jwakely@redhat.com> 327 328 * include/bits/chrono.h (duration_cast, floor, round, abs, ceil) 329 (time_point_cast): Add [[nodiscard]] attribute and doxygen 330 comments. 331 (treat_as_floating_point): Add doxygen commen. 332 3332023-03-28 Jonathan Wakely <jwakely@redhat.com> 334 335 Backported from master: 336 2022-12-09 Jonathan Wakely <jwakely@redhat.com> 337 338 * include/bits/chrono.h (duration, time_point): Change 'struct' 339 to 'class'. 340 3412023-03-28 Jonathan Wakely <jwakely@redhat.com> 342 343 Backported from master: 344 2023-01-26 Jonathan Wakely <jwakely@redhat.com> 345 346 PR libstdc++/108554 347 * include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add 348 nonnull attribute. 349 (_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull 350 attributes. 351 * testsuite/23_containers/map/modifiers/108554.cc: New test. 352 3532023-03-28 Jonathan Wakely <jwakely@redhat.com> 354 355 Backported from master: 356 2022-09-23 Jonathan Wakely <jwakely@redhat.com> 357 358 * include/std/bitset (bitset::_M_copy_to_string): Find set bits 359 instead of iterating over individual bits. 360 3612023-03-28 Jonathan Wakely <jwakely@redhat.com> 362 363 Backported from master: 364 2022-09-15 Jonathan Wakely <jwakely@redhat.com> 365 366 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_PRE_LOCK): 367 Replace with ... 368 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK): ... this, add try_lock flag. 369 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK_FAILED): New macro using 370 try_lock_failed flag 371 (_GLIBCXX_TSAN_MUTEX_POST_LOCK): Rename to ... 372 (_GLIBCXX_TSAN_MUTEX_LOCKED): ... this. 373 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK): Remove invalid flag. 374 (_GLIBCXX_TSAN_MUTEX_POST_UNLOCK): Remove invalid flag. 375 (_Sp_atomic::_Atomic_count::lock): Use new macros. 376 3772023-03-28 Jonathan Wakely <jwakely@redhat.com> 378 379 Backported from master: 380 2022-09-14 Jonathan Wakely <jwakely@redhat.com> 381 382 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_DESTROY) 383 (_GLIBCXX_TSAN_MUTEX_PRE_LOCK, _GLIBCXX_TSAN_MUTEX_POST_LOCK) 384 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK, _GLIBCXX_TSAN_MUTEX_POST_UNLOCK) 385 (_GLIBCXX_TSAN_MUTEX_PRE_SIGNAL, _GLIBCXX_TSAN_MUTEX_POST_SIGNAL): 386 Define macros for TSan annotation functions. 387 (_Sp_atomic::_Atomic_count): Add annotations. 388 3892023-03-28 Jonathan Wakely <jwakely@redhat.com> 390 391 Backported from master: 392 2022-05-17 Jonathan Wakely <jwakely@redhat.com> 393 394 * include/std/memory_resource (new_delete_resource): Add 395 nodiscard, returns_nonnull and const attributes. 396 (null_memory_resource): Likewise. 397 (set_default_resource, get_default_resource): Add returns_nonnull 398 attribute. 399 (memory_resource::is_equal): Add nodiscard attribute. 400 (operator==, operator!=): Likewise. 401 4022023-03-28 Jonathan Wakely <jwakely@redhat.com> 403 404 Backported from master: 405 2022-09-14 Jonathan Wakely <jwakely@redhat.com> 406 407 * include/std/future 408 (_State_baseV2::__setter(exception_ptr&, promise&)): Add 409 assertion for LWG 2276 precondition. 410 * testsuite/30_threads/promise/members/set_exception_neg.cc: 411 New test. 412 4132023-03-28 Jonathan Wakely <jwakely@redhat.com> 414 415 Backported from master: 416 2022-09-08 Jonathan Wakely <jwakely@redhat.com> 417 418 * include/c_global/cstddef (byte): Add always_inline attribute 419 to all operator overloads. 420 (to_integer): Add always_inline attribute. 421 4222023-03-28 Jonathan Wakely <jwakely@redhat.com> 423 424 Backported from master: 425 2022-09-08 Jonathan Wakely <jwakely@redhat.com> 426 427 * include/std/system_error (__adl_only::make_error_code): Add 428 deleted function. 429 (__adl_only::make_error_condition): Likewise. 430 (error_code::error_code(ErrorCodeEnum)): Add using-declaration 431 for deleted function. 432 (error_condition::error_condition(ErrorConditionEnum)): 433 Likewise. 434 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: New test. 435 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc: New test. 436 4372023-03-28 Jonathan Wakely <jwakely@redhat.com> 438 439 Backported from master: 440 2022-05-17 Jonathan Wakely <jwakely@redhat.com> 441 442 * include/bits/ios_base.h (io_category): Add const and nodiscard 443 attributes. 444 (make_error_code, make_error_condition): Add nodiscard. 445 * include/std/future (future_category): Add const and nodiscard. 446 (make_error_code, make_error_condition): Add nodiscard. 447 * include/std/system_error (generic_category system_category): 448 Add nodiscard. Replace _GLIBCXX_CONST with C++11 attribute. 449 (error_code::value, error_code::category, error_code::operator bool) 450 (error_condition::value, error_condition::category) 451 (error_condition::operator bool, make_error_code) 452 (make_error_condition, operator==, operator!=, operator<=>): Add 453 nodiscard. 454 4552023-03-28 Jonathan Wakely <jwakely@redhat.com> 456 457 Backported from master: 458 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 459 460 * include/bits/std_thread.h (thread, thread::id): Improve 461 doxygen docs. 462 * include/std/future: Likewise. 463 * include/std/thread (jthread): Likewise. 464 4652023-03-28 Jonathan Wakely <jwakely@redhat.com> 466 467 Backported from master: 468 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 469 470 * include/std/system_error: Improve doxygen comments. 471 4722023-03-28 Jonathan Wakely <jwakely@redhat.com> 473 474 Backported from master: 475 2023-02-16 Jonathan Wakely <jwakely@redhat.com> 476 477 * include/ext/throw_allocator.h: Use reserved names for 478 parameters. 479 4802023-03-28 Jonathan Wakely <jwakely@redhat.com> 481 482 Backported from master: 483 2022-11-25 Jonathan Wakely <jwakely@redhat.com> 484 485 * acinclude.m4 (GLIBCXX_CHECK_UCHAR_H): Don't use AC_MSG_RESULT 486 unless the AC_MSG_CHECKING happened. 487 * configure: Regenerate. 488 4892023-03-28 Jonathan Wakely <jwakely@redhat.com> 490 491 Backported from master: 492 2023-01-12 Jonathan Wakely <jwakely@redhat.com> 493 494 * doc/xml/manual/abi.xml: Add latest library versions. 495 * doc/html/manual/abi.html: Regenerate. 496 4972023-03-28 Jonathan Wakely <jwakely@redhat.com> 498 499 Backported from master: 500 2023-03-28 Jonathan Wakely <jwakely@redhat.com> 501 502 * include/bits/char_traits.h (char_traits::copy): Return without 503 using memcpy if n==0. 504 (char_traits::assign): Likewise for memset. 505 5062023-03-28 Jonathan Wakely <jwakely@redhat.com> 507 508 Backported from master: 509 2023-03-28 Jonathan Wakely <jwakely@redhat.com> 510 511 PR libstdc++/109299 512 * include/bits/basic_string.h (basic_string::_M_is_local()): Add 513 hint for compiler that local strings fit in the local buffer. 514 5152023-03-28 Jonathan Wakely <jwakely@redhat.com> 516 517 Backported from master: 518 2023-03-01 Jonathan Wakely <jwakely@redhat.com> 519 520 * include/bits/cow_string.h: Fix typo in comment. 521 5222023-03-28 Jonathan Wakely <jwakely@redhat.com> 523 524 Backported from master: 525 2023-02-16 Jonathan Wakely <jwakely@redhat.com> 526 527 * include/experimental/optional: Fix header name in comment. 528 5292023-03-28 Jonathan Wakely <jwakely@redhat.com> 530 531 Backported from master: 532 2023-01-16 Jonathan Wakely <jwakely@redhat.com> 533 534 PR libstdc++/108413 535 * include/c_compatibility/stdatomic.h: Change copyright line to 536 be consistent with other headers contributed under DCO terms. 537 * include/std/expected: Add full stop to copyright line. 538 5392023-03-21 Matthias Kretz <m.kretz@gsi.de> 540 541 Backported from master: 542 2023-03-21 Matthias Kretz <m.kretz@gsi.de> 543 544 * include/experimental/bits/simd_x86.h 545 (_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0 546 with __RECIPROCAL_MATH__. 547 5482023-03-21 Matthias Kretz <m.kretz@gsi.de> 549 550 Backported from master: 551 2023-03-21 Matthias Kretz <m.kretz@gsi.de> 552 553 * include/experimental/bits/simd_detail.h: Don't define 554 _GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang. 555 * include/experimental/bits/simd_x86.h (_S_divides): Remove 556 check for __clang__. 557 5582023-03-21 Matthias Kretz <m.kretz@gsi.de> 559 560 Backported from master: 561 2023-03-21 Matthias Kretz <m.kretz@gsi.de> 562 563 * testsuite/experimental/simd/tests/operators.cc: Clang doesn't 564 define __GCC_IEC_559. Use __STDC_IEC_559__ instead. 565 5662023-03-20 François Dumont <fdumont@gcc.gnu.org> 567 568 Backported from master: 569 2022-11-16 François Dumont <fdumont@gcc.gnu.org> 570 571 * python/libstdcxx/v6/printers.py (FilteringTypePrinter): Rename 'match' field 572 'template'. Add self.targ1 to specify the first template parameter of the instantiation 573 to match. 574 (add_one_type_printer): Add targ1 optional parameter, default to None. 575 Use gdb.types.get_basic_type to compare the type to recognize and the type 576 returned from the typedef lookup. 577 (register_type_printers): Adapt calls to add_one_type_printers. 578 5792023-03-20 François Dumont <fdumont@gcc.gnu.org> 580 581 Backported from master: 582 2022-10-03 François Dumont <fdumont@gcc.gnu.org> 583 584 * python/libstdcxx/v6/printers.py (Printer.add_version): Do not add version 585 namespace for __cxx11 symbols. 586 (add_one_template_type_printer): Likewise. 587 (add_one_type_printer): Likewise. 588 (FilteringTypePrinter._recognizer.recognize): Add a workaround for std::string & al 589 ambiguous typedef matching both std:: and std::__cxx11:: symbols. 590 * testsuite/libstdc++-prettyprinters/cxx17.cc: Remove obsolete 591 \#define _GLIBCXX_USE_CXX11_ABI 0. 592 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. Adapt test to accept 593 std::__cxx11::list. 594 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise. 595 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise. 596 * testsuite/libstdc++-prettyprinters/80276.cc: Likewise and remove xfail for c++20 597 and debug mode. 598 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise. 599 6002023-03-20 François Dumont <fdumont@gcc.gnu.org> 601 602 Backported from master: 603 2022-09-22 François Dumont <fdumont@gcc.gnu.org> 604 605 * python/libstdcxx/v6/printers.py: Remove ptinter registration for non-existing 606 types std::__debug::unique_ptr, std::__debug::stack, std::__debug::queue, 607 std::__debug::priority_queue. 608 6092023-03-20 Jonathan Wakely <jwakely@redhat.com> 610 611 Backported from master: 612 2023-03-10 Jonathan Wakely <jwakely@redhat.com> 613 614 PR libstdc++/109064 615 * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker): 616 Remove self-recursion in __init__. Add missing _supports. 617 * testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count() 618 and unique(). 619 6202023-03-20 Jonathan Wakely <jwakely@redhat.com> 621 622 PR libstdc++/109182 623 * include/std/expected (expected<void>::expected(in_place_t)): 624 Remove template-head. 625 6262023-03-20 Jonathan Wakely <jwakely@redhat.com> 627 628 PR libstdc++/109165 629 * include/std/coroutine (hash<>::operator()): Add const. 630 * testsuite/18_support/coroutines/hash.cc: New test. 631 6322023-03-10 Thomas W Rodgers <rodgert@twrodgers.com> 633 634 Backported from master: 635 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com> 636 637 PR libstdc++/103934 638 * include/std/atomic (atomic_flag_wait): Add. 639 (atomic_flag_wait_explicit): Add. 640 (atomic_flag_notify): Add. 641 (atomic_flag_notify_explicit): Add. 642 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: 643 Add test case to cover missing atomic_flag free functions. 644 6452023-02-23 Matthias Kretz <m.kretz@gsi.de> 646 647 Backported from master: 648 2023-02-23 Matthias Kretz <m.kretz@gsi.de> 649 650 PR libstdc++/108030 651 * include/experimental/bits/simd.h (__vector_broadcast): 652 Implement via __vector_broadcast_impl instead of 653 __call_with_n_evaluations + 2 lambdas. 654 (__vector_broadcast_impl): New. 655 6562023-02-23 Matthias Kretz <m.kretz@gsi.de> 657 658 Backported from master: 659 2023-02-23 Matthias Kretz <m.kretz@gsi.de> 660 661 * include/experimental/bits/simd_builtin.h (_S_set): Compare as 662 int. The actual range of these indexes is very small. 663 6642023-02-23 Matthias Kretz <m.kretz@gsi.de> 665 666 Backported from master: 667 2023-02-23 Matthias Kretz <m.kretz@gsi.de> 668 669 * include/experimental/bits/simd_x86.h (_S_bit_shift_left) 670 (_S_bit_shift_right): Declare constexpr. The implementation was 671 already expecting constexpr evaluation. 672 6732023-02-23 Matthias Kretz <m.kretz@gsi.de> 674 675 Backported from master: 676 2023-02-20 Matthias Kretz <m.kretz@gsi.de> 677 678 * include/experimental/bits/simd.h (__extract_part, split): 679 Use reserved name for template parameter. 680 6812023-02-21 Jonathan Wakely <jwakely@redhat.com> 682 683 Backported from master: 684 2022-08-31 Jonathan Wakely <jwakely@redhat.com> 685 686 * include/bits/refwrap.h (reference_wrapper::operator()): Add 687 noexcept-specifier and use __invoke_result instead of result_of. 688 * testsuite/20_util/reference_wrapper/invoke-noexcept.cc: New test. 689 6902023-02-21 Jonathan Wakely <jwakely@redhat.com> 691 692 Backported from master: 693 2023-02-02 Jonathan Wakely <jwakely@redhat.com> 694 695 PR libstdc++/108636 696 * include/bits/fs_path.h (path::path(string_view, _Type)) 697 (path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline 698 definitions to ... 699 * src/c++17/fs_path.cc: ... here. 700 * testsuite/27_io/filesystem/path/108636.cc: New test. 701 7022023-02-16 Matthias Kretz <m.kretz@gsi.de> 703 704 Backported from master: 705 2023-02-16 Matthias Kretz <m.kretz@gsi.de> 706 707 * include/experimental/bits/simd_math.h (__hypot): Bitcasting 708 between scalars requires the __bit_cast helper function instead 709 of simd_bit_cast. 710 7112023-02-16 Matthias Kretz <m.kretz@gsi.de> 712 713 Backported from master: 714 2023-02-16 Matthias Kretz <m.kretz@gsi.de> 715 716 * include/experimental/bits/simd_x86.h 717 (_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less) 718 (_SimdImplX86::_S_less_equal): Do not call 719 __builtin_is_constant_evaluated in constexpr-if. 720 7212023-02-16 Matthias Kretz <m.kretz@gsi.de> 722 723 Backported from master: 724 2023-02-16 Matthias Kretz <m.kretz@gsi.de> 725 726 * testsuite/experimental/simd/tests/bits/verify.h 727 (verify::verify): Use %zx for size_t in format string. 728 7292023-02-16 Matthias Kretz <m.kretz@gsi.de> 730 731 Backported from master: 732 2023-02-16 Matthias Kretz <m.kretz@gsi.de> 733 734 * testsuite/experimental/simd/README.md: Document the timeout 735 and timeout-factor directives. Minor typo fixed. 736 7372023-02-16 Matthias Kretz <m.kretz@gsi.de> 738 739 Backported from master: 740 2023-02-16 Matthias Kretz <m.kretz@gsi.de> 741 742 * include/experimental/bits/simd.h 743 (_SimdWrapper::_M_is_constprop_none_of) 744 (_SimdWrapper::_M_is_constprop_all_of): Return false unless the 745 computed result still satisfies __builtin_constant_p. 746 7472023-02-14 Thomas W Rodgers <rodgert@twrodgers.com> 748 749 Backported from master: 750 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com> 751 752 PR libstdc++/103934 753 * include/std/atomic (atomic_flag_test): Add. 754 (atomic_flag_test_explicit): Add. 755 * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add 756 test case to cover missing atomic_flag free functions. 757 * testsuite/29_atomics/atomic_flag/test/implicit.cc: 758 Likewise. 759 7602023-02-10 Jakub Jelinek <jakub@redhat.com> 761 762 Backported from master: 763 2022-11-24 Jakub Jelinek <jakub@redhat.com> 764 765 PR libstdc++/107468 766 * src/c++17/fast_float/fast_float.h: Partial merge from fast_float 767 2ef9abbcf6a11958b6fa685a89d0150022e82e78 commit. 768 7692023-02-10 Jakub Jelinek <jakub@redhat.com> 770 771 Backported from master: 772 2022-11-07 Jakub Jelinek <jakub@redhat.com> 773 774 PR libstdc++/107468 775 * src/c++17/fast_float/fast_float.h: Partial merge from fast_float 776 662497742fea7055f0e0ee27e5a7ddc382c2c38e commit. 777 * testsuite/20_util/from_chars/pr107468.cc: New test. 778 7792023-02-02 Jonathan Wakely <jwakely@redhat.com> 780 781 Backported from master: 782 2023-02-01 Jonathan Wakely <jwakely@redhat.com> 783 784 * src/c++11/random.cc (random_device::_M_fini): Do not try to 785 close the file handle if the target doesn't support the 786 /dev/random and /dev/urandom files. 787 7882023-02-02 Jonathan Wakely <jwakely@redhat.com> 789 790 Backported from master: 791 2023-02-01 Jonathan Wakely <jwakely@redhat.com> 792 793 * config/os/generic/error_constants.h (errc::value_too_large) 794 [__AVR__]: Define. 795 * src/c++11/system_error.cc 796 (system_category::default_error_condition) [__AVR__]: Only match 797 recognize values equal to EDOM, ERANGE, ENOSYS and EINTR. 798 * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check 799 for ENOENT etc. in switch. 800 (fs::remove_all) [__AVR__]: Likewise. 801 * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open, 802 close etc. 803 8042023-02-02 Patrick Palka <ppalka@redhat.com> 805 806 Backported from master: 807 2022-11-06 Patrick Palka <ppalka@redhat.com> 808 809 * include/bits/atomic_wait.h (_detail::__platform_wait_alignment): 810 Declare inline. Remove redundant static specifier. 811 (__detail::__atomic_spin_count_relax): Declare inline. 812 (__detail::__atomic_spin_count): Likewise. 813 * include/bits/regex_automaton.h (__detail::_S_invalid_state_id): 814 Declare inline for C++17. Declare constexpr. Remove 815 redundant const and static specifiers. 816 * include/bits/regex_error.h (regex_constants::error_collate): 817 Declare inline for C++17 as per P0607R0. 818 (regex_constants::error_ctype): Likewise. 819 (regex_constants::error_escape): Likewise. 820 (regex_constants::error_backref): Likewise. 821 (regex_constants::error_brack): Likewise. 822 (regex_constants::error_paren): Likewise. 823 (regex_constants::error_brace): Likewise. 824 (regex_constants::error_badbrace): Likewise. 825 (regex_constants::error_range): Likewise. 826 (regex_constants::error_space): Likewise. 827 (regex_constants::error_badrepeat): Likewise. 828 (regex_constants::error_complexity): Likewise. 829 (regex_constants::error_stack): Likewise. 830 * include/ext/concurrence.h (__gnu_cxx::__default_lock_policy): 831 Likewise. Remove redundant static specifier. 832 * include/pstl/execution_defs.h (execution::seq): Declare inline 833 for C++17 as per P0607R0. 834 (execution::par): Likewise. 835 (execution::par_unseq): Likewise. 836 (execution::unseq): Likewise. 837 8382023-01-18 Jonathan Wakely <jwakely@redhat.com> 839 840 Backported from master: 841 2022-12-22 Jonathan Wakely <jwakely@redhat.com> 842 843 PR libstdc++/105730 844 * src/c++11/compatibility-condvar.cc (__nothrow_wait_cv::wait): 845 Access private data member of base class and call its wait 846 member. 847 8482023-01-16 Jonathan Wakely <jwakely@redhat.com> 849 850 Backported from master: 851 2022-08-04 Jonathan Wakely <jwakely@redhat.com> 852 853 PR libstdc++/106183 854 * include/bits/atomic_wait.h (__waiter_pool_base::_M_notify): 855 Move increment of _M_ver here. 856 [!_GLIBCXX_HAVE_PLATFORM_WAIT]: Lock mutex around increment. 857 Use relaxed memory order and always notify all waiters. 858 (__waiter_base::_M_do_wait) [!_GLIBCXX_HAVE_PLATFORM_WAIT]: 859 Check value again after locking mutex. 860 (__waiter_base::_M_notify): Remove increment of _M_ver. 861 8622023-01-05 Jonathan Wakely <jwakely@redhat.com> 863 864 Backported from master: 865 2023-01-05 Jonathan Wakely <jwakely@redhat.com> 866 867 PR libstdc++/108265 868 * include/std/chrono (hh_mm_ss): Do not use chrono::abs if 869 duration rep is unsigned. Remove incorrect noexcept-specifier. 870 * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep. Check 871 floating-point representations. Check default construction. 872 8732022-12-21 Jonathan Wakely <jwakely@redhat.com> 874 875 Backported from master: 876 2022-11-23 Jonathan Wakely <jwakely@redhat.com> 877 878 PR libstdc++/107814 879 * testsuite/experimental/filesystem/iterators/error_reporting.cc: 880 Use a static buffer with space after it. 881 8822022-12-21 Jonathan Wakely <jwakely@redhat.com> 883 884 Backported from master: 885 2022-12-16 Jonathan Wakely <jwakely@redhat.com> 886 887 * include/std/expected (expected::_M_swap_val_unex): Guard the 888 correct object. 889 (expected::swap): Move is_swappable 890 requirement from static_assert to constraint. 891 (swap): Likewise. 892 (operator==): Remove noexcept-specifier. 893 * testsuite/20_util/expected/swap.cc: Check swapping of 894 types without non-throwing move constructor. Check constraints 895 on swap. 896 * testsuite/20_util/expected/unexpected.cc: Check constraints on 897 swap. 898 * testsuite/20_util/expected/equality.cc: New test. 899 9002022-12-14 Jonathan Wakely <jwakely@redhat.com> 901 902 Backported from master: 903 2022-12-14 Jonathan Wakely <jwakely@redhat.com> 904 905 PR libstdc++/108097 906 * include/std/stacktrace (basic_stracktrace::_Impl): Do not 907 multiply N by sizeof(value_type) when allocating. 908 9092022-11-24 Jonathan Wakely <jwakely@redhat.com> 910 911 Backported from master: 912 2022-09-15 Jonathan Wakely <jwakely@redhat.com> 913 914 * include/std/memory: Do not include <bits/stl_algobase.h>. 915 9162022-11-24 Jonathan Wakely <jwakely@redhat.com> 917 918 Backported from master: 919 2022-11-11 Jonathan Wakely <jwakely@redhat.com> 920 921 * testsuite/20_util/tuple/swap.cc (MoveOnly::operator==): Add 922 const qualifier. 923 * testsuite/26_numerics/valarray/87641.cc (X::operator==): 924 Likewise. 925 9262022-11-24 Jonathan Wakely <jwakely@redhat.com> 927 928 Backported from master: 929 2022-11-02 Jonathan Wakely <jwakely@redhat.com> 930 931 * include/std/expected (expected::_M_invalid): Remove. 932 9332022-11-24 Jonathan Wakely <jwakely@redhat.com> 934 935 Backported from master: 936 2022-11-21 Jonathan Wakely <jwakely@redhat.com> 937 938 * include/bits/chrono.h (duration): Check preconditions on 939 template arguments before using them. 940 9412022-11-24 Jonathan Wakely <jwakely@redhat.com> 942 943 Backported from master: 944 2022-10-28 Jonathan Wakely <jwakely@redhat.com> 945 946 * include/bits/fs_path.h (path::filename()): Fix dangling 947 reference. 948 9492022-11-24 Jonathan Wakely <jwakely@redhat.com> 950 951 Backported from master: 952 2022-09-14 Jonathan Wakely <jwakely@redhat.com> 953 954 * doc/xml/manual/intro.xml: Document LWG 1203. 955 * doc/html/*: Regenerate. 956 9572022-11-24 Jonathan Wakely <jwakely@redhat.com> 958 959 Backported from master: 960 2022-09-07 Jonathan Wakely <jwakely@redhat.com> 961 962 * include/std/barrier: Add missing runtime exception. 963 9642022-11-24 Jonathan Wakely <jwakely@redhat.com> 965 966 Backported from master: 967 2022-08-04 Jonathan Wakely <jwakely@redhat.com> 968 969 * include/bits/fs_dir.h (directory_iterator): Add comparison 970 with std::default_sentinel_t. Remove redundant operator!= for 971 C++20. 972 * (recursive_directory_iterator): Likewise. 973 * include/bits/iterator_concepts.h [!__cpp_lib_concepts] 974 (default_sentinel_t, default_sentinel): Define even if concepts 975 are not supported. 976 * include/bits/regex.h (regex_iterator): Add comparison with 977 std::default_sentinel_t. Remove redundant operator!= for C++20. 978 (regex_token_iterator): Likewise. 979 (regex_token_iterator::_M_end_of_seq()): Add noexcept. 980 * testsuite/27_io/filesystem/iterators/lwg3719.cc: New test. 981 * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc: 982 New test. 983 * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc: 984 New test. 985 9862022-11-24 Jonathan Wakely <jwakely@redhat.com> 987 988 Backported from master: 989 2022-09-23 Jonathan Wakely <jwakely@redhat.com> 990 991 PR libstdc++/91456 992 * include/std/type_traits (__is_nothrow_invocable): Remove. 993 (__is_invocable_impl::__nothrow_type): New member type which 994 checks if the conversion can throw. 995 (__is_nt_invocable_impl): Replace class template with alias 996 template to __is_nt_invocable_impl::__nothrow_type. 997 * testsuite/20_util/is_nothrow_invocable/91456.cc: New test. 998 * testsuite/20_util/is_nothrow_convertible/value.cc: Remove 999 macro used by value_ext.cc test. 1000 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Remove 1001 test for non-standard __is_nothrow_invocable trait. 1002 10032022-11-22 Jonathan Wakely <jwakely@redhat.com> 1004 1005 PR libstdc++/106201 1006 * include/bits/fs_path.h (filesystem::swap(path&, path&)): 1007 Replace with abbreviated function template. 1008 * include/experimental/bits/fs_path.h (filesystem::swap): 1009 Likewise. 1010 * testsuite/27_io/filesystem/iterators/106201.cc: New test. 1011 * testsuite/experimental/filesystem/iterators/106201.cc: New test. 1012 10132022-11-22 Jonathan Wakely <jwakely@redhat.com> 1014 1015 Backported from master: 1016 2022-11-22 Jonathan Wakely <jwakely@redhat.com> 1017 1018 PR libstdc++/107801 1019 * src/c++17/memory_resource.cc (pool_sizes): Disable large pools 1020 for targets with 16-bit int. 1021 10222022-11-14 Jonathan Wakely <jwakely@redhat.com> 1023 1024 * include/bits/mofunc_impl.h (move_only_function::__param_t): 1025 Use __is_scalar instead of is_trivially_copyable. 1026 * testsuite/20_util/move_only_function/call.cc: Check parameters 1027 involving incomplete types. 1028 10292022-11-14 Jonathan Wakely <jwakely@redhat.com> 1030 1031 Backported from master: 1032 2022-11-11 Jonathan Wakely <jwakely@redhat.com> 1033 1034 PR libstdc++/95048 1035 * include/bits/fs_path.h (path::_Codecvt): New class template 1036 that selects the kind of code conversion done. 1037 (path::_Codecvt<wchar_t>): Select based on sizeof(wchar_t). 1038 (_GLIBCXX_CONV_FROM_UTF8): New macro to allow the same code to 1039 be used for Windows and POSIX. 1040 (path::_S_convert(const EcharT*, const EcharT*)): Simplify by 1041 using _Codecvt and _GLIBCXX_CONV_FROM_UTF8 abstractions. 1042 (path::_S_str_convert(basic_string_view<value_type>, const A&)): 1043 Simplify nested conditions. 1044 * include/experimental/bits/fs_path.h (path::_Cvt): Define 1045 nested typedef controlling type of code conversion done. 1046 (path::_Cvt::_S_wconvert): Use new typedef. 1047 (path::string(const A&)): Likewise. 1048 * testsuite/27_io/filesystem/path/construct/95048.cc: New test. 1049 * testsuite/experimental/filesystem/path/construct/95048.cc: New 1050 test. 1051 10522022-11-14 Nathaniel Shead <nathanieloshead@gmail.com> 1053 1054 Backported from master: 1055 2022-11-11 Nathaniel Shead <nathanieloshead@gmail.com> 1056 1057 PR libstdc++/103295 1058 * include/bits/basic_string.h (_M_use_local_data): Set active 1059 member to _M_local_buf. 1060 10612022-11-08 Jonathan Wakely <jwakely@redhat.com> 1062 1063 Backported from master: 1064 2022-11-08 Jonathan Wakely <jwakely@redhat.com> 1065 1066 * doc/xml/authors.xml: Remove empty author element. 1067 * doc/xml/manual/spine.xml: Likewise. 1068 * doc/html/manual/index.html: Regenerate. 1069 10702022-10-19 Alexandre Oliva <oliva@adacore.com> 1071 1072 Backported from master: 1073 2022-06-22 Alexandre Oliva <oliva@adacore.com> 1074 1075 * libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS] 1076 (__eh_globals_init::~__eh_globals_init): Clear _S_init first. 1077 10782022-09-29 Jonathan Wakely <jwakely@redhat.com> 1079 1080 Backported from master: 1081 2022-09-28 Jonathan Wakely <jwakely@redhat.com> 1082 1083 * doc/xml/manual/evolution.xml: Document std::bind API 1084 changes. 1085 * doc/xml/manual/intro.xml: Document LWG 2487 status. 1086 * doc/xml/manual/using.xml: Clarify default value of 1087 _GLIBCXX_USE_DEPRECATED. 1088 * doc/html/*: Regenerate. 1089 * include/std/functional (_Bind::operator()(Args&&...) volatile) 1090 (_Bind::operator()(Args&&...) const volatile) 1091 (_Bind_result::operator()(Args&&...) volatile) 1092 (_Bind_result::operator()(Args&&...) const volatile): Replace 1093 with deleted overload for C++20 and later. 1094 * testsuite/20_util/bind/cv_quals.cc: Check for deprecated 1095 warnings in C++17. 1096 * testsuite/20_util/bind/cv_quals_2.cc: Likewise, and check for 1097 ill-formed in C++20. 1098 10992022-09-16 Jonathan Wakely <jwakely@redhat.com> 1100 1101 * doc/xml/manual/abi.xml: Document GLIBCXX_3.4.30 version. 1102 * doc/html/manual/abi.html: Regenerate. 1103 11042022-09-12 Patrick Palka <ppalka@redhat.com> 1105 1106 Backported from master: 1107 2022-09-12 Patrick Palka <ppalka@redhat.com> 1108 1109 PR libstdc++/106320 1110 * testsuite/std/ranges/adaptors/join.cc (test13): New test. 1111 11122022-09-07 Jonathan Wakely <jwakely@redhat.com> 1113 1114 Backported from master: 1115 2022-08-22 Jonathan Wakely <jwakely@redhat.com> 1116 1117 PR libstdc++/106695 1118 * include/bits/std_thread.h (thread::_State_impl): Forward 1119 individual arguments to _Invoker constructor. 1120 (thread::_Invoker): Add constructor. Delete copies. 1121 * include/std/future (__future_base::_Deferred_state): Forward 1122 individual arguments to _Invoker constructor. 1123 (__future_base::_Async_state_impl): Likewise. 1124 * testsuite/30_threads/async/106695.cc: New test. 1125 * testsuite/30_threads/thread/106695.cc: New test. 1126 11272022-09-07 Jonathan Wakely <jwakely@redhat.com> 1128 1129 Backported from master: 1130 2022-08-22 Jonathan Wakely <jwakely@redhat.com> 1131 1132 PR libstdc++/106607 1133 * include/bits/regex_compiler.tcc (_Compiler::_M_cur_int_value): 1134 Use built-ins to check for integer overflow in back-reference 1135 number. 1136 * testsuite/28_regex/basic_regex/106607.cc: New test. 1137 11382022-08-24 Jonathan Wakely <jwakely@redhat.com> 1139 1140 Backported from master: 1141 2022-08-23 Jonathan Wakely <jwakely@redhat.com> 1142 1143 PR libstdc++/106589 1144 * include/std/variant (__do_visit): Handle is_void<R> for zero 1145 argument case. 1146 * testsuite/20_util/variant/visit_r.cc: Check std::visit<void>(v). 1147 11482022-08-23 Jonathan Wakely <jwakely@redhat.com> 1149 1150 Backported from master: 1151 2022-08-22 Jonathan Wakely <jwakely@redhat.com> 1152 1153 PR libstdc++/105678 1154 * doc/xml/manual/using.xml: Document -lstdc++_libbacktrace 1155 requirement for using std::stacktrace. Also adjust -frtti and 1156 -fexceptions to document non-default (i.e. negative) forms. 1157 * doc/html/*: Regenerate. 1158 11592022-08-19 Release Manager 1160 1161 * GCC 12.2.0 released. 1162 11632022-08-05 Jonathan Wakely <jwakely@redhat.com> 1164 1165 Backported from master: 1166 2022-08-04 Jonathan Wakely <jwakely@redhat.com> 1167 1168 * include/std/string_view (basic_string_view(Range&&)): Add 1169 explicit as per P2499R0. 1170 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: 1171 Adjust implicit conversions. Check implicit conversions fail. 1172 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: 1173 Likewise. 1174 11752022-08-05 Jonathan Wakely <jwakely@redhat.com> 1176 1177 Backported from master: 1178 2022-08-04 Jonathan Wakely <jwakely@redhat.com> 1179 1180 * include/std/expected (unexpected::_M_val): Rename to _M_unex. 1181 (bad_expected_access::_M_val): Likewise. 1182 11832022-08-05 Jonathan Wakely <jwakely@redhat.com> 1184 1185 Backported from master: 1186 2022-08-04 Jonathan Wakely <jwakely@redhat.com> 1187 1188 * include/bits/ios_base.h (__cpp_lib_ios_noreplace): Update 1189 value to 202207L. 1190 * include/std/version (__cpp_lib_ios_noreplace): Likewise. 1191 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: Check 1192 for new value. 1193 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc: 1194 Likewise. 1195 11962022-08-03 Jonathan Wakely <jwakely@redhat.com> 1197 1198 Backported from master: 1199 2022-06-28 Jonathan Wakely <jwakely@redhat.com> 1200 1201 * src/c++17/fs_dir.cc (_Dir::dir_and_pathname):: Replace with 1202 current() returning _At_path. 1203 (_Dir::_Dir, _Dir::open_subdir, _Dir::do_unlink): Adjust. 1204 * src/filesystem/dir-common.h (_Dir_base::_At_path): New class. 1205 (_Dir_base::_Dir_Base, _Dir_base::openat): Use _At_path. 1206 * src/filesystem/dir.cc (_Dir::dir_and_pathname): Replace with 1207 current() returning _At_path. 1208 (_Dir::_Dir, _Dir::open_subdir): Adjust. 1209 12102022-08-03 Jonathan Wakely <jwakely@redhat.com> 1211 1212 Backported from master: 1213 2022-07-29 Jonathan Wakely <jwakely@redhat.com> 1214 1215 PR libstdc++/104443 1216 * include/bits/stl_iterator.h (common_iterator::operator->): 1217 Change return type to just auto. 1218 12192022-08-03 Jonathan Wakely <jwakely@redhat.com> 1220 1221 Backported from master: 1222 2022-07-12 Jonathan Wakely <jwakely@redhat.com> 1223 1224 PR libstdc++/106248 1225 * include/std/istream [C++17] (operator>>(istream&, char*)): 1226 Set eofbit if we stopped extracting at EOF. 1227 * testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc: 1228 New test. 1229 * testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc: 1230 New test. 1231 12322022-08-03 Jonathan Wakely <jwakely@redhat.com> 1233 1234 Backported from master: 1235 2022-07-01 Jonathan Wakely <jwakely@redhat.com> 1236 1237 * include/bits/fs_ops.h: Add nodiscard to all pure functions. 1238 * include/experimental/bits/fs_ops.h: Likewise. 1239 * testsuite/27_io/filesystem/operations/all.cc: Do not discard 1240 results of absolute and canonical. 1241 * testsuite/27_io/filesystem/operations/absolute.cc: Cast 1242 discarded result to void. 1243 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise. 1244 * testsuite/27_io/filesystem/operations/exists.cc: Likewise. 1245 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise. 1246 * testsuite/27_io/filesystem/operations/read_symlink.cc: 1247 Likewise. 1248 * testsuite/27_io/filesystem/operations/status.cc: Likewise. 1249 * testsuite/27_io/filesystem/operations/symlink_status.cc: 1250 Likewise. 1251 * testsuite/27_io/filesystem/operations/temp_directory_path.cc: 1252 Likewise. 1253 * testsuite/experimental/filesystem/operations/canonical.cc: 1254 Likewise. 1255 * testsuite/experimental/filesystem/operations/exists.cc: 1256 Likewise. 1257 * testsuite/experimental/filesystem/operations/is_empty.cc: 1258 Likewise. 1259 * testsuite/experimental/filesystem/operations/read_symlink.cc: 1260 Likewise. 1261 * testsuite/experimental/filesystem/operations/temp_directory_path.cc: 1262 Likewise. 1263 12642022-08-03 Jonathan Wakely <jwakely@redhat.com> 1265 1266 Backported from master: 1267 2022-06-16 Jonathan Wakely <jwakely@redhat.com> 1268 1269 PR libstdc++/105995 1270 * include/bits/basic_string.h (_M_use_local_data): Initialize 1271 the entire SSO buffer. 1272 * testsuite/21_strings/basic_string/cons/char/105995.cc: New test. 1273 12742022-08-03 Jonathan Wakely <jwakely@redhat.com> 1275 1276 Backported from master: 1277 2022-06-14 Jonathan Wakely <jwakely@redhat.com> 1278 1279 * include/bits/new_allocator.h: Fix indentation. 1280 * include/ext/malloc_allocator.h: Likewise. 1281 12822022-08-03 Jonathan Wakely <jwakely@redhat.com> 1283 1284 Backported from master: 1285 2022-06-14 Jonathan Wakely <jwakely@redhat.com> 1286 1287 PR libstdc++/105957 1288 * include/bits/allocator.h (allocator::allocate): Check for 1289 overflow in constexpr allocation. 1290 * testsuite/20_util/allocator/105975.cc: New test. 1291 12922022-08-03 Jonathan Wakely <jwakely@redhat.com> 1293 1294 Backported from master: 1295 2022-06-10 Jonathan Wakely <jwakely@redhat.com> 1296 1297 PR libstdc++/105844 1298 * include/experimental/numeric (experimental::gcd): Simplify 1299 assertions. Use __abs_r instead of __absu. 1300 (experimental::lcm): Likewise. Remove use of __detail::__lcm so 1301 overflow can be detected. 1302 * include/std/numeric (__detail::__absu): Rename to __abs_r and 1303 change to allow signed result type, so overflow can be detected. 1304 (__detail::__lcm): Remove. 1305 (gcd): Simplify assertions. Use __abs_r instead of __absu. 1306 (lcm): Likewise. Remove use of __detail::__lcm so overflow can 1307 be detected. 1308 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines. 1309 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise. 1310 * testsuite/26_numerics/gcd/105844.cc: New test. 1311 * testsuite/26_numerics/lcm/105844.cc: New test. 1312 13132022-07-26 Thomas Rodgers <trodgers@redhat.com> 1314 1315 Backported from master: 1316 2022-07-26 Thomas Rodgers <trodgers@redhat.com> 1317 1318 * include/bits/atomic_wait.h (__atomic_spin): Merge spin loops. 1319 13202022-07-22 Jonathan Wakely <jwakely@redhat.com> 1321 1322 Backported from master: 1323 2022-06-28 Jonathan Wakely <jwakely@redhat.com> 1324 1325 * src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]: 1326 Always store pathname if we don't have openat or unlinkat, 1327 because the full path is needed to open sub-directories and 1328 remove entries. 1329 13302022-07-22 Alexandre Oliva <oliva@adacore.com> 1331 1332 Backported from master: 1333 2022-06-27 Alexandre Oliva <oliva@adacore.com> 1334 1335 * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if 1336 _GLIBCXX_HAVE_OPENAT. 1337 13382022-07-22 Alexandre Oliva <oliva@adacore.com> 1339 1340 Backported from master: 1341 2022-06-24 Alexandre Oliva <oliva@adacore.com> 1342 1343 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for 1344 openat. 1345 * configure, config.h.in: Rebuilt. 1346 * src/filesystem/dir-common.h (openat): Use ::openat if 1347 _GLIBCXX_HAVE_OPENAT. 1348 * src/filesystem/dir.cc (dir_and_pathname): Use dirfd if 1349 _GLIBCXX_HAVE_OPENAT. 1350 13512022-07-22 Jonathan Wakely <jwakely@redhat.com> 1352 1353 Backported from master: 1354 2022-05-06 Jonathan Wakely <jwakely@redhat.com> 1355 1356 * include/std/stacktrace: Do not include <cxxabi.h>. 1357 (__cxa_demangle): Declare. 1358 13592022-07-21 Jonathan Wakely <jwakely@redhat.com> 1360 1361 Backported from master: 1362 2022-07-20 Jonathan Wakely <jwakely@redhat.com> 1363 1364 PR libstdc++/100823 1365 * include/bits/stl_iterator.h (common_iterator): Define move 1366 constructor and move assignment operator. 1367 (common_iterator::_M_assign): New function implementing 1368 assignment. 1369 (common_iterator::operator=): Use _M_assign. 1370 (common_iterator::_S_valueless): New constant. 1371 * testsuite/24_iterators/common_iterator/100823.cc: New test. 1372 13732022-07-21 Jonathan Wakely <jwakely@redhat.com> 1374 1375 Backported from master: 1376 2022-07-20 Jonathan Wakely <jwakely@redhat.com> 1377 1378 * include/bits/stl_iterator.h (common_iterator): Fix incorrect 1379 uses of is_nothrow_assignable_v. Fix inconsistent constraints on 1380 friend declaration. Do not move argument in copy constructor. 1381 * testsuite/24_iterators/common_iterator/1.cc: Check for 1382 noexcept constructibnle/assignable. 1383 13842022-07-21 Nathan Sidwell <nathan@acm.org> 1385 1386 Backported from master: 1387 2022-05-26 Nathan Sidwell <nathan@acm.org> 1388 1389 * include/bits/hashtable.h: Include required headers. 1390 * include/bits/hashtable_policy.h: Likewise. 1391 * include/bits/stl_heap.h: Likewise. 1392 * include/bits/stl_iterator_base_funcs.h: Likewise. 1393 13942022-07-21 Jonathan Wakely <jwakely@redhat.com> 1395 1396 Backported from master: 1397 2022-06-30 Jonathan Wakely <jwakely@redhat.com> 1398 1399 * include/bits/utility.h: Fix comment typos. 1400 14012022-07-21 Jonathan Wakely <jwakely@redhat.com> 1402 1403 Backported from master: 1404 2022-06-28 Jonathan Wakely <jwakely@redhat.com> 1405 1406 * testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math 1407 functions are available. 1408 14092022-07-21 Jonathan Wakely <jwakely@redhat.com> 1410 1411 Backported from master: 1412 2022-06-23 Jonathan Wakely <jwakely@redhat.com> 1413 1414 * testsuite/26_numerics/random/random_device/entropy.cc: Use 1415 numeric_limits<unsigned>::digits. 1416 14172022-07-21 Marco Falke <falke.marco@gmail.com> 1418 1419 Backported from master: 1420 2022-07-19 Marco Falke <falke.marco@gmail.com> 1421 1422 * include/std/charconv (__from_chars_alnum_to_val): Replace 1423 implicit conversion from int to unsigned char with explicit 1424 cast. 1425 14262022-07-21 Jonathan Wakely <jwakely@redhat.com> 1427 1428 Backported from master: 1429 2022-06-30 Jonathan Wakely <jwakely@redhat.com> 1430 1431 PR libstdc++/88881 1432 * src/filesystem/ops.cc (has_trailing_slash): New helper 1433 function. 1434 (fs::status): Strip trailing slashes. 1435 (fs::symlink_status): Likewise. 1436 * testsuite/experimental/filesystem/operations/temp_directory_path.cc: 1437 Clean the environment before each test and use TMP instead of 1438 TMPDIR so the test passes on Windows. 1439 14402022-07-21 Jonathan Wakely <jwakely@redhat.com> 1441 1442 Backported from master: 1443 2022-06-10 Jonathan Wakely <jwakely@redhat.com> 1444 1445 PR libstdc++/105880 1446 * libsupc++/eh_globals.cc (eh_globals): Ensure constant init and 1447 prevent destruction during termination. 1448 (__eh_globals_init::_M_init): Replace with static member _S_init. 1449 (__cxxabiv1::__cxa_get_globals_fast): Update. 1450 (__cxxabiv1::__cxa_get_globals): Likewise. 1451 14522022-07-07 Jonathan Wakely <jwakely@redhat.com> 1453 1454 Backported from master: 1455 2022-07-01 Jonathan Wakely <jwakely@redhat.com> 1456 1457 PR libstdc++/106162 1458 * include/Makefile.am (largefile-config.h): Add 1459 stamp-${host_alias} prerequisite. 1460 * include/Makefile.in: Regenerate. 1461 14622022-07-07 Jonathan Wakely <jwakely@redhat.com> 1463 1464 Backported from master: 1465 2022-06-23 Jonathan Wakely <jwakely@redhat.com> 1466 1467 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use 1468 rmdir to remove directories. 1469 * testsuite/experimental/filesystem/iterators/error_reporting.cc: 1470 Likewise. 1471 14722022-06-14 Jonathan Wakely <jwakely@redhat.com> 1473 1474 Backported from master: 1475 2022-06-13 Jonathan Wakely <jwakely@redhat.com> 1476 1477 * include/std/atomic (__atomic_val_t): Use __type_identity_t 1478 instead of atomic<T>::value_type, as per LWG 3220. 1479 * testsuite/29_atomics/atomic/lwg3220.cc: New test. 1480 14812022-06-14 Mark Mentovai <mark@mentovai.com> 1482 1483 Backported from master: 1484 2022-06-13 Mark Mentovai <mark@mentovai.com> 1485 1486 * include/experimental/bits/fs_path.h (__detail::__null_terminated): 1487 Rename to __nul_terminated to avoid colliding with a macro in 1488 Apple's SDK. 1489 14902022-06-08 Jonathan Wakely <jwakely@redhat.com> 1491 1492 Backported from master: 1493 2022-05-27 Jonathan Wakely <jwakely@redhat.com> 1494 1495 PR libstdc++/105671 1496 * include/std/sstream (basic_stringbuf::_M_high_mark): Add 1497 always_inline attribute. 1498 14992022-06-08 Jonathan Wakely <jwakely@redhat.com> 1500 1501 Backported from master: 1502 2022-05-26 Jonathan Wakely <jwakely@redhat.com> 1503 1504 PR libstdc++/105681 1505 * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp: 1506 Limit ga_sizes array to values that fit in size_t. 1507 * include/ext/random [__SIZE_WIDTH < 32] (sfmt86243) 1508 (sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091) 1509 (sfmt216091_64): Do not declare. 1510 15112022-06-08 Jonathan Wakely <jwakely@redhat.com> 1512 1513 Backported from master: 1514 2022-05-19 Jonathan Wakely <jwakely@redhat.com> 1515 1516 * include/bits/basic_string.h: Do not include <ext/atomicity.h> 1517 here. 1518 * include/bits/cow_string.h: Include it here. 1519 15202022-05-27 Jonathan Wakely <jwakely@redhat.com> 1521 1522 Backported from master: 1523 2022-05-26 Jonathan Wakely <jwakely@redhat.com> 1524 1525 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make 1526 lookup for ios_errc and future_errc check versioned namespace. 1527 (StdAtomicPrinter): Strip versioned namespace from typename. 1528 15292022-05-27 François Dumont <fdumont@gcc.gnu.org> 1530 1531 Backported from master: 1532 2022-05-26 François Dumont <fdumont@gcc.gnu.org> 1533 1534 * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__): 1535 Strip typename from version namespace. 1536 15372022-05-27 Jonathan Wakely <jwakely@redhat.com> 1538 1539 Backported from master: 1540 2022-05-26 Jonathan Wakely <jwakely@redhat.com> 1541 1542 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip 1543 versioned namespace from the template argument too. 1544 15452022-05-27 Jonathan Wakely <jwakely@redhat.com> 1546 1547 Backported from master: 1548 2022-05-26 Jonathan Wakely <jwakely@redhat.com> 1549 1550 * include/bits/stl_iterator.h (counted_iterator::operator++(int)): 1551 Add 'constexpr' as per LWG 3643. 1552 * testsuite/24_iterators/counted_iterator/lwg3643.cc: New test. 1553 15542022-05-27 Jonathan Wakely <jwakely@redhat.com> 1555 1556 Backported from master: 1557 2022-05-19 Jonathan Wakely <jwakely@redhat.com> 1558 1559 * include/std/memory_resource (polymorphic_allocator): Add 1560 non-template equality operator, as proposed for LWG 3683. 1561 * testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test. 1562 15632022-05-27 Jonathan Wakely <jwakely@redhat.com> 1564 1565 Backported from master: 1566 2022-05-20 Jonathan Wakely <jwakely@redhat.com> 1567 1568 * testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc: 1569 Run fewer iterations for simulator targets. 1570 * testsuite/26_numerics/random/binomial_distribution/operators/values.cc: 1571 Likewise. 1572 * testsuite/26_numerics/random/discrete_distribution/operators/values.cc: 1573 Likewise. 1574 * testsuite/26_numerics/random/geometric_distribution/operators/values.cc: 1575 Likewise. 1576 * testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc: 1577 Likewise. 1578 * testsuite/26_numerics/random/poisson_distribution/operators/values.cc: 1579 Likewise. 1580 * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc: 1581 Likewise. 1582 15832022-05-27 Jonathan Wakely <jwakely@redhat.com> 1584 1585 Backported from master: 1586 2022-05-17 Jonathan Wakely <jwakely@redhat.com> 1587 1588 * testsuite/20_util/expected/synopsis.cc: Skip for versioned 1589 namespace. 1590 * testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise. 1591 15922022-05-27 Jonathan Wakely <jwakely@redhat.com> 1593 1594 Backported from master: 1595 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 1596 1597 * include/bits/mofunc_impl.h: Fix doxygen command. 1598 15992022-05-27 Jonathan Wakely <jwakely@redhat.com> 1600 1601 Backported from master: 1602 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 1603 1604 * include/std/future (launch): Make operators noexcept. 1605 16062022-05-16 Jonathan Wakely <jwakely@redhat.com> 1607 1608 Backported from master: 1609 2022-05-16 Jonathan Wakely <jwakely@redhat.com> 1610 1611 * doc/xml/manual/prerequisites.xml: Fix attributes for external 1612 hyperlink. 1613 * doc/html/manual/setup.html: Regenerate. 1614 16152022-05-16 Jonathan Wakely <jwakely@redhat.com> 1616 1617 Backported from master: 1618 2022-05-16 Jonathan Wakely <jwakely@redhat.com> 1619 1620 * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support. 1621 * doc/html/*: Regenerate. 1622 16232022-05-16 Jonathan Wakely <jwakely@redhat.com> 1624 1625 Backported from master: 1626 2022-05-16 Jonathan Wakely <jwakely@redhat.com> 1627 1628 * doc/xml/manual/intro.xml: Include new chapter. 1629 * doc/xml/manual/status_cxx2020.xml: Tweak release numbers. 1630 * doc/xml/manual/status_cxx2023.xml: New file. 1631 * doc/html/*: Regenerate. 1632 16332022-05-16 Jonathan Wakely <jwakely@redhat.com> 1634 1635 Backported from master: 1636 2022-05-16 Jonathan Wakely <jwakely@redhat.com> 1637 1638 * doc/html/manual/status.html: Regenerate. 1639 * doc/xml/manual/status_cxx2020.xml: Fix supported version for 1640 C++20 bit operations. 1641 16422022-05-13 Alexandre Oliva <oliva@adacore.com> 1643 1644 Backported from master: 1645 2022-05-06 Alexandre Oliva <oliva@adacore.com> 1646 1647 * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX 1648 for double, long long, and 64-bit long intrinsic types. 1649 [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in 1650 preexisting long double diagnostic, adjust no-VSX double 1651 diagnostic to cover 64-bit long double as well. 1652 16532022-05-10 Jonathan Wakely <jwakely@redhat.com> 1654 1655 Backported from master: 1656 2022-05-10 Jonathan Wakely <jwakely@redhat.com> 1657 1658 PR libstdc++/105284 1659 * include/std/iosfwd: Add declarations for <spanstream> class 1660 templates and typedefs. 1661 * include/std/spanstream (basic_spanbuf, basic_ispanstream) 1662 (basic_ospanstream, basic_spanstream): Remove default template 1663 arguments. 1664 * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream> 1665 declarations. 1666 * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream> 1667 default arguments. 1668 16692022-05-10 Jonathan Wakely <jwakely@redhat.com> 1670 1671 Backported from master: 1672 2022-05-10 Jonathan Wakely <jwakely@redhat.com> 1673 1674 PR libstdc++/105284 1675 * include/std/iosfwd: Add declarations for <synstream> class 1676 templates and typedefs. 1677 * include/std/syncstream (basic_syncbuf, basic_osyncstream): 1678 Remove default template arguments. 1679 * testsuite/27_io/headers/iosfwd/synopsis.cc: New test. 1680 * testsuite/27_io/headers/iosfwd/types.cc: New test. 1681 16822022-05-09 Jonathan Wakely <jwakely@redhat.com> 1683 1684 Backported from master: 1685 2022-05-06 Jonathan Wakely <jwakely@redhat.com> 1686 1687 PR libstdc++/104731 1688 * testsuite/27_io/filesystem/iterators/error_reporting.cc: 1689 Use a trailing char array as storage for dirent::d_name. 1690 16912022-05-06 Jonathan Wakely <jwakely@redhat.com> 1692 1693 Backported from master: 1694 2022-05-06 Jonathan Wakely <jwakely@redhat.com> 1695 1696 PR libstdc++/105502 1697 * include/bits/random.tcc 1698 (operator>>(basic_istream<C,T>&, normal_distribution<R>&)): 1699 Update state when __state_avail is false. 1700 * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc: 1701 Check that deserialized object equals serialized one. 1702 17032022-05-06 Patrick Palka <ppalka@redhat.com> 1704 1705 Backported from master: 1706 2022-05-02 Patrick Palka <ppalka@redhat.com> 1707 1708 PR libstdc++/103911 1709 * src/c++17/floating_from_chars.cc (find_end_of_float): Accept 1710 two delimeters for the exponent part in the form of a possibly 1711 NULL string of length two. Don't use std::tolower. 1712 (pattern): Adjust calls to find_end_of_float accordingly. 1713 17142022-05-06 Alexandre Oliva <oliva@adacore.com> 1715 1716 Backported from master: 1717 2022-05-03 Alexandre Oliva <oliva@adacore.com> 1718 1719 PR c++/105324 1720 * testsuite/20_util/from_chars/pr105324.cc: Guard test body 1721 with conditional for floating-point overloads of from_char. 1722 17232022-05-06 Release Manager 1724 1725 * GCC 12.1.0 released. 1726 17272022-05-02 Patrick Palka <ppalka@redhat.com> 1728 1729 Backported from master: 1730 2022-05-02 Patrick Palka <ppalka@redhat.com> 1731 1732 PR libstdc++/105441 1733 * src/c++17/floating_from_chars.cc (__floating_from_chars_hex): 1734 Also accept 'P' as the start of the exponent. 1735 * testsuite/20_util/from_chars/7.cc: Add corresponding testcase. 1736 17372022-04-29 Jonathan Wakely <jwakely@redhat.com> 1738 1739 Backported from master: 1740 2022-04-29 Jonathan Wakely <jwakely@redhat.com> 1741 1742 PR libstdc++/105417 1743 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: 1744 Regenerate. 1745 * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]: 1746 Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I> 1747 symbols as aliases for corresponding symbols without abi-tag. 1748 17492022-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1750 1751 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate. 1752 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt: 1753 Likewise. 1754 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise. 1755 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt: 1756 Likewise. 1757 17582022-04-28 Jonathan Wakely <jwakely@redhat.com> 1759 1760 * doc/xml/manual/status_cxx1998.xml: Refer to GCC 12 not 1761 mainline. 1762 * doc/xml/manual/status_cxx2011.xml: Likewise. 1763 * doc/xml/manual/status_cxx2014.xml: Likewise. 1764 * doc/xml/manual/status_cxx2017.xml: Likewise. 1765 * doc/xml/manual/status_cxx2020.xml: Likewise. 1766 * doc/xml/manual/status_cxxtr1.xml: Likewise. 1767 * doc/xml/manual/status_cxxtr24733.xml: Likewise. 1768 * doc/html/manual/status.html: Regenerate. 1769 17702022-04-28 Jonathan Wakely <jwakely@redhat.com> 1771 1772 PR libstdc++/99290 1773 * src/c++17/fs_ops.cc (fs::copy): Pass error_code to 1774 directory_iterator constructor, and check on each iteration. 1775 * src/filesystem/ops.cc (fs::copy): Likewise. 1776 * testsuite/27_io/filesystem/operations/copy.cc: Check for 1777 errors during recursion. 1778 * testsuite/experimental/filesystem/operations/copy.cc: 1779 Likewise. 1780 17812022-04-28 François Dumont <fdumont@gcc.gnu.org> 1782 1783 * config/abi/pre/gnu-versioned-namespace.ver: Remove 1784 std::random_device::* pattern. 1785 17862022-04-27 Jakub Jelinek <jakub@redhat.com> 1787 1788 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. 1789 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update. 1790 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update. 1791 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update. 1792 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update. 1793 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update. 1794 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update. 1795 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update. 1796 17972022-04-27 Jonathan Wakely <jwakely@redhat.com> 1798 1799 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add 1800 support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>. 1801 (StdAtomicPrinter): New printer. 1802 (build_libstdcxx_dictionary): Register new printer. 1803 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic. 1804 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart 1805 pointers. 1806 18072022-04-26 Jonathan Wakely <jwakely@redhat.com> 1808 1809 * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add 1810 constructor for constant initialization from nullptr_t. 1811 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: 1812 Check for new constructor. 1813 18142022-04-26 Jonathan Wakely <jwakely@redhat.com> 1815 1816 * include/bits/fs_path.h (hash<filesystem::path>): Define. 1817 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc: 1818 Check std::hash specialization. 1819 18202022-04-25 Jonathan Wakely <jwakely@redhat.com> 1821 1822 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define 1823 conditionally. 1824 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory): 1825 Define for C++23. 1826 (default_delete, default_delete<T[]>, __uniq_ptr_impl) 1827 (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member 1828 functions. 1829 * include/std/version (__cpp_lib_constexpr_memory): Define new 1830 value for C++23. 1831 * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test. 1832 * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test. 1833 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test. 1834 * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test. 1835 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test. 1836 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc: 1837 New test. 1838 18392022-04-25 Jonathan Wakely <jwakely@redhat.com> 1840 1841 PR libstdc++/105375 1842 * include/std/future (packaged_task): Add deduction guides. 1843 * testsuite/30_threads/packaged_task/cons/deduction.cc: New test. 1844 18452022-04-25 Philipp Fent <fent@in.tum.de> 1846 1847 * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator): 1848 Rename as iterator. 1849 (StdInitializerListPrinter): Define new printer. 1850 (build_libstdcxx_dictionary): Register new printer. 1851 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for 1852 initializer_list. 1853 18542022-04-22 Thomas W Rodgers <trodgers@redhat.com> 1855 1856 PR libstdc++/102994 1857 * include/bits/atomic_base.h (atomic_flag::notify_one, 1858 notify_all): Remove const qualification. 1859 (__atomic_base::notify_one, notify_all): Likewise. 1860 * include/std/atomic (atomic<bool>::notify_one, notify_all): 1861 Likewise. 1862 (atomic::notify_one, notify_all): Likewise. 1863 (atomic<T*>::notify_one, notify_all): Likewise. 1864 (atomic_notify_one, atomic_notify_all): Likewise. 1865 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test 1866 to account for change in notify_one/notify_all signature. 1867 18682022-04-21 Patrick Palka <ppalka@redhat.com> 1869 1870 * include/std/charconv (__from_chars_alnum_to_val_table): 1871 Simplify initialization of __lower/__upper_letters. 1872 (__from_chars_alnum_to_val): Default the template parameter to 1873 false. 1874 * src/c++17/floating_from_chars.cc (starts_with_ci): Don't 1875 assume the uppercase and lowercase letters are contiguous. 1876 (__floating_from_chars_hex): Likewise. 1877 18782022-04-21 Patrick Palka <ppalka@redhat.com> 1879 1880 PR c++/105297 1881 PR c++/105322 1882 * include/std/charconv (__from_chars_alnum_to_val): Make 1883 initializer for __table dependent in an artificial way. 1884 18852022-04-21 Jonathan Wakely <jwakely@redhat.com> 1886 1887 PR libstdc++/105324 1888 * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate): 1889 Remove assertion. 1890 * testsuite/20_util/from_chars/pr105324.cc: New test. 1891 18922022-04-20 Jonathan Wakely <jwakely@redhat.com> 1893 1894 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc: 1895 Check correct feature test macro. 1896 18972022-04-20 Jonathan Wakely <jwakely@redhat.com> 1898 1899 PR libstdc++/93602 1900 * doc/xml/manual/prerequisites.xml: Document libiconv 1901 workarounds. 1902 * doc/html/manual/setup.html: Regenerate. 1903 * src/Makefile.am (CXXLINK): Add $(LTLIBICONV). 1904 * src/Makefile.in: Regenerate. 1905 19062022-04-19 Patrick Palka <ppalka@redhat.com> 1907 1908 * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't 1909 define. 1910 (__floating_to_chars_shortest): Add __builtin_unreachable calls to 1911 squelch false-positive -Wmaybe-uninitialized and -Wreturn-type 1912 warnings. 1913 (__floating_to_chars_precision): Likewise. 1914 19152022-04-19 Philipp Fent <fent@in.tum.de> 1916 1917 * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define. 1918 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it. 1919 19202022-04-19 Jonathan Wakely <jwakely@redhat.com> 1921 1922 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators. 1923 * configure: Regenerate. 1924 19252022-04-18 Patrick Palka <ppalka@redhat.com> 1926 1927 * include/std/charconv (__from_chars_pow2_base): Manually 1928 unroll the first iteration of the main loop and simplify 1929 accordingly. 1930 19312022-04-15 Patrick Palka <ppalka@redhat.com> 1932 1933 PR libstdc++/104858 1934 * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing 1935 __first twice at the start. 1936 * testsuite/25_algorithms/minmax/constrained.cc (test06): New test. 1937 19382022-04-15 Patrick Palka <ppalka@redhat.com> 1939 1940 * include/std/charconv (__from_chars_alnum_to_val_table): Define. 1941 (__from_chars_alnum_to_val): Define. 1942 (__from_chars_binary): Rename to ... 1943 (__from_chars_pow2_base): ... this. Generalize to handle any 1944 power-of-two base using __from_chars_alnum_to_val. 1945 (__from_chars_digit): Optimize digit recognition to a single 1946 test instead of two tests. Use [[__unlikely___]] attribute. 1947 (__from_chars_alpha_to_num): Remove. 1948 (__from_chars_alnum): Use __from_chars_alnum_to_val. Use a 1949 nested loop for the overflow case. Maintain a lower bound 1950 on the number of available bits in the result and use it to 1951 omit the overflow check. 1952 (from_chars): Adjust appropriately. 1953 * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove. 1954 (__floating_from_chars_hex): Use __from_chars_alnum_to_val 1955 to recognize a hex digit instead. 1956 19572022-04-14 Palmer Dabbelt <palmer@rivosinc.com> 1958 1959 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex 1960 for RISC-V. 1961 * configure: Regenerate. 1962 19632022-04-14 Jonathan Wakely <jwakely@redhat.com> 1964 1965 * doc/xml/manual/intro.xml: Fix comment. 1966 19672022-04-14 Jonathan Wakely <jwakely@redhat.com> 1968 1969 * include/precompiled/stdc++.h: Include <stacktrace> and 1970 <stdatomic.h> for C++23. 1971 19722022-04-14 Jonathan Wakely <jwakely@redhat.com> 1973 1974 PR libstdc++/105269 1975 * include/bits/stl_vector.h (__cpp_lib_constexpr_vector): 1976 Define. 1977 * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h): 1978 Define. 1979 * include/std/optional (__cpp_lib_optional): Define new value 1980 for C++23. 1981 (__cpp_lib_monadic_optional): Remove. 1982 * include/std/version (__cpp_lib_constexpr_vector): Define. 1983 (__cpp_lib_stdatomic_h): Define. 1984 (__cpp_lib_optional): Define new value for C++23. 1985 (__cpp_lib_monadic_optional): Remove. 1986 * testsuite/20_util/optional/monadic/and_then.cc: Adjust. 1987 * testsuite/20_util/optional/requirements.cc: Adjust for C++23. 1988 * testsuite/20_util/optional/version.cc: Likewise. 1989 * testsuite/23_containers/vector/cons/constexpr.cc: Check 1990 feature test macro. 1991 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: 1992 Likewise. 1993 * testsuite/20_util/optional/monadic/version.cc: Removed. 1994 * testsuite/23_containers/vector/requirements/version.cc: New test. 1995 * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test. 1996 19972022-04-12 Jonathan Wakely <jwakely@redhat.com> 1998 1999 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap. 2000 * config.h.in: Regenerate. 2001 * configure: Regenerate. 2002 20032022-04-12 Jonathan Wakely <jwakely@redhat.com> 2004 2005 * include/std/stacktrace (basic_stacktrace::current): Reallocate 2006 a smaller container if the unused capacity is larger than the 2007 used size. 2008 20092022-04-12 Jonathan Wakely <jwakely@redhat.com> 2010 2011 * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone 2012 or _Impl::_M_assign to initialize elements in allocated storage. 2013 (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of 2014 _Impl::_M_destroy. 2015 (basic_stacktrace::_Impl::_M_destroy()): Replace with ... 2016 (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New 2017 function. 2018 (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct 2019 new element using allocator. 2020 (basic_stacktrace::_Impl::_M_clone): New function. 2021 (basic_stacktrace::_Impl::_M_xclone): New function. 2022 (basic_stacktrace::_Impl::_M_assign): New function. 2023 20242022-04-12 Jonathan Wakely <jwakely@redhat.com> 2025 2026 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate): 2027 Use nothrow new instead of try block for std::allocator. 2028 (basic_stacktrace::_Impl::_M_deallocate): Use delete for 2029 std::allocator. 2030 20312022-04-12 Jonathan Wakely <jwakely@redhat.com> 2032 2033 * include/std/stacktrace (basic_stacktrace::current): Replace 2034 calls to _M_reserve and _S_curr_cb with call to _M_prepare. 2035 Check return value of backtrace_simple when max depth given. 2036 (basic_stacktrace::_M_reserve): Remove. 2037 (basic_stacktrace::_S_curr_cb): Remove. 2038 (basic_stacktrace::_M_prepare(size_type)): New function to 2039 reserve initial capacity and return callback. 2040 (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n 2041 and remove redundant zeroing of _M_frames and _M_capacity. 2042 (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]] 2043 attribute. Assign _Impl instead of swapping. 2044 * testsuite/19_diagnostics/stacktrace/current.cc: New test. 2045 20462022-04-11 Jonathan Wakely <jwakely@redhat.com> 2047 2048 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate): 2049 Change [[unlikely]] attribute to [[likely]]. 2050 20512022-04-11 Jonathan Wakely <jwakely@redhat.com> 2052 2053 PR libstdc++/105031 2054 * include/std/stacktrace (basic_stacktrace::basic_stacktrace): 2055 Fix allocator usage in constructors. 2056 (basic_stacktrace::operator=(const basic_stacktrace&)): Do not 2057 try to reallocate using const allocator. 2058 (basic_stacktrace::operator=(basic_stacktrace&&)): Fix 2059 if-constexpr with non-constant condition. Do not allocate new 2060 storage if allocator propagates. Do not set _M_size if 2061 allocation fails. 2062 (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add 2063 assertion that non-propagating allocators are equal. 2064 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test. 2065 20662022-04-11 Jonathan Wakely <jwakely@redhat.com> 2067 2068 * include/std/stacktrace (basic_stacktrace::current): Duplicate 2069 implementation into each overload. Add noinline attribute and 2070 skip current frame. 2071 (basic_stacktrace::max_size()): Call _Impl::_S_max_size. 2072 (basic_stacktrace::_S_curr_cb()): New function defining lambda. 2073 (basic_stacktrace::_Impl::_S_max_size): New function defining 2074 maximum size in terms of allocator and size_type. 2075 (basic_stacktrace::_Impl::_M_allocate): Check against 2076 max_size(). 2077 * testsuite/19_diagnostics/stacktrace/entry.cc: Call function 2078 for non-constexpr checks. Check line number is correct. 2079 20802022-04-11 Jonathan Wakely <jwakely@redhat.com> 2081 2082 * testsuite/20_util/stacktrace/entry.cc: Moved to... 2083 * testsuite/19_diagnostics/stacktrace/entry.cc: ...here. 2084 * testsuite/20_util/stacktrace/synopsis.cc: Moved to... 2085 * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here. 2086 * testsuite/20_util/stacktrace/version.cc: Moved to... 2087 * testsuite/19_diagnostics/stacktrace/version.cc: ...here. 2088 20892022-04-11 Jonathan Wakely <jwakely@redhat.com> 2090 2091 * include/experimental/bits/fs_path.h (path): Define special 2092 members after path::_Cmpt is complete. 2093 20942022-04-08 Jonathan Wakely <jwakely@redhat.com> 2095 2096 PR libstdc++/105153 2097 * include/std/expected 2098 (expected<void,E>::expected(expected<U,G>&&)): Fix constraints. 2099 * testsuite/20_util/expected/cons.cc: Check constructor. 2100 21012022-04-08 Jonathan Wakely <jwakely@redhat.com> 2102 2103 PR libstdc++/105154 2104 * include/std/expected (expected<void, E>::swap): Set 2105 _M_has_value to false for objects that previously had a value. 2106 * testsuite/20_util/expected/swap.cc: Fix test to check void 2107 specialization. 2108 21092022-04-08 Jonathan Wakely <jwakely@redhat.com> 2110 2111 PR libstdc++/105146 2112 * include/std/expected (bad_expected_access): Move constructor 2113 parameter. 2114 * testsuite/20_util/expected/bad.cc: New test. 2115 21162022-04-07 Hans-Peter Nilsson <hp@axis.com> 2117 2118 * testsuite/20_util/expected/requirements.cc: Correct minimal-size 2119 test. 2120 21212022-04-02 Jakub Jelinek <jakub@redhat.com> 2122 2123 PR libstdc++/105128 2124 * include/std/source_location (std::source_location::__impl): Move 2125 definition before using __builtin_ret_type. 2126 21272022-04-01 Jonathan Wakely <jwakely@redhat.com> 2128 2129 * include/std/utility (unreachable): Define for C++23. 2130 * include/std/version (__cpp_lib_unreachable): Define. 2131 * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid 2132 arguments. Handle only the function being given. 2133 * testsuite/20_util/unreachable/1.cc: New test. 2134 * testsuite/20_util/unreachable/version.cc: New test. 2135 21362022-04-01 Jonathan Wakely <jwakely@redhat.com> 2137 2138 * include/experimental/bits/fs_fwd.h (copy_file): Remove 2139 incorrect noexcept from declaration. 2140 * include/experimental/bits/fs_path.h (path::begin, path::end): 2141 Add noexcept to declarations, to match definitions. 2142 21432022-04-01 Timm Bäder <tbaeder@redhat.com> 2144 2145 * include/bits/fs_ops.h: Fix filename in Doxygen comment. 2146 * include/experimental/bits/fs_ops.h: Likewise. 2147 21482022-03-31 Jonathan Wakely <jwakely@redhat.com> 2149 2150 * libsupc++/new_opa.cc (aligned_alloc): Add comment. 2151 21522022-03-29 Jonathan Wakely <jwakely@redhat.com> 2153 2154 * testsuite/18_support/exception/38732.cc: Disable for C++23. 2155 * testsuite/18_support/headers/exception/synopsis.cc: Likewise. 2156 * testsuite/18_support/unexpected_handler.cc: Likewise. 2157 21582022-03-29 Jonathan Wakely <jwakely@redhat.com> 2159 2160 * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add 2161 static data members for _Fp_fmt enumerators. 2162 21632022-03-29 Jonathan Wakely <jwakely@redhat.com> 2164 2165 * include/std/version (__cpp_lib_variant): Fix conditions to 2166 match <variant>. 2167 (__cpp_lib_expected): Fix condition to match <expected>. 2168 21692022-03-28 Jonathan Wakely <jwakely@redhat.com> 2170 2171 * testsuite/20_util/optional/monadic/and_then.cc: Fix typo. 2172 * testsuite/20_util/optional/monadic/transform.cc: Likewise. 2173 * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise. 2174 * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise. 2175 * testsuite/22_locale/codecvt/in/char/1.cc: Likewise. 2176 * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise. 2177 * testsuite/22_locale/codecvt/out/char/1.cc: Likewise. 2178 * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise. 2179 21802022-03-27 Jonathan Wakely <jwakely@redhat.com> 2181 2182 * doc/doxygen/user.cfg.in: Add new header. 2183 * include/Makefile.am: Likewise. 2184 * include/Makefile.in: Regenerate. 2185 * include/precompiled/stdc++.h: Add new header. 2186 * include/std/version (__cpp_lib_expected): Define. 2187 * libsupc++/exception [__cplusplus > 202002] (unexpected) 2188 (unexpected_handler, set_unexpected): Do not declare for C++23. 2189 * include/std/expected: New file. 2190 * testsuite/20_util/expected/assign.cc: New test. 2191 * testsuite/20_util/expected/cons.cc: New test. 2192 * testsuite/20_util/expected/illformed_neg.cc: New test. 2193 * testsuite/20_util/expected/observers.cc: New test. 2194 * testsuite/20_util/expected/requirements.cc: New test. 2195 * testsuite/20_util/expected/swap.cc: New test. 2196 * testsuite/20_util/expected/synopsis.cc: New test. 2197 * testsuite/20_util/expected/unexpected.cc: New test. 2198 * testsuite/20_util/expected/version.cc: New test. 2199 22002022-03-25 Jonathan Wakely <jwakely@redhat.com> 2201 2202 * include/std/bit (bit_cast, byteswap, endian): Add doxygen 2203 comments. 2204 22052022-03-23 Jonathan Wakely <jwakely@redhat.com> 2206 2207 PR libstdc++/105027 2208 * include/std/bit (bit_cast): Add constraints. 2209 * testsuite/26_numerics/bit/bit.cast/105027.cc: New test. 2210 22112022-03-23 Jonathan Wakely <jwakely@redhat.com> 2212 2213 * include/std/version [!_GLIBCXX_HOSTED] 2214 (__cpp_lib_hardware_interference_size): Define for freestanding. 2215 (__cpp_lib_bit_cast): Likewise. 2216 (__cpp_lib_is_layout_compatible): Likewise. 2217 (__cpp_lib_is_pointer_interconvertible): Likewise. 2218 (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for 2219 freestanding. 2220 (__cpp_lib_invoke_r): Likewise. 2221 (__cpp_lib_ios_noreplace): Likewise. 2222 (__cpp_lib_monadic_optional): Likewise. 2223 (__cpp_lib_move_only_function): Likewise. 2224 (__cpp_lib_spanstream): Likewise. 2225 (__cpp_lib_stacktrace): Likewise. 2226 (__cpp_lib_string_contains): Likewise. 2227 (__cpp_lib_string_resize_and_overwrite): Likewise. 2228 (__cpp_lib_to_underlying): Likewise. 2229 22302022-03-23 Jonathan Wakely <jwakely@redhat.com> 2231 2232 PR libstdc++/105021 2233 * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include 2234 <bits/atomic_wait.h> for freestanding. 2235 22362022-03-22 Hans-Peter Nilsson <hp@axis.com> 2237 2238 * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]: 2239 Conditionalize call to fesetround. 2240 22412022-03-21 Jakub Jelinek <jakub@redhat.com> 2242 2243 PR libstdc++/104990 2244 * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get 2245 isn't overloaded if __clang__ is defined. 2246 22472022-03-18 Jonathan Wakely <jwakely@redhat.com> 2248 2249 PR libstdc++/104242 2250 * include/std/any (any(T&&)): Revert change to constraints. 2251 * testsuite/20_util/any/cons/104242.cc: New test. 2252 22532022-03-18 Jonathan Wakely <jwakely@redhat.com> 2254 2255 PR libstdc++/92546 2256 * include/pstl/glue_algorithm_defs.h: Replace <functional> with 2257 <bits/stl_pair.h>. 2258 * include/pstl/utils.h: Replace <iterator> with <type_traits>. 2259 (__pstl::__internal::__except_handler): Use std::__terminate 2260 instead of std::terminate. 2261 * src/c++17/fs_path.cc: Include <array>. 2262 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include 2263 <functional>. 2264 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise. 2265 * testsuite/25_algorithms/clamp/constrained.cc: Likewise. 2266 * testsuite/25_algorithms/equal/constrained.cc: Likewise. 2267 * testsuite/25_algorithms/for_each/constrained.cc: Likewise. 2268 * testsuite/25_algorithms/includes/constrained.cc: Likewise. 2269 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise. 2270 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise. 2271 * testsuite/25_algorithms/is_permutation/constrained.cc: Include 2272 <iterator>. 2273 * testsuite/25_algorithms/is_sorted/constexpr.cc: Include 2274 <functional>. 2275 * testsuite/25_algorithms/is_sorted_until/constexpr.cc: 2276 Likewise. 2277 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc: 2278 Likewise. 2279 * testsuite/25_algorithms/lexicographical_compare/constrained.cc: 2280 Likewise. 2281 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc: 2282 Include <array>. 2283 * testsuite/25_algorithms/lower_bound/constexpr.cc: Include 2284 <functional>. 2285 * testsuite/25_algorithms/max/constrained.cc: Likewise. 2286 * testsuite/25_algorithms/max_element/constrained.cc: Likewise. 2287 * testsuite/25_algorithms/min/constrained.cc: Likewise. 2288 * testsuite/25_algorithms/min_element/constrained.cc: Likewise. 2289 * testsuite/25_algorithms/minmax_element/constrained.cc: 2290 Likewise. 2291 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise. 2292 * testsuite/25_algorithms/move/93872.cc: Likewise. 2293 * testsuite/25_algorithms/move_backward/93872.cc: Include 2294 <iterator>. 2295 * testsuite/25_algorithms/nth_element/constexpr.cc: Include 2296 <functional>. 2297 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise. 2298 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc: 2299 Likewise. 2300 * testsuite/25_algorithms/search/constexpr.cc: Likewise. 2301 * testsuite/25_algorithms/search_n/constrained.cc: Likewise. 2302 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise. 2303 * testsuite/25_algorithms/set_difference/constrained.cc: 2304 Likewise. 2305 * testsuite/25_algorithms/set_intersection/constexpr.cc: 2306 Likewise. 2307 * testsuite/25_algorithms/set_intersection/constrained.cc: 2308 Likewise. 2309 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc: 2310 Likewise. 2311 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise. 2312 * testsuite/25_algorithms/set_union/constrained.cc: Likewise. 2313 * testsuite/25_algorithms/sort/constexpr.cc: Likewise. 2314 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise. 2315 * testsuite/25_algorithms/transform/constrained.cc: Likewise. 2316 * testsuite/25_algorithms/unique/constexpr.cc: Likewise. 2317 * testsuite/25_algorithms/unique/constrained.cc: Likewise. 2318 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise. 2319 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise. 2320 * testsuite/std/ranges/adaptors/elements.cc: Include <vector>. 2321 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise. 2322 * testsuite/std/ranges/adaptors/split.cc: Likewise. 2323 23242022-03-17 Jonathan Wakely <jwakely@redhat.com> 2325 2326 PR libstdc++/92546 2327 * include/bits/fs_path.h (path::make_preferred): Use 2328 handwritten loop instead of std::replace. 2329 23302022-03-17 Jonathan Wakely <jwakely@redhat.com> 2331 2332 PR middle-end/104966 2333 * include/bits/locale_facets_nonio.tcc 2334 (__moneypunct_cache::_M_cache): Replace try-catch with RAII and 2335 make all string copies before any stores to *this. 2336 23372022-03-17 Jonathan Wakely <jwakely@redhat.com> 2338 2339 * testsuite/util/testsuite_character.h: Fix comment. 2340 23412022-03-16 Jonathan Wakely <jwakely@redhat.com> 2342 2343 PR libstdc++/103407 2344 * config/abi/pre/gnu.ver: Make version for std::from_chars 2345 depend on HAVE_USELOCALE macro. 2346 * testsuite/util/testsuite_abi.cc (compare_symbols): Treat 2347 std::from_chars for floating-point types as undesignated if 2348 not found in the baseline symbols file. 2349 23502022-03-16 Jonathan Wakely <jwakely@redhat.com> 2351 2352 * include/std/charconv (__cpp_lib_to_chars): Only define when 2353 both from_chars and to_chars are supported for floating-point 2354 types. 2355 (from_chars, to_chars): Adjust preprocessor conditions guarding 2356 declarations. 2357 * include/std/version (__cpp_lib_to_chars): Adjust condition to 2358 match <charconv> definition. 2359 * src/c++17/floating_from_chars.cc (from_chars_strtod): New 2360 function template. 2361 (from_chars): Simplify preprocessor checks and use 2362 from_chars_strtod when appropriate. 2363 23642022-03-14 Jonathan Wakely <jwakely@redhat.com> 2365 2366 PR libstdc++/104875 2367 * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to 2368 hold octets that will be left-shifted. 2369 23702022-03-10 Jonathan Wakely <jwakely@redhat.com> 2371 2372 PR libstdc++/104870 2373 * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32 2374 before using fast_float. 2375 23762022-03-10 Detlef Vollmann <dv@vollmann.ch> 2377 2378 PR libstdc++/104866 2379 * include/bits/this_thread_sleep.h: Fix order of #endif and 2380 closing brace of namespace. 2381 23822022-03-10 Jonathan Wakely <jwakely@redhat.com> 2383 2384 * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]: 2385 Handle NaN. 2386 23872022-03-10 Jonathan Wakely <jwakely@redhat.com> 2388 2389 * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use 2390 <=> comparison. 2391 23922022-03-09 Patrick Palka <ppalka@redhat.com> 2393 2394 PR libstdc++/104859 2395 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex): 2396 Be explicit when narrowing the shifted effective_mantissa, 2397 since it may have an integer-class type. 2398 23992022-03-08 Jonathan Wakely <jwakely@redhat.com> 2400 2401 * include/bits/uses_allocator_args.h: Remove incorrect copyright 2402 notice. 2403 24042022-03-07 Jonathan Wakely <jwakely@redhat.com> 2405 2406 PR libstdc++/104807 2407 * include/bits/c++config (__terminate, __glibcxx_assert_fail): 2408 Replace _GLIBCXX_VISIBILITY on function with visibility pragma. 2409 (__is_constant_evaluated): Add visibility pragma. 2410 24112022-03-07 Rasmus Villemoes <rasmus.villemoes@prevas.dk> 2412 2413 * config/locale/vxworks/ctype_members.cc: Remove <iostream> 2414 include. 2415 24162022-03-05 Jonathan Wakely <jwakely@redhat.com> 2417 2418 * include/bits/c++config (__glibcxx_assert_fail): Add visibility 2419 attribute. 2420 (__terminate): Likewise. 2421 24222022-03-04 Jonathan Wakely <jwakely@redhat.com> 2423 2424 * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef 2425 inside #if condition. 2426 24272022-03-03 Jonathan Wakely <jwakely@redhat.com> 2428 2429 PR libstdc++/104748 2430 * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for 2431 constexpr test. 2432 24332022-03-03 Jonathan Wakely <jwakely@redhat.com> 2434 2435 * testsuite/17_intro/names.cc (func): Undef on AIX. 2436 24372022-03-03 Jonathan Wakely <jwakely@redhat.com> 2438 2439 PR libstdc++/96526 2440 * libsupc++/compare (strong_order): Add missing support for 2441 floating-point types. 2442 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc: 2443 New test. 2444 24452022-03-01 Jonathan Wakely <jwakely@redhat.com> 2446 2447 PR middle-end/103984 2448 * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use 2449 default member initializer. 2450 24512022-02-24 Jonathan Wakely <jwakely@redhat.com> 2452 2453 PR libstdc++/104602 2454 * include/std/source_location (source_location::current): Use 2455 deduced type of __builtin_source_location(). 2456 24572022-02-22 Patrick Palka <ppalka@redhat.com> 2458 2459 * include/bits/ranges_base.h (__detail::__is_initializer_list): 2460 Define. 2461 (viewable_range): Adjust as per P2415R2. 2462 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value. 2463 * include/std/ranges (owning_view): Define as per P2415R2. 2464 (enable_borrowed_range<owning_view>): Likewise. 2465 (views::__detail::__can_subrange): Replace with ... 2466 (views::__detail::__can_owning_view): ... this. 2467 (views::_All::_S_noexcept): Sync with operator(). 2468 (views::_All::operator()): Use owning_view instead of subrange 2469 as per P2415R2. 2470 * include/std/version (__cpp_lib_ranges): Adjust value. 2471 * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that 2472 views::all uses owning_view instead of subrange. 2473 (test08): New test. 2474 * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust 2475 now that rvalue non-view non-borrowed ranges are viewable. 2476 * testsuite/std/ranges/adaptors/split.cc (test06): Likewise. 2477 24782022-02-17 Jonathan Wakely <jwakely@redhat.com> 2479 2480 PR libstdc++/104559 2481 * doc/xml/manual/evolution.xml: Document deprecation. 2482 * doc/html/manual/api.html: Regenerate. 2483 * include/bits/stl_bvector.h (insert(const_iterator, const bool&)): 2484 Remove default argument. 2485 (insert(const_iterator)): New overload with deprecated attribute. 2486 * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc: 2487 New test. 2488 24892022-02-17 Jonathan Wakely <jwakely@redhat.com> 2490 2491 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace 2492 code that call cat->name() on std::error_category objects. 2493 Identify known categories by symbol name and use a hardcoded 2494 name. Print error code values as enumerators where appopriate. 2495 * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected 2496 name of custom category. Check io_errc and future_errc errors. 2497 24982022-02-15 Jonathan Wakely <jwakely@redhat.com> 2499 2500 PR libstdc++/104542 2501 * include/bits/uses_allocator_args.h (make_obj_using_allocator) 2502 (uninitialized_construct_using_allocator): Add constexpr. 2503 * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr. 2504 * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test. 2505 25062022-02-14 Jonathan Wakely <jwakely@redhat.com> 2507 2508 PR libstdc++/100912 2509 * config/locale/gnu/c_locale.h (__convert_from_v): Use inline 2510 namespace for IEEE128 long double mode. 2511 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol 2512 version and export __gnu_cxx_ieee128::__convert_from_v. 2513 * include/bits/locale_facets_nonio.tcc (money_put::__do_put): 2514 Make __ibm128 overload use snprintf directly 2515 * testsuite/util/testsuite_abi.cc: Add new symbol version. 2516 Remove stable IEEE128/LDBL versions. 2517 25182022-02-14 Jonathan Wakely <jwakely@redhat.com> 2519 2520 PR libstdc++/103891 2521 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS): 2522 Remove. 2523 * include/std/variant: Check feature test macros instead. 2524 * include/std/version: Likewise. 2525 25262022-02-14 Jonathan Wakely <jwakely@redhat.com> 2527 2528 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc: 2529 Fix typo. 2530 25312022-02-14 Jonathan Wakely <jwakely@redhat.com> 2532 2533 * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on 2534 LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128. 2535 25362022-02-11 Jonathan Wakely <jwakely@redhat.com> 2537 2538 * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target 2539 selector. 2540 25412022-02-11 Jonathan Wakely <jwakely@redhat.com> 2542 2543 * testsuite/20_util/monotonic_buffer_resource/allocate.cc: 2544 Ignore -Walloc-larger-than warning. 2545 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc: 2546 Likewise. 2547 * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1 2548 to avoid linker error for __atomic_is_lock_free. 2549 25502022-02-10 Thomas Rodgers <rodgert@appliantology.com> 2551 2552 * include/bits/atomic_wait.h (__waiter_base::_S_do_spin, 2553 __waiter_base::_S_do_spin_v): Change memory order from relaxed 2554 to acquire. 2555 25562022-02-10 Jonathan Wakely <jwakely@redhat.com> 2557 2558 * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add 2559 using-declaration. 2560 (atomic_fetch_xor_explicit): Likewise. 2561 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check 2562 arithmetic and logical operations for atomic_int. 2563 25642022-02-10 Jonathan Wakely <jwakely@redhat.com> 2565 2566 * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine 2567 when <dirent.h> is not available. 2568 (_GLIBCXX_HAVE_UNLINKAT): Likewise. 2569 25702022-02-09 Thomas Rodgers <rodgert@appliantology.com> 2571 2572 PR libstdc++/104442 2573 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin 2574 loop inside do loop so that threads failing the wait, reload 2575 _M_ver. 2576 25772022-02-08 Jonathan Wakely <jwakely@redhat.com> 2578 2579 * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first 2580 parameter to _Dir_base&&. 2581 * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove. 2582 * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first 2583 parameter to _Dir_base&&. 2584 25852022-02-08 Jonathan Wakely <jwakely@redhat.com> 2586 2587 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about 2588 checking for CAS on correct word size. 2589 25902022-02-08 Jonathan Wakely <jwakely@redhat.com> 2591 2592 * testsuite/experimental/filesystem/operations/create_directories.cc: 2593 Adjust expected results for Windows. 2594 25952022-02-08 Jonathan Wakely <jwakely@redhat.com> 2596 2597 PR libstdc++/104161 2598 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase): 2599 [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member, 2600 instead of checking for errno values indicating a directory. 2601 * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar 2602 logic to non-throwing overload. 2603 (fs::remove_all(const path&, error_code&)): Add comments. 2604 * src/filesystem/ops-common.h: Likewise. 2605 26062022-02-04 Jonathan Wakely <jwakely@redhat.com> 2607 2608 * src/filesystem/dir-common.h (_Dir_base::openat): Change return 2609 type to use portable posix::DIR alias. 2610 26112022-02-04 Jonathan Wakely <jwakely@redhat.com> 2612 2613 * include/c_compatibility/stdatomic.h [__clang__]: Use 2614 #include_next <stdatomic.h>. 2615 26162022-02-04 Jonathan Wakely <jwakely@redhat.com> 2617 2618 * include/experimental/bits/fs_ops.h (fs::copy_file): Remove 2619 noexcept. 2620 (fs::create_directories): Likewise. 2621 (fs::remove_all): Likewise. 2622 * src/filesystem/ops.cc (fs::copy_file): Remove noexcept. 2623 (fs::create_directories): Likewise. 2624 (fs::remove_all): Likewise. 2625 26262022-02-04 Jonathan Wakely <jwakely@redhat.com> 2627 2628 PR libstdc++/104161 2629 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd 2630 and unlinkat. 2631 * config.h.in: Regenerate. 2632 * configure: Regenerate. 2633 * include/bits/fs_dir.h (recursive_directory_iterator): Declare 2634 remove_all overloads as friends. 2635 (recursive_directory_iterator::__erase): Declare new member 2636 function. 2637 * include/bits/fs_fwd.h (remove, remove_all): Declare. 2638 * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to 2639 constructor. Pass file descriptor argument to base constructor. 2640 (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink) 2641 (_Dir::unlink, _Dir::rmdir): Define new member functions. 2642 (directory_iterator): Pass filename_only argument to _Dir 2643 constructor. 2644 (recursive_directory_iterator::_Dir_stack): Adjust constructor 2645 parameters to take a _Dir rvalue instead of creating one. 2646 (_Dir_stack::orig): Add data member for storing original path. 2647 (_Dir_stack::report_error): Define new member function. 2648 (__directory_iterator_nofollow): Move here from dir-common.h and 2649 fix value to be a power of two. 2650 (__directory_iterator_filename_only): Define new constant. 2651 (recursive_directory_iterator): Construct _Dir object and move 2652 into _M_dirs stack. Pass skip_permission_denied argument to first 2653 advance call. 2654 (recursive_directory_iterator::increment): Use _Dir::open_subdir. 2655 (recursive_directory_iterator::__erase): Define new member 2656 function. 2657 * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove. 2658 (fs::remove_all): Use new recursive_directory_iterator::__erase 2659 member function. 2660 * src/filesystem/dir-common.h (_Dir_base): Add int parameter to 2661 constructor and use openat to implement nofollow semantics. 2662 (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat): 2663 Define new member functions. 2664 (__directory_iterator_nofollow): Move to fs_dir.cc. 2665 * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to 2666 base constructor. 2667 (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member 2668 functions. 2669 (recursive_directory_iterator::_Dir_stack): Adjust constructor 2670 parameters to take a _Dir rvalue instead of creating one. 2671 (recursive_directory_iterator): Check for new nofollow option. 2672 Construct _Dir object and move into _M_dirs stack. Pass 2673 skip_permission_denied argument to first advance call. 2674 (recursive_directory_iterator::increment): Use _Dir::open_subdir. 2675 * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all. 2676 26772022-02-04 Jonathan Wakely <jwakely@redhat.com> 2678 2679 * include/bits/allocator.h: Qualify std::allocator_traits in 2680 deprecated warnings. 2681 * libsupc++/exception (uncaught_exception): Add suggestion to 2682 deprecated warning. 2683 26842022-02-02 Jonathan Wakely <jwakely@redhat.com> 2685 2686 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop): 2687 Add [[maybe_unused]] attribute. 2688 * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop): 2689 Likewise. 2690 26912022-02-02 Jonathan Wakely <jwakely@redhat.com> 2692 2693 * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use 2694 custom comparison function for multiset. 2695 * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom 2696 comparison function for set. 2697 26982022-02-02 Jonathan Wakely <jwakely@redhat.com> 2699 2700 * include/bits/boost_concept_check.h (_OutputIteratorConcept): 2701 Change member function to data member of function pointer type. 2702 27032022-02-02 Martin Sebor <msebor@redhat.com> 2704 2705 PR libstdc++/101831 2706 * include/std/array (begin): Declare const member function attribute 2707 const. 2708 (end, rbegin, rend, size, max_size, empty, data): Same. 2709 * testsuite/23_containers/array/capacity/empty.cc: Add test cases. 2710 * testsuite/23_containers/array/capacity/max_size.cc: Same. 2711 * testsuite/23_containers/array/capacity/size.cc: Same. 2712 * testsuite/23_containers/array/iterators/begin_end.cc: New test. 2713 27142022-02-02 Jonathan Wakely <jwakely@redhat.com> 2715 2716 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use 2717 autoconf macro to check whether d_type is present. 2718 * testsuite/experimental/filesystem/iterators/error_reporting.cc: 2719 Likewise. 2720 27212022-02-01 Jonathan Wakely <jwakely@redhat.com> 2722 2723 * testsuite/27_io/filesystem/iterators/97731.cc: New test. 2724 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc: 2725 Check follow_directory_symlink option. 2726 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc: 2727 Likewise. 2728 27292022-02-01 Jonathan Wakely <jwakely@redhat.com> 2730 2731 * src/c++17/fs_dir.cc (recursive_directory_iterator::increment): 2732 Reset state to past-the-end iterator on error. 2733 (fs::recursive_directory_iterator::pop(error_code&)): Likewise. 2734 (fs::recursive_directory_iterator::pop()): Check _M_dirs before 2735 it might get reset. 2736 * src/filesystem/dir.cc (recursive_directory_iterator): Likewise, 2737 for the TS implementation. 2738 * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test. 2739 * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test. 2740 27412022-02-01 Jonathan Wakely <jwakely@redhat.com> 2742 2743 * include/bits/fs_fwd.h (filesystem::perms): Fix comment. 2744 27452022-02-01 Jonathan Wakely <jwakely@redhat.com> 2746 2747 PR libstdc++/104301 2748 * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages 2749 for stdio_pure and stdio_posix options. 2750 * configure: Regenerate. 2751 27522022-02-01 Thomas Rodgers <rodgert@appliantology.com> 2753 2754 * include/bits/atomic_wait.h: Change memory order from 2755 Acquire/Release with relaxed loads to SeqCst+Release for 2756 accesses to the waiter's count. 2757 27582022-01-31 Martin Liska <mliska@suse.cz> 2759 2760 * acinclude.m4: Detect *_ld_is_mold and use it. 2761 * configure: Regenerate. 2762 27632022-01-30 Hans-Peter Nilsson <hp@axis.com> 2764 2765 * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on 2766 simulator targets. 2767 * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise. 2768 27692022-01-27 Jonathan Wakely <jwakely@redhat.com> 2770 2771 PR libstdc++/100516 2772 * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>): 2773 Add __builtin_unreachable to loop. 2774 * testsuite/23_containers/deque/100516.cc: New test. 2775 27762022-01-27 Jonathan Wakely <jwakely@redhat.com> 2777 2778 * include/bits/ranges_base.h (ranges::advance): Avoid signed 2779 overflow. Do nothing if already equal to desired result. 2780 * testsuite/24_iterators/range_operations/advance_overflow.cc: 2781 New test. 2782 27832022-01-27 Martin Liska <mliska@suse.cz> 2784 2785 PR libstdc++/104259 2786 * acinclude.m4: Fix typo. 2787 * configure: Regenerate. 2788 27892022-01-25 Jonathan Wakely <jwakely@redhat.com> 2790 2791 PR libstdc++/104019 2792 * include/bits/istream.tcc (basic_istream::sentry): Add braces 2793 around try-block. 2794 * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init): 2795 Add pragmas to disable bogus warnings from PR 61596. 2796 27972022-01-25 Jonathan Wakely <jwakely@redhat.com> 2798 2799 PR libstdc++/104217 2800 * src/c++17/fs_ops.cc (_GNU_SOURCE): Define. 2801 * src/filesystem/dir.cc (_GNU_SOURCE): Define. 2802 * src/filesystem/ops.cc (_GNU_SOURCE): Define. 2803 28042022-01-25 Jonathan Wakely <jwakely@redhat.com> 2805 2806 PR libstdc++/104161 2807 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for 2808 fdopendir. 2809 * config.h.in: Regenerate. 2810 * configure: Regenerate. 2811 * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor 2812 and pass it to base class constructor. 2813 (directory_iterator): Pass nofollow flag to _Dir constructor. 2814 (fs::recursive_directory_iterator::increment): Likewise. 2815 * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for 2816 directory_iterator constructor. Move error check outside loop. 2817 * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to 2818 constructor and when it's set use ::open with O_NOFOLLOW and 2819 O_DIRECTORY. 2820 * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor 2821 and pass it to base class constructor. 2822 (directory_iterator): Pass nofollow flag to _Dir constructor. 2823 (fs::recursive_directory_iterator::increment): Likewise. 2824 * src/filesystem/ops.cc (remove_all): Use nofollow option for 2825 directory_iterator constructor. Move error check outside loop. 2826 28272022-01-23 Jonathan Wakely <jwakely@redhat.com> 2828 2829 PR libstdc++/104032 2830 * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use 2831 mem-initializer for _M_buf. 2832 (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed 2833 member access. 2834 * testsuite/27_io/spanstream/2.cc: New test. 2835 28362022-01-23 Jonathan Wakely <jwakely@redhat.com> 2837 2838 * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS): 2839 Define macro for case where std::from_chars is implemented in 2840 terms of strtod, strtof or strtold. 2841 (buffer_resource, valid_fmt, find_end_of_float, pattern) 2842 (from_chars_impl, make_result, reserve_string): Do not define 2843 unless USE_STRTOD_FOR_FROM_CHARS is defined. 2844 (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and 2845 USE_STRTOD_FOR_FROM_CHARS is defined, instead of 2846 _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it 2847 is binary64. 2848 28492022-01-23 Jonathan Wakely <jwakely@redhat.com> 2850 2851 PR libstdc++/104174 2852 * include/bits/hashtable_policy.h (_Map_base): Add partial 2853 specialization for maps with const key types. 2854 * testsuite/23_containers/unordered_map/104174.cc: New test. 2855 28562022-01-23 Jonathan Wakely <jwakely@redhat.com> 2857 2858 PR libstdc++/104019 2859 * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release): 2860 Set members to zero without type punning. 2861 28622022-01-21 Jonathan Wakely <jwakely@redhat.com> 2863 2864 * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment. 2865 28662022-01-21 Jonathan Wakely <jwakely@redhat.com> 2867 2868 PR libstdc++/87193 2869 PR libstdc++/104019 2870 * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal): 2871 Define as type long. 2872 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements): 2873 Likewise. 2874 * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise. 2875 * include/bits/chrono.h (__cpp_lib_chrono): Likewise. 2876 (__cpp_lib_chrono_udls): Likewise. 2877 * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise. 2878 * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise. 2879 * include/bits/range_access.h (__cpp_lib_nonmember_container_access): 2880 Likewise. 2881 * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this): 2882 Likewise. 2883 * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise. 2884 (__cpp_lib_sample): Likewise. 2885 * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops): 2886 Likewise. 2887 * include/bits/stl_function.h (__cpp_lib_transparent_operators): 2888 Likewise. 2889 * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator): 2890 Likewise. 2891 * include/bits/stl_map.h (__cpp_lib_map_try_emplace): 2892 Likewise. 2893 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup): 2894 Likewise. 2895 * include/bits/unique_ptr.h (__cpp_lib_make_unique): 2896 Likewise. 2897 * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace): 2898 Likewise. 2899 * include/c_global/cmath (__cpp_lib_hypot): Likewise. 2900 * include/c_global/cstddef (__cpp_lib_byte): Likewise. 2901 * include/std/atomic (__cpp_lib_atomic_is_always_lock_free): 2902 Likewise. 2903 * include/std/complex (__cpp_lib_complex_udls): Likewise. 2904 * include/std/filesystem (__cpp_lib_filesystem): Likewise. 2905 * include/std/functional (__cpp_lib_not_fn): Likewise. 2906 (__cpp_lib_boyer_moore_searcher): Likewise. 2907 * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise. 2908 * include/std/mutex (__cpp_lib_scoped_lock): Likewise. 2909 * include/std/numeric (__cpp_lib_gcd_lcm): Likewise. 2910 (__cpp_lib_gcd, __cpp_lib_lcm): Likewise. 2911 * include/std/tuple (__cpp_lib_apply): Likewise. 2912 (__cpp_lib_make_from_tuple): Likewise. 2913 * include/std/type_traits (__cpp_lib_integral_constant_callable) 2914 (__cpp_lib_bool_constant, __cpp_lib_logical_traits) 2915 (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases) 2916 (__cpp_lib_result_of_sfinae, __cpp_lib_void_t) 2917 (__cpp_lib_is_swappable, __cpp_lib_is_invocable) 2918 (__cpp_lib_has_unique_object_representations) 2919 (__cpp_lib_is_aggregate): Likewise. 2920 * include/std/version: Likewise. 2921 * libsupc++/new (__cpp_lib_launder): Likewise. 2922 29232022-01-21 Jonathan Wakely <jwakely@redhat.com> 2924 2925 * include/std/version (__cpp_lib_shared_ptr_arrays): Fix 2926 condition for C++17 definition. 2927 29282022-01-21 Jonathan Wakely <jwakely@redhat.com> 2929 2930 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count): 2931 Add constexpr. 2932 (_Sp_atomic::_M_ptr): Add default member-initializer. 2933 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: 2934 Check constant initialization. 2935 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise. 2936 29372022-01-20 Jonathan Wakely <jwakely@redhat.com> 2938 2939 * src/c++11/cxx11-ios_failure.cc (__constinit): Define as 2940 equivalent attribute for Clang. 2941 * src/c++11/future.cc (__constinit): Likewise. 2942 * src/c++11/system_error.cc (__constinit): Likewise. 2943 * src/c++17/memory_resource.cc (__constinit): Likewise. 2944 29452022-01-20 Jonathan Wakely <jwakely@redhat.com> 2946 2947 * scripts/testsuite_flags.in: Only add src/filesystem/.libs and 2948 src/libbacktrace/.libs to LDFLAGS if those directories exist. 2949 29502022-01-19 Jonathan Wakely <jwakely@redhat.com> 2951 2952 * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4 2953 from default flags. 2954 * configure: Regenerate. 2955 29562022-01-19 Jonathan Wakely <jwakely@redhat.com> 2957 2958 PR libstdc++/104123 2959 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include 2960 <stddef.h>. 2961 29622022-01-19 Jonathan Wakely <jwakely@redhat.com> 2963 2964 * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to 2965 linker search paths. 2966 * src/Makefile.am: Fix src/debug/libbacktrace build. 2967 * src/Makefile.in: Regenerate. 2968 * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS 2969 variable. Use symlinks for the source files. 2970 * src/libbacktrace/Makefile.in: Regenerate. 2971 29722022-01-19 Matthias Kretz <m.kretz@gsi.de> 2973 2974 * include/experimental/bits/simd.h (__floating_point_flags): Do 2975 not rely on math_errhandling to expand to a constant expression. 2976 29772022-01-19 Jonathan Wakely <jwakely@redhat.com> 2978 2979 * doc/xml/manual/evolution.xml: Document deprecations. 2980 * doc/xml/manual/status_cxx2017.xml: Update status. 2981 * doc/html/*: Regenerate. 2982 29832022-01-19 Jonathan Wakely <jwakely@redhat.com> 2984 2985 * include/bits/stl_tempbuf.h (get_temporary_buffer): Change 2986 _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED. 2987 29882022-01-19 Jonathan Wakely <jwakely@redhat.com> 2989 2990 * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused 2991 function. 2992 29932022-01-19 Jonathan Wakely <jwakely@redhat.com> 2994 2995 PR libstdc++/104101 2996 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock): 2997 Only use __thread_relax if __cpp_lib_atomic_wait is defined. 2998 29992022-01-18 Jonathan Wakely <jwakely@redhat.com> 3000 3001 PR libstdc++/104099 3002 * include/bits/basic_string.h (basic_string(nullptr_t)): Only 3003 define for C++23. 3004 (operator=(nullptr_t)): Likewise. 3005 * include/bits/cow_string.h: Likewise. 3006 * include/std/string_view (basic_string_view(nullptr_t)): 3007 Likewise. 3008 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust 3009 expected error. Add examples that become ill-formed in C++23. 3010 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: 3011 Adjust expected errors. 3012 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc: 3013 Likewise. 3014 30152022-01-18 Jonathan Wakely <jwakely@redhat.com> 3016 3017 PR libstdc++/104098 3018 * include/bits/stl_iterator.h (reverse_iterator): Check 3019 __cpp_lib_concepts instead of __cplusplus. 3020 30212022-01-18 Jonathan Wakely <jwakely@redhat.com> 3022 3023 PR libstdc++/101124 3024 * include/bits/stl_pair.h (pair): Adjust constraints on 3025 deprecated constructors accepting literal zero as null pointer 3026 constant. Improve wording of deprecated attribute. 3027 * testsuite/20_util/pair/cons/99957.cc: Check that deprecated 3028 constructors do not cause ambiguities for copyable types. 3029 30302022-01-18 Jonathan Wakely <jwakely@redhat.com> 3031 3032 * include/bits/stl_function.h (ptr_fun): Fix suggestion for 3033 non-deprecated alternative. 3034 30352022-01-18 Tom Honermann <tom@honermann.net> 3036 3037 * acinclude.m4: Define config macros if uchar.h provides 3038 c8rtomb() and mbrtoc8(). 3039 * config.h.in: Regenerate. 3040 * configure: Regenerate. 3041 * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define. 3042 * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise. 3043 * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise. 3044 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc: 3045 New test. 3046 * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc: 3047 New test. 3048 30492022-01-18 Jonathan Wakely <jwakely@redhat.com> 3050 3051 * include/Makefile.am: Install new header. 3052 * include/Makefile.in: Regenerate. 3053 * include/c_compatibility/stdatomic.h: New file. 3054 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test. 3055 30562022-01-18 Jonathan Wakely <jwakely@redhat.com> 3057 3058 PR libstdc++/104080 3059 * src/c++17/fast_float/LOCAL_PATCHES: Update. 3060 * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN): 3061 Define in terms of __BYTE_ORDER__. 3062 30632022-01-18 Jonathan Wakely <jwakely@redhat.com> 3064 3065 PR libstdc++/104080 3066 * src/c++17/fast_float/LOCAL_PATCHES: UPDATE. 3067 * src/c++17/fast_float/fast_float.h (round): Use explicit 3068 template argument list for std::min. 3069 30702022-01-18 Jonathan Wakely <jwakely@redhat.com> 3071 3072 * doc/xml/manual/status_cxx2017.xml: Update C++17 status. 3073 * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for 3074 upcoming release. 3075 * doc/html/manual/status.html: Regenerate. 3076 30772022-01-18 Jonathan Wakely <jwakely@redhat.com> 3078 3079 * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve 3080 comments. 3081 * configure: Regenerate. 3082 30832022-01-17 Patrick Palka <ppalka@redhat.com> 3084 3085 * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT): 3086 Conditionally define, and use it to conditionally include 3087 fast_float. 3088 (from_chars): Use fast_float for float and double when 3089 USE_LIB_FAST_FLOAT. 3090 30912022-01-17 Patrick Palka <ppalka@redhat.com> 3092 3093 * src/c++17/fast_float/LOCAL_PATCHES: Update. 3094 * src/c++17/fast_float/fast_float.h (from_chars_advanced): In 3095 case of over/underflow, return errc::result_out_of_range and don't 3096 modify 'value'. 3097 30982022-01-17 Patrick Palka <ppalka@redhat.com> 3099 3100 * src/c++17/fast_float/LOCAL_PATCHES: Update. 3101 * src/c++17/fast_float/fast_float.h: Apply local modifications. 3102 31032022-01-17 Patrick Palka <ppalka@redhat.com> 3104 3105 * src/c++17/fast_float/LOCAL_PATCHES: New file. 3106 * src/c++17/fast_float/MERGE: New file. 3107 * src/c++17/fast_float/README.md: New file, copied from the 3108 fast_float repository. 3109 * src/c++17/fast_float/fast_float.h: New file, an amalgamation 3110 of the fast_float library. 3111 31122022-01-17 Patrick Palka <ppalka@redhat.com> 3113 3114 * src/c++17/floating_from_chars.cc: Include <bit>. 3115 (ascii_to_hexit, starts_with_ci): Conditionally define. 3116 (__floating_from_chars_hex): Conditionally define. 3117 (from_chars): Use __floating_from_chars_hex for 3118 chars_format::hex parsing of binary32/64 float/double. 3119 (testsuite/20_util/from_chars/7.cc): New test. 3120 * testsuite/20_util/from_chars/7.cc: New file. 3121 31222022-01-17 Jonathan Wakely <jwakely@redhat.com> 3123 3124 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro. 3125 * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE. 3126 * include/Makefile.am: Add new header. 3127 * include/Makefile.in: Regenerate. 3128 * include/std/stacktrace: New header. 3129 * include/std/version (__cpp_lib_stacktrace): Define. 3130 * Makefile.in: Regenerate. 3131 * config.h.in: Regenerate. 3132 * configure: Regenerate. 3133 * doc/Makefile.in: Regenerate. 3134 * libsupc++/Makefile.in: Regenerate. 3135 * po/Makefile.in: Regenerate. 3136 * python/Makefile.in: Regenerate. 3137 * src/Makefile.am: Regenerate. 3138 * src/Makefile.in: Regenerate. 3139 * src/c++11/Makefile.in: Regenerate. 3140 * src/c++17/Makefile.in: Regenerate. 3141 * src/c++20/Makefile.in: Regenerate. 3142 * src/c++98/Makefile.in: Regenerate. 3143 * src/filesystem/Makefile.in: Regenerate. 3144 * testsuite/Makefile.in: Regenerate. 3145 * src/libbacktrace/Makefile.am: New file. 3146 * src/libbacktrace/Makefile.in: New file. 3147 * src/libbacktrace/backtrace-rename.h: New file. 3148 * src/libbacktrace/backtrace-supported.h.in: New file. 3149 * src/libbacktrace/config.h.in: New file. 3150 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace): 3151 New proc. 3152 * testsuite/20_util/stacktrace/entry.cc: New test. 3153 * testsuite/20_util/stacktrace/synopsis.cc: New test. 3154 * testsuite/20_util/stacktrace/version.cc: New test. 3155 31562022-01-17 Jonathan Wakely <jwakely@redhat.com> 3157 3158 * doc/xml/manual/status_cxx2020.xml: Use final C++20 option 3159 names. 3160 * doc/html/manual/status.html: Regenerate. 3161 31622022-01-17 Jonathan Wakely <jwakely@redhat.com> 3163 3164 PR libstdc++/103650 3165 * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS. 3166 * include/Makefile.in: Regenerate. 3167 * testsuite/17_intro/headers/c++1998/103650.cc: New test. 3168 31692022-01-17 Matthias Kretz <m.kretz@gsi.de> 3170 3171 * include/experimental/bits/simd.h (__floating_point_flags): Do 3172 not rely on the presence of the math_errhandling macro. 3173 31742022-01-17 Jonathan Wakely <jwakely@redhat.com> 3175 3176 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename 3177 to qualified-id for dependent type. 3178 31792022-01-17 Jonathan Wakely <jwakely@redhat.com> 3180 3181 * doc/xml/manual/status_cxx2020.xml: Update. 3182 * doc/html/manual/status.html: Regenerate. 3183 31842022-01-17 Jonathan Wakely <jwakely@redhat.com> 3185 Thomas Rodgers <trodgers@redhat.com> 3186 3187 * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr): 3188 New macro. 3189 (_Sp_atomic): New class template. 3190 (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial 3191 specializations. 3192 * include/bits/shared_ptr_base.h (__shared_count, __weak_count) 3193 (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend. 3194 * include/std/version (__cpp_lib_atomic_shared_ptr): New macro. 3195 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New 3196 test. 3197 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test. 3198 31992022-01-15 Matthias Kretz <m.kretz@gsi.de> 3200 3201 * include/experimental/bits/simd.h: Move feature detection bools 3202 and add __have_avx512bitalg, __have_avx512vbmi2, 3203 __have_avx512vbmi, __have_avx512ifma, __have_avx512cd, 3204 __have_avx512vnni, __have_avx512vpopcntdq. 3205 (__detail::__machine_flags): New function which returns a unique 3206 uint64 depending on relevant -m and -f flags. 3207 (__detail::__odr_helper): New type alias for either an anonymous 3208 type or a type specialized with the __machine_flags number. 3209 (_SimdIntOperators): Change template parameters from _Impl to 3210 _Tp, _Abi because _Impl now has an __odr_helper parameter which 3211 may be _OdrEnforcer from the anonymous namespace, which makes 3212 for a bad base class. 3213 (many): Either add __odr_helper template parameter or mark as 3214 always_inline. 3215 * include/experimental/bits/simd_detail.h: Add defines for 3216 AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD, 3217 AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT. 3218 * include/experimental/bits/simd_builtin.h: Add __odr_helper 3219 template parameter or mark as always_inline. 3220 * include/experimental/bits/simd_fixed_size.h: Ditto. 3221 * include/experimental/bits/simd_math.h: Ditto. 3222 * include/experimental/bits/simd_scalar.h: Ditto. 3223 * include/experimental/bits/simd_neon.h: Add __odr_helper 3224 template parameter. 3225 * include/experimental/bits/simd_ppc.h: Ditto. 3226 * include/experimental/bits/simd_x86.h: Ditto. 3227 32282022-01-14 Uroš Bizjak <ubizjak@gmail.com> 3229 3230 * testsuite/22_locale/numpunct/members/char/3.cc: 3231 Require pt_PT locale instead of nl_NL. 3232 (test02): Use pt_PT locale instead of nl_NL. 3233 32342022-01-14 Jonathan Wakely <jwakely@redhat.com> 3235 3236 PR libstdc++/91260 3237 PR libstdc++/91383 3238 PR libstdc++/95065 3239 * include/backward/binders.h (bind1st, bind2nd): Add deprecated 3240 attribute. 3241 * include/bits/refwrap.h (_Maybe_unary_or_binary_function): 3242 Disable deprecated warnings for base classes. 3243 (_Reference_wrapper_base): Likewise. 3244 * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise. 3245 * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise. 3246 * include/bits/stl_function.h (unary_function, binary_function): 3247 Add deprecated attribute. 3248 (unary_negate, not1, binary_negate, not2, ptr_fun) 3249 (pointer_to_unary_function, pointer_to_binary_function) 3250 (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t) 3251 (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t) 3252 (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated 3253 attributes. 3254 * include/bits/stl_iterator.h: Disable deprecated warnings for 3255 std::iterator base classes. 3256 * include/bits/stl_iterator_base_types.h (iterator): Add 3257 deprecated attribute. 3258 * include/bits/stl_map.h (map::value_compare): Disable 3259 deprecated warnings for base class. 3260 * include/bits/stl_multimap.h (multimap::value_compare): 3261 Likewise. 3262 * include/bits/stl_raw_storage_iter.h (raw_storage_iterator): 3263 Add deprecated attribute. 3264 * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise. 3265 * include/bits/stream_iterator.h: Disable deprecated warnings. 3266 * include/bits/streambuf_iterator.h: Likewise. 3267 * include/ext/bitmap_allocator.h: Remove unary_function base 3268 classes. 3269 * include/ext/functional: Disable deprecated warnings. 3270 * include/ext/rope: Likewise. 3271 * include/ext/throw_allocator.h: Likewise. 3272 * include/std/type_traits (result_of): Add deprecated attribute. 3273 * include/tr1/functional: Disable deprecated warnings. 3274 * include/tr1/functional_hash.h: Likewise. 3275 * testsuite/20_util/function_objects/binders/1.cc: Add 3276 -Wno-disable-deprecations. 3277 * testsuite/20_util/function_objects/binders/3113.cc: Likewise. 3278 * testsuite/20_util/function_objects/constexpr.cc: Add 3279 dg-warning. 3280 * testsuite/20_util/raw_storage_iterator/base.cc: Likewise. 3281 * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise. 3282 * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc: 3283 Likewise. 3284 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc: 3285 Likewise. 3286 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc: 3287 Likewise. 3288 * testsuite/20_util/reference_wrapper/24803.cc: 3289 Likewise. 3290 * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for 3291 C++20 and check for absence of nested types. 3292 * testsuite/20_util/shared_ptr/comparison/less.cc: Remove 3293 std::binary_function base class. 3294 * testsuite/20_util/temporary_buffer.cc: Add dg-warning. 3295 * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove 3296 std::iterator base class. 3297 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc: 3298 Likewise. 3299 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc: 3300 Likewise. 3301 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc: 3302 Likewise. 3303 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc: 3304 Likewise. 3305 * testsuite/24_iterators/istreambuf_iterator/92285.cc: 3306 Likewise. 3307 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc: 3308 Likewise. 3309 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc: 3310 Likewise. 3311 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc: 3312 Likewise. 3313 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc: 3314 Likewise. 3315 * testsuite/25_algorithms/copy/34595.cc: 3316 Likewise. 3317 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function 3318 base class. 3319 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc: 3320 Disable deprecated warnings. 3321 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc: 3322 Likewise. 3323 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc: 3324 Likewise. 3325 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc: 3326 Likewise. 3327 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc: 3328 Likewise. 3329 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc: 3330 Likewise. 3331 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc: 3332 Likewise. 3333 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc: 3334 Likewise. 3335 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc: 3336 Likewise. 3337 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc: 3338 Likewise. 3339 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc: 3340 Likewise. 3341 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc: 3342 Likewise. 3343 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc: 3344 Likewise. 3345 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc: 3346 Likewise. 3347 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc: 3348 Likewise. 3349 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc: 3350 Likewise. 3351 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc: 3352 Likewise. 3353 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc: 3354 Likewise. 3355 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc: 3356 Likewise. 3357 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc: 3358 Likewise. 3359 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc: 3360 Likewise. 3361 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc: 3362 Likewise. 3363 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc: 3364 Likewise. 3365 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc: 3366 Likewise. 3367 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc: 3368 Likewise. 3369 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc: 3370 Likewise. 3371 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc: 3372 Likewise. 3373 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc: 3374 Likewise. 3375 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc: 3376 Likewise. 3377 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc: 3378 Likewise. 3379 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc: 3380 Likewise. 3381 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc: 3382 Likewise. 3383 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc: 3384 Likewise. 3385 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc: 3386 Likewise. 3387 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc: 3388 Likewise. 3389 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc: 3390 Likewise. 3391 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc: 3392 Likewise. 3393 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc: 3394 Likewise. 3395 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc: 3396 Likewise. 3397 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc: 3398 Likewise. 3399 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc: 3400 Likewise. 3401 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc: 3402 Likewise. 3403 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc: 3404 Likewise. 3405 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc: 3406 Likewise. 3407 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc: 3408 Likewise. 3409 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc: 3410 Likewise. 3411 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc: 3412 Likewise. 3413 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc: 3414 Likewise. 3415 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add 3416 dg-warning. 3417 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc: 3418 Likewise. 3419 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc: 3420 Likewise. 3421 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc: 3422 Disable deprecated warnings. 3423 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc: 3424 Likewise. 3425 * testsuite/util/regression/trait/erase_if_fn.hpp: Remove 3426 std::unary_function base classes. 3427 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper): 3428 Remove std::iterator base classes. 3429 34302022-01-14 Jonathan Wakely <jwakely@redhat.com> 3431 3432 * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type): 3433 Correct type of macro value. 3434 (shared_ptr): Add additional friend declarations. 3435 (make_shared, allocate_shared): Constrain existing overloads and 3436 remove static_assert. 3437 * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite): 3438 New macro. 3439 (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial 3440 specialization for use with make_shared_for_overwrite. 3441 (__cpp_lib_shared_ptr_arrays): Update value for C++20. 3442 (_Sp_counted_array_base): New class template. 3443 (_Sp_counted_array): New class template. 3444 (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)): 3445 New constructor for allocating shared arrays. 3446 (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise. 3447 * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct 3448 type. 3449 (__cpp_lib_shared_ptr_arrays): Update value for C++20. 3450 (__cpp_lib_smart_ptr_for_overwrite): New macro. 3451 * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust 3452 expected errors. 3453 * testsuite/20_util/shared_ptr/creation/array.cc: New test. 3454 * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test. 3455 * testsuite/20_util/shared_ptr/creation/version.cc: New test. 3456 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check 3457 feature test macro. Test non-trivial default-initialization. 3458 34592022-01-14 Jonathan Wakely <jwakely@redhat.com> 3460 3461 * include/bits/stl_construct.h (_Construct, _Construct_novalue): 3462 Also cast away cv-qualifiers when converting pointer to void. 3463 * testsuite/20_util/allocator/void.cc: Test construct function 3464 with cv-qualified types. 3465 34662022-01-14 Jonathan Wakely <jwakely@redhat.com> 3467 3468 PR libstdc++/103992 3469 * include/bits/stl_iterator.h (common_iterator): Use 3470 std::construct_at instead of placement new. 3471 * testsuite/24_iterators/common_iterator/1.cc: Check copy 3472 construction is usable in constant expressions. 3473 34742022-01-14 Jonathan Wakely <jwakely@redhat.com> 3475 3476 * doc/xml/manual/status_cxx2011.xml: Document new tokens 3477 accepted by std::random_device constructor. 3478 * doc/html/manual/status.html: Regenerate. 3479 34802022-01-12 Patrick Palka <ppalka@redhat.com> 3481 3482 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do 3483 directive. 3484 34852022-01-12 Patrick Palka <ppalka@redhat.com> 3486 3487 PR libstdc++/103955 3488 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex): 3489 Track the excess precision separately from the effective 3490 precision. Avoid overflow in bounds check by splitting it into 3491 two checks. 3492 (__floating_to_chars_precision): Avoid overflow in bounds checks 3493 similarly. 3494 * testsuite/20_util/to_chars/103955.cc: New test. 3495 34962022-01-11 Jonathan Wakely <jwakely@redhat.com> 3497 3498 PR libstdc++/103726 3499 * include/Makefile.am: Install <source_location> for 3500 freestanding. 3501 * include/Makefile.in: Regenerate. 3502 * include/std/version (__cpp_lib_source_location): Define for 3503 freestanding. 3504 35052022-01-11 Jonathan Wakely <jwakely@redhat.com> 3506 3507 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()): 3508 Add neoxcept (LWG 3593). 3509 35102022-01-11 Jonathan Wakely <jwakely@redhat.com> 3511 3512 * include/std/ranges (ranges::__detail::__box): Add constexpr to 3513 assignment operators (LWG 3572). 3514 * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a 3515 view that uses copyable-box. 3516 35172022-01-11 Jonathan Wakely <jwakely@redhat.com> 3518 3519 PR libstdc++/103726 3520 * include/Makefile.am: Install <coroutine> for freestanding. 3521 * include/Makefile.in: Regenerate. 3522 * include/std/coroutine: Adjust headers and preprocessor 3523 conditions. 3524 (__coroutine_traits_impl): Use concepts when available. 3525 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define. 3526 35272022-01-11 Jonathan Wakely <jwakely@redhat.com> 3528 3529 * include/std/ostream (operator<<(basic_ostream&, charT)): 3530 Use unformatted input if no padding is needed. 3531 (operator<<(basic_ostream<char>&, char)): Likewise. 3532 35332022-01-11 Jonathan Wakely <jwakely@redhat.com> 3534 3535 PR libstdc++/103891 3536 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS): 3537 Define. 3538 * include/std/variant (__cpp_lib_variant): Only define C++20 3539 value when the compiler is known to support conditionally 3540 trivial destructors. 3541 * include/std/version (__cpp_lib_variant): Likewise. 3542 35432022-01-11 Jonathan Wakely <jwakely@redhat.com> 3544 3545 * include/bits/stl_iterator.h (common_iterator): Add constexpr 3546 to all member functions (LWG 3574). 3547 * testsuite/24_iterators/common_iterator/1.cc: Evaluate some 3548 tests as constant expressions. 3549 * testsuite/24_iterators/common_iterator/2.cc: Likewise. 3550 35512022-01-10 Jakub Jelinek <jakub@redhat.com> 3552 3553 PR libstdc++/77760 3554 * include/bits/locale_facets_nonio.h (__time_get_state): New struct. 3555 (time_get::_M_extract_via_format): Declare new method with 3556 __time_get_state& as an extra argument. 3557 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add 3558 __state argument, set various fields in it while parsing. Handle %j, 3559 %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour 3560 for %p immediately. Add a wrapper around the method without the 3561 __state argument for backwards compatibility. 3562 (_M_extract_num): Remove all __len == 4 special cases. 3563 (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero 3564 initialize __state, pass it to _M_extract_via_format and finalize it 3565 at the end. 3566 (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068, 3567 69-99 to 1969-1999. For 3-4 digit parsed years use that as year. 3568 (get): If do_get isn't overloaded from the locale_facets_nonio.tcc 3569 version, don't call do_get but call _M_extract_via_format instead to 3570 pass around state. 3571 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format 3572 with extra __time_get_state and __time_get_state::_M_finalize_state. 3573 * src/c++98/locale_facets.cc (is_leap, day_of_the_week, 3574 day_of_the_year): New functions in anon namespace. 3575 (mon_yday): New var in anon namespace. 3576 (__time_get_state::_M_finalize_state): Define. 3577 * testsuite/22_locale/time_get/get/char/4.cc: New test. 3578 * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test. 3579 * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197 3580 as year 197AD instead of error. 3581 * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as 3582 year 2001 instead of error. 3583 * testsuite/22_locale/time_get/get_year/char/6.cc: New test. 3584 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse 3585 197 as year 197AD instead of error. 3586 * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse 3587 1 as year 2001 instead of error. 3588 * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test. 3589 35902022-01-10 Jonathan Wakely <jwakely@redhat.com> 3591 3592 PR libstdc++/103866 3593 * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do 3594 nothing for freestanding builds. 3595 (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS. 3596 * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured 3597 with --without-headers. Do not use GCC_HEADER_STDINT for 3598 freestanding builds. 3599 * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding 3600 for freestanding builds. 3601 * configure: Regenerate. 3602 * Makefile.in: Regenerate. 3603 * doc/Makefile.in: Regenerate. 3604 * include/Makefile.in: Regenerate. 3605 * libsupc++/Makefile.in: Regenerate. 3606 * po/Makefile.in: Regenerate. 3607 * python/Makefile.in: Regenerate. 3608 * src/Makefile.in: Regenerate. 3609 * src/c++11/Makefile.in: Regenerate. 3610 * src/c++17/Makefile.in: Regenerate. 3611 * src/c++20/Makefile.in: Regenerate. 3612 * src/c++98/Makefile.in: Regenerate. 3613 * src/filesystem/Makefile.in: Regenerate. 3614 * testsuite/Makefile.in: Regenerate. 3615 36162022-01-10 Jonathan Wakely <jwakely@redhat.com> 3617 3618 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc: 3619 Add dg-timeout-factor directive. 3620 * testsuite/28_regex/basic_regex/84110.cc: Likewise. 3621 * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise. 3622 * testsuite/28_regex/match_results/102667.cc: Likewise. 3623 36242022-01-10 Jonathan Wakely <jwakely@redhat.com> 3625 3626 * doc/xml/manual/using.xml: Update documentation around default 3627 -std option. 3628 * doc/html/*: Regenerate. 3629 36302022-01-10 Jonathan Wakely <jwakely@redhat.com> 3631 3632 PR libstdc++/100017 3633 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++. 3634 * src/c++17/Makefile.in: Regenerate. 3635 36362022-01-09 Sandra Loosemore <sandra@codesourcery.com> 3637 3638 * testsuite/18_support/type_info/constexpr.cc: Add explicit 3639 -fdelete-null-pointer-checks option. 3640 36412022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu> 3642 Jonathan Wakely <jwakely@redhat.com> 3643 3644 PR libstdc++/103853 3645 * include/bits/forward_list.tcc (forward_list::merge): Check for 3646 self-merge. 3647 * testsuite/23_containers/forward_list/operations/merge.cc: New test. 3648 36492022-01-06 Jonathan Wakely <jwakely@redhat.com> 3650 3651 * include/bits/regex.h (basic_regex, match_results): Qualify 3652 name in friend declaration, to work around Clang bug. 3653 36542022-01-06 Jonathan Wakely <jwakely@redhat.com> 3655 3656 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor. 3657 36582022-01-06 Jonathan Wakely <jwakely@redhat.com> 3659 3660 PR libstdc++/103911 3661 * include/std/charconv (__from_chars_alpha_to_num): Return 3662 char instead of unsigned char. Change invalid return value to 3663 127 instead of using numeric trait. 3664 (__from_chars_alnum): Fix comment. Do not use std::isdigit. 3665 Change type of variable to char. 3666 36672022-01-05 François Dumont <fdumont@gcc.gnu.org> 3668 3669 PR libstdc++/68303 3670 * include/bits/hashtable_policy.h 3671 (_Hashtable_hash_traits<_Hash>): New. 3672 (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New. 3673 (_Hashtable_base<>::_M_key_equals): New. 3674 (_Hashtable_base<>::_M_equals): Use latter. 3675 (_Hashtable_base<>::_M_key_equals_tr): New. 3676 (_Hashtable_base<>::_M_equals_tr): Use latter. 3677 * include/bits/hashtable.h 3678 (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits. 3679 (_Hashtable<>::find): Loop through elements to look for key if size is lower 3680 than __small_size_threshold(). 3681 (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise. 3682 (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise. 3683 (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New. 3684 (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter. 3685 (_Hashtable<>::_M_find_before_node(const key_type&)): New. 3686 (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter. 3687 (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise. 3688 * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>. 3689 * testsuite/util/testsuite_performance.h 3690 (report_performance): Use 9 width to display memory. 3691 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc: 3692 New performance test case. 3693 36942022-01-05 Jonathan Wakely <jwakely@redhat.com> 3695 3696 PR libstdc++/103919 3697 * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)): 3698 Relax constraints on string_view parameter. 3699 * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)): 3700 Likewise. 3701 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test. 3702 37032022-01-05 Jonathan Wakely <jwakely@redhat.com> 3704 3705 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for 3706 ARM EABI. 3707 * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define. 3708 * include/std/version (__cpp_lib_constexpr_typeinfo): Define. 3709 * libsupc++/tinfo.cc: Add #error to ensure non-inline definition 3710 is emitted. 3711 (type_info::__equal): Define alias symbol. 3712 * libsupc++/typeinfo (type_info::before): Combine different 3713 implementations into one. 3714 (type_info::operator==): Likewise. Use address equality for 3715 constant evaluation. Call __equal for targets that require the 3716 definition to be non-inline. 3717 * testsuite/18_support/type_info/constexpr.cc: New test. 3718 37192022-01-05 Jonathan Wakely <jwakely@redhat.com> 3720 3721 * src/c++11/cxx11-ios_failure.cc (io_error_category): Define 3722 class and virtual functions as 'final'. 3723 (io_category_instance): Use constinit union to make the object 3724 immortal. 3725 * src/c++11/future.cc (future_error_category): Define class and 3726 virtual functions as 'final'. 3727 (future_category_instance): Use constinit union. 3728 37292022-01-05 Jonathan Wakely <jwakely@redhat.com> 3730 3731 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip 3732 versioned namespace from the type name that is printed. 3733 37342022-01-05 Jonathan Wakely <jwakely@redhat.com> 3735 3736 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New 3737 printer for std::regex NFA states. 3738 37392022-01-05 Jonathan Wakely <jwakely@redhat.com> 3740 3741 * testsuite/23_containers/forward_list/operations/1.cc: Fill in 3742 placeholders in comments. 3743 * testsuite/23_containers/forward_list/operations/2.cc: 3744 Likewise. 3745 * testsuite/23_containers/forward_list/operations/3.cc: 3746 Likewise. 3747 * testsuite/23_containers/forward_list/operations/4.cc: 3748 Likewise. 3749 * testsuite/23_containers/forward_list/operations/5.cc: 3750 Likewise. 3751 * testsuite/23_containers/forward_list/operations/6.cc: 3752 Likewise. 3753 * testsuite/23_containers/forward_list/operations/7.cc: 3754 Likewise. 3755 37562022-01-05 Jonathan Wakely <jwakely@redhat.com> 3757 3758 PR libstdc++/103848 3759 * include/bits/stl_deque.h (operator-): Do not use 0 as null 3760 pointer constant. 3761 37622022-01-05 Jonathan Wakely <jwakely@redhat.com> 3763 3764 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>): 3765 Use std::_Construct for construct. 3766 37672022-01-05 Jonathan Wakely <jwakely@redhat.com> 3768 3769 PR libstdc++/103877 3770 * doc/xml/faq.xml: Add '-x c++' to preprocessor command. 3771 * doc/html/faq.html: Regenerate. 3772 37732022-01-05 Jonathan Wakely <jwakely@redhat.com> 3774 3775 * include/bits/regex.h (__regex_algo_impl): Change __policy and 3776 __match_mode template parameters to be function parameters. 3777 (regex_match, regex_search): Pass policy and match mode as 3778 function arguments. 3779 * include/bits/regex.tcc (__regex_algo_impl): Change template 3780 parameters to function parameters. 3781 * include/bits/regex_compiler.h (_RegexTranslatorBase): Use 3782 'if constexpr' for conditions using template parameters. 3783 (_RegexTranslator): Likewise. 3784 * include/bits/regex_executor.tcc (_Executor::_M_handle_accept): 3785 Likewise. 3786 * testsuite/util/testsuite_regex.h (regex_match_debug) 3787 (regex_search_debug): Move template arguments to function 3788 arguments. 3789 37902022-01-05 Jonathan Wakely <jwakely@redhat.com> 3791 3792 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare 3793 results even if the match failed. 3794 37952022-01-05 Jonathan Wakely <jwakely@redhat.com> 3796 3797 * include/bits/regex_compiler.tcc: Adjust all calls to 3798 __throw_regex_error. 3799 * include/bits/regex_error.h (__throw_regex_error): Add noreturn 3800 attribute. 3801 * include/bits/regex_scanner.tcc: Likewise. 3802 * src/c++11/regex.cc (desc): New helper function. 3803 (regex_error::regex_error(error_type)): Use desc to get a string 3804 corresponding to the error code. 3805 3806 3807Copyright (C) 2022 Free Software Foundation, Inc. 3808 3809Copying and distribution of this file, with or without modification, 3810are permitted in any medium without royalty provided the copyright 3811notice and this notice are preserved. 3812