12024-06-20 Release Manager 2 3 * GCC 12.4.0 released. 4 52024-06-17 Jonathan Wakely <jwakely@redhat.com> 6 7 Backported from master: 8 2024-06-14 Jonathan Wakely <jwakely@redhat.com> 9 10 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Fix declaration of 11 posix_memalign. 12 132024-06-11 Tianqiang Shuai <1101282468@qq.com> 14 15 Backported from master: 16 2023-07-06 Tianqiang Shuai <1101282468@qq.com> 17 18 * config/io/basic_file_stdio.cc (xwrite) [USE_STDIO_PURE]: Fix 19 first argument. 20 212024-06-11 Jonathan Wakely <jwakely@redhat.com> 22 23 Backported from master: 24 2023-03-22 Jonathan Wakely <jwakely@redhat.com> 25 26 * include/std/utility (__cpp_lib_constexpr_algorithms): Define, 27 as per LWG 3792. 28 * testsuite/20_util/exchange/constexpr.cc: Check for it. 29 302024-06-11 Jonathan Wakely <jwakely@redhat.com> 31 32 Backported from master: 33 2023-02-16 Jonathan Wakely <jwakely@redhat.com> 34 35 * include/bits/fs_ops.h (create_directory): Use reserved name 36 for parameter. 37 * include/bits/regex_automaton.h (_State_base::_M_print): 38 Likewise. 39 * include/bits/regex_automaton.tcc(_State_base::_M_print): 40 Likewise. 41 * include/bits/regex_scanner.tcc(_Scanner::_M_print): Likewise. 42 * include/experimental/bits/fs_ops.h (create_directory): 43 Likewise. 44 * include/std/mutex (timed_mutex::_M_clocklock): Likewise. 45 (recursive_timed_mutex:_M_clocklock): Likewise. 46 * libsupc++/cxxabi_init_exception.h 47 (__cxa_init_primary_exception): Likewise. 48 * testsuite/17_intro/names.cc: Add checks. 49 502024-06-11 Jonathan Wakely <jwakely@redhat.com> 51 52 Backported from master: 53 2024-02-02 Jonathan Wakely <jwakely@redhat.com> 54 55 * include/experimental/internet (network_v6::network): Define. 56 (network_v6::hosts): Finish implementing. 57 (network_v6::to_string): Do not concatenate std::string to 58 arbitrary std::basic_string specialization. 59 * testsuite/experimental/net/internet/network/v6/cons.cc: New 60 test. 61 622024-06-11 Jonathan Wakely <jwakely@redhat.com> 63 64 Backported from master: 65 2023-06-09 Jonathan Wakely <jwakely@redhat.com> 66 67 PR libstdc++/100285 68 * include/experimental/internet [IPPROTO_TCP || IPPROTO_UDP] 69 (basic_endpoint, basic_resolver_entry, resolver_base) 70 (basic_resolver_results, basic_resolver): Only define if the tcp 71 or udp protocols will be defined. 72 732024-06-11 Jonathan Wakely <jwakely@redhat.com> 74 75 Backported from master: 76 2023-07-05 Jonathan Wakely <jwakely@redhat.com> 77 78 PR libstdc++/110542 79 * include/bits/stl_uninitialized.h (__uninitialized_default_n): 80 Do not use std::fill_n during constant evaluation. 81 822024-06-11 Jonathan Wakely <jwakely@redhat.com> 83 84 Backported from master: 85 2024-04-10 Jonathan Wakely <jwakely@redhat.com> 86 87 * testsuite/27_io/manipulators/extended/get_time/char/2.cc: 88 Adjust input string so that it matches %a with or without a 89 trailing period. 90 912024-06-11 Jonathan Wakely <jwakely@redhat.com> 92 93 Backported from master: 94 2024-03-19 Jonathan Wakely <jwakely@redhat.com> 95 96 PR libstdc++/114359 97 * include/bits/random.tcc (binomial_distribution::param_type): 98 Ensure arithmetic is done as type double. 99 * testsuite/26_numerics/random/binomial_distribution/114359.cc: New test. 100 1012024-06-11 Jonathan Wakely <jwakely@redhat.com> 102 103 Backported from master: 104 2024-03-19 Jonathan Wakely <jwakely@redhat.com> 105 106 PR libstdc++/114367 107 * include/bits/stl_bvector.h (_M_allocate): Use allocator's 108 construct function to begin lifetime of words. 109 1102024-06-11 Jonathan Wakely <jwakely@redhat.com> 111 112 Backported from master: 113 2024-04-03 Jonathan Wakely <jwakely@redhat.com> 114 115 PR libstdc++/104606 116 * include/std/optional (operator<=>(const optional<T>&, const U&)): 117 Reverse order of three_way_comparable_with template arguments. 118 * testsuite/20_util/optional/relops/104606.cc: New test. 119 1202024-06-11 Jonathan Wakely <jwakely@redhat.com> 121 122 Backported from master: 123 2024-03-22 Jonathan Wakely <jwakely@redhat.com> 124 125 PR libstdc++/114401 126 * include/bits/hashtable.h (_Hashtable::_M_reinsert_node): Call 127 release() on node handle instead of just zeroing its pointer. 128 (_Hashtable::_M_reinsert_node_multi): Likewise. 129 (_Hashtable::_M_merge_unique): Likewise. 130 (_Hashtable::_M_merge_multi): Likewise. 131 * include/bits/node_handle.h (_Node_handle_common::release()): 132 New member function. 133 (_Node_handle_common::_Optional_alloc::_M_empty): Remove 134 unnecessary union member. 135 (_Node_handle_common): Declare _Hashtable as a friend. 136 * include/bits/stl_tree.h (_Rb_tree::_M_reinsert_node_unique): 137 Call release() on node handle instead of just zeroing its 138 pointer. 139 (_Rb_tree::_M_reinsert_node_equal): Likewise. 140 (_Rb_tree::_M_reinsert_node_hint_unique): Likewise. 141 (_Rb_tree::_M_reinsert_node_hint_equal): Likewise. 142 * testsuite/23_containers/multiset/modifiers/114401.cc: New test. 143 * testsuite/23_containers/set/modifiers/114401.cc: New test. 144 * testsuite/23_containers/unordered_multiset/modifiers/114401.cc: New test. 145 * testsuite/23_containers/unordered_set/modifiers/114401.cc: New test. 146 1472024-06-01 Jonathan Wakely <jwakely@redhat.com> 148 149 Backported from master: 150 2024-06-01 Jonathan Wakely <jwakely@redhat.com> 151 152 PR libstdc++/115269 153 * doc/xml/manual/using.xml: Replace link to gcc-4.3.2 docs. 154 Replace list of -std=... options with a single entry for -std. 155 * doc/html/manual/using.html: Regenerate. 156 1572024-05-08 Matthias Kretz <m.kretz@gsi.de> 158 159 Backported from master: 160 2024-04-22 Matthias Kretz <m.kretz@gsi.de> 161 162 PR libstdc++/114803 163 * include/experimental/bits/simd_builtin.h 164 (_SimdBase2::operator __vector_type_t): There is no __builtin() 165 function in _SimdWrapper, instead use its conversion operator. 166 * testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc: New 167 test. 168 1692024-05-08 Matthias Kretz <m.kretz@gsi.de> 170 171 Backported from master: 172 2024-04-22 Matthias Kretz <m.kretz@gsi.de> 173 174 * include/experimental/bits/simd.h: Ignore -Wnarrowing for 175 arm_neon.h. 176 (__int_for_sizeof): Replace tautological compare with checking 177 for invalid template parameter value. 178 * include/experimental/bits/simd_builtin.h (__extract_part): 179 Remove tautological compare by combining two static_assert. 180 1812024-05-08 Matthias Kretz <m.kretz@gsi.de> 182 183 Backported from master: 184 2024-04-17 Matthias Kretz <m.kretz@gsi.de> 185 186 * include/experimental/bits/numeric_traits.h: Add include guard. 187 1882024-05-08 Matthias Kretz <m.kretz@gsi.de> 189 190 Backported from master: 191 2024-04-17 Matthias Kretz <m.kretz@gsi.de> 192 193 PR libstdc++/114750 194 * include/experimental/bits/simd_builtin.h 195 (_SimdImplBuiltin::_S_load, _S_store): Fall back to copying 196 scalars if the memory type cannot be vectorized for the target. 197 1982024-05-08 Matthias Kretz <m.kretz@gsi.de> 199 200 Backported from master: 201 2024-03-27 Matthias Kretz <m.kretz@gsi.de> 202 203 * include/experimental/bits/simd_x86.h (_S_masked_unary): 204 Cast inputs < 16 bytes to 16 byte vectors before calling the 205 right subtraction builtin. Before returning, truncate to the 206 return vector type. 207 2082024-05-08 Matthias Kretz <m.kretz@gsi.de> 209 210 Backported from master: 211 2024-03-27 Matthias Kretz <m.kretz@gsi.de> 212 213 * include/experimental/bits/simd_x86.h (_S_masked_unary): Call 214 the 4- and 8-byte variants of __builtin_ia32_subp[ds] without 215 rounding direction argument. 216 2172024-05-08 Matthias Kretz <m.kretz@gsi.de> 218 219 Backported from master: 220 2023-06-06 Matthias Kretz <m.kretz@gsi.de> 221 222 PR libstdc++/109822 223 * include/experimental/bits/simd_builtin.h (_S_store): Rewrite 224 to avoid casts to other vector types. Implement store as 225 succession of power-of-2 sized memcpy to avoid PR90424. 226 2272024-05-08 Matthias Kretz <m.kretz@gsi.de> 228 229 Backported from master: 230 2023-06-06 Matthias Kretz <m.kretz@gsi.de> 231 232 PR libstdc++/110054 233 * include/experimental/bits/simd_builtin.h (_S_masked_store): 234 Call into deduced ABI's SimdImpl after conversion. 235 * include/experimental/bits/simd_x86.h (_S_masked_store_nocvt): 236 Don't use _mm_maskmoveu_si128. Use the generic fall-back 237 implementation. Also fix masked stores without SSE2, which 238 were not doing anything before. 239 2402024-05-08 Matthias Kretz <m.kretz@gsi.de> 241 242 Backported from master: 243 2023-06-06 Matthias Kretz <m.kretz@gsi.de> 244 245 * include/experimental/bits/simd.h (__bit_cast): Use 246 __gnu__::__vector_size__ instead of gnu::vector_size. 247 2482024-04-21 Iain Sandoe <iain@sandoe.co.uk> 249 250 Backported from master: 251 2024-02-19 Iain Sandoe <iain@sandoe.co.uk> 252 Jonathan Wakely <jwakely@redhat.com> 253 254 PR target/112397 255 * configure: Regenerate. 256 * configure.ac: Detect if we are building for Darwin. 257 * libsupc++/Makefile.am: If we are building for Darwin, then 258 suppress hot/cold partitioning for the array allocators. 259 * libsupc++/Makefile.in: Regenerated. 260 2612024-04-21 Iain Sandoe <iain@sandoe.co.uk> 262 263 Backported from master: 264 2024-03-19 Iain Sandoe <iain@sandoe.co.uk> 265 266 * testsuite/lib/dg-options.exp (atomic_link_flags): Emit a -B 267 option for the path to the uninstalled libatomic. 268 2692024-04-21 Iain Sandoe <iain@sandoe.co.uk> 270 271 Backported from master: 272 2024-03-19 Iain Sandoe <iain@sandoe.co.uk> 273 274 * testsuite/lib/libstdc++.exp (v3_target_compile): Instead of 275 /dev/null, use a temporary file for test executables on Darwin. 276 2772024-04-18 Iain Sandoe <iain@sandoe.co.uk> 278 279 Backported from master: 280 2022-12-04 Iain Sandoe <iain@sandoe.co.uk> 281 282 * config/os/bsd/darwin/os_defines.h 283 (_GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC): Limit use of this macro 284 to OS versions that need it. 285 2862024-03-18 Jonathan Wakely <jwakely@redhat.com> 287 288 Backported from master: 289 2023-05-12 Jonathan Wakely <jwakely@redhat.com> 290 291 * testsuite/experimental/feat-cxx14.cc: Remove dependency on 292 _GLIBCXX_USE_C99_STDINT_TR1. 293 2942024-03-18 Jonathan Wakely <jwakely@redhat.com> 295 296 Backported from master: 297 2023-05-12 Jonathan Wakely <jwakely@redhat.com> 298 299 * testsuite/21_strings/basic_string_view/typedefs.cc: Remove 300 dependency on _GLIBCXX_USE_C99_STDINT_TR1. 301 * testsuite/experimental/string_view/typedefs.cc: Likewise. 302 3032024-03-18 Jonathan Wakely <jwakely@redhat.com> 304 305 Backported from master: 306 2023-09-11 Jonathan Wakely <jwakely@redhat.com> 307 308 * src/c++11/Makefile.am: Add new file. 309 * src/c++11/Makefile.in: Regenerate. 310 * src/c++11/debug.cc (__glibcxx_assert_fail): Move to ... 311 * src/c++11/assert_fail.cc: New file. 312 3132024-03-18 Jonathan Wakely <jwakely@redhat.com> 314 315 Backported from master: 316 2023-06-26 Jonathan Wakely <jwakely@redhat.com> 317 318 * include/bits/iterator_concepts.h (projected): Replace class 319 template with alias template denoting an ADL-proofed helper. 320 (incremental_traits<projected<Iter, Proj>>): Remove. 321 * testsuite/24_iterators/indirect_callable/projected-adl.cc: 322 New test. 323 3242024-03-18 Jonathan Wakely <jwakely@redhat.com> 325 326 Backported from master: 327 2023-04-27 Jonathan Wakely <jwakely@redhat.com> 328 329 PR libstdc++/40380 330 * include/bits/basic_string.h: Improve doxygen comments. 331 * include/bits/cow_string.h: Likewise. 332 * include/bits/forward_list.h: Likewise. 333 * include/bits/fs_dir.h: Likewise. 334 * include/bits/fs_path.h: Likewise. 335 * include/bits/quoted_string.h: Likewise. 336 * include/bits/stl_bvector.h: Likewise. 337 * include/bits/stl_map.h: Likewise. 338 * include/bits/stl_multimap.h: Likewise. 339 * include/bits/stl_multiset.h: Likewise. 340 * include/bits/stl_set.h: Likewise. 341 * include/bits/stl_vector.h: Likewise. 342 * include/bits/unordered_map.h: Likewise. 343 * include/bits/unordered_set.h: Likewise. 344 * include/std/filesystem: Likewise. 345 * include/std/iomanip: Likewise. 346 3472024-03-18 Jonathan Wakely <jwakely@redhat.com> 348 349 Backported from master: 350 2022-11-19 Jonathan Wakely <jwakely@redhat.com> 351 352 * include/bits/ptr_traits.h (pointer_traits::pointer_to): Rename 353 parameter. 354 3552024-03-18 Jonathan Wakely <jwakely@redhat.com> 356 357 Backported from master: 358 2022-11-21 Jonathan Wakely <jwakely@redhat.com> 359 360 * include/std/tuple: Add better Doxygen comments. 361 3622024-03-18 Jonathan Wakely <jwakely@redhat.com> 363 364 Backported from master: 365 2022-11-08 Jonathan Wakely <jwakely@redhat.com> 366 367 * testsuite/18_support/new_nothrow.cc: Add missing noexcept 368 to operator delete replacements. 369 * testsuite/20_util/any/cons/92156.cc: Disable 370 -Winit-list-lifetime warnings from instantiating invalid 371 specialization of manager function. 372 * testsuite/20_util/any/modifiers/92156.cc: Likewise. 373 * testsuite/20_util/default_delete/void_neg.cc: Prune additional 374 diagnostics. 375 * testsuite/20_util/headers/memory/synopsis.cc: Add missing 376 noexcept. 377 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Prune 378 additional diagnostic. 379 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Add 380 missing noexcept to operator delete replacements. 381 * testsuite/21_strings/basic_string/cons/char/103919.cc: 382 Likewise. 383 * testsuite/23_containers/map/modifiers/emplace/92300.cc: 384 Likewise. 385 * testsuite/23_containers/map/modifiers/insert/92300.cc: 386 Likewise. 387 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: 388 Add missing noexcept to synopsis declarations. 389 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: 390 Likewise. 391 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: 392 Likewise. 393 3942024-03-18 Jonathan Wakely <jwakely@redhat.com> 395 396 Backported from master: 397 2022-09-21 Jonathan Wakely <jwakely@redhat.com> 398 399 * testsuite/20_util/headers/memory/synopsis.cc: Add declarations 400 from C++11 and later. 401 4022024-03-18 Jonathan Wakely <jwakely@redhat.com> 403 404 Backported from master: 405 2022-11-08 Jonathan Wakely <jwakely@redhat.com> 406 407 * include/bits/stl_tempbuf.h (_Temporary_buffer): Disable 408 warnings about get_temporary_buffer being deprecated. 409 * include/ext/functional (mem_fun1, mem_fun1_ref): Disable 410 warnings about mem_fun1_t, const_mem_fun1_t, mem_fun1_ref_t and 411 const_mem_fun1_ref_t being deprecated. 412 * include/std/spanstream (basic_spanbuf::setbuf): Add assertion 413 and adjust to avoid narrowing warning. 414 * libsupc++/exception_ptr.h [!__cpp_rtti && !__cpp_exceptions] 415 (make_exception_ptr): Add missing inline specifier. 416 4172024-03-18 Jonathan Wakely <jwakely@redhat.com> 418 419 Backported from master: 420 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 421 422 * doc/doxygen/user.cfg.in (PREDEFINED): Define 423 _GTHREAD_USE_MUTEX_TIMEDLOCK macro. 424 * include/bits/std_mutex.h (mutex, lock_guard): Use @since and 425 @headerfile. 426 * include/bits/unique_lock.h (unique_lock): Likewise. 427 * include/std/mutex (recursive_mutex, timed_mutex) 428 (recursive_timed_mutex, scoped_lock): Likewise. 429 4302024-03-18 Jonathan Wakely <jwakely@redhat.com> 431 432 Backported from master: 433 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 434 435 * doc/doxygen/user.cfg.in (PREDEFINED): Define 436 _GLIBCXX23_CONSTEXPR macro. 437 * include/backward/auto_ptr.h (auto_ptr): Use @deprecated. 438 * include/bits/unique_ptr.h (default_delete): Use @since and 439 @headerfile. 440 * include/std/scoped_allocator: Remove @ingroup from @file 441 block. 442 4432024-03-18 Jonathan Wakely <jwakely@redhat.com> 444 445 Backported from master: 446 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 447 448 * include/bits/ostream_insert.h: Mark helper functions as 449 undocumented by Doxygen. 450 * include/bits/stl_algo.h: Use markdown for formatting and mark 451 helper functions as undocumented. 452 * include/bits/stl_numeric.h: Likewise. 453 * include/bits/stl_pair.h (pair): Add @headerfile. 454 4552024-03-18 Jonathan Wakely <jwakely@redhat.com> 456 457 Backported from master: 458 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 459 460 * doc/doxygen/user.cfg.in (PREDEFINED): Define __allocator_base 461 so that Doxygen shows the right base-class for std::allocator. 462 * include/bits/alloc_traits.h: Improve doxygen docs. 463 * include/bits/allocator.h: Likewise. 464 * include/bits/new_allocator.h: Likewise. 465 * include/ext/new_allocator.h: Likewise. 466 4672024-03-18 Jonathan Wakely <jwakely@redhat.com> 468 469 Backported from master: 470 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 471 472 * doc/doxygen/user.cfg.in (PREDEFINED): Define macro 473 _GLIBCXX_DOXYGEN_ONLY to expand its argument. 474 * include/bits/c++config (_GLIBCXX_DOXYGEN_ONLY): Define. 475 * include/bits/regex.h: Improve doxygen docs. 476 * include/bits/regex_constants.h: Likewise. 477 * include/bits/regex_error.h: Likewise. 478 4792024-03-18 Jonathan Wakely <jwakely@redhat.com> 480 481 Backported from master: 482 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 483 484 * include/std/atomic: Suppress doxygen docs for 485 implementation details. 486 * include/bits/atomic_base.h: Likewise. 487 * include/bits/shared_ptr_atomic.h: Use markdown. Fix grouping 488 so that std::atomic is not added to the pointer abstractions 489 group. 490 4912024-03-18 Jonathan Wakely <jwakely@redhat.com> 492 493 Backported from master: 494 2022-05-17 Jonathan Wakely <jwakely@redhat.com> 495 496 * src/Makefile.am [ENABLE_SYMVERS_GNU_NAMESPACE] (cxx11_sources): 497 Do not build the compatibility*-c++0x.cc objects. 498 * src/Makefile.in: Regenerate. 499 * src/c++11/compatibility-c++0x.cc [_GLIBCXX_INLINE_VERSION]: 500 Refuse to build for the versioned namespace. 501 * src/c++11/compatibility-chrono.cc: Likewise. 502 * src/c++11/compatibility-condvar.cc: Likewise. 503 * src/c++11/compatibility-thread-c++0x.cc: Likewise. 504 * src/c++11/chrono.cc (system_clock, steady_clock): 505 Use macros to define in inline namespace _V2, matching the 506 declarations in <system_error>. 507 * src/c++11/system_error.cc (system_category, generic_category): 508 Likewise. 509 5102024-03-18 Jonathan Wakely <jwakely@redhat.com> 511 512 Backported from master: 513 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 514 515 * doc/doxygen/user.cfg.in (PREDEFINED): Expand new macros to 516 nothing. 517 * include/bits/c++config (_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE) 518 (_GLIBCXX_END_INLINE_ABI_NAMESPACE): Define new macros. 519 * include/bits/algorithmfwd.h (_V2::__rotate): Use new macros 520 for the namespace. 521 * include/bits/chrono.h (chrono::_V2::system_clock): Likewise. 522 * include/bits/stl_algo.h (_V2::__rotate): Likewise. 523 * include/std/condition_variable (_V2::condition_variable_any): 524 Likewise. 525 * include/std/system_error (_V2::error_category): Likewise. 526 5272024-03-18 Jonathan Wakely <jwakely@redhat.com> 528 529 Backported from master: 530 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 531 532 * doc/doxygen/user.cfg.in (GROUP_NESTED_COMPOUNDS): Set to NO. 533 (CLASS_DIAGRAMS): Remove obsolete option. 534 5352024-03-18 Jonathan Wakely <jwakely@redhat.com> 536 537 Backported from master: 538 2022-06-27 Jonathan Wakely <jwakely@redhat.com> 539 540 * include/bits/fs_path.h (__is_path_iter_src): Replace class 541 template with variable template. 542 5432024-03-18 Jonathan Wakely <jwakely@redhat.com> 544 545 Backported from master: 546 2022-09-26 Jonathan Wakely <jwakely@redhat.com> 547 548 * include/bits/ptr_traits.h (__ptr_traits_elem) [__cpp_concepts]: 549 Also define the __ptr_traits_elem class template for the 550 concepts case. 551 (pointer_traits<Ptr>): Remove constrained partial 552 specialization. 553 * testsuite/20_util/pointer_traits/lwg3545.cc: Check for 554 ambiguitiy with program-defined partial specialization. 555 5562024-03-18 Jonathan Wakely <jwakely@redhat.com> 557 558 Backported from master: 559 2022-09-24 Jonathan Wakely <jwakely@redhat.com> 560 561 * include/bits/alloc_traits.h (allocator_traits::is_always_equal): 562 Only instantiate is_empty if needed. 563 * include/bits/ptr_traits.h (__ptr_traits_impl::difference_type) 564 (__ptr_traits_impl::rebind): Use __detected_or. 565 * include/experimental/type_traits (is_same_v): Add a partial 566 specialization instead of instantiating the std::is_same class 567 template. 568 (detected_t): Redefine in terms of detected_or_t. 569 (is_detected, is_detected_v): Redefine in terms of detected_t. 570 * include/std/type_traits [__cpp_concepts] (__detected_or): Add 571 new definition using concepts. 572 (__detector::value_t): Rename to __is_detected. 573 * testsuite/17_intro/names.cc: Check value_t isn't used. 574 5752024-03-18 Jonathan Wakely <jwakely@redhat.com> 576 577 Backported from master: 578 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 579 580 * include/bits/ptr_traits.h: Add some doxygen comments. 581 5822024-03-18 Xi Ruoyao <xry111@xry111.site> 583 584 Backported from master: 585 2022-06-24 Xi Ruoyao <xry111@xry111.site> 586 587 * scripts/extract_symvers.in: Use grep -E instead of egrep. 588 * scripts/run_doxygen: Likewise. 589 5902024-03-18 Jonathan Wakely <jwakely@redhat.com> 591 592 Backported from master: 593 2022-10-28 Jonathan Wakely <jwakely@redhat.com> 594 595 PR libstdc++/107376 596 * include/bits/regex_executor.h (_Executor::_Executor): Use same 597 allocator for _M_cur_results and _M_results. 598 * include/bits/regex_executor.tcc (_Executor::_M_main_dispatch): 599 Prevent possibly incorrect allocator propagating to 600 _M_cur_results. 601 * testsuite/28_regex/algorithms/regex_match/107376.cc: New test. 602 6032024-03-18 Jonathan Wakely <jwakely@redhat.com> 604 605 Backported from master: 606 2023-02-02 Jonathan Wakely <jwakely@redhat.com> 607 608 * include/std/sstream (basic_stringbuf::view): Define for old 609 std::string ABI. 610 (basic_istringstream::view, basic_stringstream::view) 611 (basic_stringstream::view): Likewise. 612 * testsuite/27_io/basic_istringstream/view/char/1.cc: Remove 613 { dg-require-effective-target cxx11_abi }. 614 * testsuite/27_io/basic_istringstream/view/wchar_t/1.cc: 615 Likewise. 616 * testsuite/27_io/basic_ostringstream/view/char/1.cc: Likewise. 617 * testsuite/27_io/basic_ostringstream/view/wchar_t/1.cc: 618 Likewise. 619 * testsuite/27_io/basic_stringbuf/view/char/1.cc: Likewise. 620 * testsuite/27_io/basic_stringbuf/view/wchar_t/1.cc: Likewise. 621 * testsuite/27_io/basic_stringstream/view/char/1.cc: Likewise. 622 * testsuite/27_io/basic_stringstream/view/wchar_t/1.cc: 623 Likewise. 624 6252024-03-18 Jonathan Wakely <jwakely@redhat.com> 626 627 Backported from master: 628 2023-09-07 Jonathan Wakely <jwakely@redhat.com> 629 630 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for mkdir, 631 chmod, chdir, and getcwd. 632 * config.h.in: Regenerate. 633 * configure: Regenerate. 634 * src/c++17/fs_ops.cc (create_dir): Use USE_MKDIR macro. 635 (fs::current_path): Use USE_GETCWD and USE_CHDIR macros. 636 (fs::permissions): Use USE_CHMOD macro. 637 * src/filesystem/ops-common.h [FILESYSTEM_IS_WINDOWS] 638 (chmod, mkdir, getcwd, chdir): Define new macros. 639 [FILESYSTEM_IS_WINDOWS] (chmod, mkdir, getcwd, chdir): Use 640 new macros. 641 * src/filesystem/ops.cc (create_dir): Use USE_MKDIR macro. 642 (fs::current_path): Use USE_GETCWD and USE_CHDIR macros. 643 (fs::permissions): Use USE_CHMOD macro. 644 6452024-03-18 Jonathan Wakely <jwakely@redhat.com> 646 647 Backported from master: 648 2023-08-09 Jonathan Wakely <jwakely@redhat.com> 649 650 * include/bits/new_allocator.h (__new_allocator): Define copy 651 assignment operator as defaulted. 652 * include/std/complex (complex<float>, complex<double>) 653 (complex<long double>): Define copy constructor as defaulted. 654 6552024-03-18 Jonathan Wakely <jwakely@redhat.com> 656 657 Backported from master: 658 2023-11-11 Jonathan Wakely <jwakely@redhat.com> 659 660 PR libstdc++/112473 661 * include/bits/utility.h (integer_sequence): Add static_assert. 662 * testsuite/20_util/integer_sequence/112473.cc: New test. 663 6642024-03-18 Jonathan Wakely <jwakely@redhat.com> 665 666 Backported from master: 667 2023-09-15 Jonathan Wakely <jwakely@redhat.com> 668 669 PR libstdc++/111172 670 * include/std/variant (get<T>): Remove !is_void static 671 assertions. 672 6732024-03-18 Jonathan Wakely <jwakely@redhat.com> 674 675 Backported from master: 676 2023-10-26 Jonathan Wakely <jwakely@redhat.com> 677 678 PR libstdc++/112089 679 * include/std/shared_mutex (shared_lock::unlock): Change errc 680 constant to operation_not_permitted. 681 * testsuite/30_threads/shared_lock/locking/112089.cc: New test. 682 6832024-03-18 Jonathan Wakely <jwakely@redhat.com> 684 685 Backported from master: 686 2024-02-29 Jonathan Wakely <jwakely@redhat.com> 687 688 PR libstdc++/113960 689 * include/bits/stl_algobase.h (__is_byte_iter): Replace with ... 690 (__memcmp_ordered_with): New concept. 691 (lexicographical_compare_three_way): Use __memcmp_ordered_with 692 instead of __is_byte_iter. Use correct length for memcmp. 693 * testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc: 694 New test. 695 6962024-03-18 Jonathan Wakely <jwakely@redhat.com> 697 698 Backported from master: 699 2023-02-28 Jonathan Wakely <jwakely@redhat.com> 700 701 PR libstdc++/108846 702 * include/bits/stl_algobase.h (__copy_move<false, false, RA>) 703 Add __assign_one static member function. 704 (__copy_move<true, false, RA>): Likewise. 705 (__copy_move<IsMove, true, RA>): Do not use memmove for a single 706 value. 707 (__copy_move_backward<IsMove, true, RA>): Likewise. 708 * testsuite/25_algorithms/copy/108846.cc: New test. 709 * testsuite/25_algorithms/copy_backward/108846.cc: New test. 710 * testsuite/25_algorithms/copy_n/108846.cc: New test. 711 * testsuite/25_algorithms/move/108846.cc: New test. 712 * testsuite/25_algorithms/move_backward/108846.cc: New test. 713 7142024-03-18 Jonathan Wakely <jwakely@redhat.com> 715 716 Backported from master: 717 2023-03-22 Jonathan Wakely <jwakely@redhat.com> 718 719 * include/bits/stream_iterator.h (istream_iterator): Add 720 constexpr to copy constructor, as per LWG 3600. 721 * testsuite/24_iterators/istream_iterator/cons/constexpr.cc: 722 Check copy construction. 723 7242024-03-18 Jonathan Wakely <jwakely@redhat.com> 725 726 Backported from master: 727 2023-03-22 Jonathan Wakely <jwakely@redhat.com> 728 729 * include/bits/regex.h (match_results): Add allocator-extended 730 copy and move constructors, as per LWG 2195. 731 * testsuite/28_regex/match_results/ctors/char/alloc.cc: New test. 732 7332024-03-18 Jonathan Wakely <jwakely@redhat.com> 734 735 Backported from master: 736 2023-02-28 Jonathan Wakely <jwakely@redhat.com> 737 738 * src/c++11/codecvt.cc: Add [[likely]] and [[unlikely]] 739 attributes. 740 7412024-03-18 Dimitrij Mijoski <dmjpp@hotmail.com> 742 743 Backported from master: 744 2023-01-13 Dimitrij Mijoski <dmjpp@hotmail.com> 745 746 PR libstdc++/86419 747 * src/c++11/codecvt.cc (read_utf8_code_point): Correctly detect 748 errors in incomplete multibyte sequences. 749 (utf16_in): Remove surrogates parameter. Fix conditions for 750 returning partial. 751 (utf16_out): Fix condition for returning partial. 752 (ucs2_in): Do not pass surrogates argument to utf16_in. 753 * testsuite/22_locale/codecvt/codecvt_unicode.cc: New test. 754 * testsuite/22_locale/codecvt/codecvt_unicode.h: New header for 755 tests. 756 * testsuite/22_locale/codecvt/codecvt_unicode_wchar_t.cc: New 757 test. 758 7592024-03-18 Jonathan Wakely <jwakely@redhat.com> 760 761 Backported from master: 762 2023-07-26 Jonathan Wakely <jwakely@redhat.com> 763 764 * include/bits/algorithmfwd.h (random_shuffle): Add deprecated 765 attribute. 766 * include/bits/stl_algo.h (random_shuffle): Correct comments. 767 * testsuite/25_algorithms/random_shuffle/1.cc: Disable 768 deprecated warnings. 769 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise. 770 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise. 771 * testsuite/25_algorithms/random_shuffle/deprecated.cc: New 772 test. 773 7742024-03-18 Jonathan Wakely <jwakely@redhat.com> 775 776 Backported from master: 777 2023-05-11 Jonathan Wakely <jwakely@redhat.com> 778 779 PR libstdc++/109758 780 * include/bits/std_abs.h (abs(__float128)): Handle negative NaN 781 and negative zero correctly. 782 * testsuite/26_numerics/headers/cmath/109758.cc: New test. 783 7842024-03-18 Jonathan Wakely <jwakely@redhat.com> 785 786 Backported from master: 787 2023-05-12 Jonathan Wakely <jwakely@redhat.com> 788 789 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Use a non-null pointer 790 to check for nan, nanf, and nanl. 791 * configure: Regenerate. 792 7932024-03-18 Jonathan Wakely <jwakely@redhat.com> 794 795 Backported from master: 796 2023-05-31 Jonathan Wakely <jwakely@redhat.com> 797 798 * include/std/scoped_allocator (scoped_allocator_adaptor): Add 799 noexcept to all constructors except the default constructor. 800 (scoped_allocator_adaptor::inner_allocator): Add noexcept. 801 (scoped_allocator_adaptor::outer_allocator): Likewise. 802 * testsuite/20_util/scoped_allocator/noexcept.cc: New test. 803 8042024-03-18 Jonathan Wakely <jwakely@redhat.com> 805 806 Backported from master: 807 2023-06-01 Jonathan Wakely <jwakely@redhat.com> 808 809 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc: 810 Add const to equality operator. 811 8122024-03-18 Jonathan Wakely <jwakely@redhat.com> 813 814 Backported from master: 815 2023-06-09 Jonathan Wakely <jwakely@redhat.com> 816 817 * testsuite/23_containers/deque/modifiers/emplace/52799.cc: 818 Removed. 819 * testsuite/23_containers/deque/modifiers/emplace/const_iterator.cc: 820 Removed. 821 * testsuite/23_containers/list/modifiers/emplace/52799.cc: 822 Removed. 823 * testsuite/23_containers/list/modifiers/emplace/const_iterator.cc: 824 Removed. 825 * testsuite/23_containers/vector/modifiers/emplace/52799.cc: 826 Removed. 827 * testsuite/23_containers/vector/modifiers/emplace/const_iterator.cc: 828 Removed. 829 * testsuite/23_containers/deque/modifiers/emplace/1.cc: New 830 test. 831 * testsuite/23_containers/list/modifiers/emplace/1.cc: New 832 test. 833 * testsuite/23_containers/vector/modifiers/emplace/1.cc: New 834 test. 835 8362024-03-18 Jonathan Wakely <jwakely@redhat.com> 837 838 Backported from master: 839 2023-07-03 Jonathan Wakely <jwakely@redhat.com> 840 841 * include/bits/alloc_traits.h (_Destroy): Qualify call. 842 * include/bits/stl_construct.h (_Destroy, _Destroy_n): Likewise. 843 * testsuite/23_containers/vector/cons/destroy-adl.cc: New test. 844 8452024-03-18 Jonathan Wakely <jwakely@redhat.com> 846 847 Backported from master: 848 2023-07-19 Jonathan Wakely <jwakely@redhat.com> 849 850 PR libstdc++/110593 851 * include/bits/chrono.h (duration): Improve static assert 852 messages. 853 (__is_ratio): Move to ... 854 * include/std/ratio (__is_ratio): ... here. 855 (__is_ratio_v): New variable template and partial 856 specialization. 857 (__are_both_ratios): New function template. 858 (__ratio_multiply, ratio_equal, ratio_less, __ratio_add): 859 Add static assertion. 860 * testsuite/20_util/ratio/requirements/type_constraints.cc: 861 New test. 862 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: 863 Adjust expected error. 864 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: 865 Likewise. 866 8672024-03-18 Jonathan Wakely <jwakely@redhat.com> 868 869 Backported from master: 870 2023-09-11 Jonathan Wakely <jwakely@redhat.com> 871 872 * src/c++11/debug.cc (acquire_sequence_ptr_for_lock): New 873 function. 874 (reset_sequence_ptr): New function. 875 (_Safe_iterator_base::_M_detach) 876 (_Safe_local_iterator_base::_M_detach): Replace bare atomic_load 877 with acquire_sequence_ptr_for_lock. 878 (_Safe_iterator_base::_M_reset): Replace bare atomic_store with 879 reset_sequence_ptr. 880 8812024-03-18 Jonathan Wakely <jwakely@redhat.com> 882 883 Backported from master: 884 2023-08-16 Jonathan Wakely <jwakely@redhat.com> 885 886 * include/bits/basic_string.tcc (resize_and_overwrite): Invoke 887 the callable with the same size as resize_and_overwrite was 888 called with. 889 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc: 890 Check with small values for the new size. 891 8922024-03-18 Jonathan Wakely <jwakely@redhat.com> 893 894 Backported from master: 895 2023-03-22 Jonathan Wakely <jwakely@redhat.com> 896 897 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite): 898 Pass rvalues to the callback, as now allowed by LWG 3645. 899 Enforce preconditions on the return value. 900 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc: 901 Adjust. 902 9032024-03-18 Jonathan Wakely <jwakely@redhat.com> 904 905 Backported from master: 906 2023-08-09 Jonathan Wakely <jwakely@redhat.com> 907 908 * include/bits/shared_ptr_atomic.h (atomic): Change class-head 909 to struct. 910 * include/bits/stl_tree.h (_Rb_tree_merge_helper): Change 911 class-head to struct in friend declaration. 912 * include/std/future (_Task_state_base, _Task_state): Likewise. 913 * include/std/scoped_allocator (__inner_type_impl): Likewise. 914 * include/std/valarray (_BinClos, _SClos, _GClos, _IClos) 915 (_ValFunClos, _RefFunClos): Change class-head to struct. 916 9172024-03-18 Jonathan Wakely <jwakely@redhat.com> 918 919 Backported from master: 920 2023-09-08 Jonathan Wakely <jwakely@redhat.com> 921 922 * doc/xml/manual/test.xml: Update reference to -std=gnu++14 as 923 the default. 924 * doc/html/manual/test.html: Regenerate. 925 9262024-03-18 Alexey Lapshin <alexey.lapshin@espressif.com> 927 928 Backported from master: 929 2023-09-08 Alexey Lapshin <alexey.lapshin@espressif.com> 930 931 * src/libbacktrace/Makefile.am: Remove -Werror. 932 * src/libbacktrace/Makefile.in: Regenerate. 933 9342024-03-18 Nathaniel Shead <nathanieloshead@gmail.com> 935 936 Backported from master: 937 2023-09-29 Nathaniel Shead <nathanieloshead@gmail.com> 938 939 * include/bits/basic_string.h: (basic_string(basic_string&&)): 940 Activate _M_local_buf when needed. 941 (basic_string(basic_string&&, const _Alloc&)): Likewise. 942 * include/bits/basic_string.tcc: (basic_string::swap): Likewise. 943 * include/std/variant: (__detail::__variant::__construct_n): New. 944 (__detail::__variant::__emplace): Use __construct_n. 945 9462024-03-18 Jonathan Wakely <jwakely@redhat.com> 947 948 Backported from master: 949 2023-11-02 Jonathan Wakely <jwakely@redhat.com> 950 951 * acinclude.m4 (GLIBCXX_ENABLE_C99): Fix snprintf checks. 952 * configure: Regenerate. 953 9542024-03-18 Jonathan Wakely <jwakely@redhat.com> 955 956 Backported from master: 957 2023-11-21 Jonathan Wakely <jwakely@redhat.com> 958 959 * include/tr2/dynamic_bitset (dynamic_bitset): Pass zero and one 960 characters to _M_copy_from_string. 961 * testsuite/tr2/dynamic_bitset/string.cc: New test. 962 9632024-03-18 Jonathan Wakely <jwakely@redhat.com> 964 965 Backported from master: 966 2023-11-14 Jonathan Wakely <jwakely@redhat.com> 967 968 * include/std/charconv (__from_chars_pow2_base): Convert base to 969 unsigned for call to __countr_zero. 970 (__from_chars_alnum): Likewise for call to __bit_width. 971 9722024-03-18 Jonathan Wakely <jwakely@redhat.com> 973 974 Backported from master: 975 2023-11-23 Jonathan Wakely <jwakely@redhat.com> 976 977 * testsuite/util/testsuite_allocator.h (uneq_allocator): Fix 978 equality operator for heterogeneous comparisons. 979 9802024-03-18 Jonathan Wakely <jwakely@redhat.com> 981 982 Backported from master: 983 2024-03-14 Jonathan Wakely <jwakely@redhat.com> 984 985 PR libstdc++/66146 986 * doc/xml/manual/status_cxx2011.xml: Remove mention of Linux in 987 note about std::call_once. 988 * doc/xml/manual/status_cxx2014.xml: Likewise. 989 * doc/xml/manual/status_cxx2017.xml: Likewise. 990 * doc/html/manual/status.html: Regenerate. 991 9922024-03-18 Jonathan Wakely <jwakely@redhat.com> 993 994 Backported from master: 995 2024-03-13 Jonathan Wakely <jwakely@redhat.com> 996 997 * testsuite/libstdc++-prettyprinters/cxx11.cc: Move custom_cat 998 to namespace scope. 999 10002024-03-18 Jonathan Wakely <jwakely@redhat.com> 1001 1002 Backported from master: 1003 2024-02-28 Jonathan Wakely <jwakely@redhat.com> 1004 1005 * doc/xml/manual/appendix_contributing.xml: Change URLs to use 1006 https. 1007 * doc/html/manual/*: Regenerate. 1008 10092024-03-18 Jonathan Wakely <jwakely@redhat.com> 1010 1011 Backported from master: 1012 2024-02-28 Jonathan Wakely <jwakely@redhat.com> 1013 1014 * doc/xml/manual/appendix_contributing.xml: Replace outdated 1015 info on ChangeLog entries. 1016 * doc/html/manual/appendix_contributing.html: Regenerate. 1017 10182024-03-18 Jonathan Wakely <jwakely@redhat.com> 1019 1020 Backported from master: 1021 2022-11-04 Jonathan Wakely <jwakely@redhat.com> 1022 1023 PR libstdc++/107500 1024 * libsupc++/eh_globals.cc (eh_globals): Remove immortalizing 1025 wrapper. 1026 (__cxxabiv1::__cxa_get_globals_fast): Adjust. 1027 (__cxxabiv1::__cxa_get_globals): Adjust. 1028 10292024-03-18 Jonathan Wakely <jwakely@redhat.com> 1030 1031 Backported from master: 1032 2024-03-04 Jonathan Wakely <jwakely@redhat.com> 1033 1034 PR libstdc++/114147 1035 * include/std/tuple (tuple::tuple(allocator_arg_t, const Alloc&)): 1036 Add missing overload of allocator-extended default constructor. 1037 (tuple<T1,T2>::tuple(allocator_arg_t, const Alloc&)): Likewise. 1038 * testsuite/20_util/tuple/cons/114147.cc: New test. 1039 10402024-03-13 Cassio Neri <cassio.neri@gmail.com> 1041 1042 Backported from master: 1043 2024-01-05 Cassio Neri <cassio.neri@gmail.com> 1044 1045 * include/std/chrono: Fix + and - for months and weekdays. 1046 * testsuite/std/time/month/1.cc: Add constexpr tests against overflow. 1047 * testsuite/std/time/month/2.cc: New test for extreme values. 1048 * testsuite/std/time/weekday/1.cc: Add constexpr tests against overflow. 1049 * testsuite/std/time/weekday/2.cc: New test for extreme values. 1050 10512024-03-13 Cassio Neri <cassio.neri@gmail.com> 1052 1053 Backported from master: 1054 2023-11-14 Cassio Neri <cassio.neri@gmail.com> 1055 1056 * include/std/chrono (operator-(const weekday&, const weekday&)): 1057 Optimize. 1058 10592024-03-13 Cassio Neri <cassio.neri@gmail.com> 1060 1061 Backported from master: 1062 2023-11-14 Cassio Neri <cassio.neri@gmail.com> 1063 1064 * include/std/chrono (year::is_leap): Clear code. 1065 10662024-03-13 Cassio Neri <cassio.neri@gmail.com> 1067 1068 Backported from master: 1069 2023-11-14 Cassio Neri <cassio.neri@gmail.com> 1070 1071 * include/std/chrono (year_month_day_last::day): Remove &1. 1072 10732024-03-13 Cassio Neri <cassio.neri@gmail.com> 1074 1075 Backported from master: 1076 2023-11-14 Cassio Neri <cassio.neri@gmail.com> 1077 1078 * include/std/chrono (weekday::_S_from_days): Fix UB. 1079 * testsuite/std/time/weekday/1.cc: Add test for overflow. 1080 10812024-03-13 Jonathan Wakely <jwakely@redhat.com> 1082 1083 Backported from master: 1084 2023-08-09 Jonathan Wakely <jwakely@redhat.com> 1085 1086 * include/bits/list.tcc (list::sort(Cmp)): Fix -Wsign-compare 1087 warning for loop condition. 1088 10892024-03-13 Jonathan Wakely <jwakely@redhat.com> 1090 1091 Backported from master: 1092 2023-06-09 Jonathan Wakely <jwakely@redhat.com> 1093 1094 PR libstdc++/110167 1095 * include/std/array (to_array): Initialize arrays of trivial 1096 types using memcpy. For non-trivial types, use lambda 1097 expressions instead of a separate helper function. 1098 (__to_array): Remove. 1099 * testsuite/23_containers/array/creation/110167.cc: New test. 1100 11012024-02-08 Jonathan Wakely <jwakely@redhat.com> 1102 1103 Backported from master: 1104 2024-02-02 Jonathan Wakely <jwakely@redhat.com> 1105 1106 * include/std/string_view (basic_string_view(R&&)): Remove 1107 constraint that traits_type must be the same, as per LWG 3857. 1108 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: 1109 Explicit conversion between different specializations should be 1110 allowed. 1111 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: 1112 Likewise. 1113 11142024-02-08 Jonathan Wakely <jwakely@redhat.com> 1115 1116 Backported from master: 1117 2024-02-02 Jonathan Wakely <jwakely@redhat.com> 1118 1119 PR libstdc++/90276 1120 * testsuite/util/pstl/test_utils.h (reverse_invoker): Do not use 1121 perfect forwarding for iterator arguments. 1122 11232024-02-08 Jonathan Wakely <jwakely@redhat.com> 1124 1125 Backported from master: 1126 2024-02-02 Jonathan Wakely <jwakely@redhat.com> 1127 1128 * include/std/syncstream (basic_osyncstream::operator=): Remove 1129 noexcept, as per LWG 3867. 1130 11312024-02-08 Jonathan Wakely <jwakely@redhat.com> 1132 1133 Backported from master: 1134 2024-01-13 Jonathan Wakely <jwakely@redhat.com> 1135 1136 PR libstdc++/107466 1137 * include/bits/random.tcc (subtract_with_carry_engine::seed): 1138 Implement proposed resolution of LWG 4014. 1139 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error 1140 line number. 1141 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc: 1142 Check for expected result of 64-bit engine with seed that 1143 doesn't fit in 32-bits. 1144 11452024-02-08 Jonathan Wakely <jwakely@redhat.com> 1146 1147 Backported from master: 1148 2024-01-11 Jonathan Wakely <jwakely@redhat.com> 1149 1150 PR libstdc++/113258 1151 * libsupc++/new_opa.cc: Prefer to use posix_memalign if 1152 available. 1153 11542024-02-02 Jonathan Wakely <jwakely@redhat.com> 1155 1156 PR libstdc++/108636 1157 * include/bits/shared_ptr_base.h (__shared_ptr::operator bool): 1158 Add always_inline attribute for C++20 and later. 1159 11602024-01-11 Jonathan Wakely <jwakely@redhat.com> 1161 1162 Backported from master: 1163 2024-01-05 Jonathan Wakely <jwakely@redhat.com> 1164 1165 PR libstdc++/113200 1166 * include/bits/char_traits.h (__gnu_cxx::char_traits::move): Use 1167 __builtin_constant_p to check for unrelated pointers that cannot 1168 be compared during constant evaluation. 1169 * testsuite/21_strings/char_traits/requirements/113200.cc: New 1170 test. 1171 11722024-01-11 Ken Matsui <kmatsui@gcc.gnu.org> 1173 1174 Backported from master: 1175 2024-01-11 Ken Matsui <kmatsui@gcc.gnu.org> 1176 1177 PR libstdc++/113250 1178 * src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&. 1179 * src/filesystem/ops.cc (fs::equivalent): Likewise. 1180 * testsuite/27_io/filesystem/operations/equivalent.cc: Handle 1181 error codes. 1182 * testsuite/experimental/filesystem/operations/equivalent.cc: 1183 Likewise. 1184 11852024-01-03 Patrick Palka <ppalka@redhat.com> 1186 1187 Backported from master: 1188 2024-01-03 Patrick Palka <ppalka@redhat.com> 1189 1190 PR testsuite/113175 1191 * testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce 1192 'limit' to 100 from 1000 and adjust 'log2_limit' accordingly. 1193 (test03): Likewise. 1194 11952023-12-16 Jakub Jelinek <jakub@redhat.com> 1196 1197 Backported from master: 1198 2023-10-13 Jakub Jelinek <jakub@redhat.com> 1199 1200 * testsuite/tr1/8_c_compatibility/cstdio/functions.cc (test01): 1201 Initialize stream to va_arg(ap, FILE*) rather than 0. 1202 * testsuite/tr1/8_c_compatibility/cwchar/functions.cc (test01): 1203 Likewise. 1204 12052023-12-06 Jonathan Wakely <jwakely@redhat.com> 1206 1207 Backported from master: 1208 2023-11-02 Jonathan Wakely <jwakely@redhat.com> 1209 1210 PR libstdc++/112314 1211 * include/std/string_view (string_view::remove_suffix): Add 1212 debug assertion. 1213 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc: 1214 New test. 1215 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc: 1216 New test. 1217 12182023-12-06 Jonathan Wakely <jwakely@redhat.com> 1219 1220 Backported from master: 1221 2023-11-17 Jonathan Wakely <jwakely@redhat.com> 1222 1223 * include/std/utility (in_range): Rename _Up parameter to _Res. 1224 12252023-11-15 Jonathan Wakely <jwakely@redhat.com> 1226 1227 Backported from master: 1228 2023-11-15 Jonathan Wakely <jwakely@redhat.com> 1229 1230 PR libstdc++/112491 1231 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): 1232 Correctly handle unused capacity at the start of the first node. 1233 * testsuite/libstdc++-xmethods/deque.cc: Check index operator 1234 when elements have been removed from the front. 1235 12362023-11-15 Jonathan Wakely <jwakely@redhat.com> 1237 1238 Backported from master: 1239 2023-11-15 Jonathan Wakely <jwakely@redhat.com> 1240 1241 * include/std/stacktrace (basic_stacktrace::at): Fix class name 1242 in exception message. 1243 * testsuite/19_diagnostics/stacktrace/hash.cc: Do not fail if 1244 current() returns a non-empty stacktrace. 1245 12462023-11-14 Jonathan Wakely <jwakely@redhat.com> 1247 1248 Backported from master: 1249 2023-11-14 Jonathan Wakely <jwakely@redhat.com> 1250 1251 PR libstdc++/112348 1252 * include/std/stacktrace (hash<basic_stacktrace<Alloc>>): Fix 1253 type of hash function for entries. 1254 * testsuite/19_diagnostics/stacktrace/hash.cc: New test. 1255 12562023-11-14 Jonathan Wakely <jwakely@redhat.com> 1257 1258 Backported from master: 1259 2023-11-14 Jonathan Wakely <jwakely@redhat.com> 1260 1261 PR libstdc++/112491 1262 * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.size): Fix 1263 calculation to use _M_start._M_cur. 1264 * testsuite/libstdc++-xmethods/deque.cc: Check failing cases. 1265 12662023-11-13 Tom Tromey <tromey@adacore.com> 1267 1268 Backported from master: 1269 2023-10-04 Tom Tromey <tromey@adacore.com> 1270 1271 * python/libstdcxx/v6/printers.py 1272 (StdExpAnyPrinter.__init__): Qualify call to 1273 _string_types. 1274 12752023-11-13 Tom Tromey <tromey@adacore.com> 1276 1277 Backported from master: 1278 2023-10-04 Tom Tromey <tromey@adacore.com> 1279 1280 * python/libstdcxx/v6/printers.py: Assume that 1281 _versioned_namespace is non-None. 1282 * python/libstdcxx/v6/xmethods.py (is_specialization_of): 1283 Assume that _versioned_namespace is non-None. 1284 12852023-11-13 Tom Tromey <tromey@adacore.com> 1286 1287 Backported from master: 1288 2023-09-28 Tom Tromey <tromey@adacore.com> 1289 1290 * python/libstdcxx/v6/printers.py (Printer.add_version) 1291 (add_one_template_type_printer) 1292 (FilteringTypePrinter.add_one_type_printer): Use Python 1293 "not in" operator. 1294 12952023-11-13 Tom Tromey <tromey@adacore.com> 1296 1297 Backported from master: 1298 2023-10-04 Tom Tromey <tromey@adacore.com> 1299 1300 * python/libstdcxx/v6/xmethods.py (_versioned_namespace): 1301 Define. 1302 13032023-11-13 Jonathan Wakely <jwakely@redhat.com> 1304 1305 Backported from master: 1306 2023-09-28 Jonathan Wakely <jwakely@redhat.com> 1307 1308 * python/libstdcxx/v6/xmethods.py (is_specialization_of): Define 1309 new function. 1310 (ArrayMethodsMatcher, DequeMethodsMatcher) 1311 (ForwardListMethodsMatcher, ListMethodsMatcher) 1312 (VectorMethodsMatcher, AssociativeContainerMethodsMatcher) 1313 (UniquePtrGetWorker, UniquePtrMethodsMatcher) 1314 (SharedPtrSubscriptWorker, SharedPtrMethodsMatcher): Use 1315 is_specialization_of instead of re.match. 1316 13172023-11-13 Jonathan Wakely <jwakely@redhat.com> 1318 1319 Backported from master: 1320 2023-09-28 Jonathan Wakely <jwakely@redhat.com> 1321 1322 * python/libstdcxx/v6/printers.py: Break long lines. Use raw 1323 strings for regular expressions. Add whitespace around 1324 operators. 1325 (is_member_of_namespace): Use isinstance to check type. 1326 (is_specialization_of): Likewise. Adjust template_name 1327 for versioned namespace instead of duplicating the re.match 1328 call. 1329 (StdExpAnyPrinter._string_types): New static method. 1330 (StdExpAnyPrinter.to_string): Use _string_types. 1331 13322023-11-13 Jonathan Wakely <jwakely@redhat.com> 1333 1334 Backported from master: 1335 2023-09-28 Jonathan Wakely <jwakely@redhat.com> 1336 1337 * python/libstdcxx/v6/printers.py: Format docstrings according 1338 to PEP 257. 1339 * python/libstdcxx/v6/xmethods.py: Likewise. 1340 13412023-11-13 Jonathan Wakely <jwakely@redhat.com> 1342 1343 Backported from master: 1344 2023-09-12 Jonathan Wakely <jwakely@redhat.com> 1345 1346 * python/libstdcxx/v6/printers.py: Reformat. 1347 * python/libstdcxx/v6/xmethods.py: Likewise. 1348 13492023-11-06 Ian Lance Taylor <iant@golang.org> 1350 1351 PR libbacktrace/111315 1352 PR libbacktrace/112263 1353 * acinclude.m4: Set -D_GNU_SOURCE in BACKTRACE_CPPFLAGS and when 1354 grepping link.h for dl_iterate_phdr. 1355 * configure: Regenerate. 1356 13572023-10-25 Jonathan Wakely <jwakely@redhat.com> 1358 1359 Backported from master: 1360 2023-10-25 Jonathan Wakely <jwakely@redhat.com> 1361 1362 PR libstdc++/111936 1363 * src/libbacktrace/Makefile.am: Add -prefer-pic to libtool 1364 compile commands. 1365 * src/libbacktrace/Makefile.in: Regenerate. 1366 13672023-10-23 Fran��ois Dumont <fdumont@gcc.gnu.org> 1368 1369 * include/bits/hashtable_policy.h 1370 (_Hash_code_base::_M_hash_code(const _Hash&, const _Hash_node_value<>&)): Remove. 1371 (_Hash_code_base::_M_hash_code<_H2>(const _H2&, const _Hash_node_value<>&)): Remove. 1372 * include/bits/hashtable.h 1373 (_M_src_hash_code<_H2>(const _H2&, const key_type&, const __node_value_type&)): New. 1374 (_M_merge_unique<>, _M_merge_multi<>): Use latter. 1375 * testsuite/23_containers/unordered_map/modifiers/merge.cc 1376 (test04, test05, test06): New test cases. 1377 13782023-10-03 Jonathan Wakely <jwakely@redhat.com> 1379 1380 * include/bits/fs_dir.h (directory_iterator::operator==): 1381 Define without using a non-exported shared_ptr symbol. 1382 (recursive_directory_iterator::operator==): Likewise. 1383 13842023-10-03 Jonathan Wakely <jwakely@redhat.com> 1385 1386 Backported from master: 1387 2023-09-01 Jonathan Wakely <jwakely@redhat.com> 1388 1389 * testsuite/27_io/filesystem/path/108636.cc: Add dg-require for 1390 filesystem support. 1391 13922023-10-03 Jonathan Wakely <jwakely@redhat.com> 1393 1394 Backported from master: 1395 2023-06-06 Jonathan Wakely <jwakely@redhat.com> 1396 1397 PR libstdc++/108178 1398 * src/filesystem/ops-common.h (do_copy_file): Check for empty 1399 files by trying to read a character. 1400 * testsuite/27_io/filesystem/operations/copy_file_108178.cc: 1401 New test. 1402 14032023-10-03 Jonathan Wakely <jwakely@redhat.com> 1404 1405 Backported from master: 1406 2023-06-06 Jonathan Wakely <jwakely@redhat.com> 1407 1408 * src/filesystem/ops-common.h (do_copy_file) [O_CLOEXEC]: Set 1409 close-on-exec flag on file descriptors. 1410 14112023-10-03 Jonathan Wakely <jwakely@redhat.com> 1412 1413 Backported from master: 1414 2023-03-20 Jonathan Wakely <jwakely@redhat.com> 1415 1416 * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix 1417 formatting. 1418 14192023-10-03 Jonathan Wakely <jwakely@redhat.com> 1420 1421 Backported from master: 1422 2023-02-02 Jonathan Wakely <jwakely@redhat.com> 1423 1424 * src/filesystem/ops-common.h [AVR] (__unsupported): Always use 1425 errc::function_not_supported instead of errc::not_supported. 1426 14272023-10-02 Tim Song <t.canens.cpp@gmail.com> 1428 1429 Backported from master: 1430 2023-09-28 Tim Song <t.canens.cpp@gmail.com> 1431 1432 PR libstdc++/111050 1433 * include/bits/hashtable_policy.h 1434 (_Hash_node_value_base<>::_M_valptr(), _Hash_node_value_base<>::_M_v()) 1435 Add [[__gnu__::__always_inline__]]. 1436 14372023-09-27 Jonathan Wakely <jwakely@redhat.com> 1438 1439 Backported from master: 1440 2023-08-09 Jonathan Wakely <jwakely@redhat.com> 1441 1442 * include/experimental/bits/fs_path.h (path::string): Use 1443 _GLIBCXX17_CONSTEXPR not _GLIBCXX_CONSTEXPR for 'if constexpr'. 1444 * include/std/charconv (__to_chars_8): Initialize variable for 1445 C++17 constexpr rules. 1446 14472023-09-26 Jonathan Wakely <jwakely@redhat.com> 1448 1449 Backported from master: 1450 2023-09-25 Jonathan Wakely <jwakely@redhat.com> 1451 1452 PR libstdc++/111511 1453 PR c++/111512 1454 * include/std/array (to_array): Qualify calls to __to_array. 1455 * testsuite/23_containers/array/creation/111512.cc: New test. 1456 14572023-09-18 Jonathan Wakely <jwakely@redhat.com> 1458 1459 Backported from master: 1460 2023-09-18 Jonathan Wakely <jwakely@redhat.com> 1461 1462 * doc/xml/manual/configure.xml: Use conventional option name. 1463 * doc/xml/manual/status_cxx2020.xml: Update. 1464 * doc/html/*: Regenerate. 1465 14662023-09-14 Jonathan Wakely <jwakely@redhat.com> 1467 1468 Backported from master: 1469 2023-09-14 Jonathan Wakely <jwakely@redhat.com> 1470 1471 PR c++/111357 1472 * include/bits/utility.h (make_integer_sequence): Add cast. 1473 * testsuite/20_util/integer_sequence/pr111357.cc: New test. 1474 14752023-07-12 Jonathan Wakely <jwakely@redhat.com> 1476 1477 Backported from master: 1478 2023-07-12 Jonathan Wakely <jwakely@redhat.com> 1479 1480 PR libstdc++/95048 1481 * testsuite/27_io/filesystem/path/construct/95048.cc: Check 1482 conversions to wide strings. 1483 * testsuite/experimental/filesystem/path/construct/95048.cc: 1484 Likewise. 1485 14862023-07-06 Jonathan Wakely <jwakely@redhat.com> 1487 1488 Backported from master: 1489 2023-07-06 Jonathan Wakely <jwakely@redhat.com> 1490 1491 PR libstdc++/104299 1492 * doc/xml/manual/configure.xml: Describe stdio_pure argument to 1493 --enable-cstdio. 1494 * doc/html/manual/configure.html: Regenerate. 1495 14962023-06-23 Jonathan Wakely <jwakely@redhat.com> 1497 1498 Backported from master: 1499 2023-06-01 Jonathan Wakely <jwakely@redhat.com> 1500 1501 * doc/xml/manual/evolution.xml: Document removal of implicit 1502 allocator rebinding extensions in strict mode and for C++20. 1503 * doc/html/*: Regenerate. 1504 15052023-06-21 Jason Merrill <jason@redhat.com> 1506 1507 PR tree-optimization/105651 1508 * include/bits/basic_string.tcc (_M_replace): Add an assert 1509 to avoid -Wrestrict false positive. 1510 15112023-05-30 Alexandre Oliva <oliva@adacore.com> 1512 1513 Backported from master: 1514 2023-05-30 Alexandre Oliva <oliva@adacore.com> 1515 1516 * testsuite/20_util/from_chars/4.cc: Skip long double test06 1517 on x86_64-vxworks. 1518 * testsuite/20_util/to_chars/long_double.cc: Xfail run on 1519 x86_64-vxworks. 1520 15212023-05-30 Alexandre Oliva <oliva@adacore.com> 1522 1523 Backported from master: 1524 2023-05-25 Alexandre Oliva <oliva@adacore.com> 1525 1526 * testsuite/20_util/to_chars/long_double.cc: Expect execution 1527 fail on x86-vxworks. 1528 15292023-05-30 Alexandre Oliva <oliva@adacore.com> 1530 1531 Backported from master: 1532 2023-05-05 Alexandre Oliva <oliva@adacore.com> 1533 1534 * testsuite/20_util/from_chars/4.cc: Skip long double test06 1535 on aarch64-vxworks. 1536 * testsuite/20_util/to_chars/long_double.cc: Xfail run on 1537 aarch64-vxworks. 1538 15392023-05-30 Matthias Kretz <m.kretz@gsi.de> 1540 1541 Backported from master: 1542 2023-05-30 Matthias Kretz <m.kretz@gsi.de> 1543 1544 PR libstdc++/109822 1545 * include/experimental/bits/simd.h (to_native): Use int NTTP 1546 as specified in PTS2. 1547 (to_compatible): Likewise. Add missing tag to call mask 1548 generator ctor. 1549 * testsuite/experimental/simd/pr109822_cast_functions.cc: New 1550 test. 1551 15522023-05-30 Matthias Kretz <m.kretz@gsi.de> 1553 1554 Backported from master: 1555 2023-05-30 Matthias Kretz <m.kretz@gsi.de> 1556 1557 * testsuite/experimental/simd/tests/integer_operators.cc: 1558 Compute expected value differently to avoid getting turned into 1559 a vector shift. 1560 15612023-05-30 Matthias Kretz <m.kretz@gsi.de> 1562 1563 Backported from master: 1564 2023-05-30 Matthias Kretz <m.kretz@gsi.de> 1565 1566 * testsuite/experimental/simd/tests/operator_cvt.cc: Make long 1567 double <-> (u)long conversion tests conditional on sizeof(long 1568 double) and sizeof(long). 1569 15702023-05-30 Matthias Kretz <m.kretz@gsi.de> 1571 1572 Backported from master: 1573 2023-05-26 Matthias Kretz <m.kretz@gsi.de> 1574 1575 * include/experimental/bits/simd_ppc.h (_S_bit_shift_left): 1576 Negative __y is UB, so prefer signed compare. 1577 15782023-05-24 Matthias Kretz <m.kretz@gsi.de> 1579 1580 Backported from master: 1581 2023-05-24 Matthias Kretz <m.kretz@gsi.de> 1582 1583 PR libstdc++/109949 1584 * include/experimental/bits/simd.h (__intrinsic_type): If 1585 __ALTIVEC__ is defined, map gnu::vector_size types to their 1586 corresponding __vector T types without losing unsignedness of 1587 integer types. Also prefer long long over long. 1588 * include/experimental/bits/simd_ppc.h (_S_popcount): Cast mask 1589 object to the expected unsigned vector type. 1590 15912023-05-24 Matthias Kretz <m.kretz@gsi.de> 1592 1593 Backported from master: 1594 2023-05-24 Matthias Kretz <m.kretz@gsi.de> 1595 1596 PR libstdc++/109261 1597 * include/experimental/bits/simd.h (__intrinsic_type): 1598 Specialize __intrinsic_type<double, 8> and 1599 __intrinsic_type<double, 16> in any case, but provide the member 1600 type only with __aarch64__. 1601 16022023-05-24 Matthias Kretz <m.kretz@gsi.de> 1603 1604 Backported from master: 1605 2023-05-24 Matthias Kretz <m.kretz@gsi.de> 1606 1607 PR libstdc++/109261 1608 * include/experimental/bits/simd_neon.h (_S_reduce): Add 1609 constexpr and make NEON implementation conditional on 1610 not __builtin_is_constant_evaluated. 1611 16122023-05-23 Matthias Kretz <m.kretz@gsi.de> 1613 1614 Backported from master: 1615 2023-05-23 Matthias Kretz <m.kretz@gsi.de> 1616 1617 PR libstdc++/109261 1618 * include/experimental/bits/simd.h (_SimdWrapper::_M_set): 1619 Avoid vector builtin subscripting in constant expressions. 1620 (resizing_simd_cast): Avoid memcpy if constant_evaluated. 1621 (const_where_expression, where_expression, where) 1622 (__extract_part, simd_mask, _SimdIntOperators, simd): Add either 1623 _GLIBCXX_SIMD_CONSTEXPR (on public APIs), or constexpr (on 1624 internal APIs). 1625 * include/experimental/bits/simd_builtin.h (__vector_permute) 1626 (__vector_shuffle, __extract_part, _GnuTraits::_SimdCastType1) 1627 (_GnuTraits::_SimdCastType2, _SimdImplBuiltin) 1628 (_MaskImplBuiltin::_S_store): Add constexpr. 1629 (_CommonImplBuiltin::_S_store_bool_array) 1630 (_SimdImplBuiltin::_S_load, _SimdImplBuiltin::_S_store) 1631 (_SimdImplBuiltin::_S_reduce, _MaskImplBuiltin::_S_load): Add 1632 constant_evaluated case. 1633 * include/experimental/bits/simd_fixed_size.h 1634 (_S_masked_load): Reword comment. 1635 (__tuple_element_meta, __make_meta, _SimdTuple::_M_apply_r) 1636 (_SimdTuple::_M_subscript_read, _SimdTuple::_M_subscript_write) 1637 (__make_simd_tuple, __optimize_simd_tuple, __extract_part) 1638 (__autocvt_to_simd, _Fixed::__traits::_SimdBase) 1639 (_Fixed::__traits::_SimdCastType, _SimdImplFixedSize): Add 1640 constexpr. 1641 (_SimdTuple::operator[], _M_set): Add constexpr and add 1642 constant_evaluated case. 1643 (_MaskImplFixedSize::_S_load): Add constant_evaluated case. 1644 * include/experimental/bits/simd_scalar.h: Add constexpr. 1645 * include/experimental/bits/simd_x86.h (_CommonImplX86): Add 1646 constexpr and add constant_evaluated case. 1647 (_SimdImplX86::_S_equal_to, _S_not_equal_to, _S_less) 1648 (_S_less_equal): Value-initialize to satisfy constexpr 1649 evaluation. 1650 (_MaskImplX86::_S_load): Add constant_evaluated case. 1651 (_MaskImplX86::_S_store): Add constexpr and constant_evaluated 1652 case. Value-initialize local variables. 1653 (_MaskImplX86::_S_logical_and, _S_logical_or, _S_bit_not) 1654 (_S_bit_and, _S_bit_or, _S_bit_xor): Add constant_evaluated 1655 case. 1656 * testsuite/experimental/simd/pr109261_constexpr_simd.cc: New 1657 test. 1658 16592023-05-23 Matthias Kretz <m.kretz@gsi.de> 1660 1661 Backported from master: 1662 2023-05-22 Matthias Kretz <m.kretz@gsi.de> 1663 1664 * include/experimental/bits/simd_builtin.h (_S_fpclassify): Move 1665 __infn into #ifdef'ed block. 1666 * testsuite/experimental/simd/tests/fpclassify.cc: Declare 1667 constants only when used. 1668 * testsuite/experimental/simd/tests/frexp.cc: Likewise. 1669 * testsuite/experimental/simd/tests/logarithm.cc: Likewise. 1670 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: 1671 Likewise. 1672 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc: 1673 Move totest and expect1 into #ifdef'ed block. 1674 16752023-05-23 Matthias Kretz <m.kretz@gsi.de> 1676 1677 Backported from master: 1678 2023-03-28 Matthias Kretz <m.kretz@gsi.de> 1679 1680 * include/experimental/bits/simd.h (is_simd_flag_type): New. 1681 (_IsSimdFlagType): New. 1682 (copy_from, copy_to, load ctors): Constrain _Flags using 1683 _IsSimdFlagType. 1684 16852023-05-23 Matthias Kretz <m.kretz@gsi.de> 1686 1687 Backported from master: 1688 2023-03-28 Matthias Kretz <m.kretz@gsi.de> 1689 1690 * include/experimental/bits/simd_x86.h (_SimdImplX86): Use 1691 _Base::_S_divides if the optimized _S_divides function is hidden 1692 via the preprocessor. 1693 16942023-05-23 Matthias Kretz <m.kretz@gsi.de> 1695 1696 Backported from master: 1697 2023-03-21 Matthias Kretz <m.kretz@gsi.de> 1698 1699 * include/experimental/bits/simd_detail.h: Don't declare the 1700 simd API as constexpr with Clang. 1701 * include/experimental/bits/simd_x86.h (__movm): New. 1702 (_S_blend_avx512): Resolve FIXME. Implement blend using __movm 1703 and ?:. 1704 (_SimdImplX86::_S_masked_unary): Clang does not implement the 1705 same builtins. Implement the function using __movm, ?:, and - 1706 operators on vector_size types instead. 1707 17082023-05-23 Matthias Kretz <m.kretz@gsi.de> 1709 1710 Backported from master: 1711 2023-02-24 Matthias Kretz <m.kretz@gsi.de> 1712 1713 * include/experimental/bits/simd.h: Line breaks and indenting 1714 fixed to follow the libstdc++ standard. 1715 * include/experimental/bits/simd_builtin.h: Likewise. 1716 * include/experimental/bits/simd_fixed_size.h: Likewise. 1717 * include/experimental/bits/simd_neon.h: Likewise. 1718 * include/experimental/bits/simd_ppc.h: Likewise. 1719 * include/experimental/bits/simd_scalar.h: Likewise. 1720 * include/experimental/bits/simd_x86.h: Likewise. 1721 17222023-05-23 Matthias Kretz <m.kretz@gsi.de> 1723 1724 Backported from master: 1725 2023-02-24 Matthias Kretz <m.kretz@gsi.de> 1726 1727 PR libstdc++/108030 1728 * include/experimental/bits/simd_fixed_size.h 1729 (_SimdImplFixedSize::_S_broadcast): Replace inline with 1730 _GLIBCXX_SIMD_INTRINSIC. 1731 (_SimdImplFixedSize::_S_generate): Likewise. 1732 (_SimdImplFixedSize::_S_load): Likewise. 1733 (_SimdImplFixedSize::_S_masked_load): Likewise. 1734 (_SimdImplFixedSize::_S_store): Likewise. 1735 (_SimdImplFixedSize::_S_masked_store): Likewise. 1736 (_SimdImplFixedSize::_S_min): Likewise. 1737 (_SimdImplFixedSize::_S_max): Likewise. 1738 (_SimdImplFixedSize::_S_complement): Likewise. 1739 (_SimdImplFixedSize::_S_unary_minus): Likewise. 1740 (_SimdImplFixedSize::_S_plus): Likewise. 1741 (_SimdImplFixedSize::_S_minus): Likewise. 1742 (_SimdImplFixedSize::_S_multiplies): Likewise. 1743 (_SimdImplFixedSize::_S_divides): Likewise. 1744 (_SimdImplFixedSize::_S_modulus): Likewise. 1745 (_SimdImplFixedSize::_S_bit_and): Likewise. 1746 (_SimdImplFixedSize::_S_bit_or): Likewise. 1747 (_SimdImplFixedSize::_S_bit_xor): Likewise. 1748 (_SimdImplFixedSize::_S_bit_shift_left): Likewise. 1749 (_SimdImplFixedSize::_S_bit_shift_right): Likewise. 1750 (_SimdImplFixedSize::_S_remquo): Add inline keyword (to be 1751 explicit about not always-inline, yet). 1752 (_SimdImplFixedSize::_S_isinf): Likewise. 1753 (_SimdImplFixedSize::_S_isfinite): Likewise. 1754 (_SimdImplFixedSize::_S_isnan): Likewise. 1755 (_SimdImplFixedSize::_S_isnormal): Likewise. 1756 (_SimdImplFixedSize::_S_signbit): Likewise. 1757 17582023-05-23 Matthias Kretz <m.kretz@gsi.de> 1759 1760 Backported from master: 1761 2023-02-24 Matthias Kretz <m.kretz@gsi.de> 1762 1763 PR libstdc++/108856 1764 * include/experimental/bits/simd_builtin.h 1765 (_SimdImplBuiltin::_S_masked_unary): More efficient 1766 implementation of masked inc-/decrement for integers and floats 1767 without AVX2. 1768 * include/experimental/bits/simd_x86.h 1769 (_SimdImplX86::_S_masked_unary): New. Use AVX512 masked subtract 1770 builtins for masked inc-/decrement. 1771 17722023-05-23 Matthias Kretz <m.kretz@gsi.de> 1773 1774 Backported from master: 1775 2023-02-23 Matthias Kretz <m.kretz@gsi.de> 1776 1777 * testsuite/experimental/simd/tests/reductions.cc: Introduce 1778 max_distance as the type-dependent max error. 1779 17802023-05-23 Matthias Kretz <m.kretz@gsi.de> 1781 1782 Backported from master: 1783 2023-02-23 Matthias Kretz <m.kretz@gsi.de> 1784 1785 PR libstdc++/108030 1786 * include/experimental/bits/simd_detail.h 1787 (_GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA): Define as empty for 1788 __clang__. 1789 17902023-05-23 Matthias Kretz <m.kretz@gsi.de> 1791 1792 Backported from master: 1793 2023-02-16 Matthias Kretz <m.kretz@gsi.de> 1794 1795 PR libstdc++/108030 1796 * include/experimental/bits/simd_detail.h: Define 1797 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA. 1798 * include/experimental/bits/simd.h: Annotate lambdas with 1799 _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA. 1800 * include/experimental/bits/simd_builtin.h: Ditto. 1801 * include/experimental/bits/simd_converter.h: Ditto. 1802 * include/experimental/bits/simd_fixed_size.h: Ditto. 1803 * include/experimental/bits/simd_math.h: Ditto. 1804 * include/experimental/bits/simd_neon.h: Ditto. 1805 * include/experimental/bits/simd_x86.h: Ditto. 1806 18072023-05-16 Jonathan Wakely <jwakely@redhat.com> 1808 1809 Backported from master: 1810 2022-11-28 Jonathan Wakely <jwakely@redhat.com> 1811 1812 PR libstdc++/107801 1813 * src/c++17/memory_resource.cc (chunk::_M_bytes): Change type 1814 from uint32_t to bitset::size_type. Adjust static assertion. 1815 (__pool_resource::_Pool::replenish): Cast to size_t after 1816 multiplication instead of before. 1817 (__pool_resource::_M_alloc_pools): Ensure both arguments to 1818 std::max have type size_t. 1819 18202023-05-11 Jonathan Wakely <jwakely@redhat.com> 1821 1822 Backported from master: 1823 2022-11-16 Jonathan Wakely <jwakely@redhat.com> 1824 1825 * python/libstdcxx/v6/printers.py (StdExpAnyPrinter): Make 1826 expansion of std::string in manager name more robust. 1827 18282023-05-08 Release Manager 1829 1830 * GCC 12.3.0 released. 1831 18322023-05-03 Kefu Chai <kefu.chai@scylladb.com> 1833 1834 Backported from master: 1835 2023-05-03 Kefu Chai <kefu.chai@scylladb.com> 1836 Jonathan Wakely <jwakely@redhat.com> 1837 1838 PR libstdc++/109703 1839 * include/bits/basic_string.h (basic_string(Iter, Iter, Alloc)): 1840 Initialize _M_string_length. 1841 18422023-05-03 Jonathan Wakely <jwakely@redhat.com> 1843 1844 Backported from master: 1845 2023-04-28 Jonathan Wakely <jwakely@redhat.com> 1846 1847 * doc/doxygen/user.cfg.in (STRIP_FROM_PATH): Remove prefixes 1848 from header paths. 1849 18502023-04-29 Patrick Palka <ppalka@redhat.com> 1851 1852 Backported from master: 1853 2023-04-12 Patrick Palka <ppalka@redhat.com> 1854 1855 * include/std/ranges (lazy_split_view::_OuterIter::_OuterIter): 1856 Propagate _M_trailing_empty in the const-converting constructor 1857 as per LWG 3904. 1858 * testsuite/std/ranges/adaptors/lazy_split.cc (test12): New test. 1859 18602023-04-29 Patrick Palka <ppalka@redhat.com> 1861 1862 Backported from master: 1863 2023-03-14 Patrick Palka <ppalka@redhat.com> 1864 1865 * include/bits/stl_iterator.h (move_iterator::_S_iter_concept): 1866 Define. 1867 (__cpp_lib_move_iterator_concept): Define for C++20. 1868 (move_iterator::iterator_concept): Strengthen as per P2520R0. 1869 * include/std/version (__cpp_lib_move_iterator_concept): Define 1870 for C++20. 1871 * testsuite/24_iterators/move_iterator/p2520r0.cc: New test. 1872 18732023-04-29 Patrick Palka <ppalka@redhat.com> 1874 1875 Backported from master: 1876 2023-03-09 Patrick Palka <ppalka@redhat.com> 1877 1878 PR libstdc++/108362 1879 * include/std/ranges (__detail::__can_single_view): New concept. 1880 (_Single::operator()): Constrain it. Move [[nodiscard]] to the 1881 end of the function declarator. 1882 (__detail::__can_iota_view): New concept. 1883 (_Iota::operator()): Constrain it. Move [[nodiscard]] to the 1884 end of the function declarator. 1885 (__detail::__can_istream_view): New concept. 1886 (_Istream::operator()): Constrain it. Move [[nodiscard]] to the 1887 end of the function declarator. 1888 * testsuite/std/ranges/iota/lwg3292_neg.cc: Prune "in 1889 requirements" diagnostic. 1890 * testsuite/std/ranges/iota/iota_view.cc (test07): New test. 1891 * testsuite/std/ranges/istream_view.cc (test08): New test. 1892 * testsuite/std/ranges/single_view.cc (test07): New test. 1893 18942023-04-28 Patrick Palka <ppalka@redhat.com> 1895 1896 Backported from master: 1897 2023-04-24 Patrick Palka <ppalka@redhat.com> 1898 1899 * include/bits/max_size_type.h (__max_diff_type::operator>>=): 1900 Fix propagation of sign bit. 1901 * testsuite/std/ranges/iota/max_size_type.cc: Avoid using the 1902 non-standard 'signed typedef-name'. Add some compile-time tests 1903 for right-shifting a negative __max_diff_type value by more than 1904 one. 1905 19062023-04-27 Jonathan Wakely <jwakely@redhat.com> 1907 1908 * include/std/atomic: Add missing @endcond doxygen comment. 1909 19102023-04-27 Jonathan Wakely <jwakely@redhat.com> 1911 1912 Backported from master: 1913 2022-11-25 Jonathan Wakely <jwakely@redhat.com> 1914 1915 PR libstdc++/107850 1916 * include/bits/erase_if.h (__erase_nodes_if): Use non-const 1917 reference to the container. 1918 * include/experimental/map (erase_if): Likewise. 1919 * include/experimental/set (erase_if): Likewise. 1920 * include/experimental/unordered_map (erase_if): Likewise. 1921 * include/experimental/unordered_set (erase_if): Likewise. 1922 * include/std/map (erase_if): Likewise. 1923 * include/std/set (erase_if): Likewise. 1924 * include/std/unordered_map (erase_if): Likewise. 1925 * include/std/unordered_set (erase_if): Likewise. 1926 * testsuite/23_containers/map/erasure.cc: Check with 1927 const-incorrect predicate. 1928 * testsuite/23_containers/set/erasure.cc: Likewise. 1929 * testsuite/23_containers/unordered_map/erasure.cc: Likewise. 1930 * testsuite/23_containers/unordered_set/erasure.cc: Likewise. 1931 * testsuite/experimental/map/erasure.cc: Likewise. 1932 * testsuite/experimental/set/erasure.cc: Likewise. 1933 * testsuite/experimental/unordered_map/erasure.cc: Likewise. 1934 * testsuite/experimental/unordered_set/erasure.cc: Likewise. 1935 19362023-04-27 Jonathan Wakely <jwakely@redhat.com> 1937 1938 Backported from master: 1939 2022-11-28 Jonathan Wakely <jwakely@redhat.com> 1940 1941 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc: 1942 Replace non-ASCII character. 1943 19442023-04-27 Jonathan Wakely <jwakely@redhat.com> 1945 1946 Backported from master: 1947 2023-02-28 Jonathan Wakely <jwakely@redhat.com> 1948 1949 PR libstdc++/108952 1950 * include/bits/uses_allocator_args.h 1951 (uses_allocator_construction_args): Implement LWG 3527. 1952 * testsuite/20_util/pair/astuple/get-2.cc: New test. 1953 * testsuite/20_util/scoped_allocator/108952.cc: New test. 1954 * testsuite/20_util/uses_allocator/lwg3527.cc: New test. 1955 19562023-04-27 Jonathan Wakely <jwakely@redhat.com> 1957 1958 Backported from master: 1959 2023-03-31 Jonathan Wakely <jwakely@redhat.com> 1960 1961 PR libstdc++/109339 1962 * include/std/stop_token (_Stop_state_ptr(const stop_source&)): 1963 Add attribute access with access-mode 'none'. 1964 * testsuite/30_threads/stop_token/stop_source/109339.cc: New test. 1965 19662023-04-27 Jonathan Wakely <jwakely@redhat.com> 1967 1968 Backported from master: 1969 2022-11-28 Jonathan Wakely <jwakely@redhat.com> 1970 1971 PR libstdc++/107466 1972 * include/bits/random.h (subtract_with_carry_engine): Use 32-bit 1973 type for default seed. Use 0u as default argument for 1974 subtract_with_carry_engine(result_type) constructor and 1975 seed(result_type) member function. 1976 * include/bits/random.tcc (subtract_with_carry_engine): Use 1977 32-bit type for default seed and engine used for initial state. 1978 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc: 1979 New test. 1980 19812023-04-27 Jonathan Wakely <jwakely@redhat.com> 1982 1983 Backported from master: 1984 2023-04-27 Jonathan Wakely <jwakely@redhat.com> 1985 1986 * include/bits/mofunc_impl.h: Fix typo in doxygen comment. 1987 19882023-04-27 Jonathan Wakely <jwakely@redhat.com> 1989 1990 Backported from master: 1991 2023-04-27 Jonathan Wakely <jwakely@redhat.com> 1992 1993 * doc/doxygen/user.cfg.in (SOURCE_BROWSER): Only set to YES for 1994 HTML docs. 1995 * include/bits/gslice_array.h (_DEFINE_VALARRAY_OPERATOR): Omit 1996 from doxygen docs. 1997 * include/bits/indirect_array.h (_DEFINE_VALARRAY_OPERATOR): 1998 Likewise. 1999 * include/bits/mask_array.h (_DEFINE_VALARRAY_OPERATOR): 2000 Likewise. 2001 * include/bits/slice_array.h (_DEFINE_VALARRAY_OPERATOR): 2002 Likewise. 2003 * include/std/valarray (_DEFINE_VALARRAY_UNARY_OPERATOR) 2004 (_DEFINE_VALARRAY_AUGMENTED_ASSIGNMENT) 2005 (_DEFINE_VALARRAY_EXPR_AUGMENTED_ASSIGNMENT) 2006 (_DEFINE_BINARY_OPERATOR): Likewise. 2007 20082023-04-21 Jonathan Wakely <jwakely@redhat.com> 2009 2010 PR libstdc++/103755 2011 * include/bits/locale_classes.tcc (try_facet, use_facet): Do not 2012 check array index or dynamic type when accessing required 2013 specializations of std::ctype, std::num_get, or std::num_put. 2014 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Adjust 2015 expected errors. 2016 20172023-04-20 Jonathan Wakely <jwakely@redhat.com> 2018 2019 Backported from master: 2020 2022-11-29 Jonathan Wakely <jwakely@redhat.com> 2021 2022 PR libstdc++/107852 2023 PR libstdc++/106199 2024 PR libstdc++/100366 2025 * include/bits/vector.tcc (vector::_M_fill_insert): Copy 2026 _M_start and _M_finish members before allocating. 2027 (vector::_M_default_append): Likewise. 2028 (vector::_M_range_insert): Likewise. 2029 20302023-04-20 Jonathan Wakely <jwakely@redhat.com> 2031 2032 Backported from master: 2033 2023-04-04 Jonathan Wakely <jwakely@redhat.com> 2034 2035 * doc/xml/manual/extensions.xml: Remove std::bad_exception from 2036 example program. 2037 * doc/html/manual/ext_demangling.html: Regenerate. 2038 20392023-04-20 Jonathan Wakely <jwakely@redhat.com> 2040 2041 Backported from master: 2042 2023-04-05 Jonathan Wakely <jwakely@redhat.com> 2043 2044 * include/bits/regex.h (sub_match::swap): New function. 2045 * testsuite/28_regex/sub_match/lwg3204.cc: New test. 2046 20472023-04-20 Jonathan Wakely <jwakely@redhat.com> 2048 2049 Backported from master: 2050 2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2051 2052 PR libstdc++/103387 2053 * include/bits/istream.tcc (istream::_M_extract(ValueT&)): Use 2054 std::use_facet instead of cached _M_num_get facet. 2055 (istream::operator>>(short&)): Likewise. 2056 (istream::operator>>(int&)): Likewise. 2057 * include/bits/ostream.tcc (ostream::_M_insert(ValueT)): Use 2058 std::use_facet instead of cached _M_num_put facet. 2059 20602023-04-20 Jonathan Wakely <jwakely@redhat.com> 2061 2062 Backported from master: 2063 2023-01-15 Jonathan Wakely <jwakely@redhat.com> 2064 2065 * testsuite/30_threads/jthread/jthread.cc: Remove -pthread from 2066 dg-options. 2067 20682023-04-20 Jonathan Wakely <jwakely@redhat.com> 2069 2070 Backported from master: 2071 2023-03-22 Jonathan Wakely <jwakely@redhat.com> 2072 2073 * include/bits/shared_ptr_atomic.h (atomic::operator=(nullptr_t)): 2074 Add overload, as per LWG 3893. 2075 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: 2076 Check assignment from nullptr. 2077 20782023-04-20 Jonathan Wakely <jwakely@redhat.com> 2079 2080 Backported from master: 2081 2023-03-29 Jonathan Wakely <jwakely@redhat.com> 2082 2083 * include/std/expected (expected::value() &): Use const lvalue 2084 for unex member passed to bad_expected_access constructor, as 2085 per LWG 3843. 2086 20872023-04-20 Jonathan Wakely <jwakely@redhat.com> 2088 2089 Backported from master: 2090 2023-02-02 Jonathan Wakely <jwakely@redhat.com> 2091 2092 * include/std/variant (variant::operator=): Implement resolution 2093 of LWG 3585. 2094 * testsuite/20_util/variant/lwg3585.cc: New test. 2095 20962023-04-12 Patrick Palka <ppalka@redhat.com> 2097 2098 Backported from master: 2099 2023-04-12 Patrick Palka <ppalka@redhat.com> 2100 2101 * src/c++17/floating_from_chars.cc: Include <algorithm>, 2102 <iterator>, <limits> and <cstdint>. 2103 21042023-03-30 Jonathan Wakely <jwakely@redhat.com> 2105 2106 Backported from master: 2107 2023-03-29 Jonathan Wakely <jwakely@redhat.com> 2108 2109 PR libstdc++/109242 2110 * include/std/optional (transform): Use std::remove_cv_t. 2111 * testsuite/20_util/optional/monadic/pr109242.cc: New test. 2112 21132023-03-28 Jonathan Wakely <jwakely@redhat.com> 2114 2115 Backported from master: 2116 2022-12-16 Jonathan Wakely <jwakely@redhat.com> 2117 2118 PR libstdc++/108118 2119 * include/bits/shared_ptr_base.h (weak_ptr::operator=): 2120 Implement as move-and-swap exactly as specified in the standard. 2121 * testsuite/20_util/weak_ptr/cons/self_move.cc: New test. 2122 21232023-03-28 Jonathan Wakely <jwakely@redhat.com> 2124 2125 Backported from master: 2126 2022-11-03 Jonathan Wakely <jwakely@redhat.com> 2127 2128 * include/bits/ranges_algobase.h (__detail::__copy_or_move): 2129 Move output iterator. 2130 * testsuite/25_algorithms/copy/constrained.cc: Check copying to 2131 move-only output iterator. 2132 21332023-03-28 Bj��rn Sch��pers <bjoern@hazardy.de> 2134 2135 Backported from master: 2136 2023-01-14 Bj��rn Sch��pers <bjoern@hazardy.de> 2137 2138 * include/std/stacktrace (stacktrace_entry::_S_demangle): Use 2139 raw __name if __cxa_demangle could not demangle it. 2140 21412023-03-28 Jonathan Wakely <jwakely@redhat.com> 2142 2143 Backported from master: 2144 2022-12-12 Jonathan Wakely <jwakely@redhat.com> 2145 2146 * include/std/stacktrace (operator<<): Only output to narrow 2147 ostreams (LWG 3515). 2148 * testsuite/19_diagnostics/stacktrace/synopsis.cc: 2149 21502023-03-28 Jonathan Wakely <jwakely@redhat.com> 2151 2152 Backported from master: 2153 2022-12-09 Jonathan Wakely <jwakely@redhat.com> 2154 2155 * include/bits/chrono.h (duration_cast, floor, round, abs, ceil) 2156 (time_point_cast): Add [[nodiscard]] attribute and doxygen 2157 comments. 2158 (treat_as_floating_point): Add doxygen commen. 2159 21602023-03-28 Jonathan Wakely <jwakely@redhat.com> 2161 2162 Backported from master: 2163 2022-12-09 Jonathan Wakely <jwakely@redhat.com> 2164 2165 * include/bits/chrono.h (duration, time_point): Change 'struct' 2166 to 'class'. 2167 21682023-03-28 Jonathan Wakely <jwakely@redhat.com> 2169 2170 Backported from master: 2171 2023-01-26 Jonathan Wakely <jwakely@redhat.com> 2172 2173 PR libstdc++/108554 2174 * include/bits/stl_tree.h (_Rb_tree_insert_and_rebalance): Add 2175 nonnull attribute. 2176 (_Rb_tree_rebalance_for_erase): Add nonnull and returns_nonnull 2177 attributes. 2178 * testsuite/23_containers/map/modifiers/108554.cc: New test. 2179 21802023-03-28 Jonathan Wakely <jwakely@redhat.com> 2181 2182 Backported from master: 2183 2022-09-23 Jonathan Wakely <jwakely@redhat.com> 2184 2185 * include/std/bitset (bitset::_M_copy_to_string): Find set bits 2186 instead of iterating over individual bits. 2187 21882023-03-28 Jonathan Wakely <jwakely@redhat.com> 2189 2190 Backported from master: 2191 2022-09-15 Jonathan Wakely <jwakely@redhat.com> 2192 2193 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_PRE_LOCK): 2194 Replace with ... 2195 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK): ... this, add try_lock flag. 2196 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK_FAILED): New macro using 2197 try_lock_failed flag 2198 (_GLIBCXX_TSAN_MUTEX_POST_LOCK): Rename to ... 2199 (_GLIBCXX_TSAN_MUTEX_LOCKED): ... this. 2200 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK): Remove invalid flag. 2201 (_GLIBCXX_TSAN_MUTEX_POST_UNLOCK): Remove invalid flag. 2202 (_Sp_atomic::_Atomic_count::lock): Use new macros. 2203 22042023-03-28 Jonathan Wakely <jwakely@redhat.com> 2205 2206 Backported from master: 2207 2022-09-14 Jonathan Wakely <jwakely@redhat.com> 2208 2209 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_DESTROY) 2210 (_GLIBCXX_TSAN_MUTEX_PRE_LOCK, _GLIBCXX_TSAN_MUTEX_POST_LOCK) 2211 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK, _GLIBCXX_TSAN_MUTEX_POST_UNLOCK) 2212 (_GLIBCXX_TSAN_MUTEX_PRE_SIGNAL, _GLIBCXX_TSAN_MUTEX_POST_SIGNAL): 2213 Define macros for TSan annotation functions. 2214 (_Sp_atomic::_Atomic_count): Add annotations. 2215 22162023-03-28 Jonathan Wakely <jwakely@redhat.com> 2217 2218 Backported from master: 2219 2022-05-17 Jonathan Wakely <jwakely@redhat.com> 2220 2221 * include/std/memory_resource (new_delete_resource): Add 2222 nodiscard, returns_nonnull and const attributes. 2223 (null_memory_resource): Likewise. 2224 (set_default_resource, get_default_resource): Add returns_nonnull 2225 attribute. 2226 (memory_resource::is_equal): Add nodiscard attribute. 2227 (operator==, operator!=): Likewise. 2228 22292023-03-28 Jonathan Wakely <jwakely@redhat.com> 2230 2231 Backported from master: 2232 2022-09-14 Jonathan Wakely <jwakely@redhat.com> 2233 2234 * include/std/future 2235 (_State_baseV2::__setter(exception_ptr&, promise&)): Add 2236 assertion for LWG 2276 precondition. 2237 * testsuite/30_threads/promise/members/set_exception_neg.cc: 2238 New test. 2239 22402023-03-28 Jonathan Wakely <jwakely@redhat.com> 2241 2242 Backported from master: 2243 2022-09-08 Jonathan Wakely <jwakely@redhat.com> 2244 2245 * include/c_global/cstddef (byte): Add always_inline attribute 2246 to all operator overloads. 2247 (to_integer): Add always_inline attribute. 2248 22492023-03-28 Jonathan Wakely <jwakely@redhat.com> 2250 2251 Backported from master: 2252 2022-09-08 Jonathan Wakely <jwakely@redhat.com> 2253 2254 * include/std/system_error (__adl_only::make_error_code): Add 2255 deleted function. 2256 (__adl_only::make_error_condition): Likewise. 2257 (error_code::error_code(ErrorCodeEnum)): Add using-declaration 2258 for deleted function. 2259 (error_condition::error_condition(ErrorConditionEnum)): 2260 Likewise. 2261 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: New test. 2262 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc: New test. 2263 22642023-03-28 Jonathan Wakely <jwakely@redhat.com> 2265 2266 Backported from master: 2267 2022-05-17 Jonathan Wakely <jwakely@redhat.com> 2268 2269 * include/bits/ios_base.h (io_category): Add const and nodiscard 2270 attributes. 2271 (make_error_code, make_error_condition): Add nodiscard. 2272 * include/std/future (future_category): Add const and nodiscard. 2273 (make_error_code, make_error_condition): Add nodiscard. 2274 * include/std/system_error (generic_category system_category): 2275 Add nodiscard. Replace _GLIBCXX_CONST with C++11 attribute. 2276 (error_code::value, error_code::category, error_code::operator bool) 2277 (error_condition::value, error_condition::category) 2278 (error_condition::operator bool, make_error_code) 2279 (make_error_condition, operator==, operator!=, operator<=>): Add 2280 nodiscard. 2281 22822023-03-28 Jonathan Wakely <jwakely@redhat.com> 2283 2284 Backported from master: 2285 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 2286 2287 * include/bits/std_thread.h (thread, thread::id): Improve 2288 doxygen docs. 2289 * include/std/future: Likewise. 2290 * include/std/thread (jthread): Likewise. 2291 22922023-03-28 Jonathan Wakely <jwakely@redhat.com> 2293 2294 Backported from master: 2295 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 2296 2297 * include/std/system_error: Improve doxygen comments. 2298 22992023-03-28 Jonathan Wakely <jwakely@redhat.com> 2300 2301 Backported from master: 2302 2023-02-16 Jonathan Wakely <jwakely@redhat.com> 2303 2304 * include/ext/throw_allocator.h: Use reserved names for 2305 parameters. 2306 23072023-03-28 Jonathan Wakely <jwakely@redhat.com> 2308 2309 Backported from master: 2310 2022-11-25 Jonathan Wakely <jwakely@redhat.com> 2311 2312 * acinclude.m4 (GLIBCXX_CHECK_UCHAR_H): Don't use AC_MSG_RESULT 2313 unless the AC_MSG_CHECKING happened. 2314 * configure: Regenerate. 2315 23162023-03-28 Jonathan Wakely <jwakely@redhat.com> 2317 2318 Backported from master: 2319 2023-01-12 Jonathan Wakely <jwakely@redhat.com> 2320 2321 * doc/xml/manual/abi.xml: Add latest library versions. 2322 * doc/html/manual/abi.html: Regenerate. 2323 23242023-03-28 Jonathan Wakely <jwakely@redhat.com> 2325 2326 Backported from master: 2327 2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2328 2329 * include/bits/char_traits.h (char_traits::copy): Return without 2330 using memcpy if n==0. 2331 (char_traits::assign): Likewise for memset. 2332 23332023-03-28 Jonathan Wakely <jwakely@redhat.com> 2334 2335 Backported from master: 2336 2023-03-28 Jonathan Wakely <jwakely@redhat.com> 2337 2338 PR libstdc++/109299 2339 * include/bits/basic_string.h (basic_string::_M_is_local()): Add 2340 hint for compiler that local strings fit in the local buffer. 2341 23422023-03-28 Jonathan Wakely <jwakely@redhat.com> 2343 2344 Backported from master: 2345 2023-03-01 Jonathan Wakely <jwakely@redhat.com> 2346 2347 * include/bits/cow_string.h: Fix typo in comment. 2348 23492023-03-28 Jonathan Wakely <jwakely@redhat.com> 2350 2351 Backported from master: 2352 2023-02-16 Jonathan Wakely <jwakely@redhat.com> 2353 2354 * include/experimental/optional: Fix header name in comment. 2355 23562023-03-28 Jonathan Wakely <jwakely@redhat.com> 2357 2358 Backported from master: 2359 2023-01-16 Jonathan Wakely <jwakely@redhat.com> 2360 2361 PR libstdc++/108413 2362 * include/c_compatibility/stdatomic.h: Change copyright line to 2363 be consistent with other headers contributed under DCO terms. 2364 * include/std/expected: Add full stop to copyright line. 2365 23662023-03-21 Matthias Kretz <m.kretz@gsi.de> 2367 2368 Backported from master: 2369 2023-03-21 Matthias Kretz <m.kretz@gsi.de> 2370 2371 * include/experimental/bits/simd_x86.h 2372 (_SimdImplX86::_S_divides): Replace test for __GCC_IEC_559 == 0 2373 with __RECIPROCAL_MATH__. 2374 23752023-03-21 Matthias Kretz <m.kretz@gsi.de> 2376 2377 Backported from master: 2378 2023-03-21 Matthias Kretz <m.kretz@gsi.de> 2379 2380 * include/experimental/bits/simd_detail.h: Don't define 2381 _GLIBCXX_SIMD_WORKAROUND_PR90993 for Clang. 2382 * include/experimental/bits/simd_x86.h (_S_divides): Remove 2383 check for __clang__. 2384 23852023-03-21 Matthias Kretz <m.kretz@gsi.de> 2386 2387 Backported from master: 2388 2023-03-21 Matthias Kretz <m.kretz@gsi.de> 2389 2390 * testsuite/experimental/simd/tests/operators.cc: Clang doesn't 2391 define __GCC_IEC_559. Use __STDC_IEC_559__ instead. 2392 23932023-03-20 Fran��ois Dumont <fdumont@gcc.gnu.org> 2394 2395 Backported from master: 2396 2022-11-16 Fran��ois Dumont <fdumont@gcc.gnu.org> 2397 2398 * python/libstdcxx/v6/printers.py (FilteringTypePrinter): Rename 'match' field 2399 'template'. Add self.targ1 to specify the first template parameter of the instantiation 2400 to match. 2401 (add_one_type_printer): Add targ1 optional parameter, default to None. 2402 Use gdb.types.get_basic_type to compare the type to recognize and the type 2403 returned from the typedef lookup. 2404 (register_type_printers): Adapt calls to add_one_type_printers. 2405 24062023-03-20 Fran��ois Dumont <fdumont@gcc.gnu.org> 2407 2408 Backported from master: 2409 2022-10-03 Fran��ois Dumont <fdumont@gcc.gnu.org> 2410 2411 * python/libstdcxx/v6/printers.py (Printer.add_version): Do not add version 2412 namespace for __cxx11 symbols. 2413 (add_one_template_type_printer): Likewise. 2414 (add_one_type_printer): Likewise. 2415 (FilteringTypePrinter._recognizer.recognize): Add a workaround for std::string & al 2416 ambiguous typedef matching both std:: and std::__cxx11:: symbols. 2417 * testsuite/libstdc++-prettyprinters/cxx17.cc: Remove obsolete 2418 \#define _GLIBCXX_USE_CXX11_ABI 0. 2419 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. Adapt test to accept 2420 std::__cxx11::list. 2421 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise. 2422 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise. 2423 * testsuite/libstdc++-prettyprinters/80276.cc: Likewise and remove xfail for c++20 2424 and debug mode. 2425 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise. 2426 24272023-03-20 Fran��ois Dumont <fdumont@gcc.gnu.org> 2428 2429 Backported from master: 2430 2022-09-22 Fran��ois Dumont <fdumont@gcc.gnu.org> 2431 2432 * python/libstdcxx/v6/printers.py: Remove ptinter registration for non-existing 2433 types std::__debug::unique_ptr, std::__debug::stack, std::__debug::queue, 2434 std::__debug::priority_queue. 2435 24362023-03-20 Jonathan Wakely <jwakely@redhat.com> 2437 2438 Backported from master: 2439 2023-03-10 Jonathan Wakely <jwakely@redhat.com> 2440 2441 PR libstdc++/109064 2442 * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker): 2443 Remove self-recursion in __init__. Add missing _supports. 2444 * testsuite/libstdc++-xmethods/shared_ptr.cc: Check use_count() 2445 and unique(). 2446 24472023-03-20 Jonathan Wakely <jwakely@redhat.com> 2448 2449 PR libstdc++/109182 2450 * include/std/expected (expected<void>::expected(in_place_t)): 2451 Remove template-head. 2452 24532023-03-20 Jonathan Wakely <jwakely@redhat.com> 2454 2455 PR libstdc++/109165 2456 * include/std/coroutine (hash<>::operator()): Add const. 2457 * testsuite/18_support/coroutines/hash.cc: New test. 2458 24592023-03-10 Thomas W Rodgers <rodgert@twrodgers.com> 2460 2461 Backported from master: 2462 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com> 2463 2464 PR libstdc++/103934 2465 * include/std/atomic (atomic_flag_wait): Add. 2466 (atomic_flag_wait_explicit): Add. 2467 (atomic_flag_notify): Add. 2468 (atomic_flag_notify_explicit): Add. 2469 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: 2470 Add test case to cover missing atomic_flag free functions. 2471 24722023-02-23 Matthias Kretz <m.kretz@gsi.de> 2473 2474 Backported from master: 2475 2023-02-23 Matthias Kretz <m.kretz@gsi.de> 2476 2477 PR libstdc++/108030 2478 * include/experimental/bits/simd.h (__vector_broadcast): 2479 Implement via __vector_broadcast_impl instead of 2480 __call_with_n_evaluations + 2 lambdas. 2481 (__vector_broadcast_impl): New. 2482 24832023-02-23 Matthias Kretz <m.kretz@gsi.de> 2484 2485 Backported from master: 2486 2023-02-23 Matthias Kretz <m.kretz@gsi.de> 2487 2488 * include/experimental/bits/simd_builtin.h (_S_set): Compare as 2489 int. The actual range of these indexes is very small. 2490 24912023-02-23 Matthias Kretz <m.kretz@gsi.de> 2492 2493 Backported from master: 2494 2023-02-23 Matthias Kretz <m.kretz@gsi.de> 2495 2496 * include/experimental/bits/simd_x86.h (_S_bit_shift_left) 2497 (_S_bit_shift_right): Declare constexpr. The implementation was 2498 already expecting constexpr evaluation. 2499 25002023-02-23 Matthias Kretz <m.kretz@gsi.de> 2501 2502 Backported from master: 2503 2023-02-20 Matthias Kretz <m.kretz@gsi.de> 2504 2505 * include/experimental/bits/simd.h (__extract_part, split): 2506 Use reserved name for template parameter. 2507 25082023-02-21 Jonathan Wakely <jwakely@redhat.com> 2509 2510 Backported from master: 2511 2022-08-31 Jonathan Wakely <jwakely@redhat.com> 2512 2513 * include/bits/refwrap.h (reference_wrapper::operator()): Add 2514 noexcept-specifier and use __invoke_result instead of result_of. 2515 * testsuite/20_util/reference_wrapper/invoke-noexcept.cc: New test. 2516 25172023-02-21 Jonathan Wakely <jwakely@redhat.com> 2518 2519 Backported from master: 2520 2023-02-02 Jonathan Wakely <jwakely@redhat.com> 2521 2522 PR libstdc++/108636 2523 * include/bits/fs_path.h (path::path(string_view, _Type)) 2524 (path::_Cmpt::_Cmpt(string_view, _Type, size_t)): Move inline 2525 definitions to ... 2526 * src/c++17/fs_path.cc: ... here. 2527 * testsuite/27_io/filesystem/path/108636.cc: New test. 2528 25292023-02-16 Matthias Kretz <m.kretz@gsi.de> 2530 2531 Backported from master: 2532 2023-02-16 Matthias Kretz <m.kretz@gsi.de> 2533 2534 * include/experimental/bits/simd_math.h (__hypot): Bitcasting 2535 between scalars requires the __bit_cast helper function instead 2536 of simd_bit_cast. 2537 25382023-02-16 Matthias Kretz <m.kretz@gsi.de> 2539 2540 Backported from master: 2541 2023-02-16 Matthias Kretz <m.kretz@gsi.de> 2542 2543 * include/experimental/bits/simd_x86.h 2544 (_SimdImplX86::_S_not_equal_to, _SimdImplX86::_S_less) 2545 (_SimdImplX86::_S_less_equal): Do not call 2546 __builtin_is_constant_evaluated in constexpr-if. 2547 25482023-02-16 Matthias Kretz <m.kretz@gsi.de> 2549 2550 Backported from master: 2551 2023-02-16 Matthias Kretz <m.kretz@gsi.de> 2552 2553 * testsuite/experimental/simd/tests/bits/verify.h 2554 (verify::verify): Use %zx for size_t in format string. 2555 25562023-02-16 Matthias Kretz <m.kretz@gsi.de> 2557 2558 Backported from master: 2559 2023-02-16 Matthias Kretz <m.kretz@gsi.de> 2560 2561 * testsuite/experimental/simd/README.md: Document the timeout 2562 and timeout-factor directives. Minor typo fixed. 2563 25642023-02-16 Matthias Kretz <m.kretz@gsi.de> 2565 2566 Backported from master: 2567 2023-02-16 Matthias Kretz <m.kretz@gsi.de> 2568 2569 * include/experimental/bits/simd.h 2570 (_SimdWrapper::_M_is_constprop_none_of) 2571 (_SimdWrapper::_M_is_constprop_all_of): Return false unless the 2572 computed result still satisfies __builtin_constant_p. 2573 25742023-02-14 Thomas W Rodgers <rodgert@twrodgers.com> 2575 2576 Backported from master: 2577 2023-02-14 Thomas W Rodgers <rodgert@twrodgers.com> 2578 2579 PR libstdc++/103934 2580 * include/std/atomic (atomic_flag_test): Add. 2581 (atomic_flag_test_explicit): Add. 2582 * testsuite/29_atomics/atomic_flag/test/explicit.cc: Add 2583 test case to cover missing atomic_flag free functions. 2584 * testsuite/29_atomics/atomic_flag/test/implicit.cc: 2585 Likewise. 2586 25872023-02-10 Jakub Jelinek <jakub@redhat.com> 2588 2589 Backported from master: 2590 2022-11-24 Jakub Jelinek <jakub@redhat.com> 2591 2592 PR libstdc++/107468 2593 * src/c++17/fast_float/fast_float.h: Partial merge from fast_float 2594 2ef9abbcf6a11958b6fa685a89d0150022e82e78 commit. 2595 25962023-02-10 Jakub Jelinek <jakub@redhat.com> 2597 2598 Backported from master: 2599 2022-11-07 Jakub Jelinek <jakub@redhat.com> 2600 2601 PR libstdc++/107468 2602 * src/c++17/fast_float/fast_float.h: Partial merge from fast_float 2603 662497742fea7055f0e0ee27e5a7ddc382c2c38e commit. 2604 * testsuite/20_util/from_chars/pr107468.cc: New test. 2605 26062023-02-02 Jonathan Wakely <jwakely@redhat.com> 2607 2608 Backported from master: 2609 2023-02-01 Jonathan Wakely <jwakely@redhat.com> 2610 2611 * src/c++11/random.cc (random_device::_M_fini): Do not try to 2612 close the file handle if the target doesn't support the 2613 /dev/random and /dev/urandom files. 2614 26152023-02-02 Jonathan Wakely <jwakely@redhat.com> 2616 2617 Backported from master: 2618 2023-02-01 Jonathan Wakely <jwakely@redhat.com> 2619 2620 * config/os/generic/error_constants.h (errc::value_too_large) 2621 [__AVR__]: Define. 2622 * src/c++11/system_error.cc 2623 (system_category::default_error_condition) [__AVR__]: Only match 2624 recognize values equal to EDOM, ERANGE, ENOSYS and EINTR. 2625 * src/c++17/fs_ops.cc (fs::current_path) [__AVR__]: Do not check 2626 for ENOENT etc. in switch. 2627 (fs::remove_all) [__AVR__]: Likewise. 2628 * src/filesystem/ops-common.h [__AVR__]: Do not use POSIX open, 2629 close etc. 2630 26312023-02-02 Patrick Palka <ppalka@redhat.com> 2632 2633 Backported from master: 2634 2022-11-06 Patrick Palka <ppalka@redhat.com> 2635 2636 * include/bits/atomic_wait.h (_detail::__platform_wait_alignment): 2637 Declare inline. Remove redundant static specifier. 2638 (__detail::__atomic_spin_count_relax): Declare inline. 2639 (__detail::__atomic_spin_count): Likewise. 2640 * include/bits/regex_automaton.h (__detail::_S_invalid_state_id): 2641 Declare inline for C++17. Declare constexpr. Remove 2642 redundant const and static specifiers. 2643 * include/bits/regex_error.h (regex_constants::error_collate): 2644 Declare inline for C++17 as per P0607R0. 2645 (regex_constants::error_ctype): Likewise. 2646 (regex_constants::error_escape): Likewise. 2647 (regex_constants::error_backref): Likewise. 2648 (regex_constants::error_brack): Likewise. 2649 (regex_constants::error_paren): Likewise. 2650 (regex_constants::error_brace): Likewise. 2651 (regex_constants::error_badbrace): Likewise. 2652 (regex_constants::error_range): Likewise. 2653 (regex_constants::error_space): Likewise. 2654 (regex_constants::error_badrepeat): Likewise. 2655 (regex_constants::error_complexity): Likewise. 2656 (regex_constants::error_stack): Likewise. 2657 * include/ext/concurrence.h (__gnu_cxx::__default_lock_policy): 2658 Likewise. Remove redundant static specifier. 2659 * include/pstl/execution_defs.h (execution::seq): Declare inline 2660 for C++17 as per P0607R0. 2661 (execution::par): Likewise. 2662 (execution::par_unseq): Likewise. 2663 (execution::unseq): Likewise. 2664 26652023-01-18 Jonathan Wakely <jwakely@redhat.com> 2666 2667 Backported from master: 2668 2022-12-22 Jonathan Wakely <jwakely@redhat.com> 2669 2670 PR libstdc++/105730 2671 * src/c++11/compatibility-condvar.cc (__nothrow_wait_cv::wait): 2672 Access private data member of base class and call its wait 2673 member. 2674 26752023-01-16 Jonathan Wakely <jwakely@redhat.com> 2676 2677 Backported from master: 2678 2022-08-04 Jonathan Wakely <jwakely@redhat.com> 2679 2680 PR libstdc++/106183 2681 * include/bits/atomic_wait.h (__waiter_pool_base::_M_notify): 2682 Move increment of _M_ver here. 2683 [!_GLIBCXX_HAVE_PLATFORM_WAIT]: Lock mutex around increment. 2684 Use relaxed memory order and always notify all waiters. 2685 (__waiter_base::_M_do_wait) [!_GLIBCXX_HAVE_PLATFORM_WAIT]: 2686 Check value again after locking mutex. 2687 (__waiter_base::_M_notify): Remove increment of _M_ver. 2688 26892023-01-05 Jonathan Wakely <jwakely@redhat.com> 2690 2691 Backported from master: 2692 2023-01-05 Jonathan Wakely <jwakely@redhat.com> 2693 2694 PR libstdc++/108265 2695 * include/std/chrono (hh_mm_ss): Do not use chrono::abs if 2696 duration rep is unsigned. Remove incorrect noexcept-specifier. 2697 * testsuite/std/time/hh_mm_ss/1.cc: Check unsigned rep. Check 2698 floating-point representations. Check default construction. 2699 27002022-12-21 Jonathan Wakely <jwakely@redhat.com> 2701 2702 Backported from master: 2703 2022-11-23 Jonathan Wakely <jwakely@redhat.com> 2704 2705 PR libstdc++/107814 2706 * testsuite/experimental/filesystem/iterators/error_reporting.cc: 2707 Use a static buffer with space after it. 2708 27092022-12-21 Jonathan Wakely <jwakely@redhat.com> 2710 2711 Backported from master: 2712 2022-12-16 Jonathan Wakely <jwakely@redhat.com> 2713 2714 * include/std/expected (expected::_M_swap_val_unex): Guard the 2715 correct object. 2716 (expected::swap): Move is_swappable 2717 requirement from static_assert to constraint. 2718 (swap): Likewise. 2719 (operator==): Remove noexcept-specifier. 2720 * testsuite/20_util/expected/swap.cc: Check swapping of 2721 types without non-throwing move constructor. Check constraints 2722 on swap. 2723 * testsuite/20_util/expected/unexpected.cc: Check constraints on 2724 swap. 2725 * testsuite/20_util/expected/equality.cc: New test. 2726 27272022-12-14 Jonathan Wakely <jwakely@redhat.com> 2728 2729 Backported from master: 2730 2022-12-14 Jonathan Wakely <jwakely@redhat.com> 2731 2732 PR libstdc++/108097 2733 * include/std/stacktrace (basic_stracktrace::_Impl): Do not 2734 multiply N by sizeof(value_type) when allocating. 2735 27362022-11-24 Jonathan Wakely <jwakely@redhat.com> 2737 2738 Backported from master: 2739 2022-09-15 Jonathan Wakely <jwakely@redhat.com> 2740 2741 * include/std/memory: Do not include <bits/stl_algobase.h>. 2742 27432022-11-24 Jonathan Wakely <jwakely@redhat.com> 2744 2745 Backported from master: 2746 2022-11-11 Jonathan Wakely <jwakely@redhat.com> 2747 2748 * testsuite/20_util/tuple/swap.cc (MoveOnly::operator==): Add 2749 const qualifier. 2750 * testsuite/26_numerics/valarray/87641.cc (X::operator==): 2751 Likewise. 2752 27532022-11-24 Jonathan Wakely <jwakely@redhat.com> 2754 2755 Backported from master: 2756 2022-11-02 Jonathan Wakely <jwakely@redhat.com> 2757 2758 * include/std/expected (expected::_M_invalid): Remove. 2759 27602022-11-24 Jonathan Wakely <jwakely@redhat.com> 2761 2762 Backported from master: 2763 2022-11-21 Jonathan Wakely <jwakely@redhat.com> 2764 2765 * include/bits/chrono.h (duration): Check preconditions on 2766 template arguments before using them. 2767 27682022-11-24 Jonathan Wakely <jwakely@redhat.com> 2769 2770 Backported from master: 2771 2022-10-28 Jonathan Wakely <jwakely@redhat.com> 2772 2773 * include/bits/fs_path.h (path::filename()): Fix dangling 2774 reference. 2775 27762022-11-24 Jonathan Wakely <jwakely@redhat.com> 2777 2778 Backported from master: 2779 2022-09-14 Jonathan Wakely <jwakely@redhat.com> 2780 2781 * doc/xml/manual/intro.xml: Document LWG 1203. 2782 * doc/html/*: Regenerate. 2783 27842022-11-24 Jonathan Wakely <jwakely@redhat.com> 2785 2786 Backported from master: 2787 2022-09-07 Jonathan Wakely <jwakely@redhat.com> 2788 2789 * include/std/barrier: Add missing runtime exception. 2790 27912022-11-24 Jonathan Wakely <jwakely@redhat.com> 2792 2793 Backported from master: 2794 2022-08-04 Jonathan Wakely <jwakely@redhat.com> 2795 2796 * include/bits/fs_dir.h (directory_iterator): Add comparison 2797 with std::default_sentinel_t. Remove redundant operator!= for 2798 C++20. 2799 * (recursive_directory_iterator): Likewise. 2800 * include/bits/iterator_concepts.h [!__cpp_lib_concepts] 2801 (default_sentinel_t, default_sentinel): Define even if concepts 2802 are not supported. 2803 * include/bits/regex.h (regex_iterator): Add comparison with 2804 std::default_sentinel_t. Remove redundant operator!= for C++20. 2805 (regex_token_iterator): Likewise. 2806 (regex_token_iterator::_M_end_of_seq()): Add noexcept. 2807 * testsuite/27_io/filesystem/iterators/lwg3719.cc: New test. 2808 * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc: 2809 New test. 2810 * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc: 2811 New test. 2812 28132022-11-24 Jonathan Wakely <jwakely@redhat.com> 2814 2815 Backported from master: 2816 2022-09-23 Jonathan Wakely <jwakely@redhat.com> 2817 2818 PR libstdc++/91456 2819 * include/std/type_traits (__is_nothrow_invocable): Remove. 2820 (__is_invocable_impl::__nothrow_type): New member type which 2821 checks if the conversion can throw. 2822 (__is_nt_invocable_impl): Replace class template with alias 2823 template to __is_nt_invocable_impl::__nothrow_type. 2824 * testsuite/20_util/is_nothrow_invocable/91456.cc: New test. 2825 * testsuite/20_util/is_nothrow_convertible/value.cc: Remove 2826 macro used by value_ext.cc test. 2827 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Remove 2828 test for non-standard __is_nothrow_invocable trait. 2829 28302022-11-22 Jonathan Wakely <jwakely@redhat.com> 2831 2832 PR libstdc++/106201 2833 * include/bits/fs_path.h (filesystem::swap(path&, path&)): 2834 Replace with abbreviated function template. 2835 * include/experimental/bits/fs_path.h (filesystem::swap): 2836 Likewise. 2837 * testsuite/27_io/filesystem/iterators/106201.cc: New test. 2838 * testsuite/experimental/filesystem/iterators/106201.cc: New test. 2839 28402022-11-22 Jonathan Wakely <jwakely@redhat.com> 2841 2842 Backported from master: 2843 2022-11-22 Jonathan Wakely <jwakely@redhat.com> 2844 2845 PR libstdc++/107801 2846 * src/c++17/memory_resource.cc (pool_sizes): Disable large pools 2847 for targets with 16-bit int. 2848 28492022-11-14 Jonathan Wakely <jwakely@redhat.com> 2850 2851 * include/bits/mofunc_impl.h (move_only_function::__param_t): 2852 Use __is_scalar instead of is_trivially_copyable. 2853 * testsuite/20_util/move_only_function/call.cc: Check parameters 2854 involving incomplete types. 2855 28562022-11-14 Jonathan Wakely <jwakely@redhat.com> 2857 2858 Backported from master: 2859 2022-11-11 Jonathan Wakely <jwakely@redhat.com> 2860 2861 PR libstdc++/95048 2862 * include/bits/fs_path.h (path::_Codecvt): New class template 2863 that selects the kind of code conversion done. 2864 (path::_Codecvt<wchar_t>): Select based on sizeof(wchar_t). 2865 (_GLIBCXX_CONV_FROM_UTF8): New macro to allow the same code to 2866 be used for Windows and POSIX. 2867 (path::_S_convert(const EcharT*, const EcharT*)): Simplify by 2868 using _Codecvt and _GLIBCXX_CONV_FROM_UTF8 abstractions. 2869 (path::_S_str_convert(basic_string_view<value_type>, const A&)): 2870 Simplify nested conditions. 2871 * include/experimental/bits/fs_path.h (path::_Cvt): Define 2872 nested typedef controlling type of code conversion done. 2873 (path::_Cvt::_S_wconvert): Use new typedef. 2874 (path::string(const A&)): Likewise. 2875 * testsuite/27_io/filesystem/path/construct/95048.cc: New test. 2876 * testsuite/experimental/filesystem/path/construct/95048.cc: New 2877 test. 2878 28792022-11-14 Nathaniel Shead <nathanieloshead@gmail.com> 2880 2881 Backported from master: 2882 2022-11-11 Nathaniel Shead <nathanieloshead@gmail.com> 2883 2884 PR libstdc++/103295 2885 * include/bits/basic_string.h (_M_use_local_data): Set active 2886 member to _M_local_buf. 2887 28882022-11-08 Jonathan Wakely <jwakely@redhat.com> 2889 2890 Backported from master: 2891 2022-11-08 Jonathan Wakely <jwakely@redhat.com> 2892 2893 * doc/xml/authors.xml: Remove empty author element. 2894 * doc/xml/manual/spine.xml: Likewise. 2895 * doc/html/manual/index.html: Regenerate. 2896 28972022-10-19 Alexandre Oliva <oliva@adacore.com> 2898 2899 Backported from master: 2900 2022-06-22 Alexandre Oliva <oliva@adacore.com> 2901 2902 * libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS] 2903 (__eh_globals_init::~__eh_globals_init): Clear _S_init first. 2904 29052022-09-29 Jonathan Wakely <jwakely@redhat.com> 2906 2907 Backported from master: 2908 2022-09-28 Jonathan Wakely <jwakely@redhat.com> 2909 2910 * doc/xml/manual/evolution.xml: Document std::bind API 2911 changes. 2912 * doc/xml/manual/intro.xml: Document LWG 2487 status. 2913 * doc/xml/manual/using.xml: Clarify default value of 2914 _GLIBCXX_USE_DEPRECATED. 2915 * doc/html/*: Regenerate. 2916 * include/std/functional (_Bind::operator()(Args&&...) volatile) 2917 (_Bind::operator()(Args&&...) const volatile) 2918 (_Bind_result::operator()(Args&&...) volatile) 2919 (_Bind_result::operator()(Args&&...) const volatile): Replace 2920 with deleted overload for C++20 and later. 2921 * testsuite/20_util/bind/cv_quals.cc: Check for deprecated 2922 warnings in C++17. 2923 * testsuite/20_util/bind/cv_quals_2.cc: Likewise, and check for 2924 ill-formed in C++20. 2925 29262022-09-16 Jonathan Wakely <jwakely@redhat.com> 2927 2928 * doc/xml/manual/abi.xml: Document GLIBCXX_3.4.30 version. 2929 * doc/html/manual/abi.html: Regenerate. 2930 29312022-09-12 Patrick Palka <ppalka@redhat.com> 2932 2933 Backported from master: 2934 2022-09-12 Patrick Palka <ppalka@redhat.com> 2935 2936 PR libstdc++/106320 2937 * testsuite/std/ranges/adaptors/join.cc (test13): New test. 2938 29392022-09-07 Jonathan Wakely <jwakely@redhat.com> 2940 2941 Backported from master: 2942 2022-08-22 Jonathan Wakely <jwakely@redhat.com> 2943 2944 PR libstdc++/106695 2945 * include/bits/std_thread.h (thread::_State_impl): Forward 2946 individual arguments to _Invoker constructor. 2947 (thread::_Invoker): Add constructor. Delete copies. 2948 * include/std/future (__future_base::_Deferred_state): Forward 2949 individual arguments to _Invoker constructor. 2950 (__future_base::_Async_state_impl): Likewise. 2951 * testsuite/30_threads/async/106695.cc: New test. 2952 * testsuite/30_threads/thread/106695.cc: New test. 2953 29542022-09-07 Jonathan Wakely <jwakely@redhat.com> 2955 2956 Backported from master: 2957 2022-08-22 Jonathan Wakely <jwakely@redhat.com> 2958 2959 PR libstdc++/106607 2960 * include/bits/regex_compiler.tcc (_Compiler::_M_cur_int_value): 2961 Use built-ins to check for integer overflow in back-reference 2962 number. 2963 * testsuite/28_regex/basic_regex/106607.cc: New test. 2964 29652022-08-24 Jonathan Wakely <jwakely@redhat.com> 2966 2967 Backported from master: 2968 2022-08-23 Jonathan Wakely <jwakely@redhat.com> 2969 2970 PR libstdc++/106589 2971 * include/std/variant (__do_visit): Handle is_void<R> for zero 2972 argument case. 2973 * testsuite/20_util/variant/visit_r.cc: Check std::visit<void>(v). 2974 29752022-08-23 Jonathan Wakely <jwakely@redhat.com> 2976 2977 Backported from master: 2978 2022-08-22 Jonathan Wakely <jwakely@redhat.com> 2979 2980 PR libstdc++/105678 2981 * doc/xml/manual/using.xml: Document -lstdc++_libbacktrace 2982 requirement for using std::stacktrace. Also adjust -frtti and 2983 -fexceptions to document non-default (i.e. negative) forms. 2984 * doc/html/*: Regenerate. 2985 29862022-08-19 Release Manager 2987 2988 * GCC 12.2.0 released. 2989 29902022-08-05 Jonathan Wakely <jwakely@redhat.com> 2991 2992 Backported from master: 2993 2022-08-04 Jonathan Wakely <jwakely@redhat.com> 2994 2995 * include/std/string_view (basic_string_view(Range&&)): Add 2996 explicit as per P2499R0. 2997 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: 2998 Adjust implicit conversions. Check implicit conversions fail. 2999 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: 3000 Likewise. 3001 30022022-08-05 Jonathan Wakely <jwakely@redhat.com> 3003 3004 Backported from master: 3005 2022-08-04 Jonathan Wakely <jwakely@redhat.com> 3006 3007 * include/std/expected (unexpected::_M_val): Rename to _M_unex. 3008 (bad_expected_access::_M_val): Likewise. 3009 30102022-08-05 Jonathan Wakely <jwakely@redhat.com> 3011 3012 Backported from master: 3013 2022-08-04 Jonathan Wakely <jwakely@redhat.com> 3014 3015 * include/bits/ios_base.h (__cpp_lib_ios_noreplace): Update 3016 value to 202207L. 3017 * include/std/version (__cpp_lib_ios_noreplace): Likewise. 3018 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: Check 3019 for new value. 3020 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc: 3021 Likewise. 3022 30232022-08-03 Jonathan Wakely <jwakely@redhat.com> 3024 3025 Backported from master: 3026 2022-06-28 Jonathan Wakely <jwakely@redhat.com> 3027 3028 * src/c++17/fs_dir.cc (_Dir::dir_and_pathname):: Replace with 3029 current() returning _At_path. 3030 (_Dir::_Dir, _Dir::open_subdir, _Dir::do_unlink): Adjust. 3031 * src/filesystem/dir-common.h (_Dir_base::_At_path): New class. 3032 (_Dir_base::_Dir_Base, _Dir_base::openat): Use _At_path. 3033 * src/filesystem/dir.cc (_Dir::dir_and_pathname): Replace with 3034 current() returning _At_path. 3035 (_Dir::_Dir, _Dir::open_subdir): Adjust. 3036 30372022-08-03 Jonathan Wakely <jwakely@redhat.com> 3038 3039 Backported from master: 3040 2022-07-29 Jonathan Wakely <jwakely@redhat.com> 3041 3042 PR libstdc++/104443 3043 * include/bits/stl_iterator.h (common_iterator::operator->): 3044 Change return type to just auto. 3045 30462022-08-03 Jonathan Wakely <jwakely@redhat.com> 3047 3048 Backported from master: 3049 2022-07-12 Jonathan Wakely <jwakely@redhat.com> 3050 3051 PR libstdc++/106248 3052 * include/std/istream [C++17] (operator>>(istream&, char*)): 3053 Set eofbit if we stopped extracting at EOF. 3054 * testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc: 3055 New test. 3056 * testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc: 3057 New test. 3058 30592022-08-03 Jonathan Wakely <jwakely@redhat.com> 3060 3061 Backported from master: 3062 2022-07-01 Jonathan Wakely <jwakely@redhat.com> 3063 3064 * include/bits/fs_ops.h: Add nodiscard to all pure functions. 3065 * include/experimental/bits/fs_ops.h: Likewise. 3066 * testsuite/27_io/filesystem/operations/all.cc: Do not discard 3067 results of absolute and canonical. 3068 * testsuite/27_io/filesystem/operations/absolute.cc: Cast 3069 discarded result to void. 3070 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise. 3071 * testsuite/27_io/filesystem/operations/exists.cc: Likewise. 3072 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise. 3073 * testsuite/27_io/filesystem/operations/read_symlink.cc: 3074 Likewise. 3075 * testsuite/27_io/filesystem/operations/status.cc: Likewise. 3076 * testsuite/27_io/filesystem/operations/symlink_status.cc: 3077 Likewise. 3078 * testsuite/27_io/filesystem/operations/temp_directory_path.cc: 3079 Likewise. 3080 * testsuite/experimental/filesystem/operations/canonical.cc: 3081 Likewise. 3082 * testsuite/experimental/filesystem/operations/exists.cc: 3083 Likewise. 3084 * testsuite/experimental/filesystem/operations/is_empty.cc: 3085 Likewise. 3086 * testsuite/experimental/filesystem/operations/read_symlink.cc: 3087 Likewise. 3088 * testsuite/experimental/filesystem/operations/temp_directory_path.cc: 3089 Likewise. 3090 30912022-08-03 Jonathan Wakely <jwakely@redhat.com> 3092 3093 Backported from master: 3094 2022-06-16 Jonathan Wakely <jwakely@redhat.com> 3095 3096 PR libstdc++/105995 3097 * include/bits/basic_string.h (_M_use_local_data): Initialize 3098 the entire SSO buffer. 3099 * testsuite/21_strings/basic_string/cons/char/105995.cc: New test. 3100 31012022-08-03 Jonathan Wakely <jwakely@redhat.com> 3102 3103 Backported from master: 3104 2022-06-14 Jonathan Wakely <jwakely@redhat.com> 3105 3106 * include/bits/new_allocator.h: Fix indentation. 3107 * include/ext/malloc_allocator.h: Likewise. 3108 31092022-08-03 Jonathan Wakely <jwakely@redhat.com> 3110 3111 Backported from master: 3112 2022-06-14 Jonathan Wakely <jwakely@redhat.com> 3113 3114 PR libstdc++/105957 3115 * include/bits/allocator.h (allocator::allocate): Check for 3116 overflow in constexpr allocation. 3117 * testsuite/20_util/allocator/105975.cc: New test. 3118 31192022-08-03 Jonathan Wakely <jwakely@redhat.com> 3120 3121 Backported from master: 3122 2022-06-10 Jonathan Wakely <jwakely@redhat.com> 3123 3124 PR libstdc++/105844 3125 * include/experimental/numeric (experimental::gcd): Simplify 3126 assertions. Use __abs_r instead of __absu. 3127 (experimental::lcm): Likewise. Remove use of __detail::__lcm so 3128 overflow can be detected. 3129 * include/std/numeric (__detail::__absu): Rename to __abs_r and 3130 change to allow signed result type, so overflow can be detected. 3131 (__detail::__lcm): Remove. 3132 (gcd): Simplify assertions. Use __abs_r instead of __absu. 3133 (lcm): Likewise. Remove use of __detail::__lcm so overflow can 3134 be detected. 3135 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines. 3136 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise. 3137 * testsuite/26_numerics/gcd/105844.cc: New test. 3138 * testsuite/26_numerics/lcm/105844.cc: New test. 3139 31402022-07-26 Thomas Rodgers <trodgers@redhat.com> 3141 3142 Backported from master: 3143 2022-07-26 Thomas Rodgers <trodgers@redhat.com> 3144 3145 * include/bits/atomic_wait.h (__atomic_spin): Merge spin loops. 3146 31472022-07-22 Jonathan Wakely <jwakely@redhat.com> 3148 3149 Backported from master: 3150 2022-06-28 Jonathan Wakely <jwakely@redhat.com> 3151 3152 * src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]: 3153 Always store pathname if we don't have openat or unlinkat, 3154 because the full path is needed to open sub-directories and 3155 remove entries. 3156 31572022-07-22 Alexandre Oliva <oliva@adacore.com> 3158 3159 Backported from master: 3160 2022-06-27 Alexandre Oliva <oliva@adacore.com> 3161 3162 * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if 3163 _GLIBCXX_HAVE_OPENAT. 3164 31652022-07-22 Alexandre Oliva <oliva@adacore.com> 3166 3167 Backported from master: 3168 2022-06-24 Alexandre Oliva <oliva@adacore.com> 3169 3170 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for 3171 openat. 3172 * configure, config.h.in: Rebuilt. 3173 * src/filesystem/dir-common.h (openat): Use ::openat if 3174 _GLIBCXX_HAVE_OPENAT. 3175 * src/filesystem/dir.cc (dir_and_pathname): Use dirfd if 3176 _GLIBCXX_HAVE_OPENAT. 3177 31782022-07-22 Jonathan Wakely <jwakely@redhat.com> 3179 3180 Backported from master: 3181 2022-05-06 Jonathan Wakely <jwakely@redhat.com> 3182 3183 * include/std/stacktrace: Do not include <cxxabi.h>. 3184 (__cxa_demangle): Declare. 3185 31862022-07-21 Jonathan Wakely <jwakely@redhat.com> 3187 3188 Backported from master: 3189 2022-07-20 Jonathan Wakely <jwakely@redhat.com> 3190 3191 PR libstdc++/100823 3192 * include/bits/stl_iterator.h (common_iterator): Define move 3193 constructor and move assignment operator. 3194 (common_iterator::_M_assign): New function implementing 3195 assignment. 3196 (common_iterator::operator=): Use _M_assign. 3197 (common_iterator::_S_valueless): New constant. 3198 * testsuite/24_iterators/common_iterator/100823.cc: New test. 3199 32002022-07-21 Jonathan Wakely <jwakely@redhat.com> 3201 3202 Backported from master: 3203 2022-07-20 Jonathan Wakely <jwakely@redhat.com> 3204 3205 * include/bits/stl_iterator.h (common_iterator): Fix incorrect 3206 uses of is_nothrow_assignable_v. Fix inconsistent constraints on 3207 friend declaration. Do not move argument in copy constructor. 3208 * testsuite/24_iterators/common_iterator/1.cc: Check for 3209 noexcept constructibnle/assignable. 3210 32112022-07-21 Nathan Sidwell <nathan@acm.org> 3212 3213 Backported from master: 3214 2022-05-26 Nathan Sidwell <nathan@acm.org> 3215 3216 * include/bits/hashtable.h: Include required headers. 3217 * include/bits/hashtable_policy.h: Likewise. 3218 * include/bits/stl_heap.h: Likewise. 3219 * include/bits/stl_iterator_base_funcs.h: Likewise. 3220 32212022-07-21 Jonathan Wakely <jwakely@redhat.com> 3222 3223 Backported from master: 3224 2022-06-30 Jonathan Wakely <jwakely@redhat.com> 3225 3226 * include/bits/utility.h: Fix comment typos. 3227 32282022-07-21 Jonathan Wakely <jwakely@redhat.com> 3229 3230 Backported from master: 3231 2022-06-28 Jonathan Wakely <jwakely@redhat.com> 3232 3233 * testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math 3234 functions are available. 3235 32362022-07-21 Jonathan Wakely <jwakely@redhat.com> 3237 3238 Backported from master: 3239 2022-06-23 Jonathan Wakely <jwakely@redhat.com> 3240 3241 * testsuite/26_numerics/random/random_device/entropy.cc: Use 3242 numeric_limits<unsigned>::digits. 3243 32442022-07-21 Marco Falke <falke.marco@gmail.com> 3245 3246 Backported from master: 3247 2022-07-19 Marco Falke <falke.marco@gmail.com> 3248 3249 * include/std/charconv (__from_chars_alnum_to_val): Replace 3250 implicit conversion from int to unsigned char with explicit 3251 cast. 3252 32532022-07-21 Jonathan Wakely <jwakely@redhat.com> 3254 3255 Backported from master: 3256 2022-06-30 Jonathan Wakely <jwakely@redhat.com> 3257 3258 PR libstdc++/88881 3259 * src/filesystem/ops.cc (has_trailing_slash): New helper 3260 function. 3261 (fs::status): Strip trailing slashes. 3262 (fs::symlink_status): Likewise. 3263 * testsuite/experimental/filesystem/operations/temp_directory_path.cc: 3264 Clean the environment before each test and use TMP instead of 3265 TMPDIR so the test passes on Windows. 3266 32672022-07-21 Jonathan Wakely <jwakely@redhat.com> 3268 3269 Backported from master: 3270 2022-06-10 Jonathan Wakely <jwakely@redhat.com> 3271 3272 PR libstdc++/105880 3273 * libsupc++/eh_globals.cc (eh_globals): Ensure constant init and 3274 prevent destruction during termination. 3275 (__eh_globals_init::_M_init): Replace with static member _S_init. 3276 (__cxxabiv1::__cxa_get_globals_fast): Update. 3277 (__cxxabiv1::__cxa_get_globals): Likewise. 3278 32792022-07-07 Jonathan Wakely <jwakely@redhat.com> 3280 3281 Backported from master: 3282 2022-07-01 Jonathan Wakely <jwakely@redhat.com> 3283 3284 PR libstdc++/106162 3285 * include/Makefile.am (largefile-config.h): Add 3286 stamp-${host_alias} prerequisite. 3287 * include/Makefile.in: Regenerate. 3288 32892022-07-07 Jonathan Wakely <jwakely@redhat.com> 3290 3291 Backported from master: 3292 2022-06-23 Jonathan Wakely <jwakely@redhat.com> 3293 3294 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use 3295 rmdir to remove directories. 3296 * testsuite/experimental/filesystem/iterators/error_reporting.cc: 3297 Likewise. 3298 32992022-06-14 Jonathan Wakely <jwakely@redhat.com> 3300 3301 Backported from master: 3302 2022-06-13 Jonathan Wakely <jwakely@redhat.com> 3303 3304 * include/std/atomic (__atomic_val_t): Use __type_identity_t 3305 instead of atomic<T>::value_type, as per LWG 3220. 3306 * testsuite/29_atomics/atomic/lwg3220.cc: New test. 3307 33082022-06-14 Mark Mentovai <mark@mentovai.com> 3309 3310 Backported from master: 3311 2022-06-13 Mark Mentovai <mark@mentovai.com> 3312 3313 * include/experimental/bits/fs_path.h (__detail::__null_terminated): 3314 Rename to __nul_terminated to avoid colliding with a macro in 3315 Apple's SDK. 3316 33172022-06-08 Jonathan Wakely <jwakely@redhat.com> 3318 3319 Backported from master: 3320 2022-05-27 Jonathan Wakely <jwakely@redhat.com> 3321 3322 PR libstdc++/105671 3323 * include/std/sstream (basic_stringbuf::_M_high_mark): Add 3324 always_inline attribute. 3325 33262022-06-08 Jonathan Wakely <jwakely@redhat.com> 3327 3328 Backported from master: 3329 2022-05-26 Jonathan Wakely <jwakely@redhat.com> 3330 3331 PR libstdc++/105681 3332 * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp: 3333 Limit ga_sizes array to values that fit in size_t. 3334 * include/ext/random [__SIZE_WIDTH < 32] (sfmt86243) 3335 (sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091) 3336 (sfmt216091_64): Do not declare. 3337 33382022-06-08 Jonathan Wakely <jwakely@redhat.com> 3339 3340 Backported from master: 3341 2022-05-19 Jonathan Wakely <jwakely@redhat.com> 3342 3343 * include/bits/basic_string.h: Do not include <ext/atomicity.h> 3344 here. 3345 * include/bits/cow_string.h: Include it here. 3346 33472022-05-27 Jonathan Wakely <jwakely@redhat.com> 3348 3349 Backported from master: 3350 2022-05-26 Jonathan Wakely <jwakely@redhat.com> 3351 3352 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make 3353 lookup for ios_errc and future_errc check versioned namespace. 3354 (StdAtomicPrinter): Strip versioned namespace from typename. 3355 33562022-05-27 Fran��ois Dumont <fdumont@gcc.gnu.org> 3357 3358 Backported from master: 3359 2022-05-26 Fran��ois Dumont <fdumont@gcc.gnu.org> 3360 3361 * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__): 3362 Strip typename from version namespace. 3363 33642022-05-27 Jonathan Wakely <jwakely@redhat.com> 3365 3366 Backported from master: 3367 2022-05-26 Jonathan Wakely <jwakely@redhat.com> 3368 3369 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip 3370 versioned namespace from the template argument too. 3371 33722022-05-27 Jonathan Wakely <jwakely@redhat.com> 3373 3374 Backported from master: 3375 2022-05-26 Jonathan Wakely <jwakely@redhat.com> 3376 3377 * include/bits/stl_iterator.h (counted_iterator::operator++(int)): 3378 Add 'constexpr' as per LWG 3643. 3379 * testsuite/24_iterators/counted_iterator/lwg3643.cc: New test. 3380 33812022-05-27 Jonathan Wakely <jwakely@redhat.com> 3382 3383 Backported from master: 3384 2022-05-19 Jonathan Wakely <jwakely@redhat.com> 3385 3386 * include/std/memory_resource (polymorphic_allocator): Add 3387 non-template equality operator, as proposed for LWG 3683. 3388 * testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test. 3389 33902022-05-27 Jonathan Wakely <jwakely@redhat.com> 3391 3392 Backported from master: 3393 2022-05-20 Jonathan Wakely <jwakely@redhat.com> 3394 3395 * testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc: 3396 Run fewer iterations for simulator targets. 3397 * testsuite/26_numerics/random/binomial_distribution/operators/values.cc: 3398 Likewise. 3399 * testsuite/26_numerics/random/discrete_distribution/operators/values.cc: 3400 Likewise. 3401 * testsuite/26_numerics/random/geometric_distribution/operators/values.cc: 3402 Likewise. 3403 * testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc: 3404 Likewise. 3405 * testsuite/26_numerics/random/poisson_distribution/operators/values.cc: 3406 Likewise. 3407 * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc: 3408 Likewise. 3409 34102022-05-27 Jonathan Wakely <jwakely@redhat.com> 3411 3412 Backported from master: 3413 2022-05-17 Jonathan Wakely <jwakely@redhat.com> 3414 3415 * testsuite/20_util/expected/synopsis.cc: Skip for versioned 3416 namespace. 3417 * testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise. 3418 34192022-05-27 Jonathan Wakely <jwakely@redhat.com> 3420 3421 Backported from master: 3422 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 3423 3424 * include/bits/mofunc_impl.h: Fix doxygen command. 3425 34262022-05-27 Jonathan Wakely <jwakely@redhat.com> 3427 3428 Backported from master: 3429 2022-05-13 Jonathan Wakely <jwakely@redhat.com> 3430 3431 * include/std/future (launch): Make operators noexcept. 3432 34332022-05-16 Jonathan Wakely <jwakely@redhat.com> 3434 3435 Backported from master: 3436 2022-05-16 Jonathan Wakely <jwakely@redhat.com> 3437 3438 * doc/xml/manual/prerequisites.xml: Fix attributes for external 3439 hyperlink. 3440 * doc/html/manual/setup.html: Regenerate. 3441 34422022-05-16 Jonathan Wakely <jwakely@redhat.com> 3443 3444 Backported from master: 3445 2022-05-16 Jonathan Wakely <jwakely@redhat.com> 3446 3447 * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support. 3448 * doc/html/*: Regenerate. 3449 34502022-05-16 Jonathan Wakely <jwakely@redhat.com> 3451 3452 Backported from master: 3453 2022-05-16 Jonathan Wakely <jwakely@redhat.com> 3454 3455 * doc/xml/manual/intro.xml: Include new chapter. 3456 * doc/xml/manual/status_cxx2020.xml: Tweak release numbers. 3457 * doc/xml/manual/status_cxx2023.xml: New file. 3458 * doc/html/*: Regenerate. 3459 34602022-05-16 Jonathan Wakely <jwakely@redhat.com> 3461 3462 Backported from master: 3463 2022-05-16 Jonathan Wakely <jwakely@redhat.com> 3464 3465 * doc/html/manual/status.html: Regenerate. 3466 * doc/xml/manual/status_cxx2020.xml: Fix supported version for 3467 C++20 bit operations. 3468 34692022-05-13 Alexandre Oliva <oliva@adacore.com> 3470 3471 Backported from master: 3472 2022-05-06 Alexandre Oliva <oliva@adacore.com> 3473 3474 * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX 3475 for double, long long, and 64-bit long intrinsic types. 3476 [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in 3477 preexisting long double diagnostic, adjust no-VSX double 3478 diagnostic to cover 64-bit long double as well. 3479 34802022-05-10 Jonathan Wakely <jwakely@redhat.com> 3481 3482 Backported from master: 3483 2022-05-10 Jonathan Wakely <jwakely@redhat.com> 3484 3485 PR libstdc++/105284 3486 * include/std/iosfwd: Add declarations for <spanstream> class 3487 templates and typedefs. 3488 * include/std/spanstream (basic_spanbuf, basic_ispanstream) 3489 (basic_ospanstream, basic_spanstream): Remove default template 3490 arguments. 3491 * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream> 3492 declarations. 3493 * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream> 3494 default arguments. 3495 34962022-05-10 Jonathan Wakely <jwakely@redhat.com> 3497 3498 Backported from master: 3499 2022-05-10 Jonathan Wakely <jwakely@redhat.com> 3500 3501 PR libstdc++/105284 3502 * include/std/iosfwd: Add declarations for <synstream> class 3503 templates and typedefs. 3504 * include/std/syncstream (basic_syncbuf, basic_osyncstream): 3505 Remove default template arguments. 3506 * testsuite/27_io/headers/iosfwd/synopsis.cc: New test. 3507 * testsuite/27_io/headers/iosfwd/types.cc: New test. 3508 35092022-05-09 Jonathan Wakely <jwakely@redhat.com> 3510 3511 Backported from master: 3512 2022-05-06 Jonathan Wakely <jwakely@redhat.com> 3513 3514 PR libstdc++/104731 3515 * testsuite/27_io/filesystem/iterators/error_reporting.cc: 3516 Use a trailing char array as storage for dirent::d_name. 3517 35182022-05-06 Jonathan Wakely <jwakely@redhat.com> 3519 3520 Backported from master: 3521 2022-05-06 Jonathan Wakely <jwakely@redhat.com> 3522 3523 PR libstdc++/105502 3524 * include/bits/random.tcc 3525 (operator>>(basic_istream<C,T>&, normal_distribution<R>&)): 3526 Update state when __state_avail is false. 3527 * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc: 3528 Check that deserialized object equals serialized one. 3529 35302022-05-06 Patrick Palka <ppalka@redhat.com> 3531 3532 Backported from master: 3533 2022-05-02 Patrick Palka <ppalka@redhat.com> 3534 3535 PR libstdc++/103911 3536 * src/c++17/floating_from_chars.cc (find_end_of_float): Accept 3537 two delimeters for the exponent part in the form of a possibly 3538 NULL string of length two. Don't use std::tolower. 3539 (pattern): Adjust calls to find_end_of_float accordingly. 3540 35412022-05-06 Alexandre Oliva <oliva@adacore.com> 3542 3543 Backported from master: 3544 2022-05-03 Alexandre Oliva <oliva@adacore.com> 3545 3546 PR c++/105324 3547 * testsuite/20_util/from_chars/pr105324.cc: Guard test body 3548 with conditional for floating-point overloads of from_char. 3549 35502022-05-06 Release Manager 3551 3552 * GCC 12.1.0 released. 3553 35542022-05-02 Patrick Palka <ppalka@redhat.com> 3555 3556 Backported from master: 3557 2022-05-02 Patrick Palka <ppalka@redhat.com> 3558 3559 PR libstdc++/105441 3560 * src/c++17/floating_from_chars.cc (__floating_from_chars_hex): 3561 Also accept 'P' as the start of the exponent. 3562 * testsuite/20_util/from_chars/7.cc: Add corresponding testcase. 3563 35642022-04-29 Jonathan Wakely <jwakely@redhat.com> 3565 3566 Backported from master: 3567 2022-04-29 Jonathan Wakely <jwakely@redhat.com> 3568 3569 PR libstdc++/105417 3570 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: 3571 Regenerate. 3572 * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]: 3573 Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I> 3574 symbols as aliases for corresponding symbols without abi-tag. 3575 35762022-04-29 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 3577 3578 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate. 3579 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt: 3580 Likewise. 3581 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise. 3582 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt: 3583 Likewise. 3584 35852022-04-28 Jonathan Wakely <jwakely@redhat.com> 3586 3587 * doc/xml/manual/status_cxx1998.xml: Refer to GCC 12 not 3588 mainline. 3589 * doc/xml/manual/status_cxx2011.xml: Likewise. 3590 * doc/xml/manual/status_cxx2014.xml: Likewise. 3591 * doc/xml/manual/status_cxx2017.xml: Likewise. 3592 * doc/xml/manual/status_cxx2020.xml: Likewise. 3593 * doc/xml/manual/status_cxxtr1.xml: Likewise. 3594 * doc/xml/manual/status_cxxtr24733.xml: Likewise. 3595 * doc/html/manual/status.html: Regenerate. 3596 35972022-04-28 Jonathan Wakely <jwakely@redhat.com> 3598 3599 PR libstdc++/99290 3600 * src/c++17/fs_ops.cc (fs::copy): Pass error_code to 3601 directory_iterator constructor, and check on each iteration. 3602 * src/filesystem/ops.cc (fs::copy): Likewise. 3603 * testsuite/27_io/filesystem/operations/copy.cc: Check for 3604 errors during recursion. 3605 * testsuite/experimental/filesystem/operations/copy.cc: 3606 Likewise. 3607 36082022-04-28 Fran��ois Dumont <fdumont@gcc.gnu.org> 3609 3610 * config/abi/pre/gnu-versioned-namespace.ver: Remove 3611 std::random_device::* pattern. 3612 36132022-04-27 Jakub Jelinek <jakub@redhat.com> 3614 3615 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. 3616 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update. 3617 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update. 3618 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update. 3619 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update. 3620 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update. 3621 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update. 3622 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update. 3623 36242022-04-27 Jonathan Wakely <jwakely@redhat.com> 3625 3626 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add 3627 support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>. 3628 (StdAtomicPrinter): New printer. 3629 (build_libstdcxx_dictionary): Register new printer. 3630 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic. 3631 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart 3632 pointers. 3633 36342022-04-26 Jonathan Wakely <jwakely@redhat.com> 3635 3636 * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add 3637 constructor for constant initialization from nullptr_t. 3638 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: 3639 Check for new constructor. 3640 36412022-04-26 Jonathan Wakely <jwakely@redhat.com> 3642 3643 * include/bits/fs_path.h (hash<filesystem::path>): Define. 3644 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc: 3645 Check std::hash specialization. 3646 36472022-04-25 Jonathan Wakely <jwakely@redhat.com> 3648 3649 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define 3650 conditionally. 3651 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory): 3652 Define for C++23. 3653 (default_delete, default_delete<T[]>, __uniq_ptr_impl) 3654 (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member 3655 functions. 3656 * include/std/version (__cpp_lib_constexpr_memory): Define new 3657 value for C++23. 3658 * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test. 3659 * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test. 3660 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test. 3661 * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test. 3662 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test. 3663 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc: 3664 New test. 3665 36662022-04-25 Jonathan Wakely <jwakely@redhat.com> 3667 3668 PR libstdc++/105375 3669 * include/std/future (packaged_task): Add deduction guides. 3670 * testsuite/30_threads/packaged_task/cons/deduction.cc: New test. 3671 36722022-04-25 Philipp Fent <fent@in.tum.de> 3673 3674 * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator): 3675 Rename as iterator. 3676 (StdInitializerListPrinter): Define new printer. 3677 (build_libstdcxx_dictionary): Register new printer. 3678 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for 3679 initializer_list. 3680 36812022-04-22 Thomas W Rodgers <trodgers@redhat.com> 3682 3683 PR libstdc++/102994 3684 * include/bits/atomic_base.h (atomic_flag::notify_one, 3685 notify_all): Remove const qualification. 3686 (__atomic_base::notify_one, notify_all): Likewise. 3687 * include/std/atomic (atomic<bool>::notify_one, notify_all): 3688 Likewise. 3689 (atomic::notify_one, notify_all): Likewise. 3690 (atomic<T*>::notify_one, notify_all): Likewise. 3691 (atomic_notify_one, atomic_notify_all): Likewise. 3692 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test 3693 to account for change in notify_one/notify_all signature. 3694 36952022-04-21 Patrick Palka <ppalka@redhat.com> 3696 3697 * include/std/charconv (__from_chars_alnum_to_val_table): 3698 Simplify initialization of __lower/__upper_letters. 3699 (__from_chars_alnum_to_val): Default the template parameter to 3700 false. 3701 * src/c++17/floating_from_chars.cc (starts_with_ci): Don't 3702 assume the uppercase and lowercase letters are contiguous. 3703 (__floating_from_chars_hex): Likewise. 3704 37052022-04-21 Patrick Palka <ppalka@redhat.com> 3706 3707 PR c++/105297 3708 PR c++/105322 3709 * include/std/charconv (__from_chars_alnum_to_val): Make 3710 initializer for __table dependent in an artificial way. 3711 37122022-04-21 Jonathan Wakely <jwakely@redhat.com> 3713 3714 PR libstdc++/105324 3715 * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate): 3716 Remove assertion. 3717 * testsuite/20_util/from_chars/pr105324.cc: New test. 3718 37192022-04-20 Jonathan Wakely <jwakely@redhat.com> 3720 3721 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc: 3722 Check correct feature test macro. 3723 37242022-04-20 Jonathan Wakely <jwakely@redhat.com> 3725 3726 PR libstdc++/93602 3727 * doc/xml/manual/prerequisites.xml: Document libiconv 3728 workarounds. 3729 * doc/html/manual/setup.html: Regenerate. 3730 * src/Makefile.am (CXXLINK): Add $(LTLIBICONV). 3731 * src/Makefile.in: Regenerate. 3732 37332022-04-19 Patrick Palka <ppalka@redhat.com> 3734 3735 * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't 3736 define. 3737 (__floating_to_chars_shortest): Add __builtin_unreachable calls to 3738 squelch false-positive -Wmaybe-uninitialized and -Wreturn-type 3739 warnings. 3740 (__floating_to_chars_precision): Likewise. 3741 37422022-04-19 Philipp Fent <fent@in.tum.de> 3743 3744 * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define. 3745 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it. 3746 37472022-04-19 Jonathan Wakely <jwakely@redhat.com> 3748 3749 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators. 3750 * configure: Regenerate. 3751 37522022-04-18 Patrick Palka <ppalka@redhat.com> 3753 3754 * include/std/charconv (__from_chars_pow2_base): Manually 3755 unroll the first iteration of the main loop and simplify 3756 accordingly. 3757 37582022-04-15 Patrick Palka <ppalka@redhat.com> 3759 3760 PR libstdc++/104858 3761 * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing 3762 __first twice at the start. 3763 * testsuite/25_algorithms/minmax/constrained.cc (test06): New test. 3764 37652022-04-15 Patrick Palka <ppalka@redhat.com> 3766 3767 * include/std/charconv (__from_chars_alnum_to_val_table): Define. 3768 (__from_chars_alnum_to_val): Define. 3769 (__from_chars_binary): Rename to ... 3770 (__from_chars_pow2_base): ... this. Generalize to handle any 3771 power-of-two base using __from_chars_alnum_to_val. 3772 (__from_chars_digit): Optimize digit recognition to a single 3773 test instead of two tests. Use [[__unlikely___]] attribute. 3774 (__from_chars_alpha_to_num): Remove. 3775 (__from_chars_alnum): Use __from_chars_alnum_to_val. Use a 3776 nested loop for the overflow case. Maintain a lower bound 3777 on the number of available bits in the result and use it to 3778 omit the overflow check. 3779 (from_chars): Adjust appropriately. 3780 * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove. 3781 (__floating_from_chars_hex): Use __from_chars_alnum_to_val 3782 to recognize a hex digit instead. 3783 37842022-04-14 Palmer Dabbelt <palmer@rivosinc.com> 3785 3786 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex 3787 for RISC-V. 3788 * configure: Regenerate. 3789 37902022-04-14 Jonathan Wakely <jwakely@redhat.com> 3791 3792 * doc/xml/manual/intro.xml: Fix comment. 3793 37942022-04-14 Jonathan Wakely <jwakely@redhat.com> 3795 3796 * include/precompiled/stdc++.h: Include <stacktrace> and 3797 <stdatomic.h> for C++23. 3798 37992022-04-14 Jonathan Wakely <jwakely@redhat.com> 3800 3801 PR libstdc++/105269 3802 * include/bits/stl_vector.h (__cpp_lib_constexpr_vector): 3803 Define. 3804 * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h): 3805 Define. 3806 * include/std/optional (__cpp_lib_optional): Define new value 3807 for C++23. 3808 (__cpp_lib_monadic_optional): Remove. 3809 * include/std/version (__cpp_lib_constexpr_vector): Define. 3810 (__cpp_lib_stdatomic_h): Define. 3811 (__cpp_lib_optional): Define new value for C++23. 3812 (__cpp_lib_monadic_optional): Remove. 3813 * testsuite/20_util/optional/monadic/and_then.cc: Adjust. 3814 * testsuite/20_util/optional/requirements.cc: Adjust for C++23. 3815 * testsuite/20_util/optional/version.cc: Likewise. 3816 * testsuite/23_containers/vector/cons/constexpr.cc: Check 3817 feature test macro. 3818 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: 3819 Likewise. 3820 * testsuite/20_util/optional/monadic/version.cc: Removed. 3821 * testsuite/23_containers/vector/requirements/version.cc: New test. 3822 * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test. 3823 38242022-04-12 Jonathan Wakely <jwakely@redhat.com> 3825 3826 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap. 3827 * config.h.in: Regenerate. 3828 * configure: Regenerate. 3829 38302022-04-12 Jonathan Wakely <jwakely@redhat.com> 3831 3832 * include/std/stacktrace (basic_stacktrace::current): Reallocate 3833 a smaller container if the unused capacity is larger than the 3834 used size. 3835 38362022-04-12 Jonathan Wakely <jwakely@redhat.com> 3837 3838 * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone 3839 or _Impl::_M_assign to initialize elements in allocated storage. 3840 (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of 3841 _Impl::_M_destroy. 3842 (basic_stacktrace::_Impl::_M_destroy()): Replace with ... 3843 (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New 3844 function. 3845 (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct 3846 new element using allocator. 3847 (basic_stacktrace::_Impl::_M_clone): New function. 3848 (basic_stacktrace::_Impl::_M_xclone): New function. 3849 (basic_stacktrace::_Impl::_M_assign): New function. 3850 38512022-04-12 Jonathan Wakely <jwakely@redhat.com> 3852 3853 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate): 3854 Use nothrow new instead of try block for std::allocator. 3855 (basic_stacktrace::_Impl::_M_deallocate): Use delete for 3856 std::allocator. 3857 38582022-04-12 Jonathan Wakely <jwakely@redhat.com> 3859 3860 * include/std/stacktrace (basic_stacktrace::current): Replace 3861 calls to _M_reserve and _S_curr_cb with call to _M_prepare. 3862 Check return value of backtrace_simple when max depth given. 3863 (basic_stacktrace::_M_reserve): Remove. 3864 (basic_stacktrace::_S_curr_cb): Remove. 3865 (basic_stacktrace::_M_prepare(size_type)): New function to 3866 reserve initial capacity and return callback. 3867 (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n 3868 and remove redundant zeroing of _M_frames and _M_capacity. 3869 (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]] 3870 attribute. Assign _Impl instead of swapping. 3871 * testsuite/19_diagnostics/stacktrace/current.cc: New test. 3872 38732022-04-11 Jonathan Wakely <jwakely@redhat.com> 3874 3875 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate): 3876 Change [[unlikely]] attribute to [[likely]]. 3877 38782022-04-11 Jonathan Wakely <jwakely@redhat.com> 3879 3880 PR libstdc++/105031 3881 * include/std/stacktrace (basic_stacktrace::basic_stacktrace): 3882 Fix allocator usage in constructors. 3883 (basic_stacktrace::operator=(const basic_stacktrace&)): Do not 3884 try to reallocate using const allocator. 3885 (basic_stacktrace::operator=(basic_stacktrace&&)): Fix 3886 if-constexpr with non-constant condition. Do not allocate new 3887 storage if allocator propagates. Do not set _M_size if 3888 allocation fails. 3889 (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add 3890 assertion that non-propagating allocators are equal. 3891 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test. 3892 38932022-04-11 Jonathan Wakely <jwakely@redhat.com> 3894 3895 * include/std/stacktrace (basic_stacktrace::current): Duplicate 3896 implementation into each overload. Add noinline attribute and 3897 skip current frame. 3898 (basic_stacktrace::max_size()): Call _Impl::_S_max_size. 3899 (basic_stacktrace::_S_curr_cb()): New function defining lambda. 3900 (basic_stacktrace::_Impl::_S_max_size): New function defining 3901 maximum size in terms of allocator and size_type. 3902 (basic_stacktrace::_Impl::_M_allocate): Check against 3903 max_size(). 3904 * testsuite/19_diagnostics/stacktrace/entry.cc: Call function 3905 for non-constexpr checks. Check line number is correct. 3906 39072022-04-11 Jonathan Wakely <jwakely@redhat.com> 3908 3909 * testsuite/20_util/stacktrace/entry.cc: Moved to... 3910 * testsuite/19_diagnostics/stacktrace/entry.cc: ...here. 3911 * testsuite/20_util/stacktrace/synopsis.cc: Moved to... 3912 * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here. 3913 * testsuite/20_util/stacktrace/version.cc: Moved to... 3914 * testsuite/19_diagnostics/stacktrace/version.cc: ...here. 3915 39162022-04-11 Jonathan Wakely <jwakely@redhat.com> 3917 3918 * include/experimental/bits/fs_path.h (path): Define special 3919 members after path::_Cmpt is complete. 3920 39212022-04-08 Jonathan Wakely <jwakely@redhat.com> 3922 3923 PR libstdc++/105153 3924 * include/std/expected 3925 (expected<void,E>::expected(expected<U,G>&&)): Fix constraints. 3926 * testsuite/20_util/expected/cons.cc: Check constructor. 3927 39282022-04-08 Jonathan Wakely <jwakely@redhat.com> 3929 3930 PR libstdc++/105154 3931 * include/std/expected (expected<void, E>::swap): Set 3932 _M_has_value to false for objects that previously had a value. 3933 * testsuite/20_util/expected/swap.cc: Fix test to check void 3934 specialization. 3935 39362022-04-08 Jonathan Wakely <jwakely@redhat.com> 3937 3938 PR libstdc++/105146 3939 * include/std/expected (bad_expected_access): Move constructor 3940 parameter. 3941 * testsuite/20_util/expected/bad.cc: New test. 3942 39432022-04-07 Hans-Peter Nilsson <hp@axis.com> 3944 3945 * testsuite/20_util/expected/requirements.cc: Correct minimal-size 3946 test. 3947 39482022-04-02 Jakub Jelinek <jakub@redhat.com> 3949 3950 PR libstdc++/105128 3951 * include/std/source_location (std::source_location::__impl): Move 3952 definition before using __builtin_ret_type. 3953 39542022-04-01 Jonathan Wakely <jwakely@redhat.com> 3955 3956 * include/std/utility (unreachable): Define for C++23. 3957 * include/std/version (__cpp_lib_unreachable): Define. 3958 * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid 3959 arguments. Handle only the function being given. 3960 * testsuite/20_util/unreachable/1.cc: New test. 3961 * testsuite/20_util/unreachable/version.cc: New test. 3962 39632022-04-01 Jonathan Wakely <jwakely@redhat.com> 3964 3965 * include/experimental/bits/fs_fwd.h (copy_file): Remove 3966 incorrect noexcept from declaration. 3967 * include/experimental/bits/fs_path.h (path::begin, path::end): 3968 Add noexcept to declarations, to match definitions. 3969 39702022-04-01 Timm B��der <tbaeder@redhat.com> 3971 3972 * include/bits/fs_ops.h: Fix filename in Doxygen comment. 3973 * include/experimental/bits/fs_ops.h: Likewise. 3974 39752022-03-31 Jonathan Wakely <jwakely@redhat.com> 3976 3977 * libsupc++/new_opa.cc (aligned_alloc): Add comment. 3978 39792022-03-29 Jonathan Wakely <jwakely@redhat.com> 3980 3981 * testsuite/18_support/exception/38732.cc: Disable for C++23. 3982 * testsuite/18_support/headers/exception/synopsis.cc: Likewise. 3983 * testsuite/18_support/unexpected_handler.cc: Likewise. 3984 39852022-03-29 Jonathan Wakely <jwakely@redhat.com> 3986 3987 * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add 3988 static data members for _Fp_fmt enumerators. 3989 39902022-03-29 Jonathan Wakely <jwakely@redhat.com> 3991 3992 * include/std/version (__cpp_lib_variant): Fix conditions to 3993 match <variant>. 3994 (__cpp_lib_expected): Fix condition to match <expected>. 3995 39962022-03-28 Jonathan Wakely <jwakely@redhat.com> 3997 3998 * testsuite/20_util/optional/monadic/and_then.cc: Fix typo. 3999 * testsuite/20_util/optional/monadic/transform.cc: Likewise. 4000 * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise. 4001 * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise. 4002 * testsuite/22_locale/codecvt/in/char/1.cc: Likewise. 4003 * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise. 4004 * testsuite/22_locale/codecvt/out/char/1.cc: Likewise. 4005 * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise. 4006 40072022-03-27 Jonathan Wakely <jwakely@redhat.com> 4008 4009 * doc/doxygen/user.cfg.in: Add new header. 4010 * include/Makefile.am: Likewise. 4011 * include/Makefile.in: Regenerate. 4012 * include/precompiled/stdc++.h: Add new header. 4013 * include/std/version (__cpp_lib_expected): Define. 4014 * libsupc++/exception [__cplusplus > 202002] (unexpected) 4015 (unexpected_handler, set_unexpected): Do not declare for C++23. 4016 * include/std/expected: New file. 4017 * testsuite/20_util/expected/assign.cc: New test. 4018 * testsuite/20_util/expected/cons.cc: New test. 4019 * testsuite/20_util/expected/illformed_neg.cc: New test. 4020 * testsuite/20_util/expected/observers.cc: New test. 4021 * testsuite/20_util/expected/requirements.cc: New test. 4022 * testsuite/20_util/expected/swap.cc: New test. 4023 * testsuite/20_util/expected/synopsis.cc: New test. 4024 * testsuite/20_util/expected/unexpected.cc: New test. 4025 * testsuite/20_util/expected/version.cc: New test. 4026 40272022-03-25 Jonathan Wakely <jwakely@redhat.com> 4028 4029 * include/std/bit (bit_cast, byteswap, endian): Add doxygen 4030 comments. 4031 40322022-03-23 Jonathan Wakely <jwakely@redhat.com> 4033 4034 PR libstdc++/105027 4035 * include/std/bit (bit_cast): Add constraints. 4036 * testsuite/26_numerics/bit/bit.cast/105027.cc: New test. 4037 40382022-03-23 Jonathan Wakely <jwakely@redhat.com> 4039 4040 * include/std/version [!_GLIBCXX_HOSTED] 4041 (__cpp_lib_hardware_interference_size): Define for freestanding. 4042 (__cpp_lib_bit_cast): Likewise. 4043 (__cpp_lib_is_layout_compatible): Likewise. 4044 (__cpp_lib_is_pointer_interconvertible): Likewise. 4045 (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for 4046 freestanding. 4047 (__cpp_lib_invoke_r): Likewise. 4048 (__cpp_lib_ios_noreplace): Likewise. 4049 (__cpp_lib_monadic_optional): Likewise. 4050 (__cpp_lib_move_only_function): Likewise. 4051 (__cpp_lib_spanstream): Likewise. 4052 (__cpp_lib_stacktrace): Likewise. 4053 (__cpp_lib_string_contains): Likewise. 4054 (__cpp_lib_string_resize_and_overwrite): Likewise. 4055 (__cpp_lib_to_underlying): Likewise. 4056 40572022-03-23 Jonathan Wakely <jwakely@redhat.com> 4058 4059 PR libstdc++/105021 4060 * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include 4061 <bits/atomic_wait.h> for freestanding. 4062 40632022-03-22 Hans-Peter Nilsson <hp@axis.com> 4064 4065 * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]: 4066 Conditionalize call to fesetround. 4067 40682022-03-21 Jakub Jelinek <jakub@redhat.com> 4069 4070 PR libstdc++/104990 4071 * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get 4072 isn't overloaded if __clang__ is defined. 4073 40742022-03-18 Jonathan Wakely <jwakely@redhat.com> 4075 4076 PR libstdc++/104242 4077 * include/std/any (any(T&&)): Revert change to constraints. 4078 * testsuite/20_util/any/cons/104242.cc: New test. 4079 40802022-03-18 Jonathan Wakely <jwakely@redhat.com> 4081 4082 PR libstdc++/92546 4083 * include/pstl/glue_algorithm_defs.h: Replace <functional> with 4084 <bits/stl_pair.h>. 4085 * include/pstl/utils.h: Replace <iterator> with <type_traits>. 4086 (__pstl::__internal::__except_handler): Use std::__terminate 4087 instead of std::terminate. 4088 * src/c++17/fs_path.cc: Include <array>. 4089 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include 4090 <functional>. 4091 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise. 4092 * testsuite/25_algorithms/clamp/constrained.cc: Likewise. 4093 * testsuite/25_algorithms/equal/constrained.cc: Likewise. 4094 * testsuite/25_algorithms/for_each/constrained.cc: Likewise. 4095 * testsuite/25_algorithms/includes/constrained.cc: Likewise. 4096 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise. 4097 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise. 4098 * testsuite/25_algorithms/is_permutation/constrained.cc: Include 4099 <iterator>. 4100 * testsuite/25_algorithms/is_sorted/constexpr.cc: Include 4101 <functional>. 4102 * testsuite/25_algorithms/is_sorted_until/constexpr.cc: 4103 Likewise. 4104 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc: 4105 Likewise. 4106 * testsuite/25_algorithms/lexicographical_compare/constrained.cc: 4107 Likewise. 4108 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc: 4109 Include <array>. 4110 * testsuite/25_algorithms/lower_bound/constexpr.cc: Include 4111 <functional>. 4112 * testsuite/25_algorithms/max/constrained.cc: Likewise. 4113 * testsuite/25_algorithms/max_element/constrained.cc: Likewise. 4114 * testsuite/25_algorithms/min/constrained.cc: Likewise. 4115 * testsuite/25_algorithms/min_element/constrained.cc: Likewise. 4116 * testsuite/25_algorithms/minmax_element/constrained.cc: 4117 Likewise. 4118 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise. 4119 * testsuite/25_algorithms/move/93872.cc: Likewise. 4120 * testsuite/25_algorithms/move_backward/93872.cc: Include 4121 <iterator>. 4122 * testsuite/25_algorithms/nth_element/constexpr.cc: Include 4123 <functional>. 4124 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise. 4125 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc: 4126 Likewise. 4127 * testsuite/25_algorithms/search/constexpr.cc: Likewise. 4128 * testsuite/25_algorithms/search_n/constrained.cc: Likewise. 4129 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise. 4130 * testsuite/25_algorithms/set_difference/constrained.cc: 4131 Likewise. 4132 * testsuite/25_algorithms/set_intersection/constexpr.cc: 4133 Likewise. 4134 * testsuite/25_algorithms/set_intersection/constrained.cc: 4135 Likewise. 4136 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc: 4137 Likewise. 4138 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise. 4139 * testsuite/25_algorithms/set_union/constrained.cc: Likewise. 4140 * testsuite/25_algorithms/sort/constexpr.cc: Likewise. 4141 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise. 4142 * testsuite/25_algorithms/transform/constrained.cc: Likewise. 4143 * testsuite/25_algorithms/unique/constexpr.cc: Likewise. 4144 * testsuite/25_algorithms/unique/constrained.cc: Likewise. 4145 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise. 4146 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise. 4147 * testsuite/std/ranges/adaptors/elements.cc: Include <vector>. 4148 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise. 4149 * testsuite/std/ranges/adaptors/split.cc: Likewise. 4150 41512022-03-17 Jonathan Wakely <jwakely@redhat.com> 4152 4153 PR libstdc++/92546 4154 * include/bits/fs_path.h (path::make_preferred): Use 4155 handwritten loop instead of std::replace. 4156 41572022-03-17 Jonathan Wakely <jwakely@redhat.com> 4158 4159 PR middle-end/104966 4160 * include/bits/locale_facets_nonio.tcc 4161 (__moneypunct_cache::_M_cache): Replace try-catch with RAII and 4162 make all string copies before any stores to *this. 4163 41642022-03-17 Jonathan Wakely <jwakely@redhat.com> 4165 4166 * testsuite/util/testsuite_character.h: Fix comment. 4167 41682022-03-16 Jonathan Wakely <jwakely@redhat.com> 4169 4170 PR libstdc++/103407 4171 * config/abi/pre/gnu.ver: Make version for std::from_chars 4172 depend on HAVE_USELOCALE macro. 4173 * testsuite/util/testsuite_abi.cc (compare_symbols): Treat 4174 std::from_chars for floating-point types as undesignated if 4175 not found in the baseline symbols file. 4176 41772022-03-16 Jonathan Wakely <jwakely@redhat.com> 4178 4179 * include/std/charconv (__cpp_lib_to_chars): Only define when 4180 both from_chars and to_chars are supported for floating-point 4181 types. 4182 (from_chars, to_chars): Adjust preprocessor conditions guarding 4183 declarations. 4184 * include/std/version (__cpp_lib_to_chars): Adjust condition to 4185 match <charconv> definition. 4186 * src/c++17/floating_from_chars.cc (from_chars_strtod): New 4187 function template. 4188 (from_chars): Simplify preprocessor checks and use 4189 from_chars_strtod when appropriate. 4190 41912022-03-14 Jonathan Wakely <jwakely@redhat.com> 4192 4193 PR libstdc++/104875 4194 * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to 4195 hold octets that will be left-shifted. 4196 41972022-03-10 Jonathan Wakely <jwakely@redhat.com> 4198 4199 PR libstdc++/104870 4200 * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32 4201 before using fast_float. 4202 42032022-03-10 Detlef Vollmann <dv@vollmann.ch> 4204 4205 PR libstdc++/104866 4206 * include/bits/this_thread_sleep.h: Fix order of #endif and 4207 closing brace of namespace. 4208 42092022-03-10 Jonathan Wakely <jwakely@redhat.com> 4210 4211 * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]: 4212 Handle NaN. 4213 42142022-03-10 Jonathan Wakely <jwakely@redhat.com> 4215 4216 * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use 4217 <=> comparison. 4218 42192022-03-09 Patrick Palka <ppalka@redhat.com> 4220 4221 PR libstdc++/104859 4222 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex): 4223 Be explicit when narrowing the shifted effective_mantissa, 4224 since it may have an integer-class type. 4225 42262022-03-08 Jonathan Wakely <jwakely@redhat.com> 4227 4228 * include/bits/uses_allocator_args.h: Remove incorrect copyright 4229 notice. 4230 42312022-03-07 Jonathan Wakely <jwakely@redhat.com> 4232 4233 PR libstdc++/104807 4234 * include/bits/c++config (__terminate, __glibcxx_assert_fail): 4235 Replace _GLIBCXX_VISIBILITY on function with visibility pragma. 4236 (__is_constant_evaluated): Add visibility pragma. 4237 42382022-03-07 Rasmus Villemoes <rasmus.villemoes@prevas.dk> 4239 4240 * config/locale/vxworks/ctype_members.cc: Remove <iostream> 4241 include. 4242 42432022-03-05 Jonathan Wakely <jwakely@redhat.com> 4244 4245 * include/bits/c++config (__glibcxx_assert_fail): Add visibility 4246 attribute. 4247 (__terminate): Likewise. 4248 42492022-03-04 Jonathan Wakely <jwakely@redhat.com> 4250 4251 * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef 4252 inside #if condition. 4253 42542022-03-03 Jonathan Wakely <jwakely@redhat.com> 4255 4256 PR libstdc++/104748 4257 * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for 4258 constexpr test. 4259 42602022-03-03 Jonathan Wakely <jwakely@redhat.com> 4261 4262 * testsuite/17_intro/names.cc (func): Undef on AIX. 4263 42642022-03-03 Jonathan Wakely <jwakely@redhat.com> 4265 4266 PR libstdc++/96526 4267 * libsupc++/compare (strong_order): Add missing support for 4268 floating-point types. 4269 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc: 4270 New test. 4271 42722022-03-01 Jonathan Wakely <jwakely@redhat.com> 4273 4274 PR middle-end/103984 4275 * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use 4276 default member initializer. 4277 42782022-02-24 Jonathan Wakely <jwakely@redhat.com> 4279 4280 PR libstdc++/104602 4281 * include/std/source_location (source_location::current): Use 4282 deduced type of __builtin_source_location(). 4283 42842022-02-22 Patrick Palka <ppalka@redhat.com> 4285 4286 * include/bits/ranges_base.h (__detail::__is_initializer_list): 4287 Define. 4288 (viewable_range): Adjust as per P2415R2. 4289 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value. 4290 * include/std/ranges (owning_view): Define as per P2415R2. 4291 (enable_borrowed_range<owning_view>): Likewise. 4292 (views::__detail::__can_subrange): Replace with ... 4293 (views::__detail::__can_owning_view): ... this. 4294 (views::_All::_S_noexcept): Sync with operator(). 4295 (views::_All::operator()): Use owning_view instead of subrange 4296 as per P2415R2. 4297 * include/std/version (__cpp_lib_ranges): Adjust value. 4298 * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that 4299 views::all uses owning_view instead of subrange. 4300 (test08): New test. 4301 * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust 4302 now that rvalue non-view non-borrowed ranges are viewable. 4303 * testsuite/std/ranges/adaptors/split.cc (test06): Likewise. 4304 43052022-02-17 Jonathan Wakely <jwakely@redhat.com> 4306 4307 PR libstdc++/104559 4308 * doc/xml/manual/evolution.xml: Document deprecation. 4309 * doc/html/manual/api.html: Regenerate. 4310 * include/bits/stl_bvector.h (insert(const_iterator, const bool&)): 4311 Remove default argument. 4312 (insert(const_iterator)): New overload with deprecated attribute. 4313 * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc: 4314 New test. 4315 43162022-02-17 Jonathan Wakely <jwakely@redhat.com> 4317 4318 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace 4319 code that call cat->name() on std::error_category objects. 4320 Identify known categories by symbol name and use a hardcoded 4321 name. Print error code values as enumerators where appopriate. 4322 * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected 4323 name of custom category. Check io_errc and future_errc errors. 4324 43252022-02-15 Jonathan Wakely <jwakely@redhat.com> 4326 4327 PR libstdc++/104542 4328 * include/bits/uses_allocator_args.h (make_obj_using_allocator) 4329 (uninitialized_construct_using_allocator): Add constexpr. 4330 * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr. 4331 * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test. 4332 43332022-02-14 Jonathan Wakely <jwakely@redhat.com> 4334 4335 PR libstdc++/100912 4336 * config/locale/gnu/c_locale.h (__convert_from_v): Use inline 4337 namespace for IEEE128 long double mode. 4338 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol 4339 version and export __gnu_cxx_ieee128::__convert_from_v. 4340 * include/bits/locale_facets_nonio.tcc (money_put::__do_put): 4341 Make __ibm128 overload use snprintf directly 4342 * testsuite/util/testsuite_abi.cc: Add new symbol version. 4343 Remove stable IEEE128/LDBL versions. 4344 43452022-02-14 Jonathan Wakely <jwakely@redhat.com> 4346 4347 PR libstdc++/103891 4348 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS): 4349 Remove. 4350 * include/std/variant: Check feature test macros instead. 4351 * include/std/version: Likewise. 4352 43532022-02-14 Jonathan Wakely <jwakely@redhat.com> 4354 4355 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc: 4356 Fix typo. 4357 43582022-02-14 Jonathan Wakely <jwakely@redhat.com> 4359 4360 * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on 4361 LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128. 4362 43632022-02-11 Jonathan Wakely <jwakely@redhat.com> 4364 4365 * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target 4366 selector. 4367 43682022-02-11 Jonathan Wakely <jwakely@redhat.com> 4369 4370 * testsuite/20_util/monotonic_buffer_resource/allocate.cc: 4371 Ignore -Walloc-larger-than warning. 4372 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc: 4373 Likewise. 4374 * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1 4375 to avoid linker error for __atomic_is_lock_free. 4376 43772022-02-10 Thomas Rodgers <rodgert@appliantology.com> 4378 4379 * include/bits/atomic_wait.h (__waiter_base::_S_do_spin, 4380 __waiter_base::_S_do_spin_v): Change memory order from relaxed 4381 to acquire. 4382 43832022-02-10 Jonathan Wakely <jwakely@redhat.com> 4384 4385 * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add 4386 using-declaration. 4387 (atomic_fetch_xor_explicit): Likewise. 4388 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check 4389 arithmetic and logical operations for atomic_int. 4390 43912022-02-10 Jonathan Wakely <jwakely@redhat.com> 4392 4393 * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine 4394 when <dirent.h> is not available. 4395 (_GLIBCXX_HAVE_UNLINKAT): Likewise. 4396 43972022-02-09 Thomas Rodgers <rodgert@appliantology.com> 4398 4399 PR libstdc++/104442 4400 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin 4401 loop inside do loop so that threads failing the wait, reload 4402 _M_ver. 4403 44042022-02-08 Jonathan Wakely <jwakely@redhat.com> 4405 4406 * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first 4407 parameter to _Dir_base&&. 4408 * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove. 4409 * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first 4410 parameter to _Dir_base&&. 4411 44122022-02-08 Jonathan Wakely <jwakely@redhat.com> 4413 4414 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about 4415 checking for CAS on correct word size. 4416 44172022-02-08 Jonathan Wakely <jwakely@redhat.com> 4418 4419 * testsuite/experimental/filesystem/operations/create_directories.cc: 4420 Adjust expected results for Windows. 4421 44222022-02-08 Jonathan Wakely <jwakely@redhat.com> 4423 4424 PR libstdc++/104161 4425 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase): 4426 [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member, 4427 instead of checking for errno values indicating a directory. 4428 * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar 4429 logic to non-throwing overload. 4430 (fs::remove_all(const path&, error_code&)): Add comments. 4431 * src/filesystem/ops-common.h: Likewise. 4432 44332022-02-04 Jonathan Wakely <jwakely@redhat.com> 4434 4435 * src/filesystem/dir-common.h (_Dir_base::openat): Change return 4436 type to use portable posix::DIR alias. 4437 44382022-02-04 Jonathan Wakely <jwakely@redhat.com> 4439 4440 * include/c_compatibility/stdatomic.h [__clang__]: Use 4441 #include_next <stdatomic.h>. 4442 44432022-02-04 Jonathan Wakely <jwakely@redhat.com> 4444 4445 * include/experimental/bits/fs_ops.h (fs::copy_file): Remove 4446 noexcept. 4447 (fs::create_directories): Likewise. 4448 (fs::remove_all): Likewise. 4449 * src/filesystem/ops.cc (fs::copy_file): Remove noexcept. 4450 (fs::create_directories): Likewise. 4451 (fs::remove_all): Likewise. 4452 44532022-02-04 Jonathan Wakely <jwakely@redhat.com> 4454 4455 PR libstdc++/104161 4456 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd 4457 and unlinkat. 4458 * config.h.in: Regenerate. 4459 * configure: Regenerate. 4460 * include/bits/fs_dir.h (recursive_directory_iterator): Declare 4461 remove_all overloads as friends. 4462 (recursive_directory_iterator::__erase): Declare new member 4463 function. 4464 * include/bits/fs_fwd.h (remove, remove_all): Declare. 4465 * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to 4466 constructor. Pass file descriptor argument to base constructor. 4467 (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink) 4468 (_Dir::unlink, _Dir::rmdir): Define new member functions. 4469 (directory_iterator): Pass filename_only argument to _Dir 4470 constructor. 4471 (recursive_directory_iterator::_Dir_stack): Adjust constructor 4472 parameters to take a _Dir rvalue instead of creating one. 4473 (_Dir_stack::orig): Add data member for storing original path. 4474 (_Dir_stack::report_error): Define new member function. 4475 (__directory_iterator_nofollow): Move here from dir-common.h and 4476 fix value to be a power of two. 4477 (__directory_iterator_filename_only): Define new constant. 4478 (recursive_directory_iterator): Construct _Dir object and move 4479 into _M_dirs stack. Pass skip_permission_denied argument to first 4480 advance call. 4481 (recursive_directory_iterator::increment): Use _Dir::open_subdir. 4482 (recursive_directory_iterator::__erase): Define new member 4483 function. 4484 * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove. 4485 (fs::remove_all): Use new recursive_directory_iterator::__erase 4486 member function. 4487 * src/filesystem/dir-common.h (_Dir_base): Add int parameter to 4488 constructor and use openat to implement nofollow semantics. 4489 (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat): 4490 Define new member functions. 4491 (__directory_iterator_nofollow): Move to fs_dir.cc. 4492 * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to 4493 base constructor. 4494 (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member 4495 functions. 4496 (recursive_directory_iterator::_Dir_stack): Adjust constructor 4497 parameters to take a _Dir rvalue instead of creating one. 4498 (recursive_directory_iterator): Check for new nofollow option. 4499 Construct _Dir object and move into _M_dirs stack. Pass 4500 skip_permission_denied argument to first advance call. 4501 (recursive_directory_iterator::increment): Use _Dir::open_subdir. 4502 * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all. 4503 45042022-02-04 Jonathan Wakely <jwakely@redhat.com> 4505 4506 * include/bits/allocator.h: Qualify std::allocator_traits in 4507 deprecated warnings. 4508 * libsupc++/exception (uncaught_exception): Add suggestion to 4509 deprecated warning. 4510 45112022-02-02 Jonathan Wakely <jwakely@redhat.com> 4512 4513 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop): 4514 Add [[maybe_unused]] attribute. 4515 * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop): 4516 Likewise. 4517 45182022-02-02 Jonathan Wakely <jwakely@redhat.com> 4519 4520 * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use 4521 custom comparison function for multiset. 4522 * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom 4523 comparison function for set. 4524 45252022-02-02 Jonathan Wakely <jwakely@redhat.com> 4526 4527 * include/bits/boost_concept_check.h (_OutputIteratorConcept): 4528 Change member function to data member of function pointer type. 4529 45302022-02-02 Martin Sebor <msebor@redhat.com> 4531 4532 PR libstdc++/101831 4533 * include/std/array (begin): Declare const member function attribute 4534 const. 4535 (end, rbegin, rend, size, max_size, empty, data): Same. 4536 * testsuite/23_containers/array/capacity/empty.cc: Add test cases. 4537 * testsuite/23_containers/array/capacity/max_size.cc: Same. 4538 * testsuite/23_containers/array/capacity/size.cc: Same. 4539 * testsuite/23_containers/array/iterators/begin_end.cc: New test. 4540 45412022-02-02 Jonathan Wakely <jwakely@redhat.com> 4542 4543 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use 4544 autoconf macro to check whether d_type is present. 4545 * testsuite/experimental/filesystem/iterators/error_reporting.cc: 4546 Likewise. 4547 45482022-02-01 Jonathan Wakely <jwakely@redhat.com> 4549 4550 * testsuite/27_io/filesystem/iterators/97731.cc: New test. 4551 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc: 4552 Check follow_directory_symlink option. 4553 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc: 4554 Likewise. 4555 45562022-02-01 Jonathan Wakely <jwakely@redhat.com> 4557 4558 * src/c++17/fs_dir.cc (recursive_directory_iterator::increment): 4559 Reset state to past-the-end iterator on error. 4560 (fs::recursive_directory_iterator::pop(error_code&)): Likewise. 4561 (fs::recursive_directory_iterator::pop()): Check _M_dirs before 4562 it might get reset. 4563 * src/filesystem/dir.cc (recursive_directory_iterator): Likewise, 4564 for the TS implementation. 4565 * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test. 4566 * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test. 4567 45682022-02-01 Jonathan Wakely <jwakely@redhat.com> 4569 4570 * include/bits/fs_fwd.h (filesystem::perms): Fix comment. 4571 45722022-02-01 Jonathan Wakely <jwakely@redhat.com> 4573 4574 PR libstdc++/104301 4575 * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages 4576 for stdio_pure and stdio_posix options. 4577 * configure: Regenerate. 4578 45792022-02-01 Thomas Rodgers <rodgert@appliantology.com> 4580 4581 * include/bits/atomic_wait.h: Change memory order from 4582 Acquire/Release with relaxed loads to SeqCst+Release for 4583 accesses to the waiter's count. 4584 45852022-01-31 Martin Liska <mliska@suse.cz> 4586 4587 * acinclude.m4: Detect *_ld_is_mold and use it. 4588 * configure: Regenerate. 4589 45902022-01-30 Hans-Peter Nilsson <hp@axis.com> 4591 4592 * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on 4593 simulator targets. 4594 * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise. 4595 45962022-01-27 Jonathan Wakely <jwakely@redhat.com> 4597 4598 PR libstdc++/100516 4599 * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>): 4600 Add __builtin_unreachable to loop. 4601 * testsuite/23_containers/deque/100516.cc: New test. 4602 46032022-01-27 Jonathan Wakely <jwakely@redhat.com> 4604 4605 * include/bits/ranges_base.h (ranges::advance): Avoid signed 4606 overflow. Do nothing if already equal to desired result. 4607 * testsuite/24_iterators/range_operations/advance_overflow.cc: 4608 New test. 4609 46102022-01-27 Martin Liska <mliska@suse.cz> 4611 4612 PR libstdc++/104259 4613 * acinclude.m4: Fix typo. 4614 * configure: Regenerate. 4615 46162022-01-25 Jonathan Wakely <jwakely@redhat.com> 4617 4618 PR libstdc++/104019 4619 * include/bits/istream.tcc (basic_istream::sentry): Add braces 4620 around try-block. 4621 * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init): 4622 Add pragmas to disable bogus warnings from PR 61596. 4623 46242022-01-25 Jonathan Wakely <jwakely@redhat.com> 4625 4626 PR libstdc++/104217 4627 * src/c++17/fs_ops.cc (_GNU_SOURCE): Define. 4628 * src/filesystem/dir.cc (_GNU_SOURCE): Define. 4629 * src/filesystem/ops.cc (_GNU_SOURCE): Define. 4630 46312022-01-25 Jonathan Wakely <jwakely@redhat.com> 4632 4633 PR libstdc++/104161 4634 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for 4635 fdopendir. 4636 * config.h.in: Regenerate. 4637 * configure: Regenerate. 4638 * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor 4639 and pass it to base class constructor. 4640 (directory_iterator): Pass nofollow flag to _Dir constructor. 4641 (fs::recursive_directory_iterator::increment): Likewise. 4642 * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for 4643 directory_iterator constructor. Move error check outside loop. 4644 * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to 4645 constructor and when it's set use ::open with O_NOFOLLOW and 4646 O_DIRECTORY. 4647 * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor 4648 and pass it to base class constructor. 4649 (directory_iterator): Pass nofollow flag to _Dir constructor. 4650 (fs::recursive_directory_iterator::increment): Likewise. 4651 * src/filesystem/ops.cc (remove_all): Use nofollow option for 4652 directory_iterator constructor. Move error check outside loop. 4653 46542022-01-23 Jonathan Wakely <jwakely@redhat.com> 4655 4656 PR libstdc++/104032 4657 * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use 4658 mem-initializer for _M_buf. 4659 (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed 4660 member access. 4661 * testsuite/27_io/spanstream/2.cc: New test. 4662 46632022-01-23 Jonathan Wakely <jwakely@redhat.com> 4664 4665 * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS): 4666 Define macro for case where std::from_chars is implemented in 4667 terms of strtod, strtof or strtold. 4668 (buffer_resource, valid_fmt, find_end_of_float, pattern) 4669 (from_chars_impl, make_result, reserve_string): Do not define 4670 unless USE_STRTOD_FOR_FROM_CHARS is defined. 4671 (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and 4672 USE_STRTOD_FOR_FROM_CHARS is defined, instead of 4673 _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it 4674 is binary64. 4675 46762022-01-23 Jonathan Wakely <jwakely@redhat.com> 4677 4678 PR libstdc++/104174 4679 * include/bits/hashtable_policy.h (_Map_base): Add partial 4680 specialization for maps with const key types. 4681 * testsuite/23_containers/unordered_map/104174.cc: New test. 4682 46832022-01-23 Jonathan Wakely <jwakely@redhat.com> 4684 4685 PR libstdc++/104019 4686 * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release): 4687 Set members to zero without type punning. 4688 46892022-01-21 Jonathan Wakely <jwakely@redhat.com> 4690 4691 * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment. 4692 46932022-01-21 Jonathan Wakely <jwakely@redhat.com> 4694 4695 PR libstdc++/87193 4696 PR libstdc++/104019 4697 * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal): 4698 Define as type long. 4699 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements): 4700 Likewise. 4701 * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise. 4702 * include/bits/chrono.h (__cpp_lib_chrono): Likewise. 4703 (__cpp_lib_chrono_udls): Likewise. 4704 * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise. 4705 * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise. 4706 * include/bits/range_access.h (__cpp_lib_nonmember_container_access): 4707 Likewise. 4708 * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this): 4709 Likewise. 4710 * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise. 4711 (__cpp_lib_sample): Likewise. 4712 * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops): 4713 Likewise. 4714 * include/bits/stl_function.h (__cpp_lib_transparent_operators): 4715 Likewise. 4716 * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator): 4717 Likewise. 4718 * include/bits/stl_map.h (__cpp_lib_map_try_emplace): 4719 Likewise. 4720 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup): 4721 Likewise. 4722 * include/bits/unique_ptr.h (__cpp_lib_make_unique): 4723 Likewise. 4724 * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace): 4725 Likewise. 4726 * include/c_global/cmath (__cpp_lib_hypot): Likewise. 4727 * include/c_global/cstddef (__cpp_lib_byte): Likewise. 4728 * include/std/atomic (__cpp_lib_atomic_is_always_lock_free): 4729 Likewise. 4730 * include/std/complex (__cpp_lib_complex_udls): Likewise. 4731 * include/std/filesystem (__cpp_lib_filesystem): Likewise. 4732 * include/std/functional (__cpp_lib_not_fn): Likewise. 4733 (__cpp_lib_boyer_moore_searcher): Likewise. 4734 * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise. 4735 * include/std/mutex (__cpp_lib_scoped_lock): Likewise. 4736 * include/std/numeric (__cpp_lib_gcd_lcm): Likewise. 4737 (__cpp_lib_gcd, __cpp_lib_lcm): Likewise. 4738 * include/std/tuple (__cpp_lib_apply): Likewise. 4739 (__cpp_lib_make_from_tuple): Likewise. 4740 * include/std/type_traits (__cpp_lib_integral_constant_callable) 4741 (__cpp_lib_bool_constant, __cpp_lib_logical_traits) 4742 (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases) 4743 (__cpp_lib_result_of_sfinae, __cpp_lib_void_t) 4744 (__cpp_lib_is_swappable, __cpp_lib_is_invocable) 4745 (__cpp_lib_has_unique_object_representations) 4746 (__cpp_lib_is_aggregate): Likewise. 4747 * include/std/version: Likewise. 4748 * libsupc++/new (__cpp_lib_launder): Likewise. 4749 47502022-01-21 Jonathan Wakely <jwakely@redhat.com> 4751 4752 * include/std/version (__cpp_lib_shared_ptr_arrays): Fix 4753 condition for C++17 definition. 4754 47552022-01-21 Jonathan Wakely <jwakely@redhat.com> 4756 4757 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count): 4758 Add constexpr. 4759 (_Sp_atomic::_M_ptr): Add default member-initializer. 4760 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: 4761 Check constant initialization. 4762 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise. 4763 47642022-01-20 Jonathan Wakely <jwakely@redhat.com> 4765 4766 * src/c++11/cxx11-ios_failure.cc (__constinit): Define as 4767 equivalent attribute for Clang. 4768 * src/c++11/future.cc (__constinit): Likewise. 4769 * src/c++11/system_error.cc (__constinit): Likewise. 4770 * src/c++17/memory_resource.cc (__constinit): Likewise. 4771 47722022-01-20 Jonathan Wakely <jwakely@redhat.com> 4773 4774 * scripts/testsuite_flags.in: Only add src/filesystem/.libs and 4775 src/libbacktrace/.libs to LDFLAGS if those directories exist. 4776 47772022-01-19 Jonathan Wakely <jwakely@redhat.com> 4778 4779 * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4 4780 from default flags. 4781 * configure: Regenerate. 4782 47832022-01-19 Jonathan Wakely <jwakely@redhat.com> 4784 4785 PR libstdc++/104123 4786 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include 4787 <stddef.h>. 4788 47892022-01-19 Jonathan Wakely <jwakely@redhat.com> 4790 4791 * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to 4792 linker search paths. 4793 * src/Makefile.am: Fix src/debug/libbacktrace build. 4794 * src/Makefile.in: Regenerate. 4795 * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS 4796 variable. Use symlinks for the source files. 4797 * src/libbacktrace/Makefile.in: Regenerate. 4798 47992022-01-19 Matthias Kretz <m.kretz@gsi.de> 4800 4801 * include/experimental/bits/simd.h (__floating_point_flags): Do 4802 not rely on math_errhandling to expand to a constant expression. 4803 48042022-01-19 Jonathan Wakely <jwakely@redhat.com> 4805 4806 * doc/xml/manual/evolution.xml: Document deprecations. 4807 * doc/xml/manual/status_cxx2017.xml: Update status. 4808 * doc/html/*: Regenerate. 4809 48102022-01-19 Jonathan Wakely <jwakely@redhat.com> 4811 4812 * include/bits/stl_tempbuf.h (get_temporary_buffer): Change 4813 _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED. 4814 48152022-01-19 Jonathan Wakely <jwakely@redhat.com> 4816 4817 * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused 4818 function. 4819 48202022-01-19 Jonathan Wakely <jwakely@redhat.com> 4821 4822 PR libstdc++/104101 4823 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock): 4824 Only use __thread_relax if __cpp_lib_atomic_wait is defined. 4825 48262022-01-18 Jonathan Wakely <jwakely@redhat.com> 4827 4828 PR libstdc++/104099 4829 * include/bits/basic_string.h (basic_string(nullptr_t)): Only 4830 define for C++23. 4831 (operator=(nullptr_t)): Likewise. 4832 * include/bits/cow_string.h: Likewise. 4833 * include/std/string_view (basic_string_view(nullptr_t)): 4834 Likewise. 4835 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust 4836 expected error. Add examples that become ill-formed in C++23. 4837 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: 4838 Adjust expected errors. 4839 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc: 4840 Likewise. 4841 48422022-01-18 Jonathan Wakely <jwakely@redhat.com> 4843 4844 PR libstdc++/104098 4845 * include/bits/stl_iterator.h (reverse_iterator): Check 4846 __cpp_lib_concepts instead of __cplusplus. 4847 48482022-01-18 Jonathan Wakely <jwakely@redhat.com> 4849 4850 PR libstdc++/101124 4851 * include/bits/stl_pair.h (pair): Adjust constraints on 4852 deprecated constructors accepting literal zero as null pointer 4853 constant. Improve wording of deprecated attribute. 4854 * testsuite/20_util/pair/cons/99957.cc: Check that deprecated 4855 constructors do not cause ambiguities for copyable types. 4856 48572022-01-18 Jonathan Wakely <jwakely@redhat.com> 4858 4859 * include/bits/stl_function.h (ptr_fun): Fix suggestion for 4860 non-deprecated alternative. 4861 48622022-01-18 Tom Honermann <tom@honermann.net> 4863 4864 * acinclude.m4: Define config macros if uchar.h provides 4865 c8rtomb() and mbrtoc8(). 4866 * config.h.in: Regenerate. 4867 * configure: Regenerate. 4868 * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define. 4869 * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise. 4870 * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise. 4871 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc: 4872 New test. 4873 * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc: 4874 New test. 4875 48762022-01-18 Jonathan Wakely <jwakely@redhat.com> 4877 4878 * include/Makefile.am: Install new header. 4879 * include/Makefile.in: Regenerate. 4880 * include/c_compatibility/stdatomic.h: New file. 4881 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test. 4882 48832022-01-18 Jonathan Wakely <jwakely@redhat.com> 4884 4885 PR libstdc++/104080 4886 * src/c++17/fast_float/LOCAL_PATCHES: Update. 4887 * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN): 4888 Define in terms of __BYTE_ORDER__. 4889 48902022-01-18 Jonathan Wakely <jwakely@redhat.com> 4891 4892 PR libstdc++/104080 4893 * src/c++17/fast_float/LOCAL_PATCHES: UPDATE. 4894 * src/c++17/fast_float/fast_float.h (round): Use explicit 4895 template argument list for std::min. 4896 48972022-01-18 Jonathan Wakely <jwakely@redhat.com> 4898 4899 * doc/xml/manual/status_cxx2017.xml: Update C++17 status. 4900 * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for 4901 upcoming release. 4902 * doc/html/manual/status.html: Regenerate. 4903 49042022-01-18 Jonathan Wakely <jwakely@redhat.com> 4905 4906 * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve 4907 comments. 4908 * configure: Regenerate. 4909 49102022-01-17 Patrick Palka <ppalka@redhat.com> 4911 4912 * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT): 4913 Conditionally define, and use it to conditionally include 4914 fast_float. 4915 (from_chars): Use fast_float for float and double when 4916 USE_LIB_FAST_FLOAT. 4917 49182022-01-17 Patrick Palka <ppalka@redhat.com> 4919 4920 * src/c++17/fast_float/LOCAL_PATCHES: Update. 4921 * src/c++17/fast_float/fast_float.h (from_chars_advanced): In 4922 case of over/underflow, return errc::result_out_of_range and don't 4923 modify 'value'. 4924 49252022-01-17 Patrick Palka <ppalka@redhat.com> 4926 4927 * src/c++17/fast_float/LOCAL_PATCHES: Update. 4928 * src/c++17/fast_float/fast_float.h: Apply local modifications. 4929 49302022-01-17 Patrick Palka <ppalka@redhat.com> 4931 4932 * src/c++17/fast_float/LOCAL_PATCHES: New file. 4933 * src/c++17/fast_float/MERGE: New file. 4934 * src/c++17/fast_float/README.md: New file, copied from the 4935 fast_float repository. 4936 * src/c++17/fast_float/fast_float.h: New file, an amalgamation 4937 of the fast_float library. 4938 49392022-01-17 Patrick Palka <ppalka@redhat.com> 4940 4941 * src/c++17/floating_from_chars.cc: Include <bit>. 4942 (ascii_to_hexit, starts_with_ci): Conditionally define. 4943 (__floating_from_chars_hex): Conditionally define. 4944 (from_chars): Use __floating_from_chars_hex for 4945 chars_format::hex parsing of binary32/64 float/double. 4946 (testsuite/20_util/from_chars/7.cc): New test. 4947 * testsuite/20_util/from_chars/7.cc: New file. 4948 49492022-01-17 Jonathan Wakely <jwakely@redhat.com> 4950 4951 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro. 4952 * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE. 4953 * include/Makefile.am: Add new header. 4954 * include/Makefile.in: Regenerate. 4955 * include/std/stacktrace: New header. 4956 * include/std/version (__cpp_lib_stacktrace): Define. 4957 * Makefile.in: Regenerate. 4958 * config.h.in: Regenerate. 4959 * configure: Regenerate. 4960 * doc/Makefile.in: Regenerate. 4961 * libsupc++/Makefile.in: Regenerate. 4962 * po/Makefile.in: Regenerate. 4963 * python/Makefile.in: Regenerate. 4964 * src/Makefile.am: Regenerate. 4965 * src/Makefile.in: Regenerate. 4966 * src/c++11/Makefile.in: Regenerate. 4967 * src/c++17/Makefile.in: Regenerate. 4968 * src/c++20/Makefile.in: Regenerate. 4969 * src/c++98/Makefile.in: Regenerate. 4970 * src/filesystem/Makefile.in: Regenerate. 4971 * testsuite/Makefile.in: Regenerate. 4972 * src/libbacktrace/Makefile.am: New file. 4973 * src/libbacktrace/Makefile.in: New file. 4974 * src/libbacktrace/backtrace-rename.h: New file. 4975 * src/libbacktrace/backtrace-supported.h.in: New file. 4976 * src/libbacktrace/config.h.in: New file. 4977 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace): 4978 New proc. 4979 * testsuite/20_util/stacktrace/entry.cc: New test. 4980 * testsuite/20_util/stacktrace/synopsis.cc: New test. 4981 * testsuite/20_util/stacktrace/version.cc: New test. 4982 49832022-01-17 Jonathan Wakely <jwakely@redhat.com> 4984 4985 * doc/xml/manual/status_cxx2020.xml: Use final C++20 option 4986 names. 4987 * doc/html/manual/status.html: Regenerate. 4988 49892022-01-17 Jonathan Wakely <jwakely@redhat.com> 4990 4991 PR libstdc++/103650 4992 * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS. 4993 * include/Makefile.in: Regenerate. 4994 * testsuite/17_intro/headers/c++1998/103650.cc: New test. 4995 49962022-01-17 Matthias Kretz <m.kretz@gsi.de> 4997 4998 * include/experimental/bits/simd.h (__floating_point_flags): Do 4999 not rely on the presence of the math_errhandling macro. 5000 50012022-01-17 Jonathan Wakely <jwakely@redhat.com> 5002 5003 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename 5004 to qualified-id for dependent type. 5005 50062022-01-17 Jonathan Wakely <jwakely@redhat.com> 5007 5008 * doc/xml/manual/status_cxx2020.xml: Update. 5009 * doc/html/manual/status.html: Regenerate. 5010 50112022-01-17 Jonathan Wakely <jwakely@redhat.com> 5012 Thomas Rodgers <trodgers@redhat.com> 5013 5014 * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr): 5015 New macro. 5016 (_Sp_atomic): New class template. 5017 (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial 5018 specializations. 5019 * include/bits/shared_ptr_base.h (__shared_count, __weak_count) 5020 (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend. 5021 * include/std/version (__cpp_lib_atomic_shared_ptr): New macro. 5022 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New 5023 test. 5024 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test. 5025 50262022-01-15 Matthias Kretz <m.kretz@gsi.de> 5027 5028 * include/experimental/bits/simd.h: Move feature detection bools 5029 and add __have_avx512bitalg, __have_avx512vbmi2, 5030 __have_avx512vbmi, __have_avx512ifma, __have_avx512cd, 5031 __have_avx512vnni, __have_avx512vpopcntdq. 5032 (__detail::__machine_flags): New function which returns a unique 5033 uint64 depending on relevant -m and -f flags. 5034 (__detail::__odr_helper): New type alias for either an anonymous 5035 type or a type specialized with the __machine_flags number. 5036 (_SimdIntOperators): Change template parameters from _Impl to 5037 _Tp, _Abi because _Impl now has an __odr_helper parameter which 5038 may be _OdrEnforcer from the anonymous namespace, which makes 5039 for a bad base class. 5040 (many): Either add __odr_helper template parameter or mark as 5041 always_inline. 5042 * include/experimental/bits/simd_detail.h: Add defines for 5043 AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD, 5044 AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT. 5045 * include/experimental/bits/simd_builtin.h: Add __odr_helper 5046 template parameter or mark as always_inline. 5047 * include/experimental/bits/simd_fixed_size.h: Ditto. 5048 * include/experimental/bits/simd_math.h: Ditto. 5049 * include/experimental/bits/simd_scalar.h: Ditto. 5050 * include/experimental/bits/simd_neon.h: Add __odr_helper 5051 template parameter. 5052 * include/experimental/bits/simd_ppc.h: Ditto. 5053 * include/experimental/bits/simd_x86.h: Ditto. 5054 50552022-01-14 Uro�� Bizjak <ubizjak@gmail.com> 5056 5057 * testsuite/22_locale/numpunct/members/char/3.cc: 5058 Require pt_PT locale instead of nl_NL. 5059 (test02): Use pt_PT locale instead of nl_NL. 5060 50612022-01-14 Jonathan Wakely <jwakely@redhat.com> 5062 5063 PR libstdc++/91260 5064 PR libstdc++/91383 5065 PR libstdc++/95065 5066 * include/backward/binders.h (bind1st, bind2nd): Add deprecated 5067 attribute. 5068 * include/bits/refwrap.h (_Maybe_unary_or_binary_function): 5069 Disable deprecated warnings for base classes. 5070 (_Reference_wrapper_base): Likewise. 5071 * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise. 5072 * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise. 5073 * include/bits/stl_function.h (unary_function, binary_function): 5074 Add deprecated attribute. 5075 (unary_negate, not1, binary_negate, not2, ptr_fun) 5076 (pointer_to_unary_function, pointer_to_binary_function) 5077 (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t) 5078 (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t) 5079 (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated 5080 attributes. 5081 * include/bits/stl_iterator.h: Disable deprecated warnings for 5082 std::iterator base classes. 5083 * include/bits/stl_iterator_base_types.h (iterator): Add 5084 deprecated attribute. 5085 * include/bits/stl_map.h (map::value_compare): Disable 5086 deprecated warnings for base class. 5087 * include/bits/stl_multimap.h (multimap::value_compare): 5088 Likewise. 5089 * include/bits/stl_raw_storage_iter.h (raw_storage_iterator): 5090 Add deprecated attribute. 5091 * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise. 5092 * include/bits/stream_iterator.h: Disable deprecated warnings. 5093 * include/bits/streambuf_iterator.h: Likewise. 5094 * include/ext/bitmap_allocator.h: Remove unary_function base 5095 classes. 5096 * include/ext/functional: Disable deprecated warnings. 5097 * include/ext/rope: Likewise. 5098 * include/ext/throw_allocator.h: Likewise. 5099 * include/std/type_traits (result_of): Add deprecated attribute. 5100 * include/tr1/functional: Disable deprecated warnings. 5101 * include/tr1/functional_hash.h: Likewise. 5102 * testsuite/20_util/function_objects/binders/1.cc: Add 5103 -Wno-disable-deprecations. 5104 * testsuite/20_util/function_objects/binders/3113.cc: Likewise. 5105 * testsuite/20_util/function_objects/constexpr.cc: Add 5106 dg-warning. 5107 * testsuite/20_util/raw_storage_iterator/base.cc: Likewise. 5108 * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise. 5109 * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc: 5110 Likewise. 5111 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc: 5112 Likewise. 5113 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc: 5114 Likewise. 5115 * testsuite/20_util/reference_wrapper/24803.cc: 5116 Likewise. 5117 * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for 5118 C++20 and check for absence of nested types. 5119 * testsuite/20_util/shared_ptr/comparison/less.cc: Remove 5120 std::binary_function base class. 5121 * testsuite/20_util/temporary_buffer.cc: Add dg-warning. 5122 * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove 5123 std::iterator base class. 5124 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc: 5125 Likewise. 5126 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc: 5127 Likewise. 5128 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc: 5129 Likewise. 5130 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc: 5131 Likewise. 5132 * testsuite/24_iterators/istreambuf_iterator/92285.cc: 5133 Likewise. 5134 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc: 5135 Likewise. 5136 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc: 5137 Likewise. 5138 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc: 5139 Likewise. 5140 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc: 5141 Likewise. 5142 * testsuite/25_algorithms/copy/34595.cc: 5143 Likewise. 5144 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function 5145 base class. 5146 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc: 5147 Disable deprecated warnings. 5148 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc: 5149 Likewise. 5150 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc: 5151 Likewise. 5152 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc: 5153 Likewise. 5154 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc: 5155 Likewise. 5156 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc: 5157 Likewise. 5158 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc: 5159 Likewise. 5160 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc: 5161 Likewise. 5162 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc: 5163 Likewise. 5164 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc: 5165 Likewise. 5166 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc: 5167 Likewise. 5168 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc: 5169 Likewise. 5170 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc: 5171 Likewise. 5172 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc: 5173 Likewise. 5174 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc: 5175 Likewise. 5176 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc: 5177 Likewise. 5178 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc: 5179 Likewise. 5180 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc: 5181 Likewise. 5182 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc: 5183 Likewise. 5184 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc: 5185 Likewise. 5186 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc: 5187 Likewise. 5188 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc: 5189 Likewise. 5190 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc: 5191 Likewise. 5192 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc: 5193 Likewise. 5194 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc: 5195 Likewise. 5196 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc: 5197 Likewise. 5198 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc: 5199 Likewise. 5200 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc: 5201 Likewise. 5202 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc: 5203 Likewise. 5204 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc: 5205 Likewise. 5206 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc: 5207 Likewise. 5208 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc: 5209 Likewise. 5210 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc: 5211 Likewise. 5212 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc: 5213 Likewise. 5214 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc: 5215 Likewise. 5216 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc: 5217 Likewise. 5218 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc: 5219 Likewise. 5220 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc: 5221 Likewise. 5222 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc: 5223 Likewise. 5224 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc: 5225 Likewise. 5226 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc: 5227 Likewise. 5228 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc: 5229 Likewise. 5230 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc: 5231 Likewise. 5232 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc: 5233 Likewise. 5234 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc: 5235 Likewise. 5236 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc: 5237 Likewise. 5238 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc: 5239 Likewise. 5240 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc: 5241 Likewise. 5242 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add 5243 dg-warning. 5244 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc: 5245 Likewise. 5246 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc: 5247 Likewise. 5248 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc: 5249 Disable deprecated warnings. 5250 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc: 5251 Likewise. 5252 * testsuite/util/regression/trait/erase_if_fn.hpp: Remove 5253 std::unary_function base classes. 5254 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper): 5255 Remove std::iterator base classes. 5256 52572022-01-14 Jonathan Wakely <jwakely@redhat.com> 5258 5259 * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type): 5260 Correct type of macro value. 5261 (shared_ptr): Add additional friend declarations. 5262 (make_shared, allocate_shared): Constrain existing overloads and 5263 remove static_assert. 5264 * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite): 5265 New macro. 5266 (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial 5267 specialization for use with make_shared_for_overwrite. 5268 (__cpp_lib_shared_ptr_arrays): Update value for C++20. 5269 (_Sp_counted_array_base): New class template. 5270 (_Sp_counted_array): New class template. 5271 (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)): 5272 New constructor for allocating shared arrays. 5273 (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise. 5274 * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct 5275 type. 5276 (__cpp_lib_shared_ptr_arrays): Update value for C++20. 5277 (__cpp_lib_smart_ptr_for_overwrite): New macro. 5278 * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust 5279 expected errors. 5280 * testsuite/20_util/shared_ptr/creation/array.cc: New test. 5281 * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test. 5282 * testsuite/20_util/shared_ptr/creation/version.cc: New test. 5283 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check 5284 feature test macro. Test non-trivial default-initialization. 5285 52862022-01-14 Jonathan Wakely <jwakely@redhat.com> 5287 5288 * include/bits/stl_construct.h (_Construct, _Construct_novalue): 5289 Also cast away cv-qualifiers when converting pointer to void. 5290 * testsuite/20_util/allocator/void.cc: Test construct function 5291 with cv-qualified types. 5292 52932022-01-14 Jonathan Wakely <jwakely@redhat.com> 5294 5295 PR libstdc++/103992 5296 * include/bits/stl_iterator.h (common_iterator): Use 5297 std::construct_at instead of placement new. 5298 * testsuite/24_iterators/common_iterator/1.cc: Check copy 5299 construction is usable in constant expressions. 5300 53012022-01-14 Jonathan Wakely <jwakely@redhat.com> 5302 5303 * doc/xml/manual/status_cxx2011.xml: Document new tokens 5304 accepted by std::random_device constructor. 5305 * doc/html/manual/status.html: Regenerate. 5306 53072022-01-12 Patrick Palka <ppalka@redhat.com> 5308 5309 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do 5310 directive. 5311 53122022-01-12 Patrick Palka <ppalka@redhat.com> 5313 5314 PR libstdc++/103955 5315 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex): 5316 Track the excess precision separately from the effective 5317 precision. Avoid overflow in bounds check by splitting it into 5318 two checks. 5319 (__floating_to_chars_precision): Avoid overflow in bounds checks 5320 similarly. 5321 * testsuite/20_util/to_chars/103955.cc: New test. 5322 53232022-01-11 Jonathan Wakely <jwakely@redhat.com> 5324 5325 PR libstdc++/103726 5326 * include/Makefile.am: Install <source_location> for 5327 freestanding. 5328 * include/Makefile.in: Regenerate. 5329 * include/std/version (__cpp_lib_source_location): Define for 5330 freestanding. 5331 53322022-01-11 Jonathan Wakely <jwakely@redhat.com> 5333 5334 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()): 5335 Add neoxcept (LWG 3593). 5336 53372022-01-11 Jonathan Wakely <jwakely@redhat.com> 5338 5339 * include/std/ranges (ranges::__detail::__box): Add constexpr to 5340 assignment operators (LWG 3572). 5341 * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a 5342 view that uses copyable-box. 5343 53442022-01-11 Jonathan Wakely <jwakely@redhat.com> 5345 5346 PR libstdc++/103726 5347 * include/Makefile.am: Install <coroutine> for freestanding. 5348 * include/Makefile.in: Regenerate. 5349 * include/std/coroutine: Adjust headers and preprocessor 5350 conditions. 5351 (__coroutine_traits_impl): Use concepts when available. 5352 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define. 5353 53542022-01-11 Jonathan Wakely <jwakely@redhat.com> 5355 5356 * include/std/ostream (operator<<(basic_ostream&, charT)): 5357 Use unformatted input if no padding is needed. 5358 (operator<<(basic_ostream<char>&, char)): Likewise. 5359 53602022-01-11 Jonathan Wakely <jwakely@redhat.com> 5361 5362 PR libstdc++/103891 5363 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS): 5364 Define. 5365 * include/std/variant (__cpp_lib_variant): Only define C++20 5366 value when the compiler is known to support conditionally 5367 trivial destructors. 5368 * include/std/version (__cpp_lib_variant): Likewise. 5369 53702022-01-11 Jonathan Wakely <jwakely@redhat.com> 5371 5372 * include/bits/stl_iterator.h (common_iterator): Add constexpr 5373 to all member functions (LWG 3574). 5374 * testsuite/24_iterators/common_iterator/1.cc: Evaluate some 5375 tests as constant expressions. 5376 * testsuite/24_iterators/common_iterator/2.cc: Likewise. 5377 53782022-01-10 Jakub Jelinek <jakub@redhat.com> 5379 5380 PR libstdc++/77760 5381 * include/bits/locale_facets_nonio.h (__time_get_state): New struct. 5382 (time_get::_M_extract_via_format): Declare new method with 5383 __time_get_state& as an extra argument. 5384 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add 5385 __state argument, set various fields in it while parsing. Handle %j, 5386 %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour 5387 for %p immediately. Add a wrapper around the method without the 5388 __state argument for backwards compatibility. 5389 (_M_extract_num): Remove all __len == 4 special cases. 5390 (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero 5391 initialize __state, pass it to _M_extract_via_format and finalize it 5392 at the end. 5393 (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068, 5394 69-99 to 1969-1999. For 3-4 digit parsed years use that as year. 5395 (get): If do_get isn't overloaded from the locale_facets_nonio.tcc 5396 version, don't call do_get but call _M_extract_via_format instead to 5397 pass around state. 5398 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format 5399 with extra __time_get_state and __time_get_state::_M_finalize_state. 5400 * src/c++98/locale_facets.cc (is_leap, day_of_the_week, 5401 day_of_the_year): New functions in anon namespace. 5402 (mon_yday): New var in anon namespace. 5403 (__time_get_state::_M_finalize_state): Define. 5404 * testsuite/22_locale/time_get/get/char/4.cc: New test. 5405 * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test. 5406 * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197 5407 as year 197AD instead of error. 5408 * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as 5409 year 2001 instead of error. 5410 * testsuite/22_locale/time_get/get_year/char/6.cc: New test. 5411 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse 5412 197 as year 197AD instead of error. 5413 * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse 5414 1 as year 2001 instead of error. 5415 * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test. 5416 54172022-01-10 Jonathan Wakely <jwakely@redhat.com> 5418 5419 PR libstdc++/103866 5420 * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do 5421 nothing for freestanding builds. 5422 (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS. 5423 * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured 5424 with --without-headers. Do not use GCC_HEADER_STDINT for 5425 freestanding builds. 5426 * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding 5427 for freestanding builds. 5428 * configure: Regenerate. 5429 * Makefile.in: Regenerate. 5430 * doc/Makefile.in: Regenerate. 5431 * include/Makefile.in: Regenerate. 5432 * libsupc++/Makefile.in: Regenerate. 5433 * po/Makefile.in: Regenerate. 5434 * python/Makefile.in: Regenerate. 5435 * src/Makefile.in: Regenerate. 5436 * src/c++11/Makefile.in: Regenerate. 5437 * src/c++17/Makefile.in: Regenerate. 5438 * src/c++20/Makefile.in: Regenerate. 5439 * src/c++98/Makefile.in: Regenerate. 5440 * src/filesystem/Makefile.in: Regenerate. 5441 * testsuite/Makefile.in: Regenerate. 5442 54432022-01-10 Jonathan Wakely <jwakely@redhat.com> 5444 5445 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc: 5446 Add dg-timeout-factor directive. 5447 * testsuite/28_regex/basic_regex/84110.cc: Likewise. 5448 * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise. 5449 * testsuite/28_regex/match_results/102667.cc: Likewise. 5450 54512022-01-10 Jonathan Wakely <jwakely@redhat.com> 5452 5453 * doc/xml/manual/using.xml: Update documentation around default 5454 -std option. 5455 * doc/html/*: Regenerate. 5456 54572022-01-10 Jonathan Wakely <jwakely@redhat.com> 5458 5459 PR libstdc++/100017 5460 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++. 5461 * src/c++17/Makefile.in: Regenerate. 5462 54632022-01-09 Sandra Loosemore <sandra@codesourcery.com> 5464 5465 * testsuite/18_support/type_info/constexpr.cc: Add explicit 5466 -fdelete-null-pointer-checks option. 5467 54682022-01-06 Pavel I. Kryukov <pavel.kryukov@phystech.edu> 5469 Jonathan Wakely <jwakely@redhat.com> 5470 5471 PR libstdc++/103853 5472 * include/bits/forward_list.tcc (forward_list::merge): Check for 5473 self-merge. 5474 * testsuite/23_containers/forward_list/operations/merge.cc: New test. 5475 54762022-01-06 Jonathan Wakely <jwakely@redhat.com> 5477 5478 * include/bits/regex.h (basic_regex, match_results): Qualify 5479 name in friend declaration, to work around Clang bug. 5480 54812022-01-06 Jonathan Wakely <jwakely@redhat.com> 5482 5483 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor. 5484 54852022-01-06 Jonathan Wakely <jwakely@redhat.com> 5486 5487 PR libstdc++/103911 5488 * include/std/charconv (__from_chars_alpha_to_num): Return 5489 char instead of unsigned char. Change invalid return value to 5490 127 instead of using numeric trait. 5491 (__from_chars_alnum): Fix comment. Do not use std::isdigit. 5492 Change type of variable to char. 5493 54942022-01-05 Fran��ois Dumont <fdumont@gcc.gnu.org> 5495 5496 PR libstdc++/68303 5497 * include/bits/hashtable_policy.h 5498 (_Hashtable_hash_traits<_Hash>): New. 5499 (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New. 5500 (_Hashtable_base<>::_M_key_equals): New. 5501 (_Hashtable_base<>::_M_equals): Use latter. 5502 (_Hashtable_base<>::_M_key_equals_tr): New. 5503 (_Hashtable_base<>::_M_equals_tr): Use latter. 5504 * include/bits/hashtable.h 5505 (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits. 5506 (_Hashtable<>::find): Loop through elements to look for key if size is lower 5507 than __small_size_threshold(). 5508 (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise. 5509 (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise. 5510 (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New. 5511 (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter. 5512 (_Hashtable<>::_M_find_before_node(const key_type&)): New. 5513 (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter. 5514 (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise. 5515 * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>. 5516 * testsuite/util/testsuite_performance.h 5517 (report_performance): Use 9 width to display memory. 5518 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc: 5519 New performance test case. 5520 55212022-01-05 Jonathan Wakely <jwakely@redhat.com> 5522 5523 PR libstdc++/103919 5524 * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)): 5525 Relax constraints on string_view parameter. 5526 * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)): 5527 Likewise. 5528 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test. 5529 55302022-01-05 Jonathan Wakely <jwakely@redhat.com> 5531 5532 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for 5533 ARM EABI. 5534 * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define. 5535 * include/std/version (__cpp_lib_constexpr_typeinfo): Define. 5536 * libsupc++/tinfo.cc: Add #error to ensure non-inline definition 5537 is emitted. 5538 (type_info::__equal): Define alias symbol. 5539 * libsupc++/typeinfo (type_info::before): Combine different 5540 implementations into one. 5541 (type_info::operator==): Likewise. Use address equality for 5542 constant evaluation. Call __equal for targets that require the 5543 definition to be non-inline. 5544 * testsuite/18_support/type_info/constexpr.cc: New test. 5545 55462022-01-05 Jonathan Wakely <jwakely@redhat.com> 5547 5548 * src/c++11/cxx11-ios_failure.cc (io_error_category): Define 5549 class and virtual functions as 'final'. 5550 (io_category_instance): Use constinit union to make the object 5551 immortal. 5552 * src/c++11/future.cc (future_error_category): Define class and 5553 virtual functions as 'final'. 5554 (future_category_instance): Use constinit union. 5555 55562022-01-05 Jonathan Wakely <jwakely@redhat.com> 5557 5558 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip 5559 versioned namespace from the type name that is printed. 5560 55612022-01-05 Jonathan Wakely <jwakely@redhat.com> 5562 5563 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New 5564 printer for std::regex NFA states. 5565 55662022-01-05 Jonathan Wakely <jwakely@redhat.com> 5567 5568 * testsuite/23_containers/forward_list/operations/1.cc: Fill in 5569 placeholders in comments. 5570 * testsuite/23_containers/forward_list/operations/2.cc: 5571 Likewise. 5572 * testsuite/23_containers/forward_list/operations/3.cc: 5573 Likewise. 5574 * testsuite/23_containers/forward_list/operations/4.cc: 5575 Likewise. 5576 * testsuite/23_containers/forward_list/operations/5.cc: 5577 Likewise. 5578 * testsuite/23_containers/forward_list/operations/6.cc: 5579 Likewise. 5580 * testsuite/23_containers/forward_list/operations/7.cc: 5581 Likewise. 5582 55832022-01-05 Jonathan Wakely <jwakely@redhat.com> 5584 5585 PR libstdc++/103848 5586 * include/bits/stl_deque.h (operator-): Do not use 0 as null 5587 pointer constant. 5588 55892022-01-05 Jonathan Wakely <jwakely@redhat.com> 5590 5591 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>): 5592 Use std::_Construct for construct. 5593 55942022-01-05 Jonathan Wakely <jwakely@redhat.com> 5595 5596 PR libstdc++/103877 5597 * doc/xml/faq.xml: Add '-x c++' to preprocessor command. 5598 * doc/html/faq.html: Regenerate. 5599 56002022-01-05 Jonathan Wakely <jwakely@redhat.com> 5601 5602 * include/bits/regex.h (__regex_algo_impl): Change __policy and 5603 __match_mode template parameters to be function parameters. 5604 (regex_match, regex_search): Pass policy and match mode as 5605 function arguments. 5606 * include/bits/regex.tcc (__regex_algo_impl): Change template 5607 parameters to function parameters. 5608 * include/bits/regex_compiler.h (_RegexTranslatorBase): Use 5609 'if constexpr' for conditions using template parameters. 5610 (_RegexTranslator): Likewise. 5611 * include/bits/regex_executor.tcc (_Executor::_M_handle_accept): 5612 Likewise. 5613 * testsuite/util/testsuite_regex.h (regex_match_debug) 5614 (regex_search_debug): Move template arguments to function 5615 arguments. 5616 56172022-01-05 Jonathan Wakely <jwakely@redhat.com> 5618 5619 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare 5620 results even if the match failed. 5621 56222022-01-05 Jonathan Wakely <jwakely@redhat.com> 5623 5624 * include/bits/regex_compiler.tcc: Adjust all calls to 5625 __throw_regex_error. 5626 * include/bits/regex_error.h (__throw_regex_error): Add noreturn 5627 attribute. 5628 * include/bits/regex_scanner.tcc: Likewise. 5629 * src/c++11/regex.cc (desc): New helper function. 5630 (regex_error::regex_error(error_type)): Use desc to get a string 5631 corresponding to the error code. 5632 5633 5634Copyright (C) 2022 Free Software Foundation, Inc. 5635 5636Copying and distribution of this file, with or without modification, 5637are permitted in any medium without royalty provided the copyright 5638notice and this notice are preserved. 5639