1 2026-06-26 Release Manager 2 3 * GCC 14.4.0 released. 4 5 2026-06-23 Jonathan Wakely <jwakely (a] redhat.com> 6 7 Backported from master: 8 2026-06-23 Jonathan Wakely <jwakely (a] redhat.com> 9 10 * include/bits/chrono.h (std::chrono_literals): Fix typo in 11 comment. 12 13 2026-06-23 Jonathan Wakely <jwakely (a] redhat.com> 14 15 Backported from master: 16 2026-06-23 Jonathan Wakely <jwakely (a] redhat.com> 17 18 * doc/xml/manual/debug_mode.xml: Remove 404 link to stlport 19 website and modernise some text about debug modes in other 20 implementations. 21 * doc/html/manual/debug_mode_design.html: Regenerate. 22 23 2026-06-10 Jakub Jelinek <jakub (a] redhat.com> 24 25 Backported from master: 26 2026-03-18 Jakub Jelinek <jakub (a] redhat.com> 27 28 * include/bits/regex_compiler.h (_Compiler::_M_pop): Uglify ret 29 variable name. 30 31 2026-05-21 Jonathan Wakely <jwakely (a] redhat.com> 32 33 Backported from master: 34 2025-09-26 Jonathan Wakely <jwakely (a] redhat.com> 35 36 PR libstdc++/122062 37 * include/bits/random.tcc (__detail::__normalize): Use void cast 38 for operands of comma operator. 39 (piecewise_linear_distribution): Likewise. 40 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/122062.cc: 41 New test. 42 43 2026-05-21 Xi Ruoyao <xry111 (a] xry111.site> 44 45 Backported from master: 46 2026-02-12 Xi Ruoyao <xry111 (a] xry111.site> 47 Jonathan Wakely <jwakely (a] redhat.com> 48 49 * testsuite/17_intro/badnames.cc (__unused): Do not define. 50 * testsuite/17_intro/names.cc [glibc == 2.43] (__unused): Undef. 51 52 2026-05-21 Jonathan Wakely <jwakely (a] redhat.com> 53 54 Backported from master: 55 2026-05-19 Jonathan Wakely <jwakely (a] redhat.com> 56 57 * src/c++20/tzdata.zi: Import new file from 2026b release. 58 59 2026-05-21 Jonathan Wakely <jwakely (a] redhat.com> 60 61 Backported from master: 62 2026-05-19 Jonathan Wakely <jwakely (a] redhat.com> 63 64 PR libstdc++/125369 65 * include/bits/chrono_io.h (__detail::_Parser::operator()): 66 Check for errors when parsing digits for a %z format. 67 * testsuite/std/time/parse/125369.cc: New test. 68 69 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com> 70 71 Backported from master: 72 2026-04-24 Jonathan Wakely <jwakely (a] redhat.com> 73 74 * include/std/chrono (chrono::__detail::__get_leap_second_info): 75 Update expiry date for leap seconds list. 76 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds): 77 Likewise. 78 * src/c++20/tzdata.zi: Import new file from 2026a release. 79 80 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com> 81 82 Backported from master: 83 2025-12-16 Jonathan Wakely <jwakely (a] redhat.com> 84 85 * include/std/chrono (chrono::__detail::__get_leap_second_info): 86 Update expiry date for leap seconds list. 87 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds): 88 Likewise. 89 * src/c++20/tzdata.zi: Import new file from 2025c release. 90 91 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com> 92 93 Backported from master: 94 2025-06-11 Jonathan Wakely <jwakely (a] redhat.com> 95 96 PR libstdc++/120390 97 * include/bits/stl_construct.h (_Destroy_aux::__destroy_n): New 98 static member function. 99 (_Destroy_aux<true>::__destroy_n): Likewise. 100 (_Destroy_n_aux): Remove. 101 (_Destroy(ForwardIterator, ForwardIterator)): Remove 102 static_assert. Use is_trivially_destructible instead of 103 __has_trivial_destructor. 104 (_Destroy_n): Likewise. Use _Destroy_aux::__destroy_n instead of 105 _Destroy_n_aux::__destroy_n. 106 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc: 107 Adjust dg-error strings. Move destroy_n tests to ... 108 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_n_neg.cc: 109 New test. 110 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: 111 Adjust dg-error strings. 112 * testsuite/23_containers/vector/cons/destructible_neg.cc: 113 Likewise. 114 115 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com> 116 117 Backported from master: 118 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com> 119 120 * include/bits/stl_construct.h (_Destroy(FwdIter, FwdIter)): Use 121 'if constexpr' instead of dispatching to a member function of a 122 class template. 123 (_Destroy_n(FwdIter, Size)): Likewise. 124 (_Destroy_aux, _Destroy_n_aux): Only define for C++98. 125 126 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com> 127 128 Backported from master: 129 2024-12-09 Jonathan Wakely <jwakely (a] redhat.com> 130 131 PR libstdc++/102259 132 * config/io/basic_file_stdio.cc (basic_file::xsgetn): Limit n to 133 _GLIBCXX_MAX_READ_SIZE if that macro is defined. 134 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_MAX_READ_SIZE): 135 Define to INT_MAX-1. 136 * config/os/bsd/freebsd/os_defines.h (_GLIBCXX_MAX_READ_SIZE): 137 Likewise. 138 139 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com> 140 141 Backported from master: 142 2026-03-20 Jonathan Wakely <jwakely (a] redhat.com> 143 144 * src/c++17/fs_path.cc (path::operator+=): Use pointer 145 comparison to detect aliasing instead of a loop. 146 147 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com> 148 149 Backported from master: 150 2025-05-06 Jonathan Wakely <jwakely (a] redhat.com> 151 152 PR libstdc++/120029 153 * src/c++17/fs_path.cc (path::operator+=(const path&)): Handle 154 parameters that alias the path or one of its components. 155 * testsuite/27_io/filesystem/path/concat/120029.cc: New test. 156 * testsuite/experimental/filesystem/path/concat/120029.cc: New 157 test. 158 159 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com> 160 161 * testsuite/std/time/clock/local/io.cc: Call test_format. 162 163 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com> 164 165 Backported from master: 166 2025-05-19 Jonathan Wakely <jwakely (a] redhat.com> 167 168 PR libstdc++/120293 169 * include/bits/chrono_io.h (_M_format_to_ostream): Add special 170 case for local_time convertible to local_days. 171 * testsuite/std/time/clock/local/io.cc: Check formatting of 172 chrono::local_days. 173 174 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com> 175 176 Backported from master: 177 2024-09-06 Jonathan Wakely <jwakely (a] redhat.com> 178 179 * include/bits/chrono_io.h (from_stream): Fix conversions in 180 overloads for gps_time and tai_time. 181 * testsuite/std/time/clock/file/io.cc: Test round tripping using 182 chrono::parse. Add additional std::format tests. 183 * testsuite/std/time/clock/gps/io.cc: Likewise. 184 * testsuite/std/time/clock/local/io.cc: Likewise. 185 * testsuite/std/time/clock/tai/io.cc: Likewise. 186 * testsuite/std/time/clock/utc/io.cc: Likewise. 187 188 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com> 189 190 Backported from master: 191 2024-07-30 Jonathan Wakely <jwakely (a] redhat.com> 192 193 * include/bits/chrono_io.h (__local_fmt_t): Remove unused 194 declaration. 195 (__formatter_chrono::_M_format_to_ostream): Add explicit 196 handling for specializations of __local_time_fmt, including the 197 time zone abbreviation in the output if __is_neg is true. 198 (formatter<chrono::tai_time<D>>::format): Add comment. 199 (formatter<chrono::gps_time<D>>::format): Likewise. 200 (formatter<chrono::__detail::__local_time_fmt::format): Call 201 _M_format with true for the __is_neg flag. 202 * testsuite/std/time/clock/gps/io.cc: Remove unused variable. 203 * testsuite/std/time/clock/local/io.cc: Fix test error that 204 checked tai_time instead of local_time. Add tests for 205 local-time-format-t formatting. 206 * testsuite/std/time/clock/system/io.cc: Check empty 207 chrono-specs. 208 * testsuite/std/time/clock/tai/io.cc: Likewise. 209 * testsuite/std/time/zoned_time/io.cc: Likewise. 210 211 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com> 212 213 Backported from master: 214 2026-02-13 Jonathan Wakely <jwakely (a] redhat.com> 215 216 PR libstdc++/121771 217 * include/std/tuple (tuple::tuple(const Elements&...)): Use 218 type_identity_t to prevent constructor being used for CTAD. 219 (tuple::tuple(allocator_arg_t, const A&, const Elements&...)): 220 Likewise. 221 * testsuite/20_util/tuple/cons/121771.cc: New test. 222 223 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com> 224 225 Backported from master: 226 2026-03-20 Jonathan Wakely <jwakely (a] redhat.com> 227 228 PR libstdc++/122567 229 * src/c++20/tzdb.cc (tzdb::current_zone): Loop over all trailing 230 components of /etc/localtime path. Use readlink instead of 231 std::filesystem::read_symlink. 232 233 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com> 234 235 Backported from master: 236 2026-01-07 Jonathan Wakely <jwakely (a] redhat.com> 237 238 PR libstdc++/123100 239 * include/std/sstream (basic_stringbuf::str()&&): Handle the 240 case where _M_string is not being used for the buffer. 241 * testsuite/27_io/basic_stringbuf/str/char/123100.cc: New test. 242 243 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com> 244 245 Backported from master: 246 2026-05-05 Jonathan Wakely <jwakely (a] redhat.com> 247 248 PR libstdc++/109965 249 * doc/doxygen/mainpage.html: Link to topics.html instead of 250 modules.html 251 252 2026-05-14 Jonathan Wakely <jwakely (a] redhat.com> 253 254 Backported from master: 255 2024-12-18 Jonathan Wakely <jwakely (a] redhat.com> 256 257 PR libstdc++/118088 258 * include/bits/stl_queue.h (priority_queue(priority_queue&&)): 259 Clear the source object after moving from it. 260 (priority_queue(priority_queue&&, const Alloc&)): Likewise. 261 (operator=(priority_queue&&)): Likewise. 262 * testsuite/23_containers/priority_queue/118088.cc: New test. 263 264 2026-04-22 Tomasz Kamiski <tkaminsk (a] redhat.com> 265 266 Backported from master: 267 2026-04-14 Tomasz Kamiski <tkaminsk (a] redhat.com> 268 269 * include/bits/version.def (stdbit_h, stdckdint_h): Define. 270 * include/bits/version.h: Regenerate. 271 * include/c_compatibility/stdbit.h (__cpp_lib_stdbit_h): Define 272 and use it in guards. 273 * include/c_compatibility/stdckdint.h (__cpp_lib_stdckdint_h): 274 Define and use it in guards. 275 276 2026-03-30 Patrick Palka <ppalka (a] redhat.com> 277 278 Backported from master: 279 2025-11-28 Patrick Palka <ppalka (a] redhat.com> 280 281 PR libstdc++/122842 282 * include/bits/ranges_base.h (__access:_CBegin): Define in 283 terms of const_iterator directly, not const_iterator_t. 284 (__access::_CEnd): Likewise in terms of const_sentinel vs 285 const_sentinel_t. 286 (const_iterator_t): Move down definition and define in terms 287 of ranges::cbegin as per LWG 3946. 288 (const_sentinel_t): Likewise in terms of ranges::cend. 289 * testsuite/24_iterators/const_iterator/1.cc (test02): Correct 290 test for int[], std::array and std::vector. Also test 291 std::string. 292 293 2026-03-20 Jonathan Wakely <jwakely (a] redhat.com> 294 295 Backported from master: 296 2026-03-20 Jonathan Wakely <jwakely (a] redhat.com> 297 298 * src/c++20/tzdb.cc [_AIX]: Change #ifndef to #ifdef. 299 300 2026-03-20 Jonathan Wakely <jwakely (a] redhat.com> 301 302 Backported from master: 303 2026-03-20 Jonathan Wakely <jwakely (a] redhat.com> 304 305 PR libstdc++/124568 306 * testsuite/24_iterators/istreambuf_iterator/105580.cc: Add 307 no_pch option. 308 309 2026-03-16 Tomasz Kamiski <tkaminsk (a] redhat.com> 310 311 Backported from master: 312 2026-03-05 Tomasz Kamiski <tkaminsk (a] redhat.com> 313 314 PR libstdc++/124124 315 * testsuite/29_atomics/atomic/cons/zero_padding.cc: Limit size of 316 test types to four bytes. 317 318 2026-03-16 Tomasz Kamiski <tkaminsk (a] redhat.com> 319 320 PR libstdc++/105580 321 * include/std/streambuf (streambuf::gptr, streambuf::egptr) 322 (streambuf::gbump): Surround with pragma disabling -Wnull-dereference. 323 * testsuite/24_iterators/istreambuf_iterator/105580.cc: New test. 324 (cherry picked from commits 325 8758503918a91dacff4dbc7126eced21787fbfc9 326 bfc2b87f8244a13ab00e8e3fe2af1d6d18fcaa36 327 a523d1ecc89dcb7ea205e3de22d00443d4a0d91d) 328 329 2026-03-13 Patrick Palka <ppalka (a] redhat.com> 330 331 Backported from master: 332 2026-02-12 Patrick Palka <ppalka (a] redhat.com> 333 334 PR libstdc++/114865 335 * include/std/atomic (atomic<_Tp>::atomic(_Tp)) [C++11]: 336 Enable __builtin_clear_padding logic. 337 * testsuite/29_atomics/atomic/compare_exchange_padding.cc: Enable 338 this test in earlier modes, including C++11. 339 * testsuite/29_atomics/atomic/cons/zero_padding.cc [C++11]: 340 Enable tests verifying cleared padding bits for a non-static-init 341 std::atomic object. 342 343 2026-03-04 Jonathan Wakely <jwakely (a] redhat.com> 344 345 Backported from master: 346 2026-03-04 Jonathan Wakely <jwakely (a] redhat.com> 347 348 PR libstdc++/124363 349 * include/std/string_view: Adjust comment on #endif to match #if 350 condition. Likewise for header guard. 351 352 2026-02-26 Tomasz Kamiski <tkaminsk (a] redhat.com> 353 354 PR libstdc++/123875 355 * include/bits/atomic_base.h (__atomic_impl::__clear_padding): 356 Use if constexpr unconditionally. 357 (__atomic_float<_Fp>::__atomic_float(_Fp)): Skip __clear_padding 358 call for constant evaluation. 359 * include/std/atomic (atomic<_Tp>::atomic(_Tp)): Likewise. 360 * testsuite/29_atomics/atomic/cons/zero_padding.cc: New test. 361 * testsuite/29_atomics/atomic_float/zero_padding.cc: New test. 362 (cherry picked from commits 363 6b550d69fe7cb62ea6e240ce7a4ba29ce33aa1b1 364 682c95b808724e6f876ea709b873ac6771704d7b 365 060d7c2a9c1fe16d23d98a74287fdb7c73ddb784 366 f3ba5ad088cebe117f857329a35b95d18d97a808) 367 368 2026-02-10 Jonathan Wakely <jwakely (a] redhat.com> 369 370 Backported from master: 371 2025-11-24 Jonathan Wakely <jwakely (a] redhat.com> 372 373 * python/libstdcxx/v6/xmethods.py (ListMethodsMatcher.match): 374 Fix lookup for node type. 375 376 2026-02-10 Jonathan Wakely <jwakely (a] redhat.com> 377 378 Backported from master: 379 2025-11-24 Jonathan Wakely <jwakely (a] redhat.com> 380 381 PR libstdc++/122821 382 * python/libstdcxx/v6/xmethods.py (_versioned_namespace): Remove 383 global variable. 384 (is_specialization_of): Do not use _versioned_namespace. Add 385 __debug:: to regex. 386 387 2026-02-10 Jonathan Wakely <jwakely (a] redhat.com> 388 389 Backported from master: 390 2026-02-10 Jonathan Wakely <jwakely (a] redhat.com> 391 392 PR libstdc++/123991 393 * include/bits/basic_string.h (compare(size_type, size_type, T)): 394 Remove noexcept-specifier. 395 (compare(size_type, size_type, T, size_type, size_type)): 396 Likewise. 397 * include/bits/cow_string.h (compare(size_type, size_type, T)): 398 Remove noexcept-specifier. 399 (compare(size_type, size_type, T, size_type, size_type)): 400 Likewise. 401 * testsuite/21_strings/basic_string/operations/compare/char/123991.cc: 402 New test. 403 * testsuite/21_strings/basic_string/operations/compare/wchar_t/123991.cc: 404 New test. 405 406 2026-02-09 Jonathan Wakely <jwakely (a] redhat.com> 407 408 Backported from master: 409 2026-02-09 Jonathan Wakely <jwakely (a] redhat.com> 410 411 PR libstdc++/124024 412 * include/bits/out_ptr.h (out_ptr): Fix doxygen comment to refer 413 to the right function. 414 (inout_ptr): Improve markup in doxygen comment. 415 416 2026-02-06 Tomasz Kamiski <tkaminsk (a] redhat.com> 417 418 Backported from master: 419 2025-08-26 Tomasz Kamiski <tkaminsk (a] redhat.com> 420 421 PR libstdc++/90192 422 * include/bits/stl_vector.h (vector<T>::_M_fill_append): Declare. 423 (vector<T>::fill): Use _M_fill_append instead of _M_fill_insert. 424 * include/bits/vector.tcc (vector<T>::_M_fill_append): Define 425 (vector<T>::_M_fill_insert): Delegate to _M_fill_append when 426 elements are appended. 427 * testsuite/23_containers/vector/modifiers/moveable.cc: Updated 428 copycount for inserting at the end (appending). 429 * testsuite/23_containers/vector/modifiers/resize.cc: New test. 430 * testsuite/backward/hash_set/check_construct_destroy.cc: Updated 431 copycount, the hash_set constructor uses insert to fill buckets 432 with nullptrs. 433 434 2026-02-05 Tomasz Kamiski <tkaminsk (a] redhat.com> 435 436 Backported from master: 437 2026-01-19 Tomasz Kamiski <tkaminsk (a] redhat.com> 438 439 PR libstdc++/114153 440 * include/bits/ranges_cmp.h (__detail::__less_builtin_ptr_cmp): 441 Add __not_overloaded_spaceship spaceship check. 442 * include/bits/stl_function.h (greater<void>::operator()) 443 (less<void>::operator(), greater_equal<void>::operator()) 444 (less_equal<void>::operator()): Implement using if constexpr. 445 (greater<void>::__S_cmp, less<void>::__S_cmp) 446 (greater_equal<void>::__ptr_comp, less_equal<void>::S_cmp): 447 Remove. 448 (greater<void>::__ptr_cmp, less<void>::__ptr_cmp) 449 (greater_equal<void>::__ptr_comp, less_equal<void>::ptr_cmp): Change 450 tostatic constexpr variable. Define in terms of requires expressions 451 and __not_overloaded_spaceship check. 452 * include/std/concepts: (__detail::__not_overloaded_spaceship): 453 Define. 454 * libsupc++/compare: (__detail::__3way_builtin_ptr_cmp): Use 455 __not_overloaded_spaceship concept. 456 * testsuite/20_util/function_objects/comparisons_pointer_spaceship.cc: New test. 457 458 2026-01-26 Jonathan Wakely <jwakely (a] redhat.com> 459 460 Backported from master: 461 2025-03-13 Jonathan Wakely <jwakely (a] redhat.com> 462 463 * include/Makefile.am: Add stdckdint.h. 464 * include/Makefile.in: Regenerate. 465 * include/c_compatibility/stdckdint.h: New file. 466 * testsuite/26_numerics/stdckdint/1.cc: New test. 467 * testsuite/26_numerics/stdckdint/2_neg.cc: New test. 468 469 2026-01-26 Jonathan Wakely <jwakely (a] redhat.com> 470 471 Backported from master: 472 2025-03-13 Jonathan Wakely <jwakely (a] redhat.com> 473 474 * include/Makefile.am: Add stdbit.h. 475 * include/Makefile.in: Regenerate. 476 * include/c_compatibility/stdbit.h: New file. 477 * testsuite/20_util/stdbit/1.cc: New test. 478 * testsuite/20_util/stdbit/2_neg.cc: New test. 479 480 2026-01-26 Jonathan Wakely <jwakely (a] redhat.com> 481 482 Backported from master: 483 2024-11-27 Jonathan Wakely <jwakely (a] redhat.com> 484 485 PR libstdc++/105857 486 * config/locale/dragonfly/codecvt_members.cc (do_length): Limit 487 size of alloca buffer to 4k. 488 * config/locale/gnu/codecvt_members.cc (do_length): Likewise. 489 * testsuite/22_locale/codecvt/length/wchar_t/105857.cc: New 490 test. 491 492 2026-01-23 Wang Jinghao <zheng.xianyuwang (a] gmail.com> 493 494 Backported from master: 495 2026-01-10 Wang Jinghao <zheng.xianyuwang (a] gmail.com> 496 497 * src/c++11/system_error.cc (system_error_category) [_WIN32]: 498 Use FormatMessageA function instead of FormatMessage macro. 499 * testsuite/19_diagnostics/error_category/system_category.cc: 500 Fix typo in __MINGW32__ macro name. Adjust behavior on the 501 mingw32 target. 502 503 2026-01-22 Jonathan Wakely <jwakely (a] redhat.com> 504 505 Backported from master: 506 2025-12-19 Jonathan Wakely <jwakely (a] redhat.com> 507 508 PR libstdc++/123147 509 * include/bits/chrono_io.h (_Parser::operator()) <%S>: Use a 510 buffer of narrow characters to be parsed by std::from_chars. 511 * testsuite/std/time/parse/parse.cc: Check wchar_t parsing. 512 513 2026-01-22 Jonathan Wakely <jwakely (a] redhat.com> 514 515 Backported from master: 516 2025-12-06 Jonathan Wakely <jwakely (a] redhat.com> 517 518 * include/bits/atomic_wait.h (__detail::__atomic_compare): Use 519 std::addressof instead of &. 520 * include/std/atomic (atomic::wait, atomic::notify_one) 521 (atomic::notify_all): Likewise. 522 523 2025-11-18 Jonathan Wakely <jwakely (a] redhat.com> 524 525 Backported from master: 526 2025-11-17 Jonathan Wakely <jwakely (a] redhat.com> 527 528 PR libstdc++/122726 529 * src/filesystem/ops-common.h [_GLIBCXX_FILESYSTEM_IS_WINDOWS] 530 (rename): Use __last_system_error to set errno accurately. 531 * testsuite/27_io/filesystem/operations/rename.cc: Test 532 error_code matches errc::no_such_file_or_directory. 533 534 2025-11-14 Jonathan Wakely <jwakely (a] redhat.com> 535 536 * include/std/any: Add diagnostic pragmas to disable warning 537 about std::aligned_storage being deprecated. 538 539 2025-11-14 Jonathan Wakely <jwakely (a] redhat.com> 540 541 Backported from master: 542 2024-09-27 Jonathan Wakely <jwakely (a] redhat.com> 543 544 * include/bits/atomic_base.h (__atomic_base<T*>::_M_type_size): 545 Replace overloaded functions with static _S_type_size. 546 * include/std/atomic (atomic<T*>): Use is_object_v instead of 547 is_object. 548 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc: 549 Add dg-warning for -Wpointer-arith warning. 550 551 2025-11-14 Jonathan Wakely <jwakely (a] redhat.com> 552 553 Backported from master: 554 2024-09-27 Jonathan Wakely <jwakely (a] redhat.com> 555 556 * testsuite/20_util/bind/dangling_ref.cc: Add an additional 557 dg-warning for -Wreturn-local-addr warning. 558 * testsuite/30_threads/packaged_task/cons/dangling_ref.cc: 559 Likewise. 560 561 2025-11-14 Jonathan Wakely <jwakely (a] redhat.com> 562 563 Backported from master: 564 2025-11-13 Jonathan Wakely <jwakely (a] redhat.com> 565 566 PR libstdc++/122661 567 * include/bits/forward_list.h (forward_list::assign(I, I)): Fix 568 value category in is_assignable check. 569 * testsuite/23_containers/forward_list/modifiers/122661.cc: 570 New test. 571 572 2025-11-14 Jonathan Wakely <jwakely (a] redhat.com> 573 574 Backported from master: 575 2025-07-08 Jonathan Wakely <jwakely (a] redhat.com> 576 577 PR libstdc++/118681 578 * src/c++17/memory_resource.cc (choose_block_size): New 579 function. 580 (synchronized_pool_resource::do_allocate): Use choose_block_size 581 to determine appropriate block size. 582 (synchronized_pool_resource::do_deallocate): Likewise 583 (unsynchronized_pool_resource::do_allocate): Likewise. 584 (unsynchronized_pool_resource::do_deallocate): Likewise 585 * testsuite/20_util/synchronized_pool_resource/118681.cc: New 586 test. 587 * testsuite/20_util/unsynchronized_pool_resource/118681.cc: New 588 test. 589 590 2025-10-20 Jonathan Wakely <jwakely (a] redhat.com> 591 592 Backported from master: 593 2025-10-20 Jonathan Wakely <jwakely (a] redhat.com> 594 595 PR libstdc++/122322 596 * configure.ac (with_newlib) <*-rtems*>: Remove 597 HAVE_SYS_IOCT4YL_H, _GLIBCXX_USE_LINK, _GLIBCXX_USE_READLINK, 598 _GLIBCXX_USE_SYMLINK, _GLIBCXX_USE_TRUNCATE, and 599 _GLIBCXX_USE_FDOPENDIR. Remove duplicates. 600 * configure: Regenerate. 601 602 2025-10-15 Joel Sherrill <joel (a] rtems.org> 603 604 * configure: Regenerate. 605 * configure.ac (newlib, *-rtems*): Add HAVE_SYS_IOCTL_H, 606 HAVE_SYS_STAT_H, HAVE_SYS_TYPES_H, HAVE_S_ISREG, HAVE_UNISTD_H, 607 HAVE_UNLINKAT, _GLIBCXX_USE_CHMOD, _GLIBCXX_USE_MKDIR, 608 _GLIBCXX_USE_CHDIR, _GLIBCXX_USE_GETCWD, _GLIBCXX_USE_UTIME, 609 _GLIBCXX_USE_LINK, _GLIBCXX_USE_READLINK, _GLIBCXX_USE_SYMLINK, 610 _GLIBCXX_USE_TRUNCATE and _GLIBCXX_USE_FDOPENDIR. 611 612 2025-10-14 Jakub Jelinek <jakub (a] redhat.com> 613 614 Backported from master: 615 2025-09-08 Jakub Jelinek <jakub (a] redhat.com> 616 617 PR libstdc++/121827 618 * include/precompiled/extc++.h: Don't include ext/cast.h which is an 619 internal header. 620 * include/ext/pointer.h: Include bits/c++config.h before 621 #if _GLIBCXX_HOSTED. 622 623 2025-10-06 Jonathan Wakely <jwakely (a] redhat.com> 624 625 PR libstdc++/122168 626 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add 627 dg-error for additional error seen with -Wsystem-headers. 628 629 2025-10-01 Patrick Palka <ppalka (a] redhat.com> 630 631 Backported from master: 632 2025-09-24 Patrick Palka <ppalka (a] redhat.com> 633 634 * testsuite/17_intro/names.cc: Undefine 'u' on s390*-linux. 635 636 2025-10-01 Patrick Palka <ppalka (a] redhat.com> 637 638 Backported from master: 639 2025-09-17 Patrick Palka <ppalka (a] redhat.com> 640 641 * testsuite/20_util/bind/dangling_ref.cc: Compile with 642 -Wsystem-headers. 643 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise. 644 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc: 645 Likewise. 646 * testsuite/30_threads/packaged_task/cons/dangling_ref.cc: 647 Likewise. 648 649 2025-09-15 Jonathan Wakely <jwakely (a] redhat.com> 650 651 Backported from master: 652 2025-09-12 Jonathan Wakely <jwakely (a] redhat.com> 653 654 PR libstdc++/117276 655 * include/pstl/parallel_backend_tbb.h (__func_task::finalize): 656 Make deallocation unconditional. 657 658 2025-09-15 Jonathan Wakely <jwakely (a] redhat.com> 659 660 Backported from master: 661 2025-09-10 Jonathan Wakely <jwakely (a] redhat.com> 662 663 * include/bits/unique_ptr.h: Remove blank line. 664 665 2025-09-09 Tomasz Kamiski <tkaminsk (a] redhat.com> 666 667 Backported from master: 668 2025-09-05 Tomasz Kamiski <tkaminsk (a] redhat.com> 669 670 * doc/html/manual/status.html: Regenerate. 671 * doc/xml/manual/status_cxx2011.xml: Add entry for bad_function_call. 672 * doc/xml/manual/status_cxx2017.xml: Add entries for bad_any_cast 673 and nullptr_t output. Update entry for sf.cmath. Fix stable name for 674 mem.res. 675 676 2025-09-09 Tomasz Kamiski <tkaminsk (a] redhat.com> 677 678 Backported from master: 679 2025-09-05 Tomasz Kamiski <tkaminsk (a] redhat.com> 680 681 * doc/html/manual/status.html: Regenerate the file. 682 * doc/xml/manual/status_cxx2017.xml: Addd more entires. 683 684 2025-09-08 Jonathan Wakely <jwakely (a] redhat.com> 685 686 Backported from master: 687 2025-09-08 Jonathan Wakely <jwakely (a] redhat.com> 688 689 PR libstdc++/120698 690 * doc/xml/manual/configure.xml: Do not claim that vtv is enabled 691 by default. 692 * doc/html/manual/configure.html: Regenerate. 693 694 2025-09-04 Jonathan Wakely <jwakely (a] redhat.com> 695 696 Backported from master: 697 2025-09-03 Jonathan Wakely <jwakely (a] redhat.com> 698 699 PR libstdc++/110853 700 * include/bits/stl_pair.h [C++20] (pair(const T1&, const T2&)): 701 Use std::type_identity_t<T1> for first parameter. 702 * testsuite/20_util/pair/cons/110853.cc: New test. 703 704 2025-09-04 Jonathan Wakely <jwakely (a] redhat.com> 705 706 Backported from master: 707 2025-09-03 Jonathan Wakely <jwakely (a] redhat.com> 708 709 PR libstdc++/121745 710 * include/bits/stl_pair.h (get): Use forward instead of move in 711 std::get<T> overloads for rvalue pairs. 712 * testsuite/20_util/pair/astuple/get_by_type.cc: Check all value 713 categories and cv-qualification. 714 715 2025-09-04 Yihan Wang <yronglin777 (a] gmail.com> 716 717 Backported from master: 718 2025-09-03 Yihan Wang <yronglin777 (a] gmail.com> 719 720 * include/std/expected (expected(U&&)): Add missing constraint 721 as per LWG 4222. 722 * testsuite/20_util/expected/lwg4222.cc: New test. 723 724 2025-09-04 Jonathan Wakely <jwakely (a] redhat.com> 725 726 Backported from master: 727 2024-07-25 Jonathan Wakely <jwakely (a] redhat.com> 728 729 * include/std/expected (expected): Constrain constructors to 730 prevent problematic bool conversions, as per LWG 3836. 731 * testsuite/20_util/expected/lwg3836.cc: New test. 732 733 2025-09-03 Jonathan Wakely <jwakely (a] redhat.com> 734 735 Backported from master: 736 2024-11-01 Jonathan Wakely <jwakely (a] redhat.com> 737 738 * testsuite/23_containers/unordered_set/pr115285.cc: Include 739 missing header for std::vector. 740 741 2025-09-03 Jonathan Wakely <jwakely (a] redhat.com> 742 743 * include/bits/regex_compiler.h (_Compiler::_S_validate): Add 744 diagnostic pragma to disable -Wswitch warning. 745 746 2025-09-03 Jonathan Wakely <jwakely (a] redhat.com> 747 748 Backported from master: 749 2025-08-21 Jonathan Wakely <jwakely (a] redhat.com> 750 751 PR libstdc++/121496 752 * include/std/mutex (__timed_mutex_impl::_M_try_wait_until): 753 Change preprocessor condition to use #if instead of #ifdef. 754 (recursive_timed_mutex::_M_clocklock): Likewise. 755 * testsuite/30_threads/timed_mutex/121496.cc: New test. 756 757 2025-09-03 Jonathan Wakely <jwakely (a] redhat.com> 758 759 Backported from master: 760 2025-08-21 Jonathan Wakely <jwakely (a] redhat.com> 761 762 PR libstdc++/121374 763 * include/std/limits (numeric_limits<__float128>::max_digits10): 764 Fix value. 765 * testsuite/18_support/numeric_limits/128bit.cc: Check value. 766 767 2025-09-03 Jonathan Wakely <jwakely (a] redhat.com> 768 769 Backported from master: 770 2025-07-17 Jonathan Wakely <jwakely (a] redhat.com> 771 772 PR libstdc++/121097 773 * include/c_global/cmath (hypot): Use __promote_3 instead of 774 __promoted. 775 776 2025-06-11 Jonathan Wakely <jwakely (a] redhat.com> 777 778 Backported from master: 779 2025-06-05 Jonathan Wakely <jwakely (a] redhat.com> 780 781 PR libstdc++/120548 782 * include/std/format (__formatter_fp::_M_localize): Do not 783 include a leading sign character in the string to be grouped. 784 * testsuite/std/format/functions/format.cc: Check grouping when 785 sign is present in the output. 786 787 2025-06-11 Jonathan Wakely <jwakely (a] redhat.com> 788 789 Backported from master: 790 2024-09-14 Jonathan Wakely <jwakely (a] redhat.com> 791 792 * include/std/format (__formatter_fp::_M_localize): Add comments 793 and micro-optimize string copy. 794 795 2025-06-11 Jonathan Wakely <jwakely (a] redhat.com> 796 797 Backported from master: 798 2025-06-04 Jonathan Wakely <jwakely (a] redhat.com> 799 800 PR libstdc++/99832 801 * include/bits/chrono.h (system_clock::to_time_t): Add 802 always_inline attribute to be agnostic to the underlying type of 803 time_t. 804 (system_clock::from_time_t): Add always_inline for consistency 805 with to_time_t. 806 * testsuite/20_util/system_clock/99832.cc: New test. 807 808 2025-06-10 Jonathan Wakely <jwakely (a] redhat.com> 809 810 Backported from master: 811 2025-05-20 Jonathan Wakely <jwakely (a] redhat.com> 812 813 * doc/xml/faq.xml: Update URL for archived SGI STL docs. 814 * doc/xml/manual/containers.xml: Likewise. 815 * doc/xml/manual/extensions.xml: Likewise. 816 * doc/xml/manual/using.xml: Likewise. 817 * doc/xml/manual/utilities.xml: Likewise. 818 * doc/html/*: Regenerate. 819 820 2025-06-05 Giuseppe D'Angelo <giuseppe.dangelo (a] kdab.com> 821 822 Backported from master: 823 2025-03-14 Giuseppe D'Angelo <giuseppe.dangelo (a] kdab.com> 824 825 * include/bits/shared_ptr_base.h (lock): Fixed a compile error 826 when calling lock() on a weak_ptr<T[]>, by removing an 827 erroneous usage of element_type from within lock(). 828 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc: 829 Add more tests for array types. 830 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc: 831 Likewise. 832 * testsuite/20_util/shared_ptr/requirements/1.cc: New test. 833 * testsuite/20_util/weak_ptr/requirements/1.cc: New test. 834 835 2025-05-23 Release Manager 836 837 * GCC 14.3.0 released. 838 839 2025-05-13 Jonathan Wakely <jwakely (a] redhat.com> 840 841 Backported from master: 842 2025-05-12 Jonathan Wakely <jwakely (a] redhat.com> 843 844 PR libstdc++/120198 845 * include/bits/version.def (scoped_lock): Do not depend on 846 gthreads or hosted. 847 * include/bits/version.h: Regenerate. 848 * include/std/mutex (scoped_lock): Update comment. 849 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: 850 Remove dg-require-gthreads and use custom lockable type instead 851 of std::mutex. Check that typedef is only present for a single 852 template argument. 853 854 2025-05-12 Jonathan Wakely <jwakely (a] redhat.com> 855 856 * doc/xml/manual/status_cxx2023.xml: Update status of proposal 857 implemented after GCC 14.2 release. 858 * doc/html/manual/status.html: Regenerate. 859 860 2025-05-06 Dhruv Chawla <dhruvc (a] nvidia.com> 861 862 Backported from master: 863 2025-05-02 Dhruv Chawla <dhruvc (a] nvidia.com> 864 865 * include/std/memory: Define __glibcxx_want_addressof_constexpr. 866 * testsuite/20_util/headers/memory/version.cc: Test for macro 867 value. 868 869 2025-04-30 Franois Dumont <frs.dumont (a] gmail.com> 870 871 Backported from master: 872 2025-04-30 Franois Dumont <frs.dumont (a] gmail.com> 873 Jonathan Wakely <jwakely (a] redhat.com> 874 875 * testsuite/lib/libstdc++.exp (v3_target_compile): Strip version namespace 876 from compiler output. 877 * testsuite/20_util/function/cons/70692.cc: Remove now useless __8 namespace 878 pattern. 879 * testsuite/23_containers/map/48101_neg.cc: Likewise. 880 * testsuite/23_containers/multimap/48101_neg.cc: Likewise. 881 882 2025-04-29 Patrick Palka <ppalka (a] redhat.com> 883 884 Backported from master: 885 2025-02-28 Patrick Palka <ppalka (a] redhat.com> 886 887 PR libstdc++/104606 888 * include/std/optional (operator<=>): Revert r14-9771 change. 889 Add constraint checking the validity of the return type 890 compare_three_way_result_t before the three_way_comparable_with 891 constraint. 892 893 2025-04-29 Patrick Palka <ppalka (a] redhat.com> 894 895 Backported from master: 896 2025-02-26 Patrick Palka <ppalka (a] redhat.com> 897 898 PR libstdc++/118083 899 * include/bits/ranges_base.h 900 (ranges::__access::__possibly_const_range): Mention LWG 4027. 901 902 2025-04-29 Patrick Palka <ppalka (a] redhat.com> 903 904 Backported from master: 905 2025-02-25 Patrick Palka <ppalka (a] redhat.com> 906 907 PR libstdc++/118083 908 * include/bits/ranges_base.h 909 (ranges::__access::__possibly_const_range): Adjust logic as per 910 LWG 4027. Add missing input_range constraint. 911 * testsuite/std/ranges/access/cbegin.cc (test05): Verify LWG 912 4027 testcases. 913 * testsuite/std/ranges/access/cdata.cc: Adjust, simplify and 914 consolidate some tests after the above. 915 * testsuite/std/ranges/access/cend.cc: Likewise. 916 * testsuite/std/ranges/access/crbegin.cc: Likewise. 917 * testsuite/std/ranges/access/crend.cc: Likewise. 918 * testsuite/std/ranges/adaptors/join.cc: Likewise. 919 * testsuite/std/ranges/adaptors/take_while.cc: Likewise. 920 * testsuite/std/ranges/adaptors/transform.cc: Likewise. 921 922 2025-04-17 Tomasz Kamiski <tkaminsk (a] redhat.com> 923 924 Backported from master: 925 2025-03-12 Tomasz Kamiski <tkaminsk (a] redhat.com> 926 927 * include/std/format (formatter<_Float16, _CharT>): Define only if 928 _GLIBCXX_FLOAT_IS_IEEE_BINARY32 macro is defined. 929 (formatter<_Float16, _CharT>): As above. 930 (formatter<__gnu_cxx::__bfloat16_t, _CharT>): As above. 931 (formatter<_Float64, _CharT>): Define only if 932 _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 is defined. 933 (basic_format_arg::_S_to_arg_type): Normalize _Float32 and _Float64 934 only to float and double respectivelly. 935 (basic_format_arg::_S_to_enum): Remove handling of _Float32 and _Float64. 936 937 2025-04-16 Jonathan Wakely <jwakely (a] redhat.com> 938 939 * include/std/numeric: Only mention ranges::iota in comment. 940 941 2025-04-16 Jonathan Wakely <jwakely (a] redhat.com> 942 943 * testsuite/17_intro/names.cc: Check ranges is not used as an 944 identifier before C++20. 945 946 2025-04-16 Jonathan Wakely <jwakely (a] redhat.com> 947 948 Backported from master: 949 2025-04-15 Jonathan Wakely <jwakely (a] redhat.com> 950 951 * include/std/ranges (__glibcxx_want_ranges_iota): Do not 952 define. 953 954 2025-04-16 Michael Levine <mlevine55 (a] bloomberg.net> 955 956 Backported from master: 957 2024-06-08 Michael Levine <mlevine55 (a] bloomberg.net> 958 959 PR libstdc++/108760 960 * include/bits/ranges_algo.h (ranges::out_value_result) 961 (ranges::iota_result, ranges::__iota_fn, ranges::iota): Move to 962 <bits/ranges_algobase.h>. 963 * include/bits/ranges_algobase.h (ranges::out_value_result): 964 (ranges::iota_result, ranges::__iota_fn, ranges::iota): Move to 965 here. 966 * include/std/numeric: Include <bits/ranges_algobase.h>. 967 * testsuite/25_algorithms/iota/1.cc: Renamed to ... 968 * testsuite/26_numerics/iota/2.cc: ... here. 969 970 2025-04-16 Jonathan Wakely <jwakely (a] redhat.com> 971 972 Backported from master: 973 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com> 974 975 PR libstdc++/105609 976 * include/bits/ranges_algobase.h (__detail::__assign_one): New 977 helper function. 978 (__copy_or_move, __copy_or_move_backward): Use new function 979 instead of std::__assign_one. 980 * testsuite/25_algorithms/move/constrained.cc: Check that 981 ADL iter_move is used in preference to std::move. 982 * testsuite/25_algorithms/move_backward/constrained.cc: 983 Likewise. 984 985 2025-04-16 Jonathan Wakely <jwakely (a] redhat.com> 986 987 Backported from master: 988 2024-10-18 Jonathan Wakely <jwakely (a] redhat.com> 989 990 * include/bits/ranges_algobase.h (ranges::__assign_one): Remove. 991 (__copy_or_move, __copy_or_move_backward): Use std::__assign_one 992 instead of ranges::__assign_one. 993 994 2025-04-16 Jonathan Wakely <jwakely (a] redhat.com> 995 996 Backported from master: 997 2024-10-13 Jonathan Wakely <jwakely (a] redhat.com> 998 999 PR libstdc++/117121 1000 * include/bits/ranges_algobase.h (copy_backward): Decrement 1001 output iterator before assigning one element through it. 1002 * testsuite/25_algorithms/copy/108846.cc: Ensure the algorithm's 1003 effects are correct for a single memcpyable element. 1004 * testsuite/25_algorithms/copy_backward/108846.cc: Likewise. 1005 * testsuite/25_algorithms/copy_n/108846.cc: Likewise. 1006 1007 2025-04-16 Giuseppe D'Angelo <giuseppe.dangelo (a] kdab.com> 1008 1009 Backported from master: 1010 2024-09-13 Giuseppe D'Angelo <giuseppe.dangelo (a] kdab.com> 1011 1012 PR libstdc++/108846 1013 PR libstdc++/116471 1014 * include/bits/ranges_algobase.h (__assign_one): New helper 1015 function. 1016 (__copy_or_move): Remove a spurious static_assert; use 1017 __assign_one for memcpyable ranges of length 1. 1018 (__copy_or_move_backward): Likewise. 1019 * testsuite/25_algorithms/copy/108846.cc: Extend to range-based 1020 algorithms, and cover both memcpyable and non-memcpyable 1021 cases. 1022 * testsuite/25_algorithms/copy_backward/108846.cc: Likewise. 1023 * testsuite/25_algorithms/copy_n/108846.cc: Likewise. 1024 * testsuite/25_algorithms/move/108846.cc: Likewise. 1025 * testsuite/25_algorithms/move_backward/108846.cc: Likewise. 1026 1027 2025-04-16 Jonathan Wakely <jwakely (a] redhat.com> 1028 1029 Backported from master: 1030 2024-06-07 Jonathan Wakely <jwakely (a] redhat.com> 1031 1032 * include/bits/ranges_algobase.h: Include <bits/stl_algobase.h>. 1033 1034 2025-04-15 Jonathan Wakely <jwakely (a] redhat.com> 1035 1036 Backported from master: 1037 2025-04-14 Jonathan Wakely <jwakely (a] redhat.com> 1038 1039 PR libstdc++/21334 1040 * doc/xml/manual/using.xml: Document that container data race 1041 avoidance rules do not apply to COW std::string. 1042 * doc/html/*: Regenerate. 1043 1044 2025-04-10 Jonathan Wakely <jwakely (a] redhat.com> 1045 1046 Backported from master: 1047 2024-11-07 Jonathan Wakely <jwakely (a] redhat.com> 1048 1049 PR libstdc++/115285 1050 * include/bits/hashtable.h (_Hashtable::_S_forward_key): Remove. 1051 (_Hashtable::_M_insert_unique_aux): Replace _S_forward_key with 1052 a static_cast to a type defined using conditional_t. 1053 (_Hashtable::_M_insert): Replace _ConvertToValueType with a 1054 static_cast to a type defined using conditional_t. 1055 * include/bits/hashtable_policy.h (_ConvertToValueType): Remove. 1056 * testsuite/23_containers/unordered_map/insert/115285.cc: New test. 1057 * testsuite/23_containers/unordered_set/insert/115285.cc: New test. 1058 * testsuite/23_containers/unordered_set/96088.cc: Adjust 1059 expected number of allocations. 1060 1061 2025-04-10 Jonathan Wakely <jwakely (a] redhat.com> 1062 1063 Backported from master: 1064 2024-11-07 Jonathan Wakely <jwakely (a] redhat.com> 1065 1066 * include/bits/stl_pair.h (__is_pair): Define for C++11 and 1067 C++14 as well. 1068 1069 2025-04-10 Franois Dumont <frs.dumont (a] gmail.com> 1070 1071 Backported from master: 1072 2024-10-24 Franois Dumont <frs.dumont (a] gmail.com> 1073 1074 * testsuite/23_containers/unordered_map/96088.cc (test03): Fix increments 1075 value when _GLIBCXX_USE_CXX11_ABI is equal to 0. 1076 1077 2025-04-10 Franois Dumont <frs.dumont (a] gmail.com> 1078 1079 Backported from master: 1080 2024-10-23 Franois Dumont <frs.dumont (a] gmail.com> 1081 1082 PR libstdc++/115285 1083 * include/bits/hashtable.h (_S_forward_key<_Kt>): Always return a temporary 1084 key_type instance. 1085 * testsuite/23_containers/unordered_map/96088.cc: Adapt to additional instanciation. 1086 Also check that mapped_type is not instantiated when there is no insertion. 1087 * testsuite/23_containers/unordered_multimap/96088.cc: Adapt to additional 1088 instanciation. 1089 * testsuite/23_containers/unordered_multiset/96088.cc: Likewise. 1090 * testsuite/23_containers/unordered_set/96088.cc: Likewise. 1091 * testsuite/23_containers/unordered_set/pr115285.cc: New test case. 1092 1093 2025-04-09 Patrick Palka <ppalka (a] redhat.com> 1094 1095 Backported from master: 1096 2025-04-09 Patrick Palka <ppalka (a] redhat.com> 1097 1098 PR libstdc++/115046 1099 PR libstdc++/112490 1100 * include/bits/stl_iterator.h (basic_const_iterator::operator-): 1101 Replace non-dependent basic_const_iterator function parameter with 1102 a dependent one of type basic_const_iterator<_It2> where _It2 1103 matches _It. 1104 * testsuite/std/ranges/adaptors/as_const/1.cc (test04): New test. 1105 1106 2025-04-08 Jonathan Wakely <jwakely (a] redhat.com> 1107 1108 Backported from master: 1109 2025-04-08 Jonathan Wakely <jwakely (a] redhat.com> 1110 1111 PR libstdc++/119671 1112 * include/std/format (__formatter_fp::format): Do not invalidate 1113 __wstr unless _M_localized returns a valid string. 1114 * testsuite/std/format/functions/format.cc: Check wide string 1115 formatting of floating-point types with classic locale. 1116 1117 2025-04-08 Jonathan Wakely <jwakely (a] redhat.com> 1118 1119 Backported from master: 1120 2025-04-07 Jonathan Wakely <jwakely (a] redhat.com> 1121 1122 * doc/doxygen/user.cfg.in (INPUT): Add text_encoding. 1123 1124 2025-04-08 Jonathan Wakely <jwakely (a] redhat.com> 1125 1126 Backported from master: 1127 2025-04-04 Jonathan Wakely <jwakely (a] redhat.com> 1128 1129 PR libstdc++/101587 1130 * include/bits/ranges_uninitialized.h (__detail::__mindist): 1131 Remove. 1132 (ranges::uninitialized_copy, ranges::uninitialized_copy_n) 1133 (ranges::uninitialized_move, ranges::uninitialized_move_n): Use 1134 comparison and assignment instead of __mindist. 1135 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc: 1136 Check with ranges that use integer-like class type for 1137 difference type. 1138 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc: 1139 Likewise. 1140 1141 2025-04-08 Jonathan Wakely <jwakely (a] redhat.com> 1142 1143 Backported from master: 1144 2025-03-27 Jonathan Wakely <jwakely (a] redhat.com> 1145 1146 PR libstdc++/101587 1147 * include/bits/ranges_uninitialized.h (__detail::__mindist): 1148 New function object. 1149 (ranges::uninitialized_copy, ranges::uninitialized_copy_n) 1150 (ranges::uninitialized_move, ranges::uninitialized_move_n): Use 1151 __mindist instead of std::min. 1152 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc: 1153 Check ranges with difference difference types. 1154 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc: 1155 Likewise. 1156 1157 2025-04-07 Patrick Palka <ppalka (a] redhat.com> 1158 1159 Backported from master: 1160 2025-03-13 Patrick Palka <ppalka (a] redhat.com> 1161 1162 PR libstdc++/116440 1163 * include/std/tuple (tuple::tuple(const _Elements&...)) 1164 [C++20]: Turn into a template. 1165 * testsuite/20_util/tuple/116440.C: New test. 1166 1167 2025-04-03 Tomasz Kamiski <tkaminsk (a] redhat.com> 1168 1169 Backported from master: 1170 2025-04-03 Tomasz Kamiski <tkaminsk (a] redhat.com> 1171 1172 * testsuite/std/format/functions/format.cc: Restored line. 1173 1174 2025-04-03 Tomasz Kamiski <tkaminsk (a] redhat.com> 1175 1176 PR libstdc++/119593 1177 * include/bits/unicode.h 1178 (__unicode::__literal_encoding_is_unicode<_CharT>): 1179 Corrected handing for UTF-16 and UTF-32 with "LE" or "BE" suffix. 1180 * include/std/format (__formatter_str::_S_character_width): 1181 Define. 1182 (__formatter_str::_S_character_width): Updated passed char 1183 length. 1184 * testsuite/std/format/functions/format.cc: Test for wchar_t. 1185 1186 2025-04-02 Jonathan Wakely <jwakely (a] redhat.com> 1187 1188 Backported from master: 1189 2025-03-27 Jonathan Wakely <jwakely (a] redhat.com> 1190 1191 PR libstdc++/119469 1192 * include/bits/iterator_concepts.h (_IterMove::__result): Use 1193 decltype-specifier instead of an explicit type. 1194 * testsuite/24_iterators/customization_points/iter_move.cc: 1195 Check results for function references. 1196 1197 2025-04-02 Jonathan Wakely <jwakely (a] redhat.com> 1198 1199 Backported from master: 1200 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com> 1201 1202 PR libstdc++/106612 1203 * include/bits/iterator_concepts.h (_IterMove::__iter_ref_t): 1204 New alias template. 1205 (_IterMove::__result): Use __iter_ref_t instead of 1206 std::iter_reference_t. 1207 (_IterMove::__type): Remove incorrect __dereferenceable 1208 constraint. 1209 (_IterMove::operator()): Likewise. Add correct constraints. Use 1210 __iter_ref_t instead of std::iter_reference_t. Forward parameter 1211 as correct value category. 1212 (iter_swap): Add comments. 1213 * testsuite/24_iterators/customization_points/iter_move.cc: Test 1214 that iter_move is found by ADL and that rvalue arguments are 1215 handled correctly. 1216 1217 2025-04-02 Jonathan Wakely <jwakely (a] redhat.com> 1218 1219 Backported from master: 1220 2025-03-31 Jonathan Wakely <jwakely (a] redhat.com> 1221 1222 PR libstdc++/110498 1223 * include/bits/vector.tcc (vector<bool, A>::_M_reallocate): 1224 Hoist loads of begin() and end() before allocation and use them 1225 to state an unreachable condition. 1226 * testsuite/23_containers/vector/bool/capacity/110498.cc: New 1227 test. 1228 1229 2025-04-02 Jonathan Wakely <jwakely (a] redhat.com> 1230 1231 Backported from master: 1232 2025-03-31 Jonathan Wakely <jwakely (a] redhat.com> 1233 1234 PR libstdc++/114758 1235 * include/bits/vector.tcc (vector<bool, A>::_M_fill_insert): 1236 Hoist loads of begin() and end() before allocation. 1237 * testsuite/23_containers/vector/bool/capacity/114758.cc: New 1238 test. 1239 1240 2025-04-02 Jonathan Wakely <jwakely (a] redhat.com> 1241 1242 Backported from master: 1243 2025-03-28 Jonathan Wakely <jwakely (a] redhat.com> 1244 1245 PR libstdc++/117983 1246 * include/bits/vector.tcc (vector::_M_range_insert): Add 1247 unreachable condition to tell the compiler begin() <= end(). 1248 * testsuite/23_containers/vector/modifiers/insert/117983.cc: New 1249 test. 1250 1251 2025-04-02 Jonathan Wakely <jwakely (a] redhat.com> 1252 1253 Backported from master: 1254 2025-04-01 Jonathan Wakely <jwakely (a] redhat.com> 1255 1256 PR libstdc++/114945 1257 * include/bits/vector.tcc (vector::_M_default_append): Add 1258 unreachable condition so the compiler knows that _M_finish is 1259 not null. 1260 * testsuite/23_containers/vector/capacity/114945.cc: New test. 1261 1262 2025-04-01 Jonathan Wakely <jwakely (a] redhat.com> 1263 1264 PR libstdc++/116212 1265 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc: 1266 Use unsigned for vector size. 1267 1268 2025-04-01 Jonathan Wakely <jwakely (a] redhat.com> 1269 1270 Backported from master: 1271 2024-06-13 Jonathan Wakely <jwakely (a] redhat.com> 1272 1273 * include/bits/ranges_base.h (range_common_reference_t): New 1274 alias template, as per LWG 3860. 1275 * testsuite/std/ranges/range.cc: Check it. 1276 1277 2025-04-01 Jonathan Wakely <jwakely (a] redhat.com> 1278 1279 Backported from master: 1280 2025-01-16 Jonathan Wakely <jwakely (a] redhat.com> 1281 1282 * include/bits/stl_map.h: Check __glibcxx_node_extract instead 1283 of __cplusplus. 1284 * include/bits/stl_multimap.h: Likewise. 1285 * include/bits/stl_multiset.h: Likewise. 1286 * include/bits/stl_set.h: Likewise. 1287 * include/bits/stl_tree.h: Likewise. 1288 1289 2025-04-01 Jonathan Wakely <jwakely (a] redhat.com> 1290 1291 Backported from master: 1292 2025-03-12 Jonathan Wakely <jwakely (a] redhat.com> 1293 1294 * include/std/future (packaged_task::packaged_task(F&&)): Add 1295 static_assert. 1296 * testsuite/30_threads/packaged_task/cons/dangling_ref.cc: Add 1297 dg-error for new static assertion. 1298 * testsuite/30_threads/packaged_task/cons/lwg4154_neg.cc: New 1299 test. 1300 1301 2025-04-01 Jonathan Wakely <jwakely (a] redhat.com> 1302 1303 Backported from master: 1304 2025-03-25 Jonathan Wakely <jwakely (a] redhat.com> 1305 1306 PR libstdc++/118699 1307 * testsuite/27_io/filesystem/operations/copy.cc: Check copying a 1308 file to a directory. 1309 1310 2025-03-31 Jonathan Wakely <jwakely (a] redhat.com> 1311 1312 Backported from master: 1313 2025-03-24 Jonathan Wakely <jwakely (a] redhat.com> 1314 1315 PR libstdc++/101527 1316 * testsuite/24_iterators/common_iterator/101527.cc: New test. 1317 * testsuite/24_iterators/counted_iterator/101527.cc: New test. 1318 1319 2025-03-31 Jonathan Wakely <jwakely (a] redhat.com> 1320 1321 Backported from master: 1322 2025-03-04 Jonathan Wakely <jwakely (a] redhat.com> 1323 1324 * doc/xml/manual/test.xml: Remove stray comma. 1325 * doc/html/manual/test.html: Regenerate. 1326 1327 2025-03-31 Jonathan Wakely <jwakely (a] redhat.com> 1328 1329 Backported from master: 1330 2025-03-07 Jonathan Wakely <jwakely (a] redhat.com> 1331 1332 * include/std/forward_list (erase): Change lambda to have 1333 explicit return type and const parameter type. 1334 * include/std/list (erase): Likewise. 1335 * testsuite/23_containers/forward_list/erasure.cc: Check lambda 1336 is correct. 1337 * testsuite/23_containers/list/erasure.cc: Likewise. 1338 1339 2025-03-31 Jonathan Wakely <jwakely (a] redhat.com> 1340 1341 Backported from master: 1342 2025-03-24 Jonathan Wakely <jwakely (a] redhat.com> 1343 1344 * doc/xml/manual/policy_data_structures_biblio.xml: Fix two 1345 broken links. 1346 * doc/html/manual/policy_data_structures.html: Regenerate. 1347 1348 2025-03-31 Jonathan Wakely <jwakely (a] redhat.com> 1349 1350 Backported from master: 1351 2025-03-25 Jonathan Wakely <jwakely (a] redhat.com> 1352 1353 PR libstdc++/108487 1354 * include/bits/stl_vector.h (vector(initializer_list)): Call 1355 _M_range_initialize_n instead of _M_range_initialize. 1356 (vector(InputIterator, InputIterator)): Use _M_range_initialize_n 1357 for C++20 sized sentinels and forward iterators. 1358 (vector::_M_range_initialize(FwIt, FwIt, forward_iterator_tag)): 1359 Use _M_range_initialize_n. 1360 (vector::_M_range_initialize_n): New function. 1361 * testsuite/23_containers/vector/cons/108487.cc: New test. 1362 1363 2025-03-31 Jonathan Wakely <jwakely (a] redhat.com> 1364 1365 Backported from master: 1366 2025-03-27 Jonathan Wakely <jwakely (a] redhat.com> 1367 1368 * src/c++20/tzdata.zi: Import new file from 2025b release. 1369 1370 2025-03-31 Jonathan Wakely <jwakely (a] redhat.com> 1371 1372 Backported from master: 1373 2025-03-12 Jonathan Wakely <jwakely (a] redhat.com> 1374 1375 * include/std/chrono (__detail::__get_leap_second_info): Update 1376 expiry date for leap seconds list. 1377 * src/c++20/tzdata.zi: Import new file from 2025a release. 1378 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds) 1379 Update expiry date for leap seconds list. 1380 1381 2025-03-26 Jonathan Wakely <jwakely (a] redhat.com> 1382 1383 Backported from master: 1384 2025-03-25 Jonathan Wakely <jwakely (a] redhat.com> 1385 1386 * include/std/ranges (ranges::to): Allow unions as well as 1387 non-union class types. 1388 * testsuite/std/ranges/conv/lwg4229.cc: New test. 1389 1390 2025-03-26 Jonathan Wakely <jwakely (a] redhat.com> 1391 1392 Backported from master: 1393 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com> 1394 1395 PR libstdc++/112803 1396 * include/std/ranges (ranges::to): Add static assertions to 1397 enforce Mandates conditions. 1398 * testsuite/std/ranges/conv/112803.cc: New test. 1399 1400 2025-03-26 Jonathan Wakely <jwakely (a] redhat.com> 1401 1402 Backported from master: 1403 2025-03-25 Jonathan Wakely <jwakely (a] redhat.com> 1404 1405 PR libstdc++/119429 1406 * include/std/format (__format::_Scanner::_Scanner): Cast 1407 default argument to size_t. 1408 1409 2025-03-26 Jonathan Wakely <jwakely (a] redhat.com> 1410 1411 Backported from master: 1412 2024-08-23 Jonathan Wakely <jwakely (a] redhat.com> 1413 1414 PR libstdc++/115939 1415 * include/bits/hashtable_policy.h (_Node_iterator): Add 1416 operator== and operator!=. 1417 (_Node_const_iterator): Likewise. 1418 * testsuite/23_containers/unordered_map/115939.cc: New test. 1419 1420 2025-03-25 Patrick Palka <ppalka (a] redhat.com> 1421 1422 Backported from master: 1423 2025-03-13 Patrick Palka <ppalka (a] redhat.com> 1424 1425 PR libstdc++/119135 1426 * include/std/ranges: Include <utility>. 1427 (views::__detail::__is_ref_view): Replace with ... 1428 (views::__detail::__is_constable_ref_view): ... this. 1429 (views::_AsConst::operator()): Replace bogus use of element_type 1430 in the ref_view branch. 1431 * testsuite/std/ranges/adaptors/as_const/1.cc (test03): Extend 1432 test. 1433 1434 2025-03-21 Jonathan Wakely <jwakely (a] redhat.com> 1435 1436 Backported from master: 1437 2025-03-19 Jonathan Wakely <jwakely (a] redhat.com> 1438 1439 * doc/xml/manual/test.xml: Fix default for -std option. 1440 * doc/html/manual/test.html: Regenerate. 1441 1442 2025-03-21 Jakub Jelinek <jakub (a] redhat.com> 1443 1444 Backported from master: 1445 2025-03-20 Jakub Jelinek <jakub (a] redhat.com> 1446 1447 * testsuite/18_support/numeric_limits/traps.cc (main): Fix comment 1448 typo. 1449 1450 2025-03-21 Jonathan Wakely <jwakely (a] redhat.com> 1451 1452 Backported from master: 1453 2025-03-19 Jonathan Wakely <jwakely (a] redhat.com> 1454 1455 * include/bits/locale_facets_nonio.tcc (time_put::do_put): Fix 1456 typo in comment. 1457 1458 2025-03-18 Patrick Palka <ppalka (a] redhat.com> 1459 1460 Backported from master: 1461 2025-02-28 Patrick Palka <ppalka (a] redhat.com> 1462 1463 PR libstdc++/112490 1464 * include/bits/stl_iterator.h (basic_const_iterator::operator<): 1465 Replace non-dependent basic_const_iterator function parameter with 1466 a dependent one of type basic_const_iterator<_It3> where _It3 1467 matches _It. 1468 (basic_const_iterator::operator>): Likewise. 1469 (basic_const_iterator::operator<=): Likewise. 1470 (basic_const_iterator::operator>=): Likewise. 1471 * testsuite/24_iterators/const_iterator/112490.cc: New test. 1472 1473 2025-03-05 Tomasz Kamiski <tkaminsk (a] redhat.com> 1474 1475 Backported from master: 1476 2025-03-05 Tomasz Kamiski <tkaminsk (a] redhat.com> 1477 1478 PR libstdc++/119121 1479 * include/bits/ranges_util.h (__detail::__pair_like_convertible_from): 1480 Use `_Tp` in `is_reference_v` check 1481 * testsuite/std/ranges/subrange/tuple_like.cc: New tests for 1482 pair-like conversion 1483 1484 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com> 1485 1486 Backported from master: 1487 2025-02-20 Jonathan Wakely <jwakely (a] redhat.com> 1488 1489 PR libstdc++/118811 1490 * src/c++20/tzdb.cc (tzdb_list::_Node): Move definitions of 1491 static data members to new header. 1492 * src/c++20/tzdb_globals.h: New header. Use init_priority 1493 attribute on static data members. 1494 * testsuite/std/time/tzdb_list/pr118811.cc: New test. 1495 1496 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com> 1497 1498 Backported from master: 1499 2024-08-23 Jonathan Wakely <jwakely (a] redhat.com> 1500 1501 * include/std/tuple: Do not include implementation details in 1502 Doxygen documentation. 1503 1504 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com> 1505 1506 Backported from master: 1507 2025-02-27 Jonathan Wakely <jwakely (a] redhat.com> 1508 1509 * include/std/stacktrace (_Impl::_M_allocate): Fix outdated 1510 comment. 1511 1512 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com> 1513 1514 Backported from master: 1515 2024-06-03 Jonathan Wakely <jwakely (a] redhat.com> 1516 1517 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate): 1518 Use __detail::__get_temporary_buffer. 1519 (basic_stacktrace::_Impl::_M_deallocate): Use 1520 __detail::__return_temporary_buffer. 1521 1522 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com> 1523 1524 Backported from master: 1525 2024-06-03 Jonathan Wakely <jwakely (a] redhat.com> 1526 1527 * include/std/string_view (starts_with(basic_string_view)): 1528 Compare lengths first and then call traits_type::compare 1529 directly. 1530 1531 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com> 1532 1533 Backported from master: 1534 2024-06-28 Jonathan Wakely <jwakely (a] redhat.com> 1535 1536 PR libstdc++/104395 1537 * include/bits/new_allocator.h: Disable extended alignment 1538 support in C++98 mode. 1539 * include/bits/stl_tempbuf.h: Likewise. 1540 * include/ext/bitmap_allocator.h: Likewise. 1541 * include/ext/malloc_allocator.h: Likewise. 1542 * include/ext/mt_allocator.h: Likewise. 1543 * include/ext/pool_allocator.h: Likewise. 1544 * testsuite/ext/104395.cc: New test. 1545 1546 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com> 1547 1548 Backported from master: 1549 2024-06-19 Jonathan Wakely <jwakely (a] redhat.com> 1550 1551 * include/bits/stl_tempbuf.h (__get_temporary_buffer): Cast 1552 argument to size_t to handle negative values and suppress 1553 -Wsign-compare warning. 1554 (_Temporary_buffer): Move diagnostic pragmas to new location of 1555 call to std::get_temporary_buffer. 1556 1557 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com> 1558 1559 Backported from master: 1560 2024-06-03 Jonathan Wakely <jwakely (a] redhat.com> 1561 1562 PR libstdc++/105258 1563 * include/bits/stl_tempbuf.h (__detail::__get_temporary_buffer): 1564 New function to do allocation for get_temporary_buffer, with 1565 extended alignment support. 1566 (__detail::__return_temporary_buffer): Support extended 1567 alignment. 1568 (get_temporary_buffer): Use __get_temporary_buffer. 1569 (return_temporary_buffer): Support extended alignment. Add 1570 deprecated attribute. 1571 (_Temporary_buffer): Move allocation and deallocation into a 1572 subobject and remove try-catch block in constructor. 1573 (__uninitialized_construct_buf): Use argument deduction for 1574 value type. 1575 * testsuite/20_util/temporary_buffer.cc: Add dg-warning for new 1576 deprecated warning. 1577 * testsuite/25_algorithms/stable_sort/overaligned.cc: New test. 1578 1579 2025-02-28 Giuseppe D'Angelo <giuseppe.dangelo (a] kdab.com> 1580 1581 Backported from master: 1582 2025-02-07 Giuseppe D'Angelo <giuseppe.dangelo (a] kdab.com> 1583 1584 PR libstdc++/118160 1585 PR libstdc++/100249 1586 * include/bits/ranges_algo.h (__is_permutation_fn): Avoid a 1587 dangling reference by storing the result of the iterator 1588 dereference and the result of the projection in two distinct 1589 variables, in order to lifetime-extend each one. 1590 Forward the projected value to the predicate. 1591 * testsuite/25_algorithms/is_permutation/constrained.cc: Add a 1592 test with a range returning prvalues. Test it in a constexpr 1593 context, in order to rely on the compiler to catch UB. 1594 1595 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com> 1596 1597 Backported from master: 1598 2024-06-21 Jonathan Wakely <jwakely (a] redhat.com> 1599 1600 * include/bits/stl_uninitialized.h (uninitialized_default_construct) 1601 (uninitialized_default_construct_n, uninitialized_value_construct) 1602 (uninitialized_value_construct_n): Qualify calls to prevent ADL. 1603 1604 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com> 1605 1606 Backported from master: 1607 2024-12-18 Jonathan Wakely <jwakely (a] redhat.com> 1608 1609 * include/bits/basic_string.h (__to_wstring_numeric): Add 'i' 1610 and 'I' to mapping. 1611 1612 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com> 1613 1614 Backported from master: 1615 2024-12-09 Jonathan Wakely <jwakely (a] redhat.com> 1616 1617 PR libstdc++/117921 1618 * testsuite/23_containers/set/modifiers/swap/adl.cc: Add 1619 equality comparison for Allocator. 1620 * testsuite/23_containers/unordered_set/modifiers/swap-2.cc: 1621 Likewise. 1622 1623 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com> 1624 1625 Backported from master: 1626 2024-12-05 Jonathan Wakely <jwakely (a] redhat.com> 1627 1628 PR libstdc++/117921 1629 * include/bits/hashtable_policy.h (_Hash_code_base::_M_swap): 1630 Use ADL swap for Hash members. 1631 (_Hashtable_base::_M_swap): Use ADL swap for _Equal members. 1632 * include/bits/stl_tree.h (_Rb_tree::swap): Use ADL swap for 1633 _Compare members. 1634 * testsuite/23_containers/set/modifiers/swap/adl.cc: New test. 1635 * testsuite/23_containers/unordered_set/modifiers/swap-2.cc: New 1636 test. 1637 1638 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com> 1639 1640 Backported from master: 1641 2024-11-27 Jonathan Wakely <jwakely (a] redhat.com> 1642 1643 * include/bits/forward_list.h (forward_list::front): Add 1644 non-empty assertions. 1645 * include/bits/stl_list.h (list::front, list::back): Add 1646 non-empty assertions. 1647 1648 2025-02-28 Jonathan Wakely <jwakely (a] redhat.com> 1649 1650 Backported from master: 1651 2025-01-16 Jonathan Wakely <jwakely (a] redhat.com> 1652 1653 PR libstdc++/118158 1654 * src/c++17/fs_ops.cc (fs::equivalent): Remove error reporting 1655 for is_other(s1) && is_other(s2) case, as per LWG 2937. 1656 * testsuite/27_io/filesystem/operations/pr118158.cc: New test. 1657 1658 2025-01-29 Patrick Palka <ppalka (a] redhat.com> 1659 1660 Backported from master: 1661 2025-01-29 Patrick Palka <ppalka (a] redhat.com> 1662 1663 PR libstdc++/118413 1664 * include/std/ranges (views::__adaptor::_Partial): Adjust 1665 constraints on the "simple" partial specializations to require 1666 is_trivially_copy_constructible_v instead of 1667 is_trivially_copyable_v. 1668 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc (test04): 1669 Extend P2494R2 test. 1670 * testsuite/std/ranges/adaptors/transform.cc (test09): Likewise. 1671 1672 2025-01-27 Giuseppe D'Angelo <giuseppe.dangelo (a] kdab.com> 1673 1674 Backported from master: 1675 2025-01-20 Giuseppe D'Angelo <giuseppe.dangelo (a] kdab.com> 1676 1677 PR libstdc++/118185 1678 PR libstdc++/100249 1679 * include/bits/ranges_algo.h (__clamp_fn): Correctly forward the 1680 projected value to the comparator. 1681 * testsuite/25_algorithms/clamp/118185.cc: New test. 1682 1683 2025-01-16 Jonathan Wakely <jwakely (a] redhat.com> 1684 1685 Backported from master: 1686 2025-01-15 Jonathan Wakely <jwakely (a] redhat.com> 1687 1688 PR libstdc++/109849 1689 * include/bits/vector.tcc (vector::_M_range_insert): Fix 1690 reversed args in length calculation. 1691 1692 2025-01-16 Jonathan Wakely <jwakely (a] redhat.com> 1693 1694 Backported from master: 1695 2024-09-27 Jonathan Wakely <jwakely (a] redhat.com> 1696 1697 * include/bits/istream.tcc: Add diagnostic pragmas around uses 1698 of long long and extern template. 1699 * include/bits/locale_facets.h: Likewise. 1700 * include/bits/locale_facets.tcc: Likewise. 1701 * include/bits/locale_facets_nonio.tcc: Likewise. 1702 * include/bits/ostream.tcc: Likewise. 1703 * include/bits/stl_algobase.h: Likewise. 1704 * include/c_global/cstdlib: Likewise. 1705 * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp: 1706 Likewise. 1707 * include/ext/pointer.h: Likewise. 1708 * include/ext/stdio_sync_filebuf.h: Likewise. 1709 * include/std/istream: Likewise. 1710 * include/std/ostream: Likewise. 1711 * include/tr1/cmath: Likewise. 1712 * include/tr1/type_traits: Likewise. 1713 * include/tr1/functional_hash.h: Likewise. Remove semi-colons 1714 at namespace scope that aren't needed after macro expansion. 1715 * include/tr1/tuple: Remove semi-colon at namespace scope. 1716 * include/bits/vector.tcc: Change LL suffix to just L. 1717 1718 2025-01-16 Jonathan Wakely <jwakely (a] redhat.com> 1719 1720 Backported from master: 1721 2025-01-08 Jonathan Wakely <jwakely (a] redhat.com> 1722 1723 PR libstdc++/90389 1724 * include/bits/deque.tcc (_M_insert_aux): Rename variadic 1725 overload to _M_emplace_aux. 1726 * include/bits/stl_deque.h (_M_insert_aux): Define inline. 1727 (_M_emplace_aux): Declare. 1728 * testsuite/23_containers/deque/modifiers/emplace/90389.cc: New 1729 test. 1730 1731 2025-01-12 Torbjrn SVENSSON <torbjorn.svensson (a] foss.st.com> 1732 1733 Backported from master: 1734 2025-01-12 Torbjrn SVENSSON <torbjorn.svensson (a] foss.st.com> 1735 1736 * testsuite/27_io/print/1.cc: Allow both LF and CRLF in test. 1737 * testsuite/27_io/print/3.cc: Likewise. 1738 1739 2025-01-12 Torbjrn SVENSSON <torbjorn.svensson (a] foss.st.com> 1740 1741 Backported from master: 1742 2025-01-12 Torbjrn SVENSSON <torbjorn.svensson (a] foss.st.com> 1743 1744 * testsuite/29_atomics/atomic_float/compare_exchange_padding.cc: 1745 Use effective-target libatomic_available. 1746 1747 2025-01-10 Tamar Christina <tamar.christina (a] arm.com> 1748 1749 * include/bits/hashtable.h (find): Add inline keyword. 1750 1751 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com> 1752 1753 Backported from master: 1754 2024-12-10 Jonathan Wakely <jwakely (a] redhat.com> 1755 1756 * include/bits/memory_resource.h (polymoprhic_allocator): Use 1757 feature test macro for P0339R6 features. 1758 1759 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com> 1760 1761 Backported from master: 1762 2024-08-23 Jonathan Wakely <jwakely (a] redhat.com> 1763 1764 * include/bits/alloc_traits.h: Improve doxygen docs for 1765 allocator_traits specializations. 1766 * include/bits/memory_resource.h: Likewise. 1767 1768 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com> 1769 1770 Backported from master: 1771 2024-06-21 Jonathan Wakely <jwakely (a] redhat.com> 1772 1773 * include/bits/memory_resource.h (polymorphic_allocator::destroy): 1774 Remove deprecated attribute. 1775 1776 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com> 1777 1778 Backported from master: 1779 2024-05-15 Jonathan Wakely <jwakely (a] redhat.com> 1780 1781 PR libstdc++/89624 1782 * include/bits/atomic_base.h (memory_order): Use int as 1783 underlying type. 1784 * testsuite/29_atomics/atomic/89624.cc: New test. 1785 1786 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com> 1787 1788 Backported from master: 1789 2024-12-12 Jonathan Wakely <jwakely (a] redhat.com> 1790 1791 * src/c++17/fs_dir.cc: Fix typo in comment. 1792 1793 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com> 1794 1795 Backported from master: 1796 2024-12-11 Jonathan Wakely <jwakely (a] redhat.com> 1797 1798 * include/std/ostream (println): Pass stream's locale to 1799 std::format, as per LWG 4088. 1800 * testsuite/27_io/basic_ostream/print/1.cc: Check std::println 1801 with custom locale. Remove unused brit_punc class. 1802 1803 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com> 1804 1805 Backported from master: 1806 2024-10-30 Jonathan Wakely <jwakely (a] redhat.com> 1807 1808 * doc/xml/manual/using_exceptions.xml: Fix typos and grammatical 1809 errors. 1810 * doc/html/manual/using_exceptions.html: Regenerate. 1811 1812 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com> 1813 1814 Backported from master: 1815 2024-05-14 Jonathan Wakely <jwakely (a] redhat.com> 1816 1817 * doc/xml/manual/strings.xml: Clarify that GCC 4.5 added 1818 std::string::shrink_to_fit. 1819 * doc/html/manual/strings.html: Regenerate. 1820 1821 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com> 1822 1823 Backported from master: 1824 2024-11-27 Jonathan Wakely <jwakely (a] redhat.com> 1825 1826 * include/bits/c++config (__glibcxx_assert): Remove useless 1827 __builtin_expect from constexpr-only assertion. Improve 1828 comments. 1829 1830 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com> 1831 1832 Backported from master: 1833 2024-12-03 Jonathan Wakely <jwakely (a] redhat.com> 1834 1835 PR libstdc++/108236 1836 * include/pstl/glue_numeric_impl.h (exclusive_scan): Pass __init 1837 as rvalue. 1838 * include/pstl/numeric_impl.h (__brick_transform_scan): Do not 1839 write through __result until after reading through __first. Move 1840 __init into return value. 1841 (__pattern_transform_scan): Pass __init as rvalue. 1842 * include/std/numeric (exclusive_scan): Move construct instead 1843 of copy constructing. 1844 * testsuite/26_numerics/exclusive_scan/2.cc: New test. 1845 * testsuite/26_numerics/pstl/numeric_ops/108236.cc: New test. 1846 1847 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com> 1848 1849 Backported from master: 1850 2024-12-09 Jonathan Wakely <jwakely (a] redhat.com> 1851 1852 PR libstdc++/117962 1853 * include/debug/safe_container.h: Make allocator-extended move 1854 constructor a no-op during constant evaluation. 1855 1856 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com> 1857 1858 Backported from master: 1859 2024-12-11 Jonathan Wakely <jwakely (a] redhat.com> 1860 1861 PR libstdc++/109517 1862 PR libstdc++/109976 1863 * include/debug/helper_functions.h (__valid_range_aux): Treat 1864 all input iterator ranges as valid during constant evaluation. 1865 1866 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com> 1867 1868 Backported from master: 1869 2024-12-11 Jonathan Wakely <jwakely (a] redhat.com> 1870 1871 PR libstdc++/106212 1872 * include/std/array (operator==): Use std::__equal_aux1 instead 1873 of std::equal. 1874 * testsuite/23_containers/array/comparison_operators/106212.cc: 1875 New test. 1876 1877 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com> 1878 1879 Backported from master: 1880 2024-12-11 Jonathan Wakely <jwakely (a] redhat.com> 1881 1882 PR libstdc++/117966 1883 * include/std/span (span(T (&)[N])): Do not delegate to 1884 constructor that performs redundant checks. 1885 (span(array<T, N>&), span(const array<T, N>&)): Likewise. 1886 (span(Range&&), span(const span<T, N>&)): Likewise. 1887 * testsuite/23_containers/span/117966.cc: New test. 1888 1889 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com> 1890 1891 Backported from master: 1892 2024-12-17 Jonathan Wakely <jwakely (a] redhat.com> 1893 1894 PR libstdc++/118035 1895 * include/bits/deque.tcc (_M_range_insert_aux): Return 1896 immediately if inserting an empty range. 1897 * testsuite/23_containers/deque/modifiers/insert/118035.cc: New 1898 test. 1899 1900 2025-01-09 Patrick Palka <ppalka (a] redhat.com> 1901 1902 Backported from master: 1903 2024-12-13 Patrick Palka <ppalka (a] redhat.com> 1904 1905 PR libstdc++/112349 1906 * include/bits/ranges_algo.h (__min_fn::operator()): Turn local 1907 object __tmp into a reference. 1908 * include/bits/ranges_util.h (__max_fn::operator()): Likewise. 1909 * testsuite/25_algorithms/max/constrained.cc (test04): New test. 1910 * testsuite/25_algorithms/min/constrained.cc (test04): New test. 1911 1912 2025-01-09 Patrick Palka <ppalka (a] redhat.com> 1913 1914 Backported from master: 1915 2024-11-14 Patrick Palka <ppalka (a] redhat.com> 1916 1917 * include/std/ranges (keys_view): Adjust as per LWG 3563. 1918 (values_view): Likewise. 1919 * testsuite/std/ranges/adaptors/elements.cc (test08): New test. 1920 1921 2025-01-09 Patrick Palka <ppalka (a] redhat.com> 1922 1923 Backported from master: 1924 2024-10-29 Patrick Palka <ppalka (a] redhat.com> 1925 1926 PR libstdc++/112641 1927 * include/std/ranges (drop_view::begin): Reimplement const 1928 overload so that it's O(1) always. 1929 * testsuite/std/ranges/adaptors/drop.cc (test10): New test. 1930 1931 2025-01-09 Gerald Pfeifer <gerald (a] pfeifer.com> 1932 1933 Backported from master: 1934 2024-08-17 Gerald Pfeifer <gerald (a] pfeifer.com> 1935 1936 * doc/xml/manual/abi.xml: Update reference to 1937 gcc.gnu.org/onlinedocs. 1938 * doc/xml/manual/concurrency_extensions.xml (interface): Ditto. 1939 * doc/xml/manual/extensions.xml: Ditto. 1940 * doc/xml/manual/parallel_mode.xml: Ditto. 1941 * doc/xml/manual/shared_ptr.xml: Ditto. 1942 * doc/xml/manual/using_exceptions.xml: Ditto. And change GNU GCC 1943 to GCC. 1944 * doc/html/index.html: Regenerate. 1945 * doc/html/manual/abi.html: Ditto. 1946 * doc/html/manual/ext_concurrency_impl.html: Ditto. 1947 * doc/html/manual/ext_demangling.html: Ditto. 1948 * doc/html/manual/memory.html: Ditto. 1949 * doc/html/manual/parallel_mode_design.html: Ditto. 1950 * doc/html/manual/parallel_mode_using.html: Ditto. 1951 * doc/html/manual/using_exceptions.html: Ditto. 1952 1953 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com> 1954 1955 Backported from master: 1956 2025-01-08 Jonathan Wakely <jwakely (a] redhat.com> 1957 1958 PR libstdc++/118093 1959 * include/bits/atomic_futex.h (_M_load_and_test_until_impl): 1960 Return false for times before the epoch. 1961 * src/c++11/futex.cc (_M_futex_wait_until): Extend check for 1962 negative times to check for subsecond times. Add unlikely 1963 attribute. 1964 (_M_futex_wait_until_steady): Likewise. 1965 * testsuite/30_threads/future/members/118093.cc: New test. 1966 1967 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com> 1968 1969 Backported from master: 1970 2025-01-08 Jonathan Wakely <jwakely (a] redhat.com> 1971 1972 * include/bits/move.h (forward, move, move_if_noexcept, addressof): 1973 Add @since to Doxygen comments. 1974 (forward_like): Add Doxygen comment. 1975 1976 2025-01-09 Jonathan Wakely <jwakely (a] redhat.com> 1977 1978 Backported from master: 1979 2025-01-08 Jonathan Wakely <jwakely (a] redhat.com> 1980 1981 * doc/xml/manual/evolution.xml: Replace invalid <variable> 1982 elements with <varname>. 1983 * doc/html/*: Regenerate. 1984 1985 2024-12-16 Jonathan Wakely <jwakely (a] redhat.com> 1986 1987 Backported from master: 1988 2024-12-07 Jonathan Wakely <jwakely (a] redhat.com> 1989 1990 * include/std/format: Fix typo in Doxygen comment. 1991 1992 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com> 1993 1994 Backported from master: 1995 2024-09-22 Jonathan Wakely <jwakely (a] redhat.com> 1996 1997 * include/bits/stl_vector.h (operator<=>): Use constexpr 1998 instead of _GLIBCXX20_CONSTEXPR macro. 1999 2000 2024-12-02 Jason Merrill <jason (a] redhat.com> 2001 2002 Backported from master: 2003 2024-08-28 Jason Merrill <jason (a] redhat.com> 2004 2005 * include/std/istream: Add cast to avoid -Wsign-compare. 2006 * include/std/stacktrace: Likewise. 2007 2008 2024-12-02 Jason Merrill <jason (a] redhat.com> 2009 2010 Backported from master: 2011 2024-08-28 Jason Merrill <jason (a] redhat.com> 2012 2013 * testsuite/20_util/default_delete/void_neg.cc: Fix regexp quoting. 2014 2015 2024-12-02 Jason Merrill <jason (a] redhat.com> 2016 2017 Backported from master: 2018 2024-08-28 Jason Merrill <jason (a] redhat.com> 2019 2020 * include/std/coroutine (coroutine_handle): Use nullptr instead of 2021 0 as initializer for _M_fr_ptr. 2022 2023 2024-12-02 Jason Merrill <jason (a] redhat.com> 2024 2025 Backported from master: 2026 2024-08-28 Jason Merrill <jason (a] redhat.com> 2027 2028 * include/decimal/decimal.h (_DEFINE_DECIMAL_BINARY_OP_WITH_INT): 2029 Remove redundant semicolons. 2030 2031 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com> 2032 2033 Backported from master: 2034 2024-08-28 Jonathan Wakely <jwakely (a] redhat.com> 2035 2036 * include/experimental/io_context: Remove name of unused 2037 parameter. 2038 * include/experimental/socket: Add [[maybe_unused]] attribute. 2039 2040 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com> 2041 2042 Backported from master: 2043 2024-09-22 Jonathan Wakely <jwakely (a] redhat.com> 2044 2045 * src/c++11/cxx11-ios_failure.cc (__iosfail_type_info): Unhide 2046 the three-arg overload of __do_upcast. 2047 2048 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com> 2049 2050 Backported from master: 2051 2024-09-22 Jonathan Wakely <jwakely (a] redhat.com> 2052 2053 * libsupc++/exception_ptr.h (__exception_ptr::_M_safe_bool_dummy): 2054 Remove __attribute__((const)) from function returning void. 2055 2056 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com> 2057 2058 Backported from master: 2059 2024-08-28 Jonathan Wakely <jwakely (a] redhat.com> 2060 2061 * include/std/ranges (to): Remove unused typedef. 2062 2063 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com> 2064 2065 Backported from master: 2066 2024-11-07 Jonathan Wakely <jwakely (a] redhat.com> 2067 2068 * include/bits/hashtable.h (_M_insert_unique_node): Improve 2069 comment. 2070 2071 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com> 2072 2073 Backported from master: 2074 2024-11-14 Jonathan Wakely <jwakely (a] redhat.com> 2075 2076 * include/bits/ranges_util.h (subrange::begin): Fix constraint, 2077 as per LWG 3589. 2078 * testsuite/std/ranges/subrange/lwg3589.cc: New test. 2079 2080 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com> 2081 2082 Backported from master: 2083 2024-11-01 Jonathan Wakely <jwakely (a] redhat.com> 2084 2085 * include/bits/unordered_map.h: Check __glibcxx_node_extract and 2086 __glibcxx_unordered_map_try_emplace instead of __cplusplus. 2087 * include/bits/unordered_set.h: Check __glibcxx_node_extract 2088 instead of __cplusplus. 2089 2090 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com> 2091 2092 Backported from master: 2093 2024-10-11 Jonathan Wakely <jwakely (a] redhat.com> 2094 2095 * include/bits/cpp_type_traits.h (__is_byte<byte>): Guard with 2096 __glibcxx_byte macro instead of checking __cplusplus. 2097 2098 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com> 2099 2100 Backported from master: 2101 2024-11-14 Jonathan Wakely <jwakely (a] redhat.com> 2102 2103 * include/bits/ranges_algo.h (__is_permutation_fn::operator()): 2104 Short-circuit for sized ranges with different sizes, as per LWG 2105 3560. 2106 * include/bits/ranges_algobase.h (__equal_fn::operator()): 2107 Likewise. 2108 * include/bits/stl_algo.h (__is_permutation): Use if-constexpr 2109 for random access iterator branches. 2110 * include/bits/stl_algobase.h (__equal4): Likewise. 2111 * testsuite/25_algorithms/equal/lwg3560.cc: New test. 2112 * testsuite/25_algorithms/is_permutation/lwg3560.cc: New test. 2113 2114 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com> 2115 2116 Backported from master: 2117 2024-10-15 Jonathan Wakely <jwakely (a] redhat.com> 2118 2119 PR libstdc++/106676 2120 * include/bits/iterator_concepts.h (__cpp17_fwd_iterator): Use 2121 is_reference instead of is_value_reference. 2122 rvalue references. 2123 * include/std/ranges (transform_view:__iter_cat::_S_iter_cat): 2124 Likewise. 2125 (zip_transform_view::__iter_cat::_S_iter_cat): Likewise. 2126 (adjacent_transform_view::__iter_cat::_S_iter_cat): Likewise. 2127 (join_with_view::__iter_cat::_S_iter_cat): Likewise. 2128 * testsuite/std/ranges/adaptors/transform.cc: Check 2129 iterator_category when the transformation function returns an 2130 rvalue reference type. 2131 2132 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com> 2133 2134 Backported from master: 2135 2024-09-27 Jonathan Wakely <jwakely (a] redhat.com> 2136 2137 * include/bits/basic_string.tcc (resize_for_overwrite): Fix 2138 -Wsign-compare warning. 2139 * include/bits/cow_string.h (resize_for_overwrite): Likewise. 2140 2141 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com> 2142 2143 Backported from master: 2144 2024-10-27 Jonathan Wakely <jwakely (a] redhat.com> 2145 2146 * include/bits/stl_bvector.h (emplace_back, emplace): Forward 2147 parameter pack to preserve value category. 2148 * testsuite/23_containers/vector/bool/emplace_rvalue.cc: New 2149 test. 2150 2151 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com> 2152 2153 Backported from master: 2154 2024-11-07 Jonathan Wakely <jwakely (a] redhat.com> 2155 2156 * include/bits/hashtable.h: Fix spelling in comment. 2157 2158 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com> 2159 2160 Backported from master: 2161 2024-11-01 Jonathan Wakely <jwakely (a] redhat.com> 2162 2163 * include/bits/hashtable.h: Improve comments. 2164 2165 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com> 2166 2167 Backported from master: 2168 2024-11-14 Jonathan Wakely <jwakely (a] redhat.com> 2169 2170 PR libstdc++/117560 2171 * include/bits/fs_dir.h (enable_borrowed_range, enable_view): 2172 Define specializations for directory iterators, as per LWG 3480. 2173 * testsuite/27_io/filesystem/iterators/lwg3480.cc: New test. 2174 2175 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com> 2176 2177 Backported from master: 2178 2024-11-13 Jonathan Wakely <jwakely (a] redhat.com> 2179 2180 * testsuite/util/testsuite_performance.h (time_counter): Add 2181 comment about times. 2182 (time_counter::system_time): Use correct split value. 2183 2184 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com> 2185 2186 Backported from master: 2187 2024-11-13 Jonathan Wakely <jwakely (a] redhat.com> 2188 2189 * testsuite/util/testsuite_performance.h: Use 2190 __gnu_cxx::__is_single_threaded instead of __gthread_active_p(). 2191 2192 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com> 2193 2194 Backported from master: 2195 2024-11-14 Jonathan Wakely <jwakely (a] redhat.com> 2196 2197 * include/bits/stl_iterator.h (operator+): Add constraint to 2198 move_iterator operator. 2199 * testsuite/24_iterators/move_iterator/rel_ops_c++20.cc: 2200 2201 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com> 2202 2203 Backported from master: 2204 2024-11-28 Jonathan Wakely <jwakely (a] redhat.com> 2205 2206 PR libstdc++/117822 2207 * include/std/stacktrace (stacktrace(stacktrace&&, const A&)): 2208 Fix typo in qualified-id for is_always_equal trait. 2209 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Test 2210 allocator-extended constructors and allocator propagation. 2211 2212 2024-12-02 Jonathan Wakely <jwakely (a] redhat.com> 2213 2214 Backported from master: 2215 2024-09-26 Jonathan Wakely <jwakely (a] redhat.com> 2216 2217 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate): 2218 Do not assume allocators only throw std::bad_alloc. 2219 2220 2024-11-12 Jonathan Wakely <jwakely (a] redhat.com> 2221 2222 * include/bits/unicode.h (_Utf_iterator::_M_read_utf16): Add 2223 parentheses. 2224 2225 2024-11-12 Jonathan Wakely <jwakely (a] redhat.com> 2226 2227 PR libstdc++/117520 2228 * include/std/text_encoding (aliases_view:_Iterator::operator+=): 2229 Fix typos that caused == to be used instead of =. 2230 (aliases_view::_Iterator): Fix friend declaration. 2231 * testsuite/std/text_encoding/members.cc: Adjust expected 2232 behaviour of invalid subscript. Add tests for other erroneous 2233 operations on iterators. 2234 2235 2024-11-11 Jonathan Wakely <jwakely (a] redhat.com> 2236 2237 Backported from master: 2238 2024-11-08 Jonathan Wakely <jwakely (a] redhat.com> 2239 2240 * include/bits/hashtable_policy.h (_Insert_base::try_emplace): 2241 Do not define for C++11 and C++14. 2242 * include/debug/map.h (try_emplace): Use feature test macro. 2243 * include/debug/unordered_map (try_emplace): Likewise. 2244 * testsuite/17_intro/names.cc: Define try_emplace before C++17. 2245 2246 2024-11-04 Jakub Jelinek <jakub (a] redhat.com> 2247 2248 Backported from master: 2249 2024-11-04 Jakub Jelinek <jakub (a] redhat.com> 2250 2251 PR libstdc++/117406 2252 * testsuite/26_numerics/headers/cmath/117406.cc: Use 2253 std::numeric_limits<int>::max() instead of INT_MAX. 2254 2255 2024-11-04 Jakub Jelinek <jakub (a] redhat.com> 2256 2257 Backported from master: 2258 2024-11-02 Jakub Jelinek <jakub (a] redhat.com> 2259 2260 PR libstdc++/117406 2261 * include/c_global/cmath (std::ilogb(_Float16), std::llrint(_Float16), 2262 std::llround(_Float16), std::lrint(_Float16), std::lround(_Float16)): 2263 Don't cast __builtin_* return to _Float16. 2264 (std::ilogb(__gnu_cxx::__bfloat16_t), 2265 std::llrint(__gnu_cxx::__bfloat16_t), 2266 std::llround(__gnu_cxx::__bfloat16_t), 2267 std::lrint(__gnu_cxx::__bfloat16_t), 2268 std::lround(__gnu_cxx::__bfloat16_t)): Don't cast __builtin_* return to 2269 __gnu_cxx::__bfloat16_t. 2270 * testsuite/26_numerics/headers/cmath/117406.cc: New test. 2271 2272 2024-11-04 Jakub Jelinek <jakub (a] redhat.com> 2273 2274 Backported from master: 2275 2024-10-29 Jakub Jelinek <jakub (a] redhat.com> 2276 2277 PR libstdc++/117321 2278 * include/c_global/cmath (nextafter(_Float16, _Float16)): Use 2279 if consteval rather than if (std::__is_constant_evaluated()) around 2280 the __builtin_nextafterf16 call. 2281 (nextafter(__gnu_cxx::__bfloat16_t, __gnu_cxx::__bfloat16_t)): Use 2282 if consteval rather than if (std::__is_constant_evaluated()) around 2283 the __builtin_nextafterf16b call. 2284 * testsuite/26_numerics/headers/cmath/117321.cc: New test. 2285 2286 2024-10-22 Patrick Palka <ppalka (a] redhat.com> 2287 2288 Backported from master: 2289 2024-10-05 Patrick Palka <ppalka (a] redhat.com> 2290 2291 * include/bits/ranges_base.h (__distance_fn::operator()): 2292 Adjust iterator/sentinel overloads as per LWG 3664. 2293 * testsuite/24_iterators/range_operations/distance.cc: 2294 Test LWG 3664 example. 2295 2296 2024-10-22 Patrick Palka <ppalka (a] redhat.com> 2297 2298 Backported from master: 2299 2024-10-04 Patrick Palka <ppalka (a] redhat.com> 2300 2301 * include/std/ranges (single_view::empty): Define as per LWG 4035. 2302 (iota_view::empty): Define as per LWG 4001. 2303 (lazy_split_view::_OuterIter::value_type): Remove default 2304 constructor and make other constructor private as per LWG 4013. 2305 (common_view::begin): Disable non-const overload for simple 2306 views as per LWG 4012. 2307 (common_view::end): Likewise. 2308 (adjacent_view::base): Define as per LWG 3848. 2309 (adjacent_transform_view::base): Likewise. 2310 (chunk_view::_InnerIter::iter_move): Define as per LWG 3851. 2311 (chunk_view::_InnerIter::itep_swap): Likewise. 2312 (slide_view::base): Define as per LWG 3848. 2313 (repeat_view): Adjust deduction guide as per LWG 4053. 2314 (_Repeat::operator()): Adjust single-parameter overload as per 2315 LWG 4054. 2316 * testsuite/std/ranges/adaptors/adjacent/1.cc: Verify existence 2317 of base member function. 2318 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: Likewise. 2319 * testsuite/std/ranges/adaptors/chunk/1.cc: Test LWG 3851 example. 2320 * testsuite/std/ranges/adaptors/slide/1.cc: Verify existence of 2321 base member function. 2322 * testsuite/std/ranges/iota/iota_view.cc: Test LWG 4001 example. 2323 * testsuite/std/ranges/repeat/1.cc: Test LWG 4053/4054 examples. 2324 2325 2024-10-22 Patrick Palka <ppalka (a] redhat.com> 2326 2327 Backported from master: 2328 2024-08-22 Patrick Palka <ppalka (a] redhat.com> 2329 2330 * testsuite/25_algorithms/contains/1.cc: Verify value of 2331 __cpp_lib_ranges_contains. 2332 * testsuite/25_algorithms/find_last/1.cc: Verify value of 2333 __cpp_lib_ranges_find_last. 2334 * testsuite/25_algorithms/iota/1.cc: Verify value of 2335 __cpp_lib_ranges_iota. 2336 2337 2024-10-22 Patrick Palka <ppalka (a] redhat.com> 2338 2339 Backported from master: 2340 2024-08-22 Patrick Palka <ppalka (a] redhat.com> 2341 2342 * include/bits/iterator_concepts.h (indirectly_unary_invocable): 2343 Relax as per P2997R1. 2344 (indirectly_regular_unary_invocable): Likewise. 2345 (indirect_unary_predicate): Likewise. 2346 (indirect_binary_predicate): Likewise. 2347 (indirect_equivalence_relation): Likewise. 2348 (indirect_strict_weak_order): Likewise. 2349 * include/bits/version.def (ranges): Update value for C++26. 2350 * include/bits/version.h: Regenerate. 2351 * testsuite/24_iterators/indirect_callable/p2997r1.cc: New test. 2352 * testsuite/std/ranges/version_c++23.cc: Remove. 2353 * testsuite/std/ranges/headers/ranges/synopsis.cc: Refine the 2354 __cpp_lib_ranges checks. 2355 2356 2024-10-22 Patrick Palka <ppalka (a] redhat.com> 2357 2358 Backported from master: 2359 2024-08-22 Patrick Palka <ppalka (a] redhat.com> 2360 2361 * include/bits/iterator_concepts.h (__detail::__indirect_value): 2362 Define. 2363 (__indirect_value_t): Define as per P2609R3. 2364 (iter_common_reference_t): Adjust as per P2609R3. 2365 (indirectly_unary_invocable): Likewise. 2366 (indirectly_regular_unary_invocable): Likewise. 2367 (indirect_unary_predicate): Likewise. 2368 (indirect_binary_predicate): Likewise. 2369 (indirect_equivalence_relation): Likewise. 2370 (indirect_strict_weak_order): Likewise. 2371 (__detail::__projected::__type): Define member aliases 2372 __projected_Iter and __projected_Proj providing the 2373 template arguments of the current specialization. 2374 * include/bits/version.def (ranges): Update value. 2375 * include/bits/version.h: Regenerate. 2376 * testsuite/24_iterators/indirect_callable/p2609r3.cc: New test. 2377 * testsuite/std/ranges/version_c++23.cc: Update expected value 2378 of __cpp_lib_ranges macro. 2379 2380 2024-10-16 Jonathan Wakely <jwakely (a] redhat.com> 2381 2382 Backported from master: 2383 2024-10-16 Jonathan Wakely <jwakely (a] redhat.com> 2384 2385 * python/libstdcxx/v6/printers.py (strip_fundts_namespace): New. 2386 (StdExpAnyPrinter, StdExpOptionalPrinter): Use it. 2387 2388 2024-10-16 Jonathan Wakely <jwakely (a] redhat.com> 2389 2390 Backported from master: 2391 2024-06-26 Jonathan Wakely <jwakely (a] redhat.com> 2392 2393 PR libstdc++/90276 2394 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc: 2395 Increase timeout for debug mode. 2396 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc: 2397 Likewise. 2398 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc: 2399 Likewise. 2400 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc: 2401 Likewise. 2402 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc: 2403 Likewise. 2404 * testsuite/25_algorithms/pstl/alg_sorting/set_symmetric_difference.cc: 2405 Likewise. 2406 2407 2024-10-15 Jonathan Wakely <jwakely (a] redhat.com> 2408 2409 Backported from master: 2410 2024-10-14 Jonathan Wakely <jwakely (a] redhat.com> 2411 2412 * include/std/ranges (transform_view:_Iterator): Use const F& 2413 to determine value_type and iterator_category of 2414 _Iterator<true>, as per LWG 3564. 2415 * testsuite/std/ranges/adaptors/transform.cc: Check value_type 2416 and iterator_category. 2417 2418 2024-10-15 Jonathan Wakely <jwakely (a] redhat.com> 2419 2420 Backported from master: 2421 2024-10-11 Jonathan Wakely <jwakely (a] redhat.com> 2422 2423 PR libstdc++/117085 2424 * include/bits/chrono_io.h (__formatter_chrono::_M_c): Add L 2425 option to format string. 2426 * testsuite/std/time/format.cc: Move to... 2427 * testsuite/std/time/format/format.cc: ...here. 2428 * testsuite/std/time/format/pr117085.cc: New test. 2429 2430 2024-10-15 Jonathan Wakely <jwakely (a] redhat.com> 2431 2432 Backported from master: 2433 2024-10-09 Jonathan Wakely <jwakely (a] redhat.com> 2434 2435 * include/bits/chrono_io.h (__formatter_chrono::_M_c): Add 2436 [[unlikely]] attribute to condition for missing %c format in 2437 locale. Use %T instead of %H:%M:%S in fallback. 2438 2439 2024-10-15 Jonathan Wakely <jwakely (a] redhat.com> 2440 2441 Backported from master: 2442 2024-10-14 Jonathan Wakely <jwakely (a] redhat.com> 2443 2444 PR libstdc++/117135 2445 * config/locale/generic/time_members.cc 2446 (__timepunct<wchar_t>::_M_initialize_timepunc): Set 2447 _M_date_time_format for C locale. Set %Ex formats to the same 2448 values as the %x formats. 2449 2450 2024-10-15 Jonathan Wakely <jwakely (a] redhat.com> 2451 2452 Backported from master: 2453 2024-10-14 Jonathan Wakely <jwakely (a] redhat.com> 2454 2455 PR libstdc++/117094 2456 * include/bits/ranges_algobase.h (__fill_fn): Use std::move for 2457 iterator that might not be copyable. 2458 * testsuite/25_algorithms/fill/constrained.cc: Check 2459 non-copyable iterator with sized sentinel. 2460 2461 2024-10-03 Jonathan Wakely <jwakely (a] redhat.com> 2462 2463 Backported from master: 2464 2024-08-23 Jonathan Wakely <jwakely (a] redhat.com> 2465 2466 PR c++/116369 2467 * include/debug/safe_base.h (_Safe_sequence_base::_M_iterators): 2468 Add mutable specifier. 2469 (_Safe_sequence_base::_M_const_iterators): Likewise. 2470 2471 2024-10-03 Kim Grsman <kim.grasman (a] gmail.com> 2472 2473 Backported from master: 2474 2024-08-28 Kim Grsman <kim.grasman (a] gmail.com> 2475 2476 * include/bits/cpp_type_traits.h: Improve doxygen file docs. 2477 2478 2024-10-03 Kim Grsman <kim.grasman (a] gmail.com> 2479 2480 Backported from master: 2481 2024-08-28 Kim Grsman <kim.grasman (a] gmail.com> 2482 2483 * config/cpu/aarch64/opt/ext/opt_random.h: Improve doxygen file 2484 docs. 2485 * config/cpu/i486/opt/ext/opt_random.h: Likewise. 2486 2487 2024-10-03 Jonathan Wakely <jwakely (a] redhat.com> 2488 2489 Backported from master: 2490 2024-08-28 Jonathan Wakely <jwakely (a] redhat.com> 2491 2492 * configure.ac: Fix check for O_NONBLOCK. 2493 * config.h.in: Regenerate. 2494 * configure: Regenerate. 2495 2496 2024-10-03 Jonathan Wakely <jwakely (a] redhat.com> 2497 2498 Backported from master: 2499 2024-09-26 Jonathan Wakely <jwakely (a] redhat.com> 2500 2501 PR libstdc++/116857 2502 * libsupc++/guard.cc (__cxa_guard_acquire): Remove 2503 _GLIBCXX_NOTHROW to match declaration in <cxxabi.h>. 2504 2505 2024-10-03 Jonathan Wakely <jwakely (a] redhat.com> 2506 2507 Backported from master: 2508 2024-06-27 Jonathan Wakely <jwakely (a] redhat.com> 2509 2510 PR libstdc++/37475 2511 * config/locale/gnu/codecvt_members.cc (Guard): New RAII type. 2512 (do_out, do_in): Return partial if the destination is empty but 2513 the source is not. Use Guard to restore locale on scope exit. 2514 Return immediately on any conversion error. 2515 (do_encoding, do_max_length, do_length): Use Guard. 2516 * testsuite/22_locale/codecvt/in/char/37475.cc: New test. 2517 * testsuite/22_locale/codecvt/in/wchar_t/37475.cc: New test. 2518 * testsuite/22_locale/codecvt/out/char/37475.cc: New test. 2519 * testsuite/22_locale/codecvt/out/wchar_t/37475.cc: New test. 2520 2521 2024-10-03 Jonathan Wakely <jwakely (a] redhat.com> 2522 2523 Backported from master: 2524 2024-10-02 Jonathan Wakely <jwakely (a] redhat.com> 2525 2526 * config/locale/dragonfly/time_members.cc 2527 (__timepunct<char>::_M_initialize_timepunc) 2528 (__timepunct<wchar_t>::_M_initialize_timepunc): Set 2529 _M_date_time_format for C locale. Set %Ex formats to the same 2530 values as the %x formats. 2531 * config/locale/generic/time_members.cc: Likewise. 2532 * config/locale/gnu/time_members.cc: Likewise. 2533 * testsuite/22_locale/time_get/get/char/5.cc: New test. 2534 * testsuite/22_locale/time_get/get/wchar_t/5.cc: New test. 2535 2536 2024-10-03 Jonathan Wakely <jwakely (a] redhat.com> 2537 2538 Backported from master: 2539 2024-09-26 Jonathan Wakely <jwakely (a] redhat.com> 2540 2541 * include/bits/cow_string.h (__resize_for_overwrite): Add 2542 inline keyword to function with always_inline attribute. 2543 2544 2024-10-03 Jonathan Wakely <jwakely (a] redhat.com> 2545 2546 Backported from master: 2547 2024-06-26 Jonathan Wakely <jwakely (a] redhat.com> 2548 2549 PR libstdc++/90276 2550 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc 2551 [_GLIBCXX_DEBUG]: Add xfail-run-if for debug mode. 2552 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc 2553 [_GLIBCXX_DEBUG]: Reduce size of test data. 2554 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc: 2555 Likewise. 2556 * testsuite/25_algorithms/pstl/alg_sorting/set_util.h: 2557 Likewise. 2558 2559 2024-10-03 Jonathan Wakely <jwakely (a] redhat.com> 2560 2561 Backported from master: 2562 2024-09-22 Jonathan Wakely <jwakely (a] redhat.com> 2563 2564 * include/std/format (__format::__is_formattable_integer): New 2565 variable template and specializations. 2566 (template<integral, __char> struct formatter): Replace 2567 constraints on first arg with __is_formattable_integer. 2568 * testsuite/std/format/formatter/requirements.cc: Check that 2569 std::formatter specializations for char8_t and const int are 2570 disabled. 2571 2572 2024-10-03 Jonathan Wakely <jwakely (a] redhat.com> 2573 2574 Backported from master: 2575 2024-09-22 Jonathan Wakely <jwakely (a] redhat.com> 2576 2577 PR libstdc++/116755 2578 * include/bits/chrono_io.h (formatter<duration<R,P>>::format): 2579 Cast negative integral durations to unsigned rep. 2580 * testsuite/20_util/duration/io.cc: Test the most negative 2581 integer durations. 2582 2583 2024-09-23 Jonathan Wakely <jwakely (a] redhat.com> 2584 2585 Backported from master: 2586 2024-09-20 Jonathan Wakely <jwakely (a] redhat.com> 2587 2588 PR libstdc++/116529 2589 * include/bits/unique_ptr.h (unique_ptr(auto_ptr<U>&&)): 2590 Use pointer instead of T*. 2591 * testsuite/20_util/unique_ptr/creation/116529.cc: New test. 2592 2593 2024-09-23 Jonathan Wakely <jwakely (a] redhat.com> 2594 2595 Backported from master: 2596 2024-09-22 Jonathan Wakely <jwakely (a] redhat.com> 2597 2598 PR libstdc++/116754 2599 * include/bits/ranges_algobase.h (__copy_or_move): Fix order of 2600 arguments to __memcpyable. 2601 2602 2024-09-23 Jonathan Wakely <jwakely (a] redhat.com> 2603 2604 Backported from master: 2605 2024-09-20 Jonathan Wakely <jwakely (a] redhat.com> 2606 2607 PR libstdc++/116777 2608 * doc/xml/manual/using.xml: Document features that are not 2609 supported for the gcc4-compatible ABI. 2610 * doc/html/manual/using_dual_abi.html: Regenerate. 2611 2612 2024-09-23 Jonathan Wakely <jwakely (a] redhat.com> 2613 2614 Backported from master: 2615 2024-08-23 Jonathan Wakely <jwakely (a] redhat.com> 2616 2617 PR libstdc++/108619 2618 * include/bits/alloc_traits.h (__allocator_traits_base): Add 2619 variable templates for detecting whether the allocator has a 2620 construct member, or if placement new can be used instead. 2621 (allocator_traits::__construct_helper): Remove. 2622 (allocator_traits::__has_construct): Remove. 2623 (allocator_traits::construct): Use 'if constexpr' instead of 2624 dispatching to overloads constrained with enable_if. 2625 (allocator_traits<allocator<T>>::construct): Use _Construct if 2626 construct_at is not supported. Use 2627 __is_nothrow_new_constructible for noexcept-specifier. 2628 (allocator_traits<allocator<void>>::construct): Use 2629 __is_nothrow_new_constructible for noexcept-specifier. 2630 * include/bits/new_allocator.h (construct): Likewise. 2631 * include/ext/malloc_allocator.h (construct): Likewise. 2632 * include/std/type_traits (__is_nothrow_new_constructible): New 2633 variable template. 2634 * testsuite/20_util/allocator/89510.cc: Adjust expected results. 2635 * testsuite/ext/malloc_allocator/89510.cc: Likewise. 2636 * testsuite/ext/new_allocator/89510.cc: Likewise. 2637 * testsuite/20_util/allocator_traits/members/108619.cc: New test. 2638 2639 2024-09-11 Jonathan Wakely <jwakely (a] redhat.com> 2640 2641 Backported from master: 2642 2024-09-10 Jonathan Wakely <jwakely (a] redhat.com> 2643 2644 PR libstdc++/116159 2645 * include/std/iostream (ios_base_library_init): Only define for 2646 ELF targets. 2647 * src/c++98/ios_init.cc (ios_base_library_init): Likewise. 2648 2649 2024-09-11 Jonathan Wakely <jwakely (a] redhat.com> 2650 2651 Backported from master: 2652 2024-09-10 Jonathan Wakely <jwakely (a] redhat.com> 2653 2654 PR libstdc++/116641 2655 * include/bits/basic_string.h (operator=(basic_string&&)): Call 2656 _M_assign instead of assign. 2657 * testsuite/21_strings/basic_string/allocator/116641.cc: New 2658 test. 2659 2660 2024-09-10 Jonathan Wakely <jwakely (a] redhat.com> 2661 2662 Backported from master: 2663 2024-06-26 Jonathan Wakely <jwakely (a] redhat.com> 2664 2665 * src/c++20/tzdb.cc (minmax_year, minmax_year2): Remove. 2666 (years_from_to): New class replacing minmax_year and 2667 minmax_year2. 2668 (format_abbrev_str, select_std_or_dst_abbrev): Move earlier in 2669 the file. Handle "-" for letters. 2670 (ZoneInfo::to): Use format_abbrev_str to expand %z. 2671 (ZoneInfo::set_abbrev): Remove exception. Change parameter from 2672 reference to value. 2673 (operator>>(istream&, Rule&)): Do not clear letters when it 2674 contains "-". 2675 (time_zone::_M_get_sys_info): Add missing logic to find the Rule 2676 in effect before the time point. 2677 * testsuite/std/time/tzdb/1.cc: Adjust for vanguard format using 2678 "GMT" as the Zone name, not as a Link to "Etc/GMT". 2679 * testsuite/std/time/time_zone/sys_info_abbrev.cc: New test. 2680 2681 2024-09-08 Patrick Palka <ppalka (a] redhat.com> 2682 2683 Backported from master: 2684 2024-08-03 Patrick Palka <ppalka (a] redhat.com> 2685 2686 * include/bits/move.h (__like_impl): New metafunction. 2687 (__like_t): Redefine in terms of __like_impl. 2688 (forward_like): Redefine in terms of __like_t. 2689 * testsuite/20_util/forward_like/2_neg.cc: Don't expect 2690 error outside the immediate context anymore. 2691 2692 2024-09-04 Jonathan Wakely <jwakely (a] redhat.com> 2693 2694 Backported from master: 2695 2024-09-03 Jonathan Wakely <jwakely (a] redhat.com> 2696 2697 * src/c++17/fs_ops.cc (auto_win_file_handle): Add error_code& 2698 member and set it if CreateFileW or GetFileInformationByHandle 2699 fails. 2700 (fs::equiv_files) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Simplify 2701 control flow. 2702 (fs::hard_link_count) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Clear ec 2703 on success. 2704 * testsuite/27_io/filesystem/operations/hard_link_count.cc: 2705 Check error handling. 2706 2707 2024-09-04 Jonathan Wakely <jwakely (a] redhat.com> 2708 2709 Backported from master: 2710 2024-07-30 Jonathan Wakely <jwakely (a] redhat.com> 2711 2712 * src/c++17/fs_ops.cc (auto_win_file_handle): Change constructor 2713 parameter from const path& to const wchar_t*. 2714 (fs::equiv_files): New function. 2715 (fs::equivalent): Use equiv_files. 2716 * src/filesystem/ops-common.h (fs::equiv_files): Declare. 2717 (do_copy_file): Use equiv_files. 2718 * src/filesystem/ops.cc (fs::equiv_files): Define. 2719 (fs::copy, fs::equivalent): Use equiv_files. 2720 * testsuite/27_io/filesystem/operations/copy.cc: Test 2721 overwriting directory contents recursively. 2722 * testsuite/27_io/filesystem/operations/copy_file.cc: Test 2723 overwriting existing files. 2724 2725 2024-09-04 Lennox Shou Hao Ho <lennoxhoe (a] gmail.com> 2726 2727 Backported from master: 2728 2024-07-30 Lennox Shou Hao Ho <lennoxhoe (a] gmail.com> 2729 2730 PR libstdc++/113663 2731 * src/c++17/fs_ops.cc (fs::equivalent): Moved helper class 2732 auto_handle to anonymous namespace as auto_win_file_handle. 2733 (fs::hard_link_count): Changed Windows implementation to use 2734 information provided by GetFileInformationByHandle which is more 2735 reliable. 2736 * testsuite/27_io/filesystem/operations/hard_link_count.cc: New 2737 test. 2738 2739 2024-09-04 Jonathan Wakely <jwakely (a] redhat.com> 2740 2741 Backported from master: 2742 2024-09-03 Jonathan Wakely <jwakely (a] redhat.com> 2743 2744 PR libstdc++/116549 2745 * include/bits/stl_iterator.h (disable_sized_sentinel_for): 2746 Define specialization for two move_iterator types, as per LWG 2747 3736. 2748 * testsuite/24_iterators/move_iterator/lwg3736.cc: New test. 2749 2750 2024-09-04 Dhruv Chawla <dhruvc (a] nvidia.com> 2751 2752 Backported from master: 2753 2024-09-03 Dhruv Chawla <dhruvc (a] nvidia.com> 2754 2755 * include/std/deque: Define macro 2756 __glibcxx_want_allocator_traits_is_always_equal. 2757 * include/std/forward_list: Likewise. 2758 * include/std/list: Likewise. 2759 * include/std/map: Likewise. 2760 * include/std/scoped_allocator: Likewise. 2761 * include/std/set: Likewise. 2762 * include/std/string: Likewise. 2763 * include/std/unordered_map: Likewise. 2764 * include/std/unordered_set: Likewise. 2765 * include/std/vector: Likewise. 2766 * testsuite/20_util/headers/memory/version.cc: New test. 2767 * testsuite/20_util/scoped_allocator/version.cc: Likewise. 2768 * testsuite/21_strings/headers/string/version.cc: Likewise. 2769 * testsuite/23_containers/deque/version.cc: Likewise. 2770 * testsuite/23_containers/forward_list/version.cc: Likewise. 2771 * testsuite/23_containers/list/version.cc: Likewise. 2772 * testsuite/23_containers/map/version.cc: Likewise. 2773 * testsuite/23_containers/set/version.cc: Likewise. 2774 * testsuite/23_containers/unordered_map/version.cc: Likewise. 2775 * testsuite/23_containers/unordered_set/version.cc: Likewise. 2776 * testsuite/23_containers/vector/version.cc: Likewise. 2777 2778 2024-09-04 Jonathan Wakely <jwakely (a] redhat.com> 2779 2780 Backported from master: 2781 2024-08-21 Jonathan Wakely <jwakely (a] redhat.com> 2782 2783 PR libstdc++/116381 2784 * include/std/variant (variant): Fix conditions for 2785 static_assert to match the spec. 2786 * testsuite/20_util/variant/types_neg.cc: New test. 2787 2788 2024-08-03 Jonathan Wakely <jwakely (a] redhat.com> 2789 2790 Backported from master: 2791 2024-06-21 Jonathan Wakely <jwakely (a] redhat.com> 2792 2793 * include/bits/version.def (chrono): Add cxx11abi = yes. 2794 * include/bits/version.h: Regenerate. 2795 * testsuite/std/time/syn_c++20.cc: Adjust expected value for 2796 the feature test macro. 2797 2798 2024-08-02 Patrick Palka <ppalka (a] redhat.com> 2799 2800 Backported from master: 2801 2024-07-25 Patrick Palka <ppalka (a] redhat.com> 2802 2803 PR libstdc++/116038 2804 * include/std/functional (_Bind_front::operator()): Use __like_t 2805 instead of std::forward when forwarding __self. 2806 (_Bind_back::operator()): Likewise. 2807 * include/std/ranges (_Partial::operator()): Likewise. 2808 (_Pipe::operator()): Likewise. 2809 * testsuite/20_util/function_objects/bind_back/116038.cc: New test. 2810 * testsuite/20_util/function_objects/bind_front/116038.cc: New test. 2811 * testsuite/std/ranges/adaptors/116038.cc: New test. 2812 2813 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com> 2814 2815 Backported from master: 2816 2024-05-22 Jonathan Wakely <jwakely (a] redhat.com> 2817 2818 * include/bits/locale_classes.h (locale::combine) 2819 (locale::name, locale::operator==, locale::operator!=) 2820 (locale::operator(), locale::classic): Add nodiscard 2821 attribute. 2822 * include/bits/locale_classes.tcc (has_facet, use_facet): 2823 Likewise. 2824 * testsuite/22_locale/locale/cons/12438.cc: Add dg-warning for 2825 nodiscard diagnostic. 2826 * testsuite/22_locale/locale/cons/2.cc: Cast use_facet 2827 expression to void, to suppress diagnostic. 2828 * testsuite/22_locale/locale/cons/unicode.cc: Likewise. 2829 * testsuite/22_locale/locale/operations/2.cc: Add dg-warning. 2830 2831 2024-08-01 Deev Patel <dkp10000 (a] gmail.com> 2832 2833 Backported from master: 2834 2024-06-08 Deev Patel <dkp10000 (a] gmail.com> 2835 Jonathan Wakely <jwakely (a] redhat.com> 2836 2837 * include/bits/atomic_base.h (__atomic_impl::__clear_padding): 2838 Add missing constexpr specifier. 2839 * testsuite/29_atomics/atomic_float/constinit.cc: New test. 2840 2841 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com> 2842 2843 Backported from master: 2844 2024-06-21 Jonathan Wakely <jwakely (a] redhat.com> 2845 2846 * testsuite/util/testsuite_allocator.h (tracker_allocator): 2847 Initialize base class in copy constructor. 2848 2849 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com> 2850 2851 Backported from master: 2852 2024-06-12 Jonathan Wakely <jwakely (a] redhat.com> 2853 2854 PR libstdc++/115399 2855 * include/tr2/dynamic_bitset (operator>>=): Remove redundant 2856 call to _M_do_sanitize. 2857 * include/tr2/dynamic_bitset.tcc (_M_do_left_shift): Zero out 2858 low bits in words that should no longer be populated. 2859 (_M_do_right_shift): Likewise for high bits. 2860 * testsuite/tr2/dynamic_bitset/pr115399.cc: New test. 2861 2862 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com> 2863 2864 Backported from master: 2865 2024-07-25 Jonathan Wakely <jwakely (a] redhat.com> 2866 2867 * include/std/format (basic_format_args): Remove default 2868 constructor, as per LWG 4106. 2869 * testsuite/std/format/arguments/args.cc: Check it isn't default 2870 constructible. 2871 2872 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com> 2873 2874 Backported from master: 2875 2024-07-10 Jonathan Wakely <jwakely (a] redhat.com> 2876 2877 PR libstdc++/114387 2878 * include/std/format (basic_format_context): Define copy 2879 operations as deleted, as per LWG 4061. 2880 * testsuite/std/format/context.cc: New test. 2881 2882 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com> 2883 2884 Backported from master: 2885 2024-06-21 Jonathan Wakely <jwakely (a] redhat.com> 2886 2887 * include/std/any (any_cast(any*), any_cast(const any*)): Add 2888 static assertion to reject void types, as per LWG 3305. 2889 * testsuite/20_util/any/misc/lwg3305.cc: New test. 2890 2891 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com> 2892 2893 Backported from master: 2894 2024-06-08 Jonathan Wakely <jwakely (a] redhat.com> 2895 2896 * include/std/algorithm: Define __glibcxx_want_ranges. 2897 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Check 2898 feature test macro in C++20 mode. 2899 2900 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com> 2901 2902 Backported from master: 2903 2024-07-10 Jonathan Wakely <jwakely (a] redhat.com> 2904 2905 PR libstdc++/115854 2906 * include/bits/stl_bvector.h (_Bvector_base): Convert allocator 2907 to rebound type explicitly. 2908 * testsuite/23_containers/vector/allocator/115854.cc: New test. 2909 * testsuite/23_containers/vector/bool/allocator/115854.cc: New test. 2910 2911 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com> 2912 2913 Backported from master: 2914 2024-06-13 Jonathan Wakely <jwakely (a] redhat.com> 2915 2916 * include/bits/ranges_base.h (const_iterator_t): Change 2917 preprocessor condition to use __glibcxx_ranges_as_const. 2918 (const_sentinel_t, range_const_reference_t): Likewise. 2919 (__access::__possibly_const_range, cbegin, cend, crbegin) 2920 (crend, cdata): Likewise. 2921 * include/bits/stl_iterator.h (iter_const_reference_t) 2922 (basic_const_iterator, const_iterator, const_sentinel) 2923 (make_const_iterator): Likewise. 2924 2925 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com> 2926 2927 Backported from master: 2928 2024-07-06 Jonathan Wakely <jwakely (a] redhat.com> 2929 2930 * include/std/variant (_Variant_storage::_M_reset): Use 2931 __unlikely__ form of attribute instead of unlikely. 2932 2933 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com> 2934 2935 Backported from master: 2936 2024-07-24 Jonathan Wakely <jwakely (a] redhat.com> 2937 2938 PR libstdc++/116070 2939 * include/std/istream: Check feature test macro before using 2940 is_class_v and is_same_v. 2941 * include/std/ostream: Likewise. 2942 2943 2024-08-01 Jonathan Wakely <jwakely (a] redhat.com> 2944 2945 Backported from master: 2946 2024-07-24 Jonathan Wakely <jwakely (a] redhat.com> 2947 2948 PR libstdc++/116070 2949 * include/bits/stl_bvector.h: Check feature test macro before 2950 using is_default_constructible_v. 2951 2952 2024-08-01 Release Manager 2953 2954 * GCC 14.2.0 released. 2955 2956 2024-07-23 Jonathan Wakely <jwakely (a] redhat.com> 2957 2958 Backported from master: 2959 2024-07-23 Jonathan Wakely <jwakely (a] redhat.com> 2960 2961 * src/c++23/print.cc (__open_terminal): Use [[maybe_unused]] on 2962 parameter. 2963 2964 2024-07-23 Detlef Vollmann <dv (a] vollmann.ch> 2965 2966 Backported from master: 2967 2024-07-23 Detlef Vollmann <dv (a] vollmann.ch> 2968 2969 PR libstdc++/115482 2970 * src/c++23/print.cc (__open_terminal) [__AVR__]: Do not use 2971 isatty. 2972 2973 2024-07-12 Jonathan Wakely <jwakely (a] redhat.com> 2974 2975 Backported from master: 2976 2024-06-13 Jonathan Wakely <jwakely (a] redhat.com> 2977 2978 PR libstdc++/113376 2979 * include/pstl/pstl_config.h: Use #if instead of #ifdef to test 2980 the _PSTL_USAGE_WARNINGS macro. 2981 2982 2024-07-12 Jonathan Wakely <jwakely (a] redhat.com> 2983 2984 Backported from master: 2985 2024-06-21 Jonathan Wakely <jwakely (a] redhat.com> 2986 2987 PR libstdc++/115522 2988 * include/std/array (to_array): Workaround the fact that 2989 std::is_trivial is not sufficient to check that a type is 2990 trivially default constructible and assignable. 2991 * testsuite/23_containers/array/creation/115522.cc: New test. 2992 2993 2024-07-09 Jonathan Wakely <jwakely (a] redhat.com> 2994 2995 Backported from master: 2996 2024-07-08 Jonathan Wakely <jwakely (a] redhat.com> 2997 2998 PR libstdc++/115807 2999 * include/c_compatibility/stdatomic.h (_Atomic): Ensure it 3000 refers to std::atomic in the global namespace. 3001 * testsuite/29_atomics/headers/stdatomic.h/115807.cc: New test. 3002 3003 2024-07-09 Jonathan Wakely <jwakely (a] redhat.com> 3004 3005 Backported from master: 3006 2024-06-28 Jonathan Wakely <jwakely (a] redhat.com> 3007 3008 PR libstdc++/115585 3009 * src/c++11/assert_fail.cc (__glibcxx_assert_fail): Add 3010 definition for non-verbose builds. 3011 3012 2024-06-28 Jonathan Wakely <jwakely (a] redhat.com> 3013 3014 Backported from master: 3015 2024-06-27 Jonathan Wakely <jwakely (a] redhat.com> 3016 3017 PR libstdc++/115668 3018 * include/bits/chrono_io.h (formatter<duration<R,P, C>::format): 3019 Do not use chrono::abs. 3020 * testsuite/20_util/duration/io.cc: Check formatting a duration 3021 with unsigned rep. 3022 3023 2024-06-27 Jonathan Wakely <jwakely (a] redhat.com> 3024 3025 Backported from master: 3026 2024-06-25 Jonathan Wakely <jwakely (a] redhat.com> 3027 3028 * doc/xml/faq.xml: Replace viewcvs links with cgit links. 3029 * doc/xml/manual/allocator.xml: Likewise. 3030 * doc/xml/manual/mt_allocator.xml: Likewise. 3031 * doc/html/*: Regenerate. 3032 3033 2024-06-27 Alexandre Oliva <oliva (a] adacore.com> 3034 3035 Backported from master: 3036 2024-06-27 Alexandre Oliva <oliva (a] adacore.com> 3037 3038 PR libstdc++/115454 3039 * testsuite/experimental/simd/pr115454_find_last_set.cc: Defer 3040 to check_vect_support_and_set_flags's default dg-do action. 3041 3042 2024-06-25 Jonathan Wakely <jwakely (a] redhat.com> 3043 3044 * doc/xml/manual/status_cxx1998.xml: Remove confusing "not in 3045 any particular release" text. 3046 * doc/xml/manual/status_cxx2011.xml: Likewise. 3047 * doc/xml/manual/status_cxx2014.xml: Likewise. 3048 * doc/xml/manual/status_cxx2017.xml: Likewise. 3049 * doc/xml/manual/status_cxx2020.xml: Likewise. 3050 * doc/xml/manual/status_cxx2023.xml: Likewise. 3051 * doc/xml/manual/status_cxxtr1.xml: Likewise. 3052 * doc/xml/manual/status_cxxtr24733.xml: Likewise. 3053 * doc/html/manual/status.html: Regenerate. 3054 3055 2024-06-21 Matthias Kretz <m.kretz (a] gsi.de> 3056 3057 Backported from master: 3058 2024-06-21 Matthias Kretz <m.kretz (a] gsi.de> 3059 3060 PR libstdc++/115575 3061 * testsuite/experimental/simd/pr115454_find_last_set.cc: Require 3062 avx512f_runtime. Don't memcpy fixed_size masks. 3063 3064 2024-06-20 Matthias Kretz <m.kretz (a] gsi.de> 3065 3066 Backported from master: 3067 2024-06-20 Matthias Kretz <m.kretz (a] gsi.de> 3068 3069 PR libstdc++/115454 3070 * include/experimental/bits/simd_x86.h (_S_not_equal_to): Use 3071 neq comparison instead of bitwise negation after eq. 3072 (_S_find_last_set): Clear unused high bits before computing 3073 bit_width. 3074 * testsuite/experimental/simd/pr115454_find_last_set.cc: New 3075 test. 3076 3077 2024-06-14 Jonathan Wakely <jwakely (a] redhat.com> 3078 3079 Backported from master: 3080 2024-06-14 Jonathan Wakely <jwakely (a] redhat.com> 3081 3082 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Fix declaration of 3083 posix_memalign. 3084 3085 2024-06-10 Matthias Kretz <m.kretz (a] gsi.de> 3086 3087 Backported from master: 3088 2024-06-04 Matthias Kretz <m.kretz (a] gsi.de> 3089 3090 PR libstdc++/115308 3091 * include/experimental/bits/simd.h (__int_for_sizeof): Remove 3092 special cases for __clang__. 3093 (_SimdWrapper): Change constructor overload set to allow 3094 conversion from vector types with integral conversions via bit 3095 reinterpretation. 3096 3097 2024-06-10 Matthias Kretz <m.kretz (a] gsi.de> 3098 3099 Backported from master: 3100 2024-05-29 Matthias Kretz <m.kretz (a] gsi.de> 3101 3102 PR libstdc++/115247 3103 * include/experimental/bits/simd.h (__as_vector): Don't use 3104 vector_size(8) on __i386__. 3105 (__vec_shuffle): Never return MMX vectors, widen to 16 bytes 3106 instead. 3107 (concat): Fix padding calculation to pick up widening logic from 3108 __as_vector. 3109 3110 2024-06-10 Matthias Kretz <m.kretz (a] gsi.de> 3111 3112 Backported from master: 3113 2024-05-13 Matthias Kretz <m.kretz (a] gsi.de> 3114 3115 PR libstdc++/114958 3116 * include/experimental/bits/simd.h (__as_vector): Return scalar 3117 simd as one-element vector. Return vector from single-vector 3118 fixed_size simd. 3119 (__vec_shuffle): New. 3120 (__extract_part): Adjust return type signature. 3121 (split): Use __extract_part for any split into non-fixed_size 3122 simds. 3123 (concat): If the return type stores a single vector, use 3124 __vec_shuffle (which calls __builtin_shufflevector) to produce 3125 the return value. 3126 * include/experimental/bits/simd_builtin.h 3127 (__shift_elements_right): Removed. 3128 (__extract_part): Return single elements directly. Use 3129 __vec_shuffle (which calls __builtin_shufflevector) to for all 3130 non-trivial cases. 3131 * include/experimental/bits/simd_fixed_size.h (__extract_part): 3132 Return single elements directly. 3133 * testsuite/experimental/simd/pr114958.cc: New test. 3134 3135 2024-06-04 Jonathan Wakely <jwakely (a] redhat.com> 3136 3137 Backported from master: 3138 2024-06-04 Jonathan Wakely <jwakely (a] redhat.com> 3139 3140 PR libstdc++/115335 3141 * include/std/span (span::at): Guard with feature test macro. 3142 3143 2024-06-04 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE> 3144 3145 Backported from master: 3146 2024-05-29 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE> 3147 3148 PR libstdc++/111641 3149 * src/libbacktrace/Makefile.am (AM_CFLAGS): Add -funwind-tables. 3150 * src/libbacktrace/Makefile.in: Regenerate. 3151 * testsuite/19_diagnostics/stacktrace/current.cc (dg-options): Add 3152 -funwind-tables. 3153 * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise. 3154 * testsuite/19_diagnostics/stacktrace/hash.cc: Likewise. 3155 * testsuite/19_diagnostics/stacktrace/output.cc: Likewise. 3156 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise. 3157 3158 2024-06-03 Franois Dumont <frs.dumont (a] gmail.com> 3159 3160 Backported from master: 3161 2024-06-03 Franois Dumont <frs.dumont (a] gmail.com> 3162 3163 PR libstdc++/109849 3164 * include/bits/vector.tcc 3165 (std::vector<>::_M_range_insert(iterator, _FwdIt, _FwdIt, 3166 forward_iterator_tag))[__cplusplus < 201103L]: Add __builtin_unreachable 3167 expression to tell the compiler that the allocated buffer is large enough to 3168 receive current elements plus the elements of the range to insert. 3169 3170 2024-06-01 Jonathan Wakely <jwakely (a] redhat.com> 3171 3172 Backported from master: 3173 2024-06-01 Jonathan Wakely <jwakely (a] redhat.com> 3174 3175 PR libstdc++/115269 3176 * doc/xml/manual/using.xml: Replace link to gcc-4.3.2 docs. 3177 Replace list of -std=... options with a single entry for -std. 3178 * doc/html/manual/using.html: Regenerate. 3179 3180 2024-05-28 Jonathan Wakely <jwakely (a] redhat.com> 3181 3182 Backported from master: 3183 2024-05-22 Jonathan Wakely <jwakely (a] redhat.com> 3184 3185 PR libstdc++/114940 3186 * include/bits/version.def (generator): Depend on 3187 __cpp_sized_deallocation. 3188 * include/bits/version.h: Regenerate. 3189 * include/std/stacktrace (_GLIBCXX_SIZED_DELETE): New macro. 3190 (basic_stacktrace::_Impl::_M_deallocate): Use it. 3191 3192 2024-05-22 Jonathan Wakely <jwakely (a] redhat.com> 3193 3194 Backported from master: 3195 2024-05-22 Jonathan Wakely <jwakely (a] redhat.com> 3196 3197 PR libstdc++/115099 3198 * include/bits/std_thread.h: Declare formatter as friend of 3199 thread::id. 3200 * include/std/thread (operator<<): Convert non-void pointers to 3201 void pointers for output. 3202 (formatter): Add constraint that thread::native_handle_type is a 3203 pointer or integer. 3204 (formatter::format): Reimplement without basic_ostringstream. 3205 * testsuite/30_threads/thread/id/output.cc: Check output 3206 compiles before <sstream> has been included. 3207 3208 2024-05-17 Jonathan Wakely <jwakely (a] redhat.com> 3209 3210 Backported from master: 3211 2024-05-17 Jonathan Wakely <jwakely (a] redhat.com> 3212 3213 PR libstdc++/115119 3214 * include/bits/unicode.h (_Iterator::operator++(int)): Fix typo 3215 in increment expression. 3216 * testsuite/ext/unicode/grapheme_view.cc: Check post-increment 3217 on view's iterator. 3218 3219 2024-05-14 Jonathan Wakely <jwakely (a] redhat.com> 3220 3221 PR libstdc++/115015 3222 * src/c++23/print.cc (__open_terminal(streambuf*)) [!__cpp_rtti]: 3223 Do not use dynamic_cast. 3224 3225 2024-05-14 Jonathan Wakely <jwakely (a] redhat.com> 3226 3227 Backported from master: 3228 2024-05-14 Jonathan Wakely <jwakely (a] redhat.com> 3229 3230 PR libstdc++/115063 3231 * include/std/stacktrace (basic_stacktrace::max_size): Fix typo 3232 in reference to _M_alloc member. 3233 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Check 3234 max_size() compiles. 3235 3236 2024-05-14 Jonathan Wakely <jwakely (a] redhat.com> 3237 3238 Backported from master: 3239 2024-05-01 Jonathan Wakely <jwakely (a] redhat.com> 3240 3241 PR libstdc++/114891 3242 * include/std/generator: Check feature test macro before using 3243 is_pointer_interconvertible_v. 3244 3245 2024-05-14 Jonathan Wakely <jwakely (a] redhat.com> 3246 3247 Backported from master: 3248 2024-05-07 Jonathan Wakely <jwakely (a] redhat.com> 3249 3250 * testsuite/util/testsuite_abi.cc: Update latest versions to 3251 new versions that should be used in future. 3252 3253 2024-05-14 Jonathan Wakely <jwakely (a] redhat.com> 3254 3255 Backported from master: 3256 2024-05-07 Jonathan Wakely <jwakely (a] redhat.com> 3257 3258 * include/bits/unicode.h (_Unicode_view::_M_read_utf8): Ensure 3259 count of characters consumed is correct when the end of the 3260 input is reached unexpectedly. 3261 * testsuite/ext/unicode/view.cc: Test incomplete UTF-8 3262 sequences. 3263 3264 2024-05-14 Jonathan Wakely <jwakely (a] redhat.com> 3265 3266 Backported from master: 3267 2024-05-07 Jonathan Wakely <jwakely (a] redhat.com> 3268 3269 PR libstdc++/114866 3270 * include/bits/out_ptr.h [!_GLIBCXX_HOSTED]: Don't refer to 3271 shared_ptr, __shared_ptr or __is_shred_ptr. 3272 * testsuite/20_util/headers/memory/114866.cc: New test. 3273 3274 2024-05-07 Release Manager 3275 3276 * GCC 14.1.0 released. 3277 3278 2024-05-03 Andreas Schwab <schwab (a] linux-m68k.org> 3279 3280 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update. 3281 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update. 3282 3283 2024-04-30 Jonathan Wakely <jwakely (a] redhat.com> 3284 3285 Backported from master: 3286 2024-04-30 Jonathan Wakely <jwakely (a] redhat.com> 3287 3288 PR libstdc++/114863 3289 * include/std/format (__formatter_fp::format): Only use 3290 _M_localized for finite values. 3291 * testsuite/std/format/functions/format.cc: Check localized 3292 formatting of NaN and initiny. 3293 3294 2024-04-29 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE> 3295 3296 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate. 3297 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt: 3298 Likewise. 3299 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise. 3300 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt: 3301 Likewise. 3302 3303 2024-04-29 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE> 3304 3305 Backported from master: 3306 2024-04-29 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE> 3307 3308 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate. 3309 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt: 3310 Likewise. 3311 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise. 3312 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt: 3313 Likewise. 3314 3315 2024-04-26 Jonathan Wakely <jwakely (a] redhat.com> 3316 3317 * doc/html/manual/status.html: Regenerate. 3318 * doc/xml/manual/status_cxx1998.xml: Replace references to 3319 mainline GCC. 3320 * doc/xml/manual/status_cxx2011.xml: Likewise. 3321 * doc/xml/manual/status_cxx2014.xml: Likewise. 3322 * doc/xml/manual/status_cxx2017.xml: Likewise. 3323 * doc/xml/manual/status_cxx2020.xml: Likewise. 3324 * doc/xml/manual/status_cxx2023.xml: Likewise. 3325 * doc/xml/manual/status_cxxtr1.xml: Likewise. 3326 * doc/xml/manual/status_cxxtr24733.xml: Likewise. 3327 3328 2024-04-25 Jonathan Wakely <jwakely (a] redhat.com> 3329 3330 * scripts/run_doxygen: Rename man pages for nested types. 3331 3332 2024-04-25 Jonathan Wakely <jwakely (a] redhat.com> 3333 3334 * include/std/chrono (tzdb_list): Fix typo in Doxygen comment. 3335 3336 2024-04-25 Jonathan Wakely <jwakely (a] redhat.com> 3337 3338 * scripts/run_doxygen: Adjust sed pattern to match '\fR' for 3339 new man output that Doxygen 1.10 generates. 3340 3341 2024-04-25 Jonathan Wakely <jwakely (a] redhat.com> 3342 3343 * doc/doxygen/stdheader.cc (init_map): Add missing headers. 3344 * doc/doxygen/user.cfg.in (EXCLUDE): Exclude generated files for 3345 std::format and std::text_encoding. 3346 3347 2024-04-25 Jonathan Wakely <jwakely (a] redhat.com> 3348 3349 * include/std/variant: Add comment to #include. 3350 3351 2024-04-22 Matthias Kretz <m.kretz (a] gsi.de> 3352 3353 PR libstdc++/114803 3354 * include/experimental/bits/simd_builtin.h 3355 (_SimdBase2::operator __vector_type_t): There is no __builtin() 3356 function in _SimdWrapper, instead use its conversion operator. 3357 * testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc: New 3358 test. 3359 3360 2024-04-22 Matthias Kretz <m.kretz (a] gsi.de> 3361 3362 * include/experimental/bits/simd.h: Ignore -Wnarrowing for 3363 arm_neon.h. 3364 (__int_for_sizeof): Replace tautological compare with checking 3365 for invalid template parameter value. 3366 * include/experimental/bits/simd_builtin.h (__extract_part): 3367 Remove tautological compare by combining two static_assert. 3368 3369 2024-04-22 Jakub Jelinek <jakub (a] redhat.com> 3370 3371 * testsuite/17_intro/names.cc (d, f): Undefine on s390*-linux*. 3372 * testsuite/17_intro/headers/c++1998/all_attributes.cc (packed): Don't 3373 define on s390. 3374 * testsuite/17_intro/headers/c++2011/all_attributes.cc (packed): 3375 Likewise. 3376 * testsuite/17_intro/headers/c++2014/all_attributes.cc (packed): 3377 Likewise. 3378 * testsuite/17_intro/headers/c++2017/all_attributes.cc (packed): 3379 Likewise. 3380 * testsuite/17_intro/headers/c++2020/all_attributes.cc (packed): 3381 Likewise. 3382 3383 2024-04-19 Jonathan Wakely <jwakely (a] redhat.com> 3384 3385 * include/bits/refwrap.h (operator<=>): Simplify constraints. 3386 3387 2024-04-19 Jonathan Wakely <jwakely (a] redhat.com> 3388 3389 PR libstdc++/114770 3390 * src/c++20/tzdb.cc (do_locate_zone): Support links that have 3391 another link as their target. 3392 * testsuite/std/time/tzdb/1.cc: Check that all zones and links 3393 can be found by locate_zone. 3394 * testsuite/std/time/tzdb/links.cc: New test. 3395 3396 2024-04-18 Alexandre Oliva <oliva (a] adacore.com> 3397 3398 * testsuite/29_atomics/atomic/compare_exchange_padding.cc: 3399 Disable SRA. 3400 3401 2024-04-18 Alexandre Oliva <oliva (a] adacore.com> 3402 3403 * testsuite/20_util/from_chars/8.cc: Skip float128_t testing 3404 on aarch64-vxworks. 3405 * testsuite/20_util/to_chars/float128_c++23.cc: Xfail run on 3406 aarch64-vxworks. 3407 3408 2024-04-18 Alexandre Oliva <oliva (a] adacore.com> 3409 3410 * src/c++20/tzdb.cc (__gnu_cxx::zoneinfo_dir_override): Define 3411 on VxWorks non-RTP. 3412 3413 2024-04-17 Jonathan Wakely <jwakely (a] redhat.com> 3414 3415 * include/std/ostream (println(ostream&)): Define new overload. 3416 * include/std/print (println(FILE*), println()): Likewise. 3417 * testsuite/27_io/basic_ostream/print/2.cc: New test. 3418 * testsuite/27_io/print/1.cc: Remove unused header. 3419 * testsuite/27_io/print/3.cc: New test. 3420 3421 2024-04-17 Matthias Kretz <m.kretz (a] gsi.de> 3422 3423 * include/experimental/bits/numeric_traits.h: Add include guard. 3424 3425 2024-04-17 Matthias Kretz <m.kretz (a] gsi.de> 3426 3427 PR libstdc++/114750 3428 * include/experimental/bits/simd_builtin.h 3429 (_SimdImplBuiltin::_S_load, _S_store): Fall back to copying 3430 scalars if the memory type cannot be vectorized for the target. 3431 3432 2024-04-16 Jonathan Wakely <jwakely (a] redhat.com> 3433 3434 * config/locale/dragonfly/numeric_members.cc: Fix typos in 3435 comments. 3436 * config/locale/gnu/numeric_members.cc: Likewise. 3437 3438 2024-04-15 Jonathan Wakely <jwakely (a] redhat.com> 3439 3440 * doc/xml/manual/abi.xml: Replace "<next>" with "14.1.0". 3441 * doc/html/manual/abi.html: Regenerate. 3442 3443 2024-04-15 Jonathan Wakely <jwakely (a] redhat.com> 3444 3445 * include/bits/refwrap.h (reference_wrapper): Add comparison 3446 operators as proposed by P2944R3. 3447 * include/bits/version.def (reference_wrapper): Define. 3448 * include/bits/version.h: Regenerate. 3449 * include/std/functional: Enable feature test macro. 3450 * testsuite/20_util/reference_wrapper/compare.cc: New test. 3451 3452 2024-04-15 Jonathan Wakely <jwakely (a] redhat.com> 3453 3454 PR libstdc++/113386 3455 * include/bits/stl_pair.h (operator==, operator<=>): Support 3456 heterogeneous comparisons, as per LWG 3865. 3457 * testsuite/20_util/pair/comparison_operators/lwg3865.cc: New 3458 test. 3459 3460 2024-04-15 Jonathan Wakely <jwakely (a] redhat.com> 3461 3462 PR libstdc++/93672 3463 * src/c++98/istream.cc (istream::ignore(streamsize, int_type)): 3464 Treat all negative delimiter values as eof(). 3465 * testsuite/27_io/basic_istream/ignore/char/93672.cc: New test. 3466 * testsuite/27_io/basic_istream/ignore/wchar_t/93672.cc: New 3467 test. 3468 3469 2024-04-15 Andreas Schwab <schwab (a] suse.de> 3470 3471 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update. 3472 3473 2024-04-13 H.J. Lu <hjl.tools (a] gmail.com> 3474 3475 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: 3476 Updated. 3477 3478 2024-04-11 Jakub Jelinek <jakub (a] redhat.com> 3479 3480 * doc/xml/manual/abi.xml: Add latest library versions. 3481 * doc/html/manual/abi.html: Regenerate. 3482 3483 2024-04-11 Jakub Jelinek <jakub (a] redhat.com> 3484 3485 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. 3486 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update. 3487 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update. 3488 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update. 3489 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update. 3490 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update. 3491 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update. 3492 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update. 3493 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update. 3494 3495 2024-04-11 Jonathan Wakely <jwakely (a] redhat.com> 3496 3497 PR libstdc++/114692 3498 * config/abi/pre/gnu.ver (GLIBCXX_3.4.32): Move new exports for 3499 __basic_file::native_handle to ... 3500 (GLIBCXX_3.4.33): ... here. Adjust to not match wchar_t 3501 specialization, which isn't used. 3502 * testsuite/util/testsuite_abi.cc: Add GLIBCXX_3.4.33 and update 3503 latest version check. 3504 3505 2024-04-11 Jakub Jelinek <jakub (a] redhat.com> 3506 3507 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. 3508 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update. 3509 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update. 3510 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update. 3511 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update. 3512 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update. 3513 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update. 3514 * config/abi/post/powerpc64le-linux-gnu/baseline_symbols.txt: Update. 3515 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update. 3516 3517 2024-04-10 Jonathan Wakely <jwakely (a] redhat.com> 3518 3519 * testsuite/27_io/manipulators/extended/get_time/char/2.cc: 3520 Adjust input string so that it matches %a with or without a 3521 trailing period. 3522 * testsuite/std/time/year_month_day/io.cc: Adjust expected 3523 format for %x in the fr_FR locale. 3524 3525 2024-04-10 Jonathan Wakely <jwakely (a] redhat.com> 3526 3527 * src/c++17/fs_ops.cc (remove_all) [__FreeBSD__ || __DragonFly__]: 3528 Check for EMLINK as well as ELOOP. 3529 [__NetBSD__]: Check for EFTYPE as well as ELOOP. 3530 3531 2024-04-09 Jonathan Wakely <jwakely (a] redhat.com> 3532 3533 PR libstdc++/114633 3534 * include/bits/chrono_io.h (_Parser::operator()) <'S'>: Use 3535 stream extraction if std::from_chars is not available. 3536 3537 2024-04-08 Jonathan Wakely <jwakely (a] redhat.com> 3538 3539 PR libstdc++/114519 3540 * include/bits/unicode.h (_Utf8_view) [!__cpp_char8_t]: Define 3541 using char instead of char8_t. 3542 * testsuite/ext/unicode/view.cc: Use u8""sv literals to create 3543 string views, instead of std::u8string_view. 3544 3545 2024-04-08 Jonathan Wakely <jwakely (a] redhat.com> 3546 3547 * testsuite/20_util/integer_comparisons/equal_neg.cc: Use 3548 no-opts selector for errors that depend on -fchar8_t. 3549 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc: 3550 Likewise. 3551 * testsuite/20_util/integer_comparisons/greater_neg.cc: 3552 Likewise. 3553 * testsuite/20_util/integer_comparisons/in_range_neg.cc: 3554 Likewise. 3555 * testsuite/20_util/integer_comparisons/less_equal_neg.cc: 3556 Likewise. 3557 * testsuite/20_util/integer_comparisons/less_neg.cc: Likewise. 3558 * testsuite/20_util/integer_comparisons/not_equal_neg.cc: 3559 Likewise. 3560 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc: Skip 3561 if -fno-char8_t is used. 3562 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc: 3563 Likewise. 3564 * testsuite/27_io/basic_ostream/inserters_character/char/deleted.cc: 3565 Likewise. 3566 * testsuite/27_io/basic_ostream/inserters_character/wchar_t/deleted.cc: 3567 Likewise. 3568 * testsuite/27_io/filesystem/path/factory/u8path-depr.cc: Use 3569 char for u8 literal if char8_t is not available. 3570 * testsuite/27_io/headers/iosfwd/synopsis.cc: Check 3571 __cpp_char8_t. 3572 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise. 3573 * testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc: 3574 Remove check for _GLIBCXX_USE_CHAR8_T. 3575 3576 2024-04-08 Jonathan Wakely <jwakely (a] redhat.com> 3577 3578 * testsuite/20_util/from_chars/1_neg.cc: Add char8_t cases, 3579 using a struct of that name if -fno-char8_t is active. 3580 * testsuite/20_util/from_chars/1_c++20_neg.cc: Removed. 3581 3582 2024-04-03 Jonathan Wakely <jwakely (a] redhat.com> 3583 3584 PR libstdc++/104606 3585 * include/std/optional (operator<=>(const optional<T>&, const U&)): 3586 Reverse order of three_way_comparable_with template arguments. 3587 * testsuite/20_util/optional/relops/104606.cc: New test. 3588 3589 2024-04-02 Jonathan Wakely <jwakely (a] redhat.com> 3590 3591 PR libstdc++/114519 3592 * include/bits/unicode.h (_Utf8_view): Guard with check for 3593 char8_t being enabled. 3594 (__literal_encoding_is_unicode): Guard use of char8_t with check 3595 for it being enabled. 3596 * testsuite/std/format/functions/114519.cc: New test. 3597 3598 2024-04-02 Patrick Palka <ppalka (a] redhat.com> 3599 3600 * include/std/ranges (ranges::__detail::_Empty): Rename to ... 3601 (ranges::__detail::_Absent): ... this. Turn into a template 3602 parameterized by the absent type _Tp and discriminator _Disc. 3603 (ranges::__detail::__maybe_present_t): Add an optional 3604 discriminator parameter. 3605 (slide_view::_M_cached_begin): Pass a discriminator argument to 3606 __maybe_present_t. 3607 (slide_view::_M_cached_end): Likewise. 3608 * testsuite/std/ranges/adaptors/sizeof.cc: Verify the size of 3609 slide_view<V> is 3 instead 4 pointers. 3610 3611 2024-04-02 Jakub Jelinek <jakub (a] redhat.com> 3612 3613 * acinclude.m4: Fix duplicated words; file file -> file can. 3614 * configure.host: Fix duplicated words; the the -> the. 3615 3616 2024-03-29 Arsen Arsenovi <arsen (a] aarsen.me> 3617 3618 * testsuite/24_iterators/range_generators/01.cc: Drop GCC 3619 Runtime Library Exception. 3620 * testsuite/24_iterators/range_generators/02.cc: Drop GCC 3621 Runtime Library Exception. 3622 * testsuite/24_iterators/range_generators/copy.cc: Drop GCC 3623 Runtime Library Exception. 3624 * testsuite/24_iterators/range_generators/except.cc: Drop GCC 3625 Runtime Library Exception. 3626 * testsuite/24_iterators/range_generators/subrange.cc: Drop GCC 3627 Runtime Library Exception. 3628 * testsuite/24_iterators/range_generators/synopsis.cc: Drop GCC 3629 Runtime Library Exception. 3630 * testsuite/24_iterators/range_generators/iter_deref_return.cc: 3631 Drop GCC Runtime Library Exception from the "You should have 3632 received a copy" paragraph. 3633 3634 2024-03-27 Matthias Kretz <m.kretz (a] gsi.de> 3635 3636 * include/experimental/bits/simd_x86.h (_S_masked_unary): 3637 Cast inputs < 16 bytes to 16 byte vectors before calling the 3638 right subtraction builtin. Before returning, truncate to the 3639 return vector type. 3640 3641 2024-03-27 Matthias Kretz <m.kretz (a] gsi.de> 3642 3643 * include/experimental/bits/simd_x86.h (_S_masked_unary): Call 3644 the 4- and 8-byte variants of __builtin_ia32_subp[ds] without 3645 rounding direction argument. 3646 3647 2024-03-27 Srinivas Yadav Singanaboina <vasu.srinivasvasu.14 (a] gmail.com> 3648 3649 * include/Makefile.am: Add simd_sve.h. 3650 * include/Makefile.in: Add simd_sve.h. 3651 * include/experimental/bits/simd.h: Add new SveAbi. 3652 * include/experimental/bits/simd_builtin.h: Use 3653 __no_sve_deduce_t to support existing Neon Abi. 3654 * include/experimental/bits/simd_converter.h: Convert 3655 sequentially when sve is available. 3656 * include/experimental/bits/simd_detail.h: Define sve 3657 specific macro. 3658 * include/experimental/bits/simd_math.h: Fallback frexp 3659 to execute sequntially when sve is available, to handle 3660 fixed_size_simd return type that always uses sve. 3661 * include/experimental/simd: Include bits/simd_sve.h. 3662 * testsuite/experimental/simd/tests/bits/main.h: Enable 3663 testing for sve128, sve256, sve512. 3664 * include/experimental/bits/simd_sve.h: New file. 3665 3666 2024-03-26 Arsen Arsenovi <arsen (a] aarsen.me> 3667 3668 * include/std/generator (generator::_Iterator::operator*): Fix 3669 return type. 3670 * testsuite/24_iterators/range_generators/iter_deref_return.cc: 3671 New test. 3672 3673 2024-03-26 Arsen Arsenovi <arsen (a] aarsen.me> 3674 3675 * include/std/generator: Fix _V badname. 3676 3677 2024-03-26 Jonathan Wakely <jwakely (a] redhat.com> 3678 3679 * testsuite/19_diagnostics/stacktrace/current.cc: Check for 3680 __cpp_lib_stacktrace instead of check for stacktrace ET. 3681 * testsuite/19_diagnostics/stacktrace/entry.cc: Likewise. 3682 * testsuite/19_diagnostics/stacktrace/hash.cc: Likewise. 3683 * testsuite/19_diagnostics/stacktrace/output.cc: Likewise. 3684 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: Likewise. 3685 * testsuite/19_diagnostics/stacktrace/synopsis.cc: Likewise. 3686 * testsuite/19_diagnostics/stacktrace/version.cc: Likewise. 3687 * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc: 3688 Likewise. 3689 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace): 3690 Remove. 3691 3692 2024-03-26 Jonathan Wakely <jwakely (a] redhat.com> 3693 3694 * testsuite/lib/dg-options.exp (dg-require-cpp-feature-test): 3695 New proc. 3696 * testsuite/lib/libstdc++.exp (check_v3_target_cpp_feature_test): 3697 New proc. 3698 * testsuite/std/text_encoding/cons.cc: Use new directive to skip 3699 the test if the __cpp_lib_text_encoding feature test macro is 3700 not defined. 3701 * testsuite/std/text_encoding/requirements.cc: Likewise. 3702 3703 2024-03-25 Jonathan Wakely <jwakely (a] redhat.com> 3704 3705 * testsuite/std/text_encoding/requirements.cc: #undef the 3706 correct macro. 3707 3708 2024-03-23 Jonathan Wakely <jwakely (a] redhat.com> 3709 3710 * include/std/format (formatter): Disable specializations that 3711 would allow sequences of narrow characters to be formatted as 3712 wchar_t without conversion, as per LWG 3944. 3713 * testsuite/std/format/formatter/lwg3944.cc: New test. 3714 3715 2024-03-23 Jonathan Wakely <jwakely (a] redhat.com> 3716 3717 * include/bits/utility.h (__is_in_place_index_v): New variable 3718 template. 3719 * include/std/variant (__not_in_place_tag): Define in terms of 3720 variable templates not a class template. 3721 3722 2024-03-23 Jonathan Wakely <jwakely (a] redhat.com> 3723 3724 PR libstdc++/114400 3725 * include/std/string_view (operator==): Use std::type_identity_t 3726 in C++20 instead of our own __type_identity_t. 3727 3728 2024-03-22 Jonathan Wakely <jwakely (a] redhat.com> 3729 3730 PR libstdc++/114401 3731 * include/bits/hashtable.h (_Hashtable::_M_reinsert_node): Call 3732 release() on node handle instead of just zeroing its pointer. 3733 (_Hashtable::_M_reinsert_node_multi): Likewise. 3734 (_Hashtable::_M_merge_unique): Likewise. 3735 (_Hashtable::_M_merge_multi): Likewise. 3736 * include/bits/node_handle.h (_Node_handle_common::release()): 3737 New member function. 3738 (_Node_handle_common::_Optional_alloc::_M_empty): Remove 3739 unnecessary union member. 3740 (_Node_handle_common): Declare _Hashtable as a friend. 3741 * include/bits/stl_tree.h (_Rb_tree::_M_reinsert_node_unique): 3742 Call release() on node handle instead of just zeroing its 3743 pointer. 3744 (_Rb_tree::_M_reinsert_node_equal): Likewise. 3745 (_Rb_tree::_M_reinsert_node_hint_unique): Likewise. 3746 (_Rb_tree::_M_reinsert_node_hint_equal): Likewise. 3747 * testsuite/23_containers/multiset/modifiers/114401.cc: New test. 3748 * testsuite/23_containers/set/modifiers/114401.cc: New test. 3749 * testsuite/23_containers/unordered_multiset/modifiers/114401.cc: New test. 3750 * testsuite/23_containers/unordered_set/modifiers/114401.cc: New test. 3751 3752 2024-03-22 Jonathan Wakely <jwakely (a] redhat.com> 3753 3754 PR libstdc++/113841 3755 * include/bits/allocator.h (allocator<cv T>): Add default 3756 constructor to partial specializations for cv-qualified types. 3757 * include/bits/stl_vector.h (_Vector_impl::_Vector_impl()): 3758 Constrain so that it's only present if the allocator is default 3759 constructible. 3760 * include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()): 3761 Likewise. 3762 * testsuite/23_containers/vector/cons/113841.cc: New test. 3763 3764 2024-03-22 Jonathan Wakely <jwakely (a] redhat.com> 3765 3766 * include/bits/stl_construct.h (destroy_at, construct_at): Guard 3767 with feature test macros instead of just __cplusplus. 3768 3769 2024-03-22 Jonathan Wakely <jwakely (a] redhat.com> 3770 3771 * include/bits/version.def (generator, tuple_like): Move earlier 3772 in the file. 3773 * include/bits/version.h: Regenerate. 3774 3775 2024-03-22 Jonathan Wakely <jwakely (a] redhat.com> 3776 3777 PR libstdc++/114394 3778 * include/std/functional (bind): Use __invoke_result_t instead 3779 of result_of::type. 3780 * include/std/type_traits (__invoke_result_t): New alias 3781 template. 3782 * testsuite/20_util/bind/ref_neg.cc: Adjust prune pattern. 3783 3784 2024-03-20 Franois Dumont <fdumont (a] gcc.gnu.org> 3785 3786 * include/bits/version.def (null_iterators): Remove extra_cond. 3787 * include/bits/version.h: Regenerate. 3788 3789 2024-03-19 Jonathan Wakely <jwakely (a] redhat.com> 3790 3791 PR libstdc++/114359 3792 * include/bits/random.tcc (binomial_distribution::param_type): 3793 Ensure arithmetic is done as type double. 3794 * testsuite/26_numerics/random/binomial_distribution/114359.cc: New test. 3795 3796 2024-03-19 Jonathan Wakely <jwakely (a] redhat.com> 3797 3798 PR libstdc++/101228 3799 * include/pstl/parallel_backend_tbb.h (TBB_SUPPRESS_DEPRECATED_MESSAGES): 3800 Define before including <tbb/task.h> then undef afterwards. 3801 3802 2024-03-19 Jonathan Wakely <jwakely (a] redhat.com> 3803 3804 * include/Makefile.am [MAINTAINER_MODE]: Add target to 3805 automatically update <bits/version.h>. 3806 * include/Makefile.in: Regenerate. 3807 3808 2024-03-19 Jonathan Wakely <jwakely (a] redhat.com> 3809 3810 * doc/xml/manual/build_hacking.xml: Document generated files. 3811 Update list of convenience libraries and sub-directories under 3812 the src directory. 3813 * doc/html/*: Regenerate. 3814 3815 2024-03-19 Jonathan Wakely <jwakely (a] redhat.com> 3816 3817 * include/bits/text_encoding-data.h: Regenerate. 3818 * include/bits/unicode-data.h: Regenerate. 3819 * scripts/gen_text_encoding_data.py: Fix header of generated 3820 file to name the correct script. 3821 3822 2024-03-19 Jonathan Wakely <jwakely (a] redhat.com> 3823 3824 * testsuite/util/pstl/test_utils.h: Fix typos in comments. 3825 3826 2024-03-19 Jonathan Wakely <jwakely (a] redhat.com> 3827 3828 PR libstdc++/114367 3829 * include/bits/stl_bvector.h (_M_allocate): Use allocator's 3830 construct function to begin lifetime of words. 3831 3832 2024-03-19 Iain Sandoe <iain (a] sandoe.co.uk> 3833 3834 * testsuite/lib/dg-options.exp (atomic_link_flags): Emit a -B 3835 option for the path to the uninstalled libatomic. 3836 3837 2024-03-19 Iain Sandoe <iain (a] sandoe.co.uk> 3838 3839 * testsuite/lib/libstdc++.exp (v3_target_compile): Instead of 3840 /dev/null, use a temporary file for test executables on Darwin. 3841 3842 2024-03-18 Franois Dumont <fdumont (a] gcc.gnu.org> 3843 3844 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_can_advance): 3845 Accept 0 offset advance on value-initialized iterator. 3846 * testsuite/23_containers/vector/debug/n3644.cc: New test case. 3847 3848 2024-03-18 Franois Dumont <fdumont (a] gcc.gnu.org> 3849 3850 * include/debug/safe_local_iterator.tcc 3851 (_Safe_local_iterator::_M_valid_range): Add _M_value_initialized and 3852 _M_singular checks. 3853 * testsuite/23_containers/unordered_set/debug/114316.cc: New test case. 3854 3855 2024-03-17 Franois Dumont <fdumont (a] gcc.gnu.org> 3856 3857 PR libstdc++/114316 3858 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): 3859 First check if both iterators are value-initialized before checking if 3860 singular. 3861 * testsuite/23_containers/set/debug/114316.cc: New test case. 3862 * testsuite/23_containers/vector/debug/114316.cc: New test case. 3863 3864 2024-03-14 Jonathan Wakely <jwakely (a] redhat.com> 3865 3866 PR libstdc++/114325 3867 * include/std/format (_Scanner::_M_scan): Pass correct length to 3868 __to_chars_10_impl. 3869 * testsuite/std/format/functions/format.cc: Check negative 3870 integers with empty format-spec. 3871 3872 2024-03-14 Jonathan Wakely <jwakely (a] redhat.com> 3873 3874 * include/bits/stl_algo.h (find_end, all_of, none_of, any_of) 3875 (find_if_not, is_partitioned, partition_point, remove) 3876 (remove_if, unique, lower_bound, upper_bound, equal_range) 3877 (binary_search, includes, is_sorted, is_sorted_until, minmax) 3878 (minmax_element, is_permutation, clamp, find_if, find_first_of) 3879 (adjacent_find, count, count_if, search, search_n, min_element) 3880 (max_element): Add nodiscard attribute. 3881 * include/bits/stl_algobase.h (min, max, lower_bound, equal) 3882 (lexicographical_compare, lexicographical_compare_three_way) 3883 (mismatch): Likewise. 3884 * include/bits/stl_heap.h (is_heap, is_heap_until): Likewise. 3885 * testsuite/25_algorithms/equal/debug/1_neg.cc: Add dg-warning. 3886 * testsuite/25_algorithms/equal/debug/2_neg.cc: Likewise. 3887 * testsuite/25_algorithms/equal/debug/3_neg.cc: Likewise. 3888 * testsuite/25_algorithms/find_first_of/concept_check_1.cc: 3889 Likewise. 3890 * testsuite/25_algorithms/is_permutation/2.cc: Likewise. 3891 * testsuite/25_algorithms/lexicographical_compare/71545.cc: 3892 Likewise. 3893 * testsuite/25_algorithms/lower_bound/33613.cc: Likewise. 3894 * testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: 3895 Likewise. 3896 * testsuite/25_algorithms/lower_bound/debug/partitioned_neg.cc: 3897 Likewise. 3898 * testsuite/25_algorithms/lower_bound/debug/partitioned_pred_neg.cc: 3899 Likewise. 3900 * testsuite/25_algorithms/minmax/3.cc: Likewise. 3901 * testsuite/25_algorithms/search/78346.cc: Likewise. 3902 * testsuite/25_algorithms/search_n/58358.cc: Likewise. 3903 * testsuite/25_algorithms/unique/1.cc: Likewise. 3904 * testsuite/25_algorithms/unique/11480.cc: Likewise. 3905 * testsuite/25_algorithms/upper_bound/33613.cc: Likewise. 3906 * testsuite/25_algorithms/upper_bound/debug/partitioned_neg.cc: 3907 Likewise. 3908 * testsuite/25_algorithms/upper_bound/debug/partitioned_pred_neg.cc: 3909 Likewise. 3910 * testsuite/ext/concept_checks.cc: Likewise. 3911 * testsuite/ext/is_heap/47709.cc: Likewise. 3912 * testsuite/ext/is_sorted/cxx0x.cc: Likewise. 3913 3914 2024-03-14 xndcn <xndchn (a] gmail.com> 3915 3916 * include/bits/atomic_base.h (__atomic_float::__atomic_float(Fp)): 3917 Clear padding. 3918 * testsuite/29_atomics/atomic_float/compare_exchange_padding.cc: 3919 New test. 3920 3921 2024-03-14 Jonathan Wakely <jwakely (a] redhat.com> 3922 3923 PR libstdc++/66146 3924 * doc/xml/manual/status_cxx2011.xml: Remove mention of Linux in 3925 note about std::call_once. 3926 * doc/xml/manual/status_cxx2014.xml: Likewise. 3927 * doc/xml/manual/status_cxx2017.xml: Likewise. 3928 * doc/html/manual/status.html: Regenerate. 3929 3930 2024-03-14 Jonathan Wakely <jwakely (a] redhat.com> 3931 3932 * doc/xml/manual/status_cxx2023.xml: Update C++23 status table. 3933 * doc/html/manual/status.html: Regenerate. 3934 * include/bits/version.def: Fix typo in comment. 3935 3936 2024-03-13 Jonathan Wakely <jwakely (a] redhat.com> 3937 3938 * testsuite/libstdc++-prettyprinters/cxx11.cc: Move custom_cat 3939 to namespace scope. 3940 3941 2024-03-13 Jonathan Wakely <jwakely (a] redhat.com> 3942 3943 * doc/xml/manual/debug.xml: Improve docs on debug builds and 3944 using ASan. Mention _GLIBCXX_ASSERTIONS. Reorder sections to put 3945 the most relevant ones first. 3946 * doc/xml/manual/using.xml: Add comma. 3947 * doc/html/*: Regenerate. 3948 3949 2024-03-13 Jonathan Wakely <jwakely (a] redhat.com> 3950 3951 * doc/xml/manual/debug.xml: Document that concept checking might 3952 be removed in future. 3953 * doc/xml/manual/extensions.xml: Likewise. 3954 3955 2024-03-09 Jonathan Wakely <jwakely (a] redhat.com> 3956 3957 PR libstdc++/114240 3958 * include/bits/chrono_io.h (_Parser::operator()): Assume 3959 hours(0) for a time_point, so that a time is not required 3960 to be present. 3961 * testsuite/std/time/parse/114240.cc: New test. 3962 3963 2024-03-09 Jonathan Wakely <jwakely (a] redhat.com> 3964 3965 PR libstdc++/114279 3966 * include/bits/chrono_io.h (_Parser::_M_is_leap_second): New 3967 data member. 3968 (_Parser::_M_reserved): Reserve padding bits for future use. 3969 (_Parser::operator()): Set _M_is_leap_second if %S reads 60s. 3970 (from_stream): Only allow _M_is_leap_second for utc_time and 3971 local_time. Adjust arithmetic for utc_time so that leap seconds 3972 are preserved. Use time_point_cast to convert to a possibly 3973 lower-precision result type. 3974 * testsuite/std/time/parse.cc: Move to ... 3975 * testsuite/std/time/parse/parse.cc: ... here. 3976 * testsuite/std/time/parse/114279.cc: New test. 3977 3978 2024-03-07 Jonathan Wakely <jwakely (a] redhat.com> 3979 3980 * include/bits/chrono_io.h (_Parser::operator()): Use 3981 std::from_chars to parse fractional seconds. 3982 3983 2024-03-07 Jonathan Wakely <jwakely (a] redhat.com> 3984 3985 PR libstdc++/114244 3986 * include/bits/chrono_io.h (_Parser::operator()): Remove 3987 redundant uses of duration_cast. Use chrono::round to convert 3988 long double value to durations with integer representations. 3989 Check represenation type when deciding whether to skip parsing 3990 fractional seconds. 3991 * testsuite/20_util/duration/114244.cc: New test. 3992 * testsuite/20_util/duration/io.cc: Check that a floating-point 3993 duration with ratio<1> precision can be parsed. 3994 3995 2024-03-07 Jonathan Wakely <jwakely (a] redhat.com> 3996 3997 PR libstdc++/114103 3998 * include/bits/version.def (atomic_lock_free_type_aliases): Add 3999 extra_cond to check for at least one always-lock-free type. 4000 * include/bits/version.h: Regenerate. 4001 * include/std/atomic (atomic_signed_lock_free) 4002 (atomic_unsigned_lock_free): Only use always-lock-free types. 4003 * src/c++20/tzdb.cc (time_zone::_Impl::RulesCounter): Don't use 4004 atomic counter if lock-free aliases aren't available. 4005 * testsuite/29_atomics/atomic/lock_free_aliases.cc: XFAIL for 4006 targets without lock-free word-size compare_exchange. 4007 4008 2024-03-07 Jonathan Wakely <jwakely (a] redhat.com> 4009 4010 * include/std/chrono (__get_leap_second_info): Update expiry 4011 time for hardcoded list of leap seconds. 4012 * testsuite/std/time/tzdb/leap_seconds.cc: Update comment. 4013 4014 2024-03-07 Jonathan Wakely <jwakely (a] redhat.com> 4015 4016 * testsuite/23_containers/deque/allocator/default_init.cc: Use 4017 std::memset instead of __builtin_memset. 4018 * testsuite/23_containers/forward_list/allocator/default_init.cc: 4019 Likewise. 4020 * testsuite/23_containers/list/allocator/default_init.cc: 4021 Likewise. 4022 * testsuite/23_containers/map/allocator/default_init.cc: 4023 Likewise. 4024 * testsuite/23_containers/set/allocator/default_init.cc: 4025 Likewise. 4026 * testsuite/23_containers/unordered_map/allocator/default_init.cc: 4027 Likewise. 4028 * testsuite/23_containers/unordered_set/allocator/default_init.cc: 4029 Likewise. 4030 * testsuite/23_containers/vector/allocator/default_init.cc: 4031 Likewise. 4032 * testsuite/23_containers/vector/bool/allocator/default_init.cc: 4033 Likewise. 4034 * testsuite/29_atomics/atomic/compare_exchange_padding.cc: 4035 Likewise. 4036 * testsuite/util/atomic/wait_notify_util.h: Likewise. 4037 4038 2024-03-07 Jonathan Wakely <jwakely (a] redhat.com> 4039 4040 * include/std/format (_Arg_store::_S_make_elt): Add two 4041 static_assert checks to give more user-friendly error messages. 4042 * testsuite/lib/prune.exp (libstdc++-dg-prune): Prune another 4043 form of "in requirements with" note. 4044 * testsuite/std/format/arguments/args_neg.cc: Check for 4045 user-friendly diagnostics for non-formattable types. 4046 * testsuite/std/format/string_neg.cc: Likewise. 4047 4048 2024-03-04 Jonathan Wakely <jwakely (a] redhat.com> 4049 4050 PR libstdc++/114147 4051 * include/std/tuple (tuple::tuple(allocator_arg_t, const Alloc&)): 4052 Add missing overload of allocator-extended default constructor. 4053 (tuple<T1,T2>::tuple(allocator_arg_t, const Alloc&)): Likewise. 4054 * testsuite/20_util/tuple/cons/114147.cc: New test. 4055 4056 2024-02-29 Jonathan Wakely <jwakely (a] redhat.com> 4057 4058 * include/std/format (basic_format_arg::handle::__maybe_const_t): 4059 Fix condition to check if const type is formattable. 4060 (basic_format_arg::handle::handle(T&)): Remove redundant 4061 static_assert. 4062 * testsuite/std/format/formatter/basic.cc: New test. 4063 4064 2024-02-29 Jonathan Wakely <jwakely (a] redhat.com> 4065 4066 PR libstdc++/113960 4067 * include/bits/stl_algobase.h (__is_byte_iter): Replace with ... 4068 (__memcmp_ordered_with): New concept. 4069 (lexicographical_compare_three_way): Use __memcmp_ordered_with 4070 instead of __is_byte_iter. Use correct length for memcmp. 4071 * testsuite/25_algorithms/lexicographical_compare_three_way/113960.cc: 4072 New test. 4073 4074 2024-02-28 Jonathan Wakely <jwakely (a] redhat.com> 4075 4076 PR libstdc++/114152 4077 * include/experimental/scope (scope_exit scope_fail): Make 4078 destructor unconditionally noexcept. 4079 (scope_sucess): Fix noexcept-specifier. 4080 * testsuite/experimental/scopeguard/114152.cc: New test. 4081 4082 2024-02-28 Jonathan Wakely <jwakely (a] redhat.com> 4083 4084 * doc/xml/manual/appendix_contributing.xml: Change URLs to use 4085 https. 4086 * doc/html/manual/*: Regenerate. 4087 4088 2024-02-28 Jonathan Wakely <jwakely (a] redhat.com> 4089 4090 * doc/xml/manual/appendix_contributing.xml: Replace outdated 4091 info on ChangeLog entries. 4092 * doc/html/manual/appendix_contributing.html: Regenerate. 4093 4094 2024-02-28 Jonathan Wakely <jwakely (a] redhat.com> 4095 4096 * include/bits/stl_bvector.h (vector<bool, A>::at): Add 4097 nodiscard. 4098 * include/bits/stl_vector.h (vector<T, A>::at): Likewise. 4099 (operator==, operator<=>, operator<, operator!=, operator>) 4100 (operator<=, operator>=): Likewise. 4101 * include/debug/vector (operator==, operator<=>, operator<) 4102 (operator!=, operator>, operator<=, operator>=): Likewise. 4103 * testsuite/23_containers/vector/nodiscard.cc: New test. 4104 4105 2024-02-28 Jonathan Wakely <jwakely (a] redhat.com> 4106 4107 * include/bits/atomic_base.h (operator|, operator&): Add 4108 noexcept. 4109 * include/bits/fs_fwd.h (operator&, operator|, operator^) 4110 (operator~): Add nodiscard to overloads for copy_options, perms, 4111 perm_options, and directory_options. 4112 * include/bits/ios_base.h (operator&, operator|, operator^) 4113 (operator~): Add nodiscard and noexcept to overloads for 4114 _Ios_Fmtflags, _Ios_Openmode, and _Ios_Iostate. 4115 (operator|=, operator&=, operator^=): Add constexpr for C++14. 4116 * include/bits/regex_constants.h (operator&, operator|, operator^) 4117 (operator~): Add nodiscard and noexcept to overloads for 4118 syntax_option_type and match_flag_type. 4119 (operator|=, operator&=, operator^=): Add noexcept. 4120 * include/std/charconv (operator&, operator|, operator^) 4121 (operator~): Add nodiscard to overloads for chars_format. 4122 * include/std/future (operator&, operator|, operator^) 4123 (operator~): Add nodiscard for overloads for launch. 4124 (operator&=, operator|=, operator^=): Add constexpr for C++14. 4125 * include/experimental/bits/fs_fwd.h (operator&, operator|) 4126 (operator^, operator~): Add nodiscard to overloads for 4127 copy_options, perms, and directory_options. 4128 * testsuite/27_io/ios_base/types/fmtflags/bitmask_operators.cc: 4129 Add dg-warning for nodiscard warnings. 4130 * testsuite/27_io/ios_base/types/iostate/bitmask_operators.cc: 4131 Likewise. 4132 * testsuite/27_io/ios_base/types/openmode/bitmask_operators.cc: 4133 Likewise. 4134 * testsuite/27_io/filesystem/operations/bitmask_types.cc: 4135 New test. 4136 4137 2024-02-28 Jonathan Wakely <jwakely (a] redhat.com> 4138 4139 * testsuite/27_io/basic_ostream/print/1.cc: Check error 4140 handling. 4141 * testsuite/27_io/print/1.cc: Likewise. 4142 4143 2024-02-28 Jonathan Wakely <jwakely (a] redhat.com> 4144 4145 * include/std/ostream (vprint_unicode) [__CYGWIN__]: Use POSIX 4146 code path for Cygwin instead of Windows. 4147 * include/std/print (vprint_unicode) [__CYGWIN__]: Likewise. 4148 * testsuite/27_io/basic_ostream/print/1.cc: Only add -lstdc++exp 4149 for *-*-mingw* targets. 4150 * testsuite/27_io/print/1.cc: Likewise. 4151 4152 2024-02-28 Jonathan Wakely <jwakely (a] redhat.com> 4153 4154 * include/bits/alloc_traits.h: Include <bits/stl_iterator.h> for 4155 __make_move_if_noexcept_iterator. 4156 4157 2024-02-28 Jonathan Wakely <jwakely (a] redhat.com> 4158 4159 * include/std/stacktrace: Add nodiscard attribute to all 4160 functions without side effects. 4161 4162 2024-02-20 Franois Dumont <fdumont (a] gcc.gnu.org> 4163 4164 * include/bits/stl_algobase.h (std::__niter_wrap): Add a call to 4165 std::__niter_base on res iterator. 4166 4167 2024-02-19 Iain Sandoe <iain (a] sandoe.co.uk> 4168 Jonathan Wakely <jwakely (a] redhat.com> 4169 4170 PR target/112397 4171 * configure: Regenerate. 4172 * configure.ac: Detect if we are building for Darwin. 4173 * libsupc++/Makefile.am: If we are building for Darwin, then 4174 suppress hot/cold partitioning for the array allocators. 4175 * libsupc++/Makefile.in: Regenerated. 4176 4177 2024-02-17 Franois Dumont <fdumont (a] gcc.gnu.org> 4178 4179 * include/bits/stl_algobase.h (std::__niter_base): Redefine the overload 4180 definitions for __gnu_debug::_Safe_iterator. 4181 * include/debug/safe_iterator.tcc (std::__niter_base): Adapt declarations. 4182 4183 2024-02-16 Jonathan Wakely <jwakely (a] redhat.com> 4184 4185 PR libstdc++/87744 4186 PR libstdc++/113961 4187 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error 4188 line number. 4189 4190 2024-02-16 Jonathan Wakely <jwakely (a] redhat.com> 4191 4192 PR libstdc++/87744 4193 PR libstdc++/113931 4194 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error 4195 line number. 4196 4197 2024-02-16 Jonathan Wakely <jwakely (a] redhat.com> 4198 4199 * doc/xml/manual/debug_mode.xml: Update docs for backtraces. 4200 * doc/html/manual/debug_mode_using.html: Regenerate. 4201 4202 2024-02-16 Jonathan Wakely <jwakely (a] redhat.com> 4203 4204 * doc/xml/manual/test.xml: Fix spelling of <envar> elements. 4205 * doc/html/manual/test.html: Regenerate. 4206 4207 2024-02-15 Jonathan Wakely <jwakely (a] redhat.com> 4208 4209 PR libstdc++/113806 4210 * include/std/bitset (bitset::operator>>=): Remove redundant 4211 call to _M_do_sanitize. 4212 4213 2024-02-15 Jonathan Wakely <jwakely (a] redhat.com> 4214 4215 PR libstdc++/113807 4216 * include/std/bitset (bitset::set()): Use memset instead of a 4217 loop over the individual words. 4218 4219 2024-02-15 Jonathan Wakely <jwakely (a] redhat.com> 4220 4221 PR libstdc++/113811 4222 * include/bits/stl_algo.h (__rotate): Use unsigned values for 4223 division. 4224 4225 2024-02-15 Jonathan Wakely <jwakely (a] redhat.com> 4226 4227 PR libstdc++/99117 4228 * include/std/valarray (valarray::operator=(const _Expr&)): 4229 Use loop to copy instead of __valarray_copy with _Array. 4230 * testsuite/26_numerics/valarray/99117.cc: New test. 4231 4232 2024-02-15 Jonathan Wakely <jwakely (a] redhat.com> 4233 4234 * src/c++20/tzdata.zi: Import new file from 2024a release. 4235 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds) 4236 Update expiry date for leap seconds list. 4237 4238 2024-02-15 Jonathan Wakely <jwakely (a] redhat.com> 4239 4240 PR libstdc++/87744 4241 * include/bits/random.h [!__SIZEOF_INT128__] (_Select_uint_least_t): 4242 Define specialization for 64-bit generators with 4243 non-power-of-two modulus and large constants. 4244 (__mod): Use if constexpr unconditionally. 4245 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error 4246 line number. 4247 * testsuite/26_numerics/random/linear_congruential_engine/87744.cc: 4248 New test. 4249 4250 2024-02-14 Gerald Pfeifer <gerald (a] pfeifer.com> 4251 4252 * doc/xml/manual/status_cxx2023.xml: Fix C++ item p2442 to be 4253 version 1. 4254 * doc/html/manual/status.html: Regenerate. 4255 4256 2024-02-12 Paul Keir <paul.keir (a] uws.ac.uk> 4257 4258 PR libstdc++/113294 4259 * include/bits/basic_string.h (basic_string::operator=): Use 4260 _M_use_local_data() instead of _M_local_buf on the moved-from 4261 string. 4262 * testsuite/21_strings/basic_string/modifiers/constexpr.cc 4263 (test_move): New test. 4264 4265 2024-02-09 Ken Matsui <kmatsui (a] gcc.gnu.org> 4266 4267 * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_SAME): 4268 Removed. 4269 * include/std/type_traits (is_same): Use 4270 _GLIBCXX_USE_BUILTIN_TRAIT instead of 4271 _GLIBCXX_HAVE_BUILTIN_IS_SAME. 4272 (is_same_v): Likewise. 4273 4274 2024-02-08 Jonathan Wakely <jwakely (a] redhat.com> 4275 4276 * include/bits/shared_ptr_atomic.h: Fix typo in comment. 4277 4278 2024-02-08 Jonathan Wakely <jwakely (a] redhat.com> 4279 4280 PR libstdc++/100147 4281 * include/bits/gslice.h (operator=): Add comment about lack of 4282 self-assignment check. 4283 4284 2024-02-08 Jonathan Wakely <jwakely (a] redhat.com> 4285 4286 * include/tr2/type_traits (bases, direct_bases): Use 4287 __has_builtin to check if required built-ins are supported. 4288 4289 2024-02-07 Patrick Palka <ppalka (a] redhat.com> 4290 4291 PR testsuite/113710 4292 PR c++/113814 4293 * include/bits/stl_pair.h (tuple_element): Add forward 4294 declaration of the partial specialization for tuple. 4295 4296 2024-02-06 Torbjrn SVENSSON <torbjorn.svensson (a] foss.st.com> 4297 4298 * testsuite/lib/libstdc++.exp: Use "nul" for Windows, "/dev/null" 4299 for other environments. 4300 4301 2024-02-04 Jonathan Wakely <jwakely (a] redhat.com> 4302 4303 * include/std/format (__format::_Spec::_M_reserved): Define new 4304 bit-field members to reserve padding bits for future extensions. 4305 4306 2024-02-04 Jonathan Wakely <jwakely (a] redhat.com> 4307 4308 * src/experimental/Makefile.am: Use libstdc++fsconvenience.a 4309 instead of libstdc++fs.a. 4310 * src/experimental/Makefile.in: Regenerate. 4311 * src/filesystem/Makefile.am: Build libstdc++fsconvenience.a as 4312 well. 4313 * src/filesystem/Makefile.in: Regenerate. 4314 4315 2024-02-04 Jonathan Wakely <jwakely (a] redhat.com> 4316 4317 * include/bits/text_encoding-data.h: Regenerate. 4318 * include/bits/unicode-data.h: Regenerate. 4319 * scripts/gen_text_encoding_data.py: Add copyright and license 4320 text to the output. 4321 4322 2024-02-02 Jonathan Wakely <jwakely (a] redhat.com> 4323 4324 PR libstdc++/113335 4325 * include/bits/std_function.h (__function_guide_helper): Add 4326 partial specialization for explicit object member functions, as 4327 per LWG 3617. 4328 * testsuite/20_util/function/cons/deduction_c++23.cc: Check 4329 explicit object member functions. 4330 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc: 4331 Likewise. 4332 4333 2024-02-02 Jonathan Wakely <jwakely (a] redhat.com> 4334 4335 * testsuite/17_intro/names.cc [_AIX]: Undefine "u". 4336 4337 2024-02-02 Jonathan Wakely <jwakely (a] redhat.com> 4338 4339 * include/experimental/internet (network_v6::network): Define. 4340 (network_v6::hosts): Finish implementing. 4341 (network_v6::to_string): Do not concatenate std::string to 4342 arbitrary std::basic_string specialization. 4343 * testsuite/experimental/net/internet/network/v6/cons.cc: New 4344 test. 4345 4346 2024-02-02 Jonathan Wakely <jwakely (a] redhat.com> 4347 4348 PR libstdc++/90276 4349 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: Fix 4350 comparison function to use less-than instead of equality. 4351 4352 2024-02-02 Jonathan Wakely <jwakely (a] redhat.com> 4353 4354 PR libstdc++/90276 4355 * testsuite/util/pstl/test_utils.h (reverse_invoker): Do not use 4356 perfect forwarding for iterator arguments. 4357 4358 2024-02-02 Jonathan Wakely <jwakely (a] redhat.com> 4359 4360 * include/std/string_view (basic_string_view(R&&)): Remove 4361 constraint that traits_type must be the same, as per LWG 3857. 4362 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: 4363 Explicit conversion between different specializations should be 4364 allowed. 4365 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: 4366 Likewise. 4367 4368 2024-02-02 Jonathan Wakely <jwakely (a] redhat.com> 4369 4370 * include/std/syncstream (basic_osyncstream::operator=): Remove 4371 noexcept, as per LWG 3867. 4372 4373 2024-02-02 Jonathan Wakely <jwakely (a] redhat.com> 4374 4375 * include/std/generator (promise_type::yield_value): Remove 4376 noexcept from fourth overload, as per LWG 3894. 4377 4378 2024-02-01 Patrick Palka <ppalka (a] redhat.com> 4379 4380 PR libstdc++/113309 4381 PR libstdc++/109203 4382 * include/bits/ranges_util.h (__detail::__pair_like): Don't 4383 define in C++23 mode. 4384 (__detail::__pair_like_convertible_from): Adjust as per P2165R4. 4385 (__detail::__is_subrange<subrange>): Moved from <ranges>. 4386 (__detail::__is_tuple_like_v<subrange>): Likewise. 4387 * include/bits/stl_iterator.h: Include <bits/utility.h> for 4388 C++23. 4389 (__different_from): Move to <concepts>. 4390 (__iter_key_t): Adjust for C++23 as per P2165R4. 4391 (__iter_val_t): Likewise. 4392 * include/bits/stl_pair.h (pair, array): Forward declare. 4393 (get): Forward declare all overloads relevant to P2165R4 4394 tuple-like constructors. 4395 (__is_tuple_v): Define for C++23. 4396 (__is_tuple_like_v): Define for C++23. 4397 (__tuple_like): Define for C++23 as per P2165R4. 4398 (__pair_like): Define for C++23 as per P2165R4. 4399 (__eligibile_tuple_like): Define for C++23. 4400 (__eligibile_pair_like): Define for C++23. 4401 (pair::_S_constructible_from_pair_like): Define for C++23. 4402 (pair::_S_convertible_from_pair_like): Define for C++23. 4403 (pair::_S_dangles_from_pair_like): Define for C++23. 4404 (pair::pair): Define overloads taking a tuple-like type for 4405 C++23 as per P2165R4. 4406 (pair::_S_assignable_from_tuple_like): Define for C++23. 4407 (pair::_S_const_assignable_from_tuple_like): Define for C++23. 4408 (pair::operator=): Define overloads taking a tuple-like type for 4409 C++23 as per P2165R4. 4410 * include/bits/utility.h (ranges::__detail::__is_subrange): 4411 Moved from <ranges>. 4412 * include/bits/version.def (tuple_like): Define for C++23. 4413 * include/bits/version.h: Regenerate. 4414 * include/std/concepts (__different_from): Moved from 4415 <bits/stl_iterator.h>. 4416 (ranges::__swap::__adl_swap): Clarify which __detail namespace. 4417 * include/std/map (__cpp_lib_tuple_like): Define C++23. 4418 * include/std/ranges (__detail::__is_subrange): Moved to 4419 <bits/utility.h>. 4420 (__detail::__is_subrange<subrange>): Moved to <bits/ranges_util.h> 4421 (__detail::__has_tuple_element): Adjust for C++23 as per P2165R4. 4422 (__detail::__tuple_or_pair): Remove as per P2165R4. Replace all 4423 uses with plain tuple as per P2165R4. 4424 * include/std/tuple (__cpp_lib_tuple_like): Define for C++23. 4425 (__tuple_like_tag_t): Define for C++23. 4426 (__tuple_cmp): Forward declare for C++23. 4427 (_Tuple_impl::_Tuple_impl): Define overloads taking 4428 __tuple_like_tag_t and a tuple-like type for C++23. 4429 (_Tuple_impl::_M_assign): Likewise. 4430 (tuple::__constructible_from_tuple_like): Define for C++23. 4431 (tuple::__convertible_from_tuple_like): Define for C++23. 4432 (tuple::__dangles_from_tuple_like): Define for C++23. 4433 (tuple::tuple): Define overloads taking a tuple-like type for 4434 C++23 as per P2165R4. 4435 (tuple::__assignable_from_tuple_like): Define for C++23. 4436 (tuple::__const_assignable_from_tuple_like): Define for C++23. 4437 (tuple::operator=): Define overloads taking a tuple-like type 4438 for C++23 as per P2165R4. 4439 (tuple::__tuple_like_common_comparison_category): Define for C++23. 4440 (tuple::operator<=>): Define overload taking a tuple-like type 4441 for C++23 as per P2165R4. 4442 (array, get): Forward declarations moved to <bits/stl_pair.h>. 4443 (tuple_cat): Constrain with __tuple_like for C++23 as per P2165R4. 4444 (apply): Likewise. 4445 (make_from_tuple): Likewise. 4446 (__tuple_like_common_reference): Define for C++23. 4447 (basic_common_reference): Adjust as per P2165R4. 4448 (__tuple_like_common_type): Define for C++23. 4449 (common_type): Adjust as per P2165R4. 4450 * include/std/unordered_map (__cpp_lib_tuple_like): Define for 4451 C++23. 4452 * include/std/utility (__cpp_lib_tuple_like): Define for C++23. 4453 * testsuite/std/ranges/zip/1.cc (test01): Adjust to handle pair 4454 and 2-tuple interchangeably. 4455 (test05): New test. 4456 * testsuite/20_util/pair/p2165r4.cc: New test. 4457 * testsuite/20_util/tuple/p2165r4.cc: New test. 4458 4459 2024-02-01 Patrick Palka <ppalka (a] redhat.com> 4460 4461 * include/bits/stl_pair.h (pair::_S_const_assignable): Define, 4462 factored out from ... 4463 (pair::operator=): ... the constraints of the const overloads. 4464 4465 2024-02-01 Jonathan Wakely <jwakely (a] redhat.com> 4466 4467 * include/bits/version.tpl: Do not use def-file-line for each 4468 macro being defined. 4469 * include/bits/version.h: Regenerate. 4470 4471 2024-02-01 Jonathan Wakely <jwakely (a] redhat.com> 4472 4473 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Adjust 4474 dg-error pattern. 4475 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: 4476 Likewise. 4477 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: 4478 Likewise. 4479 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: 4480 Likewise. 4481 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: 4482 Likewise. 4483 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: 4484 Likewise. 4485 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: 4486 Likewise. 4487 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: 4488 Likewise. 4489 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: 4490 Likewise. 4491 4492 2024-02-01 Jonathan Wakely <jwakely (a] redhat.com> 4493 4494 * include/experimental/internet (network_v4::to_string()): 4495 Remove lambda and use of resize_and_overwrite. 4496 4497 2024-01-31 Jonathan Wakely <jwakely (a] redhat.com> 4498 4499 * acinclude.m4 (GLIBCXX_CHECK_TEXT_ENCODING): Use <xlocale.h> if 4500 needed for newlocale. 4501 * configure: Regenerate. 4502 * src/c++26/text_encoding.cc: Use <xlocale.h>. 4503 4504 2024-01-31 Jonathan Wakely <jwakely (a] redhat.com> 4505 Ewan Higgs <ewan.higgs (a] gmail.com> 4506 4507 * include/bits/text_encoding-data.h: Regenerate. 4508 * scripts/gen_text_encoding_data.py: Add extra_aliases dict 4509 containing "ASCII". 4510 * testsuite/std/text_encoding/cons.cc: Check "ascii" is known. 4511 4512 2024-01-31 Jonathan Wakely <jwakely (a] redhat.com> 4513 4514 * doc/xml/manual/using.xml: Update tables of supported headers. 4515 * doc/html/*: Regenerate. 4516 4517 2024-01-31 Jonathan Wakely <jwakely (a] redhat.com> 4518 4519 * include/std/bitset (_Base_bitset::_M_do_to_ullong): Avoid 4520 -Wshift-count-overflow warning. 4521 4522 2024-01-30 Jonathan Wakely <jwakely (a] redhat.com> 4523 4524 * testsuite/std/time/clock/gps/io.cc: Fix expected result in 4525 assertion and call test_format() from main. 4526 4527 2024-01-29 Franois Dumont <fdumont (a] gcc.gnu.org> 4528 4529 * doc/xml/manual/debug_mode.xml: Link against libstdc++exp.a to use 4530 _GLIBCXX_DEBUG_BACKTRACE macro. 4531 4532 2024-01-24 Huanghui Nie <nnnjkk (a] gmail.com> 4533 Tho Papadopoulo <papadopoulo (a] gmail.com> 4534 4535 * include/bits/hashtable.h (_Hahstable<>::_M_remove_bucket_begin): Remove 4536 _M_before_begin check and cleanup implementation. 4537 4538 2024-01-22 Jonathan Wakely <jwakely (a] redhat.com> 4539 4540 * testsuite/std/time/clock/file/io.cc: Fix expected result in 4541 assertion and call test_format() from main. 4542 4543 2024-01-21 Jonathan Wakely <jwakely (a] redhat.com> 4544 4545 PR libstdc++/113500 4546 * include/bits/chrono_io.h (__formatter_chrono::_M_S): Fix 4547 printing of subseconds with floating-point rep. 4548 (__formatter_chrono::_M_format_to_ostream): Do not write 4549 time_point specializations directly to the ostream. 4550 (formatter<chrono::sys_time<D>, C>::parse): Do not allow an 4551 empty chrono-spec if the type fails to meet the constraints for 4552 writing to an ostream with operator<<. 4553 * testsuite/std/time/clock/file/io.cc: Check formatting 4554 non-integral times with empty chrono-specs. 4555 * testsuite/std/time/clock/gps/io.cc: Likewise. 4556 * testsuite/std/time/clock/utc/io.cc: Likewise. 4557 * testsuite/std/time/hh_mm_ss/io.cc: Likewise. 4558 4559 2024-01-21 Jonathan Wakely <jwakely (a] redhat.com> 4560 4561 * include/bits/chrono.h (__file_clock::from_sys) 4562 (__file_clock::to_sys, __file_clock::_S_from_sys) 4563 (__file_clock::_S_to_sys): Use common_type for return type. 4564 * testsuite/std/time/clock/file/members.cc: Check round trip 4565 conversion for time with lower precision that seconds. 4566 4567 2024-01-21 Jonathan Wakely <jwakely (a] redhat.com> 4568 4569 PR libstdc++/113512 4570 * include/std/format (__formatter_fp::format): Fix logic for 4571 alternate forms. 4572 * testsuite/std/format/functions/format.cc: Check buggy cases of 4573 alternate forms with g presentation type. 4574 4575 2024-01-20 Marek Polacek <polacek (a] redhat.com> 4576 4577 PR c++/111410 4578 * include/std/ranges: Add #pragma to disable -Wdangling-reference with 4579 std::ranges::views::__adaptor::operator|. 4580 4581 2024-01-19 Jonathan Wakely <jwakely (a] redhat.com> 4582 4583 * include/std/format (_Spec::_M_parse_fill_and_align): Do not 4584 use CTAD for _Utf32_view. 4585 4586 2024-01-19 Jonathan Wakely <jwakely (a] redhat.com> 4587 4588 PR libstdc++/108822 4589 * include/std/tuple (__glibcxx_no_dangling_refs) [C++17]: Fix 4590 wrong fold-operator. 4591 * testsuite/20_util/tuple/dangling_ref.cc: Check tuples with one 4592 element and three elements. Check allocator-extended 4593 constructors. 4594 4595 2024-01-19 Patrick Palka <ppalka (a] redhat.com> 4596 4597 * include/precompiled/stdc++.h [_GLIBCXX_HOSTED]: Include 4598 <print> and <text_encoding> for C++23 and C++26 respectively. 4599 4600 2024-01-18 Patrick Palka <ppalka (a] redhat.com> 4601 4602 * include/bits/stl_pair.h [__cplusplus > 202002L]: 4603 Guard P2321R2 changes with __glibcxx_ranges_zip instead. 4604 4605 2024-01-18 Patrick Palka <ppalka (a] redhat.com> 4606 4607 * include/std/tuple [__cplusplus > 202002L]: Guard P2321R2 4608 changes with __cpp_lib_ranges_zip instead. 4609 4610 2024-01-18 Patrick Palka <ppalka (a] redhat.com> 4611 4612 PR libstdc++/109536 4613 * include/debug/safe_base.h (_Safe_sequence_base::_M_swap): 4614 Remove _GLIBCXX20_CONSTEXPR from non-inline member function. 4615 * include/debug/safe_iterator.h 4616 (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_BEGIN): Define. 4617 (_GLIBCXX20_CONSTEXPR_NON_LITERAL_SCOPE_END): Define. 4618 (_Safe_iterator::operator=): Use them around the code path that 4619 defines a variable of type __gnu_cxx::__scoped_lock. 4620 (_Safe_iterator::operator++): Likewise. 4621 (_Safe_iterator::operator--): Likewise. 4622 (_Safe_iterator::operator+=): Likewise. 4623 (_Safe_iterator::operator-=): Likewise. 4624 * testsuite/23_containers/vector/element_access/constexpr.cc 4625 (test_iterators): Test more iterator operations. 4626 * testsuite/23_containers/vector/bool/element_access/constexpr.cc 4627 (test_iterators): Likewise. 4628 * testsuite/std/ranges/adaptors/all.cc (test08) [_GLIBCXX_DEBUG]: 4629 Remove. 4630 4631 2024-01-18 Jonathan Wakely <jwakely (a] redhat.com> 4632 4633 * include/bits/unicode.h (__charset_alias_match): Initialize 4634 __var_a and __var_b. 4635 4636 2024-01-18 Jonathan Wakely <jwakely (a] redhat.com> 4637 4638 PR libstdc++/113450 4639 * testsuite/std/format/functions/format.cc: Use signed char 4640 instead of int8_t. 4641 4642 2024-01-17 Jonathan Wakely <jwakely (a] redhat.com> 4643 4644 PR libstdc++/113318 4645 * acinclude.m4 (GLIBCXX_CONFIGURE): Add c++26 directory. 4646 (GLIBCXX_CHECK_TEXT_ENCODING): Define. 4647 * config.h.in: Regenerate. 4648 * configure: Regenerate. 4649 * configure.ac: Use GLIBCXX_CHECK_TEXT_ENCODING. 4650 * include/Makefile.am: Add new headers. 4651 * include/Makefile.in: Regenerate. 4652 * include/bits/locale_classes.h (locale::encoding): Declare new 4653 member function. 4654 * include/bits/unicode.h (__charset_alias_match): New function. 4655 * include/bits/text_encoding-data.h: New file. 4656 * include/bits/version.def (text_encoding): Define. 4657 * include/bits/version.h: Regenerate. 4658 * include/std/text_encoding: New file. 4659 * src/Makefile.am: Add new subdirectory. 4660 * src/Makefile.in: Regenerate. 4661 * src/c++26/Makefile.am: New file. 4662 * src/c++26/Makefile.in: New file. 4663 * src/c++26/text_encoding.cc: New file. 4664 * src/experimental/Makefile.am: Include c++26 convenience 4665 library. 4666 * src/experimental/Makefile.in: Regenerate. 4667 * python/libstdcxx/v6/printers.py (StdTextEncodingPrinter): New 4668 printer. 4669 * scripts/gen_text_encoding_data.py: New file. 4670 * testsuite/22_locale/locale/encoding.cc: New test. 4671 * testsuite/ext/unicode/charset_alias_match.cc: New test. 4672 * testsuite/std/text_encoding/cons.cc: New test. 4673 * testsuite/std/text_encoding/members.cc: New test. 4674 * testsuite/std/text_encoding/requirements.cc: New test. 4675 4676 2024-01-17 Jonathan Wakely <jwakely (a] redhat.com> 4677 4678 * include/bits/unicode.h (_Grapheme_cluster_view): Require view. 4679 Do not use CTAD for _Utf32_view. 4680 (__format_width, __truncate): Do not use CTAD. 4681 (enable_borrowed_range<_Utf_view<T, R>>): Define specialization. 4682 (enable_borrowed_range<_Grapheme_cluster_view<R>>): Likewise. 4683 4684 2024-01-17 Patrick Palka <ppalka (a] redhat.com> 4685 4686 * include/std/ranges (views::_CartesianProduct::operator()): 4687 Adjust identity case as per P2540R1. 4688 * testsuite/std/ranges/cartesian_product/1.cc (test01): 4689 Adjust expected result of the identity case. 4690 4691 2024-01-15 Patrick Palka <ppalka (a] redhat.com> 4692 4693 * include/std/variant (__detail::__variant::_Variadic_union): 4694 Add bool __trivially_destructible template parameter. 4695 (__detail::__variant::_Variadic_union::~_Variadic_union): 4696 Use __trivially_destructible in constraints instead. 4697 (__detail::__variant::_Variant_storage): Pass 4698 __trivially_destructible value to _Variadic_union. 4699 4700 2024-01-15 Patrick Palka <ppalka (a] redhat.com> 4701 4702 * include/bits/stl_iterator.h (const_iterator): Define conversion 4703 operators as per P2836R1. 4704 * include/bits/version.def (ranges_as_const): Update value. 4705 * include/bits/version.h: Regenerate. 4706 * testsuite/24_iterators/const_iterator/1.cc (test04): New test. 4707 * testsuite/std/ranges/adaptors/as_const/1.cc: Adjust expected 4708 value of __cpp_lib_ranges_as_const. 4709 * testsuite/std/ranges/version_c++23.cc: Likewise. 4710 4711 2024-01-15 Jonathan Wakely <jwakely (a] redhat.com> 4712 4713 PR libstdc++/108822 4714 * include/std/tuple (__assignable, __is_nothrow_assignable): 4715 Move pre-C++20 definitions adjacent to their use. 4716 4717 2024-01-15 Jonathan Wakely <jwakely (a] redhat.com> 4718 4719 PR testsuite/113366 4720 * include/std/format (basic_format_arg): Use __formattable 4721 variable template instead of __format::__formattable_with 4722 concept. 4723 4724 2024-01-15 Jonathan Wakely <jwakely (a] redhat.com> 4725 4726 * src/c++20/tzdata.zi: Import new file from 2023d release. 4727 * src/c++20/tzdb.cc (tzdb_list::_Node::_S_read_leap_seconds) 4728 Update expiry date for leap seconds list. 4729 4730 2024-01-13 Jonathan Wakely <jwakely (a] redhat.com> 4731 4732 PR libstdc++/108822 4733 * include/std/tuple (tuple): Add checks for dangling references. 4734 Reimplement constraints and constant expressions using C++20 4735 features. 4736 * include/std/type_traits [C++20] 4737 (__is_implicitly_default_constructible_v): Define. 4738 (__is_implicitly_default_constructible): Use variable template. 4739 * testsuite/20_util/tuple/dangling_ref.cc: New test. 4740 4741 2024-01-13 Patrick Palka <ppalka (a] redhat.com> 4742 4743 PR libstdc++/108827 4744 PR libstdc++/111327 4745 * include/bits/version.def (bind_back): Define. 4746 * include/bits/version.h: Regenerate. 4747 * include/std/functional (_Bind_back): Define for C++23. 4748 (bind_back): Likewise. 4749 * testsuite/20_util/function_objects/bind_back/1.cc: New test 4750 (adapted from corresponding bind_front test). 4751 * testsuite/20_util/function_objects/bind_back/111327.cc: Likewise. 4752 4753 2024-01-13 Patrick Palka <ppalka (a] redhat.com> 4754 4755 * include/std/functional (_Bind_front): Remove =default special 4756 member function declarations. 4757 (_Bind_front::operator()): Implement using C++23 deducing this 4758 when available. 4759 * testsuite/20_util/function_objects/bind_front/111327.cc: 4760 Adjust testcase to expect better errors in C++23 mode. 4761 4762 2024-01-13 Patrick Palka <ppalka (a] redhat.com> 4763 4764 * include/std/ranges (views::__adaptor::operator|): Perform 4765 perfect forwarding of arguments. 4766 (views::__adaptor::_RangeAdaptor::operator()): Pass dummy 4767 first argument to _Partial. 4768 (views::__adaptor::_Partial::_Partial): Likewise. Add dummy 4769 first parameter. 4770 (views::__adaptor::_Pipe::_Pipe): Perform perfect forwarding 4771 of arguments. 4772 (to): Pass dummy first argument to _Partial. 4773 4774 2024-01-13 Jonathan Wakely <jwakely (a] redhat.com> 4775 4776 PR libstdc++/107466 4777 * include/bits/random.tcc (subtract_with_carry_engine::seed): 4778 Implement proposed resolution of LWG 4014. 4779 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error 4780 line number. 4781 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc: 4782 Check for expected result of 64-bit engine with seed that 4783 doesn't fit in 32-bits. 4784 4785 2024-01-12 Jonathan Wakely <jwakely (a] redhat.com> 4786 4787 PR libstdc++/113320 4788 * include/std/format (__format::_Runtime_format_string): Add 4789 constructor and disable copy operations. 4790 (basic_format_string(_Runtime_format_string)): Add noexcept and 4791 take parameter by value not rvalue reference. 4792 (runtime_format): Add noexcept. 4793 * testsuite/std/format/runtime_format.cc: Check noexcept. Check 4794 that construction is only possible from prvalues, not xvalues. 4795 4796 2024-01-12 Jonathan Wakely <jwakely (a] redhat.com> 4797 4798 PR libstdc++/105505 4799 * include/bits/stl_pair.h (pair::pair(U1&&, U2&&)) [C++23]: Add 4800 default template arguments, as per P1951R1. 4801 * testsuite/20_util/pair/cons/default_tmpl_args.cc: New test. 4802 4803 2024-01-12 Jonathan Wakely <jwakely (a] redhat.com> 4804 4805 * include/std/format (__format::_Arg_store): Fix PR number in 4806 comment. Simplify preprocessor code. 4807 4808 2024-01-11 Jonathan Wakely <jwakely (a] redhat.com> 4809 4810 * doc/xml/manual/evolution.xml: Fix spelling. 4811 * doc/html/manual/api.html: Regenerate. 4812 4813 2024-01-11 Jonathan Wakely <jwakely (a] redhat.com> 4814 4815 * doc/xml/manual/evolution.xml: Document addition of 4816 libstdc++exp.a. 4817 * doc/html/*: Regenerate. 4818 4819 2024-01-11 Marcus Haehnel <marcus.haehnel (a] kernkonzept.com> 4820 4821 * libsupc++/eh_unex_handler.cc: Adjust definition type to 4822 declaration. 4823 4824 2024-01-11 Michael Levine <mlevine55 (a] bloomberg.net> 4825 4826 * include/std/ranges (__glibcxx_want_ranges_iota): Remove 4827 duplicate definition. 4828 4829 2024-01-11 Franois Dumont <fdumont (a] gcc.gnu.org> 4830 4831 PR libstdc++/112477 4832 * src/c++11/debug.cc 4833 (_Safe_iterator_base::_M_attach): Reset _M_version to 0 if attaching to null 4834 sequence. 4835 (_Safe_iterator_base::_M_attach_single): Likewise. 4836 (_Safe_local_iterator_base::_M_attach): Likewise. 4837 (_Safe_local_iterator_base::_M_attach_single): Likewise. 4838 * testsuite/23_containers/map/debug/112477.cc: New test case. 4839 4840 2024-01-11 Patrick Palka <ppalka (a] redhat.com> 4841 4842 * include/bits/move.h (__like_t): Define in C++23 mode. 4843 * include/std/ranges (views::__adaptor::Partial::operator()): 4844 Implement using C++23 deducing this when available. 4845 (views::__adaptor::_Pipe::operator()): Likewise. 4846 * testsuite/std/ranges/adaptors/100577.cc: Adjust testcase to 4847 accept new "no match for call" errors issued in C++23 mode. 4848 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise. 4849 4850 2024-01-11 Jonathan Wakely <jwakely (a] redhat.com> 4851 4852 * python/libstdcxx/v6/printers.py (StdIntegralConstantPrinter): 4853 Add printer for std::integral_constant. 4854 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it. 4855 4856 2024-01-11 Jonathan Wakely <jwakely (a] redhat.com> 4857 4858 PR libstdc++/113258 4859 * libsupc++/new_opa.cc: Prefer to use posix_memalign if 4860 available. 4861 4862 2024-01-11 Ken Matsui <kmatsui (a] gcc.gnu.org> 4863 4864 * src/filesystem/ops-common.h (stat_type): Use using. 4865 4866 2024-01-11 Ken Matsui <kmatsui (a] gcc.gnu.org> 4867 4868 PR libstdc++/113250 4869 * src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&. 4870 * src/filesystem/ops.cc (fs::equivalent): Likewise. 4871 * testsuite/27_io/filesystem/operations/equivalent.cc: Handle 4872 error codes. 4873 * testsuite/experimental/filesystem/operations/equivalent.cc: 4874 Likewise. 4875 4876 2024-01-11 Ken Matsui <kmatsui (a] gcc.gnu.org> 4877 4878 * include/std/type_traits (is_compound): Do not use __not_. 4879 (is_compound_v): Use is_fundamental_v instead. 4880 4881 2024-01-11 Patrick Palka <ppalka (a] redhat.com> 4882 4883 * include/bits/utility.h (_Nth_type): Use 4884 _GLIBCXX_USE_BUILTIN_TRAIT instead of __has_builtin. 4885 4886 2024-01-09 Jonathan Wakely <jwakely (a] redhat.com> 4887 4888 * include/bits/unicode-data.h: Regenerate. 4889 * include/bits/unicode.h (_Utf_iterator::operator++()): Fix off 4890 by one error. 4891 (__incb_property): Add missing check for values before the 4892 first edge. 4893 (__is_extended_pictographic): Invert return values to fix 4894 copy&pasted logic. 4895 (_Grapheme_cluster_view::_Iterator): Remove second iterator 4896 member and find end of cluster lazily. 4897 * testsuite/ext/unicode/grapheme_view.cc: New test. 4898 * testsuite/ext/unicode/properties.cc: New test. 4899 * testsuite/ext/unicode/view.cc: New test. 4900 4901 2024-01-09 Andreas Schwab <schwab (a] linux-m68k.org> 4902 4903 * scripts/extract_symvers.in: Require final colon to only match 4904 .dsynsym in the header of the dynamic symtab. 4905 4906 2024-01-09 Jonathan Wakely <jwakely (a] redhat.com> 4907 4908 * include/bits/chrono_io.h (__formatter_chrono::_M_F): Simplify 4909 handling of string returned from std::format. 4910 (__formatter_chrono::_M_R_T): Likewise. 4911 4912 2024-01-08 Jonathan Wakely <jwakely (a] redhat.com> 4913 4914 * include/bits/unicode.h (__null_sentinel): Remove. 4915 * testsuite/17_intro/names.cc: Add __null_sentinel. 4916 4917 2024-01-08 Jonathan Wakely <jwakely (a] redhat.com> 4918 4919 * include/std/format (__format::_Runtime_format_string): Define 4920 new class template. 4921 (basic_format_string): Add non-consteval constructor for runtime 4922 format strings. 4923 (runtime_format): Define new function for C++26. 4924 * testsuite/std/format/runtime_format.cc: New test. 4925 4926 2024-01-08 Jonathan Wakely <jwakely (a] redhat.com> 4927 4928 * include/bits/chrono_io.h (__formatter_chrono): Always use 4929 lvalue arguments to make_format_args. 4930 * include/std/format (make_format_args): Change parameter pack 4931 from forwarding references to lvalue references. Remove use of 4932 remove_reference_t which is now unnecessary. 4933 (format_to, formatted_size): Remove incorrect forwarding of 4934 arguments. 4935 * include/std/ostream (print): Remove forwarding of arguments. 4936 * include/std/print (print): Likewise. 4937 * testsuite/20_util/duration/io.cc: Use lvalues as arguments to 4938 make_format_args. 4939 * testsuite/std/format/arguments/args.cc: Likewise. 4940 * testsuite/std/format/arguments/lwg3810.cc: Likewise. 4941 * testsuite/std/format/functions/format.cc: Likewise. 4942 * testsuite/std/format/functions/vformat_to.cc: Likewise. 4943 * testsuite/std/format/string.cc: Likewise. 4944 * testsuite/std/time/day/io.cc: Likewise. 4945 * testsuite/std/time/month/io.cc: Likewise. 4946 * testsuite/std/time/weekday/io.cc: Likewise. 4947 * testsuite/std/time/year/io.cc: Likewise. 4948 * testsuite/std/time/year_month_day/io.cc: Likewise. 4949 * testsuite/std/format/arguments/args_neg.cc: New test. 4950 4951 2024-01-08 Jonathan Wakely <jwakely (a] redhat.com> 4952 4953 * include/Makefile.am: Add new headers. 4954 * include/Makefile.in: Regenerate. 4955 * include/bits/unicode.h: New file. 4956 * include/bits/unicode-data.h: New file. 4957 * include/std/format: Include <bits/unicode.h>. 4958 (__literal_encoding_is_utf8): Move to <bits/unicode.h>. 4959 (_Spec::_M_fill): Change type to char32_t. 4960 (_Spec::_M_parse_fill_and_align): Read a Unicode scalar value 4961 instead of a single character. 4962 (__write_padded): Change __fill_char parameter to char32_t and 4963 encode it into the output. 4964 (__formatter_str::format): Use new __unicode::__field_width and 4965 __unicode::__truncate functions. 4966 * include/std/ostream: Adjust namespace qualification for 4967 __literal_encoding_is_utf8. 4968 * include/std/print: Likewise. 4969 * src/c++23/print.cc: Add [[unlikely]] attribute to error path. 4970 * testsuite/ext/unicode/view.cc: New test. 4971 * testsuite/std/format/functions/format.cc: Add missing examples 4972 from the standard demonstrating alignment with non-ASCII 4973 characters. Add examples checking correct handling of extended 4974 grapheme clusters. 4975 4976 2024-01-08 Jonathan Wakely <jwakely (a] redhat.com> 4977 4978 * include/bits/version.def (format_uchar): Define. 4979 * include/bits/version.h: Regenerate. 4980 * include/std/format (formatter<C, C>::format): Check for 4981 _Pres_c and call _M_format_character directly. Cast C to its 4982 unsigned equivalent for formatting as an integer. 4983 (formatter<char, wchar_t>::format): Likewise. 4984 (basic_format_arg(T&)): Store char arguments as unsigned char 4985 for formatting to a wide string. 4986 * testsuite/std/format/functions/format.cc: Adjust test. Check 4987 formatting of 4988 4989 2024-01-07 Jonathan Wakely <jwakely (a] redhat.com> 4990 4991 PR libstdc++/112997 4992 * libsupc++/unwind-cxx.h (__cxa_call_terminate): Change first 4993 parameter to void*. 4994 4995 2024-01-07 Jonathan Wakely <jwakely (a] redhat.com> 4996 4997 * testsuite/20_util/variant/87619.cc: Remove dg-timeout-factor. 4998 4999 2024-01-07 Jonathan Wakely <jwakely (a] redhat.com> 5000 5001 * include/std/type_traits (is_trivially_destructible_v): Use 5002 built-in directly when concepts are supported. 5003 * testsuite/20_util/is_trivially_destructible/value_v.cc: New 5004 test. 5005 5006 2024-01-06 Gwenole Beauchesne <gb.devel (a] gmail.com> 5007 5008 * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Use 5009 nonnull arguments to strtoimax() and wcstoimax() functions. 5010 5011 2024-01-05 Jonathan Wakely <jwakely (a] redhat.com> 5012 5013 * src/c++17/fs_path.cc (path::_List::reserve): Limit maximum 5014 size and check for overflows in arithmetic. 5015 (path::operator/=(const path&)): Remove redundant exponential 5016 growth calculation. 5017 5018 2024-01-05 Martin Kttler <martin.kuettler (a] kernkonzept.com> 5019 5020 * src/c++17/fs_path.cc (path::_List::reserve): Avoid 5021 floating-point arithmetic. 5022 5023 2024-01-05 Jonathan Wakely <jwakely (a] redhat.com> 5024 5025 PR libstdc++/113241 5026 * include/std/type_traits (is_convertible_v): Guard use of 5027 built-in with preprocessor check. 5028 5029 2024-01-05 Jonathan Wakely <jwakely (a] redhat.com> 5030 5031 PR libstdc++/113200 5032 * include/bits/char_traits.h (__gnu_cxx::char_traits::move): Use 5033 __builtin_constant_p to check for unrelated pointers that cannot 5034 be compared during constant evaluation. 5035 * testsuite/21_strings/char_traits/requirements/113200.cc: New 5036 test. 5037 5038 2024-01-05 Cassio Neri <cassio.neri (a] gmail.com> 5039 5040 * include/std/chrono: Fix + and - for months and weekdays. 5041 * testsuite/std/time/month/1.cc: Add constexpr tests against overflow. 5042 * testsuite/std/time/month/2.cc: New test for extreme values. 5043 * testsuite/std/time/weekday/1.cc: Add constexpr tests against overflow. 5044 * testsuite/std/time/weekday/2.cc: New test for extreme values. 5045 5046 2024-01-05 Jonathan Wakely <jwakely (a] redhat.com> 5047 5048 PR libstdc++/113099 5049 * include/bits/locale_classes.tcc (__try_use_facet): Use 5050 if-constexpr for C++11 and up. 5051 5052 2024-01-05 Ken Matsui <kmatsui (a] gcc.gnu.org> 5053 5054 * include/std/type_traits: Use _GLIBCXX_USE_BUILTIN_TRAIT. 5055 5056 2024-01-04 Arsen Arsenovi <arsen (a] aarsen.me> 5057 5058 * include/std/generator (_Subyield_state::_M_jump_in): Fix typo 5059 reported by Will Hawkins <hawkinsw (a] obs.cr>. 5060 5061 2024-01-04 Arsen Arsenovi <arsen (a] aarsen.me> 5062 5063 * include/std/generator (_Stateless_alloc): Rename typename _A 5064 to _All. 5065 5066 2024-01-03 Patrick Palka <ppalka (a] redhat.com> 5067 5068 PR testsuite/113175 5069 * testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce 5070 'limit' to 100 from 1000 and adjust 'log2_limit' accordingly. 5071 (test03): Likewise. 5072 5073 5075 Copyright (C) 2024 Free Software Foundation, Inc. 5076 5077 Copying and distribution of this file, with or without modification, 5078 are permitted in any medium without royalty provided the copyright 5079 notice and this notice are preserved. 5080