12021-08-24 Jonathan Wakely <jwakely@redhat.com> 2 3 Backported from master: 4 2021-08-19 Jonathan Wakely <jwakely@redhat.com> 5 6 PR libstdc++/101965 7 * include/std/charconv (__to_chars_i): Remove redundant check. 8 92021-08-24 Jonathan Wakely <jwakely@redhat.com> 10 11 Backported from master: 12 2021-08-17 Jonathan Wakely <jwakely@redhat.com> 13 14 * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check 15 construction from input iterators. 16 172021-08-24 Jonathan Wakely <jwakely@redhat.com> 18 19 Backported from master: 20 2021-07-22 Jonathan Wakely <jwakely@redhat.com> 21 22 PR libstdc++/100682 23 * doc/xml/manual/debug_mode.xml: Update documentation about 24 debug capability of std::array. 25 * doc/html/*: Regenerate. 26 * include/debug/array: New file. 27 282021-08-24 Jonathan Wakely <jwakely@redhat.com> 29 30 Backported from master: 31 2021-08-17 Jonathan Wakely <jwakely@redhat.com> 32 33 * include/bits/basic_string.h (basic_string::contains): Do not 34 define for -std=gnu++20. 35 362021-08-24 Jonathan Wakely <jwakely@redhat.com> 37 38 Backported from master: 39 2021-04-26 Jonathan Wakely <jwakely@redhat.com> 40 41 * include/bits/semaphore_base.h: Include <exception> and <errno.h>. 42 432021-08-24 Jonathan Wakely <jwakely@redhat.com> 44 45 Backported from master: 46 2021-06-22 Jonathan Wakely <jwakely@redhat.com> 47 48 * include/bits/random.h (seed_seq): Constrain initializer-list 49 constructor. 50 * include/bits/random.tcc (seed_seq): Add template parameter. 51 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check 52 for noexcept. 53 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check 54 constraints. 55 562021-08-24 Jonathan Wakely <jwakely@redhat.com> 57 58 Backported from master: 59 2021-04-30 Jonathan Wakely <jwakely@redhat.com> 60 61 PR libstdc++/100285 62 * include/experimental/socket (__basic_socket_impl::set_option) 63 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]: 64 Just set error code. 65 * testsuite/experimental/net/socket/socket_base.cc: CHeck 66 for <sys/socket.h> not <socket.h>. 67 682021-08-24 Jonathan Wakely <jwakely@redhat.com> 69 70 Backported from master: 71 2021-04-30 Jonathan Wakely <jwakely@redhat.com> 72 73 PR libstdc++/100180 74 PR libstdc++/100286 75 PR libstdc++/100351 76 * testsuite/experimental/net/internet/address/v4/comparisons.cc: 77 Use new effective-target keyword. 78 * testsuite/experimental/net/internet/address/v4/cons.cc: 79 Likewise. 80 * testsuite/experimental/net/internet/address/v4/creation.cc: 81 Likewise. 82 * testsuite/experimental/net/internet/address/v4/members.cc: 83 Likewise. 84 * testsuite/experimental/net/internet/address/v6/members.cc: 85 Likewise. 86 * testsuite/experimental/net/internet/resolver/base.cc: 87 Likewise. 88 * testsuite/experimental/net/internet/resolver/ops/lookup.cc: 89 Likewise. 90 * testsuite/experimental/net/internet/resolver/ops/reverse.cc: 91 Likewise. 92 * testsuite/experimental/net/internet/socket/opt.cc: 93 Likewise. 94 * testsuite/experimental/net/internet/tcp.cc: 95 Likewise. 96 * testsuite/experimental/net/internet/udp.cc: 97 Likewise. 98 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip): 99 New proc to check net_ts_ip et. 100 1012021-08-24 Jonathan Wakely <jwakely@redhat.com> 102 103 Backported from master: 104 2021-04-27 Jonathan Wakely <jwakely@redhat.com> 105 106 * include/experimental/internet (address_v6::bytes_type): Adjust 107 formatting. 108 (basic_endpoint): Define _M_is_v6() to put all checks for 109 AF_INET6 in one place. 110 (basic_endpoint::resize): Simplify. 111 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept. 112 (operator!=(const tcp&, const tcp&)): Likewise. 113 (operator==(const udp&, const udp&)): Likewise. 114 (operator!=(const udp&, const udp&)): Likewise. 115 * testsuite/experimental/net/internet/tcp.cc: New test. 116 * testsuite/experimental/net/internet/udp.cc: New test. 117 1182021-08-24 Jonathan Wakely <jwakely@redhat.com> 119 120 Backported from master: 121 2021-04-27 Jonathan Wakely <jwakely@redhat.com> 122 123 PR libstdc++/100286 124 * include/experimental/internet (resolver_errc, resolver_category()) 125 (make_error_code, make_error_condition): Define unconditionally, 126 only make enumerators and use of gai_strerror depend on the 127 availability of <netdb.h>. 128 (address_v4::to_string): Use correct constant for string length. 129 (address_v4::to_string, address_v6::to_string): Define 130 unconditionally, throw if unsupported. 131 (make_address_v4, make_address_v6): Define unconditionally. 132 Return an error if unsupported. 133 (tcp, udp, v6_only, unicast::hops, multicast::*): Define 134 conditionally, 135 * testsuite/experimental/net/internet/socket/opt.cc: Check for 136 <netinet/in.h> and <netinet/tcp.h> before using types from 137 namespace net::ip. 138 1392021-08-24 Jonathan Wakely <jwakely@redhat.com> 140 141 Backported from master: 142 2021-04-27 Jonathan Wakely <jwakely@redhat.com> 143 144 PR libstdc++/100285 145 * include/experimental/internet (resolver_base::flags): 146 Define overloaded operators as hidden friends. 147 * include/experimental/socket (socket_base::message_flags): 148 Likewise. 149 1502021-08-24 Jonathan Wakely <jwakely@redhat.com> 151 152 Backported from master: 153 2021-04-26 Jonathan Wakely <jwakely@redhat.com> 154 155 * include/experimental/internet (tcp::no_delay, v6_only) 156 (unicast::hops, multicast::hops, multicast::enable_loopback): 157 Change access of base class and static data members. Add 158 using-declaration for __socket_crtp::operator=(_Tp). 159 (multicast::__mcastopt): New type. 160 (multicast::join_group, multicast::leave_group): Derive from 161 __mcastopt for common implementation. 162 * include/experimental/socket: Add comment. 163 * testsuite/experimental/net/internet/socket/opt.cc: New test. 164 * testsuite/experimental/net/socket/socket_base.cc: Check for 165 protected constructor/destructor of socket_base. Check for 166 explicit constructors of socket option classes. 167 1682021-08-24 Jonathan Wakely <jwakely@redhat.com> 169 170 Backported from master: 171 2021-04-26 Jonathan Wakely <jwakely@redhat.com> 172 173 * include/experimental/bits/net.h (__socket_base): Add 174 bool template parameter to allow BooleanSocketOption and 175 IntegerSocketOption to have different __socket_base<int> 176 base classes. 177 (__socket_base<bool>): Adjust base class. 178 (__socket_base<int>): Add partial specialization. 179 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier. 180 * include/experimental/socket (socket_base::broadcast) 181 (socket_base::debug, socket_base::do_not_route) 182 (socket_base::keep_alive, socket_base::linger) 183 (socket_base::out_of_band_inline) 184 (socket_base::receive_buffer_size) 185 (socket_base::receive_low_watermark) 186 (socket_base::reuse_address, socket_base::send_buffer_size) 187 (socket_base::send_low_watermark): Add using-declaration for 188 __socket_crtp::operator=(_Tp). 189 * testsuite/experimental/net/socket/socket_base.cc: Check 190 properties of socket option types. 191 1922021-08-24 Jonathan Wakely <jwakely@redhat.com> 193 194 Backported from master: 195 2021-04-26 Jonathan Wakely <jwakely@redhat.com> 196 197 * include/experimental/internet (resolver_base::flags): Remove 198 enumerators. Initialize constants directly with desired values. 199 Make all operators constexpr and noexcept. 200 * testsuite/experimental/net/internet/resolver/base.cc: Use 201 __gnu_test::test_bitmask_values for bitmask type. Check 202 construction and destruction is protected. 203 2042021-08-24 Jonathan Wakely <jwakely@redhat.com> 205 206 Backported from master: 207 2021-04-23 Jonathan Wakely <jwakely@redhat.com> 208 209 PR libstdc++/100180 210 * include/experimental/io_context (io_context): Define 211 dummy_pollfd type so that most member functions still compile 212 without <poll.h> and struct pollfd. 213 2142021-08-24 Jonathan Wakely <jwakely@redhat.com> 215 216 Backported from master: 217 2021-04-23 Jonathan Wakely <jwakely@redhat.com> 218 219 * include/experimental/io_context (io_context::async_wait): Add 220 comment. 221 * include/experimental/socket (basic_socket::async_connect): 222 Cast wait_type constant to int. 223 (basic_datagram_socket::async_receive): Likewise. 224 (basic_datagram_socket::async_receive_from): Likewise. 225 (basic_datagram_socket::async_send): Likewise. 226 (basic_datagram_socket::async_send_to): Likewise. 227 (basic_stream_socket::async_receive): Likewise. 228 (basic_stream_socket::async_send): Likewise. Use io_context 229 parameter directly, instead of via an executor. 230 (basic_socket_acceptor::async_accept): Likewise. 231 2322021-08-24 Jonathan Wakely <jwakely@redhat.com> 233 234 Backported from master: 235 2021-04-23 Jonathan Wakely <jwakely@redhat.com> 236 237 * include/experimental/socket (socket_base::shutdown_type): 238 (socket_base::wait_type, socket_base::message_flags): 239 Remove enumerators. Initialize constants directly with desired 240 values. 241 (socket_base::message_flags): Make all operators constexpr and 242 noexcept. 243 * testsuite/util/testsuite_common_types.h (test_bitmask_values): 244 New test utility. 245 * testsuite/experimental/net/socket/socket_base.cc: New test. 246 2472021-08-23 Jonathan Wakely <jwakely@redhat.com> 248 249 Backported from master: 250 2021-08-23 Jonathan Wakely <jwakely@redhat.com> 251 252 * include/std/ranges (basic_istream_view): Add default template 253 argument. 254 * testsuite/std/ranges/istream_view.cc: Check it. 255 2562021-08-19 Jonathan Wakely <jwakely@redhat.com> 257 258 Backported from master: 259 2021-08-19 Jonathan Wakely <jwakely@redhat.com> 260 261 * doc/xml/manual/status_cxx2020.xml: Move row earlier in table. 262 * doc/html/manual/status.html: Regenerate. 263 2642021-08-19 Jonathan Wakely <jwakely@redhat.com> 265 266 Backported from master: 267 2021-08-19 Jonathan Wakely <jwakely@redhat.com> 268 269 PR libstdc++/100139 270 * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table. 271 * doc/html/manual/status.html: Regenerate. 272 2732021-08-17 Thomas Schwinge <thomas@codesourcery.com> 274 275 Backported from master: 276 2021-08-17 Thomas Schwinge <thomas@codesourcery.com> 277 278 * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose, 279 continued. 280 2812021-08-11 Jonathan Wakely <jwakely@redhat.com> 282 283 Backported from master: 284 2021-08-11 Jonathan Wakely <jwakely@redhat.com> 285 286 PR libstdc++/101866 287 * testsuite/experimental/random/randint.cc: Loop and retry if 288 reseed() produces the same sequence. 289 2902021-08-11 Jonathan Wakely <jwakely@redhat.com> 291 292 Backported from master: 293 2021-07-20 Jonathan Wakely <jwakely@redhat.com> 294 295 PR libstdc++/101510 296 * src/c++17/fs_ops.cc (fs::create_directories): Use status 297 instead of symlink_status. 298 * src/filesystem/ops.cc (fs::create_directories): Likewise. 299 * testsuite/27_io/filesystem/operations/create_directories.cc: 300 Check symlink to existing directory. 301 * testsuite/27_io/filesystem/operations/create_directory.cc: Do 302 not test with symlinks on Windows. 303 * testsuite/experimental/filesystem/operations/create_directories.cc: 304 Check symlink to existing directory. 305 * testsuite/experimental/filesystem/operations/create_directory.cc: 306 Do not test with symlinks on Windows. 307 3082021-08-11 Jonathan Wakely <jwakely@redhat.com> 309 310 Backported from master: 311 2021-07-20 Jonathan Wakely <jwakely@redhat.com> 312 313 PR libstdc++/101510 314 * src/c++17/fs_ops.cc (create_dir): Adjust whitespace. 315 * testsuite/27_io/filesystem/operations/create_directory.cc: 316 Test creating directory with name of existing symlink to 317 directory. 318 * testsuite/experimental/filesystem/operations/create_directory.cc: 319 Likewise. 320 3212021-08-11 Jonathan Wakely <jwakely@redhat.com> 322 323 Backported from master: 324 2021-06-14 Jonathan Wakely <jwakely@redhat.com> 325 326 PR libstdc++/101056 327 * libsupc++/compare (compare_partial_order_fallback): Add 328 constraint using reversed parameter order, as per LWG 3465. 329 * testsuite/18_support/comparisons/algorithms/fallback.cc: 330 Adjust expected result. 331 3322021-08-11 Jonathan Wakely <jwakely@redhat.com> 333 334 Backported from master: 335 2021-06-14 Jonathan Wakely <jwakely@redhat.com> 336 337 * libsupc++/compare (__decayed_same_as): New helper concept. 338 (strong_order, weak_order, partial_order): Constrain with new 339 concept instead of using static_assert. 340 (compare_strong_order_fallback, compare_weak_order_fallback) 341 (compare_partial_order_fallback): Likewise. Do not deduce return 342 types. Remove redundant if-constexpr checks. 343 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test. 344 3452021-08-11 Jonathan Wakely <jwakely@redhat.com> 346 347 Backported from master: 348 2021-07-01 Jonathan Wakely <jwakely@redhat.com> 349 350 * doc/doxygen/doxygroups.cc: Fix docs for std::literals. 351 * doc/doxygen/user.cfg.in: Exclude the Networking TS header. 352 Add some more predefined macros. 353 * include/bits/fs_fwd.h: Move @addtogroup commands inside 354 namespaces. Add better documentation. 355 * include/bits/fs_path.h: Likewise. 356 * include/experimental/bits/fs_fwd.h: Likewise. 357 * include/experimental/bits/fs_path.h: Likewise. 358 * include/ext/throw_allocator.h: Fix typo and improve docs. 359 * include/std/chrono: Move @addtogroup commands. 360 * include/std/system_error: Move @addtogroup commands. 361 * libsupc++/exception: Improve documentation. 362 * libsupc++/exception.h: Add @since documentation. 363 3642021-08-11 Jonathan Wakely <jwakely@redhat.com> 365 366 Backported from master: 367 2021-06-30 Jonathan Wakely <jwakely@redhat.com> 368 369 PR libstdc++/101258 370 * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>. 371 (COLS_IN_ALPHA_INDEX): Remove obsolete tag. 372 (PREDEFINED): Add/fix some more macros that need to be expanded. 373 * include/bits/random.h: Stop Doxygen from documenting internal 374 implementation details. 375 * include/bits/random.tcc: Likewise. 376 * include/bits/this_thread_sleep.h: Fix @file name. 377 * include/experimental/bits/simd.h: Add to Doxygen group. Do not 378 document internal implementation details. 379 * include/experimental/bits/simd_detail.h: Do not document 380 internal implementation details. 381 * include/experimental/simd: Define Doxygen groups. 382 * include/experimental/type_traits: Improve documentation for 383 the header file. Define groups. Use @since commands. 384 * include/std/scoped_allocator (scoped_allocator_adaptor): Move 385 declaration before undocumented region. 386 * include/std/type_traits (true_type, false_type): Use using 387 declaration instead of typedef. 388 (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v) 389 (is_nothrow_invocable_r_v): Move definitions next to other C++17 390 variable templates. 391 Do not document internal implementation details. Move misplaced 392 group-end command. Define group for variable templates. 393 * include/std/variant: Do not document internal implementation 394 details. 395 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error 396 line number. 397 3982021-07-28 Release Manager 399 400 * GCC 11.2.0 released. 401 4022021-07-19 Jonathan Wakely <jwakely@redhat.com> 403 404 Backported from master: 405 2021-05-12 Jonathan Wakely <jwakely@redhat.com> 406 407 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: 408 Increase dg-timeout-factor to 4. Fix -Wunused-parameter 409 warnings. Replace bitwise AND with logical AND in loop 410 condition. 411 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: 412 Replace bitwise AND with logical AND in loop condition. 413 * testsuite/util/pstl/test_utils.h: Remove unused parameter 414 names. 415 4162021-07-19 Jonathan Wakely <jwakely@redhat.com> 417 418 Backported from master: 419 2021-06-15 Jonathan Wakely <jwakely@redhat.com> 420 421 * include/bits/ranges_util.h (subrange): Add __size_type typedef 422 and use it to simplify declarations. 423 (subrange(i, s, n)): Remove assertion. 424 * testsuite/std/ranges/subrange/constexpr.cc: New test. 425 4262021-07-19 Jonathan Wakely <jwakely@redhat.com> 427 428 Backported from master: 429 2021-07-15 Jonathan Wakely <jwakely@redhat.com> 430 431 PR libstdc++/101427 432 * include/std/tuple (tuple_element): Improve static_assert text. 433 (__get_helper): Add deleted overload. 434 (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use 435 __get_helper directly. 436 (__get_helper2): Remove. 437 (__find_uniq_type_in_pack): New constexpr helper function. 438 (get<T>): Use __find_uniq_type_in_pack and __get_helper instead 439 of __get_helper2. 440 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust 441 expected errors. 442 * testsuite/20_util/tuple/element_access/101427.cc: New test. 443 4442021-07-16 Jonathan Wakely <jwakely@redhat.com> 445 446 Backported from master: 447 2021-06-15 Jonathan Wakely <jwakely@redhat.com> 448 449 * include/bits/iterator_concepts.h (__cust_access::__decay_copy): 450 Replace with function object. 451 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use 452 __decay_copy unqualified. 453 * include/bits/ranges_base.h (__member_end, __adl_end): 454 Likewise. Use __range_iter_t for type of ranges::begin. 455 (__member_rend): Use correct value category for rbegin argument. 456 (__member_data): Use __decay_copy unqualified. 457 (__begin_data): Use __range_iter_t for type of ranges::begin. 458 4592021-07-15 Jonathan Wakely <jwakely@redhat.com> 460 461 Backported from master: 462 2021-06-14 Jonathan Wakely <jwakely@redhat.com> 463 464 * include/bits/ranges_base.h (ranges::empty): Check whether 465 conversion to bool can throw. 466 * testsuite/std/ranges/access/empty.cc: Check for correct 467 noexcept-specifier. 468 4692021-07-15 Jonathan Wakely <jwakely@redhat.com> 470 471 Backported from master: 472 2021-06-30 Jonathan Wakely <jwakely@redhat.com> 473 474 * include/experimental/simd: Do not define anything pre-C++17. 475 4762021-07-14 Jonathan Wakely <jwakely@redhat.com> 477 478 Backported from master: 479 2021-07-13 Jonathan Wakely <jwakely@redhat.com> 480 481 PR c++/101361 482 * include/std/string_view (ends_with): Use traits_type::compare 483 directly. 484 4852021-07-14 Jonathan Wakely <jwakely@redhat.com> 486 487 Backported from master: 488 2021-07-13 Jonathan Wakely <jwakely@redhat.com> 489 490 * include/std/string_view: Only include <bits/ranges_base.h> 491 once, and only for C++20 and later. 492 4932021-07-14 Jonathan Wakely <jwakely@redhat.com> 494 495 Backported from master: 496 2021-07-12 Jonathan Wakely <jwakely@redhat.com> 497 498 PR libstdc++/101411 499 * include/std/span (as_writable_bytes): Add requires-clause. 500 * testsuite/23_containers/span/101411.cc: New test. 501 5022021-07-13 Patrick Palka <ppalka@redhat.com> 503 504 Backported from master: 505 2021-06-18 Patrick Palka <ppalka@redhat.com> 506 507 PR libstdc++/100387 508 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite 509 to limit comparison complexity to 3*N/2. 510 (__minmax_element_fn::operator()): Likewise. 511 (shift_right): Avoid premature std::move of __result. 512 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05): 513 New tests. 514 * testsuite/25_algorithms/minmax_element/constrained.cc (test02): 515 Likewise. 516 5172021-06-22 Thomas Rodgers <rodgert@appliantology.com> 518 519 Backported from master: 520 2021-06-22 Thomas Rodgers <rodgert@appliantology.com> 521 522 PR libstdc++/100806 523 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release): 524 Force _M_release() to wake all waiting threads. 525 * testsuite/30_threads/semaphore/100806.cc: New test. 526 5272021-06-18 Jonathan Wakely <jwakely@redhat.com> 528 529 Backported from master: 530 2021-06-18 Jonathan Wakely <jwakely@redhat.com> 531 532 PR libstdc++/95833 533 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace 534 incorrect static_assert with ones matching the 'Mandates' 535 conditions in the standard. 536 * testsuite/26_numerics/reduce/95833.cc: New test. 537 5382021-06-18 Jonathan Wakely <jwakely@redhat.com> 539 540 Backported from master: 541 2021-06-18 Jonathan Wakely <jwakely@redhat.com> 542 543 * testsuite/21_strings/basic_string/cons/char/1.cc: Use 544 diagnostic pragma to suppress -Wstringop-overread error. 545 5462021-06-18 Jonathan Wakely <jwakely@redhat.com> 547 548 Backported from master: 549 2021-06-17 Jonathan Wakely <jwakely@redhat.com> 550 551 PR libstdc++/91488 552 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only 553 define C++20 value when std::is_constant_evaluated is available. 554 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): 555 Likewise. 556 (__constant_string_p, __constant_array_p): Give external 557 linkage. 558 * include/std/version (__cpp_lib_constexpr_char_traits) 559 (__cpp_lib_constexpr_string): Only define C++20 values when 560 is_constant_evaluated is available. 561 5622021-06-18 Patrick Palka <ppalka@redhat.com> 563 564 Backported from master: 565 2021-06-17 Patrick Palka <ppalka@redhat.com> 566 567 PR libstdc++/100940 568 * include/std/ranges (__adaptor::_Partial): For the "simple" 569 forwarding partial specializations, also require that 570 the extra arguments are trivially copyable. 571 * testsuite/std/ranges/adaptors/100577.cc (test04): New test. 572 5732021-06-18 Patrick Palka <ppalka@redhat.com> 574 575 Backported from master: 576 2021-06-17 Patrick Palka <ppalka@redhat.com> 577 578 PR libstdc++/100940 579 * include/std/ranges (__adaptor::_RangeAdaptor): Document the 580 template form of _S_has_simple_extra_args. 581 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template 582 parameter pack. Try to treat _S_has_simple_extra_args as a 583 variable template parameterized by _Args. 584 (__adaptor::_Partial): Pass _Arg/_Args to the constraint 585 __adaptor_has_simple_extra_args. 586 (views::_Take::_S_has_simple_extra_args): Templatize according 587 to the type of the extra argument. 588 (views::_Drop::_S_has_simple_extra_args): Likewise. 589 (views::_Split::_S_has_simple_extra_args): Define. 590 * testsuite/std/ranges/adaptors/100577.cc (test01, test02): 591 Adjust after changes to _S_has_simple_extra_args mechanism. 592 (test03): Define. 593 5942021-06-14 Jonathan Wakely <jwakely@redhat.com> 595 596 Backported from master: 597 2021-06-14 Jonathan Wakely <jwakely@redhat.com> 598 599 PR libstdc++/100894 600 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only 601 use the type if it's a reference. 602 * testsuite/20_util/common_reference/100894.cc: New test. 603 6042021-06-14 Jonathan Wakely <jwakely@redhat.com> 605 606 Backported from master: 607 2021-05-20 Jonathan Wakely <jwakely@redhat.com> 608 609 * include/bits/random.tcc (__representable_as_double) 610 (__p1_representable_as_double): Add "" to static asserts. 611 6122021-06-14 Jonathan Wakely <jwakely@redhat.com> 613 614 Backported from master: 615 2021-06-14 Jonathan Wakely <jwakely@redhat.com> 616 617 * testsuite/experimental/filesystem/path/native/conv_c++23.cc: 618 Add dg-require-filesystem-ts directive. 619 6202021-06-14 Jonathan Wakely <jwakely@redhat.com> 621 622 Backported from master: 623 2021-06-14 Jonathan Wakely <jwakely@redhat.com> 624 625 PR libstdc++/101034 626 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...)) 627 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint 628 to use lvalue. 629 * testsuite/20_util/any/cons/101034.cc: New test. 630 6312021-06-14 Jonathan Wakely <jwakely@redhat.com> 632 633 Backported from master: 634 2021-06-14 Jonathan Wakely <jwakely@redhat.com> 635 636 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add 637 -std=gnu++17 option. 638 6392021-06-14 Jonathan Wakely <jwakely@redhat.com> 640 641 Backported from master: 642 2021-06-14 Jonathan Wakely <jwakely@redhat.com> 643 644 PR libstdc++/101055 645 * include/std/tuple: Use reserved form of attribute name. 646 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add 647 check for no_unique_address. 648 * testsuite/17_intro/headers/c++2014/all_attributes.cc: 649 Likewise. 650 * testsuite/17_intro/headers/c++2017/all_attributes.cc: 651 Likewise. 652 6532021-06-14 Patrick Palka <ppalka@redhat.com> 654 655 Backported from master: 656 2021-05-18 Patrick Palka <ppalka@redhat.com> 657 658 PR libstdc++/100475 659 * include/std/ranges (__box::__box): Use non-list-initialization 660 in member initializer list of in-place constructor of the 661 partial specialization for semiregular types. 662 (__box::operator->): Use std::__addressof. 663 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc 664 (test02): New test. 665 * testsuite/std/ranges/single_view.cc (test04): New test. 666 6672021-06-11 Jonathan Wakely <jwakely@redhat.com> 668 669 Backported from master: 670 2021-06-11 Jonathan Wakely <jwakely@redhat.com> 671 672 * include/bits/fs_path.h (operator==, operator<=>): Use new 673 _S_compare function. 674 (path::_S_compare): New function to call path::compare in a 675 context where path::iterator is complete. 676 * include/experimental/bits/fs_path.h (operator<, operator==): 677 Define after path::iterator is complete. 678 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New 679 test. 680 * testsuite/experimental/filesystem/path/native/conv_c++23.cc: 681 New test. 682 6832021-06-11 Jonathan Wakely <jwakely@redhat.com> 684 685 Backported from master: 686 2021-06-08 Jonathan Wakely <jwakely@redhat.com> 687 688 * include/experimental/propagate_const (swap): Constrain. 689 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test. 690 6912021-06-11 Jonathan Wakely <jwakely@redhat.com> 692 693 Backported from master: 694 2021-06-09 Jonathan Wakely <jwakely@redhat.com> 695 696 PR libstdc++/100982 697 * include/std/optional (optional::operator=(const optional<U>&)): 698 Fix value category used in is_assignable check. 699 * testsuite/20_util/optional/assignment/100982.cc: New test. 700 7012021-06-11 Jonathan Wakely <jwakely@redhat.com> 702 703 Backported from master: 704 2021-06-07 Jonathan Wakely <jwakely@redhat.com> 705 706 PR libstdc++/98842 707 * include/std/optional (operator<=>(const optional<T>& const U&)): 708 Add missing constraint and add workaround for template 709 recursion. 710 * testsuite/20_util/optional/relops/three_way.cc: Check that 711 type without equality comparison cannot be compared when wrapped 712 in std::optional. 713 7142021-06-11 Jonathan Wakely <jwakely@redhat.com> 715 716 Backported from master: 717 2021-06-05 Jonathan Wakely <jwakely@redhat.com> 718 719 PR libstdc++/100824 720 * include/bits/ranges_base.h (_SSize): Return signed type. 721 * testsuite/std/ranges/access/ssize.cc: Check with __int128. 722 7232021-06-11 Jonathan Wakely <jwakely@redhat.com> 724 725 Backported from master: 726 2021-06-04 Jonathan Wakely <jwakely@redhat.com> 727 728 * include/bits/ranges_base.h (_SSize): Return the result of 729 ranges::size converted to the wider of make-signed-like-t<S> and 730 ptrdiff_t, rather than the ranges different type. 731 * testsuite/std/ranges/access/ssize.cc: Adjust expected result 732 for an iota_view that uses an integer class type for its 733 difference_type. 734 7352021-06-11 Jonathan Wakely <jwakely@redhat.com> 736 737 Backported from master: 738 2021-06-04 Jonathan Wakely <jwakely@redhat.com> 739 740 PR libstdc++/100824 741 * include/bits/ranges_base.h (__member_data): Use __decay_copy. 742 * testsuite/std/ranges/access/data.cc: Add testcase from PR. 743 7442021-06-11 Jonathan Wakely <jwakely@redhat.com> 745 746 Backported from master: 747 2021-06-04 Jonathan Wakely <jwakely@redhat.com> 748 749 PR libstdc++/100824 750 * include/bits/iterator_concepts.h (__detail::__decay_copy) 751 (__detail::__member_begin, __detail::__adl_begin): Move to 752 namespace ranges::__cust_access. 753 (__detail::__ranges_begin): Likewise, and rename to __begin. 754 Remove redundant static assertion. 755 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd): 756 Use lvalue in noexcept specifier. 757 (__as_const): Add non-deduced parameter for value category. 758 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of 759 __as_const. 760 (__member_size, __adl_size, __member_empty, __size0_empty): 761 (__eq_iter_empty, __adl_data): Use lvalue objects in 762 requirements. 763 (__sentinel_size): Likewise. Add check for conversion to 764 unsigned-like. 765 (__member_data): Allow non-lvalue types to satisfy the concept, 766 but use lvalue object in requirements. 767 (_Size, _SSize): Remove forwarding to always use an lvalue. 768 (_Data): Likewise. Add static assertion for arrays. 769 * testsuite/std/ranges/access/cdata.cc: Adjust expected 770 behaviour for rvalues. Add negative tests for ill-formed 771 expressions. 772 * testsuite/std/ranges/access/data.cc: Likewise. 773 * testsuite/std/ranges/access/empty.cc: Adjust expected 774 behaviour for rvalues. 775 * testsuite/std/ranges/access/size.cc: Likewise. 776 7772021-06-11 Jonathan Wakely <jwakely@redhat.com> 778 779 Backported from master: 780 2021-06-04 Jonathan Wakely <jwakely@redhat.com> 781 782 * doc/xml/manual/status_cxx2020.xml: 783 * doc/html/*: Regenerate. 784 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup): 785 Define. 786 * include/std/version (__cpp_lib_generic_unordered_lookup): 787 Define. 788 * testsuite/23_containers/unordered_map/operations/1.cc: Check 789 feature test macro. 790 * testsuite/23_containers/unordered_set/operations/1.cc: 791 Likewise. 792 7932021-06-10 Patrick Palka <ppalka@redhat.com> 794 795 Backported from master: 796 2021-06-03 Patrick Palka <ppalka@redhat.com> 797 798 PR libstdc++/100577 799 * include/std/ranges (_RangeAdaptorClosure): Document 800 _S_has_simple_call_op mechanism. 801 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism. 802 (__closure_has_simple_call_op): New concept. 803 (__adaptor_has_simple_extra_args): Likewise. 804 (_Partial<_Adaptor, _Args...>): New partial specialization. 805 (_Partial<_Adaptor, _Arg>): Likewise. 806 (_Pipe<_Lhs, _Rhs>): Likewise. 807 (views::_All::_S_has_simple_call_op): Define to true. 808 (views::_Filter::_S_has_simple_extra_args): Likewise. 809 (views::_Transform::_S_has_simple_extra_args): Likewise. 810 (views::_Take::_S_has_simple_extra_args): Likewise. 811 (views::_TakeWhile::_S_has_simple_extra_args): Likewise. 812 (views::_Drop::_S_has_simple_extra_args): Likewise. 813 (views::_DropWhile::_S_has_simple_extra_args): Likewise. 814 (views::_Join::_S_has_simple_call_op): Likewise. 815 (views::_Split): Document why we don't define 816 _S_has_simple_extra_args to true for this adaptor. 817 (views::_Common::_S_has_simple_call_op): Define to true. 818 (views::_Reverse::_S_has_simple_call_op): Likewise. 819 (views::_Elements::_S_has_simple_call_op): Likewise. 820 * testsuite/std/ranges/adaptors/100577.cc: New test. 821 8222021-06-10 Patrick Palka <ppalka@redhat.com> 823 824 Backported from master: 825 2021-06-03 Patrick Palka <ppalka@redhat.com> 826 827 PR libstdc++/100770 828 * include/bits/ranges_algo.h (__detail::__can_reread_output): 829 Factor out this concept from ... 830 (__unique_copy_fn::operator()): ... here. Use the concept 831 throughout. 832 * testsuite/std/ranges/range.cc: Remove now ill-formed use 833 of range_value_t on an output_range. 834 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper): 835 Define value_type, pointer and reference member types to void. 836 8372021-06-10 Patrick Palka <ppalka@redhat.com> 838 839 Backported from master: 840 2021-05-21 Patrick Palka <ppalka@redhat.com> 841 842 PR libstdc++/100690 843 * include/std/ranges (iota_view::_Sentinel::_M_distance_from): 844 Split out this member function from ... 845 (iota_view::_Sentinel::operator-): ... here, for sake of access 846 control. 847 * testsuite/std/ranges/iota/iota_view.cc (test05): New test. 848 8492021-06-10 Patrick Palka <ppalka@redhat.com> 850 851 Backported from master: 852 2021-05-06 Patrick Palka <ppalka@redhat.com> 853 854 * include/std/ranges (filter_view::_Iterator::base): Make the 855 const& overload unconstrained and return a const reference as 856 per LWG 3533. Make unconditionally noexcept. 857 (transform_view::_Iterator::base): Likewise. 858 (elements_view::_Iterator::base): Likewise. 859 8602021-06-10 Patrick Palka <ppalka@redhat.com> 861 862 Backported from master: 863 2021-05-06 Patrick Palka <ppalka@redhat.com> 864 865 * include/bits/stl_iterator.h (move_iterator::base): Make the 866 const& overload unconstrained and return a const reference as 867 per LWG 3391. Make unconditionally noexcept. 868 (counted_iterator::base): Likewise. 869 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test. 870 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust 871 has_member_base concept to decay-copy the result of base(). 872 8732021-06-10 Patrick Palka <ppalka@redhat.com> 874 875 Backported from master: 876 2021-05-18 Patrick Palka <ppalka@redhat.com> 877 878 PR libstdc++/100631 879 * include/std/ranges (elements_view::_Sentinel::operator-): Use 880 _M_distance_from in the other operator- overload too. 881 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test. 882 8832021-06-10 Patrick Palka <ppalka@redhat.com> 884 885 Backported from master: 886 2021-05-18 Patrick Palka <ppalka@redhat.com> 887 888 PR libstdc++/100631 889 * include/std/ranges (elements_view::_Iterator): Also befriend 890 _Sentinel<!_Const>. 891 (elements_view::_Sentinel::_M_equal): Templatize. 892 (elements_view::_Sentinel::_M_distance_from): Split out from ... 893 (elements_view::_Sentinel::operator-): ... here. Depend on 894 _Base2 instead of _Base in the return type. 895 * testsuite/std/ranges/adaptors/elements.cc (test06, test07): 896 New tests. 897 8982021-06-10 Patrick Palka <ppalka@redhat.com> 899 900 Backported from master: 901 2021-05-20 Patrick Palka <ppalka@redhat.com> 902 903 PR libstdc++/100639 904 * include/bits/stl_iterator.h (reverse_iterator::difference_type): 905 In C++20 mode, define in terms of iter_difference_t as per P0896R4. 906 (reverse_iterator::reference): Likewise, but with iter_reference_t. 907 (reverse_iterator::value_type): Likewise, but with iter_value_t. 908 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test. 909 * testsuite/24_iterators/reverse_iterator/100639.cc: New test. 910 9112021-06-09 Thomas Rodgers <rodgert@appliantology.com> 912 913 Backported from master: 914 2021-06-09 Thomas Rodgers <rodgert@appliantology.com> 915 916 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard 917 test logic with constexpr check for is_always_lock_free. 918 9192021-06-08 Thomas Rodgers <rodgert@appliantology.com> 920 921 Backported from master: 922 2021-06-08 Thomas Rodgers <rodgert@appliantology.com> 923 924 PR libstdc++/100889 925 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait): 926 Change parameter type from _Tp to _Tp*. 927 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend 928 coverage of types tested. 929 9302021-06-08 Thomas Rodgers <rodgert@appliantology.com> 931 932 Backported from master: 933 2021-06-08 Thomas Rodgers <rodgert@appliantology.com> 934 935 * include/std/barrier (__tree_barrier::_M_arrive): Remove 936 unnecessary hasher instantiation. 937 9382021-06-07 Avi Kivity <avi@scylladb.com> 939 940 Backported from master: 941 2021-06-07 Avi Kivity <avi@scylladb.com> 942 943 PR libstdc++/100900 944 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat): 945 Add missing typename. 946 9472021-06-02 Jonathan Wakely <jwakely@redhat.com> 948 949 Backported from master: 950 2021-05-20 Jonathan Wakely <jwakely@redhat.com> 951 952 PR libstdc++/100676 953 * include/bits/c++config (__glibcxx_assert_1): Rename to ... 954 (__glibcxx_constexpr_assert): ... this. 955 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert. 956 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert 957 or __glibcxx_assert_impl. 958 (__glibcxx_assert_2): Remove 959 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use 960 __glibcxx_constexpr_assert instead of __glibcxx_assert_1. 961 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc: 962 Adjust expected error. 963 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc: 964 Likewise. 965 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc: 966 Likewise. 967 Likewise. 968 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc: 969 Likewise. 970 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc: 971 Likewise. 972 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc: 973 Likewise. 974 * testsuite/23_containers/span/back_neg.cc: Likewise. 975 * testsuite/23_containers/span/front_neg.cc: Likewise. 976 * testsuite/23_containers/span/index_op_neg.cc: Likewise. 977 9782021-06-02 Jonathan Wakely <jwakely@redhat.com> 979 980 Backported from master: 981 2021-06-01 Jonathan Wakely <jwakely@redhat.com> 982 983 PR libstdc++/100833 984 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)): 985 Fix return value for no-op case. 986 * testsuite/24_iterators/range_operations/advance.cc: Test 987 return values of three-argument overload. 988 9892021-06-02 Jonathan Wakely <jwakely@redhat.com> 990 991 Backported from master: 992 2021-05-26 Jonathan Wakely <jwakely@redhat.com> 993 994 PR libstdc++/100768 995 * include/bits/ranges_base.h (advance, distance, next, prev): 996 Replace function templates with function objects. 997 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc: 998 Adjust for changes to function objects. 999 * testsuite/std/ranges/adaptors/elements.cc: Add using 1000 declarations for names from namespace ranges. 1001 * testsuite/std/ranges/adaptors/transform.cc: Likewise. 1002 * testsuite/24_iterators/range_operations/100768.cc: New test. 1003 10042021-06-02 Jonathan Wakely <jwakely@redhat.com> 1005 1006 Backported from master: 1007 2021-06-01 Jonathan Wakely <jwakely@redhat.com> 1008 1009 PR libstdc++/99453 1010 * python/Makefile.am: Use archive name for printer hook if no 1011 dynamic library name is available. 1012 * python/Makefile.in: Regenerate. 1013 10142021-05-28 David Edelsohn <dje.gcc@gmail.com> 1015 1016 Backported from master: 1017 2021-04-24 David Edelsohn <dje.gcc@gmail.com> 1018 1019 * testsuite/lib/dg-options.exp (atomic_link_flags): New. 1020 (add_options_for_libatomic): Use atomic_link_flags. 1021 10222021-05-28 Patrick Palka <ppalka@redhat.com> 1023 1024 Backported from master: 1025 2021-04-30 Patrick Palka <ppalka@redhat.com> 1026 1027 * include/std/ranges (__detail::__non_propating_cache): Define 1028 as per P2328. 1029 (join_view): Remove constraints on the value and reference types 1030 of the wrapped iterator type as per P2328. 1031 (join_view::_Iterator::_M_satisfy): Adjust as per P2328. 1032 (join_view::_Iterator::operator++): Likewise. 1033 (join_view::_M_inner): Use __non_propating_cache as per P2328. 1034 Remove now-redundant use of __maybe_present_t. 1035 * testsuite/std/ranges/adaptors/join.cc: Include <array>. 1036 (test10): New test. 1037 10382021-05-28 Patrick Palka <ppalka@redhat.com> 1039 1040 Backported from master: 1041 2021-05-24 Patrick Palka <ppalka@redhat.com> 1042 1043 PR libstdc++/100479 1044 * include/std/ranges (__detail::__non_propagating_cache): Move 1045 definition up to before that of _CachedPosition. Make base 1046 class _Optional_base protected instead of private. Add const 1047 overload for operator*. 1048 (__detail::_CachedPosition): Rewrite the partial specialization 1049 for forward ranges as a derived class of __non_propagating_cache. 1050 Remove the size constraint on the partial specialization for 1051 random access ranges. Add copy/move/copy-assignment/move-assignment 1052 members to the offset partial specialization for random 1053 access ranges that propagate the cached value but additionally 1054 invalidate it in the source object on move. 1055 * testsuite/std/ranges/adaptors/100479.cc: New test. 1056 10572021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com> 1058 1059 PR libstdc++/100361 1060 * include/std/charconv (to_chars): Hide the overloads for 1061 floating-point types for 16 bit targets. 1062 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets. 1063 * testsuite/20_util/to_chars/double.cc: Run this test only on 1064 size32plus targets. 1065 * testsuite/20_util/to_chars/float.cc: Likewise. 1066 * testsuite/20_util/to_chars/long_double.cc: Likewise. 1067 10682021-05-17 Jonathan Wakely <jwakely@redhat.com> 1069 1070 Backported from master: 1071 2021-05-17 Jonathan Wakely <jwakely@redhat.com> 1072 1073 PR libstdc++/100630 1074 * include/experimental/bits/fs_path.h (__is_constructible_from): 1075 Test construction from a const lvalue, not an rvalue. 1076 * testsuite/27_io/filesystem/path/construct/100630.cc: New test. 1077 * testsuite/experimental/filesystem/path/construct/100630.cc: 1078 New test. 1079 10802021-05-17 Thomas Rodgers <rodgert@twrodgers.com> 1081 1082 Backported from master: 1083 2021-05-17 Thomas Rodgers <rodgert@twrodgers.com> 1084 1085 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop 1086 until value change observed. 1087 (__waiter_base::_M_laundered): New member. 1088 (__waiter_base::_M_notify): Check _M_laundered to determine 1089 whether to wake one or all. 1090 (__detail::__atomic_compare): Return true if call to 1091 __builtin_memcmp() == 0. 1092 (__waiter_base::_S_do_spin_v): Adjust predicate. 1093 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New 1094 test. 1095 10962021-05-12 Patrick Palka <ppalka@redhat.com> 1097 1098 Backported from master: 1099 2021-04-30 Patrick Palka <ppalka@redhat.com> 1100 1101 * include/bits/ranges_util.h (subrange::subrange): Avoid 1102 list-initialization in delegating constructor. 1103 * include/std/ranges (single_view): Replace implicit guide 1104 with explicit deduction guide that decays its argument. 1105 (_Single::operator()): Avoid CTAD when constructing the 1106 single_view object. 1107 (_Iota::operator()): Avoid list-initialization. 1108 (__detail::__can_filter_view, _Filter::operator()): Likewise. 1109 (__detail::__can_transform_view, _Transform::operator()): Likewise. 1110 (take_view::begin): Likewise. 1111 (__detail::__can_take_view, _Take::operator()): Likewise. 1112 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise. 1113 (__detail::__can_drop_view, _Drop::operator()): Likewise. 1114 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise. 1115 (split_view::split_view): Use views::single when initializing 1116 _M_pattern. 1117 (__detail::__can_split_view, _Split::operator()): Avoid 1118 list-initialization. 1119 (_Counted::operator()): Likewise. 1120 * testsuite/std/ranges/p2367.cc: New test. 1121 11222021-05-11 Jonathan Wakely <jwakely@redhat.com> 1123 1124 Backported from master: 1125 2021-05-11 Jonathan Wakely <jwakely@redhat.com> 1126 1127 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98 1128 alternative for macro. 1129 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective 1130 target keyword. 1131 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11 1132 syntax. 1133 11342021-05-11 Jonathan Wakely <jwakely@redhat.com> 1135 1136 Backported from master: 1137 2021-05-11 Jonathan Wakely <jwakely@redhat.com> 1138 1139 * include/bits/allocator.h (allocator<void>) [C++20]: Add 1140 missing noexcept to constructor. Restore missing POCMA and 1141 is_always_equal_traits. 1142 [C++17]: Make construct and destroy members private and 1143 declare allocator_traits as a friend. 1144 * include/bits/memoryfwd.h (allocator_traits): Declare. 1145 * include/ext/malloc_allocator.h (malloc_allocator::allocate): 1146 Add nodiscard attribute. Add static assertion for LWG 3307. 1147 * include/ext/new_allocator.h (new_allocator::allocate): Add 1148 static assertion for LWG 3307. 1149 * testsuite/20_util/allocator/void.cc: Check that converting 1150 constructor is noexcept. Check for propagation traits and 1151 size_type and difference_type. Check that pointer and 1152 const_pointer are gone in C++20. 1153 11542021-05-11 Jonathan Wakely <jwakely@redhat.com> 1155 1156 Backported from master: 1157 2021-05-10 Jonathan Wakely <jwakely@redhat.com> 1158 1159 * include/std/stop_token: Remove TODO comment. 1160 11612021-05-11 Jonathan Wakely <jwakely@redhat.com> 1162 1163 Backported from master: 1164 2021-05-10 Jonathan Wakely <jwakely@redhat.com> 1165 1166 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)): 1167 Initialize a non-reference deleter from an rvalue, as per LWG 1168 3548. 1169 (__shared_ptr::_UniqCompatible): Add missing constraint. 1170 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test. 1171 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check 1172 constraints. 1173 11742021-05-11 Jonathan Wakely <jwakely@redhat.com> 1175 1176 Backported from master: 1177 2021-05-10 Jonathan Wakely <jwakely@redhat.com> 1178 1179 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove 1180 -std=gnu++17 from dg-options directive. 1181 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: 1182 Likewise. 1183 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: 1184 Likewise. 1185 * testsuite/17_intro/headers/c++2017/operator_names.cc: 1186 Likewise. 1187 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise. 1188 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise. 1189 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc: 1190 Likewise. 1191 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise. 1192 * testsuite/18_support/byte/81076.cc: Likewise. 1193 * testsuite/18_support/byte/global_neg.cc: Likewise. 1194 * testsuite/18_support/byte/ops.cc: Likewise. 1195 * testsuite/18_support/byte/requirements.cc: Likewise. 1196 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise. 1197 * testsuite/18_support/launder/1.cc: Likewise. 1198 * testsuite/18_support/launder/nodiscard.cc: Likewise. 1199 * testsuite/18_support/launder/requirements.cc: Likewise. 1200 * testsuite/18_support/launder/requirements_neg.cc: Likewise. 1201 * testsuite/18_support/new_aligned.cc: Likewise. 1202 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc: 1203 Likewise. 1204 * testsuite/19_diagnostics/error_code/is_error_code_v.cc: 1205 Likewise. 1206 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise. 1207 * testsuite/20_util/addressof/requirements/constexpr.cc: 1208 Likewise. 1209 * testsuite/20_util/as_const/1.cc: Likewise. 1210 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise. 1211 * testsuite/20_util/bind/83427.cc: Likewise. 1212 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise. 1213 * testsuite/20_util/bool_constant/requirements.cc: Likewise. 1214 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: 1215 Likewise. 1216 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc: 1217 Likewise. 1218 * testsuite/20_util/duration_cast/rounding.cc: Likewise. 1219 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc: 1220 Likewise. 1221 * testsuite/20_util/from_chars/1_neg.cc: Likewise. 1222 * testsuite/20_util/from_chars/requirements.cc: Likewise. 1223 * testsuite/20_util/function/91456.cc: Likewise. 1224 * testsuite/20_util/function/cons/deduction.cc: Likewise. 1225 * testsuite/20_util/function_objects/83607.cc: Likewise. 1226 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise. 1227 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise. 1228 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise. 1229 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise. 1230 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc: 1231 Likewise. 1232 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc: 1233 Likewise. 1234 * testsuite/20_util/has_unique_object_representations/value.cc: 1235 Likewise. 1236 * testsuite/20_util/hash/nullptr.cc: Likewise. 1237 * testsuite/20_util/in_place/requirements.cc: Likewise. 1238 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise. 1239 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc: 1240 Likewise. 1241 * testsuite/20_util/is_aggregate/requirements/typedefs.cc: 1242 Likewise. 1243 * testsuite/20_util/is_aggregate/value.cc: Likewise. 1244 * testsuite/20_util/is_invocable/83395.cc: Likewise. 1245 * testsuite/20_util/is_invocable/91456.cc: Likewise. 1246 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc: 1247 Likewise. 1248 * testsuite/20_util/is_invocable/requirements/typedefs.cc: 1249 Likewise. 1250 * testsuite/20_util/is_invocable/value.cc: Likewise. 1251 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise. 1252 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise. 1253 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise. 1254 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc: 1255 Likewise. 1256 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise. 1257 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise. 1258 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc: 1259 Likewise. 1260 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc: 1261 Likewise. 1262 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise. 1263 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc: 1264 Likewise. 1265 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc: 1266 Likewise. 1267 * testsuite/20_util/is_nothrow_swappable_with/value.cc: 1268 Likewise. 1269 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc: 1270 Likewise. 1271 * testsuite/20_util/is_swappable/requirements/typedefs.cc: 1272 Likewise. 1273 * testsuite/20_util/is_swappable/value.cc: Likewise. 1274 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc: 1275 Likewise. 1276 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: 1277 Likewise. 1278 * testsuite/20_util/is_swappable_with/value.cc: Likewise. 1279 * testsuite/20_util/logical_traits/83134.cc: Likewise. 1280 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc: 1281 Likewise. 1282 * testsuite/20_util/logical_traits/requirements/typedefs.cc: 1283 Likewise. 1284 * testsuite/20_util/logical_traits/value.cc: Likewise. 1285 * testsuite/20_util/pair/cons/deduction.cc: Likewise. 1286 * testsuite/20_util/pair/swap_cxx17.cc: Likewise. 1287 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: 1288 Likewise. 1289 * testsuite/20_util/reference_wrapper/83427.cc: Likewise. 1290 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise. 1291 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise. 1292 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise. 1293 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: 1294 Likewise. 1295 * testsuite/20_util/time_point/arithmetic/constexpr.cc: 1296 Likewise. 1297 * testsuite/20_util/time_point_cast/rounding.cc: Likewise. 1298 * testsuite/20_util/to_chars/3.cc: Likewise. 1299 * testsuite/20_util/to_chars/chars_format.cc: Likewise. 1300 * testsuite/20_util/to_chars/lwg3266.cc: Likewise. 1301 * testsuite/20_util/to_chars/requirements.cc: Likewise. 1302 * testsuite/20_util/tuple/78939.cc: Likewise. 1303 * testsuite/20_util/tuple/apply/1.cc: Likewise. 1304 * testsuite/20_util/tuple/apply/2.cc: Likewise. 1305 * testsuite/20_util/tuple/cons/deduction.cc: Likewise. 1306 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise. 1307 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise. 1308 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise. 1309 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise. 1310 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise. 1311 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc: 1312 Likewise. 1313 * testsuite/20_util/variable_templates_for_traits.cc: Likewise. 1314 * testsuite/20_util/void_t/1.cc: Likewise. 1315 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise. 1316 * testsuite/24_iterators/container_access.cc: Likewise. 1317 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: 1318 Likewise. 1319 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: 1320 Likewise. 1321 * testsuite/24_iterators/range_access/range_access_cpp17.cc: 1322 Likewise. 1323 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc: 1324 Likewise. 1325 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise. 1326 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: 1327 Likewise. 1328 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise. 1329 * testsuite/26_numerics/headers/cmath/special_functions_global.cc: 1330 Likewise. 1331 * testsuite/26_numerics/lcm/1.cc: Likewise. 1332 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise. 1333 * testsuite/26_numerics/valarray/deduction.cc: Likewise. 1334 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc: 1335 Likewise. 1336 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc: 1337 Likewise. 1338 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc: 1339 Likewise. 1340 * testsuite/27_io/types/4.cc: Likewise. 1341 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise. 1342 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise. 1343 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise. 1344 13452021-05-11 Jonathan Wakely <jwakely@redhat.com> 1346 1347 Backported from master: 1348 2021-05-10 Jonathan Wakely <jwakely@redhat.com> 1349 1350 * testsuite/20_util/function_objects/searchers.cc: Remove 1351 -std=gnu++17 from dg-options directive. 1352 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc: 1353 Likewise. 1354 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc: 1355 Likewise. 1356 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc: 1357 Likewise. 1358 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc: 1359 Likewise. 1360 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc: 1361 Likewise. 1362 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc: 1363 Likewise. 1364 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc: 1365 Likewise. 1366 * testsuite/25_algorithms/clamp/1.cc: Likewise. 1367 * testsuite/25_algorithms/clamp/2.cc: Likewise. 1368 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise. 1369 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc: 1370 Likewise. 1371 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc: 1372 Likewise. 1373 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise. 1374 * testsuite/25_algorithms/for_each/for_each_n_debug.cc: 1375 Likewise. 1376 * testsuite/25_algorithms/sample/1.cc: Likewise. 1377 * testsuite/25_algorithms/sample/2.cc: Likewise. 1378 * testsuite/25_algorithms/sample/3.cc: Likewise. 1379 * testsuite/25_algorithms/sample/81221.cc: Likewise. 1380 * testsuite/25_algorithms/search/searcher.cc: Likewise. 1381 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise. 1382 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise. 1383 * testsuite/26_numerics/reduce/1.cc: Likewise. 1384 * testsuite/26_numerics/reduce/2.cc: Likewise. 1385 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise. 1386 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise. 1387 * testsuite/26_numerics/transform_reduce/1.cc: Likewise. 1388 13892021-05-11 Jonathan Wakely <jwakely@redhat.com> 1390 1391 Backported from master: 1392 2021-05-10 Jonathan Wakely <jwakely@redhat.com> 1393 1394 * testsuite/23_containers/array/cons/deduction.cc: Remove 1395 -std=gnu++17 from dg-options directive. 1396 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise. 1397 * testsuite/23_containers/array/element_access/constexpr_c++17.cc: 1398 Likewise. 1399 * testsuite/23_containers/array/requirements/constexpr_iter.cc: 1400 Likewise. 1401 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc: 1402 Likewise. 1403 * testsuite/23_containers/deque/cons/deduction.cc: Likewise. 1404 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc: 1405 Likewise. 1406 * testsuite/23_containers/forward_list/cons/deduction.cc: 1407 Likewise. 1408 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc: 1409 Likewise. 1410 * testsuite/23_containers/list/cons/deduction.cc: Likewise. 1411 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc: 1412 Likewise. 1413 * testsuite/23_containers/map/cons/deduction.cc: Likewise. 1414 * testsuite/23_containers/map/modifiers/extract.cc: Likewise. 1415 * testsuite/23_containers/map/modifiers/insert/83226.cc: 1416 Likewise. 1417 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: 1418 Likewise. 1419 * testsuite/23_containers/map/modifiers/merge.cc: Likewise. 1420 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: 1421 Likewise. 1422 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise. 1423 * testsuite/23_containers/multimap/modifiers/extract.cc: 1424 Likewise. 1425 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise. 1426 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise. 1427 * testsuite/23_containers/multiset/modifiers/extract.cc: 1428 Likewise. 1429 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise. 1430 * testsuite/23_containers/priority_queue/deduction.cc: Likewise. 1431 * testsuite/23_containers/queue/deduction.cc: Likewise. 1432 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc: 1433 Likewise. 1434 * testsuite/23_containers/set/cons/deduction.cc: Likewise. 1435 * testsuite/23_containers/set/modifiers/extract.cc: Likewise. 1436 * testsuite/23_containers/set/modifiers/merge.cc: Likewise. 1437 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise. 1438 * testsuite/23_containers/stack/deduction.cc: Likewise. 1439 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc: 1440 Likewise. 1441 * testsuite/23_containers/unordered_map/cons/deduction.cc: 1442 Likewise. 1443 * testsuite/23_containers/unordered_map/modifiers/extract.cc: 1444 Likewise. 1445 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc: 1446 Likewise. 1447 * testsuite/23_containers/unordered_map/modifiers/merge.cc: 1448 Likewise. 1449 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc: 1450 Likewise. 1451 * testsuite/23_containers/unordered_multimap/cons/deduction.cc: 1452 Likewise. 1453 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc: 1454 Likewise. 1455 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: 1456 Likewise. 1457 * testsuite/23_containers/unordered_multiset/cons/deduction.cc: 1458 Likewise. 1459 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc: 1460 Likewise. 1461 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: 1462 Likewise. 1463 * testsuite/23_containers/unordered_set/cons/deduction.cc: 1464 Likewise. 1465 * testsuite/23_containers/unordered_set/modifiers/extract.cc: 1466 Likewise. 1467 * testsuite/23_containers/unordered_set/modifiers/merge.cc: 1468 Likewise. 1469 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc: 1470 Likewise. 1471 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise. 1472 * testsuite/23_containers/vector/cons/deduction.cc: Likewise. 1473 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc: 1474 Likewise. 1475 14762021-05-11 Jonathan Wakely <jwakely@redhat.com> 1477 1478 Backported from master: 1479 2021-05-10 Jonathan Wakely <jwakely@redhat.com> 1480 1481 * testsuite/21_strings/basic_string/79162.cc: Remove 1482 -std=gnu++17 from dg-options directive. 1483 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise. 1484 * testsuite/21_strings/basic_string/cons/char/79162.cc: 1485 Likewise. 1486 * testsuite/21_strings/basic_string/cons/char/86138.cc: 1487 Likewise. 1488 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise. 1489 * testsuite/21_strings/basic_string/cons/char/deduction.cc: 1490 Likewise. 1491 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc: 1492 Likewise. 1493 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise. 1494 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: 1495 Likewise. 1496 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: 1497 Likewise. 1498 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise. 1499 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: 1500 Likewise. 1501 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc: 1502 Likewise. 1503 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise. 1504 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise. 1505 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise. 1506 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: 1507 Likewise. 1508 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc: 1509 Likewise. 1510 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc: 1511 Likewise. 1512 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc: 1513 Likewise. 1514 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc: 1515 Likewise. 1516 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc: 1517 Likewise. 1518 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc: 1519 Likewise. 1520 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc: 1521 Likewise. 1522 * testsuite/21_strings/basic_string/operations/compare/char/2.cc: 1523 Likewise. 1524 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc: 1525 Likewise. 1526 * testsuite/21_strings/basic_string/operations/data/char/2.cc: 1527 Likewise. 1528 * testsuite/21_strings/basic_string/operations/data/char/86169.cc: 1529 Likewise. 1530 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: 1531 Likewise. 1532 * testsuite/21_strings/basic_string/operations/find/char/5.cc: 1533 Likewise. 1534 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc: 1535 Likewise. 1536 * testsuite/21_strings/basic_string/operators/char/5.cc: 1537 Likewise. 1538 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: 1539 Likewise. 1540 * testsuite/21_strings/basic_string_view/capacity/1.cc: 1541 Likewise. 1542 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc: 1543 Likewise. 1544 * testsuite/21_strings/basic_string_view/cons/char/1.cc: 1545 Likewise. 1546 * testsuite/21_strings/basic_string_view/cons/char/2.cc: 1547 Likewise. 1548 * testsuite/21_strings/basic_string_view/cons/char/3.cc: 1549 Likewise. 1550 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: 1551 Likewise. 1552 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: 1553 Likewise. 1554 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: 1555 Likewise. 1556 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: 1557 Likewise. 1558 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc: 1559 Likewise. 1560 * testsuite/21_strings/basic_string_view/element_access/char/1.cc: 1561 Likewise. 1562 * testsuite/21_strings/basic_string_view/element_access/char/2.cc: 1563 Likewise. 1564 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc: 1565 Likewise. 1566 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc: 1567 Likewise. 1568 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc: 1569 Likewise. 1570 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc: 1571 Likewise. 1572 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc: 1573 Likewise. 1574 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc: 1575 Likewise. 1576 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc: 1577 Likewise. 1578 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc: 1579 Likewise. 1580 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc: 1581 Likewise. 1582 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc: 1583 Likewise. 1584 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc: 1585 Likewise. 1586 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc: 1587 Likewise. 1588 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc: 1589 Likewise. 1590 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc: 1591 Likewise. 1592 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc: 1593 Likewise. 1594 * testsuite/21_strings/basic_string_view/include.cc: Likewise. 1595 * testsuite/21_strings/basic_string_view/inserters/94051.cc: 1596 Likewise. 1597 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: 1598 Likewise. 1599 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: 1600 Likewise. 1601 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: 1602 Likewise. 1603 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc: 1604 Likewise. 1605 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc: 1606 Likewise. 1607 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc: 1608 Likewise. 1609 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc: 1610 Likewise. 1611 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc: 1612 Likewise. 1613 * testsuite/21_strings/basic_string_view/literals/types.cc: 1614 Likewise. 1615 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc: 1616 Likewise. 1617 * testsuite/21_strings/basic_string_view/literals/values.cc: 1618 Likewise. 1619 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc: 1620 Likewise. 1621 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc: 1622 Likewise. 1623 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc: 1624 Likewise. 1625 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc: 1626 Likewise. 1627 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc: 1628 Likewise. 1629 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc: 1630 Likewise. 1631 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc: 1632 Likewise. 1633 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc: 1634 Likewise. 1635 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc: 1636 Likewise. 1637 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc: 1638 Likewise. 1639 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc: 1640 Likewise. 1641 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc: 1642 Likewise. 1643 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc: 1644 Likewise. 1645 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc: 1646 Likewise. 1647 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc: 1648 Likewise. 1649 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc: 1650 Likewise. 1651 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc: 1652 Likewise. 1653 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc: 1654 Likewise. 1655 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc: 1656 Likewise. 1657 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc: 1658 Likewise. 1659 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc: 1660 Likewise. 1661 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc: 1662 Likewise. 1663 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc: 1664 Likewise. 1665 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc: 1666 Likewise. 1667 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc: 1668 Likewise. 1669 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc: 1670 Likewise. 1671 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc: 1672 Likewise. 1673 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc: 1674 Likewise. 1675 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc: 1676 Likewise. 1677 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc: 1678 Likewise. 1679 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc: 1680 Likewise. 1681 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc: 1682 Likewise. 1683 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc: 1684 Likewise. 1685 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc: 1686 Likewise. 1687 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc: 1688 Likewise. 1689 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc: 1690 Likewise. 1691 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc: 1692 Likewise. 1693 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc: 1694 Likewise. 1695 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc: 1696 Likewise. 1697 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc: 1698 Likewise. 1699 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc: 1700 Likewise. 1701 * testsuite/21_strings/basic_string_view/operators/char/2.cc: 1702 Likewise. 1703 * testsuite/21_strings/basic_string_view/operators/char/89446.cc: 1704 Likewise. 1705 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc: 1706 Likewise. 1707 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc: 1708 Likewise. 1709 * testsuite/21_strings/basic_string_view/range_access/char/1.cc: 1710 Likewise. 1711 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc: 1712 Likewise. 1713 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc: 1714 Likewise. 1715 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc: 1716 Likewise. 1717 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc: 1718 Likewise. 1719 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc: 1720 Likewise. 1721 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc: 1722 Likewise. 1723 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc: 1724 Likewise. 1725 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc: 1726 Likewise. 1727 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc: 1728 Likewise. 1729 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise. 1730 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise. 1731 * testsuite/21_strings/char_traits/requirements/char/99181.cc: 1732 Likewise. 1733 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc: 1734 17352021-05-11 Jonathan Wakely <jwakely@redhat.com> 1736 1737 Backported from master: 1738 2021-05-10 Jonathan Wakely <jwakely@redhat.com> 1739 1740 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17 1741 from dg-options directive. 1742 * testsuite/20_util/memory_resource/2.cc: Likewise. 1743 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise. 1744 * testsuite/20_util/monotonic_buffer_resource/93208.cc: 1745 Likewise. 1746 * testsuite/20_util/monotonic_buffer_resource/allocate.cc: 1747 Likewise. 1748 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: 1749 Likewise. 1750 * testsuite/20_util/monotonic_buffer_resource/release.cc: 1751 Likewise. 1752 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc: 1753 Likewise. 1754 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise. 1755 * testsuite/20_util/polymorphic_allocator/construct_pair.cc: 1756 Likewise. 1757 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise. 1758 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise. 1759 * testsuite/20_util/synchronized_pool_resource/allocate.cc: 1760 Likewise. 1761 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc: 1762 Likewise. 1763 * testsuite/20_util/synchronized_pool_resource/cons.cc: 1764 Likewise. 1765 * testsuite/20_util/synchronized_pool_resource/cons_single.cc: 1766 Likewise. 1767 * testsuite/20_util/synchronized_pool_resource/is_equal.cc: 1768 Likewise. 1769 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc: 1770 Likewise. 1771 * testsuite/20_util/synchronized_pool_resource/options.cc: 1772 Likewise. 1773 * testsuite/20_util/synchronized_pool_resource/release.cc: 1774 Likewise. 1775 * testsuite/20_util/synchronized_pool_resource/release_single.cc: 1776 Likewise. 1777 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc: 1778 Likewise. 1779 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc: 1780 Likewise. 1781 * testsuite/20_util/unsynchronized_pool_resource/cons.cc: 1782 Likewise. 1783 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc: 1784 Likewise. 1785 * testsuite/20_util/unsynchronized_pool_resource/options.cc: 1786 Likewise. 1787 * testsuite/20_util/unsynchronized_pool_resource/release.cc: 1788 Likewise. 1789 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: 1790 Likewise. 1791 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise. 1792 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc: 1793 Likewise. 1794 * testsuite/23_containers/forward_list/pmr_typedefs.cc: 1795 Likewise. 1796 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc: 1797 Likewise. 1798 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise. 1799 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise. 1800 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise. 1801 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise. 1802 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise. 1803 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc: 1804 Likewise. 1805 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise. 1806 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc: 1807 Likewise. 1808 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise. 1809 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise. 1810 * testsuite/23_containers/unordered_map/pmr_typedefs.cc: 1811 Likewise. 1812 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc: 1813 Likewise. 1814 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc: 1815 Likewise. 1816 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc: 1817 Likewise. 1818 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc: 1819 Likewise. 1820 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc: 1821 Likewise. 1822 * testsuite/23_containers/unordered_set/pmr_typedefs.cc: 1823 Likewise. 1824 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc: 1825 Likewise. 1826 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise. 1827 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc: 1828 Likewise. 1829 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise. 1830 18312021-05-11 Jonathan Wakely <jwakely@redhat.com> 1832 1833 Backported from master: 1834 2021-05-10 Jonathan Wakely <jwakely@redhat.com> 1835 1836 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from 1837 dg-options. 1838 * testsuite/29_atomics/atomic/is_always_lock_free.cc: 1839 * testsuite/29_atomics/atomic/requirements/typedefs.cc: 1840 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: 1841 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc: 1842 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise. 1843 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise. 1844 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise. 1845 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc: 1846 Likewise. 1847 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: 1848 Likewise. 1849 * testsuite/30_threads/shared_lock/70766.cc: Likewise. 1850 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise. 1851 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: 1852 Likewise. 1853 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise. 1854 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc: 1855 Likewise. 1856 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise. 1857 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise. 1858 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise. 1859 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise. 1860 18612021-05-11 Jonathan Wakely <jwakely@redhat.com> 1862 1863 Backported from master: 1864 2021-05-10 Jonathan Wakely <jwakely@redhat.com> 1865 1866 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from 1867 dg-options directive. 1868 * testsuite/20_util/any/assign/2.cc: Likewise. 1869 * testsuite/20_util/any/assign/emplace.cc: Likewise. 1870 * testsuite/20_util/any/assign/exception.cc: Likewise. 1871 * testsuite/20_util/any/assign/self.cc: Likewise. 1872 * testsuite/20_util/any/cons/1.cc: Likewise. 1873 * testsuite/20_util/any/cons/2.cc: Likewise. 1874 * testsuite/20_util/any/cons/90415.cc: Likewise. 1875 * testsuite/20_util/any/cons/92156.cc: Likewise. 1876 * testsuite/20_util/any/cons/aligned.cc: Likewise. 1877 * testsuite/20_util/any/cons/explicit.cc: Likewise. 1878 * testsuite/20_util/any/cons/in_place.cc: Likewise. 1879 * testsuite/20_util/any/cons/nontrivial.cc: Likewise. 1880 * testsuite/20_util/any/make_any.cc: Likewise. 1881 * testsuite/20_util/any/misc/any_cast.cc: Likewise. 1882 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise. 1883 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise. 1884 * testsuite/20_util/any/misc/swap.cc: Likewise. 1885 * testsuite/20_util/any/modifiers/1.cc: Likewise. 1886 * testsuite/20_util/any/modifiers/83658.cc: Likewise. 1887 * testsuite/20_util/any/modifiers/92156.cc: Likewise. 1888 * testsuite/20_util/any/observers/type.cc: Likewise. 1889 * testsuite/20_util/any/requirements.cc: Likewise. 1890 * testsuite/20_util/any/typedefs.cc: Likewise. 1891 * testsuite/20_util/optional/77288.cc: Likewise. 1892 * testsuite/20_util/optional/84601.cc: Likewise. 1893 * testsuite/20_util/optional/assignment/1.cc: Likewise. 1894 * testsuite/20_util/optional/assignment/2.cc: Likewise. 1895 * testsuite/20_util/optional/assignment/3.cc: Likewise. 1896 * testsuite/20_util/optional/assignment/4.cc: Likewise. 1897 * testsuite/20_util/optional/assignment/5.cc: Likewise. 1898 * testsuite/20_util/optional/assignment/6.cc: Likewise. 1899 * testsuite/20_util/optional/assignment/7.cc: Likewise. 1900 * testsuite/20_util/optional/assignment/8.cc: Likewise. 1901 * testsuite/20_util/optional/assignment/9.cc: Likewise. 1902 * testsuite/20_util/optional/bad_access.cc: Likewise. 1903 * testsuite/20_util/optional/cons/77727.cc: Likewise. 1904 * testsuite/20_util/optional/cons/85642.cc: Likewise. 1905 * testsuite/20_util/optional/cons/copy.cc: Likewise. 1906 * testsuite/20_util/optional/cons/deduction.cc: Likewise. 1907 * testsuite/20_util/optional/cons/default.cc: Likewise. 1908 * testsuite/20_util/optional/cons/move.cc: Likewise. 1909 * testsuite/20_util/optional/cons/trivial.cc: Likewise. 1910 * testsuite/20_util/optional/cons/value.cc: Likewise. 1911 * testsuite/20_util/optional/cons/value_neg.cc: Likewise. 1912 * testsuite/20_util/optional/constexpr/cons/default.cc: 1913 Likewise. 1914 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise. 1915 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise. 1916 * testsuite/20_util/optional/constexpr/make_optional.cc: 1917 Likewise. 1918 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise. 1919 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise. 1920 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise. 1921 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise. 1922 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise. 1923 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise. 1924 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise. 1925 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise. 1926 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise. 1927 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise. 1928 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise. 1929 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise. 1930 * testsuite/20_util/optional/hash.cc: Likewise. 1931 * testsuite/20_util/optional/in_place.cc: Likewise. 1932 * testsuite/20_util/optional/make_optional.cc: Likewise. 1933 * testsuite/20_util/optional/nullopt.cc: Likewise. 1934 * testsuite/20_util/optional/observers/1.cc: Likewise. 1935 * testsuite/20_util/optional/observers/2.cc: Likewise. 1936 * testsuite/20_util/optional/observers/3.cc: Likewise. 1937 * testsuite/20_util/optional/observers/4.cc: Likewise. 1938 * testsuite/20_util/optional/observers/5.cc: Likewise. 1939 * testsuite/20_util/optional/observers/6.cc: Likewise. 1940 * testsuite/20_util/optional/relops/1.cc: Likewise. 1941 * testsuite/20_util/optional/relops/2.cc: Likewise. 1942 * testsuite/20_util/optional/relops/3.cc: Likewise. 1943 * testsuite/20_util/optional/relops/4.cc: Likewise. 1944 * testsuite/20_util/optional/relops/5.cc: Likewise. 1945 * testsuite/20_util/optional/relops/6.cc: Likewise. 1946 * testsuite/20_util/optional/relops/7.cc: Likewise. 1947 * testsuite/20_util/optional/requirements.cc: Likewise. 1948 * testsuite/20_util/optional/swap/1.cc: Likewise. 1949 * testsuite/20_util/optional/swap/2.cc: Likewise. 1950 * testsuite/20_util/optional/typedefs.cc: Likewise. 1951 * testsuite/20_util/variant/80165.cc: Likewise. 1952 * testsuite/20_util/variant/85183.cc: Likewise. 1953 * testsuite/20_util/variant/86874.cc: Likewise. 1954 * testsuite/20_util/variant/87431.cc: Likewise. 1955 * testsuite/20_util/variant/87619.cc: Likewise. 1956 * testsuite/20_util/variant/91807.cc: Likewise. 1957 * testsuite/20_util/variant/any.cc: Likewise. 1958 * testsuite/20_util/variant/compile.cc: Likewise. 1959 * testsuite/20_util/variant/deduction.cc: Likewise. 1960 * testsuite/20_util/variant/exception_safety.cc: Likewise. 1961 * testsuite/20_util/variant/hash.cc: Likewise. 1962 * testsuite/20_util/variant/index_type.cc: Likewise. 1963 * testsuite/20_util/variant/relops/89851.cc: Likewise. 1964 * testsuite/20_util/variant/relops/90008.cc: Likewise. 1965 * testsuite/20_util/variant/run.cc: Likewise. 1966 * testsuite/20_util/variant/visit.cc: Likewise. 1967 19682021-05-11 Jonathan Wakely <jwakely@redhat.com> 1969 1970 Backported from master: 1971 2021-05-10 Jonathan Wakely <jwakely@redhat.com> 1972 1973 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove 1974 -std=gnu++17 from dg-options directive. 1975 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise. 1976 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise. 1977 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise. 1978 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise. 1979 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise. 1980 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise. 1981 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise. 1982 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc: 1983 Likewise. 1984 * testsuite/27_io/filesystem/file_status/1.cc: Likewise. 1985 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise. 1986 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise. 1987 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise. 1988 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise. 1989 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: 1990 Likewise. 1991 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise. 1992 * testsuite/27_io/filesystem/iterators/recursion_pending.cc: 1993 Likewise. 1994 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc: 1995 Likewise. 1996 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise. 1997 * testsuite/27_io/filesystem/operations/all.cc: Likewise. 1998 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise. 1999 * testsuite/27_io/filesystem/operations/copy.cc: Likewise. 2000 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise. 2001 * testsuite/27_io/filesystem/operations/create_directories.cc: 2002 Likewise. 2003 * testsuite/27_io/filesystem/operations/create_directory.cc: 2004 Likewise. 2005 * testsuite/27_io/filesystem/operations/create_symlink.cc: 2006 Likewise. 2007 * testsuite/27_io/filesystem/operations/current_path.cc: 2008 Likewise. 2009 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise. 2010 * testsuite/27_io/filesystem/operations/exists.cc: Likewise. 2011 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise. 2012 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise. 2013 * testsuite/27_io/filesystem/operations/last_write_time.cc: 2014 Likewise. 2015 * testsuite/27_io/filesystem/operations/permissions.cc: 2016 Likewise. 2017 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise. 2018 * testsuite/27_io/filesystem/operations/read_symlink.cc: 2019 Likewise. 2020 * testsuite/27_io/filesystem/operations/relative.cc: Likewise. 2021 * testsuite/27_io/filesystem/operations/remove.cc: Likewise. 2022 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise. 2023 * testsuite/27_io/filesystem/operations/rename.cc: Likewise. 2024 * testsuite/27_io/filesystem/operations/resize_file.cc: 2025 Likewise. 2026 * testsuite/27_io/filesystem/operations/space.cc: Likewise. 2027 * testsuite/27_io/filesystem/operations/status.cc: Likewise. 2028 * testsuite/27_io/filesystem/operations/symlink_status.cc: 2029 Likewise. 2030 * testsuite/27_io/filesystem/operations/temp_directory_path.cc: 2031 Likewise. 2032 * testsuite/27_io/filesystem/operations/weakly_canonical.cc: 2033 Likewise. 2034 * testsuite/27_io/filesystem/path/append/path.cc: Likewise. 2035 * testsuite/27_io/filesystem/path/append/source.cc: Likewise. 2036 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise. 2037 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise. 2038 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise. 2039 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise. 2040 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise. 2041 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise. 2042 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise. 2043 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise. 2044 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise. 2045 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise. 2046 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise. 2047 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise. 2048 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise. 2049 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise. 2050 * testsuite/27_io/filesystem/path/construct/default.cc: 2051 Likewise. 2052 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise. 2053 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise. 2054 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise. 2055 * testsuite/27_io/filesystem/path/construct/string_view.cc: 2056 Likewise. 2057 * testsuite/27_io/filesystem/path/decompose/extension.cc: 2058 Likewise. 2059 * testsuite/27_io/filesystem/path/decompose/filename.cc: 2060 Likewise. 2061 * testsuite/27_io/filesystem/path/decompose/parent_path.cc: 2062 Likewise. 2063 * testsuite/27_io/filesystem/path/decompose/relative_path.cc: 2064 Likewise. 2065 * testsuite/27_io/filesystem/path/decompose/root_directory.cc: 2066 Likewise. 2067 * testsuite/27_io/filesystem/path/decompose/root_name.cc: 2068 Likewise. 2069 * testsuite/27_io/filesystem/path/decompose/root_path.cc: 2070 Likewise. 2071 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise. 2072 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc: 2073 Likewise. 2074 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise. 2075 * testsuite/27_io/filesystem/path/generation/normal.cc: 2076 Likewise. 2077 * testsuite/27_io/filesystem/path/generation/normal2.cc: 2078 Likewise. 2079 * testsuite/27_io/filesystem/path/generation/proximate.cc: 2080 Likewise. 2081 * testsuite/27_io/filesystem/path/generation/relative.cc: 2082 Likewise. 2083 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise. 2084 * testsuite/27_io/filesystem/path/generic/generic_string.cc: 2085 Likewise. 2086 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise. 2087 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise. 2088 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise. 2089 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise. 2090 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise. 2091 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise. 2092 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: 2093 Likewise. 2094 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: 2095 Likewise. 2096 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc: 2097 Likewise. 2098 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc: 2099 Likewise. 2100 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise. 2101 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise. 2102 * testsuite/27_io/filesystem/path/native/string-char8_t.cc: 2103 Likewise. 2104 * testsuite/27_io/filesystem/path/native/string.cc: Likewise. 2105 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise. 2106 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise. 2107 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc: 2108 Likewise. 2109 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise. 2110 * testsuite/27_io/filesystem/path/query/empty_neg.cc: 2111 * testsuite/27_io/filesystem/path/query/has_extension.cc: 2112 Likewise. 2113 * testsuite/27_io/filesystem/path/query/has_filename.cc: 2114 Likewise. 2115 * testsuite/27_io/filesystem/path/query/has_parent_path.cc: 2116 Likewise. 2117 * testsuite/27_io/filesystem/path/query/has_relative_path.cc: 2118 Likewise. 2119 * testsuite/27_io/filesystem/path/query/has_root_directory.cc: 2120 Likewise. 2121 * testsuite/27_io/filesystem/path/query/has_root_name.cc: 2122 Likewise. 2123 * testsuite/27_io/filesystem/path/query/has_root_path.cc: 2124 Likewise. 2125 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise. 2126 * testsuite/27_io/filesystem/path/query/is_absolute.cc: 2127 Likewise. 2128 * testsuite/27_io/filesystem/path/query/is_relative.cc: 2129 Likewise. 2130 * testsuite/experimental/filesystem/path/construct/string_view.cc: 2131 Likewise. 2132 21332021-05-11 Jonathan Wakely <jwakely@redhat.com> 2134 2135 Backported from master: 2136 2021-05-10 Jonathan Wakely <jwakely@redhat.com> 2137 2138 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc: 2139 Remove -std=gnu++17 from dg-options. 2140 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc: 2141 Likewise. 2142 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc: 2143 Likewise. 2144 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: 2145 Likewise. 2146 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise. 2147 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc: 2148 Likewise. 2149 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc: 2150 Likewise. 2151 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc: 2152 Likewise. 2153 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc: 2154 Likewise. 2155 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc: 2156 Likewise. 2157 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc: 2158 Likewise. 2159 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc: 2160 Likewise. 2161 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc: 2162 Likewise. 2163 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc: 2164 Likewise. 2165 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc: 2166 Likewise. 2167 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc: 2168 Likewise. 2169 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc: 2170 Likewise. 2171 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc: 2172 Likewise. 2173 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc: 2174 Likewise. 2175 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc: 2176 Likewise. 2177 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc: 2178 Likewise. 2179 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc: 2180 Likewise. 2181 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc: 2182 Likewise. 2183 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc: 2184 Likewise. 2185 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc: 2186 Likewise. 2187 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc: 2188 Likewise. 2189 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc: 2190 Likewise. 2191 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc: 2192 Likewise. 2193 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc: 2194 Likewise. 2195 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: 2196 Likewise. 2197 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc: 2198 Likewise. 2199 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc: 2200 Likewise. 2201 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc: 2202 Likewise. 2203 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc: 2204 Likewise. 2205 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc: 2206 Likewise. 2207 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc: 2208 Likewise. 2209 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc: 2210 Likewise. 2211 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc: 2212 Likewise. 2213 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: 2214 Likewise. 2215 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc: 2216 Likewise. 2217 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise. 2218 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc: 2219 Likewise. 2220 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc: 2221 Likewise. 2222 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc: 2223 Likewise. 2224 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc: 2225 Likewise. 2226 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc: 2227 Likewise. 2228 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise. 2229 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise. 2230 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise. 2231 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise. 2232 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise. 2233 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise. 2234 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise. 2235 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc: 2236 Likewise. 2237 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise. 2238 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise. 2239 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc: 2240 Likewise. 2241 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc: 2242 Likewise. 2243 22442021-05-11 Jonathan Wakely <jwakely@redhat.com> 2245 2246 Backported from master: 2247 2021-05-10 Jonathan Wakely <jwakely@redhat.com> 2248 2249 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error 2250 for additional errors in C++20. 2251 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc: 2252 Likewise. 2253 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise. 2254 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise. 2255 22562021-05-11 Jonathan Wakely <jwakely@redhat.com> 2257 2258 Backported from master: 2259 2021-05-10 Jonathan Wakely <jwakely@redhat.com> 2260 2261 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid 2262 clash with std::any. 2263 22642021-05-11 Jonathan Wakely <jwakely@redhat.com> 2265 2266 Backported from master: 2267 2021-05-06 Jonathan Wakely <jwakely@redhat.com> 2268 2269 * include/std/type_traits (remove_cvref_t): Define in terms of 2270 remove_cvref. 2271 * testsuite/20_util/remove_cvref/value.cc: Check alias. 2272 22732021-05-11 Jonathan Wakely <jwakely@redhat.com> 2274 2275 Backported from master: 2276 2021-04-22 Jonathan Wakely <jwakely@redhat.com> 2277 2278 PR libstdc++/99006 2279 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp 2280 is not an array type. 2281 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise. 2282 * testsuite/20_util/shared_ptr/creation/99006.cc: New test. 2283 22842021-05-11 Philippe Blain <levraiphilippeblain@gmail.com> 2285 2286 Backported from master: 2287 2021-04-21 Philippe Blain <levraiphilippeblain@gmail.com> 2288 Jonathan Wakely <jwakely@redhat.com> 2289 2290 PR libstdc++/99453 2291 * python/Makefile.am: Install libstdc++*-gdb.py more robustly. 2292 * python/Makefile.in: Regenerate. 2293 22942021-05-11 Patrick Palka <ppalka@redhat.com> 2295 2296 Backported from master: 2297 2021-05-11 Patrick Palka <ppalka@redhat.com> 2298 2299 * src/c++17/ryu/LOCAL_PATCHES: Update. 2300 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C". 2301 Remove declarations for never-defined functions. 2302 * testsuite/20_util/to_chars/4.cc: New test. 2303 23042021-05-07 Jonathan Wakely <jwakely@redhat.com> 2305 2306 Backported from master: 2307 2021-05-07 Jonathan Wakely <jwakely@redhat.com> 2308 2309 * include/std/istream (__rvalue_stream_extraction_t): Replace 2310 use of __rval_streamable. 2311 * include/std/ostream (__rvalue_stream_insertion_t): Likewise. 2312 (__rval_streamable): Remove. 2313 (_Require_derived_from_ios_base, __derived_from_ios_base): New 2314 helper for checking constraints. 2315 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix 2316 reference to the wrong subclause of the standard. 2317 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc: 2318 Likewise. 2319 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc: 2320 Likewise. 2321 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc: 2322 Likewise. 2323 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc: 2324 New test. 2325 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned 2326 errors. 2327 23282021-05-06 Jonathan Wakely <jwakely@redhat.com> 2329 2330 Backported from master: 2331 2021-04-30 Jonathan Wakely <jwakely@redhat.com> 2332 2333 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as 2334 per LWG 1203. 2335 * include/std/ostream (operator<<(Ostream&&, const x&)): 2336 Likewise. 2337 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc: 2338 Adjust dg-error pattern. 2339 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc: 2340 Likewise. 2341 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define 2342 is_extractable trait to replace std::__is_extractable. Make it 2343 work with rvalue streams as well as lvalues, to replace f() and 2344 g() helper functions. 2345 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc: 2346 Likewise. 2347 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc: 2348 Define is_insertable trait to replace std::__is_insertable. Make 2349 it work with rvalue streams as well as lvalues, to replace f() 2350 and g() helper functions. 2351 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc: 2352 Likewise. 2353 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional 2354 errors from new constraints. 2355 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks, 2356 which are no longer expected to compile. 2357 * testsuite/27_io/rvalue_streams.cc: Adjust existing test. 2358 Verify LWG 1203 changes. 2359 23602021-05-06 Jonathan Wakely <jwakely@redhat.com> 2361 2362 Backported from master: 2363 2021-05-05 Jonathan Wakely <jwakely@redhat.com> 2364 2365 * testsuite/20_util/function_objects/invoke/3.cc: Check feature 2366 test macro. 2367 * testsuite/20_util/function_objects/invoke/version.cc: New test. 2368 23692021-05-06 Jonathan Wakely <jwakely@redhat.com> 2370 2371 Backported from master: 2372 2021-05-04 Jonathan Wakely <jwakely@redhat.com> 2373 2374 * include/std/future (promise::set_value): Check for existence 2375 of shared state before dereferncing it. 2376 (promise::set_exception, promise::set_value_at_thread_exit) 2377 (promise::set_exception_at_thread_exit): Likewise. 2378 (promise<R&>::set_value, promise<R&>::set_exception) 2379 (promise<R&>::set_value_at_thread_exit) 2380 (promise<R&>::set_exception_at_thread_exit): Likewise. 2381 (promise<void>::set_value, promise<void>::set_exception) 2382 (promise<void>::set_value_at_thread_exit) 2383 (promise<void>::set_exception_at_thread_exit): Likewise. 2384 * testsuite/30_threads/promise/members/at_thread_exit2.cc: 2385 Remove unused variable. 2386 23872021-05-06 Jonathan Wakely <jwakely@redhat.com> 2388 2389 Backported from master: 2390 2021-05-04 Jonathan Wakely <jwakely@redhat.com> 2391 2392 * include/bits/basic_string.h (basic_string(const CharT*, const A&)): 2393 Do not do arithmetic on null pointer. 2394 23952021-05-06 Jonathan Wakely <jwakely@redhat.com> 2396 2397 Backported from master: 2398 2021-05-04 Jonathan Wakely <jwakely@redhat.com> 2399 2400 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp 2401 (find_key_pointer(key_const_reference, false_type)) 2402 (find_key_pointer(key_const_reference, true_type)): Do not 2403 dereference null pointer. 2404 24052021-05-06 Jonathan Wakely <jwakely@redhat.com> 2406 2407 Backported from master: 2408 2021-05-04 Jonathan Wakely <jwakely@redhat.com> 2409 2410 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid 2411 overflow. 2412 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add 2413 non-zero value to null pointer. 2414 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: 2415 Use past-the-end iterator for result. 2416 * testsuite/25_algorithms/move_backward/69478.cc: Likewise. 2417 * testsuite/25_algorithms/move_backward/93872.cc: Likewise. 2418 24192021-05-06 Jonathan Wakely <jwakely@redhat.com> 2420 2421 Backported from master: 2422 2021-05-04 Jonathan Wakely <jwakely@redhat.com> 2423 2424 PR libstdc++/100384 2425 * include/std/variant (__get_t): New alias template yielding the 2426 return type of std::get<N> on a variant. 2427 (__visit_result_t): New alias template yielding the result of 2428 std::visit. 2429 (__same_types): Move into namespace __detail::__variant. 2430 (__check_visitor_results): Likewise. Use __invoke_result_t and 2431 __get_t. 2432 (__check_visitor_result): Remove. 2433 (visit): Use __visit_result_t for return type. 2434 * testsuite/20_util/variant/100384.cc: New test. 2435 24362021-05-05 Patrick Palka <ppalka@redhat.com> 2437 2438 Backported from master: 2439 2021-05-05 Patrick Palka <ppalka@redhat.com> 2440 2441 * include/std/ranges (transform_view::_Iterator::iter_swap): 2442 Remove as per LWG 3520. 2443 (join_view::_Iterator::iter_swap): Add indirectly_swappable 2444 constraint as per LWG 3517. 2445 24462021-05-04 Patrick Palka <ppalka@redhat.com> 2447 2448 Backported from master: 2449 2021-04-30 Patrick Palka <ppalka@redhat.com> 2450 2451 * include/std/ranges (split_view::_InnerIter::operator++): 2452 Depend on _Base instead of _Vp directly, as per LWG 3532. 2453 24542021-04-30 Jonathan Wakely <jwakely@redhat.com> 2455 2456 Backported from master: 2457 2021-04-30 Jonathan Wakely <jwakely@redhat.com> 2458 2459 * include/bits/basic_string.h (__cpp_lib_constexpr_string): 2460 Only define for C++17 and later. 2461 * include/std/version (__cpp_lib_semaphore): Fix condition 2462 to match the one in <semaphore>. 2463 24642021-04-29 Jonathan Wakely <jwakely@redhat.com> 2465 2466 Backported from master: 2467 2021-04-26 Jonathan Wakely <jwakely@redhat.com> 2468 2469 PR libstdc++/100259 2470 * include/experimental/internet (net::ip::make_error_code) 2471 (net::ip::make_error_condition, net::ip::make_network_v4) 2472 (net::ip::operator==(const udp&, const udp&)): Add 'inline'. 2473 24742021-04-29 Jonathan Wakely <jwakely@redhat.com> 2475 2476 Backported from master: 2477 2021-04-28 Jonathan Wakely <jwakely@redhat.com> 2478 2479 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define. 2480 * include/std/version (__cpp_lib_constexpr_string): Define. 2481 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc: 2482 Check for __cpp_lib_constexpr_string. 2483 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc: 2484 Likewise. 2485 * testsuite/21_strings/char_traits/requirements/version.cc: New test. 2486 24872021-04-28 Jonathan Wakely <jwakely@redhat.com> 2488 2489 Backported from master: 2490 2021-04-28 Jonathan Wakely <jwakely@redhat.com> 2491 2492 PR libstdc++/100298 2493 * include/bits/std_thread.h (thread::hardware_concurrency): Add 2494 missing noexcept to inline definition for non-gthreads targets. 2495 24962021-04-28 Jakub Jelinek <jakub@redhat.com> 2497 2498 Revert: 2499 2021-04-22 Jakub Jelinek <jakub@redhat.com> 2500 2501 PR target/100182 2502 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for 2503 ia32. 2504 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for 2505 ia32. 2506 25072021-04-27 Patrick Palka <ppalka@redhat.com> 2508 2509 Backported from master: 2510 2021-04-27 Patrick Palka <ppalka@redhat.com> 2511 2512 PR libstdc++/100290 2513 * include/std/ranges (join_view::_Iterator::operator++): Correct 2514 the return type of the lambda to avoid returning a copy of 2515 _M_parent->_M_inner. 2516 * testsuite/std/ranges/adaptors/join.cc (test10): New test. 2517 25182021-04-27 Release Manager 2519 2520 * GCC 11.1.0 released. 2521 25222021-04-23 Jonathan Wakely <jwakely@redhat.com> 2523 2524 Backported from master: 2525 2021-04-22 Jonathan Wakely <jwakely@redhat.com> 2526 2527 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl): 2528 Handle system_clock as well as steady_clock. 2529 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable. 2530 * testsuite/30_threads/semaphore/try_acquire_until.cc: 2531 Re-enable. 2532 25332021-04-23 Jonathan Wakely <jwakely@redhat.com> 2534 2535 Backported from master: 2536 2021-04-22 Jonathan Wakely <jwakely@redhat.com> 2537 2538 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add 2539 options for libatomic. 2540 25412021-04-22 Thomas Rodgers <rodgert@twrodgers.com> 2542 2543 Backported from master: 2544 2021-04-22 Thomas Rodgers <rodgert@twrodgers.com> 2545 2546 * include/bits/atomic_wait.h: Always notify waiters in the 2547 case of 'bare' address notification. 2548 25492021-04-22 Jonathan Wakely <jwakely@redhat.com> 2550 2551 Backported from master: 2552 2021-04-22 Jonathan Wakely <jwakely@redhat.com> 2553 2554 PR libstdc++/100179 2555 * include/bits/semaphore_base.h: Remove #error. 2556 * include/std/semaphore: Do not define anything unless one of 2557 the implementations is available. 2558 25592021-04-22 Jakub Jelinek <jakub@redhat.com> 2560 2561 Backported from master: 2562 2021-04-22 Jakub Jelinek <jakub@redhat.com> 2563 2564 PR target/100182 2565 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for 2566 ia32. 2567 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for 2568 ia32. 2569 25702021-04-22 Thomas Rodgers <rodgert@twrodgers.com> 2571 2572 Backported from master: 2573 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com> 2574 2575 * include/bits/semaphore_base.h: Always reload __old in 2576 __atomic_semaphore::_S_do_try_acquire(). 2577 * testsuite/30_threads/stop_token/stop_callback/destroy.cc: 2578 re-enable testcase. 2579 25802021-04-21 Thomas Rodgers <rodgert@twrodgers.com> 2581 2582 Backported from master: 2583 2021-04-21 Thomas Rodgers <rodgert@twrodgers.com> 2584 2585 * include/bits/semaphore_base.h: Add missing _M_try_acquire() 2586 member to __platform_wait. 2587 25882021-04-21 Jonathan Wakely <jwakely@redhat.com> 2589 2590 Backported from master: 2591 2021-04-21 Jonathan Wakely <jwakely@redhat.com> 2592 2593 * include/std/latch: Replace tab characters in license text. 2594 * include/std/semaphore: Likewise. 2595 25962021-04-21 Jakub Jelinek <jakub@redhat.com> 2597 2598 Backported from master: 2599 2021-04-21 Jakub Jelinek <jakub@redhat.com> 2600 2601 PR libstdc++/100164 2602 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE 2603 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE. 2604 * configure: Regenerated. 2605 * config.h.in: Regenerated. 2606 26072021-04-20 Jonathan Wakely <jwakely@redhat.com> 2608 2609 Backported from master: 2610 2021-04-20 Jonathan Wakely <jwakely@redhat.com> 2611 2612 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable 2613 test for targets not using futexes for semaphores. 2614 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise. 2615 * testsuite/30_threads/stop_token/stop_callback/destroy.cc: 2616 Disable for all targets. 2617 26182021-04-20 Thomas Rodgers <trodgers@redhat.com> 2619 2620 Backported from master: 2621 2021-04-20 Thomas Rodgers <trodgers@redhat.com> 2622 2623 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header. 2624 * include/Makefile.in: Regenerate. 2625 * include/bits/this_thread_sleep.h: New file. 2626 * include/bits/atomic_base.h: Adjust all calls 2627 to __atomic_wait/__atomic_notify for new call signatures. 2628 * include/bits/atomic_timed_wait.h: Extensive rewrite. 2629 * include/bits/atomic_wait.h: Likewise. 2630 * include/bits/semaphore_base.h: Adjust all calls 2631 to __atomic_wait/__atomic_notify for new call signatures. 2632 * include/std/atomic: Likewise. 2633 * include/std/barrier: Likewise. 2634 * include/std/latch: Likewise. 2635 * include/std/semaphore: Likewise. 2636 * include/std/thread (this_thread::sleep_for) 2637 (this_thread::sleep_until): Move to new header. 2638 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify 2639 test. 2640 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise. 2641 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise. 2642 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise. 2643 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise. 2644 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise. 2645 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise. 2646 26472021-04-20 Patrick Palka <ppalka@redhat.com> 2648 2649 Backported from master: 2650 2021-04-20 Patrick Palka <ppalka@redhat.com> 2651 2652 PR libstdc++/95983 2653 * include/bits/stl_iterator.h (__detail::__move_iter_cat): 2654 Define. 2655 (move_iterator): Derive from the above in C++20 in order to 2656 conditionally define iterator_category as per P2259. 2657 (move_iterator::__base_cat): No longer used, so remove. 2658 (move_iterator::iterator_category): Remove in C++20. 2659 (__detail::__common_iter_use_postfix_proxy): Define. 2660 (common_iterator::_Proxy): Rename to ... 2661 (common_iterator:__arrow_proxy): ... this. 2662 (common_iterator::__postfix_proxy): Define as per P2259. 2663 (common_iterator::operator->): Adjust. 2664 (common_iterator::operator++): Adjust as per P2259. 2665 (iterator_traits<common_iterator>::_S_iter_cat): Define. 2666 (iterator_traits<common_iterator>::iterator_category): Change as 2667 per P2259. 2668 (__detail::__counted_iter_value_type): Define. 2669 (__detail::__counted_iter_concept): Define. 2670 (__detail::__counted_iter_cat): Define. 2671 (counted_iterator): Derive from the above three classes in order 2672 to conditionally define value_type, iterator_concept and 2673 iterator category respectively as per P2259. 2674 (counted_iterator::operator->): Define as per P2259. 2675 (incrementable_traits<counted_iterator>): Remove as per P2259. 2676 (iterator_traits<counted_iterator>): Adjust as per P2259. 2677 * include/std/ranges (__detail::__iota_view_iter_cat): Define. 2678 (iota_view::_Iterator): Derive from the above in order to 2679 conditionally define iterator_category as per P2259. 2680 (iota_view::_S_iter_cat): Rename to ... 2681 (iota_view::_S_iter_concept): ... this. 2682 (iota_view::iterator_concept): Use it to apply LWG 3291 changes. 2683 (iota_view::iterator_category): Remove. 2684 (__detail::__filter_view_iter_cat): Define. 2685 (filter_view::_Iterator): Derive from the above in order to 2686 conditionally define iterator_category as per P2259. 2687 (filter_view::_Iterator): Move to struct __filter_view_iter_cat. 2688 (filter_view::_Iterator::iterator_category): Remove. 2689 (transform_view::_Base): Define. 2690 (transform_view::__iter_cat): Define. 2691 (transform_view::_Iterator): Derive from the above in order to 2692 conditionally define iterator_category as per P2259. 2693 (transform_view::_Iterator::_Base): Just alias 2694 transform_view::_Base. 2695 (transform_view::_Iterator::_S_iter_cat): Move to struct 2696 transform_view::__iter_cat. 2697 (transform_view::_Iterator::iterator_category): Remove. 2698 (transform_view::_Sentinel::_Base): Just alias 2699 transform_view::_Base. 2700 (join_view::_Base): Define. 2701 (join_view::_Outer_iter): Define. 2702 (join_view::_Inner_iter): Define. 2703 (join_view::_S_ref_is_glvalue): Define. 2704 (join_view::__iter_cat): Define. 2705 (join_view::_Iterator): Derive from it in order to conditionally 2706 define iterator_category as per P2259. 2707 (join_view::_Iterator::_Base): Just alias join_view::_Base. 2708 (join_view::_Iterator::_S_ref_is_glvalue): Just alias 2709 join_view::_S_ref_is_glvalue. 2710 (join_view::_Iterator::_S_iter_cat): Move to struct 2711 transform_view::__iter_cat. 2712 (join_view::_Iterator::_Outer_iter): Just alias 2713 join_view::_Outer_iter. 2714 (join_view::_Iterator::_Inner_iter): Just alias 2715 join_view::_Inner_iter. 2716 (join_view::_Iterator::iterator_category): Remove. 2717 (join_view::_Sentinel::_Base): Just alias join_view::_Base. 2718 (__detail::__split_view_outer_iter_cat): Define. 2719 (__detail::__split_view_inner_iter_cat): Define. 2720 (split_view::_Base): Define. 2721 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat 2722 in order to conditionally define iterator_category as per P2259. 2723 (split_view::_Outer_iter::iterator_category): Remove. 2724 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat 2725 in order to conditionally define iterator_category as per P2259. 2726 (split_view::_Inner_iter::_S_iter_cat): Move to 2727 __split_view_inner_iter_cat. 2728 (split_view::_Inner_iter::iterator_category): Remove. 2729 (elements_view::_Base): Define. 2730 (elements_view::__iter_cat): Define. 2731 (elements_view::_Iterator): Derive from the above in order to 2732 conditionall define iterator_category as per P2259. 2733 (elements_view::_Iterator::_Base): Just alias 2734 elements_view::_Base. 2735 (elements_view::_Iterator::_S_iter_concept) 2736 (elements_view::_Iterator::iterator_concept): Define as per 2737 P2259. 2738 (elements_view::_Iterator::iterator_category): Remove. 2739 (elements_view::_Sentinel::_Base): Just alias 2740 elements_view::_Base. 2741 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc: 2742 Adjust constraints on iterator_traits<counted_iterator>. 2743 * testsuite/std/ranges/p2259.cc: New test. 2744 27452021-04-20 Jonathan Wakely <jwakely@redhat.com> 2746 2747 Backported from master: 2748 2021-04-20 Jonathan Wakely <jwakely@redhat.com> 2749 2750 PR libstdc++/100146 2751 * include/std/charconv (__cpp_lib_to_chars): Define 2752 conditionally. 2753 * include/std/version (__cpp_lib_to_chars): Likewise.. 2754 * testsuite/20_util/from_chars/4.cc: Only check feature test 2755 macro, not _GLIBCXX_HAVE_USELOCALE. 2756 * testsuite/20_util/from_chars/5.cc: Likewise. 2757 * testsuite/20_util/from_chars/6.cc: Likewise. 2758 * testsuite/20_util/to_chars/long_double.cc: Likewise. 2759 27602021-04-20 Jakub Jelinek <jakub@redhat.com> 2761 2762 Backported from master: 2763 2021-04-20 Jakub Jelinek <jakub@redhat.com> 2764 2765 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol 2766 versions with _IEEE128_ substring are found, set ieee_version_found 2767 to true. Ignore missing symbols with _IEEE128_ in version name if 2768 !ieee_version_found. Use i->first as version_name instead of 2769 i->second.version_name if the latter is empty. 2770 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update. 2771 27722021-04-19 H.J. Lu <hjl.tools@gmail.com> 2773 2774 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: 2775 Updated. 2776 27772021-04-17 Jakub Jelinek <jakub@redhat.com> 2778 2779 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update. 2780 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update. 2781 27822021-04-17 Jakub Jelinek <jakub@redhat.com> 2783 2784 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. 2785 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update. 2786 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update. 2787 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update. 2788 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update. 2789 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update. 2790 27912021-04-15 Jonathan Wakely <jwakely@redhat.com> 2792 2793 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also 2794 add libatomic options for 32-bit sparc*-*-linux-gnu. 2795 27962021-04-15 Jonathan Wakely <jwakely@redhat.com> 2797 2798 PR libstdc++/96657 2799 * libsupc++/Makefile.am: Add atomicity.cc here. 2800 * src/c++98/Makefile.am: Remove it from here. 2801 * libsupc++/Makefile.in: Regenerate. 2802 * src/c++98/Makefile.in: Regenerate. 2803 * testsuite/18_support/exception_ptr/96657.cc: New test. 2804 28052021-04-13 Jonathan Wakely <jwakely@redhat.com> 2806 2807 PR libstdc++/100060 2808 * include/std/bit: Only include <ext/numeric_traits.h> for 2809 hosted build, use <limits> otherwise. 2810 28112021-04-13 Jonathan Wakely <jwakely@redhat.com> 2812 2813 * doc/xml/manual/backwards_compatibility.xml: Remove porting 2814 notes for libg++ and libstdc++-v2, and bibliography. 2815 * doc/html/*: Regenerated. 2816 28172021-04-12 Jonathan Wakely <jwakely@redhat.com> 2818 2819 PR libstdc++/100044 2820 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair): 2821 Remove helper concept. 2822 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove 2823 deduction guides, as per LWG 3404. 2824 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class 2825 template argument deduction fails. 2826 28272021-04-12 Jonathan Wakely <jwakely@redhat.com> 2828 2829 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc: 2830 Adjust expected error for C++20 mode. 2831 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc: 2832 Likewise. 2833 28342021-04-12 Jonathan Wakely <jwakely@redhat.com> 2835 2836 PR libstdc++/99995 2837 * testsuite/17_intro/headers/c++1998/49745.cc: Include all 2838 standard headers and XFAIL for effective-target c++20. 2839 28402021-04-09 François Dumont <fdumont@gcc.gnu.org> 2841 2842 PR libstdc++/99402 2843 * include/debug/helper_functions.h (__can_advance(_InputIterator, 2844 const std::pair<_Diff, _Distance_precision>&, int)): New. 2845 (__can_advance(const _Safe_iterator<>&, 2846 const std::pair<_Diff, _Distance_precision>&, int)): New. 2847 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New, 2848 use latter. 2849 (__glibcxx_check_can_increment_range): Adapt to use latter. 2850 (__glibcxx_check_can_decrement_range): Likewise. 2851 * include/debug/safe_iterator.h 2852 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&, 2853 int)): New. 2854 (__can_advance(const _Safe_iterator<>&, 2855 const std::pair<_Diff, _Distance_precision>&, int)): New. 2856 * include/debug/safe_iterator.tcc 2857 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&, 2858 int)): New. 2859 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&, 2860 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for 2861 __dp_sign_max_size. 2862 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist. 2863 (__copy_move_backward_a): Likewise. 2864 (__equal_aux): Likewise. 2865 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&, 2866 const std::pair<_Diff, _Distance_precision>&, int)): New. 2867 (__can_advance(const std::move_iterator<>&, 2868 const std::pair<_Diff, _Distance_precision>&, int)): New. 2869 * testsuite/25_algorithms/copy/debug/99402.cc: New test. 2870 28712021-04-09 Jonathan Wakely <jwakely@redhat.com> 2872 2873 PR libstdc++/99985 2874 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix 2875 to be a valid constexpr function in C++11. 2876 * testsuite/23_containers/unordered_set/cons/99985.cc: New test. 2877 28782021-04-09 Jonathan Wakely <jwakely@redhat.com> 2879 2880 * include/bits/fs_fwd.h: Fix doxygen group command. 2881 * include/bits/streambuf_iterator.h: Likewise. 2882 * include/bits/uses_allocator_args.h: Likewise. 2883 * include/std/memory: Likewise. 2884 * include/tr1/complex: Likewise. 2885 28862021-04-08 Jonathan Wakely <jwakely@redhat.com> 2887 2888 * include/bits/basic_string.h: Tweak doxygen comment. 2889 28902021-04-08 Patrick Palka <ppalka@redhat.com> 2891 2892 * include/std/ranges (__detail::find): Define. 2893 (split_view::_OuterIter::operator++): Apply proposed resolution 2894 of LWG 3505. 2895 * testsuite/std/ranges/adaptors/split.cc (test10): New test. 2896 28972021-04-08 Patrick Palka <ppalka@redhat.com> 2898 2899 * include/std/ranges (__detail::find_if): Simplify. 2900 (__detail::find_if_not): Likewise. 2901 (__detail::min): Remove. 2902 (__detail::mismatch): Simplify. 2903 (take_view::size): Use std::min instead of __detail::min. 2904 29052021-04-08 Patrick Palka <ppalka@redhat.com> 2906 2907 * include/std/ranges (__detail::__returnable_element): New 2908 concept. 2909 (elements_view): Use this concept in its constraints. Add 2910 missing private access specifier. 2911 (elements_view::_S_get_element): Define as per LWG 3502. 2912 (elements_view::operator*, elements_view::operator[]): Use 2913 _S_get_element. 2914 (elements_view::operator++): Remove unnecessary constraint 2915 as per LWG 3492. 2916 * testsuite/std/ranges/adaptors/elements.cc (test05): New test. 2917 29182021-04-08 Jonathan Wakely <jwakely@redhat.com> 2919 2920 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for 2921 out-of-memory error in log file. 2922 * doc/Makefile.in: Regenerate. 2923 29242021-04-08 Jonathan Wakely <jwakely@redhat.com> 2925 2926 * configure: Regenerate. 2927 29282021-04-08 Jonathan Wakely <jwakely@redhat.com> 2929 2930 * include/bits/random.h: Fix doxygen group commands. 2931 * include/bits/regex_constants.h: Likewise. 2932 * include/tr1/random.h: Likewise. 2933 29342021-04-08 Jonathan Wakely <jwakely@redhat.com> 2935 2936 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): 2937 New function to determine noexcept-specifier for move 2938 constructors. 2939 (_Hashtable): Use _S_nothrow_move() on move constructors. 2940 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc: 2941 Correct static assertion message. 2942 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc: 2943 Likewise. 2944 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc: 2945 Likewise. 2946 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc: 2947 Likewise. 2948 29492021-04-08 Patrick Palka <ppalka@redhat.com> 2950 2951 PR libstdc++/98384 2952 * testsuite/20_util/to_chars/long_double.cc: Don't run the test 2953 on targets without a large long double. XFAIL the execution on 2954 targets with a non-conforming printf. 2955 29562021-04-08 Patrick Palka <ppalka@redhat.com> 2957 2958 PR libstdc++/99433 2959 * include/std/ranges (__adaptor::__maybe_refwrap): Remove. 2960 (__adaptor::__adaptor_invocable): New concept. 2961 (__adaptor::__adaptor_partial_app_viable): New concept. 2962 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a 2963 non-template base class. 2964 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base 2965 class template. 2966 (__adaptor::_Partial): New class template that represents 2967 partial application of a range adaptor non-closure. 2968 (__adaptor::__pipe_invocable): New concept. 2969 (__adaptor::_Pipe): New class template. 2970 (__detail::__can_ref_view): New concept. 2971 (__detail::__can_subrange): New concept. 2972 (all): Replace the lambda here with ... 2973 (_All): ... this functor. Add appropriate constraints. 2974 (__detail::__can_filter_view): New concept. 2975 (filter, _Filter): As in all/_All. 2976 (__detail::__can_transform): New concept. 2977 (transform, _Transform): As in all/_All. 2978 (__detail::__can_take_view): New concept. 2979 (take, _Take): As in all/_All. 2980 (__detail::__can_take_while_view): New concept. 2981 (take_while, _TakeWhile): As in all/_All. 2982 (__detail::__can_drop_view): New concept. 2983 (drop, _Drop): As in all/_All. 2984 (__detail::__can_drop_while_view): New concept. 2985 (drop_while, _DropWhile): As in all/_All. 2986 (__detail::__can_join_view): New concept. 2987 (join, _Join): As in all/_All. 2988 (__detail::__can_split_view): New concept. 2989 (split, _Split): As in all/_All. Rename template parameter 2990 _Fp to _Pattern. 2991 (__detail::__already_common): New concept. 2992 (__detail::__can_common_view): New concept. 2993 (common, _Common): As in all/_All. 2994 (__detail::__can_reverse_view): New concept. 2995 (reverse, _Reverse): As in all/_All. 2996 (__detail::__can_elements_view): New concept. 2997 (elements, _Elements): As in all/_All. 2998 (keys, values): Adjust. 2999 * testsuite/std/ranges/adaptors/99433.cc: New test. 3000 * testsuite/std/ranges/adaptors/all.cc: No longer expect that 3001 adding empty range adaptor closure objects to a pipeline doesn't 3002 increase the size of the pipeline. 3003 (test05): New test. 3004 * testsuite/std/ranges/adaptors/common.cc (test03): New test. 3005 * testsuite/std/ranges/adaptors/drop.cc (test09): New test. 3006 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test. 3007 * testsuite/std/ranges/adaptors/elements.cc (test04): New test. 3008 * testsuite/std/ranges/adaptors/filter.cc (test06): New test. 3009 * testsuite/std/ranges/adaptors/join.cc (test09): New test. 3010 * testsuite/std/ranges/adaptors/p2281.cc: New test. 3011 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test. 3012 * testsuite/std/ranges/adaptors/split.cc (test01, test04): 3013 Adjust. 3014 (test09): New test. 3015 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust 3016 expected error message. 3017 (test02): Likewise. Extend test. 3018 * testsuite/std/ranges/adaptors/take.cc (test06): New test. 3019 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test. 3020 * testsuite/std/ranges/adaptors/transform.cc (test07, test08): 3021 New test. 3022 30232021-04-08 Jonathan Wakely <jwakely@redhat.com> 3024 3025 * include/std/string_view: Adjust Doxygen @file comment. 3026 30272021-04-08 Jonathan Wakely <jwakely@redhat.com> 3028 3029 * include/std/type_traits (is_scoped_enum<T>): Constrain partial 3030 specialization to not match incomplete enum types. Use a 3031 requires-expression instead of instantiating is_convertible. 3032 (is_scoped_enum<const T>): Add as workaround for PR c++/99968. 3033 * testsuite/20_util/is_scoped_enum/value.cc: Check with 3034 incomplete types and opaque-enum-declarations. 3035 30362021-04-07 Jonathan Wakely <jwakely@redhat.com> 3037 3038 PR libstdc++/99805 3039 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call 3040 non-const member on _M_pathname, to avoid copy-on-write. 3041 * testsuite/27_io/filesystem/path/decompose/parent_path.cc: 3042 Check construction from strings that might be shared. 3043 30442021-04-06 Jonathan Wakely <jwakely@redhat.com> 3045 3046 * include/bits/move.h (forward, move, move_if_noexcept) 3047 (addressof): Add _GLIBCXX_NODISCARD. 3048 * include/bits/ranges_cmp.h (identity::operator()): Add 3049 nodiscard attribute. 3050 * include/c_global/cstddef (to_integer): Likewise. 3051 * include/std/bit (bit_cast): Likewise. 3052 * include/std/utility (as_const, to_underlying): Likewise. 3053 30542021-04-06 Jonathan Wakely <jwakely@redhat.com> 3055 3056 * include/bits/move.h (forward): Change static_assert message 3057 to be unambiguous about what must be true. 3058 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error. 3059 * testsuite/20_util/forward/f_neg.cc: Likewise. 3060 30612021-04-06 Jonathan Wakely <jwakely@redhat.com> 3062 3063 * include/bits/alloc_traits.h: Use markdown for code font. 3064 * include/bits/basic_string.h: Fix @param names. 3065 * include/bits/max_size_type.h: Remove period after @file. 3066 * include/bits/regex.h: Fix duplicate @retval names, and rename. 3067 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add 3068 group open to match existing group close. 3069 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group 3070 open. 3071 30722021-04-06 Jonathan Wakely <jwakely@redhat.com> 3073 3074 * include/bits/atomic_base.h: Fix doxygen group close. 3075 * include/bits/basic_ios.h: Likewise. 3076 * include/bits/forward_list.h: Likewise. 3077 * include/bits/fs_dir.h: Likewise. 3078 * include/bits/fs_ops.h: Likewise. 3079 * include/bits/fs_path.h: Likewise. 3080 * include/bits/functional_hash.h: Likewise. 3081 * include/bits/gslice.h: Likewise. 3082 * include/bits/gslice_array.h: Likewise. 3083 * include/bits/hashtable_policy.h: Likewise. 3084 * include/bits/indirect_array.h: Likewise. 3085 * include/bits/locale_classes.h: Likewise. 3086 * include/bits/locale_facets.h: Likewise. 3087 * include/bits/locale_facets_nonio.h: Likewise. 3088 * include/bits/mask_array.h: Likewise. 3089 * include/bits/refwrap.h: Likewise. 3090 * include/bits/regex.h: Likewise. 3091 * include/bits/regex_automaton.h: Likewise. 3092 * include/bits/regex_compiler.h: Likewise. 3093 * include/bits/regex_constants.h: Likewise. 3094 * include/bits/regex_error.h: Likewise. 3095 * include/bits/regex_executor.h: Likewise. 3096 * include/bits/regex_scanner.h: Likewise. 3097 * include/bits/shared_ptr.h: Likewise. 3098 * include/bits/shared_ptr_atomic.h: Likewise. 3099 * include/bits/shared_ptr_base.h: Likewise. 3100 * include/bits/slice_array.h: Likewise. 3101 * include/bits/specfun.h: Likewise. 3102 * include/bits/std_function.h: Likewise. 3103 * include/bits/std_mutex.h: Likewise. 3104 * include/bits/stl_deque.h: Likewise. 3105 * include/bits/stl_iterator.h: Likewise. 3106 * include/bits/stl_iterator_base_types.h: Likewise. 3107 * include/bits/stl_map.h: Likewise. 3108 * include/bits/stl_multimap.h: Likewise. 3109 * include/bits/stl_multiset.h: Likewise. 3110 * include/bits/stl_numeric.h: Likewise. 3111 * include/bits/stl_pair.h: Likewise. 3112 * include/bits/stl_set.h: Likewise. 3113 * include/bits/stl_uninitialized.h: Likewise. 3114 * include/bits/stream_iterator.h: Likewise. 3115 * include/bits/streambuf_iterator.h: Likewise. 3116 * include/bits/unique_ptr.h: Likewise. 3117 * include/bits/unordered_map.h: Likewise. 3118 * include/bits/unordered_set.h: Likewise. 3119 * include/decimal/decimal: Likewise. 3120 * include/experimental/any: Likewise. 3121 * include/experimental/array: Likewise. 3122 * include/experimental/bits/fs_dir.h: Likewise. 3123 * include/experimental/bits/fs_fwd.h: Likewise. 3124 * include/experimental/bits/fs_ops.h: Likewise. 3125 * include/experimental/bits/fs_path.h: Likewise. 3126 * include/experimental/buffer: Likewise. 3127 * include/experimental/internet: Likewise. 3128 * include/experimental/optional: Likewise. 3129 * include/experimental/propagate_const: Likewise. 3130 * include/experimental/socket: Likewise. 3131 * include/ext/pb_ds/assoc_container.hpp: Likewise. 3132 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: 3133 Likewise. 3134 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise. 3135 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise. 3136 * include/ext/pb_ds/detail/types_traits.hpp: Likewise. 3137 * include/ext/pb_ds/exception.hpp: Likewise. 3138 * include/ext/pb_ds/priority_queue.hpp: Likewise. 3139 * include/ext/pb_ds/tag_and_trait.hpp: Likewise. 3140 * include/ext/random: Likewise. 3141 * include/std/any: Likewise. 3142 * include/std/atomic: Likewise. 3143 * include/std/bitset: Likewise. 3144 * include/std/chrono: Likewise. 3145 * include/std/complex: Likewise. 3146 * include/std/condition_variable: Likewise. 3147 * include/std/fstream: Likewise. 3148 * include/std/future: Likewise. 3149 * include/std/iostream: Likewise. 3150 * include/std/istream: Likewise. 3151 * include/std/mutex: Likewise. 3152 * include/std/numeric: Likewise. 3153 * include/std/ostream: Likewise. 3154 * include/std/ratio: Likewise. 3155 * include/std/shared_mutex: Likewise. 3156 * include/std/stdexcept: Likewise. 3157 * include/std/streambuf: Likewise. 3158 * include/std/system_error: Likewise. 3159 * include/std/thread: Likewise. 3160 * include/std/valarray: Likewise. 3161 * include/std/variant: Likewise. 3162 * include/tr1/cmath: Likewise. 3163 * include/tr1/regex: Likewise. 3164 * include/tr2/dynamic_bitset: Likewise. 3165 * libsupc++/atomic_lockfree_defines.h: Likewise. 3166 * libsupc++/exception: Likewise. 3167 * libsupc++/exception.h: Likewise. 3168 * libsupc++/exception_ptr.h: Likewise. 3169 * libsupc++/nested_exception.h: Likewise. 3170 31712021-03-31 Alexandre Oliva <oliva@adacore.com> 3172 3173 * testsuite/30_threads/future/members/poll.cc: Use faster 3174 after-ready call in the calibration loop. 3175 31762021-03-29 Jonathan Wakely <jwakely@redhat.com> 3177 3178 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL. 3179 * doc/html/manual/status.html: Regenerate. 3180 31812021-03-28 François Dumont <fdumont@gcc.gnu.org> 3182 3183 * include/debug/forward_list 3184 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification. 3185 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add 3186 call to safe container allocator aware move constructor. 3187 * include/debug/vector (vector(vector&&, const allocator_type&)): 3188 Fix noexcept qualification. 3189 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc: 3190 Add allocator-extended move constructor noexceot qualification check. 3191 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise. 3192 31932021-03-26 Jonathan Wakely <jwakely@redhat.com> 3194 3195 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random 3196 fallback is needed. 3197 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg): 3198 New helper functions and callback. 3199 (random_device::_M_init): Add 'prng' and 'all' enumerators. 3200 Replace switch with fallthrough with a series of 'if' statements. 3201 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid 3202 checks fail. 3203 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng" 3204 token. 3205 (random_device::_M_getval): Check for callback unconditionally 3206 and always pass _M_file pointer. 3207 * testsuite/26_numerics/random/random_device/85494.cc: Remove 3208 effective-target check. Use new random_device_available helper. 3209 * testsuite/26_numerics/random/random_device/94087.cc: Likewise. 3210 * testsuite/26_numerics/random/random_device/cons/default-cow.cc: 3211 Remove effective-target check. 3212 * testsuite/26_numerics/random/random_device/cons/default.cc: 3213 Likewise. 3214 * testsuite/26_numerics/random/random_device/cons/token.cc: Use 3215 new random_device_available helper. Test "prng" token. 3216 * testsuite/util/testsuite_random.h (random_device_available): 3217 New helper function. 3218 32192021-03-25 François Dumont <fdumont@gcc.gnu.org> 3220 3221 * include/debug/string 3222 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI. 3223 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification. 3224 (basic_string<>::erase): Adapt to take __const_iterator. 3225 (basic_string(const _CharT*, const _Allocator&)): Remove assign call. 3226 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to 3227 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI. 3228 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New. 3229 (__gnu_debug::u16string, __gnu_debug::u32string): New. 3230 (std::hash<__gnu_debug::basic_string<>>): New partial specialization. 3231 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise. 3232 * testsuite/util/exception/safety.h 3233 (erase_base<__gnu_debug::basic_string<>>): New partial specialization. 3234 (insert_base<__gnu_debug::basic_string<>>): Likewise. 3235 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>): 3236 New partial specialization. 3237 * testsuite/21_strings/basic_string/hash/debug.cc: New test. 3238 * testsuite/21_strings/basic_string/requirements/citerators.cc: 3239 Add test on __gnu_debug::string. 3240 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise. 3241 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise. 3242 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc: 3243 Likewise. 3244 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc: 3245 Likewise. 3246 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc: 3247 Likewise. 3248 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc: 3249 Likewise. 3250 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc: 3251 Likewise. 3252 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc: 3253 Likewise. 3254 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc: 3255 Likewise. 3256 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise. 3257 32582021-03-25 Jakub Jelinek <jakub@redhat.com> 3259 3260 PR c++/99672 3261 * testsuite/18_support/source_location/consteval.cc (main): Adjust 3262 expected column numbers. 3263 * testsuite/18_support/source_location/1.cc (main): Likewise. 3264 32652021-03-25 Jonathan Wakely <jwakely@redhat.com> 3266 3267 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc. 3268 32692021-03-25 Jonathan Wakely <jwakely@redhat.com> 3270 3271 * testsuite/util/exception/safety.h (setup_base::generate): 3272 Support seeding random engine. 3273 (erase_point, erase_range): Adjust range of random numbers to 3274 ensure dereferenceable iterators are used where required. 3275 (generation_prohibited::run): Do not try to erase from empty 3276 containers. 3277 * testsuite/util/testsuite_containergen.h (test_containers): 3278 Support seeding random engine. 3279 32802021-03-23 Jonathan Wakely <jwakely@redhat.com> 3281 3282 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated 3283 line with a check that uses the const being/end overloads. 3284 32852021-03-23 Moritz Sichert <sichert@in.tum.de> 3286 3287 * include/std/ranges (reverse_view::begin, reverse_view::end): 3288 Qualify make_reverse_iterator calls to avoid ADL. 3289 * testsuite/std/ranges/adaptors/reverse.cc: Test that 3290 views::reverse works when make_reverse_iterator is defined 3291 in an associated namespace. 3292 32932021-03-23 Jonathan Wakely <jwakely@redhat.com> 3294 3295 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT): 3296 Do not define when compiling with Clang. 3297 32982021-03-22 Jonathan Wakely <jwakely@redhat.com> 3299 3300 * include/std/string_view (basic_string_view(Range&&)): Define new 3301 constructor and deduction guide. 3302 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test. 3303 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test. 3304 33052021-03-22 Jonathan Wakely <jwakely@redhat.com> 3306 3307 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])): 3308 Add missing 'noexcept' as per LWG 2280. 3309 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>)) 3310 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537. 3311 * testsuite/24_iterators/range_access/range_access.cc: Check for 3312 expected noexcept specifiers. Check result types of generic 3313 std::begin and std::end overloads. 3314 * testsuite/24_iterators/range_access/range_access_cpp14.cc: 3315 Check for expected noexcept specifiers. 3316 * testsuite/24_iterators/range_access/range_access_cpp17.cc: 3317 Likewise. 3318 33192021-03-19 Jonathan Wakely <jwakely@redhat.com> 3320 3321 * include/std/type_traits (is_scoped_enum): Define. 3322 * include/std/version (__cpp_lib_is_scoped_enum): Define. 3323 * testsuite/20_util/is_scoped_enum/value.cc: New test. 3324 * testsuite/20_util/is_scoped_enum/version.cc: New test. 3325 33262021-03-16 Jonathan Wakely <jwakely@redhat.com> 3327 3328 PR libstdc++/99341 3329 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove 3330 std::once_flag symbols. 3331 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise. 3332 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise. 3333 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: 3334 Likewise. 3335 * config/abi/pre/gnu.ver: Likewise. 3336 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX] 3337 (struct __once_flag_compat): Remove. 3338 (_ZNSt9once_flag11_M_activateEv): Remove. 3339 (_ZNSt9once_flag9_M_finishEb): Remove. 3340 33412021-03-16 Jonathan Wakely <jwakely@redhat.com> 3342 3343 PR libstdc++/99341 3344 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag): 3345 Revert to pthread_once_t implementation. 3346 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise. 3347 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX] 3348 (struct __once_flag_compat): New type matching the reverted 3349 implementation of once_flag using futexes. 3350 (once_flag::_M_activate): Remove, replace with ... 3351 (_ZNSt9once_flag11_M_activateEv): ... alias symbol. 3352 (once_flag::_M_finish): Remove, replace with ... 3353 (_ZNSt9once_flag9_M_finishEb): ... alias symbol. 3354 * testsuite/30_threads/call_once/66146.cc: Removed. 3355 33562021-03-15 Iain Sandoe <iain@sandoe.co.uk> 3357 3358 * testsuite/17_intro/names.cc: Exclude j from the list 3359 of test symbols for Darwin. 3360 33612021-03-15 Iain Sandoe <iain@sandoe.co.uk> 3362 3363 * config/os/bsd/darwin/ppc-extra.ver: Add matching for 3364 to_chars and from_chars for long double. 3365 33662021-03-15 Patrick Palka <ppalka@redhat.com> 3367 3368 * include/bits/max_size_type.h (__max_size_type::operator _Tp): 3369 Fix formatting. 3370 (__max_size_type::operator++): Define. 3371 (__max_size_type::operator--): Likewise. 3372 (__max_size_type::operator<=>): Conditionally define (in place 3373 of the other comparison operators). 3374 (__max_diff_type::operator _Tp): Fix formatting. 3375 (__max_diff_type::operator++): Define. 3376 (__max_diff_type::operator--): Likewise. 3377 (__max_diff_type::operator<=>): Conditionally define (in place 3378 of the other comparison operators). 3379 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test 3380 these operator overloads. 3381 33822021-03-15 Caroline Tice <cmtice@google.com> 3383 3384 PR libstdc++/99172 3385 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add 3386 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make 3387 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std' 3388 filtered out. 3389 * src/Makefile.in: Regenerate. 3390 33912021-03-11 Patrick Palka <ppalka@redhat.com> 3392 3393 * src/c++17/floating_to_chars.cc: Simplify the file as if 3394 __SIZEOF_INT128__ is always defined. 3395 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define 3396 a base-10 to_chars overload for the uint128_t class type. 3397 * src/c++17/uint128_t.h: New file. 3398 * testsuite/20_util/to_chars/long_double.cc: No longer expect an 3399 execution FAIL on targets that have a large long double type 3400 but lack __int128. 3401 34022021-03-11 Patrick Palka <ppalka@redhat.com> 3403 3404 * src/c++17/ryu/LOCAL_PATCHES: Update. 3405 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t. 3406 * src/c++17/ryu/generic_128.h: Likewise. 3407 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128): 3408 Use uint128_t instead of __uint128_t. 3409 (generic_binary_to_decimal): Likewise. 3410 34112021-03-11 Patrick Palka <ppalka@redhat.com> 3412 3413 * src/c++17/ryu/LOCAL_PATCHES: New file. 3414 34152021-03-11 Patrick Palka <ppalka@redhat.com> 3416 3417 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally 3418 defined alias of unsigned __int128. 3419 (floating_type_traits_binary128::mantissa_t): Use uint128_t 3420 instead of unsigned __int128. 3421 (floating_type_traits<long double>::mantissa_t) 3422 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise. 3423 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t 3424 and uint32_t explicit. Simplify the extraction of mantissa, 3425 exponent and sign bit. 3426 34272021-03-11 Jonathan Wakely <jwakely@redhat.com> 3428 3429 * include/std/barrier (barrier::arrival_token): New move-only 3430 class that encapsulates the underlying token value. 3431 34322021-03-11 Jonathan Wakely <jwakely@redhat.com> 3433 3434 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute 3435 instead of unqualified() method. 3436 34372021-03-11 Jonathan Wakely <jwakely@redhat.com> 3438 3439 PR libstdc++/99537 3440 * include/std/stop_token (_Stop_state_t::_M_release_ownership): 3441 Use acq_rel memory ordering. 3442 34432021-03-11 Jonathan Wakely <jwakely@redhat.com> 3444 3445 PR libstdc++/99533 3446 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new 3447 helper function to check for permission denied errors. 3448 * src/filesystem/dir.cc (recursive_directory_iterator): 3449 Likewise. 3450 * src/filesystem/dir-common.h (is_permission_denied_error): New 3451 helper function. 3452 34532021-03-11 Jonathan Wakely <jwakely@redhat.com> 3454 3455 PR libstdc++/99536 3456 * include/bits/random.h (normal_distribution): Use 3457 default-initializer for _M_saved and _M_saved_available. 3458 34592021-03-10 John David Anglin <danglin@gcc.gnu.org> 3460 3461 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to 3462 link with libatomic. 3463 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise. 3464 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise. 3465 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise. 3466 * testsuite/30_threads/barrier/arrive.cc: Likewise. 3467 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise. 3468 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise. 3469 * testsuite/30_threads/barrier/completion.cc: Likewise. 3470 * testsuite/30_threads/latch/3.cc: Likewise. 3471 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise. 3472 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise. 3473 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise. 3474 34752021-03-10 Jonathan Wakely <jwakely@redhat.com> 3476 3477 PR libstdc++/99413 3478 * include/bits/align.h: Include debug/assertions.h. 3479 * include/bits/codecvt.h: Include bits/c++config.h. 3480 * include/bits/enable_special_members.h: Likewise. 3481 * include/bits/erase_if.h: Likewise. 3482 * include/bits/functional_hash.h: Include <type_traits>. 3483 * include/bits/invoke.h: Include bits/move.h. 3484 * include/bits/ostream_insert.h: Include bits/exception_defines.h. 3485 * include/bits/parse_numbers.h: Include <type_traits>. 3486 * include/bits/predefined_ops.h: Include bits/c++config.h. 3487 * include/bits/range_access.h: Include bits/stl_iterator.h. 3488 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h. 3489 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h. 3490 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h. 3491 * include/bits/uniform_int_dist.h: Include bits/concept_check.h. 3492 * include/bits/unique_lock.h: Include bits/std_mutex.h. 3493 * include/debug/assertions.h: Include bits/c++config.h. 3494 34952021-03-10 Jonathan Wakely <jwakely@redhat.com> 3496 3497 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove. 3498 (ranges::equal_to, ranges::not_equal_to): Do not constrain 3499 with __eq_builtin_ptr_cmp. 3500 (ranges::less, ranges::greater, ranges::less_equal) 3501 (ranges::greater_equal): Do not constrain with 3502 __less_builtin_ptr_cmp. 3503 * libsupc++/compare (compare_three_way): Do not constrain with 3504 __3way_builtin_ptr_cmp. 3505 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to... 3506 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here. 3507 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test. 3508 35092021-03-10 Jonathan Wakely <jwakely@redhat.com> 3510 3511 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for 3512 C++20 calendar types. 3513 35142021-03-06 Jakub Jelinek <jakub@redhat.com> 3515 3516 PR libstdc++/99396 3517 * include/std/bit (__rotl, __rotr): Add optimized variants for power of 3518 two _Nd which the compiler can pattern match the rotates. 3519 35202021-03-04 Jonathan Wakely <jwakely@redhat.com> 3521 3522 PR libstdc++/99382 3523 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc: 3524 Make storage larger than required. Verify no write to the last 3525 element. 3526 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc: 3527 Likewise. 3528 35292021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 3530 3531 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate. 3532 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt: 3533 Likewise. 3534 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise. 3535 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt: 3536 Likewise. 3537 35382021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 3539 3540 * include/experimental/bits/simd.h: Replace reserved _X, _B by 3541 _Xp, _Bp. 3542 * include/experimental/bits/simd_builtin.h: Likewise. 3543 * include/experimental/bits/simd_x86.h: Likewise. 3544 35452021-02-27 Jonathan Wakely <jwakely@redhat.com> 3546 3547 PR libstdc++/99301 3548 * include/std/chrono (year_month_day::_M_days_since_epoch()): 3549 Convert chrono::month and chrono::day to unsigned before 3550 converting to uint32_t. 3551 35522021-02-25 Jonathan Wakely <jwakely@redhat.com> 3553 3554 * include/std/chrono (year_month_day::_S_from_days): Perform 3555 all calculations with type uint32_t. 3556 35572021-02-25 Jonathan Wakely <jwakely@redhat.com> 3558 3559 * doc/xml/manual/abi.xml: Document versioning for GCC 11. 3560 * doc/html/manual/abi.html: Regenerate. 3561 35622021-02-25 Jonathan Wakely <jwakely@redhat.com> 3563 3564 PR libstdc++/99270 3565 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to 3566 FILE instead of FILE. 3567 35682021-02-25 Andreas Schwab <schwab@suse.de> 3569 3570 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update. 3571 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update. 3572 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update. 3573 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update. 3574 35752021-02-25 Jonathan Wakely <jwakely@redhat.com> 3576 3577 PR libstdc++/99265 3578 * include/std/chrono (year_month_day::_S_from_days): Cast long 3579 to int explicitly. 3580 35812021-02-25 Jonathan Wakely <jwakely@redhat.com> 3582 3583 * include/std/utility (to_underlying): Define. 3584 * include/std/version (__cpp_lib_to_underlying): Define. 3585 * testsuite/20_util/to_underlying/1.cc: New test. 3586 * testsuite/20_util/to_underlying/version.cc: New test. 3587 35882021-02-24 Jonathan Wakely <jwakely@redhat.com> 3589 3590 PR libstdc++/99261 3591 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args 3592 before value to be printed. 3593 35942021-02-24 Patrick Palka <ppalka@redhat.com> 3595 3596 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision): 3597 Relax the condition that guards the printf code path to accept 3598 F128_type as well as long double. 3599 36002021-02-24 Cassio Neri <cassio.neri@gmail.com> 3601 3602 * include/std/chrono (year_month_day_last:day): New 3603 implementation. 3604 36052021-02-24 Cassio Neri <cassio.neri@gmail.com> 3606 3607 * include/std/chrono (year::is_leap): New implementation. 3608 * testsuite/std/time/year/2.cc: New test. 3609 36102021-02-24 Cassio Neri <cassio.neri@gmail.com> 3611 3612 * include/std/chrono (year_month_day::_M_days_since_epoch): 3613 New implementation. 3614 * testsuite/std/time/year_month_day/4.cc: New test. 3615 36162021-02-24 Cassio Neri <cassio.neri@gmail.com> 3617 3618 * include/std/chrono (year_month_day::_S_from_days): New 3619 implementation. 3620 * testsuite/std/time/year_month_day/3.cc: New test. 3621 36222021-02-24 Patrick Palka <ppalka@redhat.com> 3623 3624 PR libstdc++/98384 3625 * testsuite/20_util/to_chars/long_double.cc: Include <optional>. 3626 (test01): Simplify verifying the nearby values by using a 3627 2-iteration loop and a dedicated output buffer to check that the 3628 nearby values are different. Factor out the printf-based 3629 verification into a local function, and check that the leading 3630 hex digits agree before comparing to the output of printf. Also 3631 verify the output by round-tripping it through from_chars. 3632 36332021-02-24 Jonathan Wakely <jwakely@redhat.com> 3634 3635 PR libstdc++/98389 3636 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars 3637 symbols for long double arguments mangled as 'g'. 3638 * config/os/gnu-linux/ldbl-extra.ver: Likewise. 3639 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise. 3640 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]: 3641 Use -mabi=ibmlongdouble for floating_to_chars.cc. 3642 * src/c++17/Makefile.in: Regenerate. 3643 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128): 3644 New type defining type traits of IEEE binary128 format. 3645 (floating_type_traits<__float128>): Define specialization. 3646 (floating_type_traits<long double>): Define in terms of 3647 floating_type_traits_binary128 when appropriate. 3648 (floating_to_shortest_scientific): Handle __float128. 3649 (sprintf_ld): New function template for printing a long double 3650 or __ieee128 value using sprintf. 3651 (__floating_to_chars_shortest, __floating_to_chars_precision): 3652 Use sprintf_ld. 3653 (to_chars): Define overloads for __float128. 3654 36552021-02-24 Jonathan Wakely <jwakely@redhat.com> 3656 3657 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*. 3658 36592021-02-23 Martin Sebor <msebor@redhat.com> 3660 3661 PR c++/99074 3662 * libsupc++/dyncast.cc (__dynamic_cast): Return null when 3663 first argument is null. 3664 36652021-02-23 Jakub Jelinek <jakub@redhat.com> 3666 3667 PR libstdc++/99181 3668 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New 3669 test. 3670 36712021-02-23 Jakub Jelinek <jakub@redhat.com> 3672 3673 PR libstdc++/99181 3674 * include/bits/char_traits.h (char_traits<char>::compare): For 3675 constexpr evaluation don't call 3676 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop 3677 directly. 3678 36792021-02-23 Jakub Jelinek <jakub@redhat.com> 3680 3681 PR libstdc++/97549 3682 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend. 3683 36842021-02-23 Patrick Palka <ppalka@redhat.com> 3685 3686 PR libstdc++/98384 3687 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract 3688 the high- and low-order parts from an IBM long double value 3689 in an endian-agnostic way. 3690 36912021-02-19 Jonathan Wakely <jwakely@redhat.com> 3692 3693 * include/bits/atomic_wait.h (__thread_relax()): Call 3694 __thread_yield() not __gthread_yield(). 3695 36962021-02-15 Jonathan Wakely <jwakely@redhat.com> 3697 3698 * include/bits/atomic_wait.h (__thread_yield()): Check 3699 _GLIBCXX_HAS_GTHREADS before using __gthread_yield. 3700 (__thread_relax()): Use __thread_yield() instead of repeating 3701 the preprocessor checks for __gthread_yield. 3702 37032021-02-15 Jonathan Wakely <jwakely@redhat.com> 3704 3705 * include/std/mutex (once_flag::_M_activate()): Add explicit 3706 return statement for passive case. 3707 (once_flag::_M_finish(bool)): Use reserved name for parameter. 3708 37092021-02-14 Jonathan Wakely <jwakely@redhat.com> 3710 3711 PR libstdc++/99096 3712 * testsuite/util/testsuite_fs.h: Always include <unistd.h>. 3713 37142021-02-12 Jonathan Wakely <jwakely@redhat.com> 3715 3716 PR libstdc++/88881 3717 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround. 3718 37192021-02-12 Jonathan Wakely <jwakely@redhat.com> 3720 3721 * doc/xml/manual/status_cxx2014.xml: Document implementation 3722 specific properties of std::experimental::filesystem::rename. 3723 * doc/xml/manual/status_cxx2017.xml: Document implementation 3724 specific properties of std::filesystem::rename. 3725 * doc/html/*: Regenerate. 3726 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour 3727 for directories on Windows. 3728 * src/filesystem/ops-common.h (__gnu_posix::rename): Use 3729 MoveFileExW on Windows. 3730 * testsuite/27_io/filesystem/operations/rename.cc: New test. 3731 * testsuite/experimental/filesystem/operations/rename.cc: New test. 3732 37332021-02-12 Jonathan Wakely <jwakely@redhat.com> 3734 3735 * testsuite/util/testsuite_fs.h (nonexistent_path): Add 3736 random number to the path. 3737 37382021-02-12 Jonathan Wakely <jwakely@redhat.com> 3739 3740 * include/experimental/internet (address_v6::to_string): Include 3741 scope ID in string. 3742 * testsuite/experimental/net/internet/address/v6/members.cc: 3743 Test to_string() results. 3744 37452021-02-12 Jonathan Wakely <jwakely@redhat.com> 3746 3747 * include/experimental/internet (address_v6::any): Avoid using 3748 memcpy in constexpr function. 3749 (address_v6::loopback): Likewise. 3750 (make_address_v6): Fix missing return statements on error paths. 3751 * include/experimental/io_context: Avoid -Wdangling-else 3752 warning. 3753 * testsuite/experimental/net/internet/address/v4/members.cc: 3754 Remove unused variables. 3755 * testsuite/experimental/net/internet/address/v6/members.cc: 3756 New test. 3757 37582021-02-12 Jonathan Wakely <jwakely@redhat.com> 3759 3760 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter): 3761 Add unused attribute to parameter. 3762 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq): 3763 Likewise. 3764 37652021-02-12 Jonathan Wakely <jwakely@redhat.com> 3766 3767 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail 3768 if -fno-rtti is used. 3769 * testsuite/30_threads/async/forced_unwind.cc: Expect test 3770 to abort if -fno-rtti is used. 3771 37722021-02-12 Jonathan Wakely <jwakely@redhat.com> 3773 3774 * testsuite/util/testsuite_allocator.h (memory_resource): 3775 Remove requirement for RTTI and exceptions to be enabled. 3776 37772021-02-12 Jonathan Wakely <jwakely@redhat.com> 3778 3779 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use 3780 static_cast when RTTI is disabled. 3781 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc: 3782 Likewise. 3783 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc: 3784 Likewise. 3785 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc: 3786 Likewise. 3787 * testsuite/27_io/basic_stringstream/str/char/2.cc: 3788 Likewise. 3789 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc: 3790 Likewise. 3791 37922021-02-12 Jonathan Wakely <jwakely@redhat.com> 3793 3794 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter 3795 as unused and only use dynamic_cast when RTTI is enabled. 3796 37972021-02-12 Jonathan Wakely <jwakely@redhat.com> 3798 3799 PR libstdc++/99077 3800 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)): 3801 Change int parameter to error_code, to match std::ios_failure. 3802 (__throw_ios_failure(const char*, int)): Construct error_code 3803 from int parameter. 3804 38052021-02-11 Jonathan Wakely <jwakely@redhat.com> 3806 3807 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define 3808 new macro. 3809 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new 3810 macro instead of _GLIBCXX_EH_PTR_COMPAT. 3811 (operator==): Likewise. 3812 38132021-02-11 Jonathan Wakely <jwakely@redhat.com> 3814 3815 PR libstdc++/99058 3816 * doc/xml/manual/status_cxx2011.xml: Document when support 3817 became stable. 3818 * doc/xml/manual/status_cxx2014.xml: Likewise. 3819 * doc/xml/manual/status_cxx2017.xml: Likewise. 3820 * doc/html/manual/status.html: Regenerate. 3821 38222021-02-10 Jonathan Wakely <jwakely@redhat.com> 3823 3824 PR libstdc++/88881 3825 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround. 3826 38272021-02-10 Jonathan Wakely <jwakely@redhat.com> 3828 3829 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent) 3830 (fs::remove): Use std::system_category() for error codes from 3831 GetLastError(). 3832 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove): 3833 Likewise. 3834 38352021-02-10 Jonathan Wakely <jwakely@redhat.com> 3836 3837 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo 3838 in __MINGW32__ macro name. 3839 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise. 3840 * testsuite/27_io/filesystem/path/generation/proximate.cc: 3841 Likewise. 3842 * testsuite/27_io/filesystem/path/generation/relative.cc: 3843 Likewise. 3844 * testsuite/util/testsuite_fs.h: Likewise. 3845 38462021-02-09 François Dumont <fdumont@gcc.gnu.org> 3847 3848 * include/bits/stl_tree.h 3849 (__has_is_transparent, __has_is_transparent_t): Move... 3850 * include/bits/stl_function.h: ...here. 3851 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New.. 3852 (_Hashtable_base<>::_M_equals_tr): New. 3853 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr, 3854 _Hashtable<>::_M_equal_range_tr): New member function templates to perform 3855 heterogeneous lookup. 3856 (_Hashtable<>::_M_find_before_node_tr): New. 3857 (_Hashtable<>::_M_find_node_tr): New. 3858 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>, 3859 unordered_map::contains<>, unordered_map::equal_range<>): New member function 3860 templates to perform heterogeneous lookup. 3861 (unordered_multimap::find<>, unordered_multimap::count<>, 3862 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise. 3863 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>, 3864 unordered_set::contains<>, unordered_set::equal_range<>): Likewise. 3865 (unordered_multiset::find<>, unordered_multiset::count<>, 3866 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise. 3867 * include/debug/unordered_map 3868 (unordered_map::find<>, unordered_map::equal_range<>): Likewise. 3869 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise. 3870 * include/debug/unordered_set 3871 (unordered_set::find<>, unordered_set::equal_range<>): Likewise. 3872 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise. 3873 * testsuite/23_containers/unordered_map/operations/1.cc: New test. 3874 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test. 3875 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test. 3876 * testsuite/23_containers/unordered_set/operations/1.cc: New test. 3877 38782021-02-09 François Dumont <fdumont@gcc.gnu.org> 3879 3880 * include/bits/stl_deque.h 3881 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with 3882 a null pointer test. 3883 38842021-02-09 Jonathan Wakely <jwakely@redhat.com> 3885 3886 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove 3887 test directory after making it writable again. 3888 * testsuite/experimental/filesystem/operations/remove_all.cc: 3889 Likewise. 3890 38912021-02-09 Jonathan Wakely <jwakely@redhat.com> 3892 3893 PR libstdc++/99021 3894 * include/std/coroutine (coroutine_handle<P>::from_address): Add 3895 noexcept. 3896 38972021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com> 3898 3899 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>. 3900 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t. 3901 39022021-02-09 Jakub Jelinek <jakub@redhat.com> 3903 3904 PR middle-end/98465 3905 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s 3906 points to the characters moved by earlier _S_move, compute the source 3907 address using expression based on the __p pointer rather than __s 3908 pointer. 3909 39102021-02-03 Jonathan Wakely <jwakely@redhat.com> 3911 3912 * testsuite/19_diagnostics/error_code/operators/not_equal.cc: 3913 Add comparison with same category and different values. 3914 * testsuite/19_diagnostics/error_code/operators/less.cc: 3915 Likewise. Fix comparison involving different categories. 3916 * testsuite/19_diagnostics/error_code/operators/three_way.cc: 3917 Likewise. 3918 * testsuite/19_diagnostics/error_condition/operators/less.cc: 3919 Add comment. 3920 * testsuite/19_diagnostics/error_condition/operators/three_way.cc: 3921 Likewise. 3922 39232021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com> 3924 3925 * include/experimental/bits/simd_neon.h: Replace repeated vpadd 3926 calls with a single vaddv for aarch64. 3927 39282021-02-03 Matthias Kretz <kretz@kde.org> 3929 3930 * testsuite/Makefile.am: Warn about the workaround. Add 3931 -fno-tree-vrp to CXXFLAGS passed to the check_simd script. 3932 Improve initial user feedback from make check-simd. 3933 * testsuite/Makefile.in: Regenerated. 3934 39352021-02-03 Matthias Kretz <kretz@kde.org> 3936 3937 * include/experimental/bits/simd.h: Add __detail::_Minimum and 3938 __detail::_Maximum to use them as _BinaryOperation to _S_reduce. 3939 Add hmin and hmax overloads for simd and const_where_expression. 3940 * include/experimental/bits/simd_scalar.h 3941 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation 3942 parameter const-ref to allow calling _S_reduce with an rvalue. 3943 * testsuite/experimental/simd/tests/reductions.cc: Add tests for 3944 hmin and hmax. Since the compiler statically determined that all 3945 tests pass, repeat the test after a call to make_value_unknown. 3946 39472021-02-03 Matthias Kretz <kretz@kde.org> 3948 3949 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add 3950 instruction pointer data member. Ensure that the `if (m_failed)` 3951 branch is always inlined into the calling code. The body of the 3952 conditional can still be a function call. Move the get_ip call 3953 into the verify ctor to simplify the ctor calls. 3954 (COMPARE): Don't mention the use of all_of for reduction of a 3955 simd_mask. It only distracts from the real issue. 3956 39572021-02-03 Matthias Kretz <kretz@kde.org> 3958 3959 * testsuite/experimental/simd/driver.sh: Abstract reading test 3960 options into read_src_option function. Read skip, only, 3961 expensive, and xfail via read_src_option. Add timeout and 3962 timeout-factor options and adjust timeout variable accordingly. 3963 * testsuite/experimental/simd/tests/loadstore.cc: Set 3964 timeout-factor 2. 3965 39662021-02-03 Matthias Kretz <kretz@kde.org> 3967 3968 * testsuite/experimental/simd/driver.sh: When handling the pipe 3969 to log (and on verbose to stdout) count the lines. If it exceeds 3970 1000 log the issue and exit 125, which is then handled as a 3971 failure. 3972 39732021-02-03 Matthias Kretz <kretz@kde.org> 3974 3975 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip: 3976 markup for long double on powerpc64*. 3977 39782021-02-03 Matthias Kretz <kretz@kde.org> 3979 3980 * include/experimental/bits/simd.h: Add __have_power10vec 3981 conditional on _ARCH_PWR10. 3982 * include/experimental/bits/simd_builtin.h: Forward declare 3983 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is 3984 defined. 3985 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the 3986 _SuperImpl for optimizations and correctness. 3987 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc. 3988 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10. 3989 Otherwise, for >=int use -vec_sums divided by a sizeof factor. 3990 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries. 3991 39922021-02-03 Matthias Kretz <kretz@kde.org> 3993 3994 * testsuite/experimental/simd/driver.sh: Remove executable on 3995 SIGINT. Process compiler and test executable output: In verbose 3996 mode print messages immediately, limited to 1000 lines and 3997 breaking long lines to below $COLUMNS (or 1024 if not set). 3998 Communicating the exit status of the compiler / test with the 3999 necessary pipe is done via a message through stdout/-in. 4000 40012021-02-03 Matthias Kretz <kretz@kde.org> 4002 4003 * testsuite/Makefile.am: Ensure .simd.summary is empty before 4004 collecting a new summary. 4005 * testsuite/Makefile.in: Regenerate. 4006 40072021-02-03 Matthias Kretz <kretz@kde.org> 4008 4009 * testsuite/experimental/simd/generate_makefile.sh: Use 4010 different variables internally than documented for user 4011 overrides. This makes internal append/prepend work as intended. 4012 40132021-02-03 Matthias Kretz <kretz@kde.org> 4014 4015 * testsuite/experimental/simd/driver.sh (verify_test): Print 4016 test output on run xfail. Do not repeat lines from the log that 4017 were already printed on stdout. 4018 (test_selector): Make the compiler flags pattern usable as a 4019 substring selector. 4020 (toplevel): Trap on SIGINT and remove the log and sum files. 4021 Call timout with --foreground to quickly terminate on SIGINT. 4022 * testsuite/experimental/simd/generate_makefile.sh: Simplify run 4023 targets via target patterns. Default DRIVEROPTS to -v for run 4024 targets. Remove log and sum files after completion of the run 4025 target (so that it's always recompiled). 4026 Place help text into text file for reasonable 'make help' 4027 performance. 4028 40292021-02-03 Matthias Kretz <kretz@kde.org> 4030 4031 * include/experimental/bits/simd.h: Remove unnecessary static 4032 assertion. Allow sizeof(8) integer __intrinsic_type to enable 4033 the necessary mask type. 4034 40352021-02-03 Matthias Kretz <kretz@kde.org> 4036 4037 * include/experimental/bits/simd.h: Let __intrinsic_type<long 4038 double, N> be valid if sizeof(long double) == sizeof(double) and 4039 use a __vector double as member type. 4040 40412021-02-03 Matthias Kretz <kretz@kde.org> 4042 4043 * include/experimental/bits/simd.h (__is_intrinsic_type): New 4044 internal type trait. Alias for __is_vector_type on x86. 4045 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for 4046 __vector_type. 4047 (__intrin_bitcast): Allow casting to & from vector & intrinsic 4048 types. 4049 (__intrinsic_type): Explicitly specialize for NEON intrinsic 4050 vector types. 4051 40522021-02-03 Matthias Kretz <kretz@kde.org> 4053 4054 * testsuite/experimental/simd/driver.sh: Implement skip, only, 4055 expensive, and xfail markers. They can select on type, ABI tag 4056 subset number, target-triplet, and compiler flags. 4057 * testsuite/experimental/simd/generate_makefile.sh: The summary 4058 now includes lines for unexpected passes and expected failures. 4059 If the skip or only markers are only conditional on the type, do 4060 not generate rules for those types. 4061 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive 4062 for ABI tag subsets 1-9. 4063 * testsuite/experimental/simd/tests/algorithms.cc: Ditto. 4064 * testsuite/experimental/simd/tests/broadcast.cc: Ditto. 4065 * testsuite/experimental/simd/tests/casts.cc: Ditto. 4066 * testsuite/experimental/simd/tests/generator.cc: Ditto. 4067 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto. 4068 * testsuite/experimental/simd/tests/loadstore.cc: Ditto. 4069 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto. 4070 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto. 4071 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto. 4072 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto. 4073 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto. 4074 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto. 4075 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto. 4076 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto. 4077 * testsuite/experimental/simd/tests/operators.cc: Ditto. 4078 * testsuite/experimental/simd/tests/reductions.cc: Ditto. 4079 * testsuite/experimental/simd/tests/simd.cc: Ditto. 4080 * testsuite/experimental/simd/tests/split_concat.cc: Ditto. 4081 * testsuite/experimental/simd/tests/splits.cc: Ditto. 4082 * testsuite/experimental/simd/tests/where.cc: Ditto. 4083 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In 4084 addition replace "test only floattypes" marker by unconditional 4085 "float|double|ldouble" only marker. 4086 * testsuite/experimental/simd/tests/frexp.cc: Ditto. 4087 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto. 4088 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc: 4089 Ditto. 4090 * testsuite/experimental/simd/tests/logarithm.cc: Ditto. 4091 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto. 4092 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto. 4093 * testsuite/experimental/simd/tests/remqo.cc: Ditto. 4094 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto. 4095 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto. 4096 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In 4097 addition, xfail on run because the reference data is missing. 4098 40992021-02-02 Jonathan Wakely <jwakely@redhat.com> 4100 4101 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell. 4102 * doc/xml/manual/status_cxx2014.xml: Likewise. 4103 * doc/xml/manual/status_cxx2017.xml: Likewise. 4104 * doc/html/manual/status.html: Regenerate. 4105 41062021-02-01 François Dumont <fdumont@gcc.gnu.org> 4107 4108 PR libstdc++/70303 4109 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)): 4110 Return 0 if both iterators are value-initialized. 4111 * testsuite/23_containers/deque/70303.cc: New test. 4112 * testsuite/23_containers/vector/70303.cc: New test. 4113 41142021-02-01 Jonathan Wakely <jwakely@redhat.com> 4115 4116 * doc/xml/manual/status_cxx2011.xml: Update std::call_once 4117 status. 4118 * doc/xml/manual/status_cxx2014.xml: Likewise. 4119 * doc/xml/manual/status_cxx2017.xml: Likewise. Update 4120 std::from_chars and std::to_chars status. Fix formatting. 4121 * doc/html/manual/status.html: Regenerate. 4122 41232021-01-28 Jonathan Wakely <jwakely@redhat.com> 4124 4125 * include/experimental/bits/numeric_traits.h: Update copyright 4126 dates. 4127 * include/experimental/bits/simd.h: Likewise. 4128 * include/experimental/bits/simd_builtin.h: Likewise. 4129 * include/experimental/bits/simd_converter.h: Likewise. 4130 * include/experimental/bits/simd_detail.h: Likewise. 4131 * include/experimental/bits/simd_fixed_size.h: Likewise. 4132 * include/experimental/bits/simd_math.h: Likewise. 4133 * include/experimental/bits/simd_neon.h: Likewise. 4134 * include/experimental/bits/simd_ppc.h: Likewise. 4135 * include/experimental/bits/simd_scalar.h: Likewise. 4136 * include/experimental/bits/simd_x86.h: Likewise. 4137 * include/experimental/bits/simd_x86_conversions.h: Likewise. 4138 * include/experimental/simd: Likewise. 4139 * testsuite/experimental/simd/*: Likewise. 4140 41412021-01-27 Jonathan Wakely <jwakely@redhat.com> 4142 4143 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity. 4144 * doc/html/*: Regenerate. 4145 41462021-01-27 Jonathan Wakely <jwakely@redhat.com> 4147 4148 * testsuite/experimental/simd/generate_makefile.sh: Use printf 4149 instead of echo when printing escape characters. 4150 41512021-01-27 Matthias Kretz <kretz@kde.org> 4152 4153 * scripts/check_simd: New file. This script is called from the 4154 the check-simd target. It determines a set of compiler flags and 4155 simulator setups for calling generate_makefile.sh and passes the 4156 information back to the check-simd target, which recurses to the 4157 generated Makefiles. 4158 * scripts/create_testsuite_files: Remove files below simd/tests/ 4159 from testsuite_files and place them in testsuite_files_simd. 4160 * testsuite/Makefile.am: Add testsuite_files_simd. Add 4161 check-simd target. 4162 * testsuite/Makefile.in: Regenerate. 4163 * testsuite/experimental/simd/driver.sh: New file. This script 4164 compiles and runs a given simd test, logging its output and 4165 status. It uses the timeout command to implement compile and 4166 test timeouts. 4167 * testsuite/experimental/simd/generate_makefile.sh: New file. 4168 This script generates a Makefile which uses driver.sh to compile 4169 and run the tests and collect the logs into a single log file. 4170 * testsuite/experimental/simd/tests/abs.cc: New file. Tests 4171 abs(simd). 4172 * testsuite/experimental/simd/tests/algorithms.cc: New file. 4173 Tests min/max(simd, simd). 4174 * testsuite/experimental/simd/tests/bits/conversions.h: New 4175 file. Contains functions to support tests involving conversions. 4176 * testsuite/experimental/simd/tests/bits/make_vec.h: New file. 4177 Support functions make_mask and make_vec. 4178 * testsuite/experimental/simd/tests/bits/mathreference.h: New 4179 file. Support functions to supply precomputed math function 4180 reference data. 4181 * testsuite/experimental/simd/tests/bits/metahelpers.h: New 4182 file. Support code for SFINAE testing. 4183 * testsuite/experimental/simd/tests/bits/simd_view.h: New file. 4184 * testsuite/experimental/simd/tests/bits/test_values.h: New 4185 file. Test functions to easily drive a test with simd objects 4186 initialized from a given list of values and a range of random 4187 values. 4188 * testsuite/experimental/simd/tests/bits/ulp.h: New file. 4189 Support code to determine the ULP distance of simd objects. 4190 * testsuite/experimental/simd/tests/bits/verify.h: New file. 4191 Test framework for COMPARE'ing simd objects and instantiating 4192 the test templates with value_type and ABI tag. 4193 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test 4194 simd broadcasts. 4195 * testsuite/experimental/simd/tests/casts.cc: New file. Test 4196 simd casts. 4197 * testsuite/experimental/simd/tests/fpclassify.cc: New file. 4198 Test floating-point classification functions. 4199 * testsuite/experimental/simd/tests/frexp.cc: New file. Test 4200 frexp(simd). 4201 * testsuite/experimental/simd/tests/generator.cc: New file. Test 4202 simd generator constructor. 4203 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file. 4204 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim). 4205 * testsuite/experimental/simd/tests/integer_operators.cc: New 4206 file. Test integer operators. 4207 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc: 4208 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and 4209 modf(simd). 4210 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test 4211 (converting) simd loads and stores. 4212 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test 4213 log*(simd). 4214 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file. 4215 Test simd_mask broadcasts. 4216 * testsuite/experimental/simd/tests/mask_conversions.cc: New 4217 file. Test simd_mask conversions. 4218 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New 4219 file. Test simd_mask implicit conversions. 4220 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file. 4221 Test simd_mask loads and stores. 4222 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New 4223 file. Test simd_mask operators convert as specified. 4224 * testsuite/experimental/simd/tests/mask_operators.cc: New file. 4225 Test simd_mask compares, subscripts, and negation. 4226 * testsuite/experimental/simd/tests/mask_reductions.cc: New 4227 file. Test simd_mask reductions. 4228 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test 4229 1-arg math functions on simd. 4230 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test 4231 2-arg math functions on simd. 4232 * testsuite/experimental/simd/tests/operator_cvt.cc: New file. 4233 Test implicit conversions on simd binary operators behave as 4234 specified. 4235 * testsuite/experimental/simd/tests/operators.cc: New file. Test 4236 simd compares, subscripts, not, unary minus, plus, minus, 4237 multiplies, divides, increment, and decrement. 4238 * testsuite/experimental/simd/tests/reductions.cc: New file. 4239 Test reduce(simd). 4240 * testsuite/experimental/simd/tests/remqo.cc: New file. Test 4241 remqo(simd). 4242 * testsuite/experimental/simd/tests/simd.cc: New file. Basic 4243 sanity checks of simd types. 4244 * testsuite/experimental/simd/tests/sincos.cc: New file. Test 4245 sin(simd) and cos(simd). 4246 * testsuite/experimental/simd/tests/split_concat.cc: New file. 4247 Test split(simd) and concat(simd, simd). 4248 * testsuite/experimental/simd/tests/splits.cc: New file. Test 4249 split(simd_mask). 4250 * testsuite/experimental/simd/tests/trigonometric.cc: New file. 4251 Test remaining trigonometric functions on simd. 4252 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New 4253 file. Test trunc(simd), ceil(simd), and floor(simd). 4254 * testsuite/experimental/simd/tests/where.cc: New file. Test 4255 masked operations using where. 4256 42572021-01-27 Matthias Kretz <kretz@kde.org> 4258 4259 * doc/xml/manual/status_cxx2017.xml: Add implementation status 4260 of the Parallelism TS 2. Document implementation-defined types 4261 and behavior. 4262 * include/Makefile.am: Add new headers. 4263 * include/Makefile.in: Regenerate. 4264 * include/experimental/simd: New file. New header for 4265 Parallelism TS 2. 4266 * include/experimental/bits/numeric_traits.h: New file. 4267 Implementation of P1841R1 using internal naming. Addition of 4268 missing IEC559 functionality query. 4269 * include/experimental/bits/simd.h: New file. Definition of the 4270 public simd interfaces and general implementation helpers. 4271 * include/experimental/bits/simd_builtin.h: New file. 4272 Implementation of the _VecBuiltin simd_abi. 4273 * include/experimental/bits/simd_converter.h: New file. Generic 4274 simd conversions. 4275 * include/experimental/bits/simd_detail.h: New file. Internal 4276 macros for the simd implementation. 4277 * include/experimental/bits/simd_fixed_size.h: New file. Simd 4278 fixed_size ABI specific implementations. 4279 * include/experimental/bits/simd_math.h: New file. Math 4280 overloads for simd. 4281 * include/experimental/bits/simd_neon.h: New file. Simd NEON 4282 specific implementations. 4283 * include/experimental/bits/simd_ppc.h: New file. Implement bit 4284 shifts to avoid invalid results for integral types smaller than 4285 int. 4286 * include/experimental/bits/simd_scalar.h: New file. Simd scalar 4287 ABI specific implementations. 4288 * include/experimental/bits/simd_x86.h: New file. Simd x86 4289 specific implementations. 4290 * include/experimental/bits/simd_x86_conversions.h: New file. 4291 x86 specific conversion optimizations. The conversion patterns 4292 work around missing conversion patterns in the compiler and 4293 should be removed as soon as PR85048 is resolved. 4294 * testsuite/experimental/simd/standard_abi_usable.cc: New file. 4295 Test that all (not all fixed_size<N>, though) standard simd and 4296 simd_mask types are usable. 4297 * testsuite/experimental/simd/standard_abi_usable_2.cc: New 4298 file. As above but with -ffast-math. 4299 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests 4300 from the standard test loop. Instead use 4301 check_vect_support_and_set_flags to build simd tests with the 4302 relevant machine flags. 4303 43042021-01-27 Jonathan Wakely <jwakely@redhat.com> 4305 4306 PR libstdc++/66414 4307 * include/bits/string_view.tcc 4308 (basic_string_view::find(const CharT*, size_type, size_type)): 4309 Optimize. 4310 43112021-01-27 Paul Fee <paul.f.fee@gmail.com> 4312 4313 * include/bits/basic_string.h (basic_string::contains): New 4314 member functions. 4315 * include/std/string_view (basic_string_view::contains): 4316 Likewise. 4317 * include/std/version (__cpp_lib_string_contains): Define. 4318 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc: 4319 Remove trailing whitespace. 4320 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc: 4321 Likewise. 4322 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test. 4323 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test. 4324 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test. 4325 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test. 4326 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test. 4327 43282021-01-21 Jonathan Wakely <jwakely@redhat.com> 4329 4330 * src/c++17/Makefile.in: Regenerate. 4331 43322021-01-20 David Edelsohn <dje.gcc@gmail.com> 4333 4334 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast 4335 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to 4336 __lc_type. 4337 (const char* ctype<char>:: is): Same. 4338 43392021-01-18 Jonathan Wakely <jwakely@redhat.com> 4340 4341 PR libstdc++/98725 4342 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to 4343 write to a wide character stream if wide character support is 4344 disabled in the library. 4345 43462021-01-18 Jonathan Wakely <jwakely@redhat.com> 4347 4348 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use 4349 stringbuf not wstringbuf. 4350 43512021-01-18 Jakub Jelinek <jakub@redhat.com> 4352 4353 PR debug/98708 4354 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s): 4355 Compile with -gno-as-loc-support. 4356 * src/c++11/Makefile.in: Regenerated. 4357 43582021-01-16 H.J. Lu <hjl.tools@gmail.com> 4359 4360 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: 4361 Add -fcf-protection=none to -march=i486. 4362 43632021-01-14 François Dumont <fdumont@gcc.gnu.org> 4364 4365 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11 4366 compliant. 4367 43682021-01-14 Alexandre Oliva <oliva@adacore.com> 4369 4370 * testsuite/30_threads/future/members/poll.cc: Calibrate 4371 iteration count. 4372 43732021-01-14 François Dumont <fdumont@gcc.gnu.org> 4374 4375 PR libstdc++/98466 4376 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr. 4377 (_Node_iterator()): Make default. 4378 (_Node_const_iterator()): Make default. 4379 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular 4380 iterator checks. 4381 * include/debug/safe_iterator.h 4382 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized. 4383 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS): 4384 Likewise. 4385 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add 4386 _M_singular checks on input iterators. 4387 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular 4388 checks. 4389 * testsuite/23_containers/deque/debug/98466.cc: New test. 4390 * testsuite/23_containers/unordered_map/debug/98466.cc: New test. 4391 43922021-01-14 Jonathan Wakely <jwakely@redhat.com> 4393 4394 PR libstdc++/98471 4395 * include/bits/fs_path.h (__throw_conversion_error): New 4396 function to throw or abort on character conversion errors. 4397 (__wstr_from_utf8): Move definition after filesystem_error has 4398 been defined. Use __throw_conversion_error. 4399 (path::_S_convert<_EcharT>): Use __throw_conversion_error. 4400 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise. 4401 (path::u8string): Likewise. 4402 44032021-01-14 Jonathan Wakely <jwakely@redhat.com> 4404 4405 * include/std/barrier: Update copyright years. Fix whitespace. 4406 * include/std/version: Fix whitespace. 4407 * testsuite/30_threads/barrier/1.cc: Update copyright years. 4408 * testsuite/30_threads/barrier/2.cc: Likewise. 4409 * testsuite/30_threads/barrier/arrive.cc: Likewise. 4410 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise. 4411 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise. 4412 * testsuite/30_threads/barrier/completion.cc: Likewise. 4413 44142021-01-13 Jonathan Wakely <jwakely@redhat.com> 4415 4416 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array. 4417 44182021-01-10 David Edelsohn <dje.gcc@gmail.com> 4419 4420 PR libstdc++/98613 4421 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive 4422 warning. 4423 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same. 4424 44252021-01-08 Olivier Hainque <hainque@adacore.com> 4426 4427 * testsuite/20_util/bind/ref_neg.cc: Tweak the 4428 dg-prune-output regex for out-of-build-tree contexts. 4429 44302021-01-07 Thomas Rodgers <trodgers@redhat.com> 4431 4432 * doc/doxygen/user.cfg.in: Add new header. 4433 * include/Makefile.am (std_headers): likewise. 4434 * include/Makefile.in: Regenerate. 4435 * include/precompiled/stdc++.h: Add new header. 4436 * include/std/barrier: New file. 4437 * include/std/version: Add __cpp_lib_barrier feature test macro. 4438 * testsuite/30_threads/barrier/1.cc: New test. 4439 * testsuite/30_threads/barrier/2.cc: Likewise. 4440 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise. 4441 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise. 4442 * testsuite/30_threads/barrier/arrive.cc: Likewise. 4443 * testsuite/30_threads/barrier/completion.cc: Likewise. 4444 44452021-01-07 Patrick Palka <ppalka@redhat.com> 4446 4447 PR libstdc++/98384 4448 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl 4449 instead of the non-standard nextupl and nextdownl. 4450 44512021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org> 4452 4453 * configure: Re-generate. 4454 44552021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net> 4456 4457 * include/precompiled/stdc++.h: Add <source_location> to C++20 section. 4458 44592021-01-01 Jakub Jelinek <jakub@redhat.com> 4460 4461 * ChangeLog-2020: Rotate ChangeLog. New file. 4462 4463 4464Copyright (C) 2021 Free Software Foundation, Inc. 4465 4466Copying and distribution of this file, with or without modification, 4467are permitted in any medium without royalty provided the copyright 4468notice and this notice are preserved. 4469