1 2022-12-24 Iain Sandoe <iain (a] sandoe.co.uk> 2 3 * src/c++20/tzdb.cc (remote_version): Look for the tzdata.zi 4 file before falling back to system-specific ones on Darwin and 5 BSD. 6 7 2022-12-24 Iain Sandoe <iain (a] sandoe.co.uk> 8 9 * testsuite/std/time/tzdb/leap_seconds.cc: Initialize the 10 override_used test var to false. 11 12 2022-12-23 Eric Botcazou <ebotcazou (a] adacore.com> 13 14 * acinclude.m4 (GLIBCXX_EXPORT_FLAGS): Substitute CPPFLAGS. 15 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Set ac_has_sched_yield and 16 ac_has_win32_sleep to yes for MinGW. Change HAVE_WIN32_SLEEP 17 into _GLIBCXX_USE_WIN32_SLEEP. 18 (GLIBCXX_CHECK_GTHREADS): Add _WIN32_THREADS to compilation flags for 19 Win32 threads and force _GTHREAD_USE_MUTEX_TIMEDLOCK to 0 for them. 20 Add -D_WIN32_WINNT=0x0600 to compilation flags if yes was configured 21 and add it to CPPFLAGS on success. 22 * config.h.in: Regenerate. 23 * configure: Likewise. 24 * config/os/mingw32-w64/os_defines.h (_GLIBCXX_USE_GET_NPROCS_WIN32): 25 Define to 1. 26 * config/os/mingw32/os_defines.h (_GLIBCXX_USE_GET_NPROCS_WIN32): Ditto 27 * src/c++11/thread.cc (get_nprocs): Provide Win32 implementation if 28 _GLIBCXX_USE_GET_NPROCS_WIN32 is defined. Replace HAVE_WIN32_SLEEP 29 with USE_WIN32_SLEEP. 30 * testsuite/19_diagnostics/headers/system_error/errc_std_c++0x.cc: Add 31 missing conditional compilation. 32 * testsuite/lib/libstdc++.exp (check_v3_target_sleep): Add support for 33 _GLIBCXX_USE_WIN32_SLEEP. 34 (check_v3_target_nprocs): Likewise for _GLIBCXX_USE_GET_NPROCS_WIN32. 35 36 2022-12-23 Jonathan Wakely <jwakely (a] redhat.com> 37 38 * src/c++20/tzdb.cc [__APPLE__] (zoneinfo_dir_override): Add 39 definition. 40 41 2022-12-23 Jonathan Wakely <jwakely (a] redhat.com> 42 43 * src/c++20/tzdb.cc: Remove static_assert. 44 45 2022-12-23 Arsen Arsenovi <arsen (a] aarsen.me> 46 Jonathan Wakely <jwakely (a] redhat.com> 47 48 PR libstdc++/107792 49 PR libstdc++/107778 50 * src/experimental/contract.cc (handle_contract_violation): Make 51 output more readable. 52 53 2022-12-22 Jonathan Wakely <jwakely (a] redhat.com> 54 55 PR libstdc++/105730 56 * src/c++11/compatibility-condvar.cc (__nothrow_wait_cv::wait): 57 Access private data member of base class and call its wait 58 member. 59 60 2022-12-22 Jonathan Wakely <jwakely (a] redhat.com> 61 62 * include/Makefile.am: Add new header. 63 * include/Makefile.in: Regenerate. 64 * include/std/chrono (operator<<): Move to new header. 65 (nonexistent_local_time::_M_make_what_str): Define correctly. 66 (ambiguous_local_time::_M_make_what_str): Likewise. 67 * include/bits/chrono_io.h: New file. 68 * src/c++20/tzdb.cc (operator<<(ostream&, const Rule&)): Use 69 new ostream output for month and weekday types. 70 * testsuite/20_util/duration/io.cc: Test std::format support. 71 * testsuite/std/time/exceptions.cc: Check what() strings. 72 * testsuite/std/time/syn_c++20.cc: Uncomment local_time_format. 73 * testsuite/std/time/time_zone/get_info_local.cc: Enable check 74 for formatted output of local_info objects. 75 * testsuite/std/time/clock/file/io.cc: New test. 76 * testsuite/std/time/clock/gps/io.cc: New test. 77 * testsuite/std/time/clock/system/io.cc: New test. 78 * testsuite/std/time/clock/tai/io.cc: New test. 79 * testsuite/std/time/clock/utc/io.cc: New test. 80 * testsuite/std/time/day/io.cc: New test. 81 * testsuite/std/time/format.cc: New test. 82 * testsuite/std/time/hh_mm_ss/io.cc: New test. 83 * testsuite/std/time/month/io.cc: New test. 84 * testsuite/std/time/weekday/io.cc: New test. 85 * testsuite/std/time/year/io.cc: New test. 86 * testsuite/std/time/year_month_day/io.cc: New test. 87 88 2022-12-22 Jonathan Wakely <jwakely (a] redhat.com> 89 90 * include/std/format (__format::__write_padded_as_spec): New 91 function. 92 (__format::__formatter_str, __format::__formatter_int::format) 93 (formatter<const void*, charT>): Use it. 94 95 2022-12-22 Jonathan Wakely <jwakely (a] redhat.com> 96 97 * python/libstdcxx/v6/printers.py (StdChronoDurationPrinter) 98 (StdChronoTimePointPrinter, StdChronoZonedTimePrinter) 99 (StdChronoCalendarPrinter, StdChronoTimeZonePrinter) 100 (StdChronoLeapSecondPrinter, StdChronoTzdbPrinter) 101 (StdChronoTimeZoneRulePrinter): New printers. 102 103 2022-12-22 Jonathan Wakely <jwakely (a] redhat.com> 104 105 * acinclude.m4 (GLIBCXX_ZONEINFO_DIR): New macro. 106 * config.h.in: Regenerate. 107 * config/abi/pre/gnu.ver: Export new symbols. 108 * configure: Regenerate. 109 * configure.ac (GLIBCXX_ZONEINFO_DIR): Use new macro. 110 * include/std/chrono (utc_clock::from_sys): Correct handling 111 of leap seconds. 112 (nonexistent_local_time::_M_make_what_str): Define. 113 (ambiguous_local_time::_M_make_what_str): Define. 114 (__throw_bad_local_time): Define new function. 115 (time_zone, tzdb_list, tzdb): Implement all members. 116 (remote_version, zoned_time, get_leap_second_info): Define. 117 * include/std/version: Add comment for __cpp_lib_chrono. 118 * src/c++20/Makefile.am: Add new file. 119 * src/c++20/Makefile.in: Regenerate. 120 * src/c++20/tzdb.cc: New file. 121 * testsuite/lib/libstdc++.exp: Define effective target tzdb. 122 * testsuite/std/time/clock/file/members.cc: Check file_time 123 alias and file_clock::now() member. 124 * testsuite/std/time/clock/gps/1.cc: Likewise for gps_clock. 125 * testsuite/std/time/clock/tai/1.cc: Likewise for tai_clock. 126 * testsuite/std/time/syn_c++20.cc: Uncomment everything except 127 parse. 128 * testsuite/std/time/clock/utc/leap_second_info.cc: New test. 129 * testsuite/std/time/exceptions.cc: New test. 130 * testsuite/std/time/time_zone/get_info_local.cc: New test. 131 * testsuite/std/time/time_zone/get_info_sys.cc: New test. 132 * testsuite/std/time/time_zone/requirements.cc: New test. 133 * testsuite/std/time/tzdb/1.cc: New test. 134 * testsuite/std/time/tzdb/leap_seconds.cc: New test. 135 * testsuite/std/time/tzdb_list/1.cc: New test. 136 * testsuite/std/time/tzdb_list/requirements.cc: New test. 137 * testsuite/std/time/zoned_time/1.cc: New test. 138 * testsuite/std/time/zoned_time/custom.cc: New test. 139 * testsuite/std/time/zoned_time/deduction.cc: New test. 140 * testsuite/std/time/zoned_time/req_neg.cc: New test. 141 * testsuite/std/time/zoned_time/requirements.cc: New test. 142 * testsuite/std/time/zoned_traits.cc: New test. 143 144 2022-12-22 Jonathan Wakely <jwakely (a] redhat.com> 145 146 * include/bits/chrono.h (__is_duration_v, __is_time_point_v): 147 New variable templates. 148 (duration_cast): Add simplified definition for noconv case. 149 (treat_as_floating_point_v): Add explicit specializations. 150 (duration::operator%=, floor, ceil, round): Simplify SFINAE 151 constraints. 152 153 2022-12-22 Jonathan Wakely <jwakely (a] redhat.com> 154 155 * include/std/chrono: Use nodiscard attribute. 156 157 2022-12-21 Jakub Jelinek <jakub (a] redhat.com> 158 159 * testsuite/20_util/to_chars/float16_c++23.cc (test): Use 3 argument 160 std::to_chars if fmt is std::chars_format{}, rather than 4 argument. 161 * testsuite/20_util/to_chars/float128_c++23.cc (test): Likewise, and 162 skip second part of testing that requires 5 argument std::to_chars. 163 164 2022-12-19 Arsen Arsenovi <arsen (a] aarsen.me> 165 166 * include/experimental/contract: Lowercase the constants in 167 contract_violation_continuation_mode. 168 169 2022-12-16 John David Anglin <danglin (a] gcc.gnu.org> 170 171 * config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update. 172 173 2022-12-16 Jonathan Wakely <jwakely (a] redhat.com> 174 175 * include/std/expected (expected): Add monadic operations. 176 (expected<void, E>): Likewise. 177 * include/std/version (__cpp_lib_expected): Bump value. 178 * testsuite/20_util/expected/synopsis.cc: Adjust expected macro 179 value. 180 * testsuite/20_util/expected/version.cc: Likewise. 181 * testsuite/20_util/expected/illformed_neg.cc: Prune additional 182 errors from ill-formed monadic operations. 183 * testsuite/20_util/expected/observers.cc: Check error_or. 184 * testsuite/20_util/expected/monadic.cc: New test. 185 186 2022-12-16 Jonathan Wakely <jwakely (a] redhat.com> 187 188 * include/std/expected (expected::_M_swap_val_unex): Guard the 189 correct object. 190 (expected::swap): Move is_swappable 191 requirement from static_assert to constraint. 192 (swap): Likewise. 193 (operator==): Remove noexcept-specifier. 194 * testsuite/20_util/expected/swap.cc: Check swapping of 195 types without non-throwing move constructor. Check constraints 196 on swap. 197 * testsuite/20_util/expected/unexpected.cc: Check constraints on 198 swap. 199 * testsuite/20_util/expected/equality.cc: New test. 200 201 2022-12-16 Jonathan Wakely <jwakely (a] redhat.com> 202 203 * include/bits/alloc_traits.h (__allocator_traits_base::__rebind): 204 Add static assert for rebind requirement. 205 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: 206 Fix invalid rebind member in test allocator. 207 * testsuite/20_util/allocator_traits/requirements/rebind_neg.cc: 208 New test. 209 * testsuite/20_util/scoped_allocator/outermost.cc: Add rebind to 210 test allocator. 211 * testsuite/23_containers/forward_list/48101_neg.cc: Prune new 212 static assert error. 213 * testsuite/23_containers/unordered_multiset/48101_neg.cc: 214 Likewise. 215 * testsuite/23_containers/unordered_set/48101_neg.cc: 216 Likewise. 217 * testsuite/23_containers/vector/52591.cc: Fix typo in rebind. 218 219 2022-12-16 Jonathan Wakely <jwakely (a] redhat.com> 220 221 PR libstdc++/108118 222 * include/bits/shared_ptr_base.h (weak_ptr::operator=): 223 Implement as move-and-swap exactly as specified in the standard. 224 * testsuite/20_util/weak_ptr/cons/self_move.cc: New test. 225 226 2022-12-15 Jakub Jelinek <jakub (a] redhat.com> 227 228 PR libstdc++/108075 229 * config/abi/pre/gnu.ver (CXXABI_1.3.14): Export 230 _ZTIDF[0-9]*[_bx], _ZTIPDF[0-9]*[_bx] and _ZTIPKDF[0-9]*[_bx]. 231 * testsuite/util/testsuite_abi.cc (check_version): Handle 232 CXXABI_1.3.14. 233 234 2022-12-14 Jonathan Wakely <jwakely (a] redhat.com> 235 236 PR libstdc++/108097 237 * include/std/stacktrace (basic_stracktrace::_Impl): Do not 238 multiply N by sizeof(value_type) when allocating. 239 240 2022-12-13 Jakub Jelinek <jakub (a] redhat.com> 241 242 * src/libbacktrace/backtrace-rename.h (backtrace_uncompress_zstd): 243 Define. 244 245 2022-12-12 Jonathan Wakely <jwakely (a] redhat.com> 246 247 * testsuite/20_util/duration/arithmetic/overflow_c++20.cc: New 248 test. 249 250 2022-12-12 Jonathan Wakely <jwakely (a] redhat.com> 251 252 PR libstdc++/108024 253 * include/std/format (basic_format_string): Fix constraint. 254 * testsuite/std/format/format_string.cc: New test. 255 256 2022-12-12 Jonathan Wakely <jwakely (a] redhat.com> 257 258 * include/std/chrono (hh_mm_ss): Rename __is_unsigned member to 259 _S_is_unsigned. 260 * include/std/format (basic_format_context): Rename _Out_ 261 template parameter to _Out2. 262 * testsuite/17_intro/names.cc: Add Windows SAL annotation 263 macros. 264 265 2022-12-12 Jonathan Wakely <jwakely (a] redhat.com> 266 267 PR libstdc++/98034 268 * include/std/atomic (__cpp_lib_atomic_lock_free_type_aliases): 269 Define macro. 270 (atomic_signed_lock_free, atomic_unsigned_lock_free): Define 271 aliases. 272 * include/std/version (__cpp_lib_atomic_lock_free_type_aliases): 273 Define macro. 274 * testsuite/29_atomics/atomic/lock_free_aliases.cc: New test. 275 276 2022-12-12 Jonathan Wakely <jwakely (a] redhat.com> 277 278 * include/std/stacktrace (operator<<): Only output to narrow 279 ostreams (LWG 3515). 280 * testsuite/19_diagnostics/stacktrace/synopsis.cc: 281 282 2022-12-09 Jonathan Wakely <jwakely (a] redhat.com> 283 284 PR libstdc++/108015 285 * include/std/chrono (hh_mm_ss): Remove digit separators. 286 287 2022-12-09 Jonathan Wakely <jwakely (a] redhat.com> 288 289 * include/ext/pb_ds/detail/type_utils.hpp (PB_DS_STATIC_ASSERT): 290 Add unused attribute to avoid -Wunused-local-typedef warnings. 291 * testsuite/17_intro/tag_type_explicit_ctor.cc: Add pragma to 292 ignore -Wunused-variable warnings 293 294 2022-12-09 Jonathan Wakely <jwakely (a] redhat.com> 295 296 * include/bits/chrono.h (duration_cast, floor, round, abs, ceil) 297 (time_point_cast): Add [[nodiscard]] attribute and doxygen 298 comments. 299 (treat_as_floating_point): Add doxygen commen. 300 301 2022-12-09 Jonathan Wakely <jwakely (a] redhat.com> 302 303 * include/bits/chrono.h (duration, time_point): Change 'struct' 304 to 'class'. 305 306 2022-12-07 Jonathan Wakely <jwakely (a] redhat.com> 307 Franois Dumont <frs.dumont (a] gmail.com> 308 309 * include/debug/formatter.h [_GLIBCXX_DEBUG_BACKTRACE] 310 (_Error_formatter::_Error_formatter): Pass error handler to 311 __glibcxx_backtrace_create_state. Pass 1 for threaded argument. 312 (_Error_formatter::_S_err): Define empty function. 313 * src/c++11/debug.cc (_Error_formatter::_M_error): Pass error 314 handler to __glibcxx_backtrace_full. 315 316 2022-12-06 Jonathan Wakely <jwakely (a] redhat.com> 317 318 PR libstdc++/107979 319 * testsuite/17_intro/names.cc: Do not check __unused on old 320 Glibc versions. 321 322 2022-12-06 Jonathan Wakely <jwakely (a] redhat.com> 323 324 PR libstdc++/107871 325 * include/std/format (_Iter_sink::_M_overflow): Add cast to 326 size_t. 327 (_Iter_sink<CharT, contiguous_iterator auto>::_M_make_span): Use 328 typedef instead of decltype. 329 * testsuite/std/format/functions/107871.cc: New test. 330 331 2022-12-06 Jonathan Wakely <jwakely (a] redhat.com> 332 333 * include/std/chrono (chrono::hh_mm_ss): Do not use 64-bit 334 representations for all four duration members. Reorder members. 335 (hh_mm_ss::hh_mm_ss()): Define as defaulted. 336 (hh_mm_ss::hh_mm_ss(Duration)): Delegate to a new private 337 constructor, instead of calling chrono::abs repeatedly. 338 * testsuite/std/time/hh_mm_ss/1.cc: Check floating-point 339 representations. Check default constructor. Check sizes. 340 341 2022-12-06 Jonathan Wakely <jwakely (a] redhat.com> 342 343 PR c++/106434 344 * include/bits/vector.tcc (insert(const_iterator, const T&)): 345 Add assertion and optimization hint that the iterator for the 346 insertion point must be non-null. 347 348 2022-12-06 Jonathan Wakely <jwakely (a] redhat.com> 349 350 * include/bits/std_mutex.h (mutex): Add nodiscard attribute to 351 try_lock member function. 352 * include/bits/unique_lock.h (unique_lock): Likewise for 353 try_lock, try_lock_until, try_lock_for member functions, and 354 owns_lock and mutex member functions. 355 * include/std/mutex (recursive_mutex): Likewise for try_lock 356 member function. 357 (timed_mutex, recursive_timed_mutex, try_lock): Likewise for 358 try_lock, try_lock_until, try_lock_for member functions. 359 (try_lock): Likewise for non-member function. 360 * include/std/shared_mutex (shared_mutex): Likewise for try_lock 361 and try_lock_shared member functions. 362 (shared_timed_mutex): Likewise for try_lock, try_lock_for, 363 try_lock_shared, try_lock_shared_for, try_lock_until, and 364 try_lock_shared_until member functions. 365 (shared_lock): Likewise for try_lock, try_lock, try_lock_for, 366 try_lock_until, owns_lock, and mutex member functions. 367 * testsuite/30_threads/recursive_timed_mutex/try_lock_until/clock_neg.cc: 368 Cast discarded value expression to void. 369 * testsuite/30_threads/shared_lock/locking/3.cc: Likewise. 370 * testsuite/30_threads/shared_lock/locking/4.cc: Likewise. 371 * testsuite/30_threads/shared_lock/locking/clock_neg.cc: 372 Likewise. 373 * testsuite/30_threads/shared_timed_mutex/try_lock_until/clock_neg.cc: 374 Likewise. 375 * testsuite/30_threads/timed_mutex/try_lock_until/clock_neg.cc: 376 Likewise. 377 * testsuite/30_threads/try_lock/4.cc: Likewise. 378 * testsuite/30_threads/unique_lock/cons/60497.cc: Likewise. 379 * testsuite/30_threads/unique_lock/locking/3.cc: Likewise. 380 * testsuite/30_threads/unique_lock/locking/clock_neg.cc: 381 Likewise. 382 383 2022-12-06 Jonathan Wakely <jwakely (a] redhat.com> 384 385 * include/std/format (basic_format_parse_context::next_arg_id): 386 Only check arg-id is in range during constant evaluation. 387 * testsuite/std/format/functions/format.cc: Check "{:#Lx}". 388 * testsuite/std/format/parse_ctx.cc: Adjust expected results for 389 format-strings using an out-of-range arg-id. 390 391 2022-12-04 Iain Sandoe <iain (a] sandoe.co.uk> 392 393 * config/os/bsd/darwin/os_defines.h 394 (_GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC): Limit use of this macro 395 to OS versions that need it. 396 397 2022-12-04 Iain Sandoe <iain (a] sandoe.co.uk> 398 399 * config/os/bsd/darwin/os_defines.h (_GLIBCXX_WEAK_DEFINITION): Use the 400 implementation namespace for the weak attribute. 401 402 2022-12-02 Bjrn Schpers <bjoern (a] hazardy.de> 403 Jonathan Wakely <jwakely (a] redhat.com> 404 405 * include/std/stacktrace (stacktrace_entry::_S_err_handler): New 406 static function. 407 (stacktrace_entry, basic_stacktrace): Pass &_S_err_handler to 408 all calls to libbacktrace. 409 410 2022-11-29 Jonathan Wakely <jwakely (a] redhat.com> 411 412 PR libstdc++/107852 413 PR libstdc++/106199 414 PR libstdc++/100366 415 * include/bits/vector.tcc (vector::_M_fill_insert): Copy 416 _M_start and _M_finish members before allocating. 417 (vector::_M_default_append): Likewise. 418 (vector::_M_range_insert): Likewise. 419 420 2022-11-29 Jonathan Wakely <jwakely (a] redhat.com> 421 422 * include/bits/stl_iterator_base_types.h (__iterator_category): 423 Add always_inline attribute. 424 * include/bits/stl_vector.h (assign(Iter, Iter)): Call 425 _M_assign_aux directly, instead of _M_assign_dispatch. 426 (insert(const_iterator, Iter, Iter)): Call _M_range_insert 427 directly instead of _M_insert_dispatch. 428 429 2022-11-29 Jonathan Wakely <jwakely (a] redhat.com> 430 431 * include/std/format: Rename all variables called __used or 432 __packed. 433 * testsuite/17_intro/badnames.cc: Add no_pch options. 434 * testsuite/17_intro/names.cc: Check __packed, __unused and 435 __used. 436 437 2022-11-28 Franois Dumont <fdumont (a] gcc.gnu.org> 438 439 * testsuite/20_util/function/cons/70692.cc: Adapt dg-error message. 440 441 2022-11-28 Jonathan Wakely <jwakely (a] redhat.com> 442 443 PR libstdc++/107801 444 * src/c++17/memory_resource.cc (chunk::_M_bytes): Change type 445 from uint32_t to bitset::size_type. Adjust static assertion. 446 (__pool_resource::_Pool::replenish): Cast to size_t after 447 multiplication instead of before. 448 (__pool_resource::_M_alloc_pools): Ensure both arguments to 449 std::max have type size_t. 450 451 2022-11-28 Jonathan Wakely <jwakely (a] redhat.com> 452 453 * include/std/string_view (basic_string_view::copy) Use explicit 454 template argument for call to std::min<size_t>. 455 (basic_string_view::substr): Likewise. 456 457 2022-11-28 Jonathan Wakely <jwakely (a] redhat.com> 458 459 PR libstdc++/107885 460 * libsupc++/hash_bytes.cc (_Hash_bytes): Convert to size_t 461 instead of implicit integer promotion to 16 bits. 462 463 2022-11-28 Jonathan Wakely <jwakely (a] redhat.com> 464 465 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc: 466 Replace non-ASCII character. 467 468 2022-11-28 Jonathan Wakely <jwakely (a] redhat.com> 469 470 * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc: 471 Simplify dg-prune-output pattern. 472 * testsuite/lib/prune.exp (libstdc++-dg-prune): Prune "::__8". 473 474 2022-11-28 Jonathan Wakely <jwakely (a] redhat.com> 475 476 PR libstdc++/107466 477 * include/bits/random.h (subtract_with_carry_engine): Use 32-bit 478 type for default seed. Use 0u as default argument for 479 subtract_with_carry_engine(result_type) constructor and 480 seed(result_type) member function. 481 * include/bits/random.tcc (subtract_with_carry_engine): Use 482 32-bit type for default seed and engine used for initial state. 483 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/lwg3809.cc: 484 New test. 485 486 2022-11-25 Jonathan Wakely <jwakely (a] redhat.com> 487 488 * acinclude.m4 (GLIBCXX_CHECK_UCHAR_H): Don't use AC_MSG_RESULT 489 unless the AC_MSG_CHECKING happened. 490 * configure: Regenerate. 491 492 2022-11-25 Jonathan Wakely <jwakely (a] redhat.com> 493 494 PR libstdc++/107850 495 * include/bits/erase_if.h (__erase_nodes_if): Use non-const 496 reference to the container. 497 * include/experimental/map (erase_if): Likewise. 498 * include/experimental/set (erase_if): Likewise. 499 * include/experimental/unordered_map (erase_if): Likewise. 500 * include/experimental/unordered_set (erase_if): Likewise. 501 * include/std/map (erase_if): Likewise. 502 * include/std/set (erase_if): Likewise. 503 * include/std/unordered_map (erase_if): Likewise. 504 * include/std/unordered_set (erase_if): Likewise. 505 * testsuite/23_containers/map/erasure.cc: Check with 506 const-incorrect predicate. 507 * testsuite/23_containers/set/erasure.cc: Likewise. 508 * testsuite/23_containers/unordered_map/erasure.cc: Likewise. 509 * testsuite/23_containers/unordered_set/erasure.cc: Likewise. 510 * testsuite/experimental/map/erasure.cc: Likewise. 511 * testsuite/experimental/set/erasure.cc: Likewise. 512 * testsuite/experimental/unordered_map/erasure.cc: Likewise. 513 * testsuite/experimental/unordered_set/erasure.cc: Likewise. 514 515 2022-11-25 Jonathan Wakely <jwakely (a] redhat.com> 516 517 * include/bits/random.h [three_way_comparison] (operator!=): 518 Do not define inequality operators when C++20 three way 519 comparisons are supported. 520 * include/ext/random [three_way_comparison] (operator!=): 521 Likewise. 522 523 2022-11-25 Jonathan Wakely <jwakely (a] redhat.com> 524 525 * include/bits/stl_iterator_base_funcs.h (__distance): 526 Add always_inline attribute to overload for random 527 access iterators. 528 (advance, distance, next, prev): Add always_inline attribute to 529 inline functions that just forward to another function. 530 531 2022-11-25 Jonathan Wakely <jwakely (a] redhat.com> 532 533 * doc/html/manual/bugs.html: Regenerate. 534 * doc/xml/manual/intro.xml: Document LWG 3656 change. 535 * include/std/bit (__bit_width, bit_width): Return int. 536 * testsuite/26_numerics/bit/bit.pow.two/lwg3656.cc: New test. 537 538 2022-11-24 Jonathan Wakely <jwakely (a] redhat.com> 539 540 PR libstdc++/106201 541 * testsuite/27_io/filesystem/iterators/106201.cc: Improve test. 542 * testsuite/experimental/filesystem/iterators/106201.cc: New test. 543 544 2022-11-24 Jakub Jelinek <jakub (a] redhat.com> 545 546 PR libstdc++/107468 547 * src/c++17/fast_float/MERGE: Adjust for merge from upstream. 548 * src/c++17/fast_float/fast_float.h: Merge from fast_float 549 2ef9abbcf6a11958b6fa685a89d0150022e82e78 commit. 550 551 2022-11-24 Jakub Jelinek <jakub (a] redhat.com> 552 553 PR libstdc++/107815 554 * testsuite/20_util/to_chars/float128_c++23.cc (test): Disable 555 __FLT128_MAX__ test on Solaris. Fix up commented out debugging 556 printouts. 557 558 2022-11-23 Jakub Jelinek <jakub (a] redhat.com> 559 560 PR libstdc++/107811 561 * src/c++17/floating_from_chars.cc (__floating_from_chars_hex): Guard 562 fast_float uses with #if USE_LIB_FAST_FLOAT and for mantissa_bits and 563 exponent_bits provide a fallback. 564 565 2022-11-23 Jonathan Wakely <jwakely (a] redhat.com> 566 567 PR libstdc++/107814 568 * testsuite/experimental/filesystem/iterators/error_reporting.cc: 569 Use a static buffer with space after it. 570 571 2022-11-22 Jonathan Wakely <jwakely (a] redhat.com> 572 573 PR libstdc++/107817 574 * include/std/charconv (__from_chars_alnum_to_val): Add 575 constexpr for C++20. 576 * include/std/format (__is_digit, __is_xdigit): New functions. 577 (_Spec::_S_parse_width_or_precision): Use __is_digit. 578 (__formatter_fp::parse): Use __is_xdigit. 579 580 2022-11-22 Jonathan Wakely <jwakely (a] redhat.com> 581 582 PR libstdc++/106201 583 * testsuite/27_io/filesystem/iterators/106201.cc: New test. 584 585 2022-11-22 Jonathan Wakely <jwakely (a] redhat.com> 586 587 PR libstdc++/107801 588 * src/c++17/memory_resource.cc (pool_sizes): Disable large pools 589 for targets with 16-bit int. 590 591 2022-11-21 Jonathan Wakely <jwakely (a] redhat.com> 592 593 * include/std/functional (_Bind_front0): New class template. 594 (_Bind_front_t): Use _Bind_front0 when there are no bound 595 arguments. 596 * testsuite/20_util/function_objects/bind_front/107784.cc: 597 New test. 598 599 2022-11-21 Jonathan Wakely <jwakely (a] redhat.com> 600 601 * include/bits/chrono.h (duration): Check preconditions on 602 template arguments before using them. 603 604 2022-11-21 Jonathan Wakely <jwakely (a] redhat.com> 605 606 * include/std/tuple: Add better Doxygen comments. 607 608 2022-11-21 Martin Liska <mliska (a] suse.cz> 609 610 * src/experimental/Makefile.in: Re-configure. 611 612 2022-11-20 Franois Dumont <fdumont (a] gcc.gnu.org> 613 614 * include/std/format: Add std qualification on isxdigit calls. 615 616 2022-11-19 Jonathan Wakely <jwakely (a] redhat.com> 617 618 * include/bits/range_access.h: Add always_inline attribute to 619 trivial functions. 620 621 2022-11-19 Jonathan Wakely <jwakely (a] redhat.com> 622 623 * include/std/format: Fix -Wsign-compare warnings. 624 625 2022-11-19 Jonathan Wakely <jwakely (a] redhat.com> 626 627 * include/bits/ptr_traits.h (pointer_traits::pointer_to): Rename 628 parameter. 629 630 2022-11-19 Jonathan Wakely <jwakely (a] redhat.com> 631 632 PR libstdc++/107649 633 * include/std/complex (__complex_proj): Fix requires-clause. 634 635 2022-11-19 Jeff Chapman II <jchapman (a] lock3software.com> 636 Andrew Marmaduke <amarmaduke (a] lock3software.com> 637 Jason Merrill <jason (a] redhat.com> 638 639 * acinclude.m4 (glibcxx_SUBDIRS): Add src/experimental. 640 * include/Makefile.am (experimental_headers): Add contract. 641 * include/Makefile.in: Regenerate. 642 * src/Makefile.am (SUBDIRS): Add experimental. 643 * src/Makefile.in: Regenerate. 644 * configure: Regenerate. 645 * src/experimental/contract.cc: New file. 646 * src/experimental/Makefile.am: New file. 647 * src/experimental/Makefile.in: New file. 648 * include/experimental/contract: New file. 649 650 2022-11-17 Jonathan Wakely <jwakely (a] redhat.com> 651 652 PR libstdc++/107720 653 * include/std/format [_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT]: 654 Declare overloads of std::to_chars for the alternative long 655 double type. 656 657 2022-11-16 Jonathan Wakely <jwakely (a] redhat.com> 658 659 PR libstdc++/107720 660 * include/std/format (__format::_Arg_t): Fix typo in enumerator 661 name. 662 (_Arg_value::_S_get): Fix missing semi-colons. 663 664 2022-11-16 Jonathan Wakely <jwakely (a] redhat.com> 665 666 * include/std/chrono (get_leap_second_info): Optimize. 667 668 2022-11-16 Jonathan Wakely <jwakely (a] redhat.com> 669 670 PR libstdc++/107712 671 * include/std/format (__format::__formatter_int::format): Use 672 std::toupper when __builtin_toupper isn't available. 673 (basic_format_arg::handle): Add 'typename'. 674 * include/std/complex (complex<T>): Add 'typename'. 675 676 2022-11-16 Jonathan Wakely <jwakely (a] redhat.com> 677 678 * include/std/format [__FLT128_DIG__] (_GLIBCXX_FORMAT_F128): 679 Only support formatting _Float128 when glibc provides the 680 functionality needed for accurate std::to_chars. 681 682 2022-11-16 Jonathan Wakely <jwakely (a] redhat.com> 683 684 * testsuite/std/time/clock/utc/1.cc: Check handling across leap 685 second insertion. 686 687 2022-11-16 Patrick Palka <ppalka (a] redhat.com> 688 689 PR libstdc++/107701 690 * include/std/iostream (__ioinit): Adjust comment. 691 * src/c++98/globals_io.cc: Include "io_base_init.h" here 692 instead of ... 693 * src/c++98/ios_init.cc: ... here. 694 * src/c++98/ios_base_init.h (__ioinit): More comments. 695 * testsuite/17_intro/static.cc: dg-do run instead of just link. 696 697 2022-11-16 Jakub Jelinek <jakub (a] redhat.com> 698 Jonathan Wakely <jwakely (a] redhat.com> 699 700 PR libstdc++/107649 701 * include/std/complex (__complex_abs, __complex_arg, __complex_cos, 702 __complex_cosh, __complex_exp, __complex_log, __complex_sin, 703 __complex_sinh, __complex_sqrt, __complex_tan, __complex_tanh, 704 __complex_pow): Move __complex__ _Float{16,32,64,128} and 705 __complex__ decltype(0.0bf16) overloads earlier in the file. 706 (complex): Fix up requires on the partial specialization for extended 707 float types. 708 (__complex_acos, __complex_asin, __complex_atan, __complex_acosh, 709 __complex_asinh, __complex_atanh): Move 710 __complex__ _Float{16,32,64,128} and __complex__ decltype(0.0bf16) 711 overloads earlier in the file. 712 713 2022-11-16 Jonathan Wakely <jwakely (a] redhat.com> 714 715 * python/libstdcxx/v6/printers.py (StdExpAnyPrinter): Make 716 expansion of std::string in manager name more robust. 717 718 2022-11-16 Jonathan Wakely <jwakely (a] redhat.com> 719 720 * python/libstdcxx/v6/printers.py (is_specialization_of): Fix 721 incorrect terminology in docstring and describe arguments. 722 (FilteringTypePrinter): Add default argument for new parameter, 723 enhance docstring. 724 725 2022-11-16 Franois Dumont <fdumont (a] gcc.gnu.org> 726 727 * python/libstdcxx/v6/printers.py (FilteringTypePrinter): Rename 'match' field 728 'template'. Add self.targ1 to specify the first template parameter of the instantiation 729 to match. 730 (add_one_type_printer): Add targ1 optional parameter, default to None. 731 Use gdb.types.get_basic_type to compare the type to recognize and the type 732 returned from the typedef lookup. 733 (register_type_printers): Adapt calls to add_one_type_printers. 734 735 2022-11-15 Jonathan Wakely <jwakely (a] redhat.com> 736 737 * testsuite/std/format/functions/format.cc: Do not use 738 std::make_unsigned_t<__int128>. 739 740 2022-11-15 Jonathan Wakely <jwakely (a] redhat.com> 741 742 * include/std/format (formattable): Only define for C++23/ 743 * testsuite/std/format/formatter.cc: Moved to... 744 * testsuite/std/format/formatter/requirements.cc: ...here. 745 * testsuite/std/format/formatter/concept.cc: New test. 746 * testsuite/std/format/functions/format.cc: Replace use of 747 std::formattable in C++20. 748 749 2022-11-15 Jonathan Wakely <jwakely (a] redhat.com> 750 751 PR libstdc++/107693 752 * include/std/format (_GLIBCXX_FORMAT_F128): Define to 2 when 753 basic_format_arg needs to use its _M_f128 member. 754 (__extended_floating_point, __floating_point): Replace with ... 755 (__formattable_floating_point): New concept. 756 * testsuite/std/format/functions/format.cc: Check whether 757 __float128 is supported. Also test _Float128. 758 759 2022-11-15 Jonathan Wakely <jwakely (a] redhat.com> 760 761 * doc/xml/manual/documentation_hacking.xml: Document use of 762 Markdown for Doxygen comments. Tweak formatting. 763 * doc/html/manual/documentation_hacking.html: Regenerate. 764 765 2022-11-14 Jonathan Wakely <jwakely (a] redhat.com> 766 767 * python/Makefile.am (install-data-local): Use mkdirs_p for debug 768 libdir. 769 * python/Makefile.in: Regenerate. 770 771 2022-11-14 Bernhard Reutner-Fischer <rep.dot.nop (a] gmail.com> 772 773 * src/Makefile.am (install-debug): Remove use of $(debugdir). 774 * src/Makefile.in: Regenerate. 775 776 2022-11-13 Jonathan Wakely <jwakely (a] redhat.com> 777 778 * include/std/chrono (utc_clock, tai_clock, gps_clock): Define. 779 (clock_time_conversion, clock_cast): Define. 780 (sys_info, local_info): Define structs for timezone information. 781 (nonexistent_local_time, ambiguous_local_time): Define 782 exceptions for invalid times. 783 (time_zone, time_zone_link, leap_second, zoned_traits, tzdb) 784 (tzdb_list): Define classes representing time zones. 785 (get_leap_second_info): Define new function returning leap 786 second offset for a given time point. 787 * testsuite/std/time/clock/gps/1.cc: New test. 788 * testsuite/std/time/clock/tai/1.cc: New test. 789 * testsuite/std/time/clock/utc/1.cc: New test. 790 791 2022-11-13 Jonathan Wakely <jwakely (a] redhat.com> 792 793 PR libstdc++/104166 794 * include/Makefile.am (std_headers): Add <format>. 795 * include/Makefile.in: Regenerate. 796 * include/precompiled/stdc++.h: Add <format>. 797 * include/std/format: New file. 798 * python/libstdcxx/v6/printers.py (StdFormatArgsPrinter): New 799 printer for std::format_args. 800 * testsuite/std/format/arguments/args.cc: New test. 801 * testsuite/std/format/error.cc: New test. 802 * testsuite/std/format/formatter.cc: New test. 803 * testsuite/std/format/functions/format.cc: New test. 804 * testsuite/std/format/functions/format_to_n.cc: New test. 805 * testsuite/std/format/functions/size.cc: New test. 806 * testsuite/std/format/functions/vformat_to.cc: New test. 807 * testsuite/std/format/parse_ctx.cc: New test. 808 * testsuite/std/format/string.cc: New test. 809 * testsuite/std/format/string_neg.cc: New test. 810 811 2022-11-13 Jonathan Wakely <jwakely (a] redhat.com> 812 813 * include/bits/charconv.h (__integer_to_chars_is_unsigned): 814 New variable template. 815 (__to_chars_len, __to_chars_10_impl): Use variable template in 816 assertions to allow unsigned __int128 in strict mode. 817 * include/std/charconv (__to_chars, __to_chars_16) 818 (__to_chars_10, __to_chars_8, __to_chars_2): Likewise. 819 820 2022-11-12 Jakub Jelinek <jakub (a] redhat.com> 821 822 PR libstdc++/107636 823 * include/std/charconv (to_chars): Fix up powerpc64le _Float128 824 overload __extension__ placement. 825 826 2022-11-12 Jonathan Wakely <jwakely (a] redhat.com> 827 828 * src/Makefile.am: Simplify debug build targets. 829 * src/Makefile.in: Regenerate. 830 831 2022-11-12 Jonathan Wakely <jwakely (a] redhat.com> 832 833 PR libstdc++/103755 834 * src/c++11/locale-inst-monetary.h: Include new header. 835 * src/c++11/locale-inst-numeric.h: Likewise. 836 * src/c++11/locale-inst.cc: Likewise. 837 (INSTANTIATE_USE_FACET, INSTANTIATE_FACET_ACCESSORS): Move 838 macro definitions to ... 839 * src/c++11/facet_inst_macros.h: New file. 840 841 2022-11-11 Jonathan Wakely <jwakely (a] redhat.com> 842 843 PR libstdc++/95048 844 * include/experimental/bits/fs_path.h (path::_Cvt::_S_wconvert): 845 Construct codecvt directly instead of getting it from the 846 locale. 847 848 2022-11-11 Nathaniel Shead <nathanieloshead (a] gmail.com> 849 850 PR libstdc++/103295 851 * include/bits/basic_string.h (_M_use_local_data): Set active 852 member to _M_local_buf. 853 854 2022-11-11 Jonathan Wakely <jwakely (a] redhat.com> 855 856 PR libstdc++/95048 857 * include/bits/fs_path.h (path::_Codecvt): New class template 858 that selects the kind of code conversion done. 859 (path::_Codecvt<wchar_t>): Select based on sizeof(wchar_t). 860 (_GLIBCXX_CONV_FROM_UTF8): New macro to allow the same code to 861 be used for Windows and POSIX. 862 (path::_S_convert(const EcharT*, const EcharT*)): Simplify by 863 using _Codecvt and _GLIBCXX_CONV_FROM_UTF8 abstractions. 864 (path::_S_str_convert(basic_string_view<value_type>, const A&)): 865 Simplify nested conditions. 866 * include/experimental/bits/fs_path.h (path::_Cvt): Define 867 nested typedef controlling type of code conversion done. 868 (path::_Cvt::_S_wconvert): Use new typedef. 869 (path::string(const A&)): Likewise. 870 * testsuite/27_io/filesystem/path/construct/95048.cc: New test. 871 * testsuite/experimental/filesystem/path/construct/95048.cc: New 872 test. 873 874 2022-11-11 Jonathan Wakely <jwakely (a] redhat.com> 875 876 * testsuite/20_util/tuple/swap.cc (MoveOnly::operator==): Add 877 const qualifier. 878 * testsuite/26_numerics/valarray/87641.cc (X::operator==): 879 Likewise. 880 881 2022-11-11 Jonathan Wakely <jwakely (a] redhat.com> 882 883 * include/std/charconv (__from_chars_alnum_to_val_table::value): 884 [!__cpp_inline_variables]: Add non-inline definition. 885 886 2022-11-11 Jonathan Wakely <jwakely (a] redhat.com> 887 888 * testsuite/experimental/propagate_const/observers/107525.cc: 889 Use type trait instead of C++17 variable template. 890 891 2022-11-11 Jonathan Wakely <jwakely (a] redhat.com> 892 893 PR libstdc++/103755 894 * config/abi/pre/gnu.ver: Tighten patterns for facets in the 895 base version. Add exports for __try_use_facet. 896 * include/bits/basic_ios.tcc (basic_ios::_M_cache_locale): Use 897 __try_use_facet instead of has_facet and use_facet. 898 * include/bits/fstream.tcc (basic_filebuf::basic_filebuf()): 899 Likewise. 900 (basic_filebuf::imbue): Likewise. 901 * include/bits/locale_classes.h (locale, locale::id) 902 (locale::_Impl): Declare __try_use_facet as a friend. 903 * include/bits/locale_classes.tcc (__try_use_facet): Define new 904 function template with special cases for default facets. 905 (has_facet, use_facet): Call __try_use_facet. 906 * include/bits/locale_facets.tcc (__try_use_facet): Declare 907 explicit instantiations. 908 * include/bits/locale_facets_nonio.tcc (__try_use_facet): 909 Likewise. 910 * src/c++11/locale-inst-monetary.h (INSTANTIATE_FACET_ACCESSORS): 911 Use new macro for facet accessor instantiations. 912 * src/c++11/locale-inst-numeric.h (INSTANTIATE_FACET_ACCESSORS): 913 Likewise. 914 * src/c++11/locale-inst.cc (INSTANTIATE_USE_FACET): Define new 915 macro for instantiating __try_use_facet and use_facet. 916 (INSTANTIATE_FACET_ACCESSORS): Define new macro for also 917 defining has_facet. 918 * src/c++98/compatibility-ldbl.cc (__try_use_facet): 919 Instantiate. 920 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Adjust 921 expected errors. 922 923 2022-11-10 Jonathan Wakely <jwakely (a] redhat.com> 924 925 * include/std/concepts (__detail::__destructible_impl) 926 (__detail::__destructible): New variable templates. 927 (destructible): Use __detail::__destructible. 928 * testsuite/std/concepts/concepts.lang/concept.destructible/1.cc: 929 Add more checks for array and reference types. 930 931 2022-11-08 Jonathan Wakely <jwakely (a] redhat.com> 932 933 * testsuite/18_support/new_nothrow.cc: Add missing noexcept 934 to operator delete replacements. 935 * testsuite/20_util/any/cons/92156.cc: Disable 936 -Winit-list-lifetime warnings from instantiating invalid 937 specialization of manager function. 938 * testsuite/20_util/any/modifiers/92156.cc: Likewise. 939 * testsuite/20_util/default_delete/void_neg.cc: Prune additional 940 diagnostics. 941 * testsuite/20_util/headers/memory/synopsis.cc: Add missing 942 noexcept. 943 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Prune 944 additional diagnostic. 945 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Add 946 missing noexcept to operator delete replacements. 947 * testsuite/21_strings/basic_string/cons/char/103919.cc: 948 Likewise. 949 * testsuite/23_containers/map/modifiers/emplace/92300.cc: 950 Likewise. 951 * testsuite/23_containers/map/modifiers/insert/92300.cc: 952 Likewise. 953 * testsuite/24_iterators/headers/iterator/range_access_c++11.cc: 954 Add missing noexcept to synopsis declarations. 955 * testsuite/24_iterators/headers/iterator/range_access_c++14.cc: 956 Likewise. 957 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: 958 Likewise. 959 960 2022-11-08 Jonathan Wakely <jwakely (a] redhat.com> 961 962 * include/bits/stl_tempbuf.h (_Temporary_buffer): Disable 963 warnings about get_temporary_buffer being deprecated. 964 * include/ext/functional (mem_fun1, mem_fun1_ref): Disable 965 warnings about mem_fun1_t, const_mem_fun1_t, mem_fun1_ref_t and 966 const_mem_fun1_ref_t being deprecated. 967 * include/std/array (__array_traits<T, 0>): Remove artificial 968 attributes which give warnings about being ignored. 969 * include/std/spanstream (basic_spanbuf::setbuf): Add assertion 970 and adjust to avoid narrowing warning. 971 * libsupc++/exception_ptr.h [!__cpp_rtti && !__cpp_exceptions] 972 (make_exception_ptr): Add missing inline specifier. 973 974 2022-11-08 Jonathan Wakely <jwakely (a] redhat.com> 975 976 * include/bits/alloc_traits.h (allocator_traits): Add 977 always_inline attribute to all member functions. 978 (__do_alloc_on_copy, __alloc_on_copy, __do_alloc_on_move) 979 (__alloc_on_move, __do_alloc_on_swap, __alloc_on_swap) 980 (_Destroy(FwdIter, FwdIter, allocator<T>&)): : Add 981 always_inline attribute. 982 * include/bits/allocator.h (allocator): Add always_inline 983 attribute to all member functions and equality operators. 984 * include/bits/new_allocator.h (__new_allocator): Likewise. 985 * include/ext/alloc_traits.h (__gnu_cxx::__alloc_traits): 986 Likewise. 987 988 2022-11-08 Charles-Franois Natali <cf.natali (a] gmail.com> 989 990 PR libstdc++/63746 991 * include/bits/fstream.tcc (basic_filbuf::xsputn): Remove 992 1024-byte chunking that bypasses the buffer for large writes. 993 * testsuite/27_io/basic_filebuf/sputn/char/63746.cc: New test. 994 995 2022-11-08 Will Hawkins <whh8b (a] obs.cr> 996 Jonathan Wakely <jwakely (a] redhat.com> 997 998 * include/bits/basic_string.h (__str_cat): Add common function 999 that performs single-allocation string concatenation. 1000 (operator+): Use __str_cat. 1001 * include/bits/basic_string.tcc (operator+): Move to .h and 1002 define inline using __str_cat. 1003 1004 2022-11-08 Jakub Jelinek <jakub (a] redhat.com> 1005 1006 * testsuite/20_util/to_chars/float128_c++23.cc (test): Uncomment 1007 denorm_min test. 1008 1009 2022-11-08 Jonathan Wakely <jwakely (a] redhat.com> 1010 1011 * doc/xml/authors.xml: Update the blurb listing my doc 1012 contributions. 1013 1014 2022-11-08 Jonathan Wakely <jwakely (a] redhat.com> 1015 1016 * doc/xml/authors.xml: Remove empty author element. 1017 * doc/xml/manual/spine.xml: Likewise. 1018 * doc/html/manual/index.html: Regenerate. 1019 1020 2022-11-08 Joseph Myers <joseph (a] codesourcery.com> 1021 1022 PR libstdc++/107562 1023 * src/c++17/floating_from_chars.cc (from_chars_impl): Fix syntax 1024 error. 1025 1026 2022-11-08 Jason Merrill <jason (a] redhat.com> 1027 Jakub Jelinek <jakub (a] redhat.com> 1028 1029 * testsuite/18_support/comparisons/algorithms/fallback.cc: Adjust 1030 asserts. 1031 1032 2022-11-07 Jakub Jelinek <jakub (a] redhat.com> 1033 1034 PR libstdc++/107562 1035 * src/c++17/floating_from_chars.cc (__strtof128): Put __asm before 1036 __attribute__. 1037 * src/c++17/floating_to_chars.cc (__strfromf128): Likewise. 1038 1039 2022-11-07 Patrick Palka <ppalka (a] redhat.com> 1040 1041 * include/std/ranges (as_rvalue_view): Define. 1042 (enable_borrowed_range<as_rvalue_view>): Define. 1043 (views::__detail::__can_as_rvalue_view): Define. 1044 (views::_AsRvalue, views::as_rvalue): Define. 1045 * testsuite/std/ranges/adaptors/as_rvalue/1.cc: New test. 1046 1047 2022-11-07 Patrick Palka <ppalka (a] redhat.com> 1048 1049 * include/std/ranges (__maybe_const_t): New alias for 1050 __detail::__maybe_const_t. 1051 (__detail::__cartesian_product_is_random_access): Define. 1052 (__detail::__cartesian_product_common_arg): Define. 1053 (__detail::__cartesian_product_is_bidirectional): Define. 1054 (__detail::__cartesian_product_is_common): Define. 1055 (__detail::__cartesian_product_is_sized): Define. 1056 (__detail::__cartesian_is_sized_sentinel): Define. 1057 (__detail::__cartesian_common_arg_end): Define. 1058 (cartesian_product_view): Define. 1059 (cartesian_product_view::_Iterator): Define. 1060 (views::__detail::__can_cartesian_product_view): Define. 1061 (views::_CartesianProduct, views::cartesian_product): Define. 1062 * testsuite/std/ranges/cartesian_product/1.cc: New test. 1063 1064 2022-11-07 Jakub Jelinek <jakub (a] redhat.com> 1065 1066 PR libstdc++/107468 1067 * src/c++17/fast_float/MERGE: Adjust for merge from upstream. 1068 * src/c++17/fast_float/LOCAL_PATCHES: Remove commits that were 1069 upstreamed. 1070 * src/c++17/fast_float/README.md: Merge from fast_float 1071 662497742fea7055f0e0ee27e5a7ddc382c2c38e commit. 1072 * src/c++17/fast_float/fast_float.h: Likewise. 1073 * testsuite/20_util/from_chars/pr107468.cc: New test. 1074 1075 2022-11-07 Jakub Jelinek <jakub (a] redhat.com> 1076 1077 * include/std/charconv (from_chars, to_chars): Add _Float128 1078 overfloads if _GLIBCXX_HAVE_FLOAT128_MATH is defined. 1079 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export 1080 _ZSt8to_charsPcS_DF128_, _ZSt8to_charsPcS_DF128_St12chars_format, 1081 _ZSt8to_charsPcS_DF128_St12chars_formati and 1082 _ZSt10from_charsPKcS0_RDF128_St12chars_format. 1083 * src/c++17/floating_from_chars.cc (USE_STRTOF128_FOR_FROM_CHARS): 1084 Define if needed. 1085 (__strtof128): Declare. 1086 (from_chars_impl): Handle _Float128. 1087 (from_chars): New _Float128 overload if USE_STRTOF128_FOR_FROM_CHARS 1088 is define. 1089 * src/c++17/floating_to_chars.cc (__strfromf128): Declare. 1090 (FLOAT128_TO_CHARS): Define even when _Float128 is supported and 1091 wider than long double. 1092 (F128_type): Use _Float128 for that case. 1093 (floating_type_traits): Specialize for F128_type rather than 1094 __float128. 1095 (sprintf_ld): Add length argument. Handle _Float128. 1096 (__floating_to_chars_shortest, __floating_to_chars_precision): 1097 Pass length to sprintf_ld. 1098 (to_chars): Add _Float128 overloads for the F128_type being 1099 _Float128 cases. 1100 * testsuite/20_util/to_chars/float128_c++23.cc: New test. 1101 1102 2022-11-06 Patrick Palka <ppalka (a] redhat.com> 1103 1104 * include/bits/atomic_wait.h (_detail::__platform_wait_alignment): 1105 Declare inline. Remove redundant static specifier. 1106 (__detail::__atomic_spin_count_relax): Declare inline. 1107 (__detail::__atomic_spin_count): Likewise. 1108 * include/bits/regex_automaton.h (__detail::_S_invalid_state_id): 1109 Declare inline for C++17. Declare constexpr. Remove 1110 redundant const and static specifiers. 1111 * include/bits/regex_error.h (regex_constants::error_collate): 1112 Declare inline for C++17 as per P0607R0. 1113 (regex_constants::error_ctype): Likewise. 1114 (regex_constants::error_escape): Likewise. 1115 (regex_constants::error_backref): Likewise. 1116 (regex_constants::error_brack): Likewise. 1117 (regex_constants::error_paren): Likewise. 1118 (regex_constants::error_brace): Likewise. 1119 (regex_constants::error_badbrace): Likewise. 1120 (regex_constants::error_range): Likewise. 1121 (regex_constants::error_space): Likewise. 1122 (regex_constants::error_badrepeat): Likewise. 1123 (regex_constants::error_complexity): Likewise. 1124 (regex_constants::error_stack): Likewise. 1125 * include/ext/concurrence.h (__gnu_cxx::__default_lock_policy): 1126 Likewise. Remove redundant static specifier. 1127 * include/pstl/execution_defs.h (execution::seq): Declare inline 1128 for C++17 as per P0607R0. 1129 (execution::par): Likewise. 1130 (execution::par_unseq): Likewise. 1131 (execution::unseq): Likewise. 1132 1133 2022-11-06 Patrick Palka <ppalka (a] redhat.com> 1134 1135 PR libstdc++/44952 1136 PR libstdc++/39796 1137 PR libstdc++/98108 1138 * include/std/iostream (__ioinit): No longer define here if 1139 the init_priority attribute is usable. 1140 * src/c++98/ios_init.cc (__ioinit): Define here instead if 1141 init_priority is usable, via ... 1142 * src/c++98/ios_base_init.h: ... this new file. 1143 1144 2022-11-05 Jakob Hasse <0xjakob (a] users.noreply.github.com> 1145 1146 PR libstdc++/105387 1147 * libsupc++/pbase_type_info.cc (__do_catch) [!__cpp_rtti]: Add 1148 check that the thrown type is actually a pointer. 1149 * testsuite/18_support/105387.cc: New test. 1150 * testsuite/18_support/105387_memptr.cc: New test. 1151 1152 2022-11-05 Jonathan Wakely <jwakely (a] redhat.com> 1153 1154 PR libstdc++/107525 1155 * include/experimental/propagate_const (operator element_type*()): 1156 Move into base class that can be partially specilized to iompose 1157 constraints. 1158 (operator const element_type*()): Likewise. 1159 * testsuite/experimental/propagate_const/observers/107525.cc: New test. 1160 1161 2022-11-04 Jonathan Wakely <jwakely (a] redhat.com> 1162 1163 PR libstdc++/107500 1164 * libsupc++/eh_globals.cc (eh_globals): Remove immortalizing 1165 wrapper. 1166 (__cxxabiv1::__cxa_get_globals_fast): Adjust. 1167 (__cxxabiv1::__cxa_get_globals): Adjust. 1168 1169 2022-11-04 Jonathan Wakely <jwakely (a] redhat.com> 1170 1171 PR libstdc++/107511 1172 * libsupc++/eh_alloc.cc (_GNU_SOURCE): Define. 1173 1174 2022-11-03 Jonathan Wakely <jwakely (a] redhat.com> 1175 1176 * include/bits/ranges_algobase.h (__detail::__copy_or_move): 1177 Move output iterator. 1178 * testsuite/25_algorithms/copy/constrained.cc: Check copying to 1179 move-only output iterator. 1180 1181 2022-11-02 Jonathan Wakely <jwakely (a] redhat.com> 1182 1183 * libsupc++/eh_globals.cc (constant_init::unused): Remove. 1184 * src/c++11/system_error.cc (constant_init::unused): Remove. 1185 * src/c++17/memory_resource.cc (constant_init::unused): Remove. 1186 1187 2022-11-02 Patrick Palka <ppalka (a] redhat.com> 1188 1189 * src/c++17/floating_from_chars.cc (from_chars_impl): In the 1190 ERANGE case, distinguish between a denormal result and true 1191 underflow by checking if the return value is 0. 1192 1193 2022-11-02 Jonathan Wakely <jwakely (a] redhat.com> 1194 1195 * include/std/expected (expected::_M_invalid): Remove. 1196 1197 2022-11-02 Jonathan Wakely <jwakely (a] redhat.com> 1198 1199 * include/std/variant (__variant::_Multi_array::__untag_result): 1200 Use pragma to suppress warning. 1201 1202 2022-11-02 Jakub Jelinek <jakub (a] redhat.com> 1203 1204 * libsupc++/compare (_Strong_order::_Fp_fmt): Add _Bfloat16. 1205 (_Strong_order::_Bfloat16): New static data member. 1206 (_Strong_order::_S_fp_fmt): Return _Bfloat16 for std::bfloat16_t. 1207 1208 2022-11-02 Jakub Jelinek <jakub (a] redhat.com> 1209 1210 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex): Drop const 1211 from unbiased_exponent. Canonicalize denormals such that they have 1212 the leading bit set by shifting effective mantissa up and decreasing 1213 unbiased_exponent. 1214 (__floating_to_chars_shortest): Don't instantiate 1215 __floating_to_chars_hex for float16_t either and use float instead. 1216 * testsuite/20_util/to_chars/float.cc (float_to_chars_test_cases): 1217 Adjust testcases for shortest hex denormals. 1218 * testsuite/20_util/to_chars/double.cc (double_to_chars_test_cases): 1219 Likewise. 1220 1221 2022-11-01 Jakub Jelinek <jakub (a] redhat.com> 1222 1223 * include/std/charconv (__from_chars_float16_t, 1224 __from_chars_bfloat16_t): Declare. 1225 (from_chars): Add _Float16 and __gnu_cxx::__bfloat16_t overloads. 1226 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export 1227 _ZSt22__from_chars_float16_tPKcS0_RfSt12chars_format and 1228 _ZSt23__from_chars_bfloat16_tPKcS0_RfSt12chars_format. 1229 * src/c++17/floating_from_chars.cc 1230 (fast_float::floating_type_float16_t, 1231 fast_float::floating_type_bfloat16_t): New classes. 1232 (fast_float::binary_format<floating_type_float16_t>, 1233 fast_float::binary_format<floating_type_bfloat16_t>): New 1234 specializations. 1235 (fast_float::to_float<floating_type_float16_t>, 1236 fast_float::to_float<floating_type_bfloat16_t>, 1237 fast_float::to_extended<floating_type_float16_t>, 1238 fast_float::to_extended<floating_type_bfloat16_t>): Likewise. 1239 (fast_float::from_chars_16): New template function. 1240 (__floating_from_chars_hex): Allow instantiation with 1241 fast_float::floating_type_{,b}float16_t. 1242 (from_chars): Formatting fixes for float/double/long double overloads. 1243 (__from_chars_float16_t, __from_chars_bfloat16_t): New functions. 1244 * testsuite/20_util/to_chars/float16_c++23.cc: New test. 1245 1246 2022-11-01 Jakub Jelinek <jakub (a] redhat.com> 1247 1248 * include/std/charconv (__to_chars_float16_t, __to_chars_bfloat16_t): 1249 Declare. 1250 (to_chars): Add _Float16 and __gnu_cxx::__bfloat16_t overloads. 1251 * config/abi/pre/gnu.ver (GLIBCXX_3.4.31): Export 1252 _ZSt20__to_chars_float16_tPcS_fSt12chars_format and 1253 _ZSt21__to_chars_bfloat16_tPcS_fSt12chars_format. 1254 * src/c++17/floating_to_chars.cc (floating_type_float16_t, 1255 floating_type_bfloat16_t): New types. 1256 (floating_type_traits<floating_type_float16_t>, 1257 floating_type_traits<floating_type_bfloat16_t>, 1258 get_ieee_repr<floating_type_float16_t>, 1259 get_ieee_repr<floating_type_bfloat16_t>, 1260 __handle_special_value<floating_type_float16_t>, 1261 __handle_special_value<floating_type_bfloat16_t>): New specializations. 1262 (floating_to_shortest_scientific): Handle floating_type_float16_t 1263 and floating_type_bfloat16_t like IEEE quad. 1264 (__floating_to_chars_shortest): For floating_type_bfloat16_t call 1265 __floating_to_chars_hex<float> rather than 1266 __floating_to_chars_hex<floating_type_bfloat16_t> to avoid 1267 instantiating the latter. 1268 (__to_chars_float16_t, __to_chars_bfloat16_t): New functions. 1269 1270 2022-11-01 Jakub Jelinek <jakub (a] redhat.com> 1271 1272 * include/std/charconv (from_chars, to_chars): Add _Float{32,64,128} 1273 overloads for cases where those types match {float,double,long double}. 1274 * include/std/istream (basic_istream::operator>>): Add 1275 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads. 1276 * include/std/ostream (basic_ostream::operator<<): Add 1277 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t overloads. 1278 * testsuite/20_util/from_chars/8.cc: New test. 1279 * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc (test): 1280 Formatting fixes. 1281 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc: Add 1282 dg-options "-std=gnu++2b". 1283 (test_functions, main): Formatting fixes. 1284 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc: 1285 Add dg-options "-std=gnu++2b". 1286 1287 2022-10-31 Jakub Jelinek <jakub (a] redhat.com> 1288 1289 * include/std/complex (complex::complex converting ctor): For C++23 1290 use explicit specifier with constant expression. Explicitly cast 1291 both parts to _Tp. 1292 (__complex_abs, __complex_arg, __complex_cos, __complex_cosh, 1293 __complex_exp, __complex_log, __complex_sin, __complex_sinh, 1294 __complex_sqrt, __complex_tan, __complex_tanh, __complex_pow): Add 1295 __complex__ _Float{16,32,64,128} and __complex__ decltype(0.0bf16) 1296 overloads. 1297 (complex<float>::complex converting ctor, 1298 complex<double>::complex converting ctor, 1299 complex<long double>::complex converting ctor): For C++23 implement 1300 as template with explicit specifier with constant expression 1301 and explicit casts. 1302 (__complex_type): New template. 1303 (complex): New partial specialization for types with extended floating 1304 point types. 1305 (__complex_acos, __complex_asin, __complex_atan, __complex_acosh, 1306 __complex_asinh, __complex_atanh): Add __complex__ _Float{16,32,64,128} 1307 and __complex__ decltype(0.0bf16) overloads. 1308 (__complex_proj): Likewise. Add template for complex of extended 1309 floating point types. 1310 * include/bits/cpp_type_traits.h (__is_floating): Specialize for 1311 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t. 1312 * testsuite/26_numerics/complex/ext_c++23.cc: New test. 1313 1314 2022-10-31 Jakub Jelinek <jakub (a] redhat.com> 1315 1316 * config/os/gnu-linux/os_defines.h (_GLIBCXX_HAVE_FLOAT128_MATH): 1317 Uncomment. 1318 * include/c_global/cmath (nextafter(_Float16, _Float16)): Make it constexpr. 1319 If std::__is_constant_evaluated() call __builtin_nextafterf16. 1320 (nextafter(__gnu_cxx::__bfloat16_t, __gnu_cxx::__bfloat16_t)): Similarly 1321 but call __builtin_nextafterf16b. 1322 * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc (test): Add 1323 static assertions to test constexpr nextafter. 1324 1325 2022-10-28 Jonathan Wakely <jwakely (a] redhat.com> 1326 1327 * include/bits/fs_path.h (path::filename()): Fix dangling 1328 reference. 1329 1330 2022-10-28 Arsen Arsenovi <arsen (a] aarsen.me> 1331 1332 * include/std/functional: Make placeholders inline, if possible. 1333 1334 2022-10-28 Arsen Arsenovi <arsen (a] aarsen.me> 1335 1336 * configure.ac: Stop generating gstdint.h. 1337 * src/c++11/compatibility-atomic-c++0x.cc: Stop using gstdint.h. 1338 * Makefile.in: Regenerate. 1339 * aclocal.m4: Regenerate. 1340 * config.h.in: Regenerate. 1341 * configure: Regenerate. 1342 * doc/Makefile.in: Regenerate. 1343 * include/Makefile.in: Regenerate. 1344 * libsupc++/Makefile.in: Regenerate. 1345 * po/Makefile.in: Regenerate. 1346 * python/Makefile.in: Regenerate. 1347 * src/Makefile.in: Regenerate. 1348 * src/c++11/Makefile.in: Regenerate. 1349 * src/c++17/Makefile.in: Regenerate. 1350 * src/c++20/Makefile.in: Regenerate. 1351 * src/c++98/Makefile.in: Regenerate. 1352 * src/filesystem/Makefile.in: Regenerate. 1353 * src/libbacktrace/Makefile.in: Regenerate. 1354 * testsuite/Makefile.in: Regenerate. 1355 1356 2022-10-28 Jonathan Wakely <jwakely (a] redhat.com> 1357 1358 PR libstdc++/107376 1359 * include/bits/regex_executor.h (_Executor::_Executor): Use same 1360 allocator for _M_cur_results and _M_results. 1361 * include/bits/regex_executor.tcc (_Executor::_M_main_dispatch): 1362 Prevent possibly incorrect allocator propagating to 1363 _M_cur_results. 1364 * testsuite/28_regex/algorithms/regex_match/107376.cc: New test. 1365 1366 2022-10-26 Marek Polacek <polacek (a] redhat.com> 1367 1368 PR c++/106393 1369 * include/bits/locale_classes.tcc: Add #pragma to disable 1370 -Wdangling-reference with std::use_facet. 1371 1372 2022-10-21 Arsen Arsenovi <arsen (a] aarsen.me> 1373 1374 * acinclude.m4: Default hosted to off if building without 1375 headers and without newlib. 1376 * configure: Regenerate. 1377 1378 2022-10-21 Jonathan Wakely <jwakely (a] redhat.com> 1379 1380 * include/bits/mofunc_impl.h (move_only_function::__param_t): 1381 Use __is_scalar instead of is_trivially_copyable. 1382 * testsuite/20_util/move_only_function/call.cc: Check parameters 1383 involving incomplete types. 1384 1385 2022-10-20 Patrick Palka <ppalka (a] redhat.com> 1386 1387 * include/std/charconv (__detail::__from_chars_alnum_to_val_table): 1388 Redefine as a class template containing the members type, value and 1389 _S_make_table. Don't use a local class as the table type. 1390 (__detail::__table): Remove. 1391 (__detail::__from_chars_alnum_to_val): Adjust after the above. 1392 1393 2022-10-19 Patrick Palka <ppalka (a] redhat.com> 1394 1395 * include/std/ranges (views::__detail::__is_repeat_view): Define 1396 and later define a partial specialization. 1397 (views::__detail::__take_of_repeat_view): Declare and later define. 1398 (views::__detail::__drop_of_repeat_view): Likewise. 1399 (views::_Take::operator()): Return a repeat_view if the argument 1400 is a repeat_view as per P2474R2. 1401 (views::_Drop::operator()): Likewise. 1402 (repeat_view): Befriend __take/drop_of_repeat_view. 1403 * testsuite/std/ranges/repeat/1.cc (test04): New test. 1404 1405 2022-10-19 Patrick Palka <ppalka (a] redhat.com> 1406 1407 PR libstdc++/107313 1408 * include/std/ranges (stride_view::_Iterator::operator-): Fix typo. 1409 * testsuite/std/ranges/adaptors/stride/1.cc (test03): New test. 1410 1411 2022-10-19 LIU Hao <lh_mouse (a] 126.com> 1412 1413 * src/c++11/thread.cc (get_nprocs): Add new implementation 1414 for native Windows targets 1415 1416 2022-10-19 LIU Hao <lh_mouse (a] 126.com> 1417 1418 * libsupc++/atexit_thread.cc (__cxa_thread_atexit): Use 1419 implementation from mcfgthread if available 1420 * libsupc++/guard.cc (__cxa_guard_acquire, __cxa_guard_release, 1421 __cxa_guard_abort): Use implementations from mcfgthread if 1422 available 1423 * configure: Regenerate 1424 1425 2022-10-19 Jakub Jelinek <jakub (a] redhat.com> 1426 1427 PR c++/106652 1428 * include/std/limits: Fix a typo, 202202L -> 202002L. 1429 (numeric_limits::<_Float16>::radix, numeric_limits::<_Float32>::radix, 1430 numeric_limits::<_Float64>::radix, numeric_limits::<_Float128>::radix, 1431 numeric_limits::<__gnu_cxx::__bfloat16_t>::radix): Use __FLT_RADIX__ 1432 macro instead of type specific macros. 1433 * include/c_global/cmath (nextafter(_Float16, _Float16)): New 1434 overload. 1435 (nextafter(__gnu_cxx::__bfloat16_t, __gnu_cxx::__bfloat16_t)): 1436 Likewise. 1437 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc 1438 (test_functions): Uncomment nextafter test. Fix up sph_neumann call. 1439 * testsuite/26_numerics/headers/cmath/nextafter_c++23.cc: New test. 1440 1441 2022-10-18 Patrick Palka <ppalka (a] redhat.com> 1442 1443 * include/std/ranges (stride_view): Define. 1444 (stride_view::_Iterator): Define. 1445 (views::__detail::__can_stride_view): Define. 1446 (views::_Stride, views::stride): Define. 1447 * testsuite/std/ranges/adaptors/stride/1.cc: New test. 1448 1449 2022-10-18 Jakub Jelinek <jakub (a] redhat.com> 1450 1451 PR c++/106652 1452 * include/std/stdfloat: New file. 1453 * include/std/numbers (__glibcxx_numbers): Define and use it 1454 for __float128 explicit instantiations as well as 1455 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t. 1456 * include/std/atomic (atomic<_Float16>, atomic<_Float32>, 1457 atomic<_Float64>, atomic<_Float128>, atomic<__gnu_cxx::__bfloat16_t>): 1458 New explicit instantiations. 1459 * include/std/type_traits (__is_floating_point_helper<_Float16>, 1460 __is_floating_point_helper<_Float32>, 1461 __is_floating_point_helper<_Float64>, 1462 __is_floating_point_helper<_Float128>, 1463 __is_floating_point_helper<__gnu_cxx::__bfloat16_t>): Likewise. 1464 * include/std/limits (__glibcxx_concat3_, __glibcxx_concat3, 1465 __glibcxx_float_n): Define. 1466 (numeric_limits<_Float16>, numeric_limits<_Float32>, 1467 numeric_limits<_Float64>, numeric_limits<_Float128>, 1468 numeric_limits<__gnu_cxx::__bfloat16_t>): New explicit instantiations. 1469 * include/bits/std_abs.h (abs): New overloads for 1470 _Float{16,32,64,128} and __gnu_cxx::__bfloat16_t. 1471 * include/bits/c++config (_GLIBCXX_LDOUBLE_IS_IEEE_BINARY128): Define 1472 if long double is IEEE quad. 1473 (__gnu_cxx::__bfloat16_t): New using. 1474 * include/c_global/cmath (acos, asin, atan, atan2, ceil, cos, cosh, 1475 exp, fabs, floor, fmod, frexp, ldexp, log, log10, modf, pow, sin, 1476 sinh, sqrt, tan, tanh, fpclassify, isfinite, isinf, isnan, isnormal, 1477 signbit, isgreater, isgreaterequal, isless, islessequal, 1478 islessgreater, isunordered, acosh, asinh, atanh, cbrt, copysign, erf, 1479 erfc, exp2, expm1, fdim, fma, fmax, fmin, hypot, ilogb, lgamma, 1480 llrint, llround, log1p, log2, logb, lrint, lround, nearbyint, 1481 nextafter, remainder, rint, round, scalbln, scalbn, tgamma, trunc, 1482 lerp): New overloads with _Float{16,32,64,128} or 1483 __gnu_cxx::__bfloat16_t types. 1484 * config/os/gnu-linux/os_defines.h (_GLIBCXX_HAVE_FLOAT128_MATH): 1485 Prepare for definition if glibc 2.26 and later implements *f128 APIs 1486 but comment out the actual definition for now. 1487 * include/ext/type_traits.h (__promote<_Float16>, __promote<_Float32>, 1488 __promote<_Float64>, __promote<_Float128>, 1489 __promote<__gnu_cxx::__bfloat16_t>): New specializations. 1490 * include/Makefile.am (std_headers): Add stdfloat. 1491 * include/Makefile.in: Regenerated. 1492 * include/precompiled/stdc++.h: Include stdfloat. 1493 * testsuite/18_support/headers/stdfloat/types_std.cc: New test. 1494 * testsuite/18_support/headers/limits/synopsis_cxx23.cc: New test. 1495 * testsuite/26_numerics/headers/cmath/c99_classification_macros_c++23.cc: 1496 New test. 1497 * testsuite/26_numerics/headers/cmath/functions_std_c++23.cc: New test. 1498 * testsuite/26_numerics/numbers/4.cc: New test. 1499 * testsuite/29_atomics/atomic_float/requirements_cxx23.cc: New test. 1500 1501 2022-10-17 Jonathan Wakely <jwakely (a] redhat.com> 1502 1503 * include/std/charconv (__cpp_lib_constexpr_charconv): Define to 1504 correct value. 1505 * include/std/version (__cpp_lib_constexpr_charconv): Likewise. 1506 * testsuite/20_util/to_chars/constexpr.cc: Check correct value. 1507 * testsuite/20_util/to_chars/version.cc: Likewise. 1508 1509 2022-10-15 Jonathan Wakely <jwakely (a] redhat.com> 1510 1511 * src/c++11/debug.cc (print_raw): Move inside #if block. 1512 1513 2022-10-15 Jonathan Wakely <jwakely (a] redhat.com> 1514 1515 * include/bits/charconv.h (__to_chars_10_impl): Add constexpr 1516 for C++23. Remove 'static' from array. 1517 * include/std/charconv (__cpp_lib_constexpr_charconv): Define. 1518 (__to_chars, __to_chars_16): Remove 'static' from array, add 1519 constexpr. 1520 (__to_chars_10, __to_chars_8, __to_chars_2, __to_chars_i) 1521 (to_chars, __raise_and_add, __from_chars_pow2_base) 1522 (__from_chars_alnum, from_chars): Add constexpr. 1523 (__from_chars_alnum_to_val): Avoid local static during constant 1524 evaluation. Add constexpr. 1525 * include/std/version (__cpp_lib_constexpr_charconv): Define. 1526 * testsuite/20_util/from_chars/constexpr.cc: New test. 1527 * testsuite/20_util/to_chars/constexpr.cc: New test. 1528 * testsuite/20_util/to_chars/version.cc: New test. 1529 1530 2022-10-15 Jonathan Wakely <jwakely (a] redhat.com> 1531 1532 * include/bits/stl_map.h (map::insert(Pair&&)): Use 1533 remove_const_t on argument to __is_pair. 1534 * include/bits/stl_pair.h (__is_pair<const pair<T,U>>): Remove 1535 partial specialization. 1536 * include/bits/uses_allocator_args.h (_Std_pair): Use 1537 remove_cv_t as per LWG 3677. 1538 * testsuite/20_util/uses_allocator/lwg3677.cc: New test. 1539 1540 2022-10-14 Jonathan Wakely <jwakely (a] redhat.com> 1541 1542 * libsupc++/eh_alloc.cc [USE_POOL]: New macro. 1543 [!USE_POOL] (__gnu_cxx::__freeres, pool): Do not define. 1544 [_GLIBCXX_EH_POOL_STATIC] (pool::arena): Do not use std::max. 1545 (__cxxabiv1::__cxa_allocate_exception) [!USE_POOL]: Do not use 1546 pool. 1547 (__cxxabiv1::__cxa_free_exception) [!USE_POOL]: Likewise. 1548 (__cxxabiv1::__cxa_allocate_dependent_exception) [!USE_POOL]: 1549 Likewise. 1550 (__cxxabiv1::__cxa_free_dependent_exception) [!USE_POOL]: 1551 Likewise. 1552 1553 2022-10-14 Jonathan Wakely <jwakely (a] redhat.com> 1554 1555 * src/c++11/debug.cc (print_raw): Simplify. 1556 (print_word): Print indentation by calling fprintf directly. 1557 (_Error_formatter::_M_error): Print unindented string by calling 1558 fprintf directly. 1559 1560 2022-10-14 Jonathan Wakely <jwakely (a] redhat.com> 1561 1562 * include/std/iostream: Use markdown in Doxygen comment. 1563 1564 2022-10-12 Franois Dumont <fdumont (a] gcc.gnu.org> 1565 1566 * include/debug/string: Add using _Base::compare. 1567 (__gnu_debug::basic_string<>::compare(const basic_string<>&)): Remove. 1568 (__gnu_debug::basic_string<>::compare(size_type, size_type, const basic_string<>&)): 1569 Remove. 1570 (__gnu_debug::basic_string<>::compare(size_type, size_type, const basic_string<>&, 1571 size_type, size_type)): Remove. 1572 * testsuite/util/testsuite_string.h [_GLIBCXX_TEST_DEBUG_STRING]: Include <debug/string>. 1573 * testsuite/21_strings/basic_string/operations/compare/char/1.cc: Include testsuite_string.h 1574 and use __gnu_test::string. 1575 * testsuite/21_strings/basic_string/operations/compare/char/13650.cc: Likewise. 1576 * testsuite/21_strings/basic_string/operations/compare/char/2.cc: Likewise. 1577 * testsuite/21_strings/basic_string/operations/rfind/char/1.cc: Likewise. 1578 * testsuite/21_strings/basic_string/operations/rfind/char/2.cc: Likewise. 1579 * testsuite/21_strings/basic_string/operations/rfind/char/3.cc: Likewise. 1580 * testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc: 1581 Include testsuite_string.h 1582 and use __gnu_test::wstring. 1583 * testsuite/21_strings/basic_string/operations/compare/wchar_t/13650.cc: Likewise. 1584 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc: Likewise. 1585 1586 2022-10-12 Patrick Palka <ppalka (a] redhat.com> 1587 1588 * include/std/ranges (repeat_view): Define. 1589 (repeat_view::_Iterator): Define. 1590 (views::__detail::__can_repeat_view): Define. 1591 (views::__detail::__can_bounded_repeat_view): Define. 1592 (views::_Repeat, views::repeat): Define. 1593 * testsuite/std/ranges/repeat/1.cc: New test. 1594 1595 2022-10-12 Martin Liska <mliska (a] suse.cz> 1596 1597 * configure: Regenerate. 1598 1599 2022-10-11 Jonathan Wakely <jwakely (a] redhat.com> 1600 1601 PR bootstrap/107221 1602 * libsupc++/eh_alloc.cc (pool): Change preprocessor condition 1603 for using __mutex from __GTHREADS to _GLIBCXX_HOSTED. 1604 (pool::allocate): Remove namespace qualification to use 1605 pool::__scoped_lock instead of __gnu_cxx::__scoped_lock. 1606 1607 2022-10-11 Jonathan Wakely <jwakely (a] redhat.com> 1608 1609 PR libstdc++/68606 1610 * Makefile.in: Regenerate. 1611 * acinclude.m4 (GLIBCXX_EMERGENCY_EH_ALLOC): New macro. 1612 * configure: Regenerate. 1613 * configure.ac: Use GLIBCXX_EMERGENCY_EH_ALLOC. 1614 * crossconfig.m4: Check for secure_getenv. 1615 * doc/Makefile.in: Regenerate. 1616 * doc/xml/manual/configure.xml: Document new configure options. 1617 * doc/xml/manual/evolution.xml: Document addition of tunables. 1618 * doc/xml/manual/using_exceptions.xml: Document emergency 1619 buffer and tunables. 1620 * doc/html/*: Regenerate. 1621 * include/Makefile.in: Regenerate. 1622 * libsupc++/Makefile.am: Use EH_POOL_FLAGS. 1623 * libsupc++/Makefile.in: Regenerate. 1624 * libsupc++/eh_alloc.cc (EMERGENCY_OBJ_SIZE): Define in units 1625 of sizeof(void*) not including the ABI's exception header. 1626 (EMERGENCY_OBJ_COUNT): Define as target-independent calculation 1627 based on word size. 1628 (MAX_OBJ_COUNT): Define macro for upper limit on pool size. 1629 (pool) [_GLIBCXX_EH_POOL_STATIC]: Use fixed-size buffer. 1630 (pool::buffer_size_in_bytes): New static member function. 1631 (pool::pool): Parse GLIBCXX_TUNABLES environment variable to set 1632 pool size at runtime. 1633 (pool::in_pool): Use std::less<void*> for total order. 1634 (__freeres) [_GLIBCXX_EH_POOL_STATIC]: Do nothing. 1635 (__cxa_free_exception, __cxa_free_dependent_exception): Add 1636 [[unlikely]] attributes. 1637 * po/Makefile.in: Regenerate. 1638 * python/Makefile.in: Regenerate. 1639 * src/Makefile.in: Regenerate. 1640 * src/c++11/Makefile.in: Regenerate. 1641 * src/c++17/Makefile.in: Regenerate. 1642 * src/c++20/Makefile.in: Regenerate. 1643 * src/c++98/Makefile.in: Regenerate. 1644 * src/filesystem/Makefile.in: Regenerate. 1645 * src/libbacktrace/Makefile.in: Regenerate. 1646 * testsuite/Makefile.in: Regenerate. 1647 1648 2022-10-11 Olivier Hainque <hainque (a] adacore.com> 1649 Olivier Hainque <hainque (a] adacore.com> 1650 1651 * configure: Regenerate. 1652 1653 2022-10-10 Jonathan Wakely <jwakely (a] redhat.com> 1654 1655 * include/std/type_traits (make_signed, make_unsigned): Remove 1656 constraints on primary template. 1657 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: 1658 Undo changes to expected error in C++20 mode. 1659 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: 1660 Likewise. 1661 * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc: 1662 Likewise. 1663 * testsuite/20_util/make_signed/requirements/uninstantiated.cc: 1664 New test. 1665 * testsuite/20_util/make_unsigned/requirements/uninstantiated.cc: 1666 New test. 1667 1668 2022-10-10 Jonathan Wakely <jwakely (a] redhat.com> 1669 1670 * include/std/type_traits (make_signed, make_unsigned): Add 1671 specializations for cv bool. Add requires-clause for C++20 to 1672 improve diagnostics for non-integral, non-enum cases. 1673 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: 1674 Check cv bool. 1675 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: 1676 Likewise. 1677 * testsuite/24_iterators/range_access/range_access_cpp20_neg.cc: 1678 Adjust expected errors for C++20 and later. 1679 * testsuite/lib/prune.exp: Prune "in requirements [with ...]" 1680 lines from diagnostics. 1681 1682 2022-10-07 Jonathan Wakely <jwakely (a] redhat.com> 1683 1684 * acinclude.m4 (GLIBCXX_ENABLE_HOSTED): Add libstdcxx-hosted 1685 enable arg as an alias for hosted-libstdcxx enable arg. 1686 * configure: Regenerate. 1687 1688 2022-10-07 Jonathan Wakely <jwakely (a] redhat.com> 1689 1690 * include/bits/std_function.h: Include <new> but do not include 1691 <bits/stl_function.h>. 1692 * include/std/functional: Do not include <new>. 1693 1694 2022-10-07 Jonathan Wakely <jwakely (a] redhat.com> 1695 1696 * doc/xml/manual/intro.xml: Add role="bold" attribute to 1697 emphasis elements for issue titles. 1698 * doc/html/manual/bugs.html: Regenerate. 1699 1700 2022-10-05 Jonathan Wakely <jwakely (a] redhat.com> 1701 1702 * include/Makefile.in: Regenerate. 1703 1704 2022-10-05 Jonathan Wakely <jwakely (a] redhat.com> 1705 1706 * include/bits/invoke.h (__invoke_r): Check 1707 __has_builtin(__reference_converts_from_temporary) before using 1708 built-in. 1709 1710 2022-10-04 Jonathan Wakely <jwakely (a] redhat.com> 1711 1712 * testsuite/std/ranges/adaptors/join_with/1.cc: Remove unused 1713 <sstream header. 1714 (test04): Remove constexpr for old std::string ABI and test at 1715 runtime. 1716 1717 2022-10-04 Jonathan Wakely <jwakely (a] redhat.com> 1718 1719 * include/std/type_traits (remove_cv): Use __remove_cv built-in. 1720 (remove_reference): Use __remove_reference built-in. 1721 (remove_cvref): Use __remove_cvref built-in. Remove inheritance 1722 for fallback implementation. 1723 1724 2022-10-04 Jonathan Wakely <jwakely (a] redhat.com> 1725 1726 * include/bits/random.h (__is_seed_seq): Replace with ... 1727 (_If_seed_seq_for): ... this. 1728 * include/ext/random: Adjust to use _If_seed_seq_for. 1729 1730 2022-10-04 Patrick Palka <ppalka (a] redhat.com> 1731 1732 * include/std/ranges (join_with_view::_Iterator::operator*): 1733 Replace use of std::visit with manual visitation. 1734 (join_with_view::_Iterator::operator++): Likewise. 1735 (join_with_view::_Iterator::operator--): Likewise. 1736 (join_with_view::_Iterator::iter_move): Likewise. 1737 (join_with_view::_Iterator::iter_swap): Likewise. 1738 1739 2022-10-04 Jonathan Wakely <jwakely (a] redhat.com> 1740 1741 * testsuite/25_algorithms/stable_sort/mem_check.cc: Do nto run 1742 for freestanding. 1743 1744 2022-10-04 Jonathan Wakely <jwakely (a] redhat.com> 1745 1746 PR libstdc++/107139 1747 * include/std/coroutine: Remove all _GLIBCXXHOSTED preprocessor 1748 conditionals. 1749 1750 2022-10-04 Jonathan Wakely <jwakely (a] redhat.com> 1751 1752 PR libstdc++/107134 1753 * include/c_global/cstdint [!_GLIBCXX_HOSTED]: Include 1754 <stdint-gcc.h> directly. 1755 1756 2022-10-04 Jonathan Wakely <jwakely (a] redhat.com> 1757 1758 PR libstdc++/107135 1759 * include/bits/functexcept.h [!_GLIBCXX_HOSTED] 1760 (__throw_invalid_argument, __throw_out_of_range) 1761 (__throw_out_of_range_fmt, __throw_runtime_error) 1762 (__throw_overflow_error): Define inline. 1763 * include/std/bitset (_M_copy_from_ptr) [!_GLIBCXX_HOSTED]: 1764 Replace __builtin_abort with __throw_invalid_argument. 1765 1766 2022-10-04 Patrick Palka <ppalka (a] redhat.com> 1767 1768 * include/std/ranges: Include <variant> for C++23. 1769 (__detail::__compatible_joinable_ranges): Define. 1770 (__detail::__bidirectional_common): Define. 1771 (join_with_view): Define. 1772 (join_with_view::_Iterator): Define. 1773 (join_with_view::_Sentinel): Define. 1774 (views::__detail::__can_join_with_view): Define. 1775 (views::_JoinWith, views::join_with): Define. 1776 * testsuite/std/ranges/adaptors/join_with/1.cc: New test. 1777 1778 2022-10-04 Arsen Arsenovi <arsen (a] aarsen.me> 1779 1780 * include/std/iostream: Use ///< for inline documentation. 1781 * include/std/limits: Likewise. 1782 * include/experimental/internet: Likewise. 1783 1784 2022-10-03 Jonathan Wakely <jwakely (a] redhat.com> 1785 1786 * doc/xml/manual/status_cxx2020.xml: Update C++20 status. 1787 * doc/html/manual/status.html: Regenerate. 1788 1789 2022-10-03 Arsen Arsenovi <arsen (a] aarsen.me> 1790 1791 PR libstdc++/103626 1792 * testsuite/17_intro/headers/c++1998/stdc++_assert_neg.cc: 1793 Require ET hosted. 1794 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise. 1795 * testsuite/18_support/new_nothrow.cc: Likewise. 1796 * testsuite/20_util/allocator/105975.cc: Likewise. 1797 * testsuite/20_util/allocator/14176.cc: Likewise. 1798 * testsuite/20_util/allocator/64135.cc: Likewise. 1799 * testsuite/20_util/allocator/89510.cc: Likewise. 1800 * testsuite/20_util/allocator/lwg3190.cc: Likewise. 1801 * testsuite/20_util/allocator/overaligned.cc: Likewise. 1802 * testsuite/20_util/allocator/rebind_c++20.cc: Likewise. 1803 * testsuite/20_util/allocator/requirements/constexpr.cc: 1804 Likewise. 1805 * testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc: 1806 Likewise. 1807 * testsuite/20_util/allocator/requirements/typedefs.cc: 1808 Likewise. 1809 * testsuite/20_util/allocator/requirements/typedefs_c++20.cc: 1810 Likewise. 1811 * testsuite/20_util/allocator/void.cc: Likewise. 1812 * testsuite/20_util/allocator_traits/header-2.cc: Likewise. 1813 * testsuite/20_util/allocator_traits/header.cc: Likewise. 1814 * testsuite/20_util/allocator_traits/members/92878_92947.cc: 1815 Likewise. 1816 * testsuite/20_util/allocator_traits/members/pointers.cc: 1817 Likewise. 1818 * testsuite/20_util/allocator_traits/requirements/typedefs.cc: 1819 Likewise. 1820 * testsuite/20_util/bad_function_call/cons_virtual_derivation.cc: 1821 Likewise. 1822 * testsuite/20_util/bind/42593.cc: Likewise. 1823 * testsuite/20_util/bitset/access/dr396.cc: Likewise. 1824 * testsuite/20_util/bitset/access/to_string.cc: Likewise. 1825 * testsuite/20_util/bitset/cons/16020.cc: Likewise. 1826 * testsuite/20_util/bitset/cons/dr1325-2.cc: Likewise. 1827 * testsuite/20_util/bitset/cons/dr396.cc: Likewise. 1828 * testsuite/20_util/bitset/debug/invalidation/1.cc: Likewise. 1829 * testsuite/20_util/bitset/ext/15361.cc: Likewise. 1830 * testsuite/20_util/bitset/operations/13838.cc: Likewise. 1831 * testsuite/20_util/bitset/operations/96303.cc: Likewise. 1832 * testsuite/20_util/bitset/version.cc: Likewise. 1833 * testsuite/20_util/enable_shared_from_this/56383.cc: Likewise. 1834 * testsuite/20_util/enable_shared_from_this/89303.cc: Likewise. 1835 * testsuite/20_util/enable_shared_from_this/members/assign.cc: 1836 Likewise. 1837 * testsuite/20_util/enable_shared_from_this/members/const.cc: 1838 Likewise. 1839 * testsuite/20_util/enable_shared_from_this/members/reinit.cc: 1840 Likewise. 1841 * testsuite/20_util/enable_shared_from_this/members/unique_ptr.cc: 1842 Likewise. 1843 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc: 1844 Likewise. 1845 * testsuite/20_util/enable_shared_from_this/requirements/explicit_instantiation.cc: 1846 Likewise. 1847 * testsuite/20_util/forward/1.cc: Likewise. 1848 * testsuite/20_util/forward/1_neg.cc: Likewise. 1849 * testsuite/20_util/function/1.cc: Likewise. 1850 * testsuite/20_util/function/10.cc: Likewise. 1851 * testsuite/20_util/function/2.cc: Likewise. 1852 * testsuite/20_util/function/3.cc: Likewise. 1853 * testsuite/20_util/function/4.cc: Likewise. 1854 * testsuite/20_util/function/43397.cc: Likewise. 1855 * testsuite/20_util/function/48541.cc: Likewise. 1856 * testsuite/20_util/function/5.cc: Likewise. 1857 * testsuite/20_util/function/58569.cc: Likewise. 1858 * testsuite/20_util/function/6.cc: Likewise. 1859 * testsuite/20_util/function/60594.cc: Likewise. 1860 * testsuite/20_util/function/65760.cc: Likewise. 1861 * testsuite/20_util/function/69222.cc: Likewise. 1862 * testsuite/20_util/function/7.cc: Likewise. 1863 * testsuite/20_util/function/77322.cc: Likewise. 1864 * testsuite/20_util/function/8.cc: Likewise. 1865 * testsuite/20_util/function/9.cc: Likewise. 1866 * testsuite/20_util/function/91456.cc: Likewise. 1867 * testsuite/20_util/function/assign/move.cc: Likewise. 1868 * testsuite/20_util/function/assign/move_target.cc: Likewise. 1869 * testsuite/20_util/function/cmp/cmp_neg.cc: Likewise. 1870 * testsuite/20_util/function/cons/55320.cc: Likewise. 1871 * testsuite/20_util/function/cons/57465.cc: Likewise. 1872 * testsuite/20_util/function/cons/72820.cc: Likewise. 1873 * testsuite/20_util/function/cons/addressof.cc: Likewise. 1874 * testsuite/20_util/function/cons/callable.cc: Likewise. 1875 * testsuite/20_util/function/cons/deduction.cc: Likewise. 1876 * testsuite/20_util/function/cons/lwg2774.cc: Likewise. 1877 * testsuite/20_util/function/cons/move.cc: Likewise. 1878 * testsuite/20_util/function/cons/move_target.cc: Likewise. 1879 * testsuite/20_util/function/cons/noexcept.cc: Likewise. 1880 * testsuite/20_util/function/cons/non_copyconstructible.cc: 1881 Likewise. 1882 * testsuite/20_util/function/cons/refqual.cc: Likewise. 1883 * testsuite/20_util/function/cons/70692.cc: Likewise. 1884 * testsuite/20_util/function/cons/deduction_c++23.cc: Likewise. 1885 * testsuite/20_util/function/invoke/forwarding.cc: Likewise. 1886 * testsuite/20_util/function/invoke/move_only.cc: Likewise. 1887 * testsuite/20_util/function/null_pointer_comparisons.cc: 1888 Likewise. 1889 * testsuite/20_util/function/requirements/explicit_instantiation.cc: 1890 Likewise. 1891 * testsuite/20_util/function/target_no_rtti.cc: Likewise. 1892 * testsuite/20_util/function_objects/83607.cc: Likewise. 1893 * testsuite/20_util/function_objects/mem_fn/adl.cc: Likewise. 1894 * testsuite/20_util/headers/cstdlib/functions_std.cc: Likewise. 1895 * testsuite/20_util/headers/functional/types_std_c++0x.cc: 1896 Likewise. 1897 * testsuite/20_util/headers/memory/types_std_c++0x.cc: Likewise. 1898 * testsuite/20_util/is_function/35637.cc: Likewise. 1899 * testsuite/20_util/move/1.cc: Likewise. 1900 * testsuite/20_util/move_only_function/call.cc: Likewise. 1901 * testsuite/20_util/move_only_function/cons.cc: Likewise. 1902 * testsuite/20_util/move_only_function/move.cc: Likewise. 1903 * testsuite/20_util/move_only_function/version.cc: Likewise. 1904 * testsuite/20_util/owner_less/cmp.cc: Likewise. 1905 * testsuite/20_util/owner_less/noexcept.cc: Likewise. 1906 * testsuite/20_util/owner_less/void.cc: Likewise. 1907 * testsuite/20_util/pointer_safety/1.cc: Likewise. 1908 * testsuite/20_util/scoped_allocator/65279.cc: Likewise. 1909 * testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise. 1910 * testsuite/20_util/scoped_allocator/construct_pair.cc: 1911 Likewise. 1912 * testsuite/20_util/scoped_allocator/dr2586.cc: Likewise. 1913 * testsuite/20_util/scoped_allocator/requirements/explicit_instantiation.cc: 1914 Likewise. 1915 * testsuite/20_util/shared_ptr/assign/assign.cc: Likewise. 1916 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise. 1917 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise. 1918 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: 1919 Likewise. 1920 * testsuite/20_util/shared_ptr/assign/dr541.cc: Likewise. 1921 * testsuite/20_util/shared_ptr/assign/move.cc: Likewise. 1922 * testsuite/20_util/shared_ptr/assign/sfinae.cc: Likewise. 1923 * testsuite/20_util/shared_ptr/assign/shared_ptr.cc: Likewise. 1924 * testsuite/20_util/shared_ptr/assign/shared_ptr_neg.cc: 1925 Likewise. 1926 * testsuite/20_util/shared_ptr/assign/unique_ptr_lvalue_neg.cc: 1927 Likewise. 1928 * testsuite/20_util/shared_ptr/assign/unique_ptr_rvalue.cc: 1929 Likewise. 1930 * testsuite/20_util/shared_ptr/atomic/1.cc: Likewise. 1931 * testsuite/20_util/shared_ptr/atomic/2.cc: Likewise. 1932 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise. 1933 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise. 1934 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise. 1935 * testsuite/20_util/shared_ptr/comparison/42925.cc: Likewise. 1936 * testsuite/20_util/shared_ptr/comparison/86537.cc: Likewise. 1937 * testsuite/20_util/shared_ptr/comparison/cmp.cc: Likewise. 1938 * testsuite/20_util/shared_ptr/comparison/cmp_c++20.cc: 1939 Likewise. 1940 * testsuite/20_util/shared_ptr/comparison/dr1401.cc: Likewise. 1941 * testsuite/20_util/shared_ptr/comparison/less.cc: Likewise. 1942 * testsuite/20_util/shared_ptr/cons/39405.cc: Likewise. 1943 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise. 1944 * testsuite/20_util/shared_ptr/cons/46910.cc: Likewise. 1945 * testsuite/20_util/shared_ptr/cons/51365.cc: Likewise. 1946 * testsuite/20_util/shared_ptr/cons/52924.cc: Likewise. 1947 * testsuite/20_util/shared_ptr/cons/55123.cc: Likewise. 1948 * testsuite/20_util/shared_ptr/cons/58659.cc: Likewise. 1949 * testsuite/20_util/shared_ptr/cons/58839.cc: Likewise. 1950 * testsuite/20_util/shared_ptr/cons/61036.cc: Likewise. 1951 * testsuite/20_util/shared_ptr/cons/79467.cc: Likewise. 1952 * testsuite/20_util/shared_ptr/cons/80229.cc: Likewise. 1953 * testsuite/20_util/shared_ptr/cons/alias-rval.cc: Likewise. 1954 * testsuite/20_util/shared_ptr/cons/alias.cc: Likewise. 1955 * testsuite/20_util/shared_ptr/cons/array.cc: Likewise. 1956 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise. 1957 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise. 1958 * testsuite/20_util/shared_ptr/cons/copy.cc: Likewise. 1959 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise. 1960 * testsuite/20_util/shared_ptr/cons/default.cc: Likewise. 1961 * testsuite/20_util/shared_ptr/cons/lwg2802.cc: Likewise. 1962 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: Likewise. 1963 * testsuite/20_util/shared_ptr/cons/move.cc: Likewise. 1964 * testsuite/20_util/shared_ptr/cons/noexcept_move_construct.cc: 1965 Likewise. 1966 * testsuite/20_util/shared_ptr/cons/nullptr.cc: Likewise. 1967 * testsuite/20_util/shared_ptr/cons/pointer.cc: Likewise. 1968 * testsuite/20_util/shared_ptr/cons/unique_ptr.cc: Likewise. 1969 * testsuite/20_util/shared_ptr/cons/unique_ptr_array.cc: 1970 Likewise. 1971 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: 1972 Likewise. 1973 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc: 1974 Likewise. 1975 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc: 1976 Likewise. 1977 * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise. 1978 * testsuite/20_util/shared_ptr/cons/weak_ptr.cc: Likewise. 1979 * testsuite/20_util/shared_ptr/creation/36949.cc: Likewise. 1980 * testsuite/20_util/shared_ptr/creation/58594-no-rtti.cc: 1981 Likewise. 1982 * testsuite/20_util/shared_ptr/creation/58594.cc: Likewise. 1983 * testsuite/20_util/shared_ptr/creation/87278.cc: Likewise. 1984 * testsuite/20_util/shared_ptr/creation/92878_92947.cc: 1985 Likewise. 1986 * testsuite/20_util/shared_ptr/creation/99006.cc: Likewise. 1987 * testsuite/20_util/shared_ptr/creation/dr402.cc: Likewise. 1988 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise. 1989 * testsuite/20_util/shared_ptr/creation/make.cc: Likewise. 1990 * testsuite/20_util/shared_ptr/creation/no_rtti.cc: Likewise. 1991 * testsuite/20_util/shared_ptr/creation/overwrite.cc: Likewise. 1992 * testsuite/20_util/shared_ptr/creation/private.cc: Likewise. 1993 * testsuite/20_util/shared_ptr/creation/single_allocation.cc: 1994 Likewise. 1995 * testsuite/20_util/shared_ptr/creation/single_allocation_no_rtti.cc: 1996 Likewise. 1997 * testsuite/20_util/shared_ptr/creation/version.cc: Likewise. 1998 * testsuite/20_util/shared_ptr/dest/dest.cc: Likewise. 1999 * testsuite/20_util/shared_ptr/hash/1.cc: Likewise. 2000 * testsuite/20_util/shared_ptr/misc/24595.cc: Likewise. 2001 * testsuite/20_util/shared_ptr/misc/42019.cc: Likewise. 2002 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise. 2003 * testsuite/20_util/shared_ptr/misc/swap.cc: Likewise. 2004 * testsuite/20_util/shared_ptr/modifiers/reset.cc: Likewise. 2005 * testsuite/20_util/shared_ptr/modifiers/reset_neg.cc: Likewise. 2006 * testsuite/20_util/shared_ptr/modifiers/reset_sfinae.cc: 2007 Likewise. 2008 * testsuite/20_util/shared_ptr/modifiers/swap.cc: Likewise. 2009 * testsuite/20_util/shared_ptr/modifiers/swap_neg.cc: Likewise. 2010 * testsuite/20_util/shared_ptr/observers/array.cc: Likewise. 2011 * testsuite/20_util/shared_ptr/observers/bool_conv.cc: Likewise. 2012 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise. 2013 * testsuite/20_util/shared_ptr/observers/owner_before.cc: 2014 Likewise. 2015 * testsuite/20_util/shared_ptr/observers/unique.cc: Likewise. 2016 * testsuite/20_util/shared_ptr/observers/use_count.cc: Likewise. 2017 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc: 2018 Likewise. 2019 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc: 2020 Likewise. 2021 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: 2022 Likewise. 2023 * testsuite/20_util/specialized_algorithms/construct_at/95788.cc: 2024 Likewise. 2025 * testsuite/20_util/temporary_buffer.cc: Likewise. 2026 * testsuite/20_util/tuple/48476.cc: Likewise. 2027 * testsuite/20_util/tuple/cons/90700.cc: Likewise. 2028 * testsuite/20_util/tuple/cons/96803.cc: Likewise. 2029 * testsuite/20_util/tuple/cons/allocator_with_any.cc: Likewise. 2030 * testsuite/20_util/tuple/cons/allocators.cc: Likewise. 2031 * testsuite/20_util/tuple/cons/constexpr_allocator_arg_t.cc: 2032 Likewise. 2033 * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise. 2034 * testsuite/20_util/tuple/p2321r2.cc: Likewise. 2035 * testsuite/20_util/unique_ptr/creation/92878_92947.cc: 2036 Likewise. 2037 * testsuite/20_util/unique_ptr/creation/array.cc: Likewise. 2038 * testsuite/20_util/unique_ptr/creation/array_neg.cc: Likewise. 2039 * testsuite/20_util/unique_ptr/creation/constexpr.cc: Likewise. 2040 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: 2041 Likewise. 2042 * testsuite/20_util/unique_ptr/creation/for_overwrite__neg.cc: 2043 Likewise. 2044 * testsuite/20_util/unique_ptr/creation/single.cc: Likewise. 2045 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise. 2046 * testsuite/20_util/uses_allocator/92878_92947.cc: Likewise. 2047 * testsuite/20_util/uses_allocator/uninitialized_construct.cc: 2048 Likewise. 2049 * testsuite/20_util/weak_ptr/comparison/cmp_neg.cc: Likewise. 2050 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise. 2051 * testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc: 2052 Likewise. 2053 * testsuite/20_util/weak_ptr/lock/1.cc: Likewise. 2054 * testsuite/20_util/weak_ptr/observers/owner_before.cc: 2055 Likewise. 2056 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc: 2057 Likewise. 2058 * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc: 2059 Likewise. 2060 * testsuite/21_strings/basic_string/version.cc: Likewise. 2061 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: 2062 Likewise. 2063 * testsuite/21_strings/c_strings/char/69626.cc: Likewise. 2064 * testsuite/21_strings/char_traits/requirements/version.cc: 2065 Likewise. 2066 * testsuite/23_containers/vector/requirements/version.cc: 2067 Likewise. 2068 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc: 2069 Likewise. 2070 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc: 2071 Likewise. 2072 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc: 2073 Likewise. 2074 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc: 2075 Likewise. 2076 * testsuite/24_iterators/istreambuf_iterator/92285.cc: Likewise. 2077 * testsuite/24_iterators/istreambuf_iterator/cons/sentinel.cc: 2078 Likewise. 2079 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc: 2080 Likewise. 2081 * testsuite/24_iterators/istreambuf_iterator/requirements/dr445.cc: 2082 Likewise. 2083 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc: 2084 Likewise. 2085 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc: 2086 Likewise. 2087 * testsuite/25_algorithms/constexpr_macro.cc: Likewise. 2088 * testsuite/25_algorithms/equal/constrained.cc: Likewise. 2089 * testsuite/25_algorithms/headers/cstdlib/functions_std.cc: 2090 Likewise. 2091 * testsuite/25_algorithms/inplace_merge/1.cc: Likewise. 2092 * testsuite/25_algorithms/lexicographical_compare/constrained.cc: 2093 Likewise. 2094 * testsuite/25_algorithms/make_heap/movable.cc: Likewise. 2095 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise. 2096 * testsuite/25_algorithms/random_shuffle/1.cc: Likewise. 2097 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise. 2098 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc: 2099 Likewise. 2100 * testsuite/25_algorithms/sort/35588.cc: Likewise. 2101 * testsuite/25_algorithms/stable_partition/1.cc: Likewise. 2102 * testsuite/25_algorithms/stable_partition/constrained.cc: 2103 Likewise. 2104 * testsuite/25_algorithms/stable_partition/mem_check.cc: 2105 Likewise. 2106 * testsuite/25_algorithms/stable_partition/moveable.cc: 2107 Likewise. 2108 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc: 2109 Likewise. 2110 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc: 2111 Likewise. 2112 * testsuite/25_algorithms/stable_sort/1.cc: Likewise. 2113 * testsuite/26_numerics/complex/2.cc: Likewise. 2114 * testsuite/26_numerics/headers/cstdlib/13943.cc: Likewise. 2115 * testsuite/26_numerics/headers/cstdlib/2190.cc: Likewise. 2116 * testsuite/26_numerics/headers/cstdlib/60401.cc: Likewise. 2117 * testsuite/26_numerics/headers/cstdlib/dr2192.cc: Likewise. 2118 * testsuite/26_numerics/headers/cstdlib/dr2192_neg.cc: Likewise. 2119 * testsuite/26_numerics/headers/cstdlib/dr2735.cc: Likewise. 2120 * testsuite/26_numerics/headers/cstdlib/functions_std.cc: 2121 Likewise. 2122 * testsuite/26_numerics/headers/cstdlib/macros.cc: Likewise. 2123 * testsuite/26_numerics/headers/cstdlib/types_std.cc: Likewise. 2124 * testsuite/26_numerics/headers/cstdlib/types_std_c++0x.cc: 2125 Likewise. 2126 * testsuite/26_numerics/lerp/version.cc: Likewise. 2127 * testsuite/26_numerics/midpoint/version.cc: Likewise. 2128 * testsuite/27_io/basic_syncbuf/2.cc: Likewise. 2129 * testsuite/27_io/basic_syncstream/2.cc: Likewise. 2130 * testsuite/27_io/fpos/14320-1.cc: Likewise. 2131 * testsuite/27_io/fpos/14320-2.cc: Likewise. 2132 * testsuite/27_io/fpos/14320-3.cc: Likewise. 2133 * testsuite/27_io/fpos/14320-4.cc: Likewise. 2134 * testsuite/27_io/spanstream/version.cc: Likewise. 2135 * testsuite/29_atomics/atomic/lwg3220.cc: Likewise. 2136 * testsuite/29_atomics/atomic/operators/51811.cc: Likewise. 2137 * testsuite/29_atomics/atomic/wait_notify/1.cc: Likewise. 2138 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Likewise. 2139 * testsuite/29_atomics/atomic/wait_notify/2.cc: Likewise. 2140 * testsuite/29_atomics/headers/stdatomic.h/version.cc: Likewise. 2141 * testsuite/30_threads/barrier/2.cc: Likewise. 2142 * testsuite/30_threads/condition_variable_any/stop_token/2.cc: 2143 Likewise. 2144 * testsuite/30_threads/jthread/version.cc: Likewise. 2145 * testsuite/30_threads/latch/2.cc: Likewise. 2146 * testsuite/30_threads/semaphore/2.cc: Likewise. 2147 * testsuite/30_threads/stop_token/2.cc: Likewise. 2148 * testsuite/abi/pr42230.cc: Likewise. 2149 * testsuite/ext/shared_ptr/1.cc: Likewise. 2150 * testsuite/libstdc++-xmethods/shared_ptr.cc: Likewise. 2151 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: Likewise. 2152 * testsuite/std/ranges/adaptors/p1739.cc: Likewise. 2153 * testsuite/std/ranges/iota/lwg3292_neg.cc: Likewise. 2154 * testsuite/std/ranges/p2325.cc: Likewise. 2155 2156 2022-10-03 Jonathan Wakely <jwakely (a] redhat.com> 2157 2158 * include/std/bitset (bitset(const C*, size_type n, C, C)) 2159 [!_GLIBCXX_HOSTED]: Remove std::basic_string dependency. 2160 (_M_copy_from_ptr) [!_GLIBCXX_HOSTED]: Abort instead of 2161 throwing. 2162 2163 2022-10-03 Arsen Arsenovi <arsen (a] aarsen.me> 2164 2165 PR libstdc++/103626 2166 * include/std/bitset [!_GLIBCXX_HOSTED]: Re-enable std::hash. 2167 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Require ET 2168 hosted. 2169 * testsuite/20_util/bitset/ext/constexpr.cc: Likewise. 2170 2171 2022-10-03 Jonathan Wakely <jwakely (a] redhat.com> 2172 2173 PR libstdc++/103626 2174 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace): 2175 Also require hosted. 2176 (check_effective_target_hosted): New proc. 2177 2178 2022-10-03 Arsen Arsenovi <arsen (a] aarsen.me> 2179 Jonathan Wakely <jwakely (a] redhat.com> 2180 2181 PR libstdc++/103626 2182 * testsuite/17_intro/headers/c++1998/stdc++.cc [!__STDC_HOSTED__]: 2183 Do not include C headers that aren't valid for freestanding. 2184 * testsuite/17_intro/tag_type_explicit_ctor.cc [!__STDC_HOSTED__]: 2185 Do not test tag types that aren't defined for freestanding. 2186 * testsuite/18_support/headers/cstdlib/functions_std.cc: Do not 2187 check for std::getenv and std::system for freestanding. 2188 * testsuite/17_intro/using_namespace_std_exp_neg.cc [!__STDC_HOSTED__]: 2189 Do not test hosted parts of the standard library. 2190 * testsuite/17_intro/using_namespace_std_tr1_neg.cc [!__STDC_HOSTED__]: 2191 Likewise. 2192 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc [!__STDC_HOSTED__]: 2193 Likewise. 2194 * testsuite/20_util/allocator_traits/requirements/explicit_instantiation.cc [!HOSTED]: 2195 Likewise. 2196 * testsuite/20_util/headers/bitset/synopsis.cc [!__STDC_HOSTED__]: Likewise. 2197 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc [!__STDC_HOSTED__]: 2198 Likewise. 2199 * testsuite/20_util/pointer_traits/requirements/typedefs.cc [!__STDC_HOSTED__]: 2200 Likewise. 2201 * testsuite/20_util/tuple/cons/deduction.cc [!__STDC_HOSTED__]: Likewise. 2202 * testsuite/25_algorithms/move/93872.cc [!__STDC_HOSTED__]: Likewise. 2203 * testsuite/std/ranges/adaptors/100577.cc [!__STDC_HOSTED__]: Likewise. 2204 2205 2022-10-03 Arsen Arsenovi <arsen (a] aarsen.me> 2206 2207 PR libstdc++/106953 2208 * include/Makefile.am [!_GLIBCXX_HOSTED]: Remove 2209 install-freestanding-headers, unifying it with the usual 2210 install-headers 2211 * include/Makefile.in: Regenerate. 2212 2213 2022-10-03 Arsen Arsenovi <arsen (a] aarsen.me> 2214 Jonathan Wakely <jwakely (a] redhat.com> 2215 2216 PR libstdc++/103626 2217 * include/Makefile.am: Add new header. 2218 * include/Makefile.in: Regenerate. 2219 * include/bits/requires_hosted.h: New header. 2220 * include/experimental/algorithm: Include 2221 <bits/requires_hosted.h>. 2222 * include/experimental/any: Likewise. 2223 * include/experimental/array: Likewise. 2224 * include/experimental/buffer: Likewise. 2225 * include/experimental/chrono: Likewise. 2226 * include/experimental/deque: Likewise. 2227 * include/experimental/executor: Likewise. 2228 * include/experimental/filesystem: Likewise. 2229 * include/experimental/forward_list: Likewise. 2230 * include/experimental/functional: Likewise. 2231 * include/experimental/internet: Likewise. 2232 * include/experimental/io_context: Likewise. 2233 * include/experimental/iterator: Likewise. 2234 * include/experimental/list: Likewise. 2235 * include/experimental/map: Likewise. 2236 * include/experimental/memory: Likewise. 2237 * include/experimental/memory_resource: Likewise. 2238 * include/experimental/net: Likewise. 2239 * include/experimental/netfwd: Likewise. 2240 * include/experimental/numeric: Likewise. 2241 * include/experimental/optional: Likewise. 2242 * include/experimental/propagate_const: Likewise. 2243 * include/experimental/random: Likewise. 2244 * include/experimental/ratio: Likewise. 2245 * include/experimental/regex: Likewise. 2246 * include/experimental/scope: Likewise. 2247 * include/experimental/set: Likewise. 2248 * include/experimental/simd: Likewise. 2249 * include/experimental/socket: Likewise. 2250 * include/experimental/source_location: Likewise. 2251 * include/experimental/string: Likewise. 2252 * include/experimental/string_view: Likewise. 2253 * include/experimental/system_error: Likewise. 2254 * include/experimental/timer: Likewise. 2255 * include/experimental/tuple: Likewise. 2256 * include/experimental/unordered_map: Likewise. 2257 * include/experimental/unordered_set: Likewise. 2258 * include/experimental/utility: Likewise. 2259 * include/experimental/vector: Likewise. 2260 * include/std/barrier: Likewise. 2261 * include/std/chrono: Likewise. 2262 * include/std/condition_variable: Likewise. 2263 * include/std/deque: Likewise. 2264 * include/std/execution: Likewise. 2265 * include/std/filesystem: Likewise. 2266 * include/std/forward_list: Likewise. 2267 * include/std/fstream: Likewise. 2268 * include/std/future: Likewise. 2269 * include/std/iomanip: Likewise. 2270 * include/std/ios: Likewise. 2271 * include/std/iosfwd: Likewise. 2272 * include/std/iostream: Likewise. 2273 * include/std/istream: Likewise. 2274 * include/std/latch: Likewise. 2275 * include/std/list: Likewise. 2276 * include/std/locale: Likewise. 2277 * include/std/map: Likewise. 2278 * include/std/memory_resource: Likewise. 2279 * include/std/mutex: Likewise. 2280 * include/std/ostream: Likewise. 2281 * include/std/queue: Likewise. 2282 * include/std/random: Likewise. 2283 * include/std/regex: Likewise. 2284 * include/std/semaphore: Likewise. 2285 * include/std/set: Likewise. 2286 * include/std/shared_mutex: Likewise. 2287 * include/std/spanstream: Likewise. 2288 * include/std/sstream: Likewise. 2289 * include/std/stack: Likewise. 2290 * include/std/stacktrace: Likewise. 2291 * include/std/stop_token: Likewise. 2292 * include/std/streambuf: Likewise. 2293 * include/std/string: Likewise. 2294 * include/std/syncstream: Likewise. 2295 * include/std/system_error: Likewise. 2296 * include/std/thread: Likewise. 2297 * include/std/unordered_map: Likewise. 2298 * include/std/unordered_set: Likewise. 2299 * include/std/valarray: Likewise. 2300 * include/std/vector: Likewise. 2301 * include/tr1/array: Likewise. 2302 * include/tr1/ccomplex: Likewise. 2303 * include/tr1/cctype: Likewise. 2304 * include/tr1/cfenv: Likewise. 2305 * include/tr1/cfloat: Likewise. 2306 * include/tr1/cinttypes: Likewise. 2307 * include/tr1/climits: Likewise. 2308 * include/tr1/cmath: Likewise. 2309 * include/tr1/complex: Likewise. 2310 * include/tr1/complex.h: Likewise. 2311 * include/tr1/cstdarg: Likewise. 2312 * include/tr1/cstdbool: Likewise. 2313 * include/tr1/cstdint: Likewise. 2314 * include/tr1/cstdio: Likewise. 2315 * include/tr1/cstdlib: Likewise. 2316 * include/tr1/ctgmath: Likewise. 2317 * include/tr1/ctime: Likewise. 2318 * include/tr1/ctype.h: Likewise. 2319 * include/tr1/cwchar: Likewise. 2320 * include/tr1/cwctype: Likewise. 2321 * include/tr1/fenv.h: Likewise. 2322 * include/tr1/float.h: Likewise. 2323 * include/tr1/functional: Likewise. 2324 * include/tr1/inttypes.h: Likewise. 2325 * include/tr1/limits.h: Likewise. 2326 * include/tr1/math.h: Likewise. 2327 * include/tr1/memory: Likewise. 2328 * include/tr1/random: Likewise. 2329 * include/tr1/regex: Likewise. 2330 * include/tr1/stdarg.h: Likewise. 2331 * include/tr1/stdbool.h: Likewise. 2332 * include/tr1/stdint.h: Likewise. 2333 * include/tr1/stdio.h: Likewise. 2334 * include/tr1/stdlib.h: Likewise. 2335 * include/tr1/tgmath.h: Likewise. 2336 * include/tr1/tuple: Likewise. 2337 * include/tr1/type_traits: Likewise. 2338 * include/tr1/unordered_map: Likewise. 2339 * include/tr1/unordered_set: Likewise. 2340 * include/tr1/utility: Likewise. 2341 * include/tr1/wchar.h: Likewise. 2342 * include/tr1/wctype.h: Likewise. 2343 * include/c_global/cmath: Likewise. 2344 * include/ext/algorithm: Include <bits/requires_hosted.h>. 2345 * include/ext/bitmap_allocator.h: Likewise. 2346 * include/ext/cmath: Likewise. 2347 * include/ext/codecvt_specializations.h: Likewise. 2348 * include/ext/debug_allocator.h: Likewise. 2349 * include/ext/enc_filebuf.h: Likewise. 2350 * include/ext/extptr_allocator.h: Likewise. 2351 * include/ext/functional: Likewise. 2352 * include/ext/malloc_allocator.h: Likewise. 2353 * include/ext/memory: Likewise. 2354 * include/ext/mt_allocator.h: Likewise. 2355 * include/ext/new_allocator.h: Likewise. 2356 * include/ext/numeric: Likewise. 2357 * include/ext/pod_char_traits.h: Likewise. 2358 * include/ext/pool_allocator.h: Likewise. 2359 * include/ext/random: Likewise. 2360 * include/ext/random.tcc: Likewise. 2361 * include/ext/rb_tree: Likewise. 2362 * include/ext/rc_string_base.h: Likewise. 2363 * include/ext/rope: Likewise. 2364 * include/ext/ropeimpl.h: Likewise. 2365 * include/ext/slist: Likewise. 2366 * include/ext/sso_string_base.h: Likewise. 2367 * include/ext/stdio_filebuf.h: Likewise. 2368 * include/ext/stdio_sync_filebuf.h: Likewise. 2369 * include/ext/string_conversions.h: Likewise. 2370 * include/ext/throw_allocator.h: Likewise. 2371 * include/ext/vstring.h: Likewise. 2372 * include/ext/vstring.tcc: Likewise. 2373 * include/ext/vstring_fwd.h: Likewise. 2374 * include/ext/vstring_util.h: Likewise. 2375 * include/std/charconv: Likewise. 2376 (__cpp_lib_to_chars): Do not define for freestanding. 2377 * include/std/version: Adjust which macros get defined in 2378 freestanding. 2379 * include/ext/pointer.h [!_GLIBCXX_HOSTED]: Omit iostream 2380 functionality from freestanding. 2381 * include/std/algorithm [!_GLIBCXX_HOSTED]: Omit PSTL algos. 2382 * include/std/memory [!_GLIBCXX_HOSTED]: Omit 2383 <bits/stl_tempbuf.h> in freestanding 2384 * include/bits/algorithmfwd.h [!_GLIBCXX_HOSTED]: Omit leftover 2385 random_shuffle and stable_partition definition. 2386 * include/bits/stl_algo.h [!_GLIBCXX_HOSTED]: Omit 2387 random_shuffle and stable_partition from freestanding. 2388 * include/bits/ranges_algo.h [!_GLIBCXX_HOSTED]: Omit 2389 stable_partition from freestanding. 2390 * include/bits/concept_check.h: Remove needless HOSTED check. 2391 * include/std/iterator: Include <bits/ranges_base.h>. 2392 * include/std/numeric (__cpp_lib_parallel_algorithms): Do not 2393 define for freestanding. 2394 * include/std/functional (__cpp_lib_boyer_moore_searcher): 2395 Likewise. 2396 * testsuite/lib/prune.exp: Match error for hosted-only libstdc++ 2397 tests. 2398 2399 2022-10-03 Jonathan Wakely <jwakely (a] redhat.com> 2400 Arsen Arsenovi <arsen (a] aarsen.me> 2401 2402 * include/precompiled/extc++.h [!_GLIBCXX_HOSTED]: Do not 2403 include headers that aren't valid for freestanding. 2404 * include/precompiled/stdc++.h [!_GLIBCXX_HOSTED]: Likewise. 2405 2406 2022-10-03 Arsen Arsenovi <arsen (a] aarsen.me> 2407 2408 * configure.ac: Remove any lines that unconditionally include 2409 <stdio.h> from ac_includes_default, when running Autoconf <2.70. 2410 * configure: Regenerate. 2411 2412 2022-10-03 Jonathan Wakely <jwakely (a] redhat.com> 2413 2414 PR libstdc++/103626 2415 * acinclude.m4 (GLIBCXX_ENABLE_HOSTED): Define _GLIBCXX_HOSTED 2416 to __STDC_HOSTED__ for non-freestanding installations. 2417 * configure: Regenerate. 2418 * include/Makefile.am (${host_builddir}/c++config.h): Adjust 2419 grep pattern. 2420 * include/Makefile.in: Regenerate. 2421 * testsuite/lib/libstdc++.exp (v3-build_support): Use 2422 -fno-freestanding. 2423 * testsuite/libstdc++-abi/abi.exp: Likewise. 2424 2425 2022-10-03 Jonathan Wakely <jwakely (a] redhat.com> 2426 2427 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc: 2428 Change body of unused operator<< overload to throw if called. 2429 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc: 2430 Likewise. 2431 2432 2022-10-03 Franois Dumont <fdumont (a] gcc.gnu.org> 2433 2434 * python/libstdcxx/v6/printers.py (Printer.add_version): Do not add version 2435 namespace for __cxx11 symbols. 2436 (add_one_template_type_printer): Likewise. 2437 (add_one_type_printer): Likewise. 2438 (FilteringTypePrinter._recognizer.recognize): Add a workaround for std::string & al 2439 ambiguous typedef matching both std:: and std::__cxx11:: symbols. 2440 * testsuite/libstdc++-prettyprinters/cxx17.cc: Remove obsolete 2441 \#define _GLIBCXX_USE_CXX11_ABI 0. 2442 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. Adapt test to accept 2443 std::__cxx11::list. 2444 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise. 2445 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise. 2446 * testsuite/libstdc++-prettyprinters/80276.cc: Likewise and remove xfail for c++20 2447 and debug mode. 2448 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise. 2449 2450 2022-09-30 Jonathan Wakely <jwakely (a] redhat.com> 2451 2452 * testsuite/20_util/bitset/access/to_ulong.cc: Construct bitset 2453 from binary literal instead of using stringstream. 2454 2455 2022-09-30 Jonathan Wakely <jwakely (a] redhat.com> 2456 2457 * include/std/bitset (operator>>): Use a simple buffer instead 2458 of std::basic_string. 2459 2460 2022-09-30 Jonathan Wakely <jwakely (a] redhat.com> 2461 2462 * include/std/bitset (_M_copy_from_ptr, _M_copy_from_string) 2463 (_M_copy_to_string): Change access to private. 2464 (_M_copy_from_string(const basic_string&, size_t, size_t)): 2465 Remove. 2466 (_M_copy_to_string(const basic_string&)): Remove. 2467 2468 2022-09-30 Jonathan Wakely <jwakely (a] redhat.com> 2469 2470 * testsuite/20_util/bind/ref_neg.cc: Fix dg-prune-output 2471 directive. 2472 2473 2022-09-30 Torbjrn SVENSSON <torbjorn.svensson (a] foss.st.com> 2474 Yvan ROUX <yvan.roux (a] foss.st.com> 2475 2476 * testsuite/20_util/bind/ref_neg.cc: Prune Windows paths too. 2477 2478 2022-09-30 Arsen Arsenovi <arsen (a] aarsen.me> 2479 2480 * include/std/bitset: Include <bits/stl_algobase.h>. 2481 2482 2022-09-29 Franois Dumont <fdumont (a] gcc.gnu.org> 2483 2484 * python/libstdcxx/v6/printers.py (add_one_template_type_printer): Register 2485 printer for types in std::__debug namespace with template parameters in std::__8 2486 namespace. 2487 2488 2022-09-29 Patrick Palka <ppalka (a] redhat.com> 2489 2490 * include/bits/unique_ptr.h (unique_ptr<_Tp[], _Dp>): Remove 2491 __remove_cv and use __remove_cv_t instead. 2492 2493 2022-09-29 Jonathan Wakely <jwakely (a] redhat.com> 2494 2495 * include/std/type_traits (__is_invocable_impl): Check 2496 __has_builtin(__reference_converts_from_temporary) before using 2497 built-in. 2498 2499 2022-09-28 Jonathan Wakely <jwakely (a] redhat.com> 2500 2501 * doc/xml/manual/evolution.xml: Document std::bind API 2502 changes. 2503 * doc/xml/manual/intro.xml: Document LWG 2487 status. 2504 * doc/xml/manual/using.xml: Clarify default value of 2505 _GLIBCXX_USE_DEPRECATED. 2506 * doc/html/*: Regenerate. 2507 * include/std/functional (_Bind::operator()(Args&&...) volatile) 2508 (_Bind::operator()(Args&&...) const volatile) 2509 (_Bind_result::operator()(Args&&...) volatile) 2510 (_Bind_result::operator()(Args&&...) const volatile): Replace 2511 with deleted overload for C++20 and later. 2512 * testsuite/20_util/bind/cv_quals.cc: Check for deprecated 2513 warnings in C++17. 2514 * testsuite/20_util/bind/cv_quals_2.cc: Likewise, and check for 2515 ill-formed in C++20. 2516 2517 2022-09-28 Jonathan Wakely <jwakely (a] redhat.com> 2518 2519 PR libstdc++/70692 2520 * include/bits/invoke.h [__cplusplus < 201703] (__invoke_r): 2521 Remove is_invocable and is_convertible constraints. 2522 * include/std/type_traits (__is_invocable_impl::_S_conv): Use 2523 non-deduced context for parameter. 2524 (__is_invocable_impl::_S_test): Remove _Check_noex template 2525 parameter and use deduced noexcept value in its place. Add bool 2526 parameter to detect dangling references. 2527 (__is_invocable_impl::type): Adjust call to _S_test to avoid 2528 deducing unnecessary noexcept property.. 2529 (__is_invocable_impl::__nothrow_type): Rename to ... 2530 (__is_invocable_impl::__nothrow_conv): ... this. Adjust call 2531 to _S_test to deduce noexcept property. 2532 * testsuite/20_util/bind/dangling_ref.cc: New test. 2533 * testsuite/20_util/function/cons/70692.cc: New test. 2534 * testsuite/20_util/function_objects/invoke/dangling_ref.cc: 2535 New test. 2536 * testsuite/20_util/is_invocable/dangling_ref.cc: New test. 2537 * testsuite/30_threads/packaged_task/cons/dangling_ref.cc: 2538 New test. 2539 2540 2022-09-27 Jonathan Wakely <jwakely (a] redhat.com> 2541 2542 PR c++/107049 2543 * testsuite/20_util/is_convertible/requirements/access.cc: New 2544 test. 2545 2546 2022-09-27 Jonathan Wakely <jwakely (a] redhat.com> 2547 2548 PR c++/106651 2549 * include/bits/std_function.h (__function_guide_t): New alias 2550 template. 2551 [__cpp_static_call_operator] (__function_guide_static_helper): 2552 New class template. 2553 (function): Use __function_guide_t in deduction guide. 2554 * include/std/future (packaged_task): Use __function_guide_t in 2555 deduction guide. 2556 * testsuite/20_util/function/cons/deduction_c++23.cc: New test. 2557 * testsuite/30_threads/packaged_task/cons/deduction_c++23.cc: 2558 New test. 2559 2560 2022-09-26 Jonathan Wakely <jwakely (a] redhat.com> 2561 2562 * include/bits/ptr_traits.h (__ptr_traits_elem) [__cpp_concepts]: 2563 Also define the __ptr_traits_elem class template for the 2564 concepts case. 2565 (pointer_traits<Ptr>): Remove constrained partial 2566 specialization. 2567 * testsuite/20_util/pointer_traits/lwg3545.cc: Check for 2568 ambiguitiy with program-defined partial specialization. 2569 2570 2022-09-26 Jonathan Wakely <jwakely (a] redhat.com> 2571 2572 * include/std/type_traits (is_convertible, is_convertible_v): 2573 Define using new built-in. 2574 (is_nothrow_convertible is_nothrow_convertible_v): Likewise. 2575 2576 2022-09-26 Jonathan Wakely <jwakely (a] redhat.com> 2577 2578 PR libstdc++/107037 2579 * include/std/bitset (_Base_bitset::_M_do_reset): Use 2580 preprocessor conditional around non-C++03 code. 2581 * testsuite/20_util/bitset/107037.cc: New test. 2582 2583 2022-09-24 Jonathan Wakely <jwakely (a] redhat.com> 2584 2585 * include/bits/alloc_traits.h (allocator_traits::is_always_equal): 2586 Only instantiate is_empty if needed. 2587 * include/bits/ptr_traits.h (__ptr_traits_impl::difference_type) 2588 (__ptr_traits_impl::rebind): Use __detected_or. 2589 * include/experimental/type_traits (is_same_v): Add a partial 2590 specialization instead of instantiating the std::is_same class 2591 template. 2592 (detected_t): Redefine in terms of detected_or_t. 2593 (is_detected, is_detected_v): Redefine in terms of detected_t. 2594 * include/std/type_traits [__cpp_concepts] (__detected_or): Add 2595 new definition using concepts. 2596 (__detector::value_t): Rename to __is_detected. 2597 * testsuite/17_intro/names.cc: Check value_t isn't used. 2598 2599 2022-09-23 Jonathan Wakely <jwakely (a] redhat.com> 2600 2601 * testsuite/20_util/is_assignable/requirements/access.cc: 2602 New test. 2603 2604 2022-09-23 Jonathan Wakely <jwakely (a] redhat.com> 2605 2606 PR libstdc++/91456 2607 * include/std/type_traits (__is_nothrow_invocable_lib): Remove. 2608 (__is_invocable_impl::__nothrow_type): New member type which 2609 checks if the conversion can throw. 2610 (__is_nt_invocable_impl): Replace class template with alias 2611 template to __is_nt_invocable_impl::__nothrow_type. 2612 * testsuite/20_util/is_nothrow_invocable/91456.cc: New test. 2613 * testsuite/20_util/is_nothrow_convertible/value.cc: Remove 2614 macro used by value_ext.cc test. 2615 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Remove 2616 test for non-standard __is_nothrow_invocable_lib trait. 2617 2618 2022-09-23 Marek Polacek <polacek (a] redhat.com> 2619 2620 PR c++/106784 2621 * include/std/type_traits: Rename __is_nothrow_convertible to 2622 __is_nothrow_convertible_lib. 2623 * testsuite/20_util/is_nothrow_convertible/value_ext.cc: Likewise. 2624 2625 2022-09-23 Jonathan Wakely <jwakely (a] redhat.com> 2626 2627 * include/std/bitset (operator>>): Do not copy for N==0. 2628 * testsuite/20_util/bitset/io/input.cc: Add comment. 2629 2630 2022-09-23 Jonathan Wakely <jwakely (a] redhat.com> 2631 2632 * include/debug/bitset (__debug::bitset): Add constexpr to all 2633 member functions. 2634 (operator&, operator|, operator^): Add inline and constexpr. 2635 (operator>>, operator<<): Add inline. 2636 * testsuite/20_util/bitset/access/constexpr.cc: Only check using 2637 constexpr std::string for the cxx11 ABI. 2638 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: Likewise. 2639 * testsuite/20_util/headers/bitset/synopsis.cc: Check constexpr 2640 for C++23. 2641 2642 2022-09-23 Jonathan Wakely <jwakely (a] redhat.com> 2643 2644 * include/std/bitset (bitset::_M_copy_to_string): Find set bits 2645 instead of iterating over individual bits. 2646 2647 2022-09-22 Jonathan Wakely <jwakely (a] redhat.com> 2648 2649 * include/std/bitset (bitset): Add constexpr for C++23. Guard 2650 members using std::string with _GLIBCXX_HOSTED. 2651 * include/std/version (__cpp_lib_constexpr_bitset): Define. 2652 * testsuite/20_util/bitset/access/constexpr.cc: New test. 2653 * testsuite/20_util/bitset/cons/constexpr_c++23.cc: New test. 2654 * testsuite/20_util/bitset/count/constexpr.cc: New test. 2655 * testsuite/20_util/bitset/ext/constexpr.cc: New test. 2656 * testsuite/20_util/bitset/operations/constexpr_c++23.cc: New test. 2657 * testsuite/20_util/bitset/version.cc: New test. 2658 2659 2022-09-22 Jonathan Wakely <jwakely (a] redhat.com> 2660 2661 * testsuite/23_containers/bitset/18604.cc: Moved to... 2662 * testsuite/20_util/bitset/18604.cc: ...here. 2663 * testsuite/23_containers/bitset/45713.cc: Moved to... 2664 * testsuite/20_util/bitset/45713.cc: ...here. 2665 * testsuite/23_containers/bitset/to_string/dr396.cc: Moved to... 2666 * testsuite/20_util/bitset/access/dr396.cc: ...here. 2667 * testsuite/23_containers/bitset/to_string/1.cc: Moved to... 2668 * testsuite/20_util/bitset/access/to_string.cc: ...here. 2669 * testsuite/23_containers/bitset/to_ullong/1.cc: Moved to... 2670 * testsuite/20_util/bitset/access/to_ullong.cc: ...here. 2671 * testsuite/23_containers/bitset/to_ulong/1.cc: Moved to... 2672 * testsuite/20_util/bitset/access/to_ulong.cc: ...here. 2673 * testsuite/23_containers/bitset/cons/1.cc: Moved to... 2674 * testsuite/20_util/bitset/cons/1.cc: ...here. 2675 * testsuite/23_containers/bitset/cons/16020.cc: Moved to... 2676 * testsuite/20_util/bitset/cons/16020.cc: ...here. 2677 * testsuite/23_containers/bitset/cons/2.cc: Moved to... 2678 * testsuite/20_util/bitset/cons/2.cc: ...here. 2679 * testsuite/23_containers/bitset/cons/3.cc: Moved to... 2680 * testsuite/20_util/bitset/cons/3.cc: ...here. 2681 * testsuite/23_containers/bitset/cons/38244.cc: Moved to... 2682 * testsuite/20_util/bitset/cons/38244.cc: ...here. 2683 * testsuite/23_containers/bitset/cons/50268.cc: Moved to... 2684 * testsuite/20_util/bitset/cons/50268.cc: ...here. 2685 * testsuite/23_containers/bitset/cons/6282.cc: Moved to... 2686 * testsuite/20_util/bitset/cons/6282.cc: ...here. 2687 * testsuite/23_containers/bitset/cons/constexpr.cc: Moved to... 2688 * testsuite/20_util/bitset/cons/constexpr.cc: ...here. 2689 * testsuite/23_containers/bitset/cons/dr1325-1.cc: Moved to... 2690 * testsuite/20_util/bitset/cons/dr1325-1.cc: ...here. 2691 * testsuite/23_containers/bitset/cons/dr1325-2.cc: Moved to... 2692 * testsuite/20_util/bitset/cons/dr1325-2.cc: ...here. 2693 * testsuite/23_containers/bitset/cons/dr396.cc: Moved to... 2694 * testsuite/20_util/bitset/cons/dr396.cc: ...here. 2695 * testsuite/23_containers/bitset/debug/invalidation/1.cc: Moved to... 2696 * testsuite/20_util/bitset/debug/invalidation/1.cc: ...here. 2697 * testsuite/23_containers/bitset/ext/15361.cc: Moved to... 2698 * testsuite/20_util/bitset/ext/15361.cc: ...here. 2699 * testsuite/23_containers/bitset/hash/1.cc: Moved to... 2700 * testsuite/20_util/bitset/hash/1.cc: ...here. 2701 * testsuite/23_containers/bitset/input/1.cc: Moved to... 2702 * testsuite/20_util/bitset/io/input.cc: ...here. 2703 * testsuite/23_containers/bitset/count/6124.cc: Moved to... 2704 * testsuite/20_util/bitset/observers/6124.cc: ...here. 2705 * testsuite/23_containers/bitset/all/1.cc: Moved to... 2706 * testsuite/20_util/bitset/observers/all.cc: ...here. 2707 * testsuite/23_containers/bitset/test/1.cc: Moved to... 2708 * testsuite/20_util/bitset/observers/test.cc: ...here. 2709 * testsuite/23_containers/bitset/operations/1.cc: Moved to... 2710 * testsuite/20_util/bitset/operations/1.cc: ...here. 2711 * testsuite/23_containers/bitset/operations/13838.cc: Moved to... 2712 * testsuite/20_util/bitset/operations/13838.cc: ...here. 2713 * testsuite/23_containers/bitset/operations/2.cc: Moved to... 2714 * testsuite/20_util/bitset/operations/2.cc: ...here. 2715 * testsuite/23_containers/bitset/operations/96303.cc: Moved to... 2716 * testsuite/20_util/bitset/operations/96303.cc: ...here. 2717 * testsuite/23_containers/bitset/operations/constexpr-2.cc: Moved to... 2718 * testsuite/20_util/bitset/operations/constexpr-2.cc: ...here. 2719 * testsuite/23_containers/bitset/operations/constexpr.cc: Moved to... 2720 * testsuite/20_util/bitset/operations/constexpr.cc: ...here. 2721 * testsuite/23_containers/bitset/requirements/constexpr_functions.cc: Moved to... 2722 * testsuite/20_util/bitset/requirements/constexpr_functions.cc: ...here. 2723 * testsuite/23_containers/bitset/requirements/explicit_instantiation/1.cc: Moved to... 2724 * testsuite/20_util/bitset/requirements/explicit_instantiation/1.cc: ...here. 2725 * testsuite/23_containers/bitset/requirements/explicit_instantiation/1_c++0x.cc: Moved to... 2726 * testsuite/20_util/bitset/requirements/explicit_instantiation/1_c++0x.cc: ...here. 2727 * testsuite/23_containers/headers/bitset/synopsis.cc: Moved to... 2728 * testsuite/20_util/headers/bitset/synopsis.cc: ...here. 2729 2730 2022-09-22 Franois Dumont <fdumont (a] gcc.gnu.org> 2731 2732 * python/libstdcxx/v6/printers.py: Remove ptinter registration for non-existing 2733 types std::__debug::unique_ptr, std::__debug::stack, std::__debug::queue, 2734 std::__debug::priority_queue. 2735 2736 2022-09-21 Jonathan Wakely <jwakely (a] redhat.com> 2737 2738 PR libstdc++/91456 2739 * testsuite/20_util/function/91456.cc: Add comment with PR 2740 number. 2741 * testsuite/20_util/is_invocable/91456.cc: Likewise. Replace 2742 std::function checks with std::is_invocable_r checks. 2743 2744 2022-09-21 Jonathan Wakely <jwakely (a] redhat.com> 2745 2746 * testsuite/17_intro/headers/c++1998/all_attributes.cc: Remove 2747 unnecessary main function. 2748 * testsuite/17_intro/headers/c++2011/all_attributes.cc: 2749 Likewise. 2750 * testsuite/17_intro/headers/c++2014/all_attributes.cc: 2751 Likewise. 2752 * testsuite/17_intro/headers/c++2017/all_attributes.cc: 2753 Likewise. 2754 * testsuite/17_intro/headers/c++2020/all_attributes.cc: 2755 Likewise. 2756 2757 2022-09-21 Jonathan Wakely <jwakely (a] redhat.com> 2758 2759 * testsuite/20_util/headers/memory/synopsis.cc: Add declarations 2760 from C++11 and later. 2761 2762 2022-09-21 Jonathan Wakely <jwakely (a] redhat.com> 2763 2764 * doc/xml/manual/documentation_hacking.xml: Remove trailing 2765 whitespace. 2766 * doc/xml/manual/policy_data_structures.xml: Likewise. 2767 2768 2022-09-21 Jonathan Wakely <jwakely (a] redhat.com> 2769 2770 * include/c_compatibility/stdlib.h [!_GLIBCXX_HOSTED]: Add 2771 using-declaration for _Exit. 2772 2773 2022-09-21 Jonathan Wakely <jwakely (a] redhat.com> 2774 2775 * testsuite/18_support/uncaught_exception/14026.cc: Qualify 2776 call to std::abort. 2777 2778 2022-09-21 Jonathan Wakely <jwakely (a] redhat.com> 2779 2780 * include/bits/ranges_base.h: Include <initializer_list>. 2781 2782 2022-09-20 Jonathan Wakely <jwakely (a] redhat.com> 2783 2784 * include/c_global/cstdlib [!_GLIBCXX_HOSTED] (quick_exit): Fix 2785 missing space. 2786 2787 2022-09-16 Jonathan Wakely <jwakely (a] redhat.com> 2788 2789 PR libstdc++/106953 2790 * include/backward/auto_ptr.h [!_GLIBCXX_HOSTED]: Do not define 2791 shared_ptr members. 2792 * include/bits/alloc_traits.h [!_GLIBCXX_HOSTED]: Do not declare 2793 std::allocator_traits<std::allocator<T>> specializations for 2794 freestanding. 2795 * include/bits/memoryfwd.h [!_GLIBCXX_HOSTED] (allocator): Do 2796 not declare for freestanding. 2797 * include/bits/stl_algo.h [!_GLIBCXX_HOSTED] (stable_partition): 2798 Do not define for freestanding. 2799 [!_GLIBCXX_HOSTED] (merge, stable_sort): Do not use temporary 2800 buffers for freestanding. 2801 * include/bits/stl_algobase.h [!_GLIBCXX_HOSTED]: Do not declare 2802 streambuf iterators and overloaded algorithms using them. 2803 * include/bits/stl_uninitialized.h [!_GLIBCXX_HOSTED]: Do not 2804 define specialized overloads for std::allocator. 2805 * include/bits/unique_ptr.h [!_GLIBCXX_HOSTED] (make_unique) 2806 (make_unique_for_overwrite, operator<<): Do not define for 2807 freestanding. 2808 * include/c_global/cstdlib [!_GLIBCXX_HOSTED] (_Exit): Declare. 2809 Use _GLIBCXX_NOTHROW instead of throw(). 2810 * include/debug/assertions.h [!_GLIBCXX_HOSTED]: Ignore 2811 _GLIBCXX_DEBUG for freestanding. 2812 * include/debug/debug.h [!_GLIBCXX_DEBUG]: Likewise. 2813 * include/std/bit [!_GLIBCXX_HOSTED]: Do not use the custom 2814 __int_traits if <ext/numeric_traits.h> is available. 2815 * include/std/functional [!_GLIBCXX_HOSTED]: Do not include 2816 headers that aren't valid for freestanding. 2817 (boyer_moore_searcher, boyer_moore_horspool_searcher): Do not 2818 define for freestanding. 2819 * include/std/iterator [!_GLIBCXX_HOSTED]: Do not include 2820 headers that aren't valid for freestanding. 2821 * include/std/memory [!_GLIBCXX_HOSTED]: Likewise. 2822 * include/std/ranges [!_GLIBCXX_HOSTED] (istream_view): Do not 2823 define for freestanding. 2824 (views::__detail::__is_basic_string_view) [!_GLIBCXX_HOSTED]: 2825 Do not define partial specialization for freestanding. 2826 2827 2022-09-16 Jonathan Wakely <jwakely (a] redhat.com> 2828 2829 * include/bits/alloc_traits.h (__alloc_swap) 2830 (__shrink_to_fit_aux): Move here, from ... 2831 * include/bits/allocator.h: ... here. 2832 * include/ext/alloc_traits.h: Do not include allocator.h. 2833 2834 2022-09-16 Jonathan Wakely <jwakely (a] redhat.com> 2835 2836 * include/bits/stl_algo.h: Include <bits/stl_algobase.h>. 2837 * include/bits/stl_tempbuf.h: Include headers for __try and 2838 __catch macros, std::pair, and __gnu_cxx::__numeric_traits. 2839 * include/bits/stream_iterator.h: Include <iosfwd> and headers 2840 for std::addressof and std::iterator. 2841 * include/bits/streambuf_iterator.h: Include header for 2842 std::iterator. 2843 * include/std/iterator: Do not include <iosfwd>. 2844 2845 2022-09-16 Jonathan Wakely <jwakely (a] redhat.com> 2846 2847 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc: 2848 Store value with non-zero padding bits after construction. 2849 2850 2022-09-16 Jonathan Wakely <jwakely (a] redhat.com> 2851 2852 * include/tr1/random.h (__detail::_Adaptor::_BEngine): Remove. 2853 (__detail::_Adaptor::_M_g): Make public. 2854 (__detail::_Adaptor<_Engine*, _Dist>): Remove partial 2855 specialization. 2856 (variate_generate::_Value): New helper to simplify handling of 2857 _Engine* and _Engine& template arguments. 2858 (variate_generate::engine_value_type): Define to underlying 2859 engine type, not adapted type. 2860 (variate_generate::engine()): Return underlying engine instead 2861 of adaptor. 2862 * testsuite/tr1/5_numerical_facilities/random/variate_generator/37986.cc: 2863 Fix comment. 2864 * testsuite/tr1/5_numerical_facilities/random/variate_generator/requirements/typedefs.cc: 2865 Check member typedefs have the correct types. 2866 2867 2022-09-16 Jonathan Wakely <jwakely (a] redhat.com> 2868 2869 * include/debug/formatter.h [_GLIBCXX_DEBUG_BACKTRACE] 2870 (_Error_formatter): Use 0 as null pointer constant. 2871 2872 2022-09-16 Jonathan Wakely <jwakely (a] redhat.com> 2873 2874 * include/bits/allocator.h (__alloc_neq): Remove. 2875 * include/bits/stl_list.h (list::_M_check_equal_allocators): 2876 Compare allocators directly, without __alloc_neq. 2877 2878 2022-09-16 Jonathan Wakely <jwakely (a] redhat.com> 2879 2880 * doc/doxygen/user.cfg.in (PREDEFINED): Remove __allocator_base. 2881 * include/bits/allocator.h: Fix nesting of Doxygen commands. 2882 2883 2022-09-16 Jonathan Wakely <jwakely (a] redhat.com> 2884 2885 * doc/xml/manual/abi.xml: Document GLIBCXX_3.4.30 and 2886 GLIBCXX_3.4.31 versions. 2887 * doc/html/manual/abi.html: Regenerate. 2888 2889 2022-09-15 Jonathan Wakely <jwakely (a] redhat.com> 2890 2891 * include/std/memory: Do not include <bits/stl_algobase.h>. 2892 2893 2022-09-15 Jonathan Wakely <jwakely (a] redhat.com> 2894 2895 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_PRE_LOCK): 2896 Replace with ... 2897 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK): ... this, add try_lock flag. 2898 (_GLIBCXX_TSAN_MUTEX_TRY_LOCK_FAILED): New macro using 2899 try_lock_failed flag 2900 (_GLIBCXX_TSAN_MUTEX_POST_LOCK): Rename to ... 2901 (_GLIBCXX_TSAN_MUTEX_LOCKED): ... this. 2902 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK): Remove invalid flag. 2903 (_GLIBCXX_TSAN_MUTEX_POST_UNLOCK): Remove invalid flag. 2904 (_Sp_atomic::_Atomic_count::lock): Use new macros. 2905 2906 2022-09-15 Patrick Palka <ppalka (a] redhat.com> 2907 2908 * include/bits/ranges_algo.h (__adjacent_find_fn, adjacent_find): 2909 Move to ... 2910 * include/bits/ranges_util.h: ... here. 2911 * include/std/ranges (chunk_by_view): Define. 2912 (chunk_by_view::_Iterator): Define. 2913 (__detail::__can_chunk_by_view): Define. 2914 (_ChunkBy, chunk_by): Define. 2915 * testsuite/std/ranges/adaptors/chunk_by/1.cc: New test. 2916 2917 2022-09-15 Franois Dumont <fdumont (a] gcc.gnu.org> 2918 2919 * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc: 2920 Adapt dg-prune-output to _GLIBCXX_INLINE_VERSION mode. 2921 2922 2022-09-15 Franois Dumont <fdumont (a] gcc.gnu.org> 2923 2924 * config/abi/pre/gnu-versioned-namespace.ver: Remove obsolete std::__detail::__8 2925 symbols. 2926 2927 2022-09-14 Jonathan Wakely <jwakely (a] redhat.com> 2928 2929 * include/bits/shared_ptr_atomic.h (_GLIBCXX_TSAN_MUTEX_DESTROY) 2930 (_GLIBCXX_TSAN_MUTEX_PRE_LOCK, _GLIBCXX_TSAN_MUTEX_POST_LOCK) 2931 (_GLIBCXX_TSAN_MUTEX_PRE_UNLOCK, _GLIBCXX_TSAN_MUTEX_POST_UNLOCK) 2932 (_GLIBCXX_TSAN_MUTEX_PRE_SIGNAL, _GLIBCXX_TSAN_MUTEX_POST_SIGNAL): 2933 Define macros for TSan annotation functions. 2934 (_Sp_atomic::_Atomic_count): Add annotations. 2935 2936 2022-09-14 Jonathan Wakely <jwakely (a] redhat.com> 2937 2938 * include/bits/stl_tempbuf.h: Include <new>. 2939 2940 2022-09-14 Jonathan Wakely <jwakely (a] redhat.com> 2941 2942 * testsuite/17_intro/names.cc: Explain why poison pragma can't 2943 be used. 2944 2945 2022-09-14 Jonathan Wakely <jwakely (a] redhat.com> 2946 2947 * include/std/future 2948 (_State_baseV2::__setter(exception_ptr&, promise&)): Add 2949 assertion for LWG 2276 precondition. 2950 * testsuite/30_threads/promise/members/set_exception_neg.cc: 2951 New test. 2952 2953 2022-09-14 Jonathan Wakely <jwakely (a] redhat.com> 2954 2955 * doc/xml/manual/intro.xml: Document LWG 1203. 2956 * doc/html/*: Regenerate. 2957 2958 2022-09-14 Philipp Fent <fent (a] in.tum.de> 2959 2960 * python/libstdcxx/v6/printers.py (access_streambuf_ptrs): 2961 New helper function. 2962 (StdStringBufPrinter, StdStringStreamPrinter): New printers. 2963 (build_libstdcxx_dictionary): Register stringstream printers. 2964 * testsuite/libstdc++-prettyprinters/debug.cc: Check string 2965 streams. 2966 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. 2967 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise. 2968 2969 2022-09-13 Patrick Palka <ppalka (a] redhat.com> 2970 2971 * include/std/ranges (__detail::__slide_caches_nothing): Define. 2972 (__detail::__slide_caches_last): Define. 2973 (__detail::__slide_caches_first): Define. 2974 (slide_view): Define. 2975 (enable_borrowed_range<slide_view>): Define. 2976 (slide_view::_Iterator): Define. 2977 (slide_view::_Sentinel): Define. 2978 (views::__detail::__can_slide_view): Define. 2979 (views::_Slide, views::slide): Define. 2980 * testsuite/std/ranges/adaptors/slide/1.cc: New test. 2981 2982 2022-09-13 Patrick Palka <ppalka (a] redhat.com> 2983 2984 * include/std/ranges (__detail::__div_ceil): Define. 2985 (chunk_view): Define. 2986 (chunk_view::_OuterIter): Define. 2987 (chunk_view::_OuterIter::value_type): Define. 2988 (chunk_view::_InnerIter): Define. 2989 (chunk_view<_Vp>): Define partial specialization for forward 2990 ranges. 2991 (enable_borrowed_range<chunk_view>): Define. 2992 (chunk_view<_Vp>::_Iterator): Define. 2993 (views::__detail::__can_chunk_view): Define. 2994 (views::_Chunk, views::chunk): Define. 2995 * testsuite/std/ranges/adaptors/chunk/1.cc: New test. 2996 2997 2022-09-13 Patrick Palka <ppalka (a] redhat.com> 2998 2999 * include/std/ranges (join_view::_Iterator::_M_satisfy): 3000 Adjust resetting _M_inner as per LWG 3569. 3001 (join_view::_Iterator::_M_inner): Wrap in std::optional 3002 as per LWG 3569. 3003 (join_view::_Iterator::_Iterator): Relax constraints as 3004 per LWG 3569. 3005 (join_view::_Iterator::operator*): Adjust as per LWG 3569. 3006 (join_view::_Iterator::operator->): Likewise. 3007 (join_view::_Iterator::operator++): Likewise. 3008 (join_view::_Iterator::operator--): Likewise. 3009 (join_view::_Iterator::iter_move): Likewise. 3010 (join_view::_Iterator::iter_swap): Likewise. 3011 * testsuite/std/ranges/adaptors/join.cc (test14): New test. 3012 3013 2022-09-13 Patrick Palka <ppalka (a] redhat.com> 3014 3015 * include/debug/safe_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS): 3016 Add parentheses to avoid -Wparentheses warning. 3017 3018 2022-09-12 Patrick Palka <ppalka (a] redhat.com> 3019 3020 PR libstdc++/106320 3021 * testsuite/std/ranges/adaptors/join.cc (test13): New test. 3022 3023 2022-09-12 Jonathan Wakely <jwakely (a] redhat.com> 3024 3025 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: Fix 3026 comments. 3027 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc: 3028 Likewise. 3029 3030 2022-09-12 Jakub Jelinek <jakub (a] redhat.com> 3031 3032 PR tree-optimization/105329 3033 * acinclude.m4 (libtool_VERSION): Change to 6:31:0. 3034 * config/abi/pre/gnu.ver (GLIBCXX_3.4.21): Don't export 3035 std::basic_string methods with name length of 15. 3036 (GLIBCXX_3.4.31): Export std::basic_string::_M_replace_cold. 3037 * testsuite/util/testsuite_abi.cc (check_version): Handle 3038 GLIBCXX_3.4.31. 3039 * include/bits/basic_string.h (std::basic_string::_M_replace_cold): 3040 Declare. 3041 * include/bits/basic_string.tcc (std::basic_string::_M_replace_cold): 3042 Define and export even for C++20. 3043 (std::basic_string::_M_replace): Use __builtin_expect, outline 3044 the overlapping case to _M_replace_cold. 3045 * configure: Regenerated. 3046 3047 2022-09-09 Jonathan Wakely <jwakely (a] redhat.com> 3048 3049 * include/bits/atomic_base.h (__atomic_impl::__compare_exchange): 3050 Rename __weak to __is_weak. 3051 * testsuite/17_intro/names.cc: Add __weak and __strong. 3052 3053 2022-09-09 Patrick Palka <ppalka (a] redhat.com> 3054 3055 PR libstdc++/106803 3056 * include/std/ranges (views::_ZipTransform::operator()): Correct 3057 return type in the empty case. 3058 (views::_AdjacentTransform::operator()): Likewise. 3059 3060 2022-09-09 Patrick Palka <ppalka (a] redhat.com> 3061 3062 PR libstdc++/106798 3063 * include/std/ranges (adjacent_view::_Iterator::_Iterator): Fix 3064 typo. 3065 * testsuite/std/ranges/adaptors/adjacent/1.cc (test04): New test. 3066 3067 2022-09-09 Patrick Palka <ppalka (a] redhat.com> 3068 3069 PR libstdc++/106766 3070 * include/std/ranges (zip_view::_Iterator::operator-): Use 3071 __to_unsigned_like instead of make_unsigned_t. 3072 (zip_view::_Sentinel::operator-): Likewise. 3073 * testsuite/std/ranges/zip/1.cc (test04): New test. 3074 3075 2022-09-08 Franois Dumont <fdumont (a] gcc.gnu.org> 3076 3077 * testsuite/util/testsuite_performance.h (__gnu_test::MallocInfo): New. 3078 (__gnu_test::malloc_info): New, replace mallinfo on current platform 3079 supporting it and use mallinfo2 when glibc >= 2.33. 3080 3081 2022-09-08 Jonathan Wakely <jwakely (a] redhat.com> 3082 3083 PR c++/106838 3084 * testsuite/20_util/is_complete_or_unbounded/memoization_neg.cc: 3085 Prune additional errors from front-end. 3086 * testsuite/20_util/is_move_constructible/incomplete_neg.cc: 3087 Likewise. 3088 * testsuite/20_util/is_nothrow_swappable/incomplete_neg.cc: 3089 Likewise. 3090 * testsuite/20_util/is_nothrow_swappable_with/incomplete_neg.cc: 3091 Likewise. 3092 * testsuite/20_util/is_swappable_with/incomplete_neg.cc: 3093 Likewise. 3094 3095 2022-09-08 Jonathan Wakely <jwakely (a] redhat.com> 3096 3097 * include/c_global/cstddef (byte): Add always_inline attribute 3098 to all operator overloads. 3099 (to_integer): Add always_inline attribute. 3100 3101 2022-09-08 Thomas Rodgers <trodgers (a] redhat.com> 3102 Jakub Jelinek <jakub (a] redhat.com> 3103 Jonathan Wakely <jwakely (a] redhat.com> 3104 3105 * include/bits/atomic_base.h (__atomic_impl::__maybe_has_padding): 3106 New function. 3107 (__atomic_impl::clear_padding): Likewise. 3108 (__atomic_impl::__compare_exchange): Likewise. 3109 (__atomic_impl::compare_exchange_weak): Delegate to 3110 __compare_exchange. 3111 (__atomic_impl::compare_exchange_strong): Likewise. 3112 * include/std/atomic (atomic<T>::atomic(T)): Clear padding when 3113 possible in a constexpr function. 3114 (atomic::store): Clear padding. 3115 (atomic::exchange): Likewise. 3116 (atomic::compare_exchange_weak): Use __compare_exchange. 3117 (atomic::compare_exchange_strong): Likewise. 3118 * testsuite/29_atomics/atomic/compare_exchange_padding.cc: New 3119 test. 3120 * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc: 3121 New test. 3122 3123 2022-09-08 Jonathan Wakely <jwakely (a] redhat.com> 3124 3125 * include/std/system_error (__adl_only::make_error_code): Add 3126 deleted function. 3127 (__adl_only::make_error_condition): Likewise. 3128 (error_code::error_code(ErrorCodeEnum)): Add using-declaration 3129 for deleted function. 3130 (error_condition::error_condition(ErrorConditionEnum)): 3131 Likewise. 3132 * testsuite/19_diagnostics/error_code/cons/lwg3629.cc: New test. 3133 * testsuite/19_diagnostics/error_condition/cons/lwg3629.cc: New test. 3134 3135 2022-09-07 Jonathan Wakely <jwakely (a] redhat.com> 3136 3137 * include/std/barrier: Add missing runtime exception. 3138 3139 2022-09-07 Patrick Palka <ppalka (a] redhat.com> 3140 3141 * include/std/type_traits (is_reference): Make the primary 3142 template derive from false_type. Define two partial 3143 specializations that derive from true_type. 3144 3145 2022-09-07 Patrick Palka <ppalka (a] redhat.com> 3146 3147 * include/std/type_traits (__is_void_helper): Remove. 3148 (is_void): Make the primary template derive from false_type, 3149 and define four explicit specializations that derive from 3150 true_type. 3151 (__is_null_pointer_helper, is_null_pointer): Likewise. 3152 3153 2022-09-07 Jason Merrill <jason (a] redhat.com> 3154 3155 * libsupc++/dyncast.cc (__dynamic_cast): Avoid virtual function 3156 call in simple success case. 3157 3158 2022-09-06 Philipp Fent <fent (a] in.tum.de> 3159 3160 * testsuite/libstdc++-prettyprinters/48362.cc: Fix expected 3161 tuple indices. 3162 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise. 3163 3164 2022-09-05 Jonathan Wakely <jwakely (a] redhat.com> 3165 3166 * include/std/type_traits (__success_type, __failure_type): Move 3167 definitions later in the file. 3168 3169 2022-09-05 Jonathan Wakely <jwakely (a] redhat.com> 3170 3171 * include/std/type_traits (is_trivial_v, is_trivially_copyable_v) 3172 (is_standard_layout_v, is_pod_v, is_literal_type_v): Use 3173 built-in instead of class template. 3174 (is_same_v): Add partial specialization for true case. 3175 3176 2022-09-02 Patrick Palka <ppalka (a] redhat.com> 3177 3178 * include/std/tuple (tuple::_UseOtherCtor): Use ::type when 3179 deriving from __and_, __or_ or __not_. 3180 * include/std/type_traits (negation): Likewise. 3181 (is_unsigned): Likewise. 3182 (__is_implicitly_default_constructible): Likewise. 3183 (is_trivially_destructible): Likewise. 3184 (__is_nt_invocable_impl): Likewise. 3185 3186 2022-09-02 Jonathan Wakely <jwakely (a] redhat.com> 3187 3188 * include/std/type_traits (is_constructible_v) 3189 (is_default_constructible_v, is_copy_constructible_v) 3190 (is_move_constructible_v): Define using __is_constructible. 3191 (is_assignable_v, is_copy_assignable_v, is_move_assignable_v): 3192 Define using __is_assignable. 3193 (is_trivially_constructible_v) 3194 (is_trivially_default_constructible_v) 3195 (is_trivially_copy_constructible_v) 3196 (is_trivially_move_constructible_v): Define using 3197 __is_trivially_constructible. 3198 (is_trivially_assignable_v, is_trivially_copy_assignable_v) 3199 (is_trivially_move_assignable_v): Define using 3200 __is_trivially_assignable. 3201 (is_nothrow_constructible_v) 3202 (is_nothrow_default_constructible_v) 3203 (is_nothrow_copy_constructible_v) 3204 (is_nothrow_move_constructible_v): Define using 3205 __is_nothrow_constructible. 3206 (is_nothrow_assignable_v, is_nothrow_copy_assignable_v) 3207 (is_nothrow_move_assignable_v): Define using 3208 __is_nothrow_assignable. 3209 3210 2022-09-02 Patrick Palka <ppalka (a] redhat.com> 3211 3212 * include/std/type_traits (__or_, __and_, __not_): Redefine as a 3213 class template instead of as an alias template. 3214 * testsuite/20_util/logical_traits/requirements/short_circuit.cc: 3215 Add more tests for conjunction and disjunction. Add corresponding 3216 tests for __and_ and __or_. 3217 3218 2022-09-01 Jonathan Wakely <jwakely (a] redhat.com> 3219 3220 * include/std/ranges (adjacent_transform_view::_Iterator): Add 3221 typename keyword before dependent qualified-id. 3222 3223 2022-09-01 Jonathan Wakely <jwakely (a] redhat.com> 3224 3225 * include/std/type_traits (__is_referenceable): Remove. 3226 (__add_lvalue_reference_helper, __add_rvalue_reference_helper): 3227 Use __void_t instead of __is_referenceable. 3228 (__add_pointer_helper): Likewise. 3229 (add_pointer): Add partial specializations for reference types. 3230 3231 2022-09-01 Jonathan Wakely <jwakely (a] redhat.com> 3232 3233 * include/std/type_traits (__is_constructible_impl): Replace 3234 class template with alias template. 3235 (is_default_constructible, is_nothrow_constructible) 3236 (is_nothrow_constructible): Simplify base-specifier. 3237 (__is_copy_constructible_impl, __is_move_constructible_impl) 3238 (__is_nothrow_copy_constructible_impl) 3239 (__is_nothrow_move_constructible_impl): Remove class templates. 3240 (is_copy_constructible, is_move_constructible) 3241 (is_nothrow_constructible, is_nothrow_default_constructible) 3242 (is_nothrow_copy_constructible, is_nothrow_move_constructible): 3243 Adjust base-specifiers to use __is_constructible_impl. 3244 (__is_copy_assignable_impl, __is_move_assignable_impl) 3245 (__is_nt_copy_assignable_impl, __is_nt_move_assignable_impl): 3246 Remove class templates. 3247 (__is_assignable_impl): New alias template. 3248 (is_assignable, is_copy_assignable, is_move_assignable): 3249 Adjust base-specifiers to use new alias template. 3250 (is_nothrow_copy_assignable, is_nothrow_move_assignable): 3251 Adjust base-specifiers to use existing alias template. 3252 (__is_trivially_constructible_impl): New alias template. 3253 (is_trivially_constructible, is_trivially_default_constructible) 3254 (is_trivially_copy_constructible) 3255 (is_trivially_move_constructible): Adjust base-specifiers to use 3256 new alias template. 3257 (__is_trivially_assignable_impl): New alias template. 3258 (is_trivially_assignable, is_trivially_copy_assignable) 3259 (is_trivially_move_assignable): Adjust base-specifier to use 3260 new alias template. 3261 (__add_lval_ref_t, __add_rval_ref_t): New alias templates. 3262 (add_lvalue_reference, add_rvalue_reference): Use new alias 3263 templates. 3264 3265 2022-09-01 Jonathan Wakely <jwakely (a] redhat.com> 3266 3267 * include/std/type_traits (__decay_selector): Add partial 3268 specializations for array types. Only check for function types 3269 when not dealing with an array. 3270 (decay): Add partial specializations for reference types. 3271 3272 2022-09-01 Jonathan Wakely <jwakely (a] redhat.com> 3273 3274 * include/std/type_traits (is_lvalue_reference_v) 3275 (is_rvalue_reference_v, is_reference_v, is_const_v) 3276 (is_volatile_v): Define using partial specializations instead 3277 of instantiating class templates. 3278 3279 2022-09-01 Jonathan Wakely <jwakely (a] redhat.com> 3280 3281 * include/std/type_traits (is_enum_v, is_class_v, is_union_v) 3282 (is_empty_v, is_polymoprhic_v, is_abstract_v, is_final_v) 3283 (is_base_of_v, is_aggregate_v): Use built-in directly instead of 3284 instantiating class template. 3285 3286 2022-09-01 Jonathan Wakely <jwakely (a] redhat.com> 3287 3288 * include/std/type_traits (is_scoped_enum): Remove workaround. 3289 3290 2022-09-01 Patrick Palka <ppalka (a] redhat.com> 3291 3292 * include/std/ranges (__detail::__unarize): Define. 3293 (adjacent_view::_Iterator): Befriend adjacent_transform_view. 3294 (adjacent_transform_view): Define. 3295 (adjacent_transform_view::_Iterator): Define. 3296 (adjacent_transform_view::_Sentinel): Define. 3297 (views::__detail::__can_adjacent_transform_view): Define. 3298 (views::_AdjacentTransform): Define. 3299 (views::adjacent_transform): Define. 3300 (views::pairwise_transform): Define. 3301 * testsuite/std/ranges/adaptors/adjacent_transform/1.cc: New test. 3302 3303 2022-09-01 Jonathan Wakely <jwakely (a] redhat.com> 3304 3305 * include/std/type_traits (__is_array_known_bounds): Add partial 3306 specialization instead of using std::extent. 3307 (__is_array_unknown_bounds): Likewise. 3308 (extent): Add partial specializations to stop recursion after 3309 the result is found. 3310 (is_array_v): Add partial specializations instead of 3311 instantiating the class template. 3312 (rank_v, extent_v): Likewise. 3313 (is_bounded_array_v, is_unbounded_array_v): Likewise. 3314 (is_bounded_array, is_unbounded_array): Define in terms of the 3315 variable templates. 3316 3317 2022-08-31 Patrick Palka <ppalka (a] redhat.com> 3318 3319 * include/bits/ranges_base.h (__advance_fn::operator()): Add 3320 parentheses in assert condition to avoid -Wparentheses warning. 3321 * include/std/ranges: (take_view::take_view): Uglify 'base'. 3322 (take_while_view::take_while_view): Likewise. 3323 (elements_view::elements_view): Likewise. 3324 (views::_Zip::operator()): Adjust position of [[nodiscard]] for 3325 compatibility with -fconcepts-ts. 3326 (zip_transform_view::_Sentinel): Uglify 'OtherConst'. 3327 (views::_ZipTransform::operator()): Adjust position of 3328 [[nodiscard]] for compatibilty with -fconcepts-ts. 3329 3330 2022-08-31 Martin Liska <mliska (a] suse.cz> 3331 3332 * configure: Regenerate. 3333 * crossconfig.m4: Remove deprecated ports. 3334 3335 2022-08-31 Franois Dumont <fdumont (a] gcc.gnu.org> 3336 3337 * include/debug/debug.h: Use nullptr rather than '0' in checks in post-C++11. 3338 * include/debug/string: Likewise. 3339 * testsuite/21_strings/basic_string/operations/ends_with/char.cc: Use __gnu_test::string. 3340 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc: Likewise. 3341 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc: Likewise. 3342 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc: Likewise. 3343 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc: Likewise. 3344 * testsuite/21_strings/basic_string/operations/starts_with/char.cc: Likewise.. 3345 3346 2022-08-31 Patrick Palka <ppalka (a] redhat.com> 3347 3348 * include/std/ranges (adjacent_view): Define. 3349 (enable_borrowed_range<adjacent_view>): Define. 3350 (__detail::__repeated_tuple): Define. 3351 (adjacent_view::_Iterator): Define. 3352 (adjacent_view::_Sentinel): Define. 3353 (views::__detail::__can_adjacent_view): Define. 3354 (views::_Adjacent): Define. 3355 (views::adjacent): Define. 3356 (views::pairwise): Define. 3357 * testsuite/std/ranges/adaptors/adjacent/1.cc: New test. 3358 3359 2022-08-31 Franois Dumont <fdumont (a] gcc.gnu.org> 3360 3361 * include/debug/formatter.h 3362 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_state): Declare. 3363 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_create_state): Declare. 3364 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_callback): Define. 3365 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_error_callback): Define. 3366 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full_func): Define. 3367 [_GLIBCXX_HAVE_STACKTRACE](__glibcxx_backtrace_full): Declare. 3368 [_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_state): New. 3369 [_GLIBCXX_HAVE_STACKTRACE](_Error_formatter::_M_backtrace_full): New. 3370 * src/c++11/debug.cc [_GLIBCXX_HAVE_STACKTRACE](print_backtrace): New. 3371 (_Error_formatter::_M_error()): Adapt. 3372 * src/libbacktrace/Makefile.am: Add backtrace.c. 3373 * src/libbacktrace/Makefile.in: Regenerate. 3374 * src/libbacktrace/backtrace-rename.h (backtrace_full): New. 3375 * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc: New test. 3376 * doc/xml/manual/debug_mode.xml: Document _GLIBCXX_DEBUG_BACKTRACE. 3377 * doc/xml/manual/using.xml: Likewise. 3378 3379 2022-08-31 Patrick Palka <ppalka (a] redhat.com> 3380 3381 * testsuite/20_util/logical_traits/requirements/short_circuit.cc: New test. 3382 3383 2022-08-31 Jonathan Wakely <jwakely (a] redhat.com> 3384 3385 * include/bits/refwrap.h (reference_wrapper::operator()): Add 3386 noexcept-specifier and use __invoke_result instead of result_of. 3387 * testsuite/20_util/reference_wrapper/invoke-noexcept.cc: New test. 3388 3389 2022-08-31 Jonathan Wakely <jwakely (a] redhat.com> 3390 3391 * testsuite/20_util/reference_wrapper/invoke-2.cc: Improve 3392 comments. 3393 * testsuite/20_util/reference_wrapper/invoke-3.cc: Likewise. 3394 * testsuite/20_util/reference_wrapper/invoke.cc: Likewise. 3395 3396 2022-08-31 Jonathan Wakely <jwakely (a] redhat.com> 3397 3398 * include/bits/basic_string.h (basic_string): Add nodiscard 3399 attribute to all relevant functions. 3400 * include/std/string_view (basic_string_view): Likewise. 3401 * testsuite/21_strings/basic_string/capacity/1.cc: Cast unused 3402 results to void. 3403 * testsuite/21_strings/basic_string/capacity/char/1.cc: 3404 Likewise. 3405 * testsuite/21_strings/basic_string/capacity/wchar_t/1.cc: 3406 Likewise. 3407 * testsuite/21_strings/basic_string/cons/char/self_move.cc: 3408 Likewise. 3409 * testsuite/21_strings/basic_string/element_access/char/1.cc: 3410 Likewise. 3411 * testsuite/21_strings/basic_string/element_access/char/21674.cc: 3412 Likewise. 3413 * testsuite/21_strings/basic_string/element_access/wchar_t/1.cc: 3414 Likewise. 3415 * testsuite/21_strings/basic_string/element_access/wchar_t/21674.cc: 3416 Likewise. 3417 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise. 3418 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise. 3419 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc: 3420 Add -Wno-unused-result to options. 3421 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc: 3422 Likewise. 3423 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc: 3424 Likewise. 3425 * testsuite/21_strings/basic_string/operators/char/1.cc: Cast 3426 unused results to void. 3427 * testsuite/21_strings/basic_string/operators/wchar_t/1.cc: 3428 Likewise. 3429 * testsuite/21_strings/basic_string_view/capacity/1.cc: 3430 Likewise. 3431 * testsuite/21_strings/basic_string_view/element_access/char/1.cc: 3432 Likewise. 3433 * testsuite/21_strings/basic_string_view/element_access/char/2.cc: 3434 Likewise. 3435 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc: 3436 Likewise. 3437 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc: 3438 Likewise. 3439 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc: 3440 Likewise. 3441 Add -Wno-unused-result to options. 3442 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc: 3443 Likewise. 3444 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc: 3445 Likewise. 3446 * testsuite/27_io/basic_stringbuf/sputbackc/char/1.cc: Cast 3447 unused results to void. 3448 * testsuite/27_io/basic_stringbuf/sputbackc/wchar_t/1.cc: 3449 Likewise. 3450 * testsuite/27_io/basic_stringbuf/sungetc/char/1.cc: Likewise. 3451 * testsuite/27_io/basic_stringbuf/sungetc/wchar_t/1.cc: 3452 Likewise. 3453 3454 2022-08-27 Patrick Palka <ppalka (a] redhat.com> 3455 3456 * testsuite/20_util/logical_traits/requirements/base_classes.cc: New test. 3457 3458 2022-08-26 Patrick Palka <ppalka (a] redhat.com> 3459 3460 * include/std/ranges (zip_view::_Iterator::operator<): Remove 3461 as per LWG 3692. 3462 (zip_view::_Iterator::operator>): Likewise. 3463 (zip_view::_Iterator::operator<=): Likewise. 3464 (zip_view::_Iterator::operator>=): Likewise. 3465 (zip_view::_Iterator::operator<=>): Remove three_way_comparable 3466 constraint as per LWG 3692. 3467 (zip_transform_view::_Iterator): Ditto as per LWG 3702. 3468 3469 2022-08-26 Patrick Palka <ppalka (a] redhat.com> 3470 3471 * include/std/ranges (zip_view::_Iterator): Befriend 3472 zip_transform_view. 3473 (__detail::__range_iter_cat): Define. 3474 (zip_transform_view): Define. 3475 (zip_transform_view::_Iterator): Define. 3476 (zip_transform_view::_Sentinel): Define. 3477 (views::__detail::__can_zip_transform_view): Define. 3478 (views::_ZipTransform): Define. 3479 (views::zip_transform): Define. 3480 * testsuite/std/ranges/zip_transform/1.cc: New test. 3481 3482 2022-08-26 Patrick Palka <ppalka (a] redhat.com> 3483 3484 * include/std/type_traits (enable_if, __enable_if_t): Define them 3485 earlier. 3486 (__detail::__first_t): Define. 3487 (__detail::__or_fn, __detail::__and_fn): Declare. 3488 (__or_, __and_): Redefine as alias templates in terms of __or_fn 3489 and __and_fn. 3490 (__not_): Redefine as an alias template. 3491 (__detail::__disjunction_impl, __detail::__conjunction_impl): 3492 Define. 3493 (conjuction, disjunction): Redefine in terms of __disjunction_impl 3494 and __conjunction_impl. 3495 3496 2022-08-26 Jonathan Wakely <jwakely (a] redhat.com> 3497 3498 * include/std/system_error (error_code::_Check): New alias 3499 template for constructor SFINAE constraint. 3500 (error_code::error_code(ErrorCodeEnum)): Use it. 3501 (error_code::operator=(ErrorCodeEnum)): Remove. 3502 (error_condition::_Check): New alias template for constraint. 3503 (error_condition::error_condition(ErrorConditionEnum)): Use it. 3504 (error_condition::operator=(ErrorConditionEnum)): Remove. 3505 * testsuite/19_diagnostics/error_code/cons/1.cc: Check 3506 constructor taking user-defined error enum. 3507 * testsuite/19_diagnostics/error_condition/cons/1.cc: Likewise. 3508 3509 2022-08-26 Jonathan Wakely <jwakely (a] redhat.com> 3510 3511 * include/bits/basic_string.h (starts_with, ends_with, contains): 3512 Add nonnull attribute. 3513 * include/bits/cow_string.h (starts_with, ends_with, contains): 3514 Likewise. 3515 * include/std/string_view (starts_with, ends_with, contains): 3516 Likewise. 3517 * testsuite/21_strings/basic_string/operations/contains/nonnull.cc 3518 * testsuite/21_strings/basic_string/operations/ends_with/nonnull.cc 3519 * testsuite/21_strings/basic_string/operations/starts_with/nonnull.cc 3520 * testsuite/21_strings/basic_string_view/operations/contains/nonnull.cc 3521 * testsuite/21_strings/basic_string_view/operations/ends_with/nonnull.cc 3522 * testsuite/21_strings/basic_string_view/operations/starts_with/nonnull.cc 3523 3524 2022-08-25 Patrick Palka <ppalka (a] redhat.com> 3525 3526 * include/std/ranges (lazy_split_view::_OuterIter::_M_current): 3527 Remove redundant comment. 3528 (lazy_split_view::_M_current): Likewise. 3529 (common_view::common_view): Remove commented out view-converting 3530 constructor as per LWG3405. 3531 (elements_view::_Iterator::_Iterator): Uglify 'current' and 'i'. 3532 3533 2022-08-24 Patrick Palka <ppalka (a] redhat.com> 3534 3535 * include/bits/ranges_algo.h (__min_fn, min): Move to ... 3536 * include/bits/ranges_util.h: ... here, in order to avoid 3537 including all of ranges_algo.h from <ranges>. 3538 * include/std/ranges (__detail::__zip_is_common): Define for 3539 C++23 as per P2321R2. 3540 (__detail::__tuple_or_pair): Likewise. 3541 (__detail::__tuple_or_pair_t): Likewise. 3542 (__detail::__tuple_transform): Likewise. 3543 (__detail::__tuple_for_each): Likewise. 3544 (zip_view): Likewise. 3545 (enable_borrowed_range<zip_view>): Likewise. 3546 (__detail::__all_random_access): Likewise. 3547 (__detail::__all_bidirectional): Likewise. 3548 (__detail::__all_forward): Likewise. 3549 (__detail::__zip_view_iter_cat): Likewise. 3550 (zip_view::_Iterator): Likewise. 3551 (zip_view::_Sentinel): Likewise. 3552 * testsuite/std/ranges/zip/1.cc: New test. 3553 3554 2022-08-24 Jonathan Wakely <jwakely (a] redhat.com> 3555 3556 Revert: 3557 2022-08-24 Will Hawkins <whh8b (a] obs.cr> 3558 3559 * include/bits/basic_string.h (operator+(const string&, const char*)): 3560 Remove naive implementation. 3561 * include/bits/basic_string.tcc (operator+(const string&, const char*)): 3562 Add single-allocation implementation. 3563 3564 2022-08-24 Patrick Palka <ppalka (a] redhat.com> 3565 3566 * include/bits/stl_pair.h (pair::swap const): Add non-standard 3567 is_swappable_v constraints. 3568 * include/std/tuple (tuple::swap const): Likewise. 3569 * testsuite/20_util/tuple/cons/noexcept_specs.cc: Correct some 3570 asserts in C++23 mode. 3571 3572 2022-08-24 Jonathan Wakely <jwakely (a] redhat.com> 3573 3574 * include/bits/stl_algo.h (__stable_sort): Cast size to 3575 iterator's difference type. 3576 * testsuite/25_algorithms/stable_sort/4.cc: New test. 3577 3578 2022-08-24 Will Hawkins <whh8b (a] obs.cr> 3579 3580 * include/bits/basic_string.h (operator+(const string&, const char*)): 3581 Remove naive implementation. 3582 * include/bits/basic_string.tcc (operator+(const string&, const char*)): 3583 Add single-allocation implementation. 3584 3585 2022-08-24 Jonathan Wakely <jwakely (a] redhat.com> 3586 3587 * testsuite/20_util/duration_cast/rounding.cc: Check abs with 3588 non-reduced duration. 3589 3590 2022-08-23 Patrick Palka <ppalka (a] redhat.com> 3591 3592 * include/bits/stl_bvector.h (_Bit_reference::operator=): Define 3593 const overload for C++23 as per P2321R2. 3594 * include/bits/stl_pair.h (pair::swap): Likewise. 3595 (pair::pair): Define additional converting constructors for 3596 C++23 as per P2321R2. 3597 (pair::operator=): Define const overloads for C++23 as per 3598 P2321R2. 3599 (swap): Define overload taking const pair& for C++23 as per 3600 P2321R2. 3601 (basic_common_reference): Define partial specialization for 3602 pair for C++23 as per P2321R2. 3603 (common_type): Likewise. 3604 * include/bits/uses_allocator_args.h 3605 (uses_allocator_construction_args): Define additional pair 3606 overloads for C++23 as per P2321R2. 3607 * include/std/tuple (_Tuple_impl::_Tuple_impl): Define 3608 additional converting constructors for C++23 as per P2321R2. 3609 (_Tuple_impl::_M_assign): Define const overloads for C++23 3610 as per P2321R2. 3611 (_Tuple_impl::_M_swap): Likewise. 3612 (tuple::__constructible): Define as a convenient renaming of 3613 _TCC<true>::__constructible. 3614 (tuple::__convertible): As above but for _TCC<true>::__convertible. 3615 (tuple::tuple): Define additional converting constructors for 3616 C++23 as per P2321R2. 3617 (tuple::operator=): Define const overloads for C++23 as per 3618 P2321R2. 3619 (tuple::swap): Likewise. 3620 (basic_common_reference): Define partial specialization for 3621 tuple for C++23 as per P2321R2. 3622 (common_type): Likewise. 3623 * testsuite/20_util/pair/p2321r2.cc: New test. 3624 * testsuite/20_util/tuple/p2321r2.cc: New test. 3625 * testsuite/23_containers/vector/bool/element_access/1.cc: New test. 3626 3627 2022-08-23 Patrick Palka <ppalka (a] redhat.com> 3628 3629 * include/std/tuple (_TupleConstraints::__convertible): Define. 3630 (_TupleConstraints::__constructible): Define. 3631 (_TupleConstraints::__is_explicitly_constructible): Redefine this 3632 in terms of __convertible and __constructible. 3633 (_TupleConstraints::__is_implicitly_constructible): Likewise. 3634 3635 2022-08-23 Jonathan Wakely <jwakely (a] redhat.com> 3636 3637 PR libstdc++/106589 3638 * include/std/variant (__do_visit): Handle is_void<R> for zero 3639 argument case. 3640 * testsuite/20_util/variant/visit_r.cc: Check std::visit<void>(v). 3641 3642 2022-08-22 Jonathan Wakely <jwakely (a] redhat.com> 3643 3644 PR libstdc++/105678 3645 * doc/xml/manual/using.xml: Document -lstdc++_libbacktrace 3646 requirement for using std::stacktrace. Also adjust -frtti and 3647 -fexceptions to document non-default (i.e. negative) forms. 3648 * doc/html/*: Regenerate. 3649 3650 2022-08-22 Jonathan Wakely <jwakely (a] redhat.com> 3651 3652 PR libstdc++/106695 3653 * include/bits/std_thread.h (thread::_State_impl): Forward 3654 individual arguments to _Invoker constructor. 3655 (thread::_Invoker): Add constructor. Delete copies. 3656 * include/std/future (__future_base::_Deferred_state): Forward 3657 individual arguments to _Invoker constructor. 3658 (__future_base::_Async_state_impl): Likewise. 3659 * testsuite/30_threads/async/106695.cc: New test. 3660 * testsuite/30_threads/thread/106695.cc: New test. 3661 3662 2022-08-22 Jonathan Wakely <jwakely (a] redhat.com> 3663 3664 PR libstdc++/106607 3665 * include/bits/regex_compiler.tcc (_Compiler::_M_cur_int_value): 3666 Use built-ins to check for integer overflow in back-reference 3667 number. 3668 * testsuite/28_regex/basic_regex/106607.cc: New test. 3669 3670 2022-08-17 Keef Aragon <keef.aragon (a] konscious.net> 3671 3672 * libsupc++/eh_alloc.cc (pool::free): Inverse comparison. 3673 3674 2022-08-08 Franois Dumont <fdumont (a] gcc.gnu.org> 3675 3676 * include/debug/formatter.h (__singular_value_init): New _Iterator_state enum entry. 3677 (_Parameter<>(const _Safe_iterator<>&, const char*, _Is_iterator)): Check if iterator 3678 parameter is value-initialized. 3679 (_Parameter<>(const _Safe_local_iterator<>&, const char*, _Is_iterator)): Likewise. 3680 * include/debug/safe_iterator.h (_Safe_iterator<>::_M_value_initialized()): New. Adapt 3681 checks. 3682 * include/debug/safe_local_iterator.h (_Safe_local_iterator<>::_M_value_initialized()): New. 3683 Adapt checks. 3684 * src/c++11/debug.cc (_Safe_iterator_base::_M_reset): Do not reset _M_version. 3685 (print_field(PrintContext&, const _Parameter&, const char*)): Adapt state_names. 3686 * testsuite/23_containers/deque/debug/iterator1_neg.cc: New test. 3687 * testsuite/23_containers/deque/debug/iterator2_neg.cc: New test. 3688 * testsuite/23_containers/forward_list/debug/iterator1_neg.cc: New test. 3689 * testsuite/23_containers/forward_list/debug/iterator2_neg.cc: New test. 3690 * testsuite/23_containers/forward_list/debug/iterator3_neg.cc: New test. 3691 3692 2022-08-05 Jonathan Wakely <jwakely (a] redhat.com> 3693 3694 * include/experimental/scope (__cpp_lib_experimental_scope): 3695 Define. 3696 * testsuite/experimental/scopeguard/uniqueres.cc: Check macro. 3697 3698 2022-08-05 Jonathan Wakely <jwakely (a] redhat.com> 3699 3700 * include/Makefile.am: Add new header. 3701 * include/Makefile.in: Regenerate. 3702 * include/experimental/scope: New file. 3703 * testsuite/experimental/scopeguard/uniqueres.cc: New test. 3704 * testsuite/experimental/scopeguard/exit.cc: New test. 3705 3706 2022-08-04 Jonathan Wakely <jwakely (a] redhat.com> 3707 3708 * include/std/string_view (basic_string_view(Range&&)): Add 3709 explicit as per P2499R0. 3710 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: 3711 Adjust implicit conversions. Check implicit conversions fail. 3712 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: 3713 Likewise. 3714 3715 2022-08-04 Jonathan Wakely <jwakely (a] redhat.com> 3716 3717 * include/bits/fs_dir.h (directory_iterator): Add comparison 3718 with std::default_sentinel_t. Remove redundant operator!= for 3719 C++20. 3720 * (recursive_directory_iterator): Likewise. 3721 * include/bits/iterator_concepts.h [!__cpp_lib_concepts] 3722 (default_sentinel_t, default_sentinel): Define even if concepts 3723 are not supported. 3724 * include/bits/regex.h (regex_iterator): Add comparison with 3725 std::default_sentinel_t. Remove redundant operator!= for C++20. 3726 (regex_token_iterator): Likewise. 3727 (regex_token_iterator::_M_end_of_seq()): Add noexcept. 3728 * testsuite/27_io/filesystem/iterators/lwg3719.cc: New test. 3729 * testsuite/28_regex/iterators/regex_iterator/lwg3719.cc: 3730 New test. 3731 * testsuite/28_regex/iterators/regex_token_iterator/lwg3719.cc: 3732 New test. 3733 3734 2022-08-04 Jonathan Wakely <jwakely (a] redhat.com> 3735 3736 * include/std/expected (unexpected::_M_val): Rename to _M_unex. 3737 (bad_expected_access::_M_val): Likewise. 3738 3739 2022-08-04 Jonathan Wakely <jwakely (a] redhat.com> 3740 3741 * include/bits/ios_base.h (__cpp_lib_ios_noreplace): Update 3742 value to 202207L. 3743 * include/std/version (__cpp_lib_ios_noreplace): Likewise. 3744 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: Check 3745 for new value. 3746 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc: 3747 Likewise. 3748 3749 2022-08-04 Jonathan Wakely <jwakely (a] redhat.com> 3750 3751 PR libstdc++/106183 3752 * include/bits/atomic_wait.h (__waiter_pool_base::_M_notify): 3753 Move increment of _M_ver here. 3754 [!_GLIBCXX_HAVE_PLATFORM_WAIT]: Lock mutex around increment. 3755 Use relaxed memory order and always notify all waiters. 3756 (__waiter_base::_M_do_wait) [!_GLIBCXX_HAVE_PLATFORM_WAIT]: 3757 Check value again after locking mutex. 3758 (__waiter_base::_M_notify): Remove increment of _M_ver. 3759 3760 2022-08-04 Ulrich Drepper <drepper (a] gmail.com> 3761 3762 * python/libstdcxx/v6/printers.py (class StdTuplePrinter): Use 3763 zero-based indeces just like std:get takes. 3764 3765 2022-07-29 Jonathan Wakely <jwakely (a] redhat.com> 3766 3767 PR libstdc++/104443 3768 * include/bits/stl_iterator.h (common_iterator::operator->): 3769 Change return type to just auto. 3770 3771 2022-07-26 Thomas Rodgers <trodgers (a] redhat.com> 3772 3773 * include/bits/atomic_wait.h (__atomic_spin): Merge spin loops. 3774 3775 2022-07-20 Jonathan Wakely <jwakely (a] redhat.com> 3776 3777 PR libstdc++/100823 3778 * include/bits/stl_iterator.h (common_iterator): Define 3779 destructor, copy constructor and move constructor as trivial 3780 when the underlying types allow. 3781 * testsuite/24_iterators/common_iterator/100823.cc: Check 3782 triviality of special members. 3783 3784 2022-07-20 Jonathan Wakely <jwakely (a] redhat.com> 3785 3786 PR libstdc++/100823 3787 * include/bits/stl_iterator.h (common_iterator): Define move 3788 constructor and move assignment operator. 3789 (common_iterator::_M_assign): New function implementing 3790 assignment. 3791 (common_iterator::operator=): Use _M_assign. 3792 (common_iterator::_S_valueless): New constant. 3793 * testsuite/24_iterators/common_iterator/100823.cc: New test. 3794 3795 2022-07-20 Jonathan Wakely <jwakely (a] redhat.com> 3796 3797 * include/bits/stl_iterator.h (common_iterator): Fix incorrect 3798 uses of is_nothrow_assignable_v. Fix inconsistent constraints on 3799 friend declaration. Do not move argument in copy constructor. 3800 * testsuite/24_iterators/common_iterator/1.cc: Check for 3801 noexcept constructibnle/assignable. 3802 3803 2022-07-19 Franois Dumont <fdumont (a] gcc.gnu.org> 3804 3805 * include/debug/debug.h [_GLIBCXX_DEBUG](__glibcxx_requires_string): Define 3806 using _GLIBCXX_DEBUG_PEDASSERT. 3807 [_GLIBCXX_DEBUG](__glibcxx_requires_string_len): Likewise. 3808 * include/debug/macros.h 3809 (__glibcxx_check_string, __glibcxx_check_string_len): Move... 3810 * include/debug/string 3811 (__glibcxx_check_string, __glibcxx_check_string_len): ...here. And define depending 3812 on _GLIBCXX_DEBUG_PEDANTIC no matter if _GLIBCXX_DEBUG is defined. 3813 Add using of std::string find, rfind, find_first_of, find_last_of, find_first_not_of 3814 and find_last_not_of. Remove debug implementations having no debug assertion. 3815 * testsuite/util/testsuite_string.h: New file. Provides __gnu_test::string and 3816 __gnu_test::wtring which definition depends on _GLIBCXX_DEBUG. 3817 * testsuite/21_strings/basic_string/debug/find1_neg.cc: New test case. 3818 * testsuite/21_strings/basic_string/debug/find2_neg.cc: New test case. 3819 * testsuite/21_strings/basic_string/operations/find/char/1.cc: 3820 Include <testsuite_string.h> and use __gnu_test::string. 3821 * testsuite/21_strings/basic_string/operations/find/char/2.cc: Likewise. 3822 * testsuite/21_strings/basic_string/operations/find/char/3.cc: Likewise. 3823 * testsuite/21_strings/basic_string/operations/find/char/4.cc: Likewise. 3824 * testsuite/21_strings/basic_string/operations/find/char/5.cc: Likewise. 3825 * testsuite/21_strings/basic_string/operations/find/char/6.cc: Likewise. 3826 * testsuite/21_strings/basic_string/operations/find/wchar_t/1.cc: 3827 Include <testsuite_string.h> and use __gnu_test::wstring. 3828 * testsuite/21_strings/basic_string/operations/find/wchar_t/2.cc: Likewise. 3829 * testsuite/21_strings/basic_string/operations/find/wchar_t/3.cc: Likewise. 3830 * testsuite/21_strings/basic_string/operations/find/wchar_t/4.cc: Likewise. 3831 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc: Likewise. 3832 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: Likewise. 3833 3834 2022-07-19 Jonathan Wakely <jwakely (a] redhat.com> 3835 3836 * include/std/type_traits (__cpp_lib_reference_from_temporary) 3837 (reference_constructs_from_temporary) 3838 (reference_converts_from_temporary): Only define when the 3839 built-ins are available. 3840 3841 2022-07-19 Marco Falke <falke.marco (a] gmail.com> 3842 3843 * include/std/charconv (__from_chars_alnum_to_val): Replace 3844 implicit conversion from int to unsigned char with explicit 3845 cast. 3846 3847 2022-07-19 Sebastian Huber <sebastian.huber (a] embedded-brains.de> 3848 3849 * configure: Regnerate. 3850 * configure.ac (newlib, *-rtems*): Remove HAVE_POLL. 3851 3852 2022-07-18 Franois Dumont <fdumont (a] gcc.gnu.org> 3853 3854 * include/bits/stl_algo.h 3855 (__merge_adaptive): Adapt to merge only when buffer is large enough.. 3856 (__merge_adaptive_resize): New, adapt merge when buffer is too small. 3857 (__inplace_merge): Adapt, use latter. 3858 (__stable_sort_adaptive): Adapt to sort only when buffer is large enough. 3859 (__stable_sort_adaptive_resize): New, adapt sort when buffer is too small. 3860 (__stable_sort): Adapt, use latter. 3861 3862 2022-07-15 Marek Polacek <polacek (a] redhat.com> 3863 3864 PR c++/104477 3865 * include/std/type_traits (reference_constructs_from_temporary, 3866 reference_converts_from_temporary): New class templates. 3867 (reference_constructs_from_temporary_v, 3868 reference_converts_from_temporary_v): New variable templates. 3869 (__cpp_lib_reference_from_temporary): Define for C++23. 3870 * include/std/version (__cpp_lib_reference_from_temporary): Define for 3871 C++23. 3872 * testsuite/20_util/variable_templates_for_traits.cc: Test 3873 reference_constructs_from_temporary_v and 3874 reference_converts_from_temporary_v. 3875 * testsuite/20_util/reference_from_temporary/value.cc: New test. 3876 * testsuite/20_util/reference_from_temporary/value2.cc: New test. 3877 * testsuite/20_util/reference_from_temporary/version.cc: New test. 3878 3879 2022-07-12 Jonathan Wakely <jwakely (a] redhat.com> 3880 3881 PR libstdc++/106248 3882 * include/std/istream [C++17] (operator>>(istream&, char*)): 3883 Set eofbit if we stopped extracting at EOF. 3884 * testsuite/27_io/basic_istream/extractors_character/char/pr106248.cc: 3885 New test. 3886 * testsuite/27_io/basic_istream/extractors_character/wchar_t/pr106248.cc: 3887 New test. 3888 3889 2022-07-12 Jonathan Wakely <jwakely (a] redhat.com> 3890 3891 * include/bits/stl_iterator.h (__iter_to_alloc_t): Replace 3892 add_const_t with const-qualifier. 3893 * include/bits/utility.h (tuple_element<N, cv T>): Likewise for 3894 all cv-qualifiers. 3895 * include/std/type_traits (add_const, add_volatile): Replace 3896 typedef-declaration with using-declaration. 3897 (add_cv): Replace add_const and add_volatile with cv-qualifiers. 3898 * include/std/variant (variant_alternative<N, cv T>): Replace 3899 add_const_t, add_volatile_t and add_cv_t etc. with cv-qualifiers. 3900 3901 2022-07-09 Franois Dumont <fdumont (a] gcc.gnu.org> 3902 3903 * include/std/string: Remove obsolete comment about char_traits.h including 3904 stl_algobase.h. 3905 3906 2022-07-07 Jonathan Wakely <jwakely (a] redhat.com> 3907 3908 PR c++/89074 3909 * include/bits/char_traits.h (__gnu_cxx::char_traits::move): 3910 Remove workaround for front-end bug. 3911 3912 2022-07-05 Alexandre Oliva <oliva (a] adacore.com> 3913 3914 * testsuite/util/testsuite_fs.h (nonexistent_path): Explain 3915 why we need the typecast. 3916 3917 2022-07-05 Alexandre Oliva <oliva (a] adacore.com> 3918 3919 * testsuite/util/testsuite_fs.h (nonexistent_path): Convert 3920 the getpid result to an integral type. 3921 3922 2022-07-01 Jonathan Wakely <jwakely (a] redhat.com> 3923 3924 PR libstdc++/106162 3925 * include/Makefile.am (largefile-config.h): Add 3926 stamp-${host_alias} prerequisite. 3927 * include/Makefile.in: Regenerate. 3928 3929 2022-07-01 Jonathan Wakely <jwakely (a] redhat.com> 3930 3931 * include/bits/fs_ops.h: Add nodiscard to all pure functions. 3932 * include/experimental/bits/fs_ops.h: Likewise. 3933 * testsuite/27_io/filesystem/operations/all.cc: Do not discard 3934 results of absolute and canonical. 3935 * testsuite/27_io/filesystem/operations/absolute.cc: Cast 3936 discarded result to void. 3937 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise. 3938 * testsuite/27_io/filesystem/operations/exists.cc: Likewise. 3939 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise. 3940 * testsuite/27_io/filesystem/operations/read_symlink.cc: 3941 Likewise. 3942 * testsuite/27_io/filesystem/operations/status.cc: Likewise. 3943 * testsuite/27_io/filesystem/operations/symlink_status.cc: 3944 Likewise. 3945 * testsuite/27_io/filesystem/operations/temp_directory_path.cc: 3946 Likewise. 3947 * testsuite/experimental/filesystem/operations/canonical.cc: 3948 Likewise. 3949 * testsuite/experimental/filesystem/operations/exists.cc: 3950 Likewise. 3951 * testsuite/experimental/filesystem/operations/is_empty.cc: 3952 Likewise. 3953 * testsuite/experimental/filesystem/operations/read_symlink.cc: 3954 Likewise. 3955 * testsuite/experimental/filesystem/operations/temp_directory_path.cc: 3956 Likewise. 3957 3958 2022-07-01 Sebastian Huber <sebastian.huber (a] embedded-brains.de> 3959 3960 * configure: Regnerate. 3961 * configure.ac (newlib, *-rtems*): Enable TLS support for all RTEMS 3962 targets except bfin, lm32, mips, moxie, or1k, and v850. 3963 For all RTEMS targets, define HAVE_ALIGNED_ALLOC, HAVE_AT_QUICK_EXIT, 3964 HAVE_LINK, HAVE_POLL, HAVE_QUICK_EXIT, HAVE_READLINK, HAVE_SETENV, 3965 HAVE_SLEEP, HAVE_SOCKATMARK, HAVE_STRERROR_L, HAVE_SYMLINK, 3966 HAVE_TRUNCATE, and HAVE_USLEEP. 3967 * crossconfig.m4 (*-rtems*): Remove. 3968 3969 2022-06-30 Jonathan Wakely <jwakely (a] redhat.com> 3970 3971 * include/bits/utility.h: Fix comment typos. 3972 3973 2022-06-30 Jonathan Wakely <jwakely (a] redhat.com> 3974 3975 * src/c++17/fs_ops.cc (fs::temp_directory_path()): Include path 3976 in exception. 3977 (fs::temp_directory_path(error_code&)): Rearrange to more 3978 closely match the structure of the first overload. 3979 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise. 3980 * testsuite/27_io/filesystem/operations/temp_directory_path.cc: 3981 Check that exception contains the path. 3982 * testsuite/experimental/filesystem/operations/temp_directory_path.cc: 3983 Likewise. 3984 3985 2022-06-30 Jonathan Wakely <jwakely (a] redhat.com> 3986 3987 PR libstdc++/88881 3988 * src/filesystem/ops.cc (has_trailing_slash): New helper 3989 function. 3990 (fs::status): Strip trailing slashes. 3991 (fs::symlink_status): Likewise. 3992 * testsuite/experimental/filesystem/operations/temp_directory_path.cc: 3993 Clean the environment before each test and use TMP instead of 3994 TMPDIR so the test passes on Windows. 3995 3996 2022-06-28 Jonathan Wakely <jwakely (a] redhat.com> 3997 3998 * src/filesystem/dir-common.h (_Dir_base::_At_path): 3999 Use char_type consistently for paths. 4000 4001 2022-06-28 Jonathan Wakely <jwakely (a] redhat.com> 4002 4003 * src/c++17/fs_dir.cc (_Dir::dir_and_pathname):: Replace with 4004 current() returning _At_path. 4005 (_Dir::_Dir, _Dir::open_subdir, _Dir::do_unlink): Adjust. 4006 * src/filesystem/dir-common.h (_Dir_base::_At_path): New class. 4007 (_Dir_base::_Dir_Base, _Dir_base::openat): Use _At_path. 4008 * src/filesystem/dir.cc (_Dir::dir_and_pathname): Replace with 4009 current() returning _At_path. 4010 (_Dir::_Dir, _Dir::open_subdir): Adjust. 4011 4012 2022-06-28 Jonathan Wakely <jwakely (a] redhat.com> 4013 4014 * src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]: 4015 Always store pathname if we don't have openat or unlinkat, 4016 because the full path is needed to open sub-directories and 4017 remove entries. 4018 4019 2022-06-28 Jonathan Wakely <jwakely (a] redhat.com> 4020 4021 * testsuite/20_util/from_chars/4.cc: Only use log2 if C99 math 4022 functions are available. 4023 4024 2022-06-27 Alexandre Oliva <oliva (a] adacore.com> 4025 4026 * testsuite/20_util/to_chars/long_double.cc: Use cmath 4027 long double overloads for nexttoward and ldexp. 4028 4029 2022-06-27 Alexandre Oliva <oliva (a] adacore.com> 4030 4031 * testsuite/experimental/simd/standard_abi_usable.cc: Require 4032 cmath support. 4033 * testsuite/experimental/simd/standard_abi_usable_2.cc: 4034 Likewise. 4035 4036 2022-06-27 Alexandre Oliva <oliva (a] adacore.com> 4037 4038 * testsuite/26_numerics/complex/proj.cc: Skip test in the 4039 circumstances in which the implementation of proj is known to 4040 be broken. 4041 4042 2022-06-27 Alexandre Oliva <oliva (a] adacore.com> 4043 4044 * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if 4045 _GLIBCXX_HAVE_OPENAT. 4046 4047 2022-06-27 Alexandre Oliva <oliva (a] adacore.com> 4048 4049 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc 4050 (test06): Don't create symlinks when NO_SYMLINKS is defined. 4051 4052 2022-06-27 Alexandre Oliva <oliva (a] adacore.com> 4053 4054 * testsuite/lib/dg-options.exp (add_options_for_net_ts): 4055 Add -Wl,--gc-sections for RTEMS targets. 4056 * testsuite/experimental/net/timer/waitable/dest.cc: Link-time 4057 xfail on RTEMS. 4058 * testsuite/experimental/net/timer/waitable/ops.cc: Likewise. 4059 * testsuite/experimental/net/internet/resolver/ops/lookup.cc: 4060 Execution-time xfail on RTEMS. 4061 * testsuite/experimental/net/internet/resolver/ops/reverse.cc: 4062 Likewise. 4063 4064 2022-06-27 Jonathan Wakely <jwakely (a] redhat.com> 4065 4066 * testsuite/ext/mt_allocator/22309_thread.cc: Include <string>. 4067 4068 2022-06-27 Joel Brobecker <brobecker (a] adacore.com> 4069 Jonathan Wakely <jwakely (a] redhat.com> 4070 4071 * testsuite/util/testsuite_fs.h (__gnu_test::nonexistent_path): 4072 Always include a counter in the filename returned. 4073 4074 2022-06-27 Jonathan Wakely <jwakely (a] redhat.com> 4075 4076 * include/bits/move_only_function.h (_Never_valueless_alt): 4077 Define partial specialization for std::move_only_function. 4078 4079 2022-06-27 Jonathan Wakely <jwakely (a] redhat.com> 4080 4081 * include/std/variant (_Build_FUN::_S_fun): Define fallback case 4082 as deleted. 4083 (__accepted_index, _Extra_visit_slot_needed): Replace class 4084 templates with variable templates. 4085 4086 2022-06-27 Jonathan Wakely <jwakely (a] redhat.com> 4087 4088 * include/bits/fs_path.h (__is_path_iter_src): Replace class 4089 template with variable template. 4090 4091 2022-06-27 Jonathan Wakely <jwakely (a] redhat.com> 4092 4093 * include/bits/chrono.h (is_clock_v): Define to false. 4094 (is_clock_v<T>): Define partial specialization for true cases. 4095 (is_clock): Define in terms of is_clock_v. 4096 4097 2022-06-24 Xi Ruoyao <xry111 (a] xry111.site> 4098 4099 * scripts/extract_symvers.in: Use grep -E instead of egrep. 4100 * scripts/run_doxygen: Likewise. 4101 4102 2022-06-24 Alexandre Oliva <oliva (a] adacore.com> 4103 4104 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for 4105 openat. 4106 * configure, config.h.in: Rebuilt. 4107 * src/filesystem/dir-common.h (openat): Use ::openat if 4108 _GLIBCXX_HAVE_OPENAT. 4109 * src/filesystem/dir.cc (dir_and_pathname): Use dirfd if 4110 _GLIBCXX_HAVE_OPENAT. 4111 4112 2022-06-24 Alexandre Oliva <oliva (a] adacore.com> 4113 4114 * testsuite/27_io/filesystem/operations/rename.cc: xfail on 4115 rtems. 4116 * testsuite/experimental/filesystem/operations/rename.cc: 4117 Likewise. 4118 4119 2022-06-24 Alexandre Oliva <oliva (a] adacore.com> 4120 4121 * testsuite/util/testsuite_fs.h (NO_LAST_WRITE_TIME): Define 4122 when appropriate. 4123 * testsuite/lib/libstdc++.exp 4124 (check_v3_target_fs_last_write_time): New. 4125 * testsuite/lib/dg-options.exp (dg-require-target-fs-lwt): 4126 New. 4127 * testsuite/27_io/filesystem/operations/last_write_time.cc: 4128 Skip the test if the features are unavailable. 4129 * testsuite/experimental/filesystem/operations/last_write_time.cc: 4130 Likewise. 4131 4132 2022-06-24 Alexandre Oliva <oliva (a] adacore.com> 4133 4134 * testsuite/util/testsuite_fs.h (NO_SPACE): Define if 4135 appropriate. 4136 * testsuite/lib/libstdc++.exp (check_v3_target_fs_space): New. 4137 * testsuite/lib/dg-options.exp (dg-require-target-fs-space): 4138 New. 4139 * testsuite/27_io/filesystem/operations/space.cc: Require 4140 target-fs-space. 4141 * testsuite/experimental/filesystem/operations/space.cc: 4142 Likewise. 4143 4144 2022-06-24 Alexandre Oliva <oliva (a] adacore.com> 4145 4146 * testsuite/util/testsuite_fs.h (NO_SYMLINKS): Define on 4147 mingw and when create_symlink is a dummy. 4148 * testsuite/27_io/filesystem/operations/symlink_status.cc: 4149 Drop mingw xfail. 4150 (test01, test02): Don't create symlinks when NO_SYMLINKS is 4151 defined. 4152 * testsuite/27_io/filesystem/operations/canonical.cc (test03): 4153 Likewise. 4154 * testsuite/27_io/filesystem/operations/copy.cc (test02): 4155 Likewise. 4156 * testsuite/27_io/filesystem/operations/create_directories.cc 4157 (test04): Likewise. 4158 * testsuite/27_io/filesystem/operations/create_directory.cc 4159 (test01): Likewise. 4160 * testsuite/27_io/filesystem/operations/permissions.cc 4161 (test03, test04): Likewise. 4162 * testsuite/27_io/filesystem/operations/remove.cc (test01): 4163 Likewise. 4164 * testsuite/27_io/filesystem/operations/remove_all.cc (test01): 4165 Likewise. 4166 * testsuite/27_io/filesystem/operations/rename.cc 4167 (test_symlinks): Likewise. 4168 * testsuite/27_io/filesystem/operations/weakly_canonical.cc 4169 (test01): Likewise. 4170 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc 4171 (test06): Likewise. 4172 * testsuite/experimental/filesystem/operations/copy.cc 4173 (test01): Likewise. 4174 * testsuite/experimental/filesystem/operations/create_directories.cc 4175 (test04): Likewise. 4176 * testsuite/experimental/filesystem/operations/create_directory.cc 4177 (test01): Likewise. 4178 * testsuite/experimental/filesystem/operations/permissions.cc 4179 (test03, test04): Likewise. 4180 * testsuite/experimental/filesystem/operations/remove.cc 4181 (test01): Likewise. 4182 * testsuite/experimental/filesystem/operations/remove_all.cc 4183 (test01): Likewise. 4184 * testsuite/experimental/filesystem/operations/rename.cc 4185 (test01): Likewise. 4186 * testsuite/lib/libstdc++.exp 4187 (v3_check_preprocessor_condition): Add optional inc parameter. 4188 Add it to the test program after include bits/c++config.h. 4189 (check_v3_target_fs_symlinks): New. 4190 * testsuite/lib/dg-options.exp 4191 (dg-require-target-fs-symlinks): New. 4192 * testsuite/27_io/filesystem/operations/read_symlink.cc: 4193 Replace mingw xfail with require target-fs-symlinks. 4194 * testsuite/experimental/filesystem/operations/read_symlink.cc: 4195 Likewise. 4196 4197 2022-06-24 Alexandre Oliva <oliva (a] adacore.com> 4198 4199 * testsuite/27_io/filesystem/operations/copy.cc (test02): 4200 Select TO after creating FROM. 4201 (test03, test04): Likewise. 4202 * testsuite/experimental/filesystem/operations/copy.cc 4203 (test02, test03, test04): Likewise. 4204 4205 2022-06-24 Alexandre Oliva <oliva (a] adacore.com> 4206 4207 * testsuite/30_threads/thread/native_handle/cancel.cc: Add an 4208 explicit cancellation point in case sleep_for lacks one. 4209 4210 2022-06-24 Alexandre Oliva <oliva (a] adacore.com> 4211 4212 * testsuite/lib/dg-options.exp (add_options_for_net_ts): Add 4213 -lbsd for RTEMS targets. 4214 4215 2022-06-23 Jonathan Wakely <jwakely (a] redhat.com> 4216 4217 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use 4218 rmdir to remove directories. 4219 * testsuite/experimental/filesystem/iterators/error_reporting.cc: 4220 Likewise. 4221 4222 2022-06-23 Jonathan Wakely <jwakely (a] redhat.com> 4223 4224 * testsuite/26_numerics/random/random_device/entropy.cc: Use 4225 numeric_limits<unsigned>::digits. 4226 4227 2022-06-22 Alexandre Oliva <oliva (a] adacore.com> 4228 4229 * libsupc++/eh_globals.cc [!_GLIBCXX_HAVE_TLS] 4230 (__eh_globals_init::~__eh_globals_init): Clear _S_init first. 4231 4232 2022-06-22 Alexandre Oliva <oliva (a] adacore.com> 4233 4234 * testsuite/30_threads/this_thread/60421.cc (test02): Call 4235 sched_yield. 4236 4237 2022-06-22 Alexandre Oliva <oliva (a] adacore.com> 4238 4239 * testsuite/20_util/to_chars/long_double.cc: Require cmath. 4240 4241 2022-06-22 Alexandre Oliva <oliva (a] adacore.com> 4242 4243 * testsuite/23_containers/bitset/cons/dr1325-2.cc: Work around 4244 global struct bitset. 4245 * testsuite/23_containers/bitset/ext/15361.cc: Likewise. 4246 * testsuite/23_containers/bitset/input/1.cc: Likewise. 4247 * testsuite/23_containers/bitset/to_string/1.cc: Likewise. 4248 * testsuite/23_containers/bitset/to_string/dr396.cc: Likewise. 4249 4250 2022-06-17 Jonathan Wakely <jwakely (a] redhat.com> 4251 4252 * testsuite/21_strings/basic_string/cons/char/105995.cc: Add 4253 missing #include. 4254 4255 2022-06-16 Jonathan Wakely <jwakely (a] redhat.com> 4256 4257 PR libstdc++/105995 4258 * include/bits/basic_string.h (_M_use_local_data): Initialize 4259 the entire SSO buffer. 4260 * testsuite/21_strings/basic_string/cons/char/105995.cc: New test. 4261 4262 2022-06-16 Jonathan Wakely <jwakely (a] redhat.com> 4263 4264 PR libstdc++/101482 4265 * include/ext/vstring.h (operator==): Always check lengths 4266 before comparing. 4267 4268 2022-06-15 Franois Dumont <fdumont (a] gcc.gnu.org> 4269 4270 PR libstdc++/105717 4271 * include/bits/hashtable_policy.h (_ConvertToValueType): New. 4272 * include/bits/hashtable.h (_Hashtable<>::_M_insert_unique_aux): New. 4273 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, true_type)): Use latters. 4274 (_Hashtable<>::_M_insert(_Arg&&, const _NodeGenerator&, false_type)): Likewise. 4275 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&, 4276 const allocator_type&, true_type)): Use this.insert range. 4277 (_Hashtable(_InputIterator, _InputIterator, size_type, const _Hash&, const _Equal&, 4278 const allocator_type&, false_type)): Use _M_insert. 4279 * testsuite/23_containers/unordered_map/cons/56112.cc: Check how many times conversion 4280 is done. 4281 * testsuite/23_containers/unordered_map/insert/105717.cc: New test. 4282 * testsuite/23_containers/unordered_set/insert/105717.cc: New test. 4283 4284 2022-06-14 Jonathan Wakely <jwakely (a] redhat.com> 4285 4286 PR libstdc++/62187 4287 * include/bits/basic_string.h (operator==): Always compare 4288 lengths before checking string contents. 4289 [!__cpp_lib_three_way_comparison] (operator==, operator!=): 4290 Reorder arguments. 4291 4292 2022-06-14 Jonathan Wakely <jwakely (a] redhat.com> 4293 4294 PR libstdc++/59048 4295 * include/bits/basic_string.h (compare): Define inline. 4296 * include/bits/basic_string.tcc (compare): Remove out-of-line 4297 definitions. 4298 * include/bits/cow_string.h (compare): Define inline. 4299 * testsuite/21_strings/basic_string/operations/compare/char/3.cc: 4300 New test. 4301 4302 2022-06-14 Jonathan Wakely <jwakely (a] redhat.com> 4303 4304 * include/bits/new_allocator.h: Fix indentation. 4305 * include/ext/malloc_allocator.h: Likewise. 4306 4307 2022-06-14 Jonathan Wakely <jwakely (a] redhat.com> 4308 4309 PR libstdc++/105957 4310 * include/bits/allocator.h (allocator::allocate): Check for 4311 overflow in constexpr allocation. 4312 * testsuite/20_util/allocator/105975.cc: New test. 4313 4314 2022-06-13 Mark Mentovai <mark (a] mentovai.com> 4315 4316 * include/experimental/bits/fs_path.h (__detail::__null_terminated): 4317 Rename to __nul_terminated to avoid colliding with a macro in 4318 Apple's SDK. 4319 4320 2022-06-13 Jonathan Wakely <jwakely (a] redhat.com> 4321 4322 * include/std/atomic (__atomic_val_t): Use __type_identity_t 4323 instead of atomic<T>::value_type, as per LWG 3220. 4324 * testsuite/29_atomics/atomic/lwg3220.cc: New test. 4325 4326 2022-06-10 Jonathan Wakely <jwakely (a] redhat.com> 4327 4328 PR libstdc++/105844 4329 * include/experimental/numeric (experimental::gcd): Simplify 4330 assertions. Use __abs_r instead of __absu. 4331 (experimental::lcm): Likewise. Remove use of __detail::__lcm so 4332 overflow can be detected. 4333 * include/std/numeric (__detail::__absu): Rename to __abs_r and 4334 change to allow signed result type, so overflow can be detected. 4335 (__detail::__lcm): Remove. 4336 (gcd): Simplify assertions. Use __abs_r instead of __absu. 4337 (lcm): Likewise. Remove use of __detail::__lcm so overflow can 4338 be detected. 4339 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error lines. 4340 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise. 4341 * testsuite/26_numerics/gcd/105844.cc: New test. 4342 * testsuite/26_numerics/lcm/105844.cc: New test. 4343 4344 2022-06-10 Jonathan Wakely <jwakely (a] redhat.com> 4345 4346 PR libstdc++/105880 4347 * libsupc++/eh_globals.cc (eh_globals): Ensure constant init and 4348 prevent destruction during termination. 4349 (__eh_globals_init::_M_init): Replace with static member _S_init. 4350 (__cxxabiv1::__cxa_get_globals_fast): Update. 4351 (__cxxabiv1::__cxa_get_globals): Likewise. 4352 4353 2022-06-10 Jonathan Wakely <jwakely (a] redhat.com> 4354 4355 * include/bits/basic_string.h (__hash_str_base): New class 4356 template. 4357 (hash<basic_string<C, char_traits<C>, A>>): Define partial 4358 specialization for each of the standard character types. 4359 (hash<string>, hash<wstring>, hash<u8string>, hash<u16string>) 4360 (hash<u32string>): Remove explicit specializations. 4361 * include/std/string (__hash_string_base): Remove class 4362 template. 4363 (hash<pmr::string>, hash<pmr::wstring>, hash<pmr::u8string>) 4364 (hash<pmr::u16string>, hash<pmr::u32string>): Remove explicit 4365 specializations. 4366 * testsuite/21_strings/basic_string/hash/hash.cc: Test with 4367 custom allocators. 4368 * testsuite/21_strings/basic_string/hash/hash_char8_t.cc: 4369 Likewise. 4370 4371 2022-05-27 Jonathan Wakely <jwakely (a] redhat.com> 4372 4373 PR libstdc++/105671 4374 * include/std/sstream (basic_stringbuf::_M_high_mark): Add 4375 always_inline attribute. 4376 4377 2022-05-26 Jonathan Wakely <jwakely (a] redhat.com> 4378 4379 PR libstdc++/105681 4380 * include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp: 4381 Limit ga_sizes array to values that fit in size_t. 4382 * include/ext/random [__SIZE_WIDTH < 32] (sfmt86243) 4383 (sfmt86243_64, sfmt132049, sfmt132049_64, sfmt216091) 4384 (sfmt216091_64): Do not declare. 4385 4386 2022-05-26 Jonathan Wakely <jwakely (a] redhat.com> 4387 4388 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Make 4389 lookup for ios_errc and future_errc check versioned namespace. 4390 (StdAtomicPrinter): Strip versioned namespace from typename. 4391 4392 2022-05-26 Jonathan Wakely <jwakely (a] redhat.com> 4393 4394 * src/c++11/Makefile.am: Add new source file. 4395 * src/c++11/Makefile.in: Regenerate. 4396 * src/c++11/cxx11-ios_failure.cc (iostream_category): 4397 Move to ... 4398 * src/c++11/ios_errcat.cc: New file. 4399 * testsuite/27_io/ios_base/failure/error_code.cc: Check that 4400 std::iostream_category() is defined and used for std::io_errc. 4401 4402 2022-05-26 Jonathan Wakely <jwakely (a] redhat.com> 4403 4404 * include/bits/stl_iterator.h (counted_iterator::operator++(int)): 4405 Add 'constexpr' as per LWG 3643. 4406 * testsuite/24_iterators/counted_iterator/lwg3643.cc: New test. 4407 4408 2022-05-26 Jonathan Wakely <jwakely (a] redhat.com> 4409 4410 * include/bits/functional_hash.h (__is_fast_hash): Add doxygen 4411 comment. 4412 * include/bits/hashtable.h: Do not include <bits/stl_function.h> 4413 here. 4414 * include/bits/hashtable_policy.h: Include <bits/stl_pair.h> and 4415 <bits/functional_hash.h>. 4416 * include/bits/unordered_map.h: Include required headers. 4417 * include/bits/unordered_set.h: Likewise. 4418 * include/std/unordered_map: Do not include headers for indirect 4419 dependencies. 4420 * include/std/unordered_set: Likewise. 4421 4422 2022-05-26 Jonathan Wakely <jwakely (a] redhat.com> 4423 4424 * include/bits/ranges_algobase.h: Do not include 4425 <bits/stl_iterator_base_types.h>. 4426 * include/std/string: Likewise. 4427 * include/std/variant: Likewise. 4428 4429 2022-05-26 Nathan Sidwell <nathan (a] acm.org> 4430 4431 * include/bits/hashtable.h: Include required headers. 4432 * include/bits/hashtable_policy.h: Likewise. 4433 * include/bits/stl_heap.h: Likewise. 4434 * include/bits/stl_iterator_base_funcs.h: Likewise. 4435 4436 2022-05-26 Franois Dumont <fdumont (a] gcc.gnu.org> 4437 4438 * python/libstdcxx/v6/printers.py (StdSpanPrinter.__init__): 4439 Strip typename from version namespace. 4440 4441 2022-05-26 Jonathan Wakely <jwakely (a] redhat.com> 4442 4443 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Strip 4444 versioned namespace from the template argument too. 4445 4446 2022-05-26 Jonathan Wakely <jwakely (a] redhat.com> 4447 4448 * testsuite/21_strings/basic_string/modifiers/pop_back/char/1.cc: 4449 Moved to... 4450 * testsuite/21_strings/basic_string/modifiers/pop_back/char.cc: 4451 ...here. 4452 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t/1.cc: 4453 Moved to... 4454 * testsuite/21_strings/basic_string/modifiers/pop_back/wchar_t.cc: 4455 ...here. 4456 * testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc: 4457 Moved to... 4458 * testsuite/21_strings/basic_string/modifiers/swap/constexpr-wchar_t.cc: 4459 ...here. 4460 * testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc: 4461 Moved to... 4462 * testsuite/21_strings/basic_string/modifiers/swap/constexpr.cc: 4463 ...here. 4464 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: 4465 Moved to... 4466 * testsuite/21_strings/basic_string/operations/contains/char.cc: 4467 ...here. 4468 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: 4469 Moved to... 4470 * testsuite/21_strings/basic_string/operations/contains/wchar_t.cc: 4471 ...here. 4472 * testsuite/21_strings/basic_string/operations/data/char/1.cc: 4473 Moved to... 4474 * testsuite/21_strings/basic_string/operations/data/char.cc: 4475 ...here. 4476 * testsuite/21_strings/basic_string/operations/data/wchar_t/1.cc: 4477 Moved to... 4478 * testsuite/21_strings/basic_string/operations/data/wchar_t.cc: 4479 ...here. 4480 * testsuite/21_strings/basic_string/operations/ends_with/char/1.cc: 4481 Moved to... 4482 * testsuite/21_strings/basic_string/operations/ends_with/char.cc: 4483 ...here. 4484 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t/1.cc: 4485 Moved to... 4486 * testsuite/21_strings/basic_string/operations/ends_with/wchar_t.cc: 4487 ...here. 4488 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc: 4489 Moved to... 4490 * testsuite/21_strings/basic_string/operations/starts_with/char.cc: 4491 ...here. 4492 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc: 4493 Moved to... 4494 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t.cc: 4495 ...here. 4496 * testsuite/21_strings/basic_string/operations/substr/char/1.cc: 4497 Moved to... 4498 * testsuite/21_strings/basic_string/operations/substr/char.cc: 4499 ...here. 4500 * testsuite/21_strings/basic_string/operations/substr/wchar_t/1.cc: 4501 Moved to... 4502 * testsuite/21_strings/basic_string/operations/substr/wchar_t.cc: 4503 ...here. 4504 * testsuite/21_strings/basic_string/range_access/char/1.cc: 4505 Moved to... 4506 * testsuite/21_strings/basic_string/range_access/char.cc: 4507 ...here. 4508 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc: 4509 Moved to... 4510 * testsuite/21_strings/basic_string/range_access/wchar_t.cc: 4511 ...here. 4512 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc: 4513 Moved to... 4514 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char.cc: 4515 ...here. 4516 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc: 4517 Moved to... 4518 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t.cc: 4519 ...here. 4520 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc: 4521 Moved to... 4522 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char.cc: 4523 ...here. 4524 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc: 4525 Moved to... 4526 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t.cc: 4527 ...here. 4528 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc: 4529 Moved to... 4530 * testsuite/21_strings/basic_string_view/modifiers/swap/char.cc: 4531 ...here. 4532 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc: 4533 Moved to... 4534 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t.cc: 4535 ...here. 4536 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: 4537 Moved to... 4538 * testsuite/21_strings/basic_string_view/operations/contains/char.cc: 4539 ...here. 4540 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: 4541 Moved to... 4542 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t.cc: 4543 ...here. 4544 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc: 4545 Moved to... 4546 * testsuite/21_strings/basic_string_view/operations/data/char.cc: 4547 ...here. 4548 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc: 4549 Moved to... 4550 * testsuite/21_strings/basic_string_view/operations/data/wchar_t.cc: 4551 ...here. 4552 * testsuite/21_strings/basic_string_view/operations/ends_with/char/1.cc: 4553 Moved to... 4554 * testsuite/21_strings/basic_string_view/operations/ends_with/char.cc: 4555 ...here. 4556 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t/1.cc: 4557 Moved to... 4558 * testsuite/21_strings/basic_string_view/operations/ends_with/wchar_t.cc: 4559 ...here. 4560 * testsuite/21_strings/basic_string_view/operations/starts_with/char/1.cc: 4561 Moved to... 4562 * testsuite/21_strings/basic_string_view/operations/starts_with/char.cc: 4563 ...here. 4564 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t/1.cc: 4565 Moved to... 4566 * testsuite/21_strings/basic_string_view/operations/starts_with/wchar_t.cc: 4567 ...here. 4568 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc: 4569 Moved to... 4570 * testsuite/21_strings/basic_string_view/operations/substr/char.cc: 4571 ...here. 4572 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc: 4573 Moved to... 4574 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t.cc: 4575 ...here. 4576 * testsuite/21_strings/basic_string_view/range_access/char/1.cc: 4577 Moved to... 4578 * testsuite/21_strings/basic_string_view/range_access/char.cc: 4579 ...here. 4580 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc: 4581 Moved to... 4582 * testsuite/21_strings/basic_string_view/range_access/wchar_t.cc: 4583 ...here. 4584 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc: 4585 Moved to... 4586 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char.cc: 4587 ...here. 4588 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc: 4589 Moved to... 4590 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t.cc: 4591 ...here. 4592 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc: 4593 Moved to... 4594 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t.cc: 4595 ...here. 4596 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc: 4597 Moved to... 4598 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t.cc: 4599 ...here. 4600 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/1.cc: 4601 Moved to... 4602 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/int.cc: 4603 ...here. 4604 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc: 4605 Moved to... 4606 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t.cc: 4607 ...here. 4608 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc: 4609 Moved to... 4610 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char.cc: 4611 ...here. 4612 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc: 4613 Moved to... 4614 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t.cc: 4615 ...here. 4616 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc: 4617 Moved to... 4618 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t.cc: 4619 ...here. 4620 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc: 4621 Moved to... 4622 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t.cc: 4623 ...here. 4624 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc: 4625 Moved to... 4626 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/int.cc: 4627 ...here. 4628 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc: 4629 Moved to... 4630 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t.cc: 4631 ...here. 4632 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char/1.cc: 4633 Moved to... 4634 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char.cc: 4635 ...here. 4636 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t/1.cc: 4637 Moved to... 4638 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char16_t.cc: 4639 ...here. 4640 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t/1.cc: 4641 Moved to... 4642 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char32_t.cc: 4643 ...here. 4644 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t/1.cc: 4645 Moved to... 4646 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/char8_t.cc: 4647 ...here. 4648 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short/1.cc: 4649 Moved to... 4650 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/short.cc: 4651 ...here. 4652 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t/1.cc: 4653 Moved to... 4654 * testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t.cc: 4655 ...here. 4656 4657 2022-05-26 Jonathan Wakely <jwakely (a] redhat.com> 4658 4659 * testsuite/20_util/duration/requirements/explicit_instantiation/explicit_instantiation.cc: 4660 Moved to... 4661 * testsuite/20_util/duration/requirements/explicit_instantiation.cc: ...here. 4662 * testsuite/20_util/time_point/requirements/explicit_instantiation/explicit_instantiation.cc: 4663 Moved to... 4664 * testsuite/20_util/time_point/requirements/explicit_instantiation.cc: ...here. 4665 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation/explicit_instantiation.cc: 4666 Moved to... 4667 * testsuite/20_util/unique_ptr/requirements/explicit_instantiation.cc: ...here. 4668 4669 2022-05-25 Jason Merrill <jason (a] redhat.com> 4670 4671 * testsuite/20_util/function_objects/constexpr_searcher.cc: Add 4672 constexpr. 4673 4674 2022-05-20 Jonathan Wakely <jwakely (a] redhat.com> 4675 4676 * testsuite/26_numerics/random/bernoulli_distribution/operators/values.cc: 4677 Run fewer iterations for simulator targets. 4678 * testsuite/26_numerics/random/binomial_distribution/operators/values.cc: 4679 Likewise. 4680 * testsuite/26_numerics/random/discrete_distribution/operators/values.cc: 4681 Likewise. 4682 * testsuite/26_numerics/random/geometric_distribution/operators/values.cc: 4683 Likewise. 4684 * testsuite/26_numerics/random/negative_binomial_distribution/operators/values.cc: 4685 Likewise. 4686 * testsuite/26_numerics/random/poisson_distribution/operators/values.cc: 4687 Likewise. 4688 * testsuite/26_numerics/random/uniform_int_distribution/operators/values.cc: 4689 Likewise. 4690 4691 2022-05-19 Jonathan Wakely <jwakely (a] redhat.com> 4692 4693 * include/bits/char_traits.h: Only include <cstdint> when 4694 necessary. 4695 * include/std/stacktrace: Use __UINTPTR_TYPE__ instead of 4696 uintptr_t. 4697 * src/c++11/cow-stdexcept.cc: Include <stdint.h>. 4698 * src/c++17/floating_to_chars.cc: Likewise. 4699 * testsuite/20_util/assume_aligned/1.cc: Include <cstdint>. 4700 * testsuite/20_util/assume_aligned/3.cc: Likewise. 4701 * testsuite/20_util/shared_ptr/creation/array.cc: Likewise. 4702 4703 2022-05-19 Jonathan Wakely <jwakely (a] redhat.com> 4704 4705 * include/bits/basic_string.h: Do not include <ext/atomicity.h> 4706 here. 4707 * include/bits/cow_string.h: Include it here. 4708 4709 2022-05-19 Jonathan Wakely <jwakely (a] redhat.com> 4710 4711 * include/Makefile.am: Add new header. 4712 * include/Makefile.in: Regenerate. 4713 * include/bits/memory_resource.h: New file. 4714 * include/std/deque: Include <bits/memory_resource.h>. 4715 * include/std/forward_list: Likewise. 4716 * include/std/list: Likewise. 4717 * include/std/map: Likewise. 4718 * include/std/memory_resource (pmr::memory_resource): Move to 4719 new <bits/memory_resource.h> header. 4720 (pmr::polymorphic_allocator): Likewise. 4721 * include/std/regex: Likewise. 4722 * include/std/set: Likewise. 4723 * include/std/stacktrace: Likewise. 4724 * include/std/string: Likewise. 4725 * include/std/unordered_map: Likewise. 4726 * include/std/unordered_set: Likewise. 4727 * include/std/vector: Likewise. 4728 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: 4729 Remove <memory_resource> header and check construction. 4730 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise. 4731 * testsuite/23_containers/forward_list/pmr_typedefs.cc: 4732 Likewise. 4733 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise. 4734 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise. 4735 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise. 4736 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise. 4737 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise. 4738 * testsuite/23_containers/unordered_map/pmr_typedefs.cc: 4739 Likewise. 4740 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc: 4741 Likewise. 4742 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc: 4743 Likewise. 4744 * testsuite/23_containers/unordered_set/pmr_typedefs.cc: 4745 Likewise. 4746 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise. 4747 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise. 4748 4749 2022-05-19 Jonathan Wakely <jwakely (a] redhat.com> 4750 4751 * include/std/memory_resource (polymorphic_allocator): Add 4752 non-template equality operator, as proposed for LWG 3683. 4753 * testsuite/20_util/polymorphic_allocator/lwg3683.cc: New test. 4754 4755 2022-05-17 Jonathan Wakely <jwakely (a] redhat.com> 4756 4757 * src/c++17/memory_resource.cc (set_default_resource): Use 4758 memory_order_acq_rel. 4759 (get_default_resource): Use memory_order_acquire. 4760 4761 2022-05-17 Jonathan Wakely <jwakely (a] redhat.com> 4762 4763 * include/std/memory_resource (new_delete_resource): Add 4764 nodiscard, returns_nonnull and const attributes. 4765 (null_memory_resource): Likewise. 4766 (set_default_resource, get_default_resource): Add returns_nonnull 4767 attribute. 4768 (memory_resource::is_equal): Add nodiscard attribute. 4769 (operator==, operator!=): Likewise. 4770 4771 2022-05-17 Jonathan Wakely <jwakely (a] redhat.com> 4772 4773 * include/bits/ios_base.h (io_category): Add const and nodiscard 4774 attributes. 4775 (make_error_code, make_error_condition): Add nodiscard. 4776 * include/std/future (future_category): Add const and nodiscard. 4777 (make_error_code, make_error_condition): Add nodiscard. 4778 * include/std/system_error (generic_category system_category): 4779 Add nodiscard. Replace _GLIBCXX_CONST with C++11 attribute. 4780 (error_code::value, error_code::category, error_code::operator bool) 4781 (error_condition::value, error_condition::category) 4782 (error_condition::operator bool, make_error_code) 4783 (make_error_condition, operator==, operator!=, operator<=>): Add 4784 nodiscard. 4785 4786 2022-05-17 Jonathan Wakely <jwakely (a] redhat.com> 4787 4788 * testsuite/20_util/expected/synopsis.cc: Skip for versioned 4789 namespace. 4790 * testsuite/27_io/headers/iosfwd/synopsis.cc: Likewise. 4791 4792 2022-05-17 Jonathan Wakely <jwakely (a] redhat.com> 4793 4794 * src/Makefile.am [ENABLE_SYMVERS_GNU_NAMESPACE] (cxx11_sources): 4795 Do not build the compatibility*-c++0x.cc objects. 4796 * src/Makefile.in: Regenerate. 4797 * src/c++11/compatibility-c++0x.cc [_GLIBCXX_INLINE_VERSION]: 4798 Refuse to build for the versioned namespace. 4799 * src/c++11/compatibility-chrono.cc: Likewise. 4800 * src/c++11/compatibility-condvar.cc: Likewise. 4801 * src/c++11/compatibility-thread-c++0x.cc: Likewise. 4802 * src/c++11/chrono.cc (system_clock, steady_clock): 4803 Use macros to define in inline namespace _V2, matching the 4804 declarations in <system_error>. 4805 * src/c++11/system_error.cc (system_category, generic_category): 4806 Likewise. 4807 4808 2022-05-16 Jonathan Wakely <jwakely (a] redhat.com> 4809 4810 * doc/xml/manual/prerequisites.xml: Fix attributes for external 4811 hyperlink. 4812 * doc/html/manual/setup.html: Regenerate. 4813 4814 2022-05-16 Jonathan Wakely <jwakely (a] redhat.com> 4815 4816 * doc/xml/manual/status_cxx2023.xml: Update with gcc-12 support. 4817 * doc/html/*: Regenerate. 4818 4819 2022-05-16 Jonathan Wakely <jwakely (a] redhat.com> 4820 4821 * doc/xml/manual/intro.xml: Include new chapter. 4822 * doc/xml/manual/status_cxx2020.xml: Tweak release numbers. 4823 * doc/xml/manual/status_cxx2023.xml: New file. 4824 * doc/html/*: Regenerate. 4825 4826 2022-05-16 Jonathan Wakely <jwakely (a] redhat.com> 4827 4828 * doc/html/manual/status.html: Regenerate. 4829 * doc/xml/manual/status_cxx2020.xml: Fix supported version for 4830 C++20 bit operations. 4831 4832 2022-05-13 Jonathan Wakely <jwakely (a] redhat.com> 4833 4834 * include/bits/std_thread.h (thread::_State, thread::_State_ptr): 4835 Declare as private unless _GLIBCXX_THREAD_IMPL is defined. 4836 * src/c++11/thread.cc (_GLIBCXX_THREAD_IMPL): Define. 4837 4838 2022-05-13 Jonathan Wakely <jwakely (a] redhat.com> 4839 4840 * include/std/future (launch): Make operators noexcept. 4841 4842 2022-05-13 Jonathan Wakely <jwakely (a] redhat.com> 4843 4844 * doc/doxygen/user.cfg.in (PREDEFINED): Replace __exception_ptr 4845 with "__unspecified__". 4846 * libsupc++/exception_ptr.h: Improve doxygen docs. 4847 (__exception_ptr::swap): Also declare in namespace std. 4848 4849 2022-05-13 Jonathan Wakely <jwakely (a] redhat.com> 4850 4851 * libsupc++/nested_exception.h (throw_with_nested) [C++17]: Use 4852 if-constexpr instead of tag dispatching. 4853 (rethrow_if_nested) [C++17]: Likewise. 4854 (rethrow_if_nested) [!__cpp_rtti]: Do not use dynamic_cast if it 4855 would require RTTI. 4856 * testsuite/18_support/nested_exception/rethrow_if_nested-term.cc: 4857 New test. 4858 4859 2022-05-13 Jonathan Wakely <jwakely (a] redhat.com> 4860 4861 * doc/doxygen/user.cfg.in (PREDEFINED): Define 4862 _GTHREAD_USE_MUTEX_TIMEDLOCK macro. 4863 * include/bits/std_mutex.h (mutex, lock_guard): Use @since and 4864 @headerfile. 4865 * include/bits/unique_lock.h (unique_lock): Likewise. 4866 * include/std/mutex (recursive_mutex, timed_mutex) 4867 (recursive_timed_mutex, scoped_lock): Likewise. 4868 4869 2022-05-13 Jonathan Wakely <jwakely (a] redhat.com> 4870 4871 * doc/doxygen/user.cfg.in (PREDEFINED): Define 4872 _GLIBCXX23_CONSTEXPR macro. 4873 * include/backward/auto_ptr.h (auto_ptr): Use @deprecated. 4874 * include/bits/unique_ptr.h (default_delete): Use @since and 4875 @headerfile. 4876 * include/std/scoped_allocator: Remove @ingroup from @file 4877 block. 4878 4879 2022-05-13 Jonathan Wakely <jwakely (a] redhat.com> 4880 4881 * include/bits/std_thread.h (thread, thread::id): Improve 4882 doxygen docs. 4883 * include/std/future: Likewise. 4884 * include/std/thread (jthread): Likewise. 4885 4886 2022-05-13 Jonathan Wakely <jwakely (a] redhat.com> 4887 4888 * include/bits/ostream_insert.h: Mark helper functions as 4889 undocumented by Doxygen. 4890 * include/bits/stl_algo.h: Use markdown for formatting and mark 4891 helper functions as undocumented. 4892 * include/bits/stl_numeric.h: Likewise. 4893 * include/bits/stl_pair.h (pair): Add @headerfile. 4894 4895 2022-05-13 Jonathan Wakely <jwakely (a] redhat.com> 4896 4897 * doc/doxygen/user.cfg.in (PREDEFINED): Define __allocator_base 4898 so that Doxygen shows the right base-class for std::allocator. 4899 * include/bits/alloc_traits.h: Improve doxygen docs. 4900 * include/bits/allocator.h: Likewise. 4901 * include/bits/new_allocator.h: Likewise. 4902 * include/ext/new_allocator.h: Likewise. 4903 4904 2022-05-13 Jonathan Wakely <jwakely (a] redhat.com> 4905 4906 * doc/doxygen/user.cfg.in (PREDEFINED): Define macro 4907 _GLIBCXX_DOXYGEN_ONLY to expand its argument. 4908 * include/bits/c++config (_GLIBCXX_DOXYGEN_ONLY): Define. 4909 * include/bits/regex.h: Improve doxygen docs. 4910 * include/bits/regex_constants.h: Likewise. 4911 * include/bits/regex_error.h: Likewise. 4912 4913 2022-05-13 Jonathan Wakely <jwakely (a] redhat.com> 4914 4915 * include/std/atomic: Suppress doxygen docs for 4916 implementation details. 4917 * include/bits/atomic_base.h: Likewise. 4918 * include/bits/shared_ptr_atomic.h: Use markdown. Fix grouping 4919 so that std::atomic is not added to the pointer abstractions 4920 group. 4921 4922 2022-05-13 Jonathan Wakely <jwakely (a] redhat.com> 4923 4924 * include/std/system_error: Improve doxygen comments. 4925 4926 2022-05-13 Jonathan Wakely <jwakely (a] redhat.com> 4927 4928 * include/bits/ptr_traits.h: Add some doxygen comments. 4929 4930 2022-05-13 Jonathan Wakely <jwakely (a] redhat.com> 4931 4932 * doc/doxygen/user.cfg.in (PREDEFINED): Expand new macros to 4933 nothing. 4934 * include/bits/c++config (_GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE) 4935 (_GLIBCXX_END_INLINE_ABI_NAMESPACE): Define new macros. 4936 * include/bits/algorithmfwd.h (_V2::__rotate): Use new macros 4937 for the namespace. 4938 * include/bits/chrono.h (chrono::_V2::system_clock): Likewise. 4939 * include/bits/stl_algo.h (_V2::__rotate): Likewise. 4940 * include/std/condition_variable (_V2::condition_variable_any): 4941 Likewise. 4942 * include/std/system_error (_V2::error_category): Likewise. 4943 4944 2022-05-13 Jonathan Wakely <jwakely (a] redhat.com> 4945 4946 * include/bits/mofunc_impl.h: Fix doxygen command. 4947 4948 2022-05-13 Jonathan Wakely <jwakely (a] redhat.com> 4949 4950 * doc/doxygen/user.cfg.in (GROUP_NESTED_COMPOUNDS): Set to NO. 4951 (CLASS_DIAGRAMS): Remove obsolete option. 4952 4953 2022-05-12 Jonathan Wakely <jwakely (a] redhat.com> 4954 4955 * config/locale/dragonfly/numeric_members.cc: Remove whitespace. 4956 * config/locale/gnu/numeric_members.cc: Likewise. 4957 * include/bits/locale_facets_nonio.h: Likewise. 4958 * libsupc++/typeinfo: Likewise. 4959 4960 2022-05-10 Jonathan Wakely <jwakely (a] redhat.com> 4961 4962 PR libstdc++/105284 4963 * include/std/iosfwd: Add declarations for <spanstream> class 4964 templates and typedefs. 4965 * include/std/spanstream (basic_spanbuf, basic_ispanstream) 4966 (basic_ospanstream, basic_spanstream): Remove default template 4967 arguments. 4968 * testsuite/27_io/headers/iosfwd/synopsis.cc: Add <spanstream> 4969 declarations. 4970 * testsuite/27_io/headers/iosfwd/types.cc: Check <spanstream> 4971 default arguments. 4972 4973 2022-05-10 Jonathan Wakely <jwakely (a] redhat.com> 4974 4975 PR libstdc++/105284 4976 * include/std/iosfwd: Add declarations for <synstream> class 4977 templates and typedefs. 4978 * include/std/syncstream (basic_syncbuf, basic_osyncstream): 4979 Remove default template arguments. 4980 * testsuite/27_io/headers/iosfwd/synopsis.cc: New test. 4981 * testsuite/27_io/headers/iosfwd/types.cc: New test. 4982 4983 2022-05-06 Jonathan Wakely <jwakely (a] redhat.com> 4984 4985 * include/bits/random.tcc (operator==): Only check 4986 normal_distribution::_M_saved_available once. 4987 * testsuite/26_numerics/random/normal_distribution/operators/equal.cc: 4988 Check equality after state changes. 4989 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error 4990 lineno. 4991 4992 2022-05-06 Jonathan Wakely <jwakely (a] redhat.com> 4993 4994 PR libstdc++/105502 4995 * include/bits/random.tcc 4996 (operator>>(basic_istream<C,T>&, normal_distribution<R>&)): 4997 Update state when __state_avail is false. 4998 * testsuite/26_numerics/random/normal_distribution/operators/serialize.cc: 4999 Check that deserialized object equals serialized one. 5000 5001 2022-05-06 Alexandre Oliva <oliva (a] adacore.com> 5002 5003 * include/experimental/bits/simd.h [__ALTIVEC__]: Require VSX 5004 for double, long long, and 64-bit long intrinsic types. 5005 [__ALTIVEC__] (__intrinsic_type): Mention 128-bit in 5006 preexisting long double diagnostic, adjust no-VSX double 5007 diagnostic to cover 64-bit long double as well. 5008 5009 2022-05-06 Jonathan Wakely <jwakely (a] redhat.com> 5010 5011 PR libstdc++/104731 5012 * testsuite/27_io/filesystem/iterators/error_reporting.cc: 5013 Use a trailing char array as storage for dirent::d_name. 5014 5015 2022-05-06 Jonathan Wakely <jwakely (a] redhat.com> 5016 5017 * include/std/stacktrace: Do not include <cxxabi.h>. 5018 (__cxa_demangle): Declare. 5019 5020 2022-05-06 Jonathan Wakely <jwakely (a] redhat.com> 5021 5022 PR libstdc++/99871 5023 * include/bits/specfun.h: Use visibility attribute on namespace, 5024 instead of pragma push/pop. 5025 * libsupc++/compare: Likewise. 5026 * libsupc++/exception: Likewise. 5027 * libsupc++/exception.h: Likewise. 5028 * libsupc++/exception_ptr.h: Likewise. 5029 * libsupc++/initializer_list: Likewise. 5030 * libsupc++/nested_exception.h: Likewise. 5031 5032 2022-05-06 Jonathan Wakely <jwakely (a] redhat.com> 5033 5034 * doc/xml/manual/test.xml: Remove requirement for copyright and 5035 GPL notice in tests. 5036 * doc/html/manual/test.html: Regenerate. 5037 5038 2022-05-05 Jonathan Wakely <jwakely (a] redhat.com> 5039 5040 * include/experimental/memory_resource [!__cpp_rtti] 5041 (__resource_adaptor_imp::do_is_equal): Do not use dynamic_cast 5042 when RTTI is disabled. 5043 * testsuite/17_intro/freestanding.cc: Require RTTI. 5044 * testsuite/18_support/exception/38732.cc: Likewise. 5045 * testsuite/18_support/exception_ptr/rethrow_exception.cc: 5046 Likewise. 5047 * testsuite/18_support/nested_exception/68139.cc: Likewise. 5048 * testsuite/18_support/nested_exception/rethrow_if_nested.cc: 5049 Likewise. 5050 * testsuite/18_support/type_info/103240.cc: Likewise. 5051 * testsuite/18_support/type_info/fundamental.cc: Likewise. 5052 * testsuite/18_support/type_info/hash_code.cc: Likewise. 5053 * testsuite/20_util/any/assign/emplace.cc: Likewise. 5054 * testsuite/20_util/any/cons/in_place.cc: Likewise. 5055 * testsuite/20_util/any/misc/any_cast.cc: Likewise. 5056 * testsuite/20_util/any/observers/type.cc: Likewise. 5057 * testsuite/20_util/function/1.cc: Likewise. 5058 * testsuite/20_util/function/2.cc: Likewise. 5059 * testsuite/20_util/function/3.cc: Likewise. 5060 * testsuite/20_util/function/4.cc: Likewise. 5061 * testsuite/20_util/function/5.cc: Likewise. 5062 * testsuite/20_util/function/6.cc: Likewise. 5063 * testsuite/20_util/function/7.cc: Likewise. 5064 * testsuite/20_util/function/8.cc: Likewise. 5065 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise. 5066 * testsuite/20_util/shared_ptr/casts/1.cc: Likewise. 5067 * testsuite/20_util/shared_ptr/casts/rval.cc: Likewise. 5068 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_2.cc: 5069 Likewise. 5070 * testsuite/20_util/shared_ptr/misc/get_deleter.cc: Likewise. 5071 * testsuite/20_util/typeindex/comparison_operators.cc: Likewise. 5072 * testsuite/20_util/typeindex/comparison_operators_c++20.cc: 5073 Likewise. 5074 * testsuite/20_util/typeindex/hash.cc: Likewise. 5075 * testsuite/20_util/typeindex/hash_code.cc: Likewise. 5076 * testsuite/20_util/typeindex/name.cc: Likewise. 5077 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise. 5078 * testsuite/22_locale/global_templates/standard_facet_hierarchies.cc: 5079 Likewise. 5080 * testsuite/22_locale/global_templates/user_facet_hierarchies.cc: 5081 Likewise. 5082 * testsuite/22_locale/locale/13630.cc: Check type without using 5083 RTTI. 5084 * testsuite/23_containers/array/requirements/non_default_constructible.cc: 5085 Require RTTI. 5086 * testsuite/27_io/basic_ostream/emit/1.cc: Likewise. 5087 * testsuite/27_io/fpos/14320-1.cc: Check type without using RTTI. 5088 * testsuite/27_io/fpos/mbstate_t/12065.cc: Require RTTI. 5089 * testsuite/27_io/ios_base/failure/dual_abi.cc: Likewise. 5090 * testsuite/experimental/any/misc/any_cast.cc: Likewise. 5091 * testsuite/experimental/any/observers/type.cc: Likewise. 5092 * testsuite/experimental/memory_resource/resource_adaptor.cc: 5093 Likewise. 5094 * testsuite/lib/libstdc++.exp (check_effective_target_rtti): 5095 Define new proc. 5096 * testsuite/tr1/3_function_objects/function/1.cc: Likewise. 5097 * testsuite/tr1/3_function_objects/function/2.cc: Likewise. 5098 * testsuite/tr1/3_function_objects/function/3.cc: Likewise. 5099 * testsuite/tr1/3_function_objects/function/4.cc: Likewise. 5100 * testsuite/tr1/3_function_objects/function/5.cc: Likewise. 5101 * testsuite/tr1/3_function_objects/function/6.cc: Likewise. 5102 * testsuite/tr1/3_function_objects/function/7.cc: Likewise. 5103 * testsuite/tr1/3_function_objects/function/8.cc: Likewise. 5104 * testsuite/tr2/bases/value.cc: Likewise. 5105 * testsuite/tr2/direct_bases/value.cc: Likewise. 5106 * testsuite/util/exception/safety.h [!__cpp_rtti]: Don't print 5107 types without RTTI. 5108 5109 2022-05-04 Jonathan Wakely <jwakely (a] redhat.com> 5110 5111 PR libstdc++/104719 5112 * include/std/array (array::size(), array::max_size()) 5113 (array::empty(), array::data()): Add always_inline attribute. 5114 5115 2022-05-04 Jonathan Wakely <jwakely (a] redhat.com> 5116 5117 PR libstdc++/104719 5118 * include/std/array (__array_traits::_S_ref): Remove. 5119 (__array_traits::_S_ptr): Remove. 5120 (__array_traits<T, 0>::_Type): Define operator[] and operator T* 5121 to provide an array-like API. 5122 (array::_AT_Type): Remove public typeef. 5123 (array::operator[], array::at, array::front, array::back): Use 5124 index operator to access _M_elems instead of _S_ref. 5125 (array::data): Use implicit conversion from _M_elems to pointer. 5126 (swap(array&, array&)): Use __enable_if_t helper. 5127 (get<I>): Use index operator to access _M_elems. 5128 * testsuite/23_containers/array/tuple_interface/get_neg.cc: 5129 Adjust dg-error line numbers. 5130 5131 2022-05-03 Alexandre Oliva <oliva (a] adacore.com> 5132 5133 PR c++/105324 5134 * testsuite/20_util/from_chars/pr105324.cc: Guard test body 5135 with conditional for floating-point overloads of from_char. 5136 5137 2022-05-02 Patrick Palka <ppalka (a] redhat.com> 5138 5139 PR libstdc++/103911 5140 * src/c++17/floating_from_chars.cc (find_end_of_float): Accept 5141 two delimeters for the exponent part in the form of a possibly 5142 NULL string of length two. Don't use std::tolower. 5143 (pattern): Adjust calls to find_end_of_float accordingly. 5144 5145 2022-05-02 Patrick Palka <ppalka (a] redhat.com> 5146 5147 PR libstdc++/105441 5148 * src/c++17/floating_from_chars.cc (__floating_from_chars_hex): 5149 Also accept 'P' as the start of the exponent. 5150 * testsuite/20_util/from_chars/7.cc: Add corresponding testcase. 5151 5152 2022-04-29 Jonathan Wakely <jwakely (a] redhat.com> 5153 5154 PR libstdc++/105417 5155 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: 5156 Regenerate. 5157 * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]: 5158 Define __gnu_ieee128::num_get<C>::_M_extract_int[abi:cxx11]<I> 5159 symbols as aliases for corresponding symbols without abi-tag. 5160 5161 2022-04-29 Rainer Orth <ro (a] CeBiTec.Uni-Bielefeld.DE> 5162 5163 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate. 5164 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt: 5165 Likewise. 5166 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise. 5167 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt: 5168 Likewise. 5169 5170 2022-04-28 Jonathan Wakely <jwakely (a] redhat.com> 5171 5172 PR libstdc++/99290 5173 * src/c++17/fs_ops.cc (fs::copy): Pass error_code to 5174 directory_iterator constructor, and check on each iteration. 5175 * src/filesystem/ops.cc (fs::copy): Likewise. 5176 * testsuite/27_io/filesystem/operations/copy.cc: Check for 5177 errors during recursion. 5178 * testsuite/experimental/filesystem/operations/copy.cc: 5179 Likewise. 5180 5181 2022-04-28 Franois Dumont <fdumont (a] gcc.gnu.org> 5182 5183 * config/abi/pre/gnu-versioned-namespace.ver: Remove 5184 std::random_device::* pattern. 5185 5186 2022-04-27 Jakub Jelinek <jakub (a] redhat.com> 5187 5188 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. 5189 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update. 5190 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update. 5191 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update. 5192 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update. 5193 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update. 5194 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update. 5195 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update. 5196 5197 2022-04-27 Jonathan Wakely <jwakely (a] redhat.com> 5198 5199 * python/libstdcxx/v6/printers.py (SharedPointerPrinter): Add 5200 support for atomic<shared_ptr<T>> and atomic<weak_ptr<T>>. 5201 (StdAtomicPrinter): New printer. 5202 (build_libstdcxx_dictionary): Register new printer. 5203 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test std::atomic. 5204 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test atomic smart 5205 pointers. 5206 5207 2022-04-26 Jonathan Wakely <jwakely (a] redhat.com> 5208 5209 * include/bits/shared_ptr_atomic.h (atomic<shared_ptr>): Add 5210 constructor for constant initialization from nullptr_t. 5211 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: 5212 Check for new constructor. 5213 5214 2022-04-26 Jonathan Wakely <jwakely (a] redhat.com> 5215 5216 * include/bits/fs_path.h (hash<filesystem::path>): Define. 5217 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc: 5218 Check std::hash specialization. 5219 5220 2022-04-25 Jonathan Wakely <jwakely (a] redhat.com> 5221 5222 * include/bits/ptr_traits.h (__cpp_lib_constexpr_memory): Define 5223 conditionally. 5224 * include/bits/unique_ptr.h (__cpp_lib_constexpr_memory): 5225 Define for C++23. 5226 (default_delete, default_delete<T[]>, __uniq_ptr_impl) 5227 (unique_ptr, unique_ptr<T[], D>): Add constexpr to all member 5228 functions. 5229 * include/std/version (__cpp_lib_constexpr_memory): Define new 5230 value for C++23. 5231 * testsuite/20_util/unique_ptr/assign/constexpr.cc: New test. 5232 * testsuite/20_util/unique_ptr/comparison/constexpr.cc: New test. 5233 * testsuite/20_util/unique_ptr/cons/constexpr_c++20.cc: New test. 5234 * testsuite/20_util/unique_ptr/creation/constexpr.cc: New test. 5235 * testsuite/20_util/unique_ptr/modifiers/constexpr.cc: New test. 5236 * testsuite/20_util/unique_ptr/specialized_algorithms/constexpr.cc: 5237 New test. 5238 5239 2022-04-25 Jonathan Wakely <jwakely (a] redhat.com> 5240 5241 PR libstdc++/105375 5242 * include/std/future (packaged_task): Add deduction guides. 5243 * testsuite/30_threads/packaged_task/cons/deduction.cc: New test. 5244 5245 2022-04-25 Philipp Fent <fent (a] in.tum.de> 5246 5247 * python/libstdcxx/v6/printers.py (StdSpanPrinter._iterator): 5248 Rename as iterator. 5249 (StdInitializerListPrinter): Define new printer. 5250 (build_libstdcxx_dictionary): Register new printer. 5251 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check printer for 5252 initializer_list. 5253 5254 2022-04-22 Thomas W Rodgers <trodgers (a] redhat.com> 5255 5256 PR libstdc++/102994 5257 * include/bits/atomic_base.h (atomic_flag::notify_one, 5258 notify_all): Remove const qualification. 5259 (__atomic_base::notify_one, notify_all): Likewise. 5260 * include/std/atomic (atomic<bool>::notify_one, notify_all): 5261 Likewise. 5262 (atomic::notify_one, notify_all): Likewise. 5263 (atomic<T*>::notify_one, notify_all): Likewise. 5264 (atomic_notify_one, atomic_notify_all): Likewise. 5265 * testsuite/29_atomics/atomic/wait_notify/102994.cc: Adjust test 5266 to account for change in notify_one/notify_all signature. 5267 5268 2022-04-21 Patrick Palka <ppalka (a] redhat.com> 5269 5270 * include/std/charconv (__from_chars_alnum_to_val_table): 5271 Simplify initialization of __lower/__upper_letters. 5272 (__from_chars_alnum_to_val): Default the template parameter to 5273 false. 5274 * src/c++17/floating_from_chars.cc (starts_with_ci): Don't 5275 assume the uppercase and lowercase letters are contiguous. 5276 (__floating_from_chars_hex): Likewise. 5277 5278 2022-04-21 Patrick Palka <ppalka (a] redhat.com> 5279 5280 PR c++/105297 5281 PR c++/105322 5282 * include/std/charconv (__from_chars_alnum_to_val): Make 5283 initializer for __table dependent in an artificial way. 5284 5285 2022-04-21 Jonathan Wakely <jwakely (a] redhat.com> 5286 5287 PR libstdc++/105324 5288 * src/c++17/floating_from_chars.cc (buffer_resource::do_allocate): 5289 Remove assertion. 5290 * testsuite/20_util/from_chars/pr105324.cc: New test. 5291 5292 2022-04-20 Jonathan Wakely <jwakely (a] redhat.com> 5293 5294 * testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc: 5295 Check correct feature test macro. 5296 5297 2022-04-20 Jonathan Wakely <jwakely (a] redhat.com> 5298 5299 PR libstdc++/93602 5300 * doc/xml/manual/prerequisites.xml: Document libiconv 5301 workarounds. 5302 * doc/html/manual/setup.html: Regenerate. 5303 * src/Makefile.am (CXXLINK): Add $(LTLIBICONV). 5304 * src/Makefile.in: Regenerate. 5305 5306 2022-04-19 Patrick Palka <ppalka (a] redhat.com> 5307 5308 * src/c++17/floating_to_chars.cc (_GLIBCXX_ASSERTIONS): Don't 5309 define. 5310 (__floating_to_chars_shortest): Add __builtin_unreachable calls to 5311 squelch false-positive -Wmaybe-uninitialized and -Wreturn-type 5312 warnings. 5313 (__floating_to_chars_precision): Likewise. 5314 5315 2022-04-19 Philipp Fent <fent (a] in.tum.de> 5316 5317 * python/libstdcxx/v6/printers.py (StdSpanPrinter): Define. 5318 * testsuite/libstdc++-prettyprinters/cxx20.cc: Test it. 5319 5320 2022-04-19 Jonathan Wakely <jwakely (a] redhat.com> 5321 5322 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Fix shell operators. 5323 * configure: Regenerate. 5324 5325 2022-04-18 Patrick Palka <ppalka (a] redhat.com> 5326 5327 * include/std/charconv (__from_chars_pow2_base): Manually 5328 unroll the first iteration of the main loop and simplify 5329 accordingly. 5330 5331 2022-04-15 Patrick Palka <ppalka (a] redhat.com> 5332 5333 PR libstdc++/104858 5334 * include/bits/ranges_algo.h (__minmax_fn): Avoid dereferencing 5335 __first twice at the start. 5336 * testsuite/25_algorithms/minmax/constrained.cc (test06): New test. 5337 5338 2022-04-15 Patrick Palka <ppalka (a] redhat.com> 5339 5340 * include/std/charconv (__from_chars_alnum_to_val_table): Define. 5341 (__from_chars_alnum_to_val): Define. 5342 (__from_chars_binary): Rename to ... 5343 (__from_chars_pow2_base): ... this. Generalize to handle any 5344 power-of-two base using __from_chars_alnum_to_val. 5345 (__from_chars_digit): Optimize digit recognition to a single 5346 test instead of two tests. Use [[__unlikely___]] attribute. 5347 (__from_chars_alpha_to_num): Remove. 5348 (__from_chars_alnum): Use __from_chars_alnum_to_val. Use a 5349 nested loop for the overflow case. Maintain a lower bound 5350 on the number of available bits in the result and use it to 5351 omit the overflow check. 5352 (from_chars): Adjust appropriately. 5353 * src/c++17/floating_from_chars.cc (ascii_to_hexit): Remove. 5354 (__floating_from_chars_hex): Use __from_chars_alnum_to_val 5355 to recognize a hex digit instead. 5356 5357 2022-04-14 Palmer Dabbelt <palmer (a] rivosinc.com> 5358 5359 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Force auto to mutex 5360 for RISC-V. 5361 * configure: Regenerate. 5362 5363 2022-04-14 Jonathan Wakely <jwakely (a] redhat.com> 5364 5365 * doc/xml/manual/intro.xml: Fix comment. 5366 5367 2022-04-14 Jonathan Wakely <jwakely (a] redhat.com> 5368 5369 * include/precompiled/stdc++.h: Include <stacktrace> and 5370 <stdatomic.h> for C++23. 5371 5372 2022-04-14 Jonathan Wakely <jwakely (a] redhat.com> 5373 5374 PR libstdc++/105269 5375 * include/bits/stl_vector.h (__cpp_lib_constexpr_vector): 5376 Define. 5377 * include/c_compatibility/stdatomic.h (__cpp_lib_stdatomic_h): 5378 Define. 5379 * include/std/optional (__cpp_lib_optional): Define new value 5380 for C++23. 5381 (__cpp_lib_monadic_optional): Remove. 5382 * include/std/version (__cpp_lib_constexpr_vector): Define. 5383 (__cpp_lib_stdatomic_h): Define. 5384 (__cpp_lib_optional): Define new value for C++23. 5385 (__cpp_lib_monadic_optional): Remove. 5386 * testsuite/20_util/optional/monadic/and_then.cc: Adjust. 5387 * testsuite/20_util/optional/requirements.cc: Adjust for C++23. 5388 * testsuite/20_util/optional/version.cc: Likewise. 5389 * testsuite/23_containers/vector/cons/constexpr.cc: Check 5390 feature test macro. 5391 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: 5392 Likewise. 5393 * testsuite/20_util/optional/monadic/version.cc: Removed. 5394 * testsuite/23_containers/vector/requirements/version.cc: New test. 5395 * testsuite/29_atomics/headers/stdatomic.h/version.cc: New test. 5396 5397 2022-04-12 Jonathan Wakely <jwakely (a] redhat.com> 5398 5399 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): Check for mmap. 5400 * config.h.in: Regenerate. 5401 * configure: Regenerate. 5402 5403 2022-04-12 Jonathan Wakely <jwakely (a] redhat.com> 5404 5405 * include/std/stacktrace (basic_stacktrace::current): Reallocate 5406 a smaller container if the unused capacity is larger than the 5407 used size. 5408 5409 2022-04-12 Jonathan Wakely <jwakely (a] redhat.com> 5410 5411 * include/std/stacktrace (basic_stacktrace): Use _Impl::_M_clone 5412 or _Impl::_M_assign to initialize elements in allocated storage. 5413 (basic_stacktrace::_M_clear()): Use _Impl::_M_resize instead of 5414 _Impl::_M_destroy. 5415 (basic_stacktrace::_Impl::_M_destroy()): Replace with ... 5416 (basic_stacktrace::_Impl::_M_resize(size_type, allocator&)): New 5417 function. 5418 (basic_stacktrace::_Impl::_M_push_back): Use _M_xclone. Construct 5419 new element using allocator. 5420 (basic_stacktrace::_Impl::_M_clone): New function. 5421 (basic_stacktrace::_Impl::_M_xclone): New function. 5422 (basic_stacktrace::_Impl::_M_assign): New function. 5423 5424 2022-04-12 Jonathan Wakely <jwakely (a] redhat.com> 5425 5426 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate): 5427 Use nothrow new instead of try block for std::allocator. 5428 (basic_stacktrace::_Impl::_M_deallocate): Use delete for 5429 std::allocator. 5430 5431 2022-04-12 Jonathan Wakely <jwakely (a] redhat.com> 5432 5433 * include/std/stacktrace (basic_stacktrace::current): Replace 5434 calls to _M_reserve and _S_curr_cb with call to _M_prepare. 5435 Check return value of backtrace_simple when max depth given. 5436 (basic_stacktrace::_M_reserve): Remove. 5437 (basic_stacktrace::_S_curr_cb): Remove. 5438 (basic_stacktrace::_M_prepare(size_type)): New function to 5439 reserve initial capacity and return callback. 5440 (basic_stacktrace::_Impl::_M_allocate): Remove check for 0 < n 5441 and remove redundant zeroing of _M_frames and _M_capacity. 5442 (basic_stacktrace::_Impl::_M_push_back): Add [[unlikely]] 5443 attribute. Assign _Impl instead of swapping. 5444 * testsuite/19_diagnostics/stacktrace/current.cc: New test. 5445 5446 2022-04-11 Jonathan Wakely <jwakely (a] redhat.com> 5447 5448 * include/std/stacktrace (basic_stacktrace::_Impl::_M_allocate): 5449 Change [[unlikely]] attribute to [[likely]]. 5450 5451 2022-04-11 Jonathan Wakely <jwakely (a] redhat.com> 5452 5453 PR libstdc++/105031 5454 * include/std/stacktrace (basic_stacktrace::basic_stacktrace): 5455 Fix allocator usage in constructors. 5456 (basic_stacktrace::operator=(const basic_stacktrace&)): Do not 5457 try to reallocate using const allocator. 5458 (basic_stacktrace::operator=(basic_stacktrace&&)): Fix 5459 if-constexpr with non-constant condition. Do not allocate new 5460 storage if allocator propagates. Do not set _M_size if 5461 allocation fails. 5462 (basic_stacktrace::swap(basic_stacktrace&)): Fix typo. Add 5463 assertion that non-propagating allocators are equal. 5464 * testsuite/19_diagnostics/stacktrace/stacktrace.cc: New test. 5465 5466 2022-04-11 Jonathan Wakely <jwakely (a] redhat.com> 5467 5468 * include/std/stacktrace (basic_stacktrace::current): Duplicate 5469 implementation into each overload. Add noinline attribute and 5470 skip current frame. 5471 (basic_stacktrace::max_size()): Call _Impl::_S_max_size. 5472 (basic_stacktrace::_S_curr_cb()): New function defining lambda. 5473 (basic_stacktrace::_Impl::_S_max_size): New function defining 5474 maximum size in terms of allocator and size_type. 5475 (basic_stacktrace::_Impl::_M_allocate): Check against 5476 max_size(). 5477 * testsuite/19_diagnostics/stacktrace/entry.cc: Call function 5478 for non-constexpr checks. Check line number is correct. 5479 5480 2022-04-11 Jonathan Wakely <jwakely (a] redhat.com> 5481 5482 * testsuite/20_util/stacktrace/entry.cc: Moved to... 5483 * testsuite/19_diagnostics/stacktrace/entry.cc: ...here. 5484 * testsuite/20_util/stacktrace/synopsis.cc: Moved to... 5485 * testsuite/19_diagnostics/stacktrace/synopsis.cc: ...here. 5486 * testsuite/20_util/stacktrace/version.cc: Moved to... 5487 * testsuite/19_diagnostics/stacktrace/version.cc: ...here. 5488 5489 2022-04-11 Jonathan Wakely <jwakely (a] redhat.com> 5490 5491 * include/experimental/bits/fs_path.h (path): Define special 5492 members after path::_Cmpt is complete. 5493 5494 2022-04-08 Jonathan Wakely <jwakely (a] redhat.com> 5495 5496 PR libstdc++/105153 5497 * include/std/expected 5498 (expected<void,E>::expected(expected<U,G>&&)): Fix constraints. 5499 * testsuite/20_util/expected/cons.cc: Check constructor. 5500 5501 2022-04-08 Jonathan Wakely <jwakely (a] redhat.com> 5502 5503 PR libstdc++/105154 5504 * include/std/expected (expected<void, E>::swap): Set 5505 _M_has_value to false for objects that previously had a value. 5506 * testsuite/20_util/expected/swap.cc: Fix test to check void 5507 specialization. 5508 5509 2022-04-08 Jonathan Wakely <jwakely (a] redhat.com> 5510 5511 PR libstdc++/105146 5512 * include/std/expected (bad_expected_access): Move constructor 5513 parameter. 5514 * testsuite/20_util/expected/bad.cc: New test. 5515 5516 2022-04-07 Hans-Peter Nilsson <hp (a] axis.com> 5517 5518 * testsuite/20_util/expected/requirements.cc: Correct minimal-size 5519 test. 5520 5521 2022-04-02 Jakub Jelinek <jakub (a] redhat.com> 5522 5523 PR libstdc++/105128 5524 * include/std/source_location (std::source_location::__impl): Move 5525 definition before using __builtin_ret_type. 5526 5527 2022-04-01 Jonathan Wakely <jwakely (a] redhat.com> 5528 5529 * include/std/utility (unreachable): Define for C++23. 5530 * include/std/version (__cpp_lib_unreachable): Define. 5531 * src/c++11/debug.cc (__glibcxx_assert_fail): Check for valid 5532 arguments. Handle only the function being given. 5533 * testsuite/20_util/unreachable/1.cc: New test. 5534 * testsuite/20_util/unreachable/version.cc: New test. 5535 5536 2022-04-01 Jonathan Wakely <jwakely (a] redhat.com> 5537 5538 * include/experimental/bits/fs_fwd.h (copy_file): Remove 5539 incorrect noexcept from declaration. 5540 * include/experimental/bits/fs_path.h (path::begin, path::end): 5541 Add noexcept to declarations, to match definitions. 5542 5543 2022-04-01 Timm Bder <tbaeder (a] redhat.com> 5544 5545 * include/bits/fs_ops.h: Fix filename in Doxygen comment. 5546 * include/experimental/bits/fs_ops.h: Likewise. 5547 5548 2022-03-31 Jonathan Wakely <jwakely (a] redhat.com> 5549 5550 * libsupc++/new_opa.cc (aligned_alloc): Add comment. 5551 5552 2022-03-29 Jonathan Wakely <jwakely (a] redhat.com> 5553 5554 * testsuite/18_support/exception/38732.cc: Disable for C++23. 5555 * testsuite/18_support/headers/exception/synopsis.cc: Likewise. 5556 * testsuite/18_support/unexpected_handler.cc: Likewise. 5557 5558 2022-03-29 Jonathan Wakely <jwakely (a] redhat.com> 5559 5560 * libsupc++/compare (_Strong_order) [!__cpp_using_enum]: Add 5561 static data members for _Fp_fmt enumerators. 5562 5563 2022-03-29 Jonathan Wakely <jwakely (a] redhat.com> 5564 5565 * include/std/version (__cpp_lib_variant): Fix conditions to 5566 match <variant>. 5567 (__cpp_lib_expected): Fix condition to match <expected>. 5568 5569 2022-03-28 Jonathan Wakely <jwakely (a] redhat.com> 5570 5571 * testsuite/20_util/optional/monadic/and_then.cc: Fix typo. 5572 * testsuite/20_util/optional/monadic/transform.cc: Likewise. 5573 * testsuite/22_locale/codecvt/always_noconv/char/1.cc: Likewise. 5574 * testsuite/22_locale/codecvt/encoding/char/1.cc: Likewise. 5575 * testsuite/22_locale/codecvt/in/char/1.cc: Likewise. 5576 * testsuite/22_locale/codecvt/max_length/char/1.cc: Likewise. 5577 * testsuite/22_locale/codecvt/out/char/1.cc: Likewise. 5578 * testsuite/22_locale/codecvt/unshift/char/1.cc: Likewise. 5579 5580 2022-03-27 Jonathan Wakely <jwakely (a] redhat.com> 5581 5582 * doc/doxygen/user.cfg.in: Add new header. 5583 * include/Makefile.am: Likewise. 5584 * include/Makefile.in: Regenerate. 5585 * include/precompiled/stdc++.h: Add new header. 5586 * include/std/version (__cpp_lib_expected): Define. 5587 * libsupc++/exception [__cplusplus > 202002] (unexpected) 5588 (unexpected_handler, set_unexpected): Do not declare for C++23. 5589 * include/std/expected: New file. 5590 * testsuite/20_util/expected/assign.cc: New test. 5591 * testsuite/20_util/expected/cons.cc: New test. 5592 * testsuite/20_util/expected/illformed_neg.cc: New test. 5593 * testsuite/20_util/expected/observers.cc: New test. 5594 * testsuite/20_util/expected/requirements.cc: New test. 5595 * testsuite/20_util/expected/swap.cc: New test. 5596 * testsuite/20_util/expected/synopsis.cc: New test. 5597 * testsuite/20_util/expected/unexpected.cc: New test. 5598 * testsuite/20_util/expected/version.cc: New test. 5599 5600 2022-03-25 Jonathan Wakely <jwakely (a] redhat.com> 5601 5602 * include/std/bit (bit_cast, byteswap, endian): Add doxygen 5603 comments. 5604 5605 2022-03-23 Jonathan Wakely <jwakely (a] redhat.com> 5606 5607 PR libstdc++/105027 5608 * include/std/bit (bit_cast): Add constraints. 5609 * testsuite/26_numerics/bit/bit.cast/105027.cc: New test. 5610 5611 2022-03-23 Jonathan Wakely <jwakely (a] redhat.com> 5612 5613 * include/std/version [!_GLIBCXX_HOSTED] 5614 (__cpp_lib_hardware_interference_size): Define for freestanding. 5615 (__cpp_lib_bit_cast): Likewise. 5616 (__cpp_lib_is_layout_compatible): Likewise. 5617 (__cpp_lib_is_pointer_interconvertible): Likewise. 5618 (__cpp_lib_adaptor_iterator_pair_constructor): Do not define for 5619 freestanding. 5620 (__cpp_lib_invoke_r): Likewise. 5621 (__cpp_lib_ios_noreplace): Likewise. 5622 (__cpp_lib_monadic_optional): Likewise. 5623 (__cpp_lib_move_only_function): Likewise. 5624 (__cpp_lib_spanstream): Likewise. 5625 (__cpp_lib_stacktrace): Likewise. 5626 (__cpp_lib_string_contains): Likewise. 5627 (__cpp_lib_string_resize_and_overwrite): Likewise. 5628 (__cpp_lib_to_underlying): Likewise. 5629 5630 2022-03-23 Jonathan Wakely <jwakely (a] redhat.com> 5631 5632 PR libstdc++/105021 5633 * include/bits/atomic_base.h [!_GLIBCXX_HOSTED]: Do not include 5634 <bits/atomic_wait.h> for freestanding. 5635 5636 2022-03-22 Hans-Peter Nilsson <hp (a] axis.com> 5637 5638 * testsuite/20_util/from_chars/6.cc (test01) [FE_DOWNWARD]: 5639 Conditionalize call to fesetround. 5640 5641 2022-03-21 Jakub Jelinek <jakub (a] redhat.com> 5642 5643 PR libstdc++/104990 5644 * include/bits/locale_facets_nonio.tcc (get): Don't check if do_get 5645 isn't overloaded if __clang__ is defined. 5646 5647 2022-03-18 Jonathan Wakely <jwakely (a] redhat.com> 5648 5649 PR libstdc++/104242 5650 * include/std/any (any(T&&)): Revert change to constraints. 5651 * testsuite/20_util/any/cons/104242.cc: New test. 5652 5653 2022-03-18 Jonathan Wakely <jwakely (a] redhat.com> 5654 5655 PR libstdc++/92546 5656 * include/pstl/glue_algorithm_defs.h: Replace <functional> with 5657 <bits/stl_pair.h>. 5658 * include/pstl/utils.h: Replace <iterator> with <type_traits>. 5659 (__pstl::__internal::__except_handler): Use std::__terminate 5660 instead of std::terminate. 5661 * src/c++17/fs_path.cc: Include <array>. 5662 * testsuite/25_algorithms/adjacent_find/constexpr.cc: Include 5663 <functional>. 5664 * testsuite/25_algorithms/binary_search/constexpr.cc: Likewise. 5665 * testsuite/25_algorithms/clamp/constrained.cc: Likewise. 5666 * testsuite/25_algorithms/equal/constrained.cc: Likewise. 5667 * testsuite/25_algorithms/for_each/constrained.cc: Likewise. 5668 * testsuite/25_algorithms/includes/constrained.cc: Likewise. 5669 * testsuite/25_algorithms/is_heap/constexpr.cc: Likewise. 5670 * testsuite/25_algorithms/is_heap_until/constexpr.cc: Likewise. 5671 * testsuite/25_algorithms/is_permutation/constrained.cc: Include 5672 <iterator>. 5673 * testsuite/25_algorithms/is_sorted/constexpr.cc: Include 5674 <functional>. 5675 * testsuite/25_algorithms/is_sorted_until/constexpr.cc: 5676 Likewise. 5677 * testsuite/25_algorithms/lexicographical_compare/constexpr.cc: 5678 Likewise. 5679 * testsuite/25_algorithms/lexicographical_compare/constrained.cc: 5680 Likewise. 5681 * testsuite/25_algorithms/lexicographical_compare_three_way/1.cc: 5682 Include <array>. 5683 * testsuite/25_algorithms/lower_bound/constexpr.cc: Include 5684 <functional>. 5685 * testsuite/25_algorithms/max/constrained.cc: Likewise. 5686 * testsuite/25_algorithms/max_element/constrained.cc: Likewise. 5687 * testsuite/25_algorithms/min/constrained.cc: Likewise. 5688 * testsuite/25_algorithms/min_element/constrained.cc: Likewise. 5689 * testsuite/25_algorithms/minmax_element/constrained.cc: 5690 Likewise. 5691 * testsuite/25_algorithms/mismatch/constexpr.cc: Likewise. 5692 * testsuite/25_algorithms/move/93872.cc: Likewise. 5693 * testsuite/25_algorithms/move_backward/93872.cc: Include 5694 <iterator>. 5695 * testsuite/25_algorithms/nth_element/constexpr.cc: Include 5696 <functional>. 5697 * testsuite/25_algorithms/partial_sort/constexpr.cc: Likewise. 5698 * testsuite/25_algorithms/partial_sort_copy/constexpr.cc: 5699 Likewise. 5700 * testsuite/25_algorithms/search/constexpr.cc: Likewise. 5701 * testsuite/25_algorithms/search_n/constrained.cc: Likewise. 5702 * testsuite/25_algorithms/set_difference/constexpr.cc: Likewise. 5703 * testsuite/25_algorithms/set_difference/constrained.cc: 5704 Likewise. 5705 * testsuite/25_algorithms/set_intersection/constexpr.cc: 5706 Likewise. 5707 * testsuite/25_algorithms/set_intersection/constrained.cc: 5708 Likewise. 5709 * testsuite/25_algorithms/set_symmetric_difference/constexpr.cc: 5710 Likewise. 5711 * testsuite/25_algorithms/set_union/constexpr.cc: Likewise. 5712 * testsuite/25_algorithms/set_union/constrained.cc: Likewise. 5713 * testsuite/25_algorithms/sort/constexpr.cc: Likewise. 5714 * testsuite/25_algorithms/sort_heap/constexpr.cc: Likewise. 5715 * testsuite/25_algorithms/transform/constrained.cc: Likewise. 5716 * testsuite/25_algorithms/unique/constexpr.cc: Likewise. 5717 * testsuite/25_algorithms/unique/constrained.cc: Likewise. 5718 * testsuite/25_algorithms/unique_copy/constexpr.cc: Likewise. 5719 * testsuite/25_algorithms/upper_bound/constexpr.cc: Likewise. 5720 * testsuite/std/ranges/adaptors/elements.cc: Include <vector>. 5721 * testsuite/std/ranges/adaptors/lazy_split.cc: Likewise. 5722 * testsuite/std/ranges/adaptors/split.cc: Likewise. 5723 5724 2022-03-17 Jonathan Wakely <jwakely (a] redhat.com> 5725 5726 PR libstdc++/92546 5727 * include/bits/fs_path.h (path::make_preferred): Use 5728 handwritten loop instead of std::replace. 5729 5730 2022-03-17 Jonathan Wakely <jwakely (a] redhat.com> 5731 5732 PR middle-end/104966 5733 * include/bits/locale_facets_nonio.tcc 5734 (__moneypunct_cache::_M_cache): Replace try-catch with RAII and 5735 make all string copies before any stores to *this. 5736 5737 2022-03-17 Jonathan Wakely <jwakely (a] redhat.com> 5738 5739 * testsuite/util/testsuite_character.h: Fix comment. 5740 5741 2022-03-16 Jonathan Wakely <jwakely (a] redhat.com> 5742 5743 PR libstdc++/103407 5744 * config/abi/pre/gnu.ver: Make version for std::from_chars 5745 depend on HAVE_USELOCALE macro. 5746 * testsuite/util/testsuite_abi.cc (compare_symbols): Treat 5747 std::from_chars for floating-point types as undesignated if 5748 not found in the baseline symbols file. 5749 5750 2022-03-16 Jonathan Wakely <jwakely (a] redhat.com> 5751 5752 * include/std/charconv (__cpp_lib_to_chars): Only define when 5753 both from_chars and to_chars are supported for floating-point 5754 types. 5755 (from_chars, to_chars): Adjust preprocessor conditions guarding 5756 declarations. 5757 * include/std/version (__cpp_lib_to_chars): Adjust condition to 5758 match <charconv> definition. 5759 * src/c++17/floating_from_chars.cc (from_chars_strtod): New 5760 function template. 5761 (from_chars): Simplify preprocessor checks and use 5762 from_chars_strtod when appropriate. 5763 5764 2022-03-14 Jonathan Wakely <jwakely (a] redhat.com> 5765 5766 PR libstdc++/104875 5767 * src/c++11/codecvt.cc (read_utf8_code_point): Use char32_t to 5768 hold octets that will be left-shifted. 5769 5770 2022-03-10 Jonathan Wakely <jwakely (a] redhat.com> 5771 5772 PR libstdc++/104870 5773 * src/c++17/floating_from_chars.cc: Check __SIZE_WIDTH__ >= 32 5774 before using fast_float. 5775 5776 2022-03-10 Detlef Vollmann <dv (a] vollmann.ch> 5777 5778 PR libstdc++/104866 5779 * include/bits/this_thread_sleep.h: Fix order of #endif and 5780 closing brace of namespace. 5781 5782 2022-03-10 Jonathan Wakely <jwakely (a] redhat.com> 5783 5784 * libsupc++/compare (_Strong_order::_S_fp_cmp) [__vax__]: 5785 Handle NaN. 5786 5787 2022-03-10 Jonathan Wakely <jwakely (a] redhat.com> 5788 5789 * libsupc++/compare (_Strong_ordering::_S_fp_cmp) [__vax__]: Use 5790 <=> comparison. 5791 5792 2022-03-09 Patrick Palka <ppalka (a] redhat.com> 5793 5794 PR libstdc++/104859 5795 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex): 5796 Be explicit when narrowing the shifted effective_mantissa, 5797 since it may have an integer-class type. 5798 5799 2022-03-08 Jonathan Wakely <jwakely (a] redhat.com> 5800 5801 * include/bits/uses_allocator_args.h: Remove incorrect copyright 5802 notice. 5803 5804 2022-03-07 Jonathan Wakely <jwakely (a] redhat.com> 5805 5806 PR libstdc++/104807 5807 * include/bits/c++config (__terminate, __glibcxx_assert_fail): 5808 Replace _GLIBCXX_VISIBILITY on function with visibility pragma. 5809 (__is_constant_evaluated): Add visibility pragma. 5810 5811 2022-03-07 Rasmus Villemoes <rasmus.villemoes (a] prevas.dk> 5812 5813 * config/locale/vxworks/ctype_members.cc: Remove <iostream> 5814 include. 5815 5816 2022-03-05 Jonathan Wakely <jwakely (a] redhat.com> 5817 5818 * include/bits/c++config (__glibcxx_assert_fail): Add visibility 5819 attribute. 5820 (__terminate): Likewise. 5821 5822 2022-03-04 Jonathan Wakely <jwakely (a] redhat.com> 5823 5824 * libsupc++/compare (strong_order::_S_fp_cmp): Move typedef 5825 inside #if condition. 5826 5827 2022-03-03 Jonathan Wakely <jwakely (a] redhat.com> 5828 5829 PR libstdc++/104748 5830 * testsuite/std/ranges/adaptors/all.cc: Use non-debug vector for 5831 constexpr test. 5832 5833 2022-03-03 Jonathan Wakely <jwakely (a] redhat.com> 5834 5835 * testsuite/17_intro/names.cc (func): Undef on AIX. 5836 5837 2022-03-03 Jonathan Wakely <jwakely (a] redhat.com> 5838 5839 PR libstdc++/96526 5840 * libsupc++/compare (strong_order): Add missing support for 5841 floating-point types. 5842 * testsuite/18_support/comparisons/algorithms/strong_order_floats.cc: 5843 New test. 5844 5845 2022-03-01 Jonathan Wakely <jwakely (a] redhat.com> 5846 5847 PR middle-end/103984 5848 * include/bits/regex_compiler.h (_BracketMatcher::_M_char): Use 5849 default member initializer. 5850 5851 2022-02-24 Jonathan Wakely <jwakely (a] redhat.com> 5852 5853 PR libstdc++/104602 5854 * include/std/source_location (source_location::current): Use 5855 deduced type of __builtin_source_location(). 5856 5857 2022-02-22 Patrick Palka <ppalka (a] redhat.com> 5858 5859 * include/bits/ranges_base.h (__detail::__is_initializer_list): 5860 Define. 5861 (viewable_range): Adjust as per P2415R2. 5862 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value. 5863 * include/std/ranges (owning_view): Define as per P2415R2. 5864 (enable_borrowed_range<owning_view>): Likewise. 5865 (views::__detail::__can_subrange): Replace with ... 5866 (views::__detail::__can_owning_view): ... this. 5867 (views::_All::_S_noexcept): Sync with operator(). 5868 (views::_All::operator()): Use owning_view instead of subrange 5869 as per P2415R2. 5870 * include/std/version (__cpp_lib_ranges): Adjust value. 5871 * testsuite/std/ranges/adaptors/all.cc (test06): Adjust now that 5872 views::all uses owning_view instead of subrange. 5873 (test08): New test. 5874 * testsuite/std/ranges/adaptors/lazy_split.cc (test09): Adjust 5875 now that rvalue non-view non-borrowed ranges are viewable. 5876 * testsuite/std/ranges/adaptors/split.cc (test06): Likewise. 5877 5878 2022-02-17 Jonathan Wakely <jwakely (a] redhat.com> 5879 5880 PR libstdc++/104559 5881 * doc/xml/manual/evolution.xml: Document deprecation. 5882 * doc/html/manual/api.html: Regenerate. 5883 * include/bits/stl_bvector.h (insert(const_iterator, const bool&)): 5884 Remove default argument. 5885 (insert(const_iterator)): New overload with deprecated attribute. 5886 * testsuite/23_containers/vector/bool/modifiers/insert/104559.cc: 5887 New test. 5888 5889 2022-02-17 Jonathan Wakely <jwakely (a] redhat.com> 5890 5891 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Replace 5892 code that call cat->name() on std::error_category objects. 5893 Identify known categories by symbol name and use a hardcoded 5894 name. Print error code values as enumerators where appopriate. 5895 * testsuite/libstdc++-prettyprinters/cxx11.cc: Adjust expected 5896 name of custom category. Check io_errc and future_errc errors. 5897 5898 2022-02-15 Jonathan Wakely <jwakely (a] redhat.com> 5899 5900 PR libstdc++/104542 5901 * include/bits/uses_allocator_args.h (make_obj_using_allocator) 5902 (uninitialized_construct_using_allocator): Add constexpr. 5903 * testsuite/20_util/uses_allocator/make_obj.cc: Check constexpr. 5904 * testsuite/20_util/uses_allocator/uninitialized_construct.cc: New test. 5905 5906 2022-02-14 Jonathan Wakely <jwakely (a] redhat.com> 5907 5908 PR libstdc++/100912 5909 * config/locale/gnu/c_locale.h (__convert_from_v): Use inline 5910 namespace for IEEE128 long double mode. 5911 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Add new symbol 5912 version and export __gnu_cxx_ieee128::__convert_from_v. 5913 * include/bits/locale_facets_nonio.tcc (money_put::__do_put): 5914 Make __ibm128 overload use snprintf directly 5915 * testsuite/util/testsuite_abi.cc: Add new symbol version. 5916 Remove stable IEEE128/LDBL versions. 5917 5918 2022-02-14 Jonathan Wakely <jwakely (a] redhat.com> 5919 5920 PR libstdc++/103891 5921 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS): 5922 Remove. 5923 * include/std/variant: Check feature test macros instead. 5924 * include/std/version: Likewise. 5925 5926 2022-02-14 Jonathan Wakely <jwakely (a] redhat.com> 5927 5928 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc: 5929 Fix typo. 5930 5931 2022-02-14 Jonathan Wakely <jwakely (a] redhat.com> 5932 5933 * src/c++17/floating_to_chars.cc (FLOAT128_TO_CHARS): Depend on 5934 LONG_DOUBLE_ALT128_COMPAT instead of USE_FLOAT128. 5935 5936 2022-02-11 Jonathan Wakely <jwakely (a] redhat.com> 5937 5938 * testsuite/20_util/temporary_buffer.cc: Fix dg-warning target 5939 selector. 5940 5941 2022-02-11 Jonathan Wakely <jwakely (a] redhat.com> 5942 5943 * testsuite/20_util/monotonic_buffer_resource/allocate.cc: 5944 Ignore -Walloc-larger-than warning. 5945 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc: 5946 Likewise. 5947 * testsuite/29_atomics/atomic/cons/user_pod.cc: Compile with -O1 5948 to avoid linker error for __atomic_is_lock_free. 5949 5950 2022-02-10 Thomas Rodgers <rodgert (a] appliantology.com> 5951 5952 * include/bits/atomic_wait.h (__waiter_base::_S_do_spin, 5953 __waiter_base::_S_do_spin_v): Change memory order from relaxed 5954 to acquire. 5955 5956 2022-02-10 Jonathan Wakely <jwakely (a] redhat.com> 5957 5958 * include/c_compatibility/stdatomic.h (atomic_fetch_xor): Add 5959 using-declaration. 5960 (atomic_fetch_xor_explicit): Likewise. 5961 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Check 5962 arithmetic and logical operations for atomic_int. 5963 5964 2022-02-10 Jonathan Wakely <jwakely (a] redhat.com> 5965 5966 * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine 5967 when <dirent.h> is not available. 5968 (_GLIBCXX_HAVE_UNLINKAT): Likewise. 5969 5970 2022-02-09 Thomas Rodgers <rodgert (a] appliantology.com> 5971 5972 PR libstdc++/104442 5973 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): Move spin 5974 loop inside do loop so that threads failing the wait, reload 5975 _M_ver. 5976 5977 2022-02-08 Jonathan Wakely <jwakely (a] redhat.com> 5978 5979 * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first 5980 parameter to _Dir_base&&. 5981 * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove. 5982 * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first 5983 parameter to _Dir_base&&. 5984 5985 2022-02-08 Jonathan Wakely <jwakely (a] redhat.com> 5986 5987 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add comment about 5988 checking for CAS on correct word size. 5989 5990 2022-02-08 Jonathan Wakely <jwakely (a] redhat.com> 5991 5992 * testsuite/experimental/filesystem/operations/create_directories.cc: 5993 Adjust expected results for Windows. 5994 5995 2022-02-08 Jonathan Wakely <jwakely (a] redhat.com> 5996 5997 PR libstdc++/104161 5998 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase): 5999 [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member, 6000 instead of checking for errno values indicating a directory. 6001 * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar 6002 logic to non-throwing overload. 6003 (fs::remove_all(const path&, error_code&)): Add comments. 6004 * src/filesystem/ops-common.h: Likewise. 6005 6006 2022-02-04 Jonathan Wakely <jwakely (a] redhat.com> 6007 6008 * src/filesystem/dir-common.h (_Dir_base::openat): Change return 6009 type to use portable posix::DIR alias. 6010 6011 2022-02-04 Jonathan Wakely <jwakely (a] redhat.com> 6012 6013 * include/c_compatibility/stdatomic.h [__clang__]: Use 6014 #include_next <stdatomic.h>. 6015 6016 2022-02-04 Jonathan Wakely <jwakely (a] redhat.com> 6017 6018 * include/experimental/bits/fs_ops.h (fs::copy_file): Remove 6019 noexcept. 6020 (fs::create_directories): Likewise. 6021 (fs::remove_all): Likewise. 6022 * src/filesystem/ops.cc (fs::copy_file): Remove noexcept. 6023 (fs::create_directories): Likewise. 6024 (fs::remove_all): Likewise. 6025 6026 2022-02-04 Jonathan Wakely <jwakely (a] redhat.com> 6027 6028 PR libstdc++/104161 6029 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd 6030 and unlinkat. 6031 * config.h.in: Regenerate. 6032 * configure: Regenerate. 6033 * include/bits/fs_dir.h (recursive_directory_iterator): Declare 6034 remove_all overloads as friends. 6035 (recursive_directory_iterator::__erase): Declare new member 6036 function. 6037 * include/bits/fs_fwd.h (remove, remove_all): Declare. 6038 * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to 6039 constructor. Pass file descriptor argument to base constructor. 6040 (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink) 6041 (_Dir::unlink, _Dir::rmdir): Define new member functions. 6042 (directory_iterator): Pass filename_only argument to _Dir 6043 constructor. 6044 (recursive_directory_iterator::_Dir_stack): Adjust constructor 6045 parameters to take a _Dir rvalue instead of creating one. 6046 (_Dir_stack::orig): Add data member for storing original path. 6047 (_Dir_stack::report_error): Define new member function. 6048 (__directory_iterator_nofollow): Move here from dir-common.h and 6049 fix value to be a power of two. 6050 (__directory_iterator_filename_only): Define new constant. 6051 (recursive_directory_iterator): Construct _Dir object and move 6052 into _M_dirs stack. Pass skip_permission_denied argument to first 6053 advance call. 6054 (recursive_directory_iterator::increment): Use _Dir::open_subdir. 6055 (recursive_directory_iterator::__erase): Define new member 6056 function. 6057 * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove. 6058 (fs::remove_all): Use new recursive_directory_iterator::__erase 6059 member function. 6060 * src/filesystem/dir-common.h (_Dir_base): Add int parameter to 6061 constructor and use openat to implement nofollow semantics. 6062 (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat): 6063 Define new member functions. 6064 (__directory_iterator_nofollow): Move to fs_dir.cc. 6065 * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to 6066 base constructor. 6067 (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member 6068 functions. 6069 (recursive_directory_iterator::_Dir_stack): Adjust constructor 6070 parameters to take a _Dir rvalue instead of creating one. 6071 (recursive_directory_iterator): Check for new nofollow option. 6072 Construct _Dir object and move into _M_dirs stack. Pass 6073 skip_permission_denied argument to first advance call. 6074 (recursive_directory_iterator::increment): Use _Dir::open_subdir. 6075 * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all. 6076 6077 2022-02-04 Jonathan Wakely <jwakely (a] redhat.com> 6078 6079 * include/bits/allocator.h: Qualify std::allocator_traits in 6080 deprecated warnings. 6081 * libsupc++/exception (uncaught_exception): Add suggestion to 6082 deprecated warning. 6083 6084 2022-02-02 Jonathan Wakely <jwakely (a] redhat.com> 6085 6086 * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::pop): 6087 Add [[maybe_unused]] attribute. 6088 * src/filesystem/dir.cc (fs::recursive_directory_iterator::pop): 6089 Likewise. 6090 6091 2022-02-02 Jonathan Wakely <jwakely (a] redhat.com> 6092 6093 * testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use 6094 custom comparison function for multiset. 6095 * testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom 6096 comparison function for set. 6097 6098 2022-02-02 Jonathan Wakely <jwakely (a] redhat.com> 6099 6100 * include/bits/boost_concept_check.h (_OutputIteratorConcept): 6101 Change member function to data member of function pointer type. 6102 6103 2022-02-02 Martin Sebor <msebor (a] redhat.com> 6104 6105 PR libstdc++/101831 6106 * include/std/array (begin): Declare const member function attribute 6107 const. 6108 (end, rbegin, rend, size, max_size, empty, data): Same. 6109 * testsuite/23_containers/array/capacity/empty.cc: Add test cases. 6110 * testsuite/23_containers/array/capacity/max_size.cc: Same. 6111 * testsuite/23_containers/array/capacity/size.cc: Same. 6112 * testsuite/23_containers/array/iterators/begin_end.cc: New test. 6113 6114 2022-02-02 Jonathan Wakely <jwakely (a] redhat.com> 6115 6116 * testsuite/27_io/filesystem/iterators/error_reporting.cc: Use 6117 autoconf macro to check whether d_type is present. 6118 * testsuite/experimental/filesystem/iterators/error_reporting.cc: 6119 Likewise. 6120 6121 2022-02-01 Jonathan Wakely <jwakely (a] redhat.com> 6122 6123 * testsuite/27_io/filesystem/iterators/97731.cc: New test. 6124 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc: 6125 Check follow_directory_symlink option. 6126 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc: 6127 Likewise. 6128 6129 2022-02-01 Jonathan Wakely <jwakely (a] redhat.com> 6130 6131 * src/c++17/fs_dir.cc (recursive_directory_iterator::increment): 6132 Reset state to past-the-end iterator on error. 6133 (fs::recursive_directory_iterator::pop(error_code&)): Likewise. 6134 (fs::recursive_directory_iterator::pop()): Check _M_dirs before 6135 it might get reset. 6136 * src/filesystem/dir.cc (recursive_directory_iterator): Likewise, 6137 for the TS implementation. 6138 * testsuite/27_io/filesystem/iterators/error_reporting.cc: New test. 6139 * testsuite/experimental/filesystem/iterators/error_reporting.cc: New test. 6140 6141 2022-02-01 Jonathan Wakely <jwakely (a] redhat.com> 6142 6143 * include/bits/fs_fwd.h (filesystem::perms): Fix comment. 6144 6145 2022-02-01 Jonathan Wakely <jwakely (a] redhat.com> 6146 6147 PR libstdc++/104301 6148 * acinclude.m4 (GLIBCXX_ENABLE_CSTDIO): Print different messages 6149 for stdio_pure and stdio_posix options. 6150 * configure: Regenerate. 6151 6152 2022-02-01 Thomas Rodgers <rodgert (a] appliantology.com> 6153 6154 * include/bits/atomic_wait.h: Change memory order from 6155 Acquire/Release with relaxed loads to SeqCst+Release for 6156 accesses to the waiter's count. 6157 6158 2022-01-31 Martin Liska <mliska (a] suse.cz> 6159 6160 * acinclude.m4: Detect *_ld_is_mold and use it. 6161 * configure: Regenerate. 6162 6163 2022-01-30 Hans-Peter Nilsson <hp (a] axis.com> 6164 6165 * testsuite/27_io/basic_istream/get/char/lwg3464.cc: Don't run on 6166 simulator targets. 6167 * testsuite/27_io/basic_istream/get/wchar_t/lwg3464.cc: Likewise. 6168 6169 2022-01-27 Jonathan Wakely <jwakely (a] redhat.com> 6170 6171 PR libstdc++/100516 6172 * include/bits/deque.tcc (_M_range_initialize<ForwardIterator>): 6173 Add __builtin_unreachable to loop. 6174 * testsuite/23_containers/deque/100516.cc: New test. 6175 6176 2022-01-27 Jonathan Wakely <jwakely (a] redhat.com> 6177 6178 * include/bits/ranges_base.h (ranges::advance): Avoid signed 6179 overflow. Do nothing if already equal to desired result. 6180 * testsuite/24_iterators/range_operations/advance_overflow.cc: 6181 New test. 6182 6183 2022-01-27 Martin Liska <mliska (a] suse.cz> 6184 6185 PR libstdc++/104259 6186 * acinclude.m4: Fix typo. 6187 * configure: Regenerate. 6188 6189 2022-01-25 Jonathan Wakely <jwakely (a] redhat.com> 6190 6191 PR libstdc++/104019 6192 * include/bits/istream.tcc (basic_istream::sentry): Add braces 6193 around try-block. 6194 * include/bits/shared_ptr_base.h (_Sp_counted_array_base::_M_init): 6195 Add pragmas to disable bogus warnings from PR 61596. 6196 6197 2022-01-25 Jonathan Wakely <jwakely (a] redhat.com> 6198 6199 PR libstdc++/104217 6200 * src/c++17/fs_ops.cc (_GNU_SOURCE): Define. 6201 * src/filesystem/dir.cc (_GNU_SOURCE): Define. 6202 * src/filesystem/ops.cc (_GNU_SOURCE): Define. 6203 6204 2022-01-25 Jonathan Wakely <jwakely (a] redhat.com> 6205 6206 PR libstdc++/104161 6207 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for 6208 fdopendir. 6209 * config.h.in: Regenerate. 6210 * configure: Regenerate. 6211 * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor 6212 and pass it to base class constructor. 6213 (directory_iterator): Pass nofollow flag to _Dir constructor. 6214 (fs::recursive_directory_iterator::increment): Likewise. 6215 * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for 6216 directory_iterator constructor. Move error check outside loop. 6217 * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to 6218 constructor and when it's set use ::open with O_NOFOLLOW and 6219 O_DIRECTORY. 6220 * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor 6221 and pass it to base class constructor. 6222 (directory_iterator): Pass nofollow flag to _Dir constructor. 6223 (fs::recursive_directory_iterator::increment): Likewise. 6224 * src/filesystem/ops.cc (remove_all): Use nofollow option for 6225 directory_iterator constructor. Move error check outside loop. 6226 6227 2022-01-23 Jonathan Wakely <jwakely (a] redhat.com> 6228 6229 PR libstdc++/104032 6230 * include/std/spanstream (basic_spanbuf(basic_spanbuf&&)): Use 6231 mem-initializer for _M_buf. 6232 (basic_spanbuf::Operator=(basic_spanbuf&&)): Fix ill-formed 6233 member access. 6234 * testsuite/27_io/spanstream/2.cc: New test. 6235 6236 2022-01-23 Jonathan Wakely <jwakely (a] redhat.com> 6237 6238 * src/c++17/floating_from_chars.cc (USE_STRTOD_FOR_FROM_CHARS): 6239 Define macro for case where std::from_chars is implemented in 6240 terms of strtod, strtof or strtold. 6241 (buffer_resource, valid_fmt, find_end_of_float, pattern) 6242 (from_chars_impl, make_result, reserve_string): Do not define 6243 unless USE_STRTOD_FOR_FROM_CHARS is defined. 6244 (from_chars): Define when at least one of USE_LIB_FAST_FLOAT and 6245 USE_STRTOD_FOR_FROM_CHARS is defined, instead of 6246 _GLIBCXX_HAVE_USELOCALE. Use fast_float for long double when it 6247 is binary64. 6248 6249 2022-01-23 Jonathan Wakely <jwakely (a] redhat.com> 6250 6251 PR libstdc++/104174 6252 * include/bits/hashtable_policy.h (_Map_base): Add partial 6253 specialization for maps with const key types. 6254 * testsuite/23_containers/unordered_map/104174.cc: New test. 6255 6256 2022-01-23 Jonathan Wakely <jwakely (a] redhat.com> 6257 6258 PR libstdc++/104019 6259 * include/bits/shared_ptr_base.h (_Sp_counted_base<>::_M_release): 6260 Set members to zero without type punning. 6261 6262 2022-01-21 Jonathan Wakely <jwakely (a] redhat.com> 6263 6264 * testsuite/20_util/shared_ptr/cons/array.cc: Fix comment. 6265 6266 2022-01-21 Jonathan Wakely <jwakely (a] redhat.com> 6267 6268 PR libstdc++/87193 6269 PR libstdc++/104019 6270 * include/bits/alloc_traits.h (__cpp_lib_allocator_traits_is_always_equal): 6271 Define as type long. 6272 * include/bits/allocator.h (__cpp_lib_incomplete_container_elements): 6273 Likewise. 6274 * include/bits/basic_string.h (__cpp_lib_string_udls): Likewise. 6275 * include/bits/chrono.h (__cpp_lib_chrono): Likewise. 6276 (__cpp_lib_chrono_udls): Likewise. 6277 * include/bits/move.h (__cpp_lib_addressof_constexpr): Likewise. 6278 * include/bits/node_handle.h (__cpp_lib_node_extract): Likewise. 6279 * include/bits/range_access.h (__cpp_lib_nonmember_container_access): 6280 Likewise. 6281 * include/bits/shared_ptr.h (__cpp_lib_enable_shared_from_this): 6282 Likewise. 6283 * include/bits/stl_algo.h (__cpp_lib_clamp): Likewise. 6284 (__cpp_lib_sample): Likewise. 6285 * include/bits/stl_algobase.h (__cpp_lib_robust_nonmodifying_seq_ops): 6286 Likewise. 6287 * include/bits/stl_function.h (__cpp_lib_transparent_operators): 6288 Likewise. 6289 * include/bits/stl_iterator.h (__cpp_lib_make_reverse_iterator): 6290 Likewise. 6291 * include/bits/stl_map.h (__cpp_lib_map_try_emplace): 6292 Likewise. 6293 * include/bits/stl_tree.h (__cpp_lib_generic_associative_lookup): 6294 Likewise. 6295 * include/bits/unique_ptr.h (__cpp_lib_make_unique): 6296 Likewise. 6297 * include/bits/unordered_map.h (__cpp_lib_unordered_map_try_emplace): 6298 Likewise. 6299 * include/c_global/cmath (__cpp_lib_hypot): Likewise. 6300 * include/c_global/cstddef (__cpp_lib_byte): Likewise. 6301 * include/std/atomic (__cpp_lib_atomic_is_always_lock_free): 6302 Likewise. 6303 * include/std/complex (__cpp_lib_complex_udls): Likewise. 6304 * include/std/filesystem (__cpp_lib_filesystem): Likewise. 6305 * include/std/functional (__cpp_lib_not_fn): Likewise. 6306 (__cpp_lib_boyer_moore_searcher): Likewise. 6307 * include/std/iomanip (__cpp_lib_quoted_string_io): Likewise. 6308 * include/std/mutex (__cpp_lib_scoped_lock): Likewise. 6309 * include/std/numeric (__cpp_lib_gcd_lcm): Likewise. 6310 (__cpp_lib_gcd, __cpp_lib_lcm): Likewise. 6311 * include/std/tuple (__cpp_lib_apply): Likewise. 6312 (__cpp_lib_make_from_tuple): Likewise. 6313 * include/std/type_traits (__cpp_lib_integral_constant_callable) 6314 (__cpp_lib_bool_constant, __cpp_lib_logical_traits) 6315 (__cpp_lib_is_null_pointer, __cpp_lib_transformation_trait_aliases) 6316 (__cpp_lib_result_of_sfinae, __cpp_lib_void_t) 6317 (__cpp_lib_is_swappable, __cpp_lib_is_invocable) 6318 (__cpp_lib_has_unique_object_representations) 6319 (__cpp_lib_is_aggregate): Likewise. 6320 * include/std/version: Likewise. 6321 * libsupc++/new (__cpp_lib_launder): Likewise. 6322 6323 2022-01-21 Jonathan Wakely <jwakely (a] redhat.com> 6324 6325 * include/std/version (__cpp_lib_shared_ptr_arrays): Fix 6326 condition for C++17 definition. 6327 6328 2022-01-21 Jonathan Wakely <jwakely (a] redhat.com> 6329 6330 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count): 6331 Add constexpr. 6332 (_Sp_atomic::_M_ptr): Add default member-initializer. 6333 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: 6334 Check constant initialization. 6335 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: Likewise. 6336 6337 2022-01-20 Jonathan Wakely <jwakely (a] redhat.com> 6338 6339 * src/c++11/cxx11-ios_failure.cc (__constinit): Define as 6340 equivalent attribute for Clang. 6341 * src/c++11/future.cc (__constinit): Likewise. 6342 * src/c++11/system_error.cc (__constinit): Likewise. 6343 * src/c++17/memory_resource.cc (__constinit): Likewise. 6344 6345 2022-01-20 Jonathan Wakely <jwakely (a] redhat.com> 6346 6347 * scripts/testsuite_flags.in: Only add src/filesystem/.libs and 6348 src/libbacktrace/.libs to LDFLAGS if those directories exist. 6349 6350 2022-01-19 Jonathan Wakely <jwakely (a] redhat.com> 6351 6352 * configure.ac (GLIBCXX_ENABLE_DEBUG_FLAGS): Remove -gdwarf-4 6353 from default flags. 6354 * configure: Regenerate. 6355 6356 2022-01-19 Jonathan Wakely <jwakely (a] redhat.com> 6357 6358 PR libstdc++/104123 6359 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: Include 6360 <stddef.h>. 6361 6362 2022-01-19 Jonathan Wakely <jwakely (a] redhat.com> 6363 6364 * scripts/testsuite_flags.in: Add src/libbacktrace/.libs to 6365 linker search paths. 6366 * src/Makefile.am: Fix src/debug/libbacktrace build. 6367 * src/Makefile.in: Regenerate. 6368 * src/libbacktrace/Makefile.am: Use per-library CPPFLAGS 6369 variable. Use symlinks for the source files. 6370 * src/libbacktrace/Makefile.in: Regenerate. 6371 6372 2022-01-19 Matthias Kretz <m.kretz (a] gsi.de> 6373 6374 * include/experimental/bits/simd.h (__floating_point_flags): Do 6375 not rely on math_errhandling to expand to a constant expression. 6376 6377 2022-01-19 Jonathan Wakely <jwakely (a] redhat.com> 6378 6379 * doc/xml/manual/evolution.xml: Document deprecations. 6380 * doc/xml/manual/status_cxx2017.xml: Update status. 6381 * doc/html/*: Regenerate. 6382 6383 2022-01-19 Jonathan Wakely <jwakely (a] redhat.com> 6384 6385 * include/bits/stl_tempbuf.h (get_temporary_buffer): Change 6386 _GLIBCXX14_DEPRECATED to _GLIBCXX17_DEPRECATED. 6387 6388 2022-01-19 Jonathan Wakely <jwakely (a] redhat.com> 6389 6390 * include/bits/stl_pair.h (_PCC::_DeprConsPair): Remove unused 6391 function. 6392 6393 2022-01-19 Jonathan Wakely <jwakely (a] redhat.com> 6394 6395 PR libstdc++/104101 6396 * include/bits/shared_ptr_atomic.h (_Sp_atomic::_Atomic_count::lock): 6397 Only use __thread_relax if __cpp_lib_atomic_wait is defined. 6398 6399 2022-01-18 Jonathan Wakely <jwakely (a] redhat.com> 6400 6401 PR libstdc++/104099 6402 * include/bits/basic_string.h (basic_string(nullptr_t)): Only 6403 define for C++23. 6404 (operator=(nullptr_t)): Likewise. 6405 * include/bits/cow_string.h: Likewise. 6406 * include/std/string_view (basic_string_view(nullptr_t)): 6407 Likewise. 6408 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: Adjust 6409 expected error. Add examples that become ill-formed in C++23. 6410 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: 6411 Adjust expected errors. 6412 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc: 6413 Likewise. 6414 6415 2022-01-18 Jonathan Wakely <jwakely (a] redhat.com> 6416 6417 PR libstdc++/104098 6418 * include/bits/stl_iterator.h (reverse_iterator): Check 6419 __cpp_lib_concepts instead of __cplusplus. 6420 6421 2022-01-18 Jonathan Wakely <jwakely (a] redhat.com> 6422 6423 PR libstdc++/101124 6424 * include/bits/stl_pair.h (pair): Adjust constraints on 6425 deprecated constructors accepting literal zero as null pointer 6426 constant. Improve wording of deprecated attribute. 6427 * testsuite/20_util/pair/cons/99957.cc: Check that deprecated 6428 constructors do not cause ambiguities for copyable types. 6429 6430 2022-01-18 Jonathan Wakely <jwakely (a] redhat.com> 6431 6432 * include/bits/stl_function.h (ptr_fun): Fix suggestion for 6433 non-deprecated alternative. 6434 6435 2022-01-18 Tom Honermann <tom (a] honermann.net> 6436 6437 * acinclude.m4: Define config macros if uchar.h provides 6438 c8rtomb() and mbrtoc8(). 6439 * config.h.in: Regenerate. 6440 * configure: Regenerate. 6441 * include/c_compatibility/uchar.h (c8rtomb, mbrtoc8): Define. 6442 * include/c_global/cuchar (c8rtomb, mbrtoc8): Likewise. 6443 * include/c_std/cuchar (c8rtomb, mbrtoc8): Likewise. 6444 * testsuite/21_strings/headers/cuchar/functions_std_cxx20.cc: 6445 New test. 6446 * testsuite/21_strings/headers/cuchar/functions_std_fchar8_t.cc: 6447 New test. 6448 6449 2022-01-18 Jonathan Wakely <jwakely (a] redhat.com> 6450 6451 * include/Makefile.am: Install new header. 6452 * include/Makefile.in: Regenerate. 6453 * include/c_compatibility/stdatomic.h: New file. 6454 * testsuite/29_atomics/headers/stdatomic.h/c_compat.cc: New test. 6455 6456 2022-01-18 Jonathan Wakely <jwakely (a] redhat.com> 6457 6458 PR libstdc++/104080 6459 * src/c++17/fast_float/LOCAL_PATCHES: Update. 6460 * src/c++17/fast_float/fast_float.h (FASTFLOAT_IS_BIG_ENDIAN): 6461 Define in terms of __BYTE_ORDER__. 6462 6463 2022-01-18 Jonathan Wakely <jwakely (a] redhat.com> 6464 6465 PR libstdc++/104080 6466 * src/c++17/fast_float/LOCAL_PATCHES: UPDATE. 6467 * src/c++17/fast_float/fast_float.h (round): Use explicit 6468 template argument list for std::min. 6469 6470 2022-01-18 Jonathan Wakely <jwakely (a] redhat.com> 6471 6472 * doc/xml/manual/status_cxx2017.xml: Update C++17 status. 6473 * doc/xml/manual/status_cxx2020.xml: Use 12.1 instead of 12 for 6474 upcoming release. 6475 * doc/html/manual/status.html: Regenerate. 6476 6477 2022-01-18 Jonathan Wakely <jwakely (a] redhat.com> 6478 6479 * acinclude.m4 (GLIBCXX_ENABLE_FULLY_DYNAMIC_STRING): Improve 6480 comments. 6481 * configure: Regenerate. 6482 6483 2022-01-17 Patrick Palka <ppalka (a] redhat.com> 6484 6485 * src/c++17/floating_from_chars.cc: (USE_LIB_FAST_FLOAT): 6486 Conditionally define, and use it to conditionally include 6487 fast_float. 6488 (from_chars): Use fast_float for float and double when 6489 USE_LIB_FAST_FLOAT. 6490 6491 2022-01-17 Patrick Palka <ppalka (a] redhat.com> 6492 6493 * src/c++17/fast_float/LOCAL_PATCHES: Update. 6494 * src/c++17/fast_float/fast_float.h (from_chars_advanced): In 6495 case of over/underflow, return errc::result_out_of_range and don't 6496 modify 'value'. 6497 6498 2022-01-17 Patrick Palka <ppalka (a] redhat.com> 6499 6500 * src/c++17/fast_float/LOCAL_PATCHES: Update. 6501 * src/c++17/fast_float/fast_float.h: Apply local modifications. 6502 6503 2022-01-17 Patrick Palka <ppalka (a] redhat.com> 6504 6505 * src/c++17/fast_float/LOCAL_PATCHES: New file. 6506 * src/c++17/fast_float/MERGE: New file. 6507 * src/c++17/fast_float/README.md: New file, copied from the 6508 fast_float repository. 6509 * src/c++17/fast_float/fast_float.h: New file, an amalgamation 6510 of the fast_float library. 6511 6512 2022-01-17 Patrick Palka <ppalka (a] redhat.com> 6513 6514 * src/c++17/floating_from_chars.cc: Include <bit>. 6515 (ascii_to_hexit, starts_with_ci): Conditionally define. 6516 (__floating_from_chars_hex): Conditionally define. 6517 (from_chars): Use __floating_from_chars_hex for 6518 chars_format::hex parsing of binary32/64 float/double. 6519 (testsuite/20_util/from_chars/7.cc): New test. 6520 * testsuite/20_util/from_chars/7.cc: New file. 6521 6522 2022-01-17 Jonathan Wakely <jwakely (a] redhat.com> 6523 6524 * acinclude.m4 (GLIBCXX_ENABLE_BACKTRACE): New macro. 6525 * configure.ac: Use GLIBCXX_ENABLE_BACKTRACE. 6526 * include/Makefile.am: Add new header. 6527 * include/Makefile.in: Regenerate. 6528 * include/std/stacktrace: New header. 6529 * include/std/version (__cpp_lib_stacktrace): Define. 6530 * Makefile.in: Regenerate. 6531 * config.h.in: Regenerate. 6532 * configure: Regenerate. 6533 * doc/Makefile.in: Regenerate. 6534 * libsupc++/Makefile.in: Regenerate. 6535 * po/Makefile.in: Regenerate. 6536 * python/Makefile.in: Regenerate. 6537 * src/Makefile.am: Regenerate. 6538 * src/Makefile.in: Regenerate. 6539 * src/c++11/Makefile.in: Regenerate. 6540 * src/c++17/Makefile.in: Regenerate. 6541 * src/c++20/Makefile.in: Regenerate. 6542 * src/c++98/Makefile.in: Regenerate. 6543 * src/filesystem/Makefile.in: Regenerate. 6544 * testsuite/Makefile.in: Regenerate. 6545 * src/libbacktrace/Makefile.am: New file. 6546 * src/libbacktrace/Makefile.in: New file. 6547 * src/libbacktrace/backtrace-rename.h: New file. 6548 * src/libbacktrace/backtrace-supported.h.in: New file. 6549 * src/libbacktrace/config.h.in: New file. 6550 * testsuite/lib/libstdc++.exp (check_effective_target_stacktrace): 6551 New proc. 6552 * testsuite/20_util/stacktrace/entry.cc: New test. 6553 * testsuite/20_util/stacktrace/synopsis.cc: New test. 6554 * testsuite/20_util/stacktrace/version.cc: New test. 6555 6556 2022-01-17 Jonathan Wakely <jwakely (a] redhat.com> 6557 6558 * doc/xml/manual/status_cxx2020.xml: Use final C++20 option 6559 names. 6560 * doc/html/manual/status.html: Regenerate. 6561 6562 2022-01-17 Jonathan Wakely <jwakely (a] redhat.com> 6563 6564 PR libstdc++/103650 6565 * include/Makefile.am: Rename LT_OBJDIR and STDC_HEADERS. 6566 * include/Makefile.in: Regenerate. 6567 * testsuite/17_intro/headers/c++1998/103650.cc: New test. 6568 6569 2022-01-17 Matthias Kretz <m.kretz (a] gsi.de> 6570 6571 * include/experimental/bits/simd.h (__floating_point_flags): Do 6572 not rely on the presence of the math_errhandling macro. 6573 6574 2022-01-17 Jonathan Wakely <jwakely (a] redhat.com> 6575 6576 * include/bits/shared_ptr_atomic.h (_Sp_atomic): Add typename 6577 to qualified-id for dependent type. 6578 6579 2022-01-17 Jonathan Wakely <jwakely (a] redhat.com> 6580 6581 * doc/xml/manual/status_cxx2020.xml: Update. 6582 * doc/html/manual/status.html: Regenerate. 6583 6584 2022-01-17 Jonathan Wakely <jwakely (a] redhat.com> 6585 Thomas Rodgers <trodgers (a] redhat.com> 6586 6587 * include/bits/shared_ptr_atomic.h (__cpp_lib_atomic_shared_ptr): 6588 New macro. 6589 (_Sp_atomic): New class template. 6590 (atomic<shared_ptr<T>>, atomic<weak_ptr<T>>): New partial 6591 specializations. 6592 * include/bits/shared_ptr_base.h (__shared_count, __weak_count) 6593 (__shared_ptr, __weak_ptr): Declare _Sp_atomic as a friend. 6594 * include/std/version (__cpp_lib_atomic_shared_ptr): New macro. 6595 * testsuite/20_util/shared_ptr/atomic/atomic_shared_ptr.cc: New 6596 test. 6597 * testsuite/20_util/weak_ptr/atomic_weak_ptr.cc: New test. 6598 6599 2022-01-15 Matthias Kretz <m.kretz (a] gsi.de> 6600 6601 * include/experimental/bits/simd.h: Move feature detection bools 6602 and add __have_avx512bitalg, __have_avx512vbmi2, 6603 __have_avx512vbmi, __have_avx512ifma, __have_avx512cd, 6604 __have_avx512vnni, __have_avx512vpopcntdq. 6605 (__detail::__machine_flags): New function which returns a unique 6606 uint64 depending on relevant -m and -f flags. 6607 (__detail::__odr_helper): New type alias for either an anonymous 6608 type or a type specialized with the __machine_flags number. 6609 (_SimdIntOperators): Change template parameters from _Impl to 6610 _Tp, _Abi because _Impl now has an __odr_helper parameter which 6611 may be _OdrEnforcer from the anonymous namespace, which makes 6612 for a bad base class. 6613 (many): Either add __odr_helper template parameter or mark as 6614 always_inline. 6615 * include/experimental/bits/simd_detail.h: Add defines for 6616 AVX512BITALG, AVX512VBMI2, AVX512VBMI, AVX512IFMA, AVX512CD, 6617 AVX512VNNI, AVX512VPOPCNTDQ, and AVX512VP2INTERSECT. 6618 * include/experimental/bits/simd_builtin.h: Add __odr_helper 6619 template parameter or mark as always_inline. 6620 * include/experimental/bits/simd_fixed_size.h: Ditto. 6621 * include/experimental/bits/simd_math.h: Ditto. 6622 * include/experimental/bits/simd_scalar.h: Ditto. 6623 * include/experimental/bits/simd_neon.h: Add __odr_helper 6624 template parameter. 6625 * include/experimental/bits/simd_ppc.h: Ditto. 6626 * include/experimental/bits/simd_x86.h: Ditto. 6627 6628 2022-01-14 Uro Bizjak <ubizjak (a] gmail.com> 6629 6630 * testsuite/22_locale/numpunct/members/char/3.cc: 6631 Require pt_PT locale instead of nl_NL. 6632 (test02): Use pt_PT locale instead of nl_NL. 6633 6634 2022-01-14 Jonathan Wakely <jwakely (a] redhat.com> 6635 6636 PR libstdc++/91260 6637 PR libstdc++/91383 6638 PR libstdc++/95065 6639 * include/backward/binders.h (bind1st, bind2nd): Add deprecated 6640 attribute. 6641 * include/bits/refwrap.h (_Maybe_unary_or_binary_function): 6642 Disable deprecated warnings for base classes. 6643 (_Reference_wrapper_base): Likewise. 6644 * include/bits/shared_ptr_base.h (_Sp_owner_less): Likewise. 6645 * include/bits/stl_bvector.h (_Bit_iterator_base): Likewise. 6646 * include/bits/stl_function.h (unary_function, binary_function): 6647 Add deprecated attribute. 6648 (unary_negate, not1, binary_negate, not2, ptr_fun) 6649 (pointer_to_unary_function, pointer_to_binary_function) 6650 (mem_fun_t, const_mem_fun_t, mem_fun_ref_t, const_mem_fun_ref_t) 6651 (mem_fun1_t, const_mem_fun1_t, mem_fun_ref1_t) 6652 (const_mem_fun1_ref_t, mem_fun, mem_fun_ref): Add deprecated 6653 attributes. 6654 * include/bits/stl_iterator.h: Disable deprecated warnings for 6655 std::iterator base classes. 6656 * include/bits/stl_iterator_base_types.h (iterator): Add 6657 deprecated attribute. 6658 * include/bits/stl_map.h (map::value_compare): Disable 6659 deprecated warnings for base class. 6660 * include/bits/stl_multimap.h (multimap::value_compare): 6661 Likewise. 6662 * include/bits/stl_raw_storage_iter.h (raw_storage_iterator): 6663 Add deprecated attribute. 6664 * include/bits/stl_tempbuf.h (get_temporary_buffer): Likewise. 6665 * include/bits/stream_iterator.h: Disable deprecated warnings. 6666 * include/bits/streambuf_iterator.h: Likewise. 6667 * include/ext/bitmap_allocator.h: Remove unary_function base 6668 classes. 6669 * include/ext/functional: Disable deprecated warnings. 6670 * include/ext/rope: Likewise. 6671 * include/ext/throw_allocator.h: Likewise. 6672 * include/std/type_traits (result_of): Add deprecated attribute. 6673 * include/tr1/functional: Disable deprecated warnings. 6674 * include/tr1/functional_hash.h: Likewise. 6675 * testsuite/20_util/function_objects/binders/1.cc: Add 6676 -Wno-disable-deprecations. 6677 * testsuite/20_util/function_objects/binders/3113.cc: Likewise. 6678 * testsuite/20_util/function_objects/constexpr.cc: Add 6679 dg-warning. 6680 * testsuite/20_util/raw_storage_iterator/base.cc: Likewise. 6681 * testsuite/20_util/raw_storage_iterator/dr2127.cc: Likewise. 6682 * testsuite/20_util/raw_storage_iterator/requirements/base_classes.cc: 6683 Likewise. 6684 * testsuite/20_util/raw_storage_iterator/requirements/explicit_instantiation/1.cc: 6685 Likewise. 6686 * testsuite/20_util/raw_storage_iterator/requirements/typedefs.cc: 6687 Likewise. 6688 * testsuite/20_util/reference_wrapper/24803.cc: 6689 Likewise. 6690 * testsuite/20_util/reference_wrapper/typedefs.cc: Enable for 6691 C++20 and check for absence of nested types. 6692 * testsuite/20_util/shared_ptr/comparison/less.cc: Remove 6693 std::binary_function base class. 6694 * testsuite/20_util/temporary_buffer.cc: Add dg-warning. 6695 * testsuite/21_strings/basic_string/cons/char/69092.cc: Remove 6696 std::iterator base class. 6697 * testsuite/24_iterators/back_insert_iterator/requirements/base_classes.cc: 6698 Likewise. 6699 * testsuite/24_iterators/front_insert_iterator/requirements/base_classes.cc: 6700 Likewise. 6701 * testsuite/24_iterators/insert_iterator/requirements/base_classes.cc: 6702 Likewise. 6703 * testsuite/24_iterators/istream_iterator/requirements/base_classes.cc: 6704 Likewise. 6705 * testsuite/24_iterators/istreambuf_iterator/92285.cc: 6706 Likewise. 6707 * testsuite/24_iterators/istreambuf_iterator/requirements/base_classes.cc: 6708 Likewise. 6709 * testsuite/24_iterators/ostream_iterator/requirements/base_classes.cc: 6710 Likewise. 6711 * testsuite/24_iterators/ostreambuf_iterator/requirements/base_classes.cc: 6712 Likewise. 6713 * testsuite/24_iterators/reverse_iterator/requirements/base_classes.cc: 6714 Likewise. 6715 * testsuite/25_algorithms/copy/34595.cc: 6716 Likewise. 6717 * testsuite/25_algorithms/minmax/3.cc: Remove std::binary_function 6718 base class. 6719 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/2.cc: 6720 Disable deprecated warnings. 6721 * testsuite/25_algorithms/all_of/requirements/explicit_instantiation/pod.cc: 6722 Likewise. 6723 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/2.cc: 6724 Likewise. 6725 * testsuite/25_algorithms/any_of/requirements/explicit_instantiation/pod.cc: 6726 Likewise. 6727 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/2.cc: 6728 Likewise. 6729 * testsuite/25_algorithms/copy_if/requirements/explicit_instantiation/pod.cc: 6730 Likewise. 6731 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/2.cc: 6732 Likewise. 6733 * testsuite/25_algorithms/count_if/requirements/explicit_instantiation/pod.cc: 6734 Likewise. 6735 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/2.cc: 6736 Likewise. 6737 * testsuite/25_algorithms/find_end/requirements/explicit_instantiation/pod.cc: 6738 Likewise. 6739 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/2.cc: 6740 Likewise. 6741 * testsuite/25_algorithms/find_first_of/requirements/explicit_instantiation/pod.cc: 6742 Likewise. 6743 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/2.cc: 6744 Likewise. 6745 * testsuite/25_algorithms/find_if/requirements/explicit_instantiation/pod.cc: 6746 Likewise. 6747 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/2.cc: 6748 Likewise. 6749 * testsuite/25_algorithms/find_if_not/requirements/explicit_instantiation/pod.cc: 6750 Likewise. 6751 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/2.cc: 6752 Likewise. 6753 * testsuite/25_algorithms/for_each/requirements/explicit_instantiation/pod.cc: 6754 Likewise. 6755 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/2.cc: 6756 Likewise. 6757 * testsuite/25_algorithms/is_partitioned/requirements/explicit_instantiation/pod.cc: 6758 Likewise. 6759 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/2.cc: 6760 Likewise. 6761 * testsuite/25_algorithms/is_permutation/requirements/explicit_instantiation/pod.cc: 6762 Likewise. 6763 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/2.cc: 6764 Likewise. 6765 * testsuite/25_algorithms/none_of/requirements/explicit_instantiation/pod.cc: 6766 Likewise. 6767 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/2.cc: 6768 Likewise. 6769 * testsuite/25_algorithms/partition/requirements/explicit_instantiation/pod.cc: 6770 Likewise. 6771 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/2.cc: 6772 Likewise. 6773 * testsuite/25_algorithms/partition_copy/requirements/explicit_instantiation/pod.cc: 6774 Likewise. 6775 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/2.cc: 6776 Likewise. 6777 * testsuite/25_algorithms/partition_point/requirements/explicit_instantiation/pod.cc: 6778 Likewise. 6779 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc: 6780 Likewise. 6781 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc: 6782 Likewise. 6783 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/2.cc: 6784 Likewise. 6785 * testsuite/25_algorithms/remove_copy_if/requirements/explicit_instantiation/pod.cc: 6786 Likewise. 6787 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/2.cc: 6788 Likewise. 6789 * testsuite/25_algorithms/remove_if/requirements/explicit_instantiation/pod.cc: 6790 Likewise. 6791 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/2.cc: 6792 Likewise. 6793 * testsuite/25_algorithms/replace_copy_if/requirements/explicit_instantiation/pod.cc: 6794 Likewise. 6795 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/2.cc: 6796 Likewise. 6797 * testsuite/25_algorithms/replace_if/requirements/explicit_instantiation/pod.cc: 6798 Likewise. 6799 * testsuite/25_algorithms/search/requirements/explicit_instantiation/2.cc: 6800 Likewise. 6801 * testsuite/25_algorithms/search/requirements/explicit_instantiation/pod.cc: 6802 Likewise. 6803 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/2.cc: 6804 Likewise. 6805 * testsuite/25_algorithms/search_n/requirements/explicit_instantiation/pod.cc: 6806 Likewise. 6807 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/2.cc: 6808 Likewise. 6809 * testsuite/25_algorithms/stable_partition/requirements/explicit_instantiation/pod.cc: 6810 Likewise. 6811 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/2.cc: 6812 Likewise. 6813 * testsuite/25_algorithms/transform/requirements/explicit_instantiation/pod.cc: 6814 Likewise. 6815 * testsuite/27_io/basic_filebuf/underflow/wchar_t/9178.cc: Add 6816 dg-warning. 6817 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc: 6818 Likewise. 6819 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc: 6820 Likewise. 6821 * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc: 6822 Disable deprecated warnings. 6823 * testsuite/tr1/6_containers/hash/requirements/base_classes.cc: 6824 Likewise. 6825 * testsuite/util/regression/trait/erase_if_fn.hpp: Remove 6826 std::unary_function base classes. 6827 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper): 6828 Remove std::iterator base classes. 6829 6830 2022-01-14 Jonathan Wakely <jwakely (a] redhat.com> 6831 6832 * include/bits/shared_ptr.h (__cpp_lib_shared_ptr_weak_type): 6833 Correct type of macro value. 6834 (shared_ptr): Add additional friend declarations. 6835 (make_shared, allocate_shared): Constrain existing overloads and 6836 remove static_assert. 6837 * include/bits/shared_ptr_base.h (__cpp_lib_smart_ptr_for_overwrite): 6838 New macro. 6839 (_Sp_counted_ptr_inplace<T, Alloc, Lp>): New partial 6840 specialization for use with make_shared_for_overwrite. 6841 (__cpp_lib_shared_ptr_arrays): Update value for C++20. 6842 (_Sp_counted_array_base): New class template. 6843 (_Sp_counted_array): New class template. 6844 (__shared_count(_Tp*&, const _Sp_counted_array_base&, _Init)): 6845 New constructor for allocating shared arrays. 6846 (__shared_ptr(const _Sp_counted_array_base&, _Init)): Likewise. 6847 * include/std/version (__cpp_lib_shared_ptr_weak_type): Correct 6848 type. 6849 (__cpp_lib_shared_ptr_arrays): Update value for C++20. 6850 (__cpp_lib_smart_ptr_for_overwrite): New macro. 6851 * testsuite/20_util/shared_ptr/creation/99006.cc: Adjust 6852 expected errors. 6853 * testsuite/20_util/shared_ptr/creation/array.cc: New test. 6854 * testsuite/20_util/shared_ptr/creation/overwrite.cc: New test. 6855 * testsuite/20_util/shared_ptr/creation/version.cc: New test. 6856 * testsuite/20_util/unique_ptr/creation/for_overwrite.cc: Check 6857 feature test macro. Test non-trivial default-initialization. 6858 6859 2022-01-14 Jonathan Wakely <jwakely (a] redhat.com> 6860 6861 * include/bits/stl_construct.h (_Construct, _Construct_novalue): 6862 Also cast away cv-qualifiers when converting pointer to void. 6863 * testsuite/20_util/allocator/void.cc: Test construct function 6864 with cv-qualified types. 6865 6866 2022-01-14 Jonathan Wakely <jwakely (a] redhat.com> 6867 6868 PR libstdc++/103992 6869 * include/bits/stl_iterator.h (common_iterator): Use 6870 std::construct_at instead of placement new. 6871 * testsuite/24_iterators/common_iterator/1.cc: Check copy 6872 construction is usable in constant expressions. 6873 6874 2022-01-14 Jonathan Wakely <jwakely (a] redhat.com> 6875 6876 * doc/xml/manual/status_cxx2011.xml: Document new tokens 6877 accepted by std::random_device constructor. 6878 * doc/html/manual/status.html: Regenerate. 6879 6880 2022-01-12 Patrick Palka <ppalka (a] redhat.com> 6881 6882 * testsuite/20_util/to_chars/103955.cc: Add explicit dg-do 6883 directive. 6884 6885 2022-01-12 Patrick Palka <ppalka (a] redhat.com> 6886 6887 PR libstdc++/103955 6888 * src/c++17/floating_to_chars.cc (__floating_to_chars_hex): 6889 Track the excess precision separately from the effective 6890 precision. Avoid overflow in bounds check by splitting it into 6891 two checks. 6892 (__floating_to_chars_precision): Avoid overflow in bounds checks 6893 similarly. 6894 * testsuite/20_util/to_chars/103955.cc: New test. 6895 6896 2022-01-11 Jonathan Wakely <jwakely (a] redhat.com> 6897 6898 PR libstdc++/103726 6899 * include/Makefile.am: Install <source_location> for 6900 freestanding. 6901 * include/Makefile.in: Regenerate. 6902 * include/std/version (__cpp_lib_source_location): Define for 6903 freestanding. 6904 6905 2022-01-11 Jonathan Wakely <jwakely (a] redhat.com> 6906 6907 * include/std/ranges (ranges::lazy_split_view::_InnerIter::end()): 6908 Add neoxcept (LWG 3593). 6909 6910 2022-01-11 Jonathan Wakely <jwakely (a] redhat.com> 6911 6912 * include/std/ranges (ranges::__detail::__box): Add constexpr to 6913 assignment operators (LWG 3572). 6914 * testsuite/std/ranges/adaptors/filter.cc: Check assignment of a 6915 view that uses copyable-box. 6916 6917 2022-01-11 Jonathan Wakely <jwakely (a] redhat.com> 6918 6919 PR libstdc++/103726 6920 * include/Makefile.am: Install <coroutine> for freestanding. 6921 * include/Makefile.in: Regenerate. 6922 * include/std/coroutine: Adjust headers and preprocessor 6923 conditions. 6924 (__coroutine_traits_impl): Use concepts when available. 6925 [_GLIBCXX_HOSTED] (hash<coroutine_handle>): Define. 6926 6927 2022-01-11 Jonathan Wakely <jwakely (a] redhat.com> 6928 6929 * include/std/ostream (operator<<(basic_ostream&, charT)): 6930 Use unformatted input if no padding is needed. 6931 (operator<<(basic_ostream<char>&, char)): Likewise. 6932 6933 2022-01-11 Jonathan Wakely <jwakely (a] redhat.com> 6934 6935 PR libstdc++/103891 6936 * include/bits/c++config (_GLIBCXX_HAVE_COND_TRIVIAL_SPECIAL_MEMBERS): 6937 Define. 6938 * include/std/variant (__cpp_lib_variant): Only define C++20 6939 value when the compiler is known to support conditionally 6940 trivial destructors. 6941 * include/std/version (__cpp_lib_variant): Likewise. 6942 6943 2022-01-11 Jonathan Wakely <jwakely (a] redhat.com> 6944 6945 * include/bits/stl_iterator.h (common_iterator): Add constexpr 6946 to all member functions (LWG 3574). 6947 * testsuite/24_iterators/common_iterator/1.cc: Evaluate some 6948 tests as constant expressions. 6949 * testsuite/24_iterators/common_iterator/2.cc: Likewise. 6950 6951 2022-01-10 Jakub Jelinek <jakub (a] redhat.com> 6952 6953 PR libstdc++/77760 6954 * include/bits/locale_facets_nonio.h (__time_get_state): New struct. 6955 (time_get::_M_extract_via_format): Declare new method with 6956 __time_get_state& as an extra argument. 6957 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Add 6958 __state argument, set various fields in it while parsing. Handle %j, 6959 %U, %w and %W, fix up handling of %y, %Y and %C, don't adjust tm_hour 6960 for %p immediately. Add a wrapper around the method without the 6961 __state argument for backwards compatibility. 6962 (_M_extract_num): Remove all __len == 4 special cases. 6963 (time_get::do_get_time, time_get::do_get_date, time_get::do_get): Zero 6964 initialize __state, pass it to _M_extract_via_format and finalize it 6965 at the end. 6966 (do_get_year): For 1-2 digit parsed years, map 0-68 to 2000-2068, 6967 69-99 to 1969-1999. For 3-4 digit parsed years use that as year. 6968 (get): If do_get isn't overloaded from the locale_facets_nonio.tcc 6969 version, don't call do_get but call _M_extract_via_format instead to 6970 pass around state. 6971 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_extract_via_format 6972 with extra __time_get_state and __time_get_state::_M_finalize_state. 6973 * src/c++98/locale_facets.cc (is_leap, day_of_the_week, 6974 day_of_the_year): New functions in anon namespace. 6975 (mon_yday): New var in anon namespace. 6976 (__time_get_state::_M_finalize_state): Define. 6977 * testsuite/22_locale/time_get/get/char/4.cc: New test. 6978 * testsuite/22_locale/time_get/get/wchar_t/4.cc: New test. 6979 * testsuite/22_locale/time_get/get_year/char/1.cc (test01): Parse 197 6980 as year 197AD instead of error. 6981 * testsuite/22_locale/time_get/get_year/char/5.cc (test01): Parse 1 as 6982 year 2001 instead of error. 6983 * testsuite/22_locale/time_get/get_year/char/6.cc: New test. 6984 * testsuite/22_locale/time_get/get_year/wchar_t/1.cc (test01): Parse 6985 197 as year 197AD instead of error. 6986 * testsuite/22_locale/time_get/get_year/wchar_t/5.cc (test01): Parse 6987 1 as year 2001 instead of error. 6988 * testsuite/22_locale/time_get/get_year/wchar_t/6.cc: New test. 6989 6990 2022-01-10 Jonathan Wakely <jwakely (a] redhat.com> 6991 6992 PR libstdc++/103866 6993 * acinclude.m4 (GLIBCXX_COMPUTE_STDIO_INTEGER_CONSTANTS): Do 6994 nothing for freestanding builds. 6995 (GLIBCXX_ENABLE_HOSTED): Define FREESTANDING_FLAGS. 6996 * configure.ac: Do not use AC_LIBTOOL_DLOPEN when configured 6997 with --without-headers. Do not use GCC_HEADER_STDINT for 6998 freestanding builds. 6999 * libsupc++/Makefile.am (HOSTED_CXXFLAGS): Use -ffreestanding 7000 for freestanding builds. 7001 * configure: Regenerate. 7002 * Makefile.in: Regenerate. 7003 * doc/Makefile.in: Regenerate. 7004 * include/Makefile.in: Regenerate. 7005 * libsupc++/Makefile.in: Regenerate. 7006 * po/Makefile.in: Regenerate. 7007 * python/Makefile.in: Regenerate. 7008 * src/Makefile.in: Regenerate. 7009 * src/c++11/Makefile.in: Regenerate. 7010 * src/c++17/Makefile.in: Regenerate. 7011 * src/c++20/Makefile.in: Regenerate. 7012 * src/c++98/Makefile.in: Regenerate. 7013 * src/filesystem/Makefile.in: Regenerate. 7014 * testsuite/Makefile.in: Regenerate. 7015 7016 2022-01-10 Jonathan Wakely <jwakely (a] redhat.com> 7017 7018 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc: 7019 Add dg-timeout-factor directive. 7020 * testsuite/28_regex/basic_regex/84110.cc: Likewise. 7021 * testsuite/28_regex/basic_regex/ctors/char/other.cc: Likewise. 7022 * testsuite/28_regex/match_results/102667.cc: Likewise. 7023 7024 2022-01-10 Jonathan Wakely <jwakely (a] redhat.com> 7025 7026 * doc/xml/manual/using.xml: Update documentation around default 7027 -std option. 7028 * doc/html/*: Regenerate. 7029 7030 2022-01-10 Jonathan Wakely <jwakely (a] redhat.com> 7031 7032 PR libstdc++/100017 7033 * src/c++17/Makefile.am (AM_CXXFLAGS): Add -nostdinc++. 7034 * src/c++17/Makefile.in: Regenerate. 7035 7036 2022-01-09 Sandra Loosemore <sandra (a] codesourcery.com> 7037 7038 * testsuite/18_support/type_info/constexpr.cc: Add explicit 7039 -fdelete-null-pointer-checks option. 7040 7041 2022-01-06 Pavel I. Kryukov <pavel.kryukov (a] phystech.edu> 7042 Jonathan Wakely <jwakely (a] redhat.com> 7043 7044 PR libstdc++/103853 7045 * include/bits/forward_list.tcc (forward_list::merge): Check for 7046 self-merge. 7047 * testsuite/23_containers/forward_list/operations/merge.cc: New test. 7048 7049 2022-01-06 Jonathan Wakely <jwakely (a] redhat.com> 7050 7051 * include/bits/regex.h (basic_regex, match_results): Qualify 7052 name in friend declaration, to work around Clang bug. 7053 7054 2022-01-06 Jonathan Wakely <jwakely (a] redhat.com> 7055 7056 * testsuite/ext/rope/pthread7-rope.cc: Add dg-timeout-factor. 7057 7058 2022-01-06 Jonathan Wakely <jwakely (a] redhat.com> 7059 7060 PR libstdc++/103911 7061 * include/std/charconv (__from_chars_alpha_to_num): Return 7062 char instead of unsigned char. Change invalid return value to 7063 127 instead of using numeric trait. 7064 (__from_chars_alnum): Fix comment. Do not use std::isdigit. 7065 Change type of variable to char. 7066 7067 2022-01-05 Franois Dumont <fdumont (a] gcc.gnu.org> 7068 7069 PR libstdc++/68303 7070 * include/bits/hashtable_policy.h 7071 (_Hashtable_hash_traits<_Hash>): New. 7072 (_Hash_code_base<>::_M_hash_code(const _Hash_node_value<>&)): New. 7073 (_Hashtable_base<>::_M_key_equals): New. 7074 (_Hashtable_base<>::_M_equals): Use latter. 7075 (_Hashtable_base<>::_M_key_equals_tr): New. 7076 (_Hashtable_base<>::_M_equals_tr): Use latter. 7077 * include/bits/hashtable.h 7078 (_Hashtable<>::__small_size_threshold()): New, use _Hashtable_hash_traits. 7079 (_Hashtable<>::find): Loop through elements to look for key if size is lower 7080 than __small_size_threshold(). 7081 (_Hashtable<>::_M_emplace(true_type, _Args&&...)): Likewise. 7082 (_Hashtable<>::_M_insert_unique(_Kt&&, _Args&&, const _NodeGenerator&)): Likewise. 7083 (_Hashtable<>::_M_compute_hash_code(const_iterator, const key_type&)): New. 7084 (_Hashtable<>::_M_emplace(const_iterator, false_type, _Args&&...)): Use latter. 7085 (_Hashtable<>::_M_find_before_node(const key_type&)): New. 7086 (_Hashtable<>::_M_erase(true_type, const key_type&)): Use latter. 7087 (_Hashtable<>::_M_erase(false_type, const key_type&)): Likewise. 7088 * src/c++11/hashtable_c++0x.cc: Include <bits/functional_hash.h>. 7089 * testsuite/util/testsuite_performance.h 7090 (report_performance): Use 9 width to display memory. 7091 * testsuite/performance/23_containers/insert_erase/unordered_small_size.cc: 7092 New performance test case. 7093 7094 2022-01-05 Jonathan Wakely <jwakely (a] redhat.com> 7095 7096 PR libstdc++/103919 7097 * include/bits/basic_string.h (basic_string(const T&, size_t, size_t)): 7098 Relax constraints on string_view parameter. 7099 * include/bits/cow_string.h (basic_string(const T&, size_t, size_t)): 7100 Likewise. 7101 * testsuite/21_strings/basic_string/cons/char/103919.cc: New test. 7102 7103 2022-01-05 Jonathan Wakely <jwakely (a] redhat.com> 7104 7105 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export new symbol for 7106 ARM EABI. 7107 * include/bits/c++config (_GLIBCXX23_CONSTEXPR): Define. 7108 * include/std/version (__cpp_lib_constexpr_typeinfo): Define. 7109 * libsupc++/tinfo.cc: Add #error to ensure non-inline definition 7110 is emitted. 7111 (type_info::__equal): Define alias symbol. 7112 * libsupc++/typeinfo (type_info::before): Combine different 7113 implementations into one. 7114 (type_info::operator==): Likewise. Use address equality for 7115 constant evaluation. Call __equal for targets that require the 7116 definition to be non-inline. 7117 * testsuite/18_support/type_info/constexpr.cc: New test. 7118 7119 2022-01-05 Jonathan Wakely <jwakely (a] redhat.com> 7120 7121 * src/c++11/cxx11-ios_failure.cc (io_error_category): Define 7122 class and virtual functions as 'final'. 7123 (io_category_instance): Use constinit union to make the object 7124 immortal. 7125 * src/c++11/future.cc (future_error_category): Define class and 7126 virtual functions as 'final'. 7127 (future_category_instance): Use constinit union. 7128 7129 2022-01-05 Jonathan Wakely <jwakely (a] redhat.com> 7130 7131 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Strip 7132 versioned namespace from the type name that is printed. 7133 7134 2022-01-05 Jonathan Wakely <jwakely (a] redhat.com> 7135 7136 * python/libstdcxx/v6/printers.py (StdRegexStatePrinter): New 7137 printer for std::regex NFA states. 7138 7139 2022-01-05 Jonathan Wakely <jwakely (a] redhat.com> 7140 7141 * testsuite/23_containers/forward_list/operations/1.cc: Fill in 7142 placeholders in comments. 7143 * testsuite/23_containers/forward_list/operations/2.cc: 7144 Likewise. 7145 * testsuite/23_containers/forward_list/operations/3.cc: 7146 Likewise. 7147 * testsuite/23_containers/forward_list/operations/4.cc: 7148 Likewise. 7149 * testsuite/23_containers/forward_list/operations/5.cc: 7150 Likewise. 7151 * testsuite/23_containers/forward_list/operations/6.cc: 7152 Likewise. 7153 * testsuite/23_containers/forward_list/operations/7.cc: 7154 Likewise. 7155 7156 2022-01-05 Jonathan Wakely <jwakely (a] redhat.com> 7157 7158 PR libstdc++/103848 7159 * include/bits/stl_deque.h (operator-): Do not use 0 as null 7160 pointer constant. 7161 7162 2022-01-05 Jonathan Wakely <jwakely (a] redhat.com> 7163 7164 * include/bits/alloc_traits.h (allocator_traits<allocator<void>>): 7165 Use std::_Construct for construct. 7166 7167 2022-01-05 Jonathan Wakely <jwakely (a] redhat.com> 7168 7169 PR libstdc++/103877 7170 * doc/xml/faq.xml: Add '-x c++' to preprocessor command. 7171 * doc/html/faq.html: Regenerate. 7172 7173 2022-01-05 Jonathan Wakely <jwakely (a] redhat.com> 7174 7175 * include/bits/regex.h (__regex_algo_impl): Change __policy and 7176 __match_mode template parameters to be function parameters. 7177 (regex_match, regex_search): Pass policy and match mode as 7178 function arguments. 7179 * include/bits/regex.tcc (__regex_algo_impl): Change template 7180 parameters to function parameters. 7181 * include/bits/regex_compiler.h (_RegexTranslatorBase): Use 7182 'if constexpr' for conditions using template parameters. 7183 (_RegexTranslator): Likewise. 7184 * include/bits/regex_executor.tcc (_Executor::_M_handle_accept): 7185 Likewise. 7186 * testsuite/util/testsuite_regex.h (regex_match_debug) 7187 (regex_search_debug): Move template arguments to function 7188 arguments. 7189 7190 2022-01-05 Jonathan Wakely <jwakely (a] redhat.com> 7191 7192 * testsuite/util/testsuite_regex.h (regex_match_debug): Compare 7193 results even if the match failed. 7194 7195 2022-01-05 Jonathan Wakely <jwakely (a] redhat.com> 7196 7197 * include/bits/regex_compiler.tcc: Adjust all calls to 7198 __throw_regex_error. 7199 * include/bits/regex_error.h (__throw_regex_error): Add noreturn 7200 attribute. 7201 * include/bits/regex_scanner.tcc: Likewise. 7202 * src/c++11/regex.cc (desc): New helper function. 7203 (regex_error::regex_error(error_type)): Use desc to get a string 7204 corresponding to the error code. 7205 7206 7208 Copyright (C) 2022 Free Software Foundation, Inc. 7209 7210 Copying and distribution of this file, with or without modification, 7211 are permitted in any medium without royalty provided the copyright 7212 notice and this notice are preserved. 7213