12021-12-15 François Dumont <fdumont@gcc.gnu.org> 2 3 * include/bits/stl_iterator.h 4 (std::pointer_traits<__gnu_cxx::__normal_iterator<>>): Remove. 5 (std::__to_address(const __gnu_cxx::__normal_iterator<>&)): New for C++11 to C++17. 6 * include/debug/safe_iterator.h 7 (std::__to_address(const __gnu_debug::_Safe_iterator<__gnu_cxx::__normal_iterator<>, 8 _Sequence>&)): New for C++11 to C++17. 9 * testsuite/24_iterators/normal_iterator/to_address.cc: Add check on std::vector::iterator 10 to validate both __gnu_cxx::__normal_iterator<> __to_address overload in normal mode and 11 __gnu_debug::_Safe_iterator in _GLIBCXX_DEBUG mode. 12 132021-12-15 Jakub Jelinek <jakub@redhat.com> 14 15 PR libstdc++/71557 16 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): 17 Compare characters other than format specifiers and whitespace 18 case insensitively. 19 (_M_extract_name): Compare characters case insensitively. 20 * testsuite/22_locale/time_get/get/char/71557.cc: New test. 21 * testsuite/22_locale/time_get/get/wchar_t/71557.cc: New test. 22 232021-12-14 Jonathan Wakely <jwakely@redhat.com> 24 25 PR libstdc++/103687 26 * testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Restore 27 original locale before returning. 28 * testsuite/22_locale/time_get/get_time/char/2.cc: Check for %p 29 in locale's T_FMT and adjust accordingly. 30 * testsuite/22_locale/time_get/get_time/wchar_t/2.cc: Likewise. 31 322021-12-14 Jonathan Wakely <jwakely@redhat.com> 33 34 PR libstdc++/102447 35 * include/bits/regex_compiler.h (_Compiler::_BracketState): New 36 class. 37 (_Compiler::_BrackeyMatcher): New alias template. 38 (_Compiler::_M_expression_term): Change pair<bool, CharT> 39 parameter to _BracketState. Process first character for 40 ECMAScript syntax as well as POSIX. 41 * include/bits/regex_compiler.tcc 42 (_Compiler::_M_insert_bracket_matcher): Pass _BracketState. 43 (_Compiler::_M_expression_term): Use _BracketState to store 44 state between calls. Improve handling of dashes in ranges. 45 * testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc: 46 Add more tests for ranges containing dashes. Check invalid 47 ranges with character class at the beginning. 48 492021-12-14 Jonathan Wakely <jwakely@redhat.com> 50 51 * include/ext/pointer.h (_Relative_pointer_impl::_UIntPtrType): 52 Rename to uintptr_t and define as __UINTPTR_TYPE__. 53 542021-12-14 Jonathan Wakely <jwakely@redhat.com> 55 56 * include/bits/regex_constants.h (__syntax_option, __match_flag): 57 Remove. 58 (syntax_option_type, match_flag_type): Define enumerators. 59 Use to initialize globals. Add constexpr to compound assignment 60 operators. 61 * include/bits/regex_error.h (error_type): Add comment. 62 * testsuite/28_regex/constants/constexpr.cc: Remove comment. 63 * testsuite/28_regex/constants/error_type.cc: Improve comment. 64 * testsuite/28_regex/constants/match_flag_type.cc: Check bitmask 65 requirements. 66 * testsuite/28_regex/constants/syntax_option_type.cc: Likewise. 67 682021-12-14 Jonathan Wakely <jwakely@redhat.com> 69 70 * include/bits/regex_compiler.tcc (_Compiler::_M_match_token): 71 Use reserved name for parameter. 72 * testsuite/17_intro/names.cc: Check "token". 73 742021-12-13 Jonathan Wakely <jwakely@redhat.com> 75 76 * scripts/make_exports.pl: Replace '?' with '.' when turning 77 a glob into a regex. 78 792021-12-13 Jonathan Wakely <jwakely@redhat.com> 80 81 * include/bits/ranges_base.h (ranges::size, ranges::empty): Add 82 explicit check for unbounded arrays before using ranges::begin. 83 * testsuite/std/ranges/access/empty.cc: Check handling of unbounded 84 arrays. 85 * testsuite/std/ranges/access/size.cc: Likewise. 86 872021-12-13 Jonathan Wakely <jwakely@redhat.com> 88 89 PR libstdc++/103664 90 * include/bits/regex.h (__regex_replace): Declare. 91 (regex_replace): Use it. 92 * include/bits/regex.tcc (__regex_replace): Replace regex_replace 93 definition with __regex_replace. 94 * testsuite/28_regex/algorithms/regex_replace/char/103664.cc: New test. 95 962021-12-11 Jason Merrill <jason@redhat.com> 97 98 PR c++/103534 99 * include/bits/basic_string.h (append (basic_string)): Call pointer 100 append instead of _M_append directly. 101 1022021-12-10 Jakub Jelinek <jakub@redhat.com> 103 104 PR libstdc++/71367 105 * config/locale/dragonfly/time_members.cc (_M_initialize_timepunct): 106 Initialize "C" _M_am_pm_format to %I:%M:%S %p rather than empty 107 string. 108 * config/locale/gnu/time_members.cc (_M_initialize_timepunct): 109 Likewise. 110 * config/locale/generic/time_members.cc (_M_initialize_timepunct): 111 Likewise. 112 * include/bits/locale_facets_nonio.h (_M_am_pm_format): New method. 113 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): Handle 114 %r. 115 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Export _M_am_pm_format 116 with const _CharT** argument, ensure it isn't exported in GLIBCXX_3.4. 117 * testsuite/22_locale/time_get/get/char/71367.cc: New test. 118 * testsuite/22_locale/time_get/get/wchar_t/71367.cc: New test. 119 1202021-12-10 Jakub Jelinek <jakub@redhat.com> 121 122 PR libstdc++/78714 123 * include/bits/locale_facets_nonio.tcc (_M_extract_via_format): 124 Mention in function comment it interprets strptime format string 125 rather than strftime. Handle %a and %A the same by accepting both 126 full and abbreviated names. Similarly handle %h, %b and %B the same. 127 Handle %d and %e the same by accepting possibly optional single space 128 and 1 or 2 digits. For %I store tm_hour 0 instead of tm_hour 12. For 129 %t and %n skip any whitespace. Handle %p and %%. For whitespace in 130 the string skip any whitespace. 131 (_M_extract_num): For __len == 2 accept 1 or 2 digits rather than 132 always 2. Don't punt early if __value * __mult is larget than __max 133 or smaller than __min - __mult, instead punt if __value > __max. 134 At the end verify __value is in between __min and __max and punt 135 otherwise. 136 (_M_extract_name): Allow non-unique names or names which are prefixes 137 of other names. Don't recompute lengths of names for every character. 138 * testsuite/22_locale/time_get/get/char/3.cc: New test. 139 * testsuite/22_locale/time_get/get/wchar_t/3.cc: New test. 140 * testsuite/22_locale/time_get/get_date/char/12791.cc (test01): Use 141 62 instead 60 and expect 6 to be accepted and thus *ret01 == '2'. 142 * testsuite/22_locale/time_get/get_date/wchar_t/12791.cc (test01): 143 Similarly. 144 * testsuite/22_locale/time_get/get_time/char/2.cc (test02): Add " PM" 145 to the string. 146 * testsuite/22_locale/time_get/get_time/char/5.cc (test01): Expect 147 tm_hour 1 rather than 0. 148 * testsuite/22_locale/time_get/get_time/wchar_t/2.cc (test02): Add 149 " PM" to the string. 150 * testsuite/22_locale/time_get/get_time/wchar_t/5.cc (test01): Expect 151 tm_hour 1 rather than 0. 152 1532021-12-10 Jonathan Wakely <jwakely@redhat.com> 154 155 PR libstdc++/103638 156 * include/bits/atomic_timed_wait.h: Check _GLIBCXX_HAS_GTHREADS 157 before using std::mutex and std::__condvar. 158 1592021-12-10 Jonathan Wakely <jwakely@redhat.com> 160 161 * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Add _GLIBCXX_ 162 prefix to NO_SLEEP macro. 163 * config.h.in: Regenerate. 164 * configure: Regenerate. 165 1662021-12-10 Jonathan Wakely <jwakely@redhat.com> 167 168 * include/bits/char_traits.h: Change pragma push to pop. 169 1702021-12-10 Thomas Rodgers <rodgert@twrodgers.com> 171 172 PR libstdc++/102994 173 * include/bits/atomic_base.h (__atomic_base<_PTp*>::wait()): 174 Add const qualifier. 175 * include/std/atomic (atomic<_Tp*>::wait(), atomic_wait()): 176 Likewise. 177 * testsuite/29_atomics/atomic/wait_notify/102994.cc: 178 New test. 179 1802021-12-09 Jonathan Wakely <jwakely@redhat.com> 181 182 * include/bits/stl_iterator.h (operator==, operator<=>): Define 183 overloads for homogeneous specializations of reverse_iterator, 184 __normal_iterator and move_iterator. 185 1862021-12-09 Jonathan Wakely <jwakely@redhat.com> 187 188 * testsuite/20_util/scoped_allocator/69293_neg.cc: Remove 189 dg-error for c++20. 190 1912021-12-09 Jonathan Wakely <jwakely@redhat.com> 192 193 PR libstdc++/85813 194 * libsupc++/exception_ptr.h (__dest_thunk): Add macro for 195 destructor calling convention. 196 (make_exception_ptr): Enable non-throwing implementation for 197 -fno-exceptions and for non-standard calling conventions. Use 198 always_inline attribute on the useless no-rtti no-exceptions 199 definition. 200 * testsuite/18_support/exception_ptr/64241.cc: Add -fno-rtti so 201 the no-op implementation is still used. 202 2032021-12-09 Jonathan Wakely <jwakely@redhat.com> 204 205 PR libstdc++/103630 206 * libsupc++/exception_ptr.h (exception_ptr): Fix exception 207 specifications on inline definitions. 208 (make_exception_ptr): Decay the template parameter. Use typeid 209 of the static type. 210 * testsuite/18_support/exception_ptr/103630.cc: New test. 211 2122021-12-09 Jonathan Wakely <jwakely@redhat.com> 213 214 PR libstdc++/59769 215 * config/io/basic_file_stdio.cc (fopen_mode): Add support for 216 exclusive mode. 217 * include/bits/ios_base.h (_S_noreplace): Define new enumerator. 218 (ios_base::__noreplace): Define. 219 (ios_base::noreplace): Define for C++23. 220 * include/std/version (__cpp_lib_ios_noreplace): Define. 221 * testsuite/27_io/basic_ofstream/open/char/noreplace.cc: New test. 222 * testsuite/27_io/basic_ofstream/open/wchar_t/noreplace.cc: New test. 223 2242021-12-09 Jonathan Wakely <jwakely@redhat.com> 225 226 PR libstdc++/103382 227 * config/abi/pre/gnu.ver (GLIBCXX_3.4.11): Do not export old 228 symbol if .symver renaming is supported. 229 (GLIBCXX_3.4.30): Export new symbol if .symver renaming is 230 supported. 231 * doc/xml/manual/evolution.xml: Document change. 232 * doc/html/manual/api.html: Regenerate. 233 * include/bits/std_mutex.h (__condvar::wait, __condvar::wait_until): 234 Remove noexcept. 235 * include/std/condition_variable (condition_variable::wait): 236 Likewise. 237 * src/c++11/condition_variable.cc (condition_variable::wait): 238 Likewise. 239 * src/c++11/compatibility-condvar.cc (__nothrow_wait_cv::wait): 240 Define nothrow wrapper around std::condition_variable::wait and 241 export the old symbol as an alias to it. 242 * testsuite/30_threads/condition_variable/members/103382.cc: New test. 243 2442021-12-09 Jonathan Wakely <jwakely@redhat.com> 245 246 PR libstdc++/92300 247 * include/bits/stl_map.h (insert(Pair&&), emplace(Args&&...)): 248 Check whether the arguments can be looked up directly without 249 constructing a temporary node first. 250 * include/bits/stl_pair.h (__is_pair): Move to here, from ... 251 * include/bits/uses_allocator_args.h (__is_pair): ... here. 252 * testsuite/23_containers/map/modifiers/emplace/92300.cc: New test. 253 * testsuite/23_containers/map/modifiers/insert/92300.cc: New test. 254 2552021-12-09 Jonathan Wakely <jwakely@redhat.com> 256 257 * include/bits/cow_string.h (basic_string::_M_leak_hard): Do not 258 reallocate an empty string. 259 2602021-12-09 Jonathan Wakely <jwakely@redhat.com> 261 262 PR libstdc++/103332 263 PR libstdc++/102958 264 PR libstdc++/103483 265 * include/bits/char_traits.h: Suppress stringop and array-bounds 266 warnings. 267 2682021-12-09 Jonathan Wakely <jwakely@redhat.com> 269 270 PR libstdc++/64135 271 * config/allocator/new_allocator_base.h: Include 272 <bits/new_allocator.h> instead of <ext/new_allocator.h>. 273 (__allocator_base): Use std::__new_allocator instead of 274 __gnu_cxx::new_allocator. 275 * doc/xml/manual/allocator.xml: Document new default base class 276 for std::allocator. 277 * doc/xml/manual/evolution.xml: Likewise. 278 * doc/html/*: Regenerate. 279 * include/Makefile.am: Add bits/new_allocator.h. 280 * include/Makefile.in: Regenerate. 281 * include/experimental/memory_resource (new_delete_resource): 282 Use std::__new_allocator instead of __gnu_cxx::new_allocator. 283 * include/ext/new_allocator.h (new_allocator): Derive from 284 std::__new_allocator. Move implementation to ... 285 * include/bits/new_allocator.h: New file. 286 * testsuite/20_util/allocator/64135.cc: New test. 287 2882021-12-08 Jonathan Wakely <jwakely@redhat.com> 289 290 * include/bits/shared_ptr_base.h (_Sp_counted_base::_M_release()): 291 Make shift width conditional on __double_word condition. 292 2932021-12-08 François Dumont <fdumont@gcc.gnu.org> 294 295 * include/std/deque (erase_if): Use _GLIBCXX_STD_C container reference and 296 __niter_wrap to limit _GLIBCXX_DEBUG mode impact. 297 * include/std/vector (erase_if): Likewise. 298 2992021-12-08 Maged Michael <maged.michael@gmail.com> 300 Jonathan Wakely <jwakely@redhat.com> 301 302 * include/bits/c++config (_GLIBCXX_TSAN): Define macro 303 indicating that TSan is in use. 304 * include/bits/shared_ptr_base.h (_Sp_counted_base::_M_release): 305 Replace definition in primary template with explicit 306 specializations for _S_mutex and _S_atomic policies. 307 (_Sp_counted_base<_S_mutex>::_M_release): New specialization. 308 (_Sp_counted_base<_S_atomic>::_M_release): New specialization, 309 using a single atomic load to access both reference counts at 310 once. 311 (_Sp_counted_base::_M_release_last_use): New member function. 312 3132021-12-07 Tamar Christina <tamar.christina@arm.com> 314 315 Revert: 316 2021-11-19 Tamar Christina <tamar.christina@arm.com> 317 318 PR libstdc++/103305 319 * config/os/newlib/ctype_base.h (upper, lower, alpha, digit, xdigit, 320 space, print, graph, cntrl, punct, alnum, blank): Use short or long 321 names depending on if short ones are defined. 322 3232021-12-04 Jonathan Wakely <jwakely@redhat.com> 324 325 PR libstdc++/103549 326 * include/bits/regex.h (match_results): Give names to template 327 parameters in first declaration. 328 (match_results::_M_begin): Add default member-initializer. 329 3302021-12-03 Jonathan Wakely <jwakely@redhat.com> 331 332 * include/bits/stl_tree.h (_Rb_tree::_Auto_node): Define new 333 RAII helper for creating and inserting new nodes. 334 (_Rb_tree::_M_insert_node): Use trailing-return-type to simplify 335 out-of-line definition. 336 (_Rb_tree::_M_insert_lower_node): Likewise. 337 (_Rb_tree::_M_insert_equal_lower_node): Likewise. 338 (_Rb_tree::_M_emplace_unique): Likewise. Use _Auto_node. 339 (_Rb_tree::_M_emplace_equal): Likewise. 340 (_Rb_tree::_M_emplace_hint_unique): Likewise. 341 (_Rb_tree::_M_emplace_hint_equal): Likewise. 342 3432021-12-02 Jonathan Wakely <jwakely@redhat.com> 344 345 * src/c++11/cow-stdexcept.cc [_GLIBCXX_FULLY_DYNAMIC_STRING] 346 (logic_error, runtime_error): Remove custom definitions. 347 3482021-12-02 Jonathan Wakely <jwakely@redhat.com> 349 350 PR libstdc++/103340 351 PR libstdc++/103400 352 PR libstdc++/103381 353 * acinclude.m4 (GLIBCXX_ENABLE_ALLOCATOR): Remove mt, bitmap 354 and pool options. 355 * configure: Regenerate. 356 * config/allocator/bitmap_allocator_base.h: Removed. 357 * config/allocator/mt_allocator_base.h: Removed. 358 * config/allocator/pool_allocator_base.h: Removed. 359 * doc/xml/manual/allocator.xml: Update. 360 * doc/xml/manual/configure.xml: Update. 361 * doc/xml/manual/evolution.xml: Document removal. 362 * doc/xml/manual/mt_allocator.xml: Editorial tweaks. 363 * doc/html/manual/*: Regenerate. 364 3652021-12-02 Jonathan Wakely <jwakely@redhat.com> 366 367 * include/bits/cow_string.h (basic_string::_M_is_leaked()): 368 Revert change to check __is_single_threaded() before using 369 atomic load. 370 3712021-12-01 Jonathan Wakely <jwakely@redhat.com> 372 373 PR libstdc++/103501 374 * include/bits/stl_tree.h (_Rb_tree(_Rb_tree&&, false_type)): 375 Clear container if elements have been moved-from. 376 * testsuite/23_containers/map/allocator/move_cons.cc: Expect 377 moved-from container to be empty. 378 * testsuite/23_containers/multimap/allocator/move_cons.cc: 379 Likewise. 380 * testsuite/23_containers/multiset/allocator/103501.cc: New test. 381 * testsuite/23_containers/set/allocator/103501.cc: New test. 382 3832021-12-01 Jonathan Wakely <jwakely@redhat.com> 384 385 * doc/doxygen/user.cfg.in (PREDEFINED): Change macro name. 386 * include/bits/allocator.h (allocate, deallocate): Use 387 std::__is_constant_evaluated() unconditionally, instead of 388 checking whether std::is_constant_evaluated() (or the built-in) 389 can be used. 390 * include/bits/basic_string.h: Check new macro. call 391 std::is_constant_evaluated() directly in C++20-only code that is 392 guarded by a suitable macro. 393 * include/bits/basic_string.tcc: Likewise. 394 * include/bits/c++config (__is_constant_evaluated): Define. 395 (_GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED): Replace with ... 396 (_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED): New macro. 397 * include/bits/char_traits.h (char_traits): Replace conditional 398 calls to std::is_constant_evaluated with unconditional calls to 399 std::__is_constant_evaluated. 400 * include/bits/cow_string.h: Use new macro. 401 * include/bits/ranges_algobase.h (__copy_or_move): Replace 402 conditional calls to std::is_constant_evaluated with unconditional 403 calls to std::__is_constant_evaluated. 404 (__copy_or_move_backward, __fill_n_fn): Likewise. 405 * include/bits/ranges_cmp.h (ranges::less): Likewise. 406 * include/bits/stl_algobase.h (lexicographical_compare_three_way): 407 Likewise. 408 * include/bits/stl_bvector.h: Call std::is_constant_evaluated 409 directly in C++20-only code that is guarded by a suitable macro. 410 * include/bits/stl_construct.h (_Construct, _Destroy, _Destroy_n): 411 Replace is_constant_evaluated with __is_constant_evaluated. 412 * include/bits/stl_function.h (greater, less, greater_equal) 413 (less_equal): Replace __builtin_is_constant_evaluated and 414 __builtin_constant_p with __is_constant_evaluated. 415 * include/bits/stl_vector.h: Call std::is_constant_evaluated() 416 in C++20-only code. 417 * include/debug/helper_functions.h (__check_singular): Use 418 __is_constant_evaluated instead of built-in, or remove check 419 entirely. 420 * include/std/array (operator<=>): Use __is_constant_evaluated 421 unconditionally. 422 * include/std/bit (__bit_ceil): Likewise. 423 * include/std/type_traits (is_constant_evaluated): Define using 424 'if consteval' if possible. 425 * include/std/version: Use new macro. 426 * libsupc++/compare: Use __is_constant_evaluated instead of 427 __builtin_is_constant_evaluated. 428 * testsuite/23_containers/array/tuple_interface/get_neg.cc: 429 Adjust dg-error lines. 430 4312021-12-01 Jonathan Wakely <jwakely@redhat.com> 432 433 * include/bits/cow_string.h (basic_string::_M_is_leaked): Use 434 non-atomic load when __is_single_threaded() is true. 435 (basic_string::_M_is_shared): Likewise. 436 (basic_string::(basic_string&&)) [_GLIBCXX_FULLY_DYNAMIC_STRING]: 437 Use non-atomic store when rvalue is not shared. 438 4392021-12-01 Jonathan Wakely <jwakely@redhat.com> 440 441 * src/c++17/fs_path.cc (path::_M_split_cmpts()): Remove 442 micro-optimization for "/" path. 443 * src/filesystem/path.cc (path::_M_split_cmpts()): Only access 444 the contents of _M_pathname using const member functions. 445 4462021-11-30 Jonathan Wakely <jwakely@redhat.com> 447 448 * testsuite/21_strings/basic_string/cons/char/moveable.cc: Allow 449 moved-from string to be non-empty. 450 * testsuite/21_strings/basic_string/cons/char/moveable2.cc: 451 Likewise. 452 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc: 453 Likewise. 454 * testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc: 455 Likewise. 456 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc: 457 Likewise. 458 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc: 459 Likewise. 460 * testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc: 461 Construct empty string before setting oom flag. 462 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc: 463 Likewise. 464 4652021-11-30 Jonathan Wakely <jwakely@redhat.com> 466 467 * include/bits/cow_string.h (basic_string(basic_string&&)): Fix 468 mem-initializer for _GLIBCXX_FULLY_DYNAMIC_STRING==0 case. 469 * testsuite/21_strings/basic_string/cons/char/noexcept_move_construct.cc: 470 Remove outdated comment. 471 * testsuite/21_strings/basic_string/cons/wchar_t/noexcept_move_construct.cc: 472 Likewise. 473 4742021-11-30 Jonathan Wakely <jwakely@redhat.com> 475 476 * src/c++20/sstream-inst.cc (_GLIBCXX_USE_CXX11_ABI): Define to 477 select new ABI. 478 4792021-11-30 Jonathan Wakely <jwakely@redhat.com> 480 481 * include/bits/stl_vector.h (vector::_S_do_relocate): Remove 482 C++20 constexpr specifier. 483 (vector::_S_relocate) [__cpp_if_constexpr]: Call __relocate_a 484 directly without tag dispatching. 485 4862021-11-30 Jonathan Wakely <jwakely@redhat.com> 487 488 PR libstdc++/103453 489 * config/allocator/malloc_allocator_base.h 490 (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Define for Clang. 491 * config/allocator/new_allocator_base.h 492 (_GLIBCXX_SANITIZE_STD_ALLOCATOR): Likewise. 493 4942021-11-30 Jonathan Wakely <jwakely@redhat.com> 495 496 * doc/xml/manual/debug_mode.xml: Replace "his or her" with "their". 497 * doc/html/manual/debug_mode_design.html: Regenerate. 498 4992021-11-30 Jakub Jelinek <jakub@redhat.com> 500 501 * include/std/bit (byteswap): Add [[nodiscard]]. 502 5032021-11-28 Jakub Jelinek <jakub@redhat.com> 504 505 * include/std/bit (__cpp_lib_byteswap, byteswap): Define. 506 * include/std/version (__cpp_lib_byteswap): Define. 507 * testsuite/26_numerics/bit/bit.byteswap/byteswap.cc: New test. 508 * testsuite/26_numerics/bit/bit.byteswap/version.cc: New test. 509 5102021-11-26 Jonathan Wakely <jwakely@redhat.com> 511 512 * testsuite/24_iterators/move_iterator/dr3265.cc: Fix test to 513 account for LWG 3435 resolution. 514 5152021-11-26 Jonathan Wakely <jwakely@redhat.com> 516 517 * include/bits/stl_uninitialized.h (__relocate_a_1): Do not use 518 memmove during constant evaluation. 519 * include/bits/stl_vector.h (vector::_S_use_relocate()): Do not 520 check is_constant_evaluated in always-constexpr function. 521 5222021-11-26 Jonathan Wakely <jwakely@redhat.com> 523 524 PR libstdc++/96592 525 * include/std/tuple (tuple::is_constructible): Remove. 526 5272021-11-26 Jonathan Wakely <jwakely@redhat.com> 528 529 * testsuite/29_atomics/atomic_float/1.cc: Reorder directives. 530 5312021-11-26 Jonathan Wakely <jwakely@redhat.com> 532 533 * testsuite/23_containers/unordered_map/modifiers/move_assign.cc: 534 Change dg-do compile to run. 535 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc: 536 Likewise. 537 5382021-11-26 Jonathan Wakely <jwakely@redhat.com> 539 540 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc: 541 Remove xfail selector. 542 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc: 543 Likewise. 544 Likewise. 545 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc: 546 Likewise. 547 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc: 548 Likewise. 549 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc: 550 Likewise. 551 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc: 552 Likewise. 553 * testsuite/23_containers/span/101411.cc: Likewise. 554 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Likewise. 555 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: 556 Likewise. 557 * testsuite/25_algorithms/equal/constexpr_neg.cc: Likewise. 558 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise. 559 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: 560 Likewise. 561 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: 562 Likewise. 563 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: 564 Likewise. 565 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: 566 Likewise. 567 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: 568 Likewise. 569 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: 570 Likewise. 571 5722021-11-26 Jonathan Wakely <jwakely@redhat.com> 573 574 * testsuite/20_util/pointer_traits/lwg3545.cc: Move to_address 575 tests to ... 576 * testsuite/20_util/to_address/lwg3545.cc: ... here. Add -std 577 option before checking effective target. 578 5792021-11-25 Jonathan Wakely <jwakely@redhat.com> 580 581 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc: 582 Remove dg-error for C++11_only error. 583 5842021-11-25 Jonathan Wakely <jwakely@redhat.com> 585 586 PR libstdc++/96416 587 * include/bits/ptr_traits.h (pointer_traits): Reimplement to be 588 SFINAE-friendly (LWG 3545). 589 * testsuite/20_util/pointer_traits/lwg3545.cc: New test. 590 * testsuite/20_util/to_address/1_neg.cc: Adjust dg-error line. 591 * testsuite/20_util/to_address/lwg3545.cc: New test. 592 5932021-11-25 Jonathan Wakely <jwakely@redhat.com> 594 595 PR libstdc++/101608 596 * include/bits/ranges_algobase.h (__fill_n_fn): Check for 597 constant evaluation before using memset. 598 * testsuite/25_algorithms/fill_n/constrained.cc: Check 599 byte-sized values as well. 600 6012021-11-24 Jonathan Wakely <jwakely@redhat.com> 602 603 * testsuite/libstdc++-prettyprinters/80276.cc: Add xfail for 604 debug mode. 605 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise. 606 6072021-11-24 Jonathan Wakely <jwakely@redhat.com> 608 609 * testsuite/lib/libstdc++.exp: Rename effective target keywords 610 to avoid dashes in the name. 611 * testsuite/*: Update effective targe keywords. 612 6132021-11-23 Jonathan Wakely <jwakely@redhat.com> 614 615 PR libstdc++/103086 616 * testsuite/libstdc++-prettyprinters/cxx11.cc: Check unique_ptr 617 with non-empty pointer and non-empty deleter. 618 6192021-11-23 Jonathan Wakely <jwakely@redhat.com> 620 621 * testsuite/18_support/50594.cc: Check effective target. 622 * testsuite/20_util/allocator/1.cc: Likewise. 623 * testsuite/20_util/allocator/overaligned.cc: Likewise. 624 * testsuite/23_containers/unordered_map/96088.cc: Likewise. 625 * testsuite/23_containers/unordered_multimap/96088.cc: Likewise. 626 * testsuite/23_containers/unordered_multiset/96088.cc: Likewise. 627 * testsuite/23_containers/unordered_set/96088.cc: Likewise. 628 * testsuite/ext/throw_allocator/check_delete.cc: Likewise. 629 * testsuite/ext/throw_allocator/check_new.cc: Likewise. 630 * testsuite/lib/libstdc++.exp (check_effective_target_std_allocator_new): 631 Define new proc. 632 6332021-11-23 Jonathan Wakely <jwakely@redhat.com> 634 635 PR libstdc++/103381 636 * include/ext/bitmap_allocator.h: Include <bits/stl_function.h> 637 instead of <functional>. 638 6392021-11-22 Jonathan Wakely <jwakely@redhat.com> 640 641 * include/bits/c++config (_GLIBCXX14_DEPRECATED): Fix condition 642 checking for C++14. 643 6442021-11-20 François Dumont <fdumont@gcc.gnu.org> 645 646 * include/bits/erase_if.h (__erase_nodes_if): Add _UnsafeContainer template 647 parameter. Use it to get iterators to work with. 648 * include/debug/macros.h (__glibcxx_check_erase2): New. 649 * include/debug/map.h (map<>::erase(_Base_const_iterator)): New. 650 (map<>::erase(const_iterator)): Use latter. 651 * include/debug/multimap.h (multimap<>::erase(_Base_const_iterator)): New. 652 (multimap<>::erase(const_iterator)): Use latter. 653 * include/debug/multiset.h (multiset<>::erase(_Base_const_iterator)): New. 654 (multiset<>::erase(const_iterator)): Use latter. 655 * include/debug/set.h (set<>::erase(_Base_const_iterator)): New. 656 (set<>::erase(const_iterator)): Use latter. 657 * include/debug/unordered_map (unordered_map<>::erase(_Base_const_iterator)): New. 658 (unordered_multimap<>::erase(const_iterator)): New. 659 * include/debug/unordered_set (unordered_set<>::erase(_Base_const_iterator)): New. 660 (unordered_multiset<>::erase(const_iterator)): New. 661 * include/experimental/map (erase_if): Adapt. 662 * include/experimental/set (erase_if): Adapt. 663 * include/experimental/unordered_map (erase_if): Adapt. 664 * include/experimental/unordered_set (erase_if): Adapt. 665 * include/std/map (erase_if): Adapt. 666 * include/std/set (erase_if): Adapt. 667 * include/std/unordered_map (erase_if): Adapt. 668 * include/std/unordered_set (erase_if): Adapt. 669 6702021-11-19 Jonathan Wakely <jwakely@redhat.com> 671 672 * testsuite/27_io/basic_istringstream/cons/char/1.cc: Check all 673 constructors. 674 * testsuite/27_io/basic_istringstream/cons/wchar_t/1.cc: 675 Likewise. 676 * testsuite/27_io/basic_ostringstream/cons/char/1.cc: Likewise. 677 * testsuite/27_io/basic_ostringstream/cons/wchar_t/1.cc: 678 Likewise. 679 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Likewise. 680 * testsuite/27_io/basic_stringstream/cons/wchar_t/1.cc: 681 Likewise. 682 6832021-11-19 Jonathan Wakely <jwakely@redhat.com> 684 685 * src/c++98/locale_init.cc (_S_initialize_once): Check if 686 initialization has already been done. 687 (_S_initialize): Replace __gthread_active_p with 688 __is_single_threaded. Use __builtin_expect. 689 6902021-11-19 Jonathan Wakely <jwakely@redhat.com> 691 692 PR libstdc++/103295 693 * include/bits/basic_string.tcc (_M_construct): Use the 694 traits assign member to write into allcoated memory. 695 6962021-11-19 Iain Sandoe <iain@sandoe.co.uk> 697 698 * testsuite/lib/prune.exp: Prune dsymutil (ld64) warning. 699 7002021-11-19 Jonathan Wakely <jwakely@redhat.com> 701 702 PR libstdc++/103332 703 PR libstdc++/102958 704 * testsuite/21_strings/basic_string/capacity/char/1.cc: Add 705 -Wno-stringop-overflow. 706 * testsuite/21_strings/basic_string/operators/char/1.cc: 707 Likewise. 708 * testsuite/experimental/filesystem/path/factory/u8path-char8_t.cc: 709 Add -Wno-stringop-overread. 710 7112021-11-19 Jonathan Wakely <jwakely@redhat.com> 712 713 PR libstdc++/103295 714 * include/bits/basic_string.h (_Alloc_traits): Replace typedef 715 with struct for C++20 mode. 716 * include/bits/basic_string.tcc (_M_replace): Use _Alloc_traits 717 for allocation. 718 * include/bits/char_traits.h (__gnu_cxx::char_traits::assign): 719 Use std::_Construct during constant evaluation. 720 (__gnu_cxx::char_traits::assign(CharT*, const CharT*, size_t)): 721 Likewise. Replace std::fill_n with memset or manual loop. 722 (__gnu_cxx::char_traits::copy): Likewise, replacing std::copy 723 with memcpy. 724 * include/ext/vstring.h: Include <bits/stl_algobase.h> for 725 std::min. 726 * include/std/string_view: Likewise. 727 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc: 728 Add constexpr test. 729 7302021-11-19 Tamar Christina <tamar.christina@arm.com> 731 732 PR libstdc++/103305 733 * config/os/newlib/ctype_base.h (upper, lower, alpha, digit, xdigit, 734 space, print, graph, cntrl, punct, alnum, blank): Use short or long 735 names depending on if short ones are defined. 736 7372021-11-18 Jonathan Wakely <jwakely@redhat.com> 738 739 * include/bits/char_traits.h (__gnu_cxx::char_traits::move): 740 Do not compare unrelated pointers during constant evaluation. 741 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc: 742 Improve tests for char_traits::move. 743 7442021-11-18 Jonathan Wakely <jwakely@redhat.com> 745 746 * acinclude.m4: Replace AC_CACHE_VAL with AC_CACHE_CHECK. 747 * configure: Regenerate. 748 7492021-11-17 Jonathan Wakely <jwakely@redhat.com> 750 751 * include/experimental/internet (address): Use std::_Construct 752 to initialize union members. 753 7542021-11-17 Jonathan Wakely <jwakely@redhat.com> 755 756 * include/bits/basic_string.h (_M_construct_aux): Only define 757 for C++98. Remove constexpr. 758 (_M_construct_aux_2): Likewise. 759 (_M_construct(InputIter, InputIter)): Remove. 760 (basic_string(const basic_string&)): Call _M_construct with 761 iterator category argument. 762 (basic_string(const basic_string&, size_type, const Alloc&)): 763 Likewise. 764 (basic_string(const basic_string&, size_type, size_type)): 765 Likewise. 766 (basic_string(const charT*, size_type, const Alloc&)): Likewise. 767 Check for null pointer. 768 (basic_string(const charT*, const Alloc&)): Likewise. 769 (basic_string(initializer_list<charT>, const Alloc&)): Call 770 _M_construct with iterator category argument. 771 (basic_string(const basic_string&, const Alloc&)): Likewise. 772 (basic_string(basic_string&&, const Alloc&)): Likewise. 773 (basic_string(_InputIter, _InputIter, const Alloc&)): Likewise 774 for C++11 and later, call _M_construct_aux for C++98. 775 * include/bits/basic_string.tcc 776 (_M_construct(I, I, input_iterator_tag)): Replace try-block with 777 RAII type. 778 (_M_construct(I, I, forward_iterator_tag)): Likewise. Remove 779 __is_null_pointer check. 780 7812021-11-17 Jonathan Wakely <jwakely@redhat.com> 782 783 PR libstdc++/103295 784 * include/bits/basic_string.h (_M_use_local_data()): New 785 member function to make local buffer the active member. 786 (assign(const basic_string&)): Use it. 787 * include/bits/basic_string.tcc (_M_construct, reserve()): 788 Likewise. 789 7902021-11-17 Jonathan Wakely <jwakely@redhat.com> 791 792 PR libstdc++/103240 793 * libsupc++/tinfo2.cc (type_info::before): Use unadjusted name 794 to check for the '*' prefix. 795 * testsuite/util/testsuite_shared.cc: Add type_info object for 796 use in new test. 797 * testsuite/18_support/type_info/103240.cc: New test. 798 7992021-11-16 Jonathan Wakely <jwakely@redhat.com> 800 801 * include/bits/basic_string.h (operator<=>): Use constexpr 802 unconditionally. 803 * testsuite/21_strings/basic_string/modifiers/constexpr.cc: 804 Require cxx11-abit effective target. 805 * testsuite/21_strings/headers/string/synopsis.cc: Add 806 conditional constexpr to declarations, and adjust relational 807 operators for C++20. 808 8092021-11-16 Patrick Palka <ppalka@redhat.com> 810 811 * src/c++17/ryu/MERGE: Update the commit hash. 812 * src/c++17/ryu/d2s_intrinsics.h: Merge from Ryu's master 813 branch. 814 8152021-11-16 Jonathan Wakely <jwakely@redhat.com> 816 817 * include/bits/basic_string.h (basic_string, operator""s): Add 818 constexpr for C++20. 819 (basic_string::basic_string(basic_string&&)): Only copy 820 initialized portion of the buffer. 821 (basic_string::basic_string(basic_string&&, const Alloc&)): 822 Likewise. 823 * include/bits/basic_string.tcc (basic_string): Add constexpr 824 for C++20. 825 (basic_string::swap(basic_string&)): Only copy initialized 826 portions of the buffers. 827 (basic_string::_M_replace): Add constexpr implementation that 828 doesn't depend on pointer comparisons. 829 * include/bits/cow_string.h: Adjust comment. 830 * include/ext/type_traits.h (__is_null_pointer): Add constexpr. 831 * include/std/string (erase, erase_if): Add constexpr. 832 * include/std/version (__cpp_lib_constexpr_string): Update 833 value. 834 * testsuite/21_strings/basic_string/cons/char/constexpr.cc: 835 New test. 836 * testsuite/21_strings/basic_string/cons/wchar_t/constexpr.cc: 837 New test. 838 * testsuite/21_strings/basic_string/literals/constexpr.cc: 839 New test. 840 * testsuite/21_strings/basic_string/modifiers/constexpr.cc: New test. 841 * testsuite/21_strings/basic_string/modifiers/swap/char/constexpr.cc: 842 New test. 843 * testsuite/21_strings/basic_string/modifiers/swap/wchar_t/constexpr.cc: 844 New test. 845 * testsuite/21_strings/basic_string/version.cc: New test. 846 8472021-11-16 Jonathan Wakely <jwakely@redhat.com> 848 849 * include/bits/stl_bvector.h (swap(_Bit_reference, _Bit_reference)) 850 (swap(_Bit_reference, bool&), swap(bool&, _Bit_reference)): 851 Define as hidden friends of _Bit_reference. 852 8532021-11-16 Jonathan Wakely <jwakely@redhat.com> 854 855 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/1.cc: 856 Fix reads past the end of strings. 857 * testsuite/21_strings/basic_string/operations/compare/wchar_t/1.cc: 858 Likewise. 859 * testsuite/experimental/string_view/operations/compare/wchar_t/1.cc: 860 Likewise. 861 8622021-11-16 Jonathan Wakely <jwakely@redhat.com> 863 864 * testsuite/21_strings/basic_string/allocator/71964.cc: Fix 865 typo. 866 * testsuite/23_containers/set/allocator/71964.cc: Likewise. 867 8682021-11-15 Jason Merrill <jason@redhat.com> 869 870 * testsuite/20_util/to_address/1_neg.cc: Adjust error. 871 * testsuite/26_numerics/random/concept.cc: Adjust asserts. 872 8732021-11-15 François Dumont <fdumont@gcc.gnu.org> 874 875 * include/bits/hashtable_policy.h: 876 (_Hash_code_base<>::_M_hash_code(const _Hash&, const _Hash_node_value<_Value, true>&)): New. 877 (_Hash_code_base<>::_M_hash_code<_H2>(const _H2&, const _Hash_node_value<>&)): New. 878 * include/bits/hashtable.h (_Hashtable<>::_M_merge_unique): Use latter. 879 (_Hashtable<>::_M_merge_multi): Likewise. 880 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc (test05): New test. 881 * testsuite/23_containers/unordered_set/modifiers/merge.cc (test04): New test. 882 8832021-11-15 Jason Merrill <jason@redhat.com> 884 885 * src/c++17/memory_resource.cc: Add missing constexpr. 886 * include/experimental/internet: Only mark copy constructor 887 as constexpr with __cpp_constexpr_dynamic_alloc. 888 8892021-11-14 François Dumont <fdumont@gcc.gnu.org> 890 891 * include/debug/safe_container.h (_Safe_container<>::_M_safe): Remove. 892 * include/debug/deque (deque::operator=(initializer_list<>)): Replace 893 _M_base() call with _Base:: call. 894 (deque::operator[](size_type)): Likewise. 895 * include/debug/forward_list (forward_list(forward_list&&, const allocator_type&)): 896 Remove _M_safe() and _M_base() calls. 897 (forward_list::operator=(initializer_list<>)): Remove _M_base() calls. 898 (forward_list::splice_after, forward_list::merge): Likewise. 899 * include/debug/list (list(list&&, const allocator_type&)): 900 Remove _M_safe() and _M_base() calls. 901 (list::operator=(initializer_list<>)): Remove _M_base() calls. 902 (list::splice, list::merge): Likewise. 903 * include/debug/map.h (map(map&&, const allocator_type&)): 904 Remove _M_safe() and _M_base() calls. 905 (map::operator=(initializer_list<>)): Remove _M_base() calls. 906 * include/debug/multimap.h (multimap(multimap&&, const allocator_type&)): 907 Remove _M_safe() and _M_base() calls. 908 (multimap::operator=(initializer_list<>)): Remove _M_base() calls. 909 * include/debug/set.h (set(set&&, const allocator_type&)): 910 Remove _M_safe() and _M_base() calls. 911 (set::operator=(initializer_list<>)): Remove _M_base() calls. 912 * include/debug/multiset.h (multiset(multiset&&, const allocator_type&)): 913 Remove _M_safe() and _M_base() calls. 914 (multiset::operator=(initializer_list<>)): Remove _M_base() calls. 915 * include/debug/string (basic_string(basic_string&&, const allocator_type&)): 916 Remove _M_safe() and _M_base() calls. 917 (basic_string::operator=(initializer_list<>)): Remove _M_base() call. 918 (basic_string::operator=(const _CharT*), basic_string::operator=(_CharT)): Likewise. 919 (basic_string::operator[](size_type), basic_string::operator+=(const basic_string&)): 920 Likewise. 921 (basic_string::operator+=(const _Char*), basic_string::operator+=(_CharT)): Likewise. 922 * include/debug/unordered_map (unordered_map(unordered_map&&, const allocator_type&)): 923 Remove _M_safe() and _M_base() calls. 924 (unordered_map::operator=(initializer_list<>), unordered_map::merge): 925 Remove _M_base() calls. 926 (unordered_multimap(unordered_multimap&&, const allocator_type&)): 927 Remove _M_safe() and _M_base() calls. 928 (unordered_multimap::operator=(initializer_list<>), unordered_multimap::merge): 929 Remove _M_base() calls. 930 * include/debug/unordered_set (unordered_set(unordered_set&&, const allocator_type&)): 931 Remove _M_safe() and _M_base() calls. 932 (unordered_set::operator=(initializer_list<>), unordered_set::merge): 933 Remove _M_base() calls. 934 (unordered_multiset(unordered_multiset&&, const allocator_type&)): 935 Remove _M_safe() and _M_base() calls. 936 (unordered_multiset::operator=(initializer_list<>), unordered_multiset::merge): 937 Remove _M_base() calls. 938 * include/debug/vector (vector(vector&&, const allocator_type&)): 939 Remove _M_safe() and _M_base() calls. 940 (vector::operator=(initializer_list<>)): Remove _M_base() calls. 941 (vector::operator[](size_type)): Likewise. 942 9432021-11-13 Jonathan Wakely <jwakely@redhat.com> 944 945 * include/Makefile.am: Add spanstream header. 946 * include/Makefile.in: Regenerate. 947 * include/precompiled/stdc++.h: Add spanstream header. 948 * include/std/version (__cpp_lib_spanstream): Define. 949 * include/std/spanstream: New file. 950 * testsuite/27_io/spanstream/1.cc: New test. 951 * testsuite/27_io/spanstream/version.cc: New test. 952 9532021-11-13 Hans-Peter Nilsson <hp@axis.com> 954 955 PR libstdc++/103166 956 * acinclude.m4 (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM): 957 Use GCC_TRY_COMPILE_OR_LINK instead of AC_TRY_COMPILE. 958 * configure: Regenerate. 959 9602021-11-12 Jonathan Wakely <jwakely@redhat.com> 961 962 PR libstdc++/59675 963 * acinclude.m4 (libtool_VERSION): Bump version. 964 * config/abi/pre/gnu.ver (GLIBCXX_3.4.30): Add version and 965 export new symbol. 966 * configure: Regenerate. 967 * include/bits/c++config (__replacement_assert): Remove, declare 968 __glibcxx_assert_fail instead. 969 * src/c++11/debug.cc (__glibcxx_assert_fail): New function to 970 replace __replacement_assert, writing to stderr instead of 971 stdout. 972 * testsuite/util/testsuite_abi.cc: Update latest version. 973 9742021-11-12 Jonathan Wakely <jwakely@redhat.com> 975 Josh Marshall <joshua.r.marshall.1991@gmail.com> 976 977 * include/bits/alloc_traits.h (_Destroy): Make constexpr for 978 C++20 mode. 979 * include/bits/allocator.h (__shrink_to_fit::_S_do_it): 980 Likewise. 981 * include/bits/stl_algobase.h (__fill_a1): Declare _Bit_iterator 982 overload constexpr for C++20. 983 * include/bits/stl_bvector.h (_Bit_type, _S_word_bit): Move out 984 of inline namespace. 985 (_Bit_reference, _Bit_iterator_base, _Bit_iterator) 986 (_Bit_const_iterator, _Bvector_impl_data, _Bvector_base) 987 (vector<bool, A>>): Add constexpr to every member function. 988 (_Bvector_base::_M_allocate): Initialize storage during constant 989 evaluation. 990 (vector<bool, A>::_M_initialize_value): Use __fill_bvector_n 991 instead of memset. 992 (__fill_bvector_n): New helper function to replace memset during 993 constant evaluation. 994 * include/bits/stl_uninitialized.h (__uninitialized_copy<false>): 995 Move logic to ... 996 (__do_uninit_copy): New function. 997 (__uninitialized_fill<false>): Move logic to ... 998 (__do_uninit_fill): New function. 999 (__uninitialized_fill_n<false>): Move logic to ... 1000 (__do_uninit_fill_n): New function. 1001 (__uninitialized_copy_a): Add constexpr. Use __do_uninit_copy. 1002 (__uninitialized_move_a, __uninitialized_move_if_noexcept_a): 1003 Add constexpr. 1004 (__uninitialized_fill_a): Add constexpr. Use __do_uninit_fill. 1005 (__uninitialized_fill_n_a): Add constexpr. Use 1006 __do_uninit_fill_n. 1007 (__uninitialized_default_n, __uninitialized_default_n_a) 1008 (__relocate_a_1, __relocate_a): Add constexpr. 1009 * include/bits/stl_vector.h (_Vector_impl_data, _Vector_impl) 1010 (_Vector_base, vector): Add constexpr to every member function. 1011 (_Vector_impl::_S_adjust): Disable ASan annotation during 1012 constant evaluation. 1013 (_Vector_base::_S_use_relocate): Disable bitwise-relocation 1014 during constant evaluation. 1015 (vector::_Temporary_value): Use a union for storage. 1016 * include/bits/vector.tcc (vector, vector<bool>): Add constexpr 1017 to every member function. 1018 * include/std/vector (erase_if, erase): Add constexpr. 1019 * testsuite/23_containers/headers/vector/synopsis.cc: Add 1020 constexpr for C++20 mode. 1021 * testsuite/23_containers/vector/bool/cmp_c++20.cc: Change to 1022 compile-only test using constant expressions. 1023 * testsuite/23_containers/vector/bool/capacity/29134.cc: Adjust 1024 namespace for _S_word_bit. 1025 * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc: 1026 Likewise. 1027 * testsuite/23_containers/vector/cmp_c++20.cc: Likewise. 1028 * testsuite/23_containers/vector/cons/89164.cc: Adjust errors 1029 for C++20 and move C++17 test to ... 1030 * testsuite/23_containers/vector/cons/89164_c++17.cc: ... here. 1031 * testsuite/23_containers/vector/bool/capacity/constexpr.cc: New test. 1032 * testsuite/23_containers/vector/bool/cons/constexpr.cc: New test. 1033 * testsuite/23_containers/vector/bool/element_access/constexpr.cc: New test. 1034 * testsuite/23_containers/vector/bool/modifiers/assign/constexpr.cc: New test. 1035 * testsuite/23_containers/vector/bool/modifiers/constexpr.cc: New test. 1036 * testsuite/23_containers/vector/bool/modifiers/swap/constexpr.cc: New test. 1037 * testsuite/23_containers/vector/capacity/constexpr.cc: New test. 1038 * testsuite/23_containers/vector/cons/constexpr.cc: New test. 1039 * testsuite/23_containers/vector/data_access/constexpr.cc: New test. 1040 * testsuite/23_containers/vector/element_access/constexpr.cc: New test. 1041 * testsuite/23_containers/vector/modifiers/assign/constexpr.cc: New test. 1042 * testsuite/23_containers/vector/modifiers/constexpr.cc: New test. 1043 * testsuite/23_containers/vector/modifiers/swap/constexpr.cc: New test. 1044 10452021-11-11 Jonathan Wakely <jwakely@redhat.com> 1046 1047 * include/debug/deque (deque::operator=(const deque&)): Remove 1048 definition. 1049 * include/debug/list (list::operator=(const list&)): Likewise. 1050 * include/debug/map.h (map::operator=(const map&)): Likewise. 1051 * include/debug/multimap.h (multimap::operator=(const multimap&)): 1052 Likewise. 1053 * include/debug/multiset.h (multiset::operator=(const multiset&)): 1054 Likewise. 1055 * include/debug/set.h (set::operator=(const set&)): Likewise. 1056 * include/debug/string (basic_string::operator=(const basic_string&)): 1057 Likewise. 1058 * include/debug/vector (vector::operator=(const vector&)): 1059 Likewise. 1060 (_Safe_vector::operator=(const _Safe_vector&)): Define for 1061 C++98 as well. 1062 10632021-11-11 Jonathan Wakely <jwakely@redhat.com> 1064 1065 * include/std/memory_resource (memory_resource::allocate): 1066 Implicitly create objects in the returned storage. 1067 10682021-11-11 Jonathan Wakely <jwakely@redhat.com> 1069 1070 * include/bits/stl_bvector.h (vector<bool>::data()): Give 1071 protected access, and delete for C++11 and later. 1072 10732021-11-10 Jonathan Wakely <jwakely@redhat.com> 1074 1075 PR libstdc++/100117 1076 * testsuite/17_intro/headers/c++1998/49745.cc: Explicitly list 1077 all C++ headers instead of including <bits/stdc++.h> 1078 10792021-11-10 Jonathan Wakely <jwakely@redhat.com> 1080 1081 PR libstdc++/100748 1082 PR libstdc++/103133 1083 * config/os/gnu-linux/os_defines.h (_GLIBCXX_GTHREAD_USE_WEAK): 1084 Define for glibc 2.34 and later. 1085 10862021-11-09 François Dumont <fdumont@gcc.gnu.org> 1087 1088 * include/bits/hashtable_policy.h (__distance_fw): Replace class keyword with 1089 typename. 1090 * include/bits/hashtable.h (_Hashtable<>::_M_merge_unique): Remove noexcept 1091 qualification. Use const_iterator for node extraction/reinsert. 1092 (_Hashtable<>::_M_merge_multi): Likewise. Compute new hash code before extract. 1093 * include/debug/safe_container.h (_Safe_container<>): Make all methods 1094 protected. 1095 * include/debug/safe_unordered_container.h 1096 (_Safe_unordered_container<>::_UContInvalidatePred<_ExtractKey, _Source>): New. 1097 (_Safe_unordered_container<>::_UMContInvalidatePred<_ExtractKey, _Source>): New. 1098 (_Safe_unordered_container<>::_UContMergeGuard<_Source, _InvalidatePred>): New. 1099 (_Safe_unordered_container<>::_S_uc_guard<_ExtractKey, _Source>): New. 1100 (_Safe_unordered_container<>::_S_umc_guard<_ExtractKey, _Source>): New. 1101 (_Safe_unordered_container<>::_M_invalide_all): Make public. 1102 (_Safe_unordered_container<>::_M_invalide_if): Likewise. 1103 (_Safe_unordered_container<>::_M_invalide_local_if): Likewise. 1104 * include/debug/unordered_map 1105 (unordered_map<>::mapped_type, pointer, const_pointer): New typedef. 1106 (unordered_map<>::reference, const_reference, difference_type): New typedef. 1107 (unordered_map<>::get_allocator, empty, size, max_size): Add usings. 1108 (unordered_map<>::bucket_count, max_bucket_count, bucket): Add usings. 1109 (unordered_map<>::hash_function, key_equal, count, contains): Add usings. 1110 (unordered_map<>::operator[], at, rehash, reserve): Add usings. 1111 (unordered_map<>::merge): New. 1112 (unordered_multimap<>::mapped_type, pointer, const_pointer): New typedef. 1113 (unordered_multimap<>::reference, const_reference, difference_type): New typedef. 1114 (unordered_multimap<>::get_allocator, empty, size, max_size): Add usings. 1115 (unordered_multimap<>::bucket_count, max_bucket_count, bucket): Add usings. 1116 (unordered_multimap<>::hash_function, key_equal, count, contains): Add usings. 1117 (unordered_multimap<>::rehash, reserve): Add usings. 1118 (unordered_multimap<>::merge): New. 1119 * include/debug/unordered_set 1120 (unordered_set<>::mapped_type, pointer, const_pointer): New typedef. 1121 (unordered_set<>::reference, const_reference, difference_type): New typedef. 1122 (unordered_set<>::get_allocator, empty, size, max_size): Add usings. 1123 (unordered_set<>::bucket_count, max_bucket_count, bucket): Add usings. 1124 (unordered_set<>::hash_function, key_equal, count, contains): Add usings. 1125 (unordered_set<>::rehash, reserve): Add usings. 1126 (unordered_set<>::merge): New. 1127 (unordered_multiset<>::mapped_type, pointer, const_pointer): New typedef. 1128 (unordered_multiset<>::reference, const_reference, difference_type): New typedef. 1129 (unordered_multiset<>::get_allocator, empty, size, max_size): Add usings. 1130 (unordered_multiset<>::bucket_count, max_bucket_count, bucket): Add usings. 1131 (unordered_multiset<>::hash_function, key_equal, count, contains): Add usings. 1132 (unordered_multiset<>::rehash, reserve): Add usings. 1133 (unordered_multiset<>::merge): New. 1134 * testsuite/23_containers/unordered_map/debug/merge1_neg.cc: New test. 1135 * testsuite/23_containers/unordered_map/debug/merge2_neg.cc: New test. 1136 * testsuite/23_containers/unordered_map/debug/merge3_neg.cc: New test. 1137 * testsuite/23_containers/unordered_map/debug/merge4_neg.cc: New test. 1138 * testsuite/23_containers/unordered_multimap/debug/merge1_neg.cc: New test. 1139 * testsuite/23_containers/unordered_multimap/debug/merge2_neg.cc: New test. 1140 * testsuite/23_containers/unordered_multimap/debug/merge3_neg.cc: New test. 1141 * testsuite/23_containers/unordered_multimap/debug/merge4_neg.cc: New test. 1142 * testsuite/23_containers/unordered_multiset/debug/merge1_neg.cc: New test. 1143 * testsuite/23_containers/unordered_multiset/debug/merge2_neg.cc: New test. 1144 * testsuite/23_containers/unordered_multiset/debug/merge3_neg.cc: New test. 1145 * testsuite/23_containers/unordered_multiset/debug/merge4_neg.cc: New test. 1146 * testsuite/23_containers/unordered_set/debug/merge1_neg.cc: New test. 1147 * testsuite/23_containers/unordered_set/debug/merge2_neg.cc: New test. 1148 * testsuite/23_containers/unordered_set/debug/merge3_neg.cc: New test. 1149 * testsuite/23_containers/unordered_set/debug/merge4_neg.cc: New test. 1150 * testsuite/util/testsuite_abi.h: [_GLIBCXX_DEBUG] Use normal unordered 1151 container implementation. 1152 11532021-11-09 Jonathan Wakely <jwakely@redhat.com> 1154 1155 * testsuite/26_numerics/random/random_device/cons/token.cc: 1156 Print results of random_device_available checks. 1157 11582021-11-09 Jonathan Wakely <jwakely@redhat.com> 1159 1160 PR libstdc++/103146 1161 * src/c++11/random.cc: Check __powerpc64__ not __powerpc__. 1162 11632021-11-09 Jonathan Wakely <jwakely@redhat.com> 1164 1165 * acinclude.m4 (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM): 1166 Define. 1167 * configure.ac (GLIBCXX_CHECK_GETENTROPY, GLIBCXX_CHECK_ARC4RANDOM): 1168 Use them. 1169 * config.h.in: Regenerate. 1170 * configure: Regenerate. 1171 * src/c++11/random.cc (random_device): Add getentropy and 1172 arc4random as sources. 1173 * testsuite/26_numerics/random/random_device/cons/token.cc: 1174 Check new tokens. 1175 * testsuite/26_numerics/random/random_device/entropy.cc: 1176 Likewise. 1177 11782021-11-09 Jonathan Wakely <jwakely@redhat.com> 1179 1180 * testsuite/26_numerics/random/random_device/cons/token.cc: 1181 Retry if random devices produce the same value. 1182 11832021-11-09 Rasmus Villemoes <rasmus.villemoes@prevas.dk> 1184 1185 * config/os/vxworks/os_defines.h (_GLIBCXX_HAVE_TLS): Only 1186 define for VxWorks >= 6.6. 1187 11882021-11-05 Jonathan Wakely <jwakely@redhat.com> 1189 1190 * include/bits/range_access.h (begin(valarray), end(valarray)): 1191 Add noexcept. 1192 11932021-11-05 Jonathan Wakely <jwakely@redhat.com> 1194 1195 * include/std/tuple (tuple_size_v): Fix pack expansion. 1196 11972021-11-05 Jonathan Wakely <jwakely@redhat.com> 1198 1199 * src/c++11/random.cc (__x86_rdrand, __x86_rdseed): Add 1200 [[unlikely]] attribute. 1201 12022021-11-05 Jonathan Wakely <jwakely@redhat.com> 1203 1204 * src/c++11/random.cc [__powerpc__] (USE_DARN): Define. 1205 (__ppc_darn): New function to use POWER9 DARN instruction. 1206 (Which): Add 'darn' enumerator. 1207 (which_source): Check for __ppc_darn. 1208 (random_device::_M_init): Support "darn" and "hw" tokens. 1209 (random_device::_M_getentropy): Add darn to switch. 1210 * testsuite/26_numerics/random/random_device/cons/token.cc: 1211 Check "darn" token. 1212 * testsuite/26_numerics/random/random_device/entropy.cc: 1213 Likewise. 1214 12152021-11-05 Jonathan Wakely <jwakely@redhat.com> 1216 1217 * testsuite/lib/gdb-test.exp: Add target selector support to the 1218 dg-final directives. 1219 * testsuite/libstdc++-prettyprinters/80276.cc: Add xfail for 1220 C++20. 1221 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise. 1222 * testsuite/libstdc++-prettyprinters/prettyprinters.exp: Tweak 1223 comment. 1224 12252021-11-04 Jonathan Wakely <jwakely@redhat.com> 1226 1227 PR libstdc++/103086 1228 * python/libstdcxx/v6/printers.py (_tuple_impl_get): New helper 1229 for accessing the tuple element stored in a _Tuple_impl node. 1230 (tuple_get): New function for accessing a tuple element. 1231 (unique_ptr_get): New function for accessing a unique_ptr. 1232 (UniquePointerPrinter, StdPathPrinter): Use unique_ptr_get. 1233 * python/libstdcxx/v6/xmethods.py (UniquePtrGetWorker): Cast 1234 tuple to its base class before accessing _M_head_impl. 1235 12362021-11-04 Jonathan Wakely <jwakely@redhat.com> 1237 1238 * doc/xml/manual/evolution.xml: Document deprecations. 1239 * doc/html/*: Regenerate. 1240 * libsupc++/exception (unexpected_handler, unexpected) 1241 (get_unexpected, set_unexpected): Add deprecated attribute. 1242 Do not define without _GLIBCXX_USE_DEPRECATED for C++17 and up. 1243 * libsupc++/eh_personality.cc (PERSONALITY_FUNCTION): Disable 1244 deprecated warnings. 1245 * libsupc++/eh_ptr.cc (std::rethrow_exception): Likewise. 1246 * libsupc++/eh_terminate.cc: Likewise. 1247 * libsupc++/eh_throw.cc (__cxa_init_primary_exception): 1248 Likewise. 1249 * libsupc++/unwind-cxx.h (struct __cxa_exception): Use 1250 terminate_handler instead of unexpected_handler. 1251 (struct __cxa_dependent_exception): Likewise. 1252 (__unexpected): Likewise. 1253 * testsuite/18_support/headers/exception/synopsis.cc: Add 1254 dg-warning for deprecated warning. 1255 * testsuite/18_support/exception_ptr/60612-unexpected.cc: 1256 Disable deprecated warnings. 1257 * testsuite/18_support/set_unexpected.cc: Likewise. 1258 * testsuite/18_support/unexpected_handler.cc: Likewise. 1259 12602021-11-04 Jonathan Wakely <jwakely@redhat.com> 1261 1262 * include/bits/utility.h (__find_uniq_type_in_pack): Move 1263 definition to here, ... 1264 * include/std/tuple (__find_uniq_type_in_pack): ... from here. 1265 * include/std/variant (__detail__variant::__index_of): Remove. 1266 (__detail::__variant::__exactly_once): Define using 1267 __find_uniq_type_in_pack instead of __index_of. 1268 (get<T>, get_if<T>, variant::__index_of): Likewise. 1269 12702021-11-04 Jonathan Wakely <jwakely@redhat.com> 1271 1272 * include/bits/stl_pair.h (tuple_size_v): Define partial 1273 specializations for std::pair. 1274 * include/bits/utility.h (_Nth_type): Move definition here 1275 and define primary template. 1276 (tuple_size_v): Move definition here. 1277 * include/std/array (tuple_size_v): Define partial 1278 specializations for std::array. 1279 * include/std/tuple (tuple_size_v): Move primary template to 1280 <bits/utility.h>. Define partial specializations for 1281 std::tuple. 1282 (tuple_element): Change definition to use _Nth_type. 1283 * include/std/variant (_Nth_type): Move to <bits/utility.h>. 1284 (variant_alternative, variant): Adjust qualification of 1285 _Nth_type. 1286 * testsuite/20_util/tuple/element_access/get_neg.cc: Prune 1287 additional errors from _Nth_type. 1288 12892021-11-04 Jonathan Wakely <jwakely@redhat.com> 1290 1291 * include/std/variant (__detail::__variant::__emplace): New 1292 function template. 1293 (_Copy_assign_base::operator=): Reorder conditions to match 1294 bulleted list of effects in the standard. Use __emplace instead 1295 of _M_reset followed by _Construct. 1296 (_Move_assign_base::operator=): Likewise. 1297 (__construct_by_index): Remove. 1298 (variant::emplace): Use __emplace instead of _M_reset followed 1299 by __construct_by_index. 1300 (variant::swap): Hoist valueless cases out of visitor. Use 1301 __emplace to replace _M_reset followed by _Construct. 1302 13032021-11-04 Jonathan Wakely <jwakely@redhat.com> 1304 1305 * include/std/variant (_Nth_type): Define partial 1306 specializations to reduce number of instantiations. 1307 (variant_size_v): Define partial specializations to avoid 1308 instantiations. 1309 (variant_alternative): Use _Nth_type. Add static assert. 1310 (__tuple_count, __tuple_count_v): Replace with ... 1311 (__count): New variable template. 1312 (_Variant_union): Add deleted constructor. 1313 (variant::__to_type): Use _Nth_type. 1314 (variant::emplace): Use _Nth_type. Add deleted overloads for 1315 invalid types and indices. 1316 13172021-11-04 Jonathan Wakely <jwakely@redhat.com> 1318 1319 PR libstdc++/102912 1320 * include/std/variant (_Variant_storage::__index_of): Remove. 1321 (__variant_construct_single): Remove. 1322 (__variant_construct): Remove. 1323 (_Copy_ctor_base::_Copy_ctor_base(const _Copy_ctor_base&)): Do 1324 construction directly instead of using __variant_construct. 1325 (_Move_ctor_base::_Move_ctor_base(_Move_ctor_base&&)): Likewise. 1326 (_Move_ctor_base::_M_destructive_move()): Remove. 1327 (_Move_ctor_base::_M_destructive_copy()): Remove. 1328 (_Copy_assign_base::operator=(const _Copy_assign_base&)): Do 1329 construction directly instead of using _M_destructive_copy. 1330 (variant::swap): Do construction directly instead of using 1331 _M_destructive_move. 1332 * testsuite/20_util/variant/102912.cc: New test. 1333 13342021-11-03 Jonathan Wakely <jwakely@redhat.com> 1335 1336 PR libstdc++/66742 1337 * include/bits/list.tcc (list::sort): Use mutable iterators for 1338 comparisons. 1339 * include/bits/stl_list.h (_Scratch_list::_Ptr_cmp): Likewise. 1340 * testsuite/23_containers/list/operations/66742.cc: Check 1341 non-const comparisons. 1342 13432021-11-03 Jonathan Wakely <jwakely@redhat.com> 1344 1345 * include/std/valarray (valarray::valarray()): Add noexcept. 1346 (valarray::operator[]): Likewise. 1347 13482021-11-01 Jonathan Wakely <jwakely@redhat.com> 1349 1350 * include/debug/stl_iterator.h (__valid_range): Add constexpr 1351 for C++20. Qualify call to avoid ADL. 1352 (__get_distance, __can_advance, __unsafe, __base): Likewise. 1353 * testsuite/25_algorithms/move/constexpr.cc: Also check with 1354 std::reverse_iterator arguments. 1355 13562021-11-01 Jonathan Wakely <jwakely@redhat.com> 1357 1358 * include/std/span (span(Range&&)): Reorder constraints. 1359 13602021-11-01 Jonathan Wakely <jwakely@redhat.com> 1361 1362 PR libstdc++/103022 1363 * include/std/valarray (begin, end): Do not dereference an empty 1364 valarray. Add noexcept and [[nodiscard]]. 1365 * testsuite/26_numerics/valarray/range_access.cc: Check empty 1366 valarray. Check iterator properties. Run as well as compiling. 1367 * testsuite/26_numerics/valarray/range_access2.cc: Likewise. 1368 * testsuite/26_numerics/valarray/103022.cc: New test. 1369 13702021-10-29 Jonathan Wakely <jwakely@redhat.com> 1371 1372 * testsuite/23_containers/stack/deduction.cc: Fix typo. 1373 13742021-10-26 Martin Sebor <msebor@redhat.com> 1375 1376 * testsuite/21_strings/basic_string/capacity/1.cc: Also suppress 1377 -Wstringop-overread. 1378 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc: Same. 1379 13802021-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1381 1382 * testsuite/28_regex/basic_regex/84110.cc (test01) 1383 [__cpp_exceptions]: Disambiguate extended. 1384 13852021-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1386 1387 * testsuite/17_intro/names.cc [__sun__] (r, x): Undef. 1388 13892021-10-22 Jonathan Wakely <jwakely@redhat.com> 1390 1391 PR libstdc++/102894 1392 * include/std/any (make_any): Add SFINAE constraint. 1393 * testsuite/20_util/any/102894.cc: New test. 1394 13952021-10-21 Jonathan Wakely <jwakely@redhat.com> 1396 1397 * doc/doxygen/stdheader.cc: Refactor. Use C++23. Add new 1398 headers. 1399 * scripts/run_doxygen: Fix post-processing of #include 1400 directives in man pages. Use new xg++ to compile helper program. 1401 14022021-10-21 Jonathan Wakely <jwakely@redhat.com> 1403 1404 * include/bits/mofunc_impl.h: Add doxygen comments. 1405 * include/std/functional: Likewise. 1406 14072021-10-21 Jonathan Wakely <jwakely@redhat.com> 1408 1409 * include/bits/alloc_traits.h: Suppress doxygen documentation. 1410 * include/bits/allocated_ptr.h: Likewise. 1411 * include/bits/enable_special_members.h: Likewise. 1412 * include/bits/hashtable.h: Likewise. 1413 * include/bits/hashtable_policy.h: Likewise. 1414 * include/bits/uses_allocator.h: Likewise. 1415 * include/bits/node_handle.h: Document node handles and suppress 1416 documentation for protected members. 1417 * include/std/any: Suppress documentation for implementation 1418 details. 1419 14202021-10-21 Patrick Palka <ppalka@redhat.com> 1421 1422 PR libstdc++/102358 1423 * include/bits/stl_iterator.h (__niter_base): Make constexpr 1424 for C++20. 1425 (__miter_base): Likewise. 1426 * testsuite/25_algorithms/move/constexpr.cc: New test. 1427 14282021-10-21 Patrick Palka <ppalka@redhat.com> 1429 1430 * include/std/ranges (istream_view): Replace this function 1431 template with an alias template as per P2432R1. 1432 (wistream_view): Define as per P2432R1. 1433 (views::_Istream, views::istream): Likewise. 1434 * testsuite/std/ranges/istream_view.cc (test07): New test. 1435 14362021-10-21 Patrick Palka <ppalka@redhat.com> 1437 1438 * include/bits/ranges_util.h (views::_Drop): Forward declare. 1439 (subrange): Befriend views::_Drop. 1440 (subrange::_S_store_size): Declare constexpr instead of just 1441 const, remove obsolete comment. 1442 * include/std/ranges (views::__detail::__is_empty_view): Define. 1443 (views::__detail::__is_basic_string_view): Likewise. 1444 (views::__detail::__is_subrange): Likewise. 1445 (views::__detail::__is_iota_view): Likewise. 1446 (views::__detail::__can_take_view): Rename template parm _Tp to _Dp. 1447 (views::_Take): Rename template parm _Tp to _Dp, make it non-deducible 1448 and fix it to range_difference_t<_Range>. Implement P1739R4 and 1449 LWG 3407 changes. 1450 (views::__detail::__can_drop_view): Rename template parm _Tp to _Dp. 1451 (views::_Drop): As with views::_Take. 1452 (views::_Counted): Implement P1739R4 changes. 1453 * include/std/span (__detail::__is_std_span): Rename to ... 1454 (__detail::__is_span): ... this and turn it into a variable 1455 template. 1456 (__detail::__is_std_array): Turn it into a variable template. 1457 (span::span): Adjust uses of __is_std_span and __is_std_array 1458 accordingly. 1459 * testsuite/std/ranges/adaptors/p1739.cc: New test. 1460 14612021-10-21 Patrick Palka <ppalka@redhat.com> 1462 1463 * include/bits/stl_iterator.h (common_iterator::__arrow_proxy): 1464 Make fully constexpr as per LWG 3595. 1465 (common_iterator::__postfix_proxy): Likewise. 1466 14672021-10-21 Patrick Palka <ppalka@redhat.com> 1468 1469 * include/std/ranges (lazy_split_view::base): Add forward_range 1470 constraint as per LWG 3591. 1471 (lazy_split_view::begin, lazy_split_view::end): Also check 1472 simpleness of _Pattern as per LWG 3592. 1473 (split_view::base): Relax copyable constraint as per LWG 3590. 1474 14752021-10-21 Patrick Palka <ppalka@redhat.com> 1476 1477 * include/std/ranges (join_view::__iter_cat::_S_iter_cat): Adjust 1478 criteria for returning bidirectional_iterator_tag as per LWG 3535. 1479 (join_view::_Iterator::_S_iter_concept): Likewise. 1480 14812021-10-21 Patrick Palka <ppalka@redhat.com> 1482 1483 * include/bits/ranges_base.h (viewable_range): Adjust as per 1484 LWG 3481. 1485 * testsuite/std/ranges/adaptors/all.cc (test07): New test. 1486 14872021-10-21 Jonathan Wakely <jwakely@redhat.com> 1488 1489 PR libstdc++/102863 1490 * include/std/optional (optional::and_then, optional::transform): 1491 Remove requires-clause. 1492 * testsuite/20_util/optional/monadic/and_then.cc: Check 1493 overload resolution doesn't cause errors. 1494 * testsuite/20_util/optional/monadic/transform.cc: Likewise. 1495 14962021-10-20 Jonathan Wakely <jwakely@redhat.com> 1497 1498 * testsuite/20_util/optional/monadic/transform.cc: Check that 1499 an rvalue result is not materialized too soon. 1500 15012021-10-19 Patrick Palka <ppalka@redhat.com> 1502 1503 * include/std/ranges (iota_view::_Iterator::operator+): Adjust 1504 definition as per LWG 3580. 1505 (iota_view::_Iterator::operator-): Likewise. 1506 15072021-10-19 Patrick Palka <ppalka@redhat.com> 1508 1509 * include/std/ranges (basic_istream_view::_M_object): Value 1510 initialize as per LWG 3568. 1511 15122021-10-19 Patrick Palka <ppalka@redhat.com> 1513 1514 * include/bits/ranges_util.h 1515 (__detail::__uses_nonqualification_pointer_conversion): Define 1516 and use it ... 1517 (__detail::__convertible_to_nonslicing): ... here, as per LWG 3470. 1518 * testsuite/std/ranges/subrange/1.cc: New test. 1519 15202021-10-19 Patrick Palka <ppalka@redhat.com> 1521 1522 * include/std/ranges (iota_view::_Iterator): Befriend iota_view. 1523 (iota_view::_Sentinel): Likewise. 1524 (iota_view::iota_view): Add three overloads, each taking an 1525 iterator/sentinel pair as per LWG 3523. 1526 * testsuite/std/ranges/iota/iota_view.cc (test06): New test. 1527 15282021-10-19 Patrick Palka <ppalka@redhat.com> 1529 1530 * include/bits/ranges_base.h (view_interface): Forward declare. 1531 (__detail::__is_derived_from_view_interface_fn): Declare. 1532 (__detail::__is_derived_from_view_interface): Define as per LWG 3549. 1533 (enable_view): Adjust as per LWG 3549. 1534 * include/bits/ranges_util.h (view_interface): Don't derive from 1535 view_base. 1536 * include/std/ranges (filter_view): Revert r11-3504 change. 1537 (transform_view): Likewise. 1538 (take_view): Likewise. 1539 (take_while_view): Likewise. 1540 (drop_view): Likewise. 1541 (drop_while_view): Likewise. 1542 (join_view): Likewise. 1543 (lazy_split_view): Likewise. 1544 (split_view): Likewise. 1545 (reverse_view): Likewise. 1546 * testsuite/std/ranges/adaptors/sizeof.cc: Update expected sizes. 1547 * testsuite/std/ranges/view.cc (test_view::test_view): Remove 1548 this default ctor since views no longer need to be default initable. 1549 (test01): New test. 1550 15512021-10-19 Jonathan Wakely <jwakely@redhat.com> 1552 1553 * src/c++11/random.cc (which_source): New helper function. 1554 (random_device::_M_getentropy()): Use which_source and return 1555 suitable values for sources other than device files. 1556 * testsuite/26_numerics/random/random_device/entropy.cc: New test. 1557 15582021-10-19 Jonathan Wakely <jwakely@redhat.com> 1559 1560 * doc/Makefile.am (stamp-html-doxygen, stamp-html-doxygen) 1561 (stamp-latex-doxygen, stamp-man-doxygen): Fix recipes for 1562 relative ${top_srcdir}. 1563 * doc/Makefile.in: Regenerate. 1564 15652021-10-19 Jonathan Wakely <jwakely@redhat.com> 1566 1567 * include/std/variant (_Uninitialized): Use an empty struct 1568 for the unused union member, instead of char. 1569 15702021-10-19 Jonathan Wakely <jwakely@redhat.com> 1571 1572 * include/bits/stl_stack.h (stack(Iterator, Iterator)): Remove 1573 non-deducible template parameter from deduction guide. 1574 * testsuite/23_containers/stack/deduction.cc: Check new C++23 1575 deduction guides. 1576 15772021-10-19 Jonathan Wakely <jwakely@redhat.com> 1578 1579 * include/std/optional (_Optional_payload_base::_Storage): Add 1580 constructor taking a callable function to invoke. 1581 (_Optional_payload_base::_M_apply): New function. 1582 (__cpp_lib_monadic_optional): Define for C++23. 1583 (optional::and_then, optional::transform, optional::or_else): 1584 Define for C++23. 1585 * include/std/ranges (__detail::__cached): Remove. 1586 (__detail::__non_propagating_cache): Remove use of __cached for 1587 contained value. Use _Optional_payload_base::_M_construct and 1588 _Optional_payload_base::_M_apply to set the contained value. 1589 * include/std/version (__cpp_lib_monadic_optional): Define. 1590 * testsuite/20_util/optional/monadic/and_then.cc: New test. 1591 * testsuite/20_util/optional/monadic/or_else.cc: New test. 1592 * testsuite/20_util/optional/monadic/or_else_neg.cc: New test. 1593 * testsuite/20_util/optional/monadic/transform.cc: New test. 1594 * testsuite/20_util/optional/monadic/version.cc: New test. 1595 15962021-10-19 Jonathan Wakely <jwakely@redhat.com> 1597 1598 PR libstdc++/102825 1599 * include/bits/mofunc_impl.h (move_only_function): Remove 1600 invalid base initializer. 1601 * testsuite/20_util/move_only_function/cons.cc: Instantiate 1602 constructors to check bodies. 1603 16042021-10-15 Jonathan Wakely <jwakely@redhat.com> 1605 1606 * include/bits/fs_path.h (path::_S_convert(T)): Avoid recursive 1607 call to function with deduced return type. 1608 16092021-10-15 Jonathan Wakely <jwakely@redhat.com> 1610 1611 * include/bits/basic_string.h (__cpp_lib_string_resize_and_overwrite): 1612 Define for C++23. 1613 (basic_string::resize_and_overwrite): Declare. 1614 * include/bits/basic_string.tcc (basic_string::resize_and_overwrite): 1615 Define. 1616 * include/std/version (__cpp_lib_resize_and_overwrite): Define 1617 for C++23. 1618 * testsuite/21_strings/basic_string/capacity/char/resize_and_overwrite.cc: 1619 New test. 1620 16212021-10-15 Jonathan Wakely <jwakely@redhat.com> 1622 1623 PR libstdc++/101263 1624 * include/std/ranges (__cached): New wrapper struct. 1625 (__non_propagating_cache): Use __cached for contained value. 1626 (__non_propagating_cache::_M_emplace_deref): Add constexpr. Use 1627 std::construct_at instead of placement new. 1628 * testsuite/std/ranges/adaptors/join.cc: Check constexpr works. 1629 16302021-10-15 Jonathan Wakely <jwakely@redhat.com> 1631 1632 * include/std/variant (__cpp_lib_variant): Update value for 1633 C++20. 1634 (__variant_cast, __variant_construct): Add constexpr for C++20. 1635 (__variant_construct_single, __construct_by_index) Likewise. Use 1636 std::_Construct instead of placement new. 1637 (_Uninitialized<T, false>) [__cplusplus >= 202002]: Replace 1638 buffer with a union and define a destructor. 1639 (_Variadic_union) [__cplusplus >= 202002]: Add a specialization 1640 for non-trivial destruction. 1641 (_Variant_storage::__index_of): New helper variable template. 1642 (_Variant_storage::~_Variant_storage()): Add constexpr. 1643 (_Variant_storage::_M_reset()): Likewise. 1644 (_Copy_ctor_base, _Move_ctor_base): Likewise. 1645 (_Copy_assign_base, _Move_assign_base): Likewise. 1646 (variant, swap): Likewise. 1647 * include/std/version (__cpp_lib_variant): Update value for 1648 C++20. 1649 * testsuite/20_util/optional/version.cc: Check for exact value 1650 in C++17. 1651 * testsuite/20_util/variant/87619.cc: Increase timeout for 1652 C++20 mode. 1653 * testsuite/20_util/variant/constexpr.cc: New test. 1654 * testsuite/20_util/variant/version.cc: New test. 1655 16562021-10-15 Jonathan Wakely <jwakely@redhat.com> 1657 1658 * include/std/variant (__detail::__variant::__get_storage): 1659 Remove unused function. 1660 (__variant_construct_by_index): Set index after construction is 1661 complete. Rename to ... 1662 (__detail::__variant::__construct_by_index): ... this. 1663 (variant): Use new name for __variant_construct_by_index friend 1664 declaration. Remove __get_storage friend declaration. 1665 (variant::emplace): Use new name and remove try-blocks. 1666 16672021-10-15 Jonathan Wakely <jwakely@redhat.com> 1668 1669 * include/std/variant (_Variant_storage::_M_storage()): Remove. 1670 (__detail::__variant::__get_storage): Remove. 1671 (variant): Remove friend declaration of __get_storage. 1672 16732021-10-15 Jason Merrill <jason@redhat.com> 1674 1675 * testsuite/20_util/integer_comparisons/greater_equal_neg.cc: 1676 * testsuite/20_util/integer_comparisons/greater_neg.cc: 1677 * testsuite/20_util/integer_comparisons/less_equal_neg.cc: 1678 Adjust expected message. 1679 * testsuite/lib/prune.exp: Prune 'in constexpr expansion'. 1680 16812021-10-14 Jonathan Wakely <jwakely@redhat.com> 1682 1683 * include/std/variant (__variant::__get(in_place_index_t<N>, U&&)): 1684 Rename to __get_n and remove first argument. Replace pair of 1685 overloads with a single function using 'if constexpr'. 1686 (__variant::__get(Variant&&)): Adjust to use __get_n. 1687 16882021-10-14 Jonathan Wakely <jwakely@redhat.com> 1689 1690 * include/bits/fs_path.h (path(path&&)): Make unconditionally 1691 noexcept. 1692 (path::_S_convert(T)): Add condtional noexcept. 1693 16942021-10-14 Jonathan Wakely <jwakely@redhat.com> 1695 1696 PR libstdc++/102743 1697 * include/bits/fs_path.h (path::_S_convert(T)): Fix condition 1698 for returning the same string unchanged. 1699 17002021-10-14 Jonathan Wakely <jwakely@redhat.com> 1701 1702 * include/bits/regex.h: Check __cpp_inline_variables instead of 1703 __cplusplus. 1704 17052021-10-14 Jonathan Wakely <jwakely@redhat.com> 1706 1707 * testsuite/20_util/is_layout_compatible/version.cc: Check 1708 correct macro. 1709 17102021-10-14 Jonathan Wakely <jwakely@redhat.com> 1711 1712 * include/bits/stl_construct.h (_Construct): Use 1713 std::construct_at when constant evaluated. 1714 * include/std/optional (_Storage, _Optional_payload, optional): 1715 Add constexpr as specified by P2231R1. 1716 * include/std/version (__cpp_lib_optional): Update value for 1717 C++20. 1718 * testsuite/20_util/optional/requirements.cc: Check feature test 1719 macro. 1720 * testsuite/20_util/optional/constexpr/assign.cc: New test. 1721 * testsuite/20_util/optional/constexpr/cons/conv.cc: New test. 1722 * testsuite/20_util/optional/constexpr/modifiers.cc: New test. 1723 * testsuite/20_util/optional/constexpr/swap.cc: New test. 1724 * testsuite/20_util/optional/version.cc: New test. 1725 17262021-10-13 Jonathan Wakely <jwakely@redhat.com> 1727 1728 * include/bits/fs_path.h (__detail::__is_contiguous): Add 1729 partial specializations for pointers and __normal_iterator. 1730 17312021-10-13 Jonathan Wakely <jwakely@redhat.com> 1732 1733 * testsuite/27_io/filesystem/path/construct/102592.C: Moved to... 1734 * testsuite/27_io/filesystem/path/construct/102592.cc: ...here. 1735 * testsuite/28_regex/match_results/102667.C: Moved to... 1736 * testsuite/28_regex/match_results/102667.cc: ...here. 1737 17382021-10-13 Jonathan Wakely <jwakely@redhat.com> 1739 1740 * include/bits/fs_path.h (__detail::__is_contiguous): New 1741 variable template to identify contiguous iterators. 1742 (__detail::__unified_char8_t): New alias template to decide when 1743 to treat char8_t as char without encoding conversion. 1744 (__detail::__effective_range(const basic_string<C,T>&)): Use 1745 std::char_traits<C> for returned string view. 1746 (__detail::__effective_range(const basic_string_view<C,T>&)): 1747 Likewise. 1748 (__detail::__effective_range(const Source&)): Use 1749 __is_contiguous to detect mode cases of contiguous iterators. 1750 Use __unified_char8_t to return a std::string instead of 1751 std::u8string. 1752 17532021-10-13 Jonathan Wakely <jwakely@redhat.com> 1754 1755 PR libstdc++/102592 1756 * include/bits/fs_path.h (path::path(Iter, Iter, format)) 1757 (path::append(Iter, Iter), path::concat(Iter, Iter)): Call 1758 __string_from_range directly, instead of two-argument overload 1759 of _S_convert. 1760 (path::_S_convert(Iter, Iter)): Remove. 1761 * testsuite/27_io/filesystem/path/construct/102592.C: New test. 1762 17632021-10-13 Jonathan Wakely <jwakely@redhat.com> 1764 1765 * include/bits/c++config (__terminate): Add extern "C++". 1766 17672021-10-12 Jonathan Wakely <jwakely@redhat.com> 1768 1769 * testsuite/20_util/tuple/comparison_operators/overloaded.cc: 1770 Restore test for operator<. 1771 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc: 1772 Adjust expected errors for C++20. 1773 17742021-10-12 Jonathan Wakely <jwakely@redhat.com> 1775 1776 PR libstdc++/101960 1777 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Define as 1778 defauled. 1779 * testsuite/20_util/tuple/cons/101960.cc: Check tuples with 1780 array elements before the last element. 1781 17822021-10-12 Jonathan Wakely <jwakely@redhat.com> 1783 1784 * include/bits/stl_iterator_base_funcs.h (__advance): Add 1785 deleted overload to improve diagnostics. 1786 (__distance): Likewise. 1787 17882021-10-11 Jonathan Wakely <jwakely@redhat.com> 1789 1790 * include/bits/atomic_timed_wait.h: Remove unused header. 1791 * include/bits/c++config (std:__terminate): Define. 1792 * include/bits/semaphore_base.h: Remove <exception> and use 1793 __terminate instead of terminate. 1794 * include/bits/std_thread.h: Likewise. 1795 * libsupc++/eh_terminate.cc (std::terminate): Use qualified-id 1796 to call __cxxabiv1::__terminate. 1797 17982021-10-11 Jonathan Wakely <jwakely@redhat.com> 1799 1800 * include/bits/regex.h (basic_regex::assign(Iter, Iter)): Avoid 1801 std::__to_address by using poitner directly or using base() 1802 member of __normal_iterator. 1803 18042021-10-11 Jonathan Wakely <jwakely@redhat.com> 1805 1806 * testsuite/18_support/numeric_limits/lowest.cc: Use 1807 numeric_limits<T>::is_integer instead of is_integral<T>::value. 1808 18092021-10-11 Jonathan Wakely <jwakely@redhat.com> 1810 1811 PR libstdc++/89927 1812 * include/bits/regex.h (basic_regex(const _Ch_type*, size_t)): 1813 Add __glibcxx_requires_string_len assertion. 1814 (basic_regex::assign(InputIterator, InputIterator)): Add 1815 __glibcxx_requires_valid_range assertion. 1816 * include/bits/regex_scanner.tcc (_Scanner::_M_advance()) 1817 (_Scanner::_M_scan_normal()): Use string literal in assertions. 1818 18192021-10-11 Jonathan Wakely <jwakely@redhat.com> 1820 1821 PR libstdc++/102667 1822 * include/bits/regex.h (match_result::empty()): Optimize by 1823 calling the base function directly. 1824 (match_results::end()): Check _Base_type::empty() not empty(). 1825 * testsuite/28_regex/match_results/102667.C: New test. 1826 18272021-10-08 Jonathan Wakely <jwakely@redhat.com> 1828 1829 PR libstdc++/98725 1830 * testsuite/18_support/numeric_limits/lowest.cc: Remove use of 1831 _GLIBCXX_USE_WCHAR_T. 1832 * testsuite/18_support/numeric_limits/min_max.cc: Replace use of 1833 _GLIBCXX_USE_WCHAR_T with checks for WCHAR_MIN and WCHAR_MAX. 1834 * testsuite/20_util/from_chars/1_neg.cc: Remove use of 1835 _GLIBCXX_USE_WCHAR_T. 1836 * testsuite/20_util/function_objects/searchers.cc: Likewise. Use 1837 char_traits<wchar_t>::length instead of wcslen. 1838 * testsuite/20_util/hash/requirements/explicit_instantiation.cc: 1839 Likewise. 1840 * testsuite/20_util/is_arithmetic/value.cc: Likewise. 1841 * testsuite/20_util/is_compound/value.cc: Likewise. 1842 * testsuite/20_util/is_floating_point/value.cc: Likewise. 1843 * testsuite/20_util/is_fundamental/value.cc: Likewise. 1844 * testsuite/20_util/is_integral/value.cc: Likewise. 1845 * testsuite/20_util/is_signed/value.cc: Likewise. 1846 * testsuite/20_util/is_unsigned/value.cc: Likewise. 1847 * testsuite/20_util/is_void/value.cc: Likewise. 1848 * testsuite/20_util/make_signed/requirements/typedefs-1.cc: 1849 Likewise. 1850 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: 1851 Likewise. 1852 * testsuite/20_util/make_signed/requirements/typedefs-3.cc: 1853 Likewise. 1854 * testsuite/20_util/make_signed/requirements/typedefs-4.cc: 1855 Likewise. 1856 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc: 1857 Likewise. 1858 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc: 1859 Likewise. 1860 * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: 1861 Likewise. 1862 * testsuite/20_util/to_chars/3.cc: Likewise. 1863 * testsuite/20_util/type_identity/requirements/typedefs.cc: 1864 Likewise. 1865 * testsuite/21_strings/basic_string/hash/debug.cc: Likewise. 1866 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise. 1867 * testsuite/21_strings/basic_string/literals/types-char8_t.cc: 1868 Likewise. 1869 * testsuite/21_strings/basic_string/literals/types.cc: Likewise. 1870 * testsuite/21_strings/basic_string/literals/values-char8_t.cc: 1871 Likewise. 1872 * testsuite/21_strings/basic_string/literals/values.cc: 1873 Likewise. 1874 * testsuite/21_strings/basic_string/modifiers/64422.cc: 1875 Likewise. 1876 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc: 1877 Likewise. 1878 * testsuite/21_strings/basic_string/requirements/citerators.cc: 1879 Likewise. 1880 * testsuite/21_strings/basic_string/requirements/typedefs.cc: 1881 Likewise. 1882 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: 1883 Likewise. 1884 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc: 1885 Likewise. 1886 * testsuite/21_strings/basic_string_view/literals/types.cc: 1887 Likewise. 1888 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc: 1889 Likewise. 1890 * testsuite/21_strings/basic_string_view/literals/values.cc: 1891 Likewise. 1892 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc: 1893 Likewise. 1894 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise. 1895 * testsuite/21_strings/char_traits/requirements/constexpr_functions.cc: 1896 Likewise. 1897 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc: 1898 Likewise. 1899 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc: 1900 Likewise. 1901 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Likewise. 1902 * testsuite/25_algorithms/fill/4.cc: Likewise. 1903 * testsuite/25_algorithms/fill_n/1.cc: Likewise. 1904 * testsuite/experimental/functional/searchers.cc: Likewise. Use 1905 char_traits<wchar_t>::length instead of wcslen. 1906 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc: 1907 Likewise. 1908 * testsuite/experimental/string_view/literals/types-char8_t.cc: 1909 Likewise. 1910 * testsuite/experimental/string_view/literals/types.cc: 1911 Likewise. 1912 * testsuite/experimental/string_view/literals/values-char8_t.cc: 1913 Likewise. 1914 * testsuite/experimental/string_view/literals/values.cc: 1915 Likewise. 1916 * testsuite/experimental/string_view/range_access/wchar_t/1.cc: 1917 Likewise. 1918 * testsuite/experimental/string_view/requirements/typedefs.cc: 1919 Likewise. 1920 * testsuite/experimental/string_view/typedefs.cc: Likewise. 1921 * testsuite/ext/vstring/range_access.cc: Likewise. 1922 * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc: 1923 Likewise. 1924 * testsuite/std/concepts/concepts.lang/concept.arithmetic/signed_integral.cc: 1925 Likewise. 1926 * testsuite/std/concepts/concepts.lang/concept.arithmetic/unsigned_integral.cc: 1927 Likewise. 1928 * testsuite/tr1/4_metaprogramming/is_arithmetic/value.cc: 1929 Likewise. 1930 * testsuite/tr1/4_metaprogramming/is_compound/value.cc: 1931 Likewise. 1932 * testsuite/tr1/4_metaprogramming/is_floating_point/value.cc: 1933 Likewise. 1934 * testsuite/tr1/4_metaprogramming/is_fundamental/value.cc: 1935 Likewise. 1936 * testsuite/tr1/4_metaprogramming/is_integral/value.cc: 1937 Likewise. 1938 * testsuite/tr1/4_metaprogramming/is_signed/value.cc: Likewise. 1939 * testsuite/tr1/4_metaprogramming/is_unsigned/value.cc: 1940 Likewise. 1941 * testsuite/tr1/4_metaprogramming/is_void/value.cc: Likewise. 1942 * testsuite/tr1/6_containers/hash/24799.cc: Likewise. 1943 19442021-10-08 Jonathan Wakely <jwakely@redhat.com> 1945 1946 PR libstdc++/98725 1947 * include/std/ostream (operator<<(basic_ostream<char, Tr>&, wchar_t)) 1948 (operator<<(basic_ostream<char, Tr>&, const wchar_t*)): Always 1949 define as deleted. Do not check _GLIBCXX_USE_WCHAR_T. 1950 19512021-10-08 Jonathan Wakely <jwakely@redhat.com> 1952 1953 PR libstdc++/98725 1954 * include/bits/locale_conv.h (wstring_convert, wbuffer_convert): 1955 Define unconditionally. Do not check _GLIBCXX_USE_WCHAR_T. 1956 19572021-10-08 Jonathan Wakely <jwakely@redhat.com> 1958 1959 PR libstdc++/98725 1960 * include/c_global/cstddef [!_GLIBCXX_USE_WCHAR_T] 1961 (__byte_operand<wchar_t>): Define specialization. 1962 * include/std/type_traits (__make_signed<wchar_t>) 1963 (__make_unsigned<wchar_t>): Remove redundant check for 1964 __WCHAR_TYPE__ being defined. 1965 * include/tr1/type_traits [!_GLIBCXX_USE_WCHAR_T] 1966 (__is_integral_helper<wchar_t>): Likewise. 1967 19682021-10-08 Jonathan Wakely <jwakely@redhat.com> 1969 1970 PR libstdc++/98725 1971 * include/ext/rc_string_base.h [!_GLIBCXX_USE_WCHAR_T] 1972 (__rc_string_base<wchar_t>): Define member function. 1973 * include/ext/vstring.h [!_GLIBCXX_USE_WCHAR_T] 1974 (hash<__gnu_cxx::__wvstring>): Define specialization. 1975 * include/ext/vstring_fwd.h [!_GLIBCXX_USE_WCHAR_T] (__wvstring) 1976 (__wsso_string, __wrc_string): Declare typedefs. 1977 19782021-10-08 Jonathan Wakely <jwakely@redhat.com> 1979 1980 PR libstdc++/98725 1981 * include/bits/char_traits.h (char_traits<wchar_t>): Define 1982 explicit specialization unconditionally. 1983 * include/bits/basic_string.h (hash<wstring>): Define 1984 unconditionally. Do not check _GLIBCXX_USE_WCHAR_T. 1985 * include/bits/stringfwd.h (wstring): Likewise. 1986 * include/debug/string (wstring): Likewise. 1987 * include/experimental/string_view (experimental::wstring_view) 1988 (hash<experimental::wstring_view>): Likewise. 1989 * include/std/string (pmr::wstring, hash<pmr::wstring>): 1990 Likewise. 1991 * include/std/string_view (wstring_view, hash<wstring_view>): 1992 Likewise. 1993 19942021-10-08 Jonathan Wakely <jwakely@redhat.com> 1995 1996 * testsuite/27_io/basic_filebuf/close/81256.cc: Moved to... 1997 * testsuite/27_io/basic_filebuf/close/wchar_t/81256.cc: ...here. 1998 19992021-10-08 Jonathan Wakely <jwakely@redhat.com> 2000 2001 * testsuite/22_locale/conversions/buffer/1.cc: Check 2002 _GLIBCXX_USE_WCHAR_T. 2003 * testsuite/22_locale/conversions/buffer/3.cc: Likewise. Add 2004 test using char16_t. 2005 * testsuite/22_locale/conversions/string/1.cc: Check 2006 _GLIBCXX_USE_WCHAR_T. 2007 * testsuite/27_io/filesystem/path/generic/generic_string.cc: 2008 Likewise. 2009 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: 2010 Likewise. 2011 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise. 2012 * testsuite/27_io/filesystem/path/native/string-char8_t.cc: 2013 Likewise. 2014 * testsuite/27_io/filesystem/path/native/string.cc: Likewise. 2015 * testsuite/28_regex/algorithms/regex_match/extended/wstring_locale.cc: 2016 Likewise. 2017 * testsuite/experimental/filesystem/path/generic/generic_string.cc: 2018 Likewise. 2019 * testsuite/experimental/filesystem/path/native/alloc.cc: 2020 Likewise. 2021 * testsuite/experimental/filesystem/path/native/string-char8_t.cc: 2022 Likewise. 2023 * testsuite/experimental/filesystem/path/native/string.cc: 2024 Likewise. 2025 20262021-10-08 Jonathan Wakely <jwakely@redhat.com> 2027 2028 * testsuite/26_numerics/bit/bit.rotate/rotr.cc: 2029 * testsuite/util/testsuite_common_types.h: 2030 20312021-10-08 Jonathan Wakely <jwakely@redhat.com> 2032 2033 * testsuite/18_support/numeric_limits/40856.cc: Replace use of 2034 _GLIBCXX_USE_INT128. 2035 * testsuite/18_support/numeric_limits/dr559.cc: Likewise. 2036 * testsuite/18_support/numeric_limits/lowest.cc: Likewise. 2037 * testsuite/18_support/numeric_limits/max_digits10.cc: Likewise. 2038 * testsuite/20_util/is_floating_point/value.cc: Likewise. 2039 * testsuite/20_util/is_integral/value.cc: Likewise. 2040 * testsuite/20_util/is_signed/value.cc: Likewise. 2041 * testsuite/20_util/is_unsigned/value.cc: Likewise. 2042 * testsuite/20_util/make_signed/requirements/typedefs-1.cc: 2043 Likewise. 2044 * testsuite/20_util/make_signed/requirements/typedefs-2.cc: 2045 Likewise. 2046 * testsuite/20_util/make_unsigned/requirements/typedefs-1.cc: 2047 Likewise. 2048 * testsuite/20_util/make_unsigned/requirements/typedefs-2.cc: 2049 Likewise. 2050 * testsuite/20_util/type_identity/requirements/typedefs.cc: 2051 Likewise. 2052 * testsuite/26_numerics/bit/bit.count/countl_one.cc: Likewise. 2053 * testsuite/26_numerics/bit/bit.count/countl_zero.cc: Likewise. 2054 * testsuite/26_numerics/bit/bit.count/countr_one.cc: Likewise. 2055 * testsuite/26_numerics/bit/bit.count/countr_zero.cc: Likewise. 2056 * testsuite/26_numerics/bit/bit.count/popcount.cc: Likewise. 2057 * testsuite/26_numerics/bit/bit.pow.two/bit_ceil.cc: Likewise. 2058 * testsuite/26_numerics/bit/bit.pow.two/bit_floor.cc: Likewise. 2059 * testsuite/26_numerics/bit/bit.pow.two/bit_width.cc: Likewise. 2060 * testsuite/26_numerics/bit/bit.pow.two/has_single_bit.cc: 2061 Likewise. 2062 * testsuite/26_numerics/bit/bit.rotate/rotl.cc: Likewise. 2063 20642021-10-08 Jonathan Wakely <jwakely@redhat.com> 2065 2066 * include/bits/hashtable_policy.h (_Select1st): Replace use of 2067 std::get. 2068 (_Select2nd): Remove. 2069 (_NodeBuilder::_S_build): Use _NodeGenerator::__node_type 2070 typedef instead of deducing it. Remove unnecessary piecewise 2071 construction. 2072 (_ReuseOrAllocNode): Make __node_type public. 2073 (_Map_base): Adjust partial specialization to be able to extract 2074 the mapped_type without using tuple_element. 2075 (_Map_base::at): Define inline 2076 * testsuite/23_containers/unordered_map/requirements/53339.cc: 2077 Remove XFAIL. 2078 * testsuite/23_containers/unordered_multimap/requirements/53339.cc: 2079 Likewise. 2080 20812021-10-08 Jonathan Wakely <jwakely@redhat.com> 2082 2083 * include/bits/hashtable.h: Move static assertion to destructor. 2084 * include/bits/hashtable_policy.h: Deduce value type from node 2085 type without instantiating it. 2086 20872021-10-08 Jonathan Wakely <jwakely@redhat.com> 2088 2089 * src/c++11/limits.cc: Fail if __cpp_inline_variables is 2090 defined. 2091 20922021-10-08 Jonathan Wakely <jwakely@redhat.com> 2093 2094 PR libstdc++/92546 2095 * include/bits/ranges_algobase.h: Replace <iterator> with a 2096 subset of the headers it includes. 2097 20982021-10-08 Jonathan Wakely <jwakely@redhat.com> 2099 2100 * include/experimental/deque (erase, erase_if): Revert changes 2101 to avoid debug mode overhead. 2102 * include/experimental/map (erase, erase_if): Likewise. 2103 * include/experimental/set (erase, erase_if): Likewise. 2104 * include/experimental/unordered_map (erase, erase_if): 2105 Likewise. 2106 * include/experimental/unordered_set (erase, erase_if): 2107 Likewise. 2108 * include/experimental/vector (erase, erase_if): Likewise. 2109 * include/std/deque (erase, erase_if): Likewise. 2110 * include/std/map (erase, erase_if): Likewise. 2111 * include/std/set (erase, erase_if): Likewise. 2112 * include/std/unordered_map (erase, erase_if): Likewise. 2113 * include/std/unordered_set (erase, erase_if): Likewise. 2114 * include/std/vector (erase, erase_if): Likewise. 2115 21162021-10-08 Jonathan Wakely <jwakely@redhat.com> 2117 2118 * include/std/chrono (__detail::__units_suffix_misc): New 2119 helper function. 2120 (__detail::__units_suffix): Likewise. 2121 (chrono::operator<<(basic_ostream&, const duration&)): Define. 2122 * testsuite/20_util/duration/io.cc: New test. 2123 21242021-10-07 Jonathan Wakely <jwakely@redhat.com> 2125 2126 * include/Makefile.am: Add new header. 2127 * include/Makefile.in: Regenerate. 2128 * include/std/chrono (duration, time_point, system_clock) 2129 (steady_clock, high_resolution_clock, chrono_literals, sys_time) 2130 (file_clock, file_time): Move to ... 2131 * include/bits/chrono.h: New file. 2132 * include/bits/atomic_futex.h: Include new header instead of 2133 <chrono>. 2134 * include/bits/atomic_timed_wait.h: Likewise. 2135 * include/bits/fs_fwd.h: Likewise. 2136 * include/bits/semaphore_base.h: Likewise. 2137 * include/bits/this_thread_sleep.h: Likewise. 2138 * include/bits/unique_lock.h: Likewise. 2139 * include/experimental/bits/fs_fwd.h: Likewise. 2140 * include/experimental/chrono: Likewise. 2141 * include/experimental/io_context: Likewise. 2142 * include/experimental/netfwd: Likewise. 2143 * include/experimental/timer: Likewise. 2144 * include/std/condition_variable: Likewise. 2145 * include/std/mutex: Likewise. 2146 * include/std/shared_mutex: Likewise. 2147 21482021-10-07 Jonathan Wakely <jwakely@redhat.com> 2149 2150 PR libstdc++/102377 2151 * include/bits/atomic_wait.h (__waiter_pool_base:_S_align): 2152 Hardcode to 64 instead of using non-constant constant. 2153 21542021-10-07 Jonathan Wakely <jwakely@redhat.com> 2155 2156 * include/bits/erase_if.h (__erase_nodes_if): Remove redundant 2157 __niter_base calls. 2158 * include/std/string (erase, erase_if): Likewise. 2159 * include/std/deque (erase, erase_if): Access non-debug 2160 container directly. 2161 * include/std/map (erase, erase_if): Likewise. 2162 * include/std/set (erase, erase_if): Likewise. 2163 * include/std/unordered_map (erase, erase_if): Likewise. 2164 * include/std/unordered_set (erase, erase_if): Likewise. 2165 * include/std/vector (erase, erase_if): Likewise. 2166 * include/experimental/deque (erase, erase_if): Likewise. 2167 * include/experimental/map (erase, erase_if): Likewise. 2168 * include/experimental/set (erase, erase_if): Likewise. 2169 * include/experimental/unordered_map (erase, erase_if): 2170 Likewise. 2171 * include/experimental/unordered_set (erase, erase_if): 2172 Likewise. 2173 * include/experimental/vector (erase, erase_if): Likewise. 2174 21752021-10-06 Jonathan Wakely <jwakely@redhat.com> 2176 2177 * include/Makefile.am: Add new headers. 2178 * include/Makefile.in: Regenerate. 2179 * include/std/functional: Include <bits/move_only_function.h>. 2180 * include/std/version (__cpp_lib_move_only_function): Define. 2181 * include/bits/mofunc_impl.h: New file. 2182 * include/bits/move_only_function.h: New file. 2183 * testsuite/20_util/move_only_function/call.cc: New test. 2184 * testsuite/20_util/move_only_function/cons.cc: New test. 2185 * testsuite/20_util/move_only_function/move.cc: New test. 2186 * testsuite/20_util/move_only_function/version.cc: New test. 2187 21882021-10-05 Jonathan Wakely <jwakely@redhat.com> 2189 2190 * testsuite/21_strings/basic_string_view/requirements/trivially_copyable.cc: 2191 New test. 2192 * testsuite/23_containers/span/trivially_copyable.cc: New test. 2193 21942021-10-05 Jonathan Wakely <jwakely@redhat.com> 2195 2196 * include/bits/utility.h (__is_in_place_type_v): Define 2197 variable template to detect in_place_type_t specializations. 2198 (__is_in_place_type): Replace class template with alias 2199 template using __is_in_place_type_v. 2200 * include/std/any (any(T&&)): Check __is_in_place_type first and 2201 avoid instantiating is_copy_constructible unnecessarily. 2202 22032021-10-05 Jonathan Wakely <jwakely@redhat.com> 2204 2205 * testsuite/20_util/integer_comparisons/greater.cc: New test. 2206 22072021-10-05 Jonathan Wakely <jwakely@redhat.com> 2208 2209 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc: 2210 Check result matches non-volatile pointer. 2211 22122021-10-05 Jonathan Wakely <jwakely@redhat.com> 2213 2214 PR c++/102535 2215 * testsuite/20_util/is_trivially_constructible/value.cc: Adjust 2216 expected value for C++20. 2217 22182021-10-05 Jonathan Wakely <jwakely@redhat.com> 2219 2220 * include/bits/std_function.h (_Any_data::_M_access): Add 2221 noexcept. 2222 (_Function_base::_Base_manager::_M_get_pointer): Likewise. 2223 (_Function_base::_Base_manager::_M_not_empty_function): 2224 Likewise. 2225 22262021-10-05 Jonathan Wakely <jwakely@redhat.com> 2227 2228 * include/std/ostream (operator<<(const volatile void*)): 2229 Add new overload, as per P1147R1. 2230 * testsuite/27_io/basic_ostream/inserters_other/char/volatile_ptr.cc: 2231 New test. 2232 22332021-10-05 Jonathan Wakely <jwakely@redhat.com> 2234 2235 * include/bits/stl_queue.h 2236 (__cpp_lib_adaptor_iterator_pair_constructor): Set to correct 2237 value. 2238 * include/bits/stl_stack.h 2239 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise. 2240 * include/std/version 2241 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise. 2242 * testsuite/23_containers/queue/cons_from_iters.cc: Update 2243 expected value. 2244 * testsuite/23_containers/stack/cons_from_iters.cc: Likewise. 2245 22462021-10-04 Jonathan Wakely <jwakely@redhat.com> 2247 2248 * include/bits/forward_list.h (forward_list): Use non-deduced 2249 context for allocator parameter of allocator-extended copy and 2250 move constructors. 2251 * include/bits/stl_bvector.h (vector<bool>): Likewise. 2252 * include/bits/stl_deque.h (deque): Likewise. 2253 * include/bits/stl_list.h (list): Likewise. 2254 * include/bits/stl_map.h (map): Likewise. 2255 * include/bits/stl_multimap.h (multimap): Likewise. 2256 * include/bits/stl_multiset.h (multiset): Likewise. 2257 * include/bits/stl_set.h (set): Likewise. 2258 * include/bits/stl_vector.h (vector): Likewise. 2259 * include/bits/stl_queue.h (queue, priority_queue): Do not 2260 constrain Allocator template parameter of deduction guides that 2261 have a Container parameter. 2262 * include/bits/stl_stack.h (stack): Likewise. 2263 * include/debug/deque (__gnu_debug::deque): Use non-deduced 2264 context for allocator parameter of allocator-extended copy and 2265 move constructors. 2266 * include/debug/list (__gnu_debug::list): Likewise. 2267 * include/debug/map.h (__gnu_debug::map): Likewise. 2268 * include/debug/multimap.h (__gnu_debug::multimap): Likewise. 2269 * include/debug/multiset.h (__gnu_debug::multiset): Likewise. 2270 * include/debug/set.h (__gnu_debug::set): Likewise. 2271 * include/debug/vector (__gnu_debug::vector): Likewise. 2272 * testsuite/23_containers/deque/cons/deduction.cc: Test class 2273 template argument deduction with non-deduced allocator 2274 arguments. 2275 * testsuite/23_containers/forward_list/cons/deduction.cc: 2276 Likewise. 2277 * testsuite/23_containers/list/cons/deduction.cc: Likewise. 2278 * testsuite/23_containers/map/cons/deduction.cc: Likewise. 2279 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise. 2280 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise. 2281 * testsuite/23_containers/priority_queue/deduction.cc: Likewise. 2282 * testsuite/23_containers/queue/deduction.cc: Likewise. 2283 * testsuite/23_containers/set/cons/deduction.cc: Likewise. 2284 * testsuite/23_containers/stack/deduction.cc: Likewise. 2285 * testsuite/23_containers/unordered_map/cons/deduction.cc: 2286 Likewise. 2287 * testsuite/23_containers/unordered_multimap/cons/deduction.cc: 2288 Likewise. 2289 * testsuite/23_containers/unordered_multiset/cons/deduction.cc: 2290 Likewise. 2291 * testsuite/23_containers/unordered_set/cons/deduction.cc: 2292 Likewise. 2293 * testsuite/23_containers/vector/cons/deduction.cc: Likewise. 2294 22952021-10-04 Jonathan Wakely <jwakely@redhat.com> 2296 2297 * include/std/variant (__detail::__variant::__as): Add missing 2298 noexcept to first overload. 2299 23002021-10-04 Jonathan Wakely <jwakely@redhat.com> 2301 2302 * include/bits/basic_string.h (basic_string(nullptr_t)): Define 2303 as deleted. 2304 (operator=(nullptr_t)): Likewise. 2305 * include/bits/cow_string.h (basic_string(nullptr_t)): Likewise. 2306 (operator=(nullptr_t)): Likewise. 2307 * include/std/string_view (basic_string_view(nullptr_t)): 2308 Likewise. 2309 * testsuite/21_strings/basic_string/cons/char/nullptr.cc: New test. 2310 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: 2311 Change dg-warning to dg-error. 2312 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc: 2313 Likewise. 2314 23152021-10-02 Jonathan Wakely <jwakely@redhat.com> 2316 2317 * src/c++17/fs_ops.cc (create_directory): Fix typo in enum name. 2318 * src/filesystem/ops-common.h (__last_system_error): Add 2319 explicit cast to avoid narrowing conversion. 2320 (do_space): Fix type in function name. 2321 23222021-10-01 Jonathan Wakely <jwakely@redhat.com> 2323 2324 PR libstdc++/102100 2325 * include/Makefile.am (c++config.h): Define 2326 _GLIBCXX_VERBOSE_ASSERT based on configure output. 2327 * include/Makefile.in: Regenerate. 2328 * include/bits/c++config: Fix condition for verbose assertions. 2329 23302021-10-01 Jonathan Wakely <jwakely@redhat.com> 2331 2332 PR libstdc++/92546 2333 * include/bits/erase_if.h (__erase_nodes_if): Use __niter_base to 2334 unwrap debug iterators. 2335 * include/bits/refwrap.h: Do not error if included in C++03. 2336 * include/bits/stl_algo.h (__remove_if): Move to ... 2337 * include/bits/stl_algobase.h (__remove_if): ... here. 2338 * include/std/deque (erase, erase_if): Use __remove_if instead of 2339 remove and remove_if. 2340 * include/std/string (erase, erase_if): Likewise. 2341 * include/std/vector (erase, erase_if): Likewise. 2342 23432021-10-01 Jonathan Wakely <jwakely@redhat.com> 2344 2345 PR libstdc++/66742 2346 * include/bits/list.tcc (list::sort()): Use _Scratch_list 2347 objects for splicing and merging. 2348 (list::sort(StrictWeakOrdering)): Likewise. 2349 * include/bits/stl_list.h (__detail::_Scratch_list): New type. 2350 * src/c++98/list.cc (_List_node_base::_M_transfer): Add 2351 assertion for --enable-libstdcxx-debug library. 2352 * testsuite/23_containers/list/operations/66742.cc: New test. 2353 23542021-10-01 Jonathan Wakely <jwakely@redhat.com> 2355 2356 PR libstdc++/100612 2357 * include/std/thread (__pmf_expects_stop_token): New variable 2358 template to detect a pointer to member function that needs a 2359 stop_token to be added to the arguments. 2360 (jthread::__S_create): Use __pmf_expects_stop_token. 2361 (jthread::__S_create_pmf): New function. 2362 * testsuite/30_threads/jthread/100612.cc: New test. 2363 23642021-10-01 Jonathan Wakely <jwakely@redhat.com> 2365 2366 * include/bits/stl_queue.h 2367 (__cpp_lib_adaptor_iterator_pair_constructor): Define for C++23, as 2368 per P1425R4. 2369 (queue(InputIterator, InputIterator)): Likewise. 2370 (queue(InputIterator, InputIterator, const Alloc&)): Likewise. 2371 * include/bits/stl_stack.h 2372 (__cpp_lib_adaptor_iterator_pair_constructor): Likewise. 2373 (stack(InputIterator, InputIterator)): Likewise. 2374 (stack(InputIterator, InputIterator, const Alloc&)): Likewise. 2375 * include/std/version (__cpp_lib_adaptor_iterator_pair_constructor): 2376 Define. 2377 * testsuite/23_containers/queue/cons_from_iters.cc: New test. 2378 * testsuite/23_containers/stack/cons_from_iters.cc: New test. 2379 23802021-10-01 Jonathan Wakely <jwakely@redhat.com> 2381 2382 * include/bits/stl_queue.h (priority_queue): Add 2383 allocator-extended overloads for constructors taking iterator. 2384 * testsuite/23_containers/priority_queue/lwg3506.cc: New test. 2385 23862021-10-01 Jonathan Wakely <jwakely@redhat.com> 2387 2388 * include/bits/stl_queue.h (priority_queue): Construct sequence 2389 from iterators when no sequence argument is present (LWG 3529). 2390 * testsuite/23_containers/priority_queue/lwg3529.cc: New test. 2391 23922021-10-01 Jonathan Wakely <jwakely@redhat.com> 2393 2394 * include/bits/stl_queue.h (priority_queue): Constrain 2395 constructors with InputIterator parameters (LWG 3522). 2396 * testsuite/23_containers/priority_queue/lwg3522.cc: New test. 2397 23982021-10-01 Jonathan Wakely <jwakely@redhat.com> 2399 2400 * include/bits/ranges_base.h (ranges::distance): Split overload 2401 into two (LWG 3392). 2402 * testsuite/24_iterators/range_operations/lwg3392.cc: New test. 2403 24042021-10-01 Jonathan Wakely <jwakely@redhat.com> 2405 2406 * testsuite/30_threads/thread/cons/3.cc: Remove derivation from 2407 std::unary_function. 2408 * testsuite/30_threads/thread/cons/4.cc: Likewise. 2409 * testsuite/30_threads/thread/cons/5.cc: Likewise. 2410 24112021-10-01 Jonathan Wakely <jwakely@redhat.com> 2412 2413 * testsuite/ext/pb_ds/example/basic_multimap.cc: Remove 2414 unnecesary derivation from std::unary_function. 2415 * testsuite/ext/pb_ds/example/erase_if.cc: Likewise. 2416 * testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Likewise. 2417 * testsuite/ext/pb_ds/example/hash_initial_size.cc: Likewise. 2418 * testsuite/ext/pb_ds/example/hash_load_set_change.cc: Likewise. 2419 * testsuite/ext/pb_ds/example/hash_mod.cc: Likewise. 2420 * testsuite/ext/pb_ds/example/hash_resize.cc: Likewise. 2421 * testsuite/ext/pb_ds/example/hash_shift_mask.cc: Likewise. 2422 * testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc: 2423 Likewise. 2424 * testsuite/ext/pb_ds/example/ranged_hash.cc: Likewise. 2425 * testsuite/ext/pb_ds/example/store_hash.cc: Likewise. 2426 24272021-10-01 Jonathan Wakely <jwakely@redhat.com> 2428 2429 * src/c++11/functexcept.cc (__throw_out_of_range_fmt): Do not 2430 expand the format string for freestanding, or non-vebose, or if 2431 we're just going to abort anyway. 2432 * src/c++11/snprintf_lite.cc: Remove unused header and 2433 declaration. 2434 24352021-10-01 Jonathan Wakely <jwakely@redhat.com> 2436 2437 * include/std/variant (__do_visit): Use variant_npos instead of 2438 literal -1 that requires a narrowing conversion. 2439 24402021-10-01 Jonathan Wakely <jwakely@redhat.com> 2441 2442 PR libstdc++/99327 2443 * src/filesystem/ops-common.h (__unsupported): New function to 2444 return a suitable error code for missing functionality. 2445 (posix::off_t): New typedef. 2446 (posix::*): Set errno to ENOSYS instead of ENOTSUP for no-op 2447 fallback implementations. 2448 (do_copy_file): Replace uses of errc::not_supported. 2449 * src/c++17/fs_ops.cc (fs::copy, fs::copy_file, create_dir) 2450 (fs::create_directory, fs::create_directory_symlink) 2451 (fs::create_hard_link, fs::create_symlink, fs::current_path) 2452 (fs::equivalent, do_stat, fs::file_size, fs::hard_link_count) 2453 (fs::last_write_time, fs::permissions, fs::read_symlink): 2454 Replace uses of errc::not_supported. 2455 (fs::resize_file): Qualify off_t. 2456 * src/filesystem/ops.cc (fs::copy, fs::copy_file, create_dir) 2457 (fs::create_directory, fs::create_directory_symlink) 2458 (fs::create_hard_link, fs::create_symlink, fs::current_path) 2459 (fs::equivalent, do_stat, fs::file_size, fs::last_write_time) 2460 (fs::permissions, fs::read_symlink, fs::system_complete): 2461 Replace uses of errc::not_supported. 2462 (fs::resize_file): Qualify off_t and enable unconditionally. 2463 * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise. 2464 24652021-10-01 Jonathan Wakely <jwakely@redhat.com> 2466 2467 * src/filesystem/ops-common.h (last_error): New helper function. 2468 (filesystem::do_space): Use last_error(). 2469 * src/c++17/fs_ops.cc (fs::absolute, fs::create_hard_link) 2470 (fs::equivalent, fs::remove, fs::temp_directory_path): Use 2471 last_error(). 2472 * src/filesystem/ops.cc (fs::create_hard_link) 2473 (fs::remove, fs::temp_directory_path): Likewise. 2474 24752021-10-01 Jonathan Wakely <jwakely@redhat.com> 2476 2477 * include/std/type_traits (__conditional): New class template 2478 for internal uses of std::conditional. 2479 (__conditional_t): New alias template to replace conditional_t. 2480 (__and_, __or_, __result_of_memfun, __result_of_memobj): Use 2481 __conditional_t instead of conditional::type. 2482 * include/bits/atomic_base.h (__atomic_impl::_Diff): Likewise. 2483 * include/bits/hashtable.h (_Hashtable): Likewise. 2484 * include/bits/hashtable_policy.h (_Node_iterator, _Insert_base) 2485 (_Local_iterator): Likewise. Replace typedefs with 2486 using-declarations. 2487 * include/bits/move.h (move_if_noexcept): Use __conditional_t. 2488 * include/bits/parse_numbers.h (_Select_int_base): Likewise. 2489 * include/bits/ptr_traits.h (__make_not_void): Likewise. 2490 * include/bits/ranges_algobase.h (__copy_or_move_backward) 2491 (__copy_or_move): Likewise. 2492 * include/bits/ranges_base.h (borrowed_iterator_t): Likewise. 2493 * include/bits/ranges_util.h (borrowed_subrange_t): Likewise. 2494 * include/bits/regex_compiler.h (_BracketMatcher): Use 2495 __conditional_t. Replace typedefs with using-declarations. 2496 * include/bits/shared_ptr_base.h (__shared_count): Use 2497 __conditional_t. 2498 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward): 2499 Likewise. 2500 * include/bits/stl_iterator.h (__detail::__clamp_iter_cat) 2501 (reverse_iterator::iterator_concept) 2502 (__make_move_if_noexcept_iterator) 2503 (iterator_traits<common_iterator<_It, _Sent>>) 2504 (iterator_traits<counted_iterator<_It>>): Likewise. 2505 * include/bits/stl_pair.h (_PCC, pair::operator=): Likewise. 2506 * include/bits/stl_tree.h (_Rb_tree::insert_return_type) 2507 (_Rb_tree::_M_clone_node): Likewise. 2508 * include/bits/unique_ptr.h (unique_ptr(unique_ptr<U,E>&&)): 2509 Likewise. 2510 * include/bits/uses_allocator.h (__uses_alloc): Likewise. 2511 (__is_uses_allocator_predicate): Likewise. 2512 * include/debug/functions.h (__foreign_iterator_aux2): Likewise. 2513 * include/experimental/any (any::_Manager, __any_caster): 2514 Likewise. 2515 * include/experimental/executor (async_completion): Likewise. 2516 * include/experimental/functional (__boyer_moore_base_t): 2517 Likewise. 2518 * include/std/any (any::_Manager): Likewise. 2519 * include/std/functional (__boyer_moore_base_t): Likewise. 2520 * include/std/ranges (borrowed_iterator_t) 2521 (borrowed_subrange_t, __detail::__maybe_present_t) 2522 (__detail::__maybe_const_t, split_view): Likewise. 2523 * include/std/tuple (__empty_not_final, tuple::operator=): 2524 Likewise. 2525 * include/std/variant (__detail::__variant::__get_t): Likewise. 2526 25272021-10-01 Jonathan Wakely <jwakely@redhat.com> 2528 2529 PR libstdc++/78113 2530 * include/std/variant (__do_visit): Use a switch when we have a 2531 single variant with a small number of alternatives. 2532 25332021-10-01 Jonathan Wakely <jwakely@redhat.com> 2534 2535 PR libstdc++/90943 2536 * include/std/variant (__cpp_lib_variant): Update value. 2537 (__detail::__variant::__as): New helpers implementing the 2538 as-variant exposition-only function templates. 2539 (visit, visit<R>): Use __as to upcast the variant parameters. 2540 * include/std/version (__cpp_lib_variant): Update value. 2541 * testsuite/20_util/variant/visit_inherited.cc: New test. 2542 25432021-10-01 Jonathan Wakely <jwakely@redhat.com> 2544 2545 * include/bits/stl_iterator.h (__normal_iterator): Simplify 2546 converting constructor and do not require _Container::pointer. 2547 25482021-10-01 Jonathan Wakely <jwakely@redhat.com> 2549 2550 * include/bits/cow_string.h [_GLIBCXX_FULLY_DYNAMIC_STRING] 2551 (basic_string(basic_string&&)): Add noexcept and avoid 2552 allocation, by sharing rep with the rvalue string. 2553 25542021-10-01 Jonathan Wakely <jwakely@redhat.com> 2555 2556 * include/bits/stl_iterator.h (common_iterator::__arrow_proxy) 2557 (common_iterator::__postfix_proxy): Add noexcept. 2558 25592021-10-01 Jonathan Wakely <jwakely@redhat.com> 2560 2561 PR libstdc++/94418 2562 * include/bits/stl_iterator.h (reverse_iterator): Use 2563 conditional noexcept on constructors and assignment operators. 2564 * testsuite/24_iterators/reverse_iterator/noexcept.cc: New test. 2565 25662021-10-01 Jonathan Wakely <jwakely@redhat.com> 2567 2568 PR libstdc++/100153 2569 * include/bits/vector.tcc (vector<bool>::_M_shrink_to_fit()): 2570 When size() is zero just deallocate and reset. 2571 25722021-10-01 Jonathan Wakely <jwakely@redhat.com> 2573 2574 PR libstdc++/96733 2575 * include/bits/stl_algo.h (clamp): Use std::min and std::max. 2576 25772021-10-01 Jonathan Wakely <jwakely@redhat.com> 2578 2579 * include/bits/regex.h (basic_regex::multiline): Define for 2580 non-strict C++11 and C++14 modes. 2581 * include/bits/regex_constants.h (regex_constants::multiline): 2582 Add _GLIBCXX_RESOLVE_LIB_DEFECTS comment. 2583 25842021-10-01 Jonathan Wakely <jwakely@redhat.com> 2585 2586 * testsuite/25_algorithms/is_permutation/2.cc: Include <iterator>. 2587 25882021-10-01 Jonathan Wakely <jwakely@redhat.com> 2589 2590 * include/bits/stream_iterator.h (istream_iterator): Add 2591 noexcept to constructors and non-throwing member functions and 2592 friend functions. 2593 (ostream_iterator): Likewise. 2594 25952021-10-01 Jonathan Wakely <jwakely@redhat.com> 2596 2597 * include/bits/boost_concept_check.h (_Is_vector_bool_iterator): 2598 New trait to identify vector<bool> iterators, including debug 2599 ones. 2600 (_ForwardIteratorReferenceConcept): Add default template 2601 argument using _Is_vector_bool_iterator and use it in partial 2602 specialization for the vector<bool> cases. 2603 (_Mutable_ForwardIteratorReferenceConcept): Likewise. 2604 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error 2605 line number. 2606 26072021-10-01 Jonathan Wakely <jwakely@redhat.com> 2608 2609 * include/bits/list.tcc (list::merge): Remove call to size() and 2610 try-catch block. Use _Finalize_merge instead. 2611 * include/bits/stl_list.h (list::_Finalize_merge): New 2612 scope guard type to update _M_size members after a merge. 2613 26142021-09-30 Jonathan Wakely <jwakely@redhat.com> 2615 2616 * include/bits/regex.h (basic_regex::multiline): Fix #if 2617 condition. 2618 26192021-09-29 Jonathan Wakely <jwakely@redhat.com> 2620 2621 * include/bits/regex.h (basic_regex::multiline): Define constant 2622 for C++17. 2623 * include/bits/regex_constants.h (regex_constants::multiline): 2624 Define constant for C++17. 2625 (regex_constants::__multiline): Define duplicate constant for 2626 internal use in C++11 and C++14. 2627 * include/bits/regex_executor.h (_Executor::_M_match_multiline()): 2628 New member function. 2629 (_Executor::_M_is_line_terminator(_CharT)): New member function. 2630 (_Executor::_M_at_begin(), _Executor::_M_at_end()): Use new 2631 member functions to support multiline matches. 2632 * testsuite/28_regex/algorithms/regex_match/multiline.cc: New test. 2633 26342021-09-29 Jonathan Wakely <jwakely@redhat.com> 2635 2636 * include/bits/regex_compiler.h (_Compiler::_S_validate): New 2637 function. 2638 * include/bits/regex_compiler.tcc (_Compiler::_Compiler): Use 2639 _S_validate to check flags. 2640 * include/bits/regex_error.h (_S_grammar): New error code for 2641 internal use. 2642 * testsuite/28_regex/basic_regex/ctors/grammar.cc: New test. 2643 26442021-09-29 Jonathan Wakely <jwakely@redhat.com> 2645 2646 PR libstdc++/84110 2647 * include/bits/regex_error.h (regex_constants::_S_null): New 2648 error code for internal use. 2649 * include/bits/regex_scanner.tcc (_Scanner::_M_scan_normal()): 2650 Check for null character. 2651 * testsuite/28_regex/basic_regex/84110.cc: New test. 2652 26532021-09-29 Jonathan Wakely <jwakely@redhat.com> 2654 2655 * include/bits/regex.h (__detail::__is_contiguous_iter): Move 2656 here from <bits/regex_compiler.h>. 2657 (basic_regex::_M_compile): New function to compile an NFA from 2658 a regular expression string. 2659 (basic_regex::basic_regex): Use _M_compile instead of delegating 2660 to other constructors. 2661 (basic_regex::operator=(const basic_regex&)): Define as 2662 defaulted. 2663 (basic_regex::operator=(initializer_list<C>)): Use _M_compile. 2664 (basic_regex::assign(const basic_regex&)): Use copy assignment. 2665 (basic_regex::assign(basic_regex&&)): Use move assignment. 2666 (basic_regex::assign(const C*, flag_type)): Use _M_compile 2667 instead of constructing a temporary string. 2668 (basic_regex::assign(const C*, size_t, flag_type)): Likewise. 2669 (basic_regex::assign(const basic_string<C,T,A>&, flag_type)): 2670 Use _M_compile instead of constructing a temporary basic_regex. 2671 (basic_regex::assign(InputIter, InputIter, flag_type)): Avoid 2672 constructing a temporary string for contiguous iterators of the 2673 right value type. 2674 * include/bits/regex_compiler.h (__is_contiguous_iter): Move to 2675 <bits/regex.h>. 2676 (__enable_if_contiguous_iter, __disable_if_contiguous_iter) 2677 (__compile_nfa): Remove. 2678 * testsuite/28_regex/basic_regex/assign/exception_safety.cc: New 2679 test. 2680 * testsuite/28_regex/basic_regex/ctors/char/other.cc: New test. 2681 26822021-09-28 Jonathan Wakely <jwakely@redhat.com> 2683 2684 * include/bits/atomic_timed_wait.h (__platform_wait_until_impl): 2685 Return false for ETIMEDOUT and true otherwise. 2686 26872021-09-28 François Dumont <fdumont@gcc.gnu.org> 2688 2689 * testsuite/20_util/default_delete/48631_neg.cc: Adapt dg-prune-output message 2690 to also match message with '__8' in it. 2691 26922021-09-28 Jonathan Wakely <jwakely@redhat.com> 2693 2694 * include/bits/regex_automaton.h (_NFA_base::_SizeT): Remove. 2695 * include/bits/regex_compiler.h (_Compiler::_IterT): Remove. 2696 * include/bits/regex_compiler.tcc: Likewise. 2697 * include/bits/regex_scanner.h (_Scanner::_IterT): Remove. 2698 * include/bits/regex_scanner.tcc: Likewise. 2699 27002021-09-28 Jonathan Wakely <jwakely@redhat.com> 2701 2702 * include/bits/regex_compiler.tcc: Add line break in empty while 2703 statement. 2704 * include/bits/regex_executor.tcc: Avoid unused parameter 2705 warning. 2706 27072021-09-28 Jonathan Wakely <jwakely@redhat.com> 2708 2709 * include/bits/regex.h (basic_regex, swap): Add noexcept to 2710 non-throwing functions. 2711 * include/bits/regex_automaton.h (_State_base, _State) 2712 (_NFA_base): Likewise. 2713 * include/bits/regex_compiler.h (_Compiler): Likewise. 2714 * include/bits/regex_error.h (regex_error::code()): Likewise. 2715 * include/bits/regex_scanner.h (_Scanner): Likewise. 2716 27172021-09-28 Jonathan Wakely <jwakely@redhat.com> 2718 2719 * include/bits/atomic_wait.h (_GLIBCXX_HAVE_PLATFORM_WAIT): 2720 Define before first attempt to check it. 2721 27222021-09-28 Jonathan Wakely <jwakely@redhat.com> 2723 2724 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1.cc: 2725 Do not check non-default constructible sequences when 2726 _GLIBCXX_CONCEPT_CHECKS is defined. 2727 * testsuite/23_containers/priority_queue/requirements/explicit_instantiation/1_c++98.cc: 2728 Likewise. 2729 * testsuite/23_containers/queue/requirements/explicit_instantiation/1.cc: 2730 Likewise. 2731 * testsuite/23_containers/queue/requirements/explicit_instantiation/1_c++98.cc: 2732 Likewise. 2733 * testsuite/23_containers/stack/requirements/explicit_instantiation/1.cc: 2734 Likewise. 2735 * testsuite/23_containers/stack/requirements/explicit_instantiation/1_c++98.cc: 2736 Likewise. 2737 27382021-09-28 Jonathan Wakely <jwakely@redhat.com> 2739 2740 * testsuite/23_containers/deque/requirements/explicit_instantiation/3.cc: 2741 Do not test implicit allocator rebinding when _GLIBCXX_CONCEPT_CHECKS 2742 is defined. 2743 * testsuite/23_containers/forward_list/requirements/explicit_instantiation/3.cc: 2744 Likewise. 2745 * testsuite/23_containers/list/requirements/explicit_instantiation/3.cc: 2746 Likewise. 2747 * testsuite/23_containers/list/requirements/explicit_instantiation/5.cc: 2748 Likewise. 2749 * testsuite/23_containers/map/requirements/explicit_instantiation/3.cc: 2750 Likewise. 2751 * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc: 2752 Likewise. 2753 * testsuite/23_containers/multimap/requirements/explicit_instantiation/3.cc: 2754 Likewise. 2755 * testsuite/23_containers/multimap/requirements/explicit_instantiation/5.cc: 2756 Likewise. 2757 * testsuite/23_containers/multiset/requirements/explicit_instantiation/3.cc: 2758 Likewise. 2759 * testsuite/23_containers/multiset/requirements/explicit_instantiation/5.cc: 2760 Likewise. 2761 * testsuite/23_containers/set/requirements/explicit_instantiation/3.cc: 2762 Likewise. 2763 * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc: 2764 Likewise. 2765 * testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc: 2766 Likewise. 2767 * testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc: 2768 Likewise. 2769 * testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc: 2770 Likewise. 2771 * testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc: 2772 Likewise. 2773 * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/3.cc: 2774 Likewise. 2775 * testsuite/23_containers/vector/requirements/explicit_instantiation/3.cc: 2776 Likewise. 2777 27782021-09-28 Jonathan Wakely <jwakely@redhat.com> 2779 2780 * include/bits/boost_concept_check.h (_ForwardIteratorConcept) 2781 (_BidirectionalIteratorConcept, _RandomAccessIteratorConcept): 2782 Check result types of iterator operations. 2783 (_Mutable_ForwardIteratorConcept): Check that iterator's 2784 reference type is a reference to its value type. 2785 (_Mutable_BidirectionalIteratorConcept): Do not require the 2786 value type to be assignable. 2787 (_Mutable_RandomAccessIteratorConcept): Likewise. 2788 * testsuite/24_iterators/operations/prev_neg.cc: Adjust dg-error 2789 line number. 2790 27912021-09-28 Jonathan Wakely <jwakely@redhat.com> 2792 2793 * testsuite/25_algorithms/copy/34595.cc: Add missing operation 2794 for type used as an iterator. 2795 * testsuite/25_algorithms/unique_copy/check_type.cc: Likewise. 2796 27972021-09-28 Jonathan Wakely <jwakely@redhat.com> 2798 2799 * testsuite/20_util/is_nothrow_swappable/value.h: Use custom 2800 comparison function for priority_queue of type with no 2801 relational operators. 2802 * testsuite/20_util/is_swappable/value.h: Likewise. 2803 * testsuite/24_iterators/output/concept.cc: Add operator< to 2804 type used in set. 2805 28062021-09-28 Jonathan Wakely <jwakely@redhat.com> 2807 2808 * include/bits/boost_concept_check.h (_OutputIteratorConcept): 2809 Use a function to preserve value category of the type. 2810 * include/bits/stl_algobase.h (copy, move, fill_n): Use a 2811 reference as the second argument for _OutputIteratorConcept. 2812 (copy_backward, move_backward): Use _OutputIteratorConcept 2813 instead of _ConvertibleConcept. 2814 28152021-09-28 Jonathan Wakely <jwakely@redhat.com> 2816 2817 * include/bits/stl_iterator.h (pointer_traits): Define partial 2818 specialization for __normal_iterator. 2819 * testsuite/24_iterators/normal_iterator/to_address.cc: New test. 2820 28212021-09-28 Jonathan Wakely <jwakely@redhat.com> 2822 2823 * include/bits/move.h (forward(remove_reference_t<T>&&)): 2824 Improve text of static_assert. 2825 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error. 2826 * testsuite/20_util/forward/f_neg.cc: Likewise. 2827 28282021-09-28 Jonathan Wakely <jwakely@redhat.com> 2829 2830 PR libstdc++/102499 2831 * include/bits/fs_path.h (path::begin, path::end): Add noexcept 2832 to declarations, to match definitions. 2833 28342021-09-24 Jonathan Wakely <jwakely@redhat.com> 2835 2836 * include/bits/range_access.h (cbegin, cend): Remove redundant 2837 'inline' specifier. 2838 28392021-09-23 Jonathan Wakely <jwakely@redhat.com> 2840 2841 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc: 2842 Remove dg-error lines for C++20-only errors. 2843 28442021-09-23 Jonathan Wakely <jwakely@redhat.com> 2845 2846 * testsuite/19_diagnostics/headers/system_error/93151.cc: 2847 Disable PCH. 2848 28492021-09-23 Jonathan Wakely <jwakely@redhat.com> 2850 2851 * src/c++11/system_error.cc (system_error_category) [_WIN32]: 2852 Map Windows error codes to generic POSIX error numbers. Use 2853 FormatMessage instead of strerror. 2854 * testsuite/19_diagnostics/error_category/system_category.cc: 2855 Adjust for new behaviour on Windows. 2856 28572021-09-23 Jonathan Wakely <jwakely@redhat.com> 2858 2859 * src/c++11/system_error.cc (generic_error_category): Define 2860 class and virtual functions as 'final'. 2861 (generic_error_category::equivalent(int, const error_condition&)): 2862 Override. 2863 (system_error_category): Define class and virtual functions as 2864 'final'. 2865 (system_error_category::equivalent(int, const error_condition&)): 2866 Override. 2867 (generic_category_instance, system_category_instance): Use 2868 constinit union to make the objects immortal. 2869 28702021-09-23 Jonathan Wakely <jwakely@redhat.com> 2871 2872 PR libstdc++/102425 2873 * src/c++11/system_error.cc 2874 (system_error_category::default_error_condition): Add 0 to 2875 switch. 2876 * testsuite/19_diagnostics/error_category/102425.cc: New test. 2877 28782021-09-17 Jonathan Wakely <jwakely@redhat.com> 2879 2880 * include/bits/fs_path.h (path::iterator): Add noexcept to all 2881 member functions and friend functions. 2882 (distance): Add noexcept. 2883 (advance): Add noexcept and inline. 2884 * include/experimental/bits/fs_path.h (path::iterator): 2885 Add noexcept to all member functions. 2886 28872021-09-17 Jonathan Wakely <jwakely@redhat.com> 2888 2889 PR libstdc++/102270 2890 * include/std/tuple (_Tuple_impl): Add constexpr to constructor 2891 missed in previous patch. 2892 * testsuite/20_util/tuple/cons/102270.C: Moved to... 2893 * testsuite/20_util/tuple/cons/102270.cc: ...here. 2894 * testsuite/util/testsuite_allocator.h (SimpleAllocator): Add 2895 constexpr to constructor so it can be used for C++20 tests. 2896 28972021-09-17 Jonathan Wakely <jwakely@redhat.com> 2898 2899 * testsuite/26_numerics/valarray/dr630-3.C: Moved to... 2900 * testsuite/26_numerics/valarray/dr630-3.cc: ...here. 2901 * testsuite/27_io/basic_iostream/cons/16251.C: Moved to... 2902 * testsuite/27_io/basic_iostream/cons/16251.cc: ...here. 2903 29042021-09-16 Jonathan Wakely <jwakely@redhat.com> 2905 2906 * src/Makefile.am (stamp-debug): Add all Makefiles as 2907 prerequisites. 2908 * src/Makefile.in: Regenerate. 2909 29102021-09-16 Jonathan Wakely <jwakely@redhat.com> 2911 2912 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Increase 2913 timeout factor to 3. 2914 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise. 2915 29162021-09-16 Jonathan Wakely <jwakely@redhat.com> 2917 2918 * doc/xml/manual/using.xml: Generalize to apply to more than 2919 just -std=c++11. 2920 * doc/html/manual/using_macros.html: Regenerate. 2921 29222021-09-16 Jonathan Wakely <jwakely@redhat.com> 2923 2924 * include/std/optional (nullptr_t): Make constructor noexcept. 2925 29262021-09-16 Jonathan Wakely <jwakely@redhat.com> 2927 2928 * include/bits/fs_path.h (advance): Remove non-deducible 2929 template parameter. 2930 29312021-09-16 Jonathan Wakely <jwakely@redhat.com> 2932 2933 PR libstdc++/102270 2934 * include/std/tuple (_Head_base, _Tuple_impl): Add 2935 _GLIBCXX20_CONSTEXPR to allocator-extended constructors. 2936 (tuple<>::swap(tuple&)): Add _GLIBCXX20_CONSTEXPR. 2937 * testsuite/20_util/tuple/cons/102270.C: New test. 2938 29392021-09-16 Jonathan Wakely <jwakely@redhat.com> 2940 2941 PR libstdc++/102280 2942 * include/std/span (span(Range&&)): Add constraint to deduction 2943 guide. 2944 29452021-09-16 Jonathan Wakely <jwakely@redhat.com> 2946 2947 * src/c++98/Makefile.am: Use CXXCOMPILE not LTCXXCOMPILE. 2948 * src/c++98/Makefile.in: Regenerate. 2949 29502021-09-16 Jonathan Wakely <jwakely@redhat.com> 2951 2952 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] 2953 (to_string): Add noexcept if the type width is 32 bits or less. 2954 29552021-09-16 Jonathan Wakely <jwakely@redhat.com> 2956 2957 * include/bits/unique_ptr.h (__uniq_ptr_impl::_M_ptr) 2958 (__uniq_ptr_impl::_M_deleter): Add noexcept. 2959 29602021-09-16 Thomas Rodgers <rodgert@twrodgers.com> 2961 2962 PR libstdc++/101761 2963 * testsuite/29_atomics/atomic_ref/wait_notify.cc (test): Use 2964 va and vb as arguments to wait/notify, remove unused bb local. 2965 29662021-09-15 Hugo Beauzée-Luyssen <hugo@beauzee.fr> 2967 2968 * crossconfig.m4: Check for TLS support on mingw. 2969 * configure: Regenerate. 2970 29712021-09-13 Jason Merrill <jason@redhat.com> 2972 2973 * include/std/version: Define __cpp_lib_hardware_interference_size. 2974 * libsupc++/new: Define hardware interference size variables. 2975 29762021-09-10 Jonathan Wakely <jwakely@redhat.com> 2977 2978 * testsuite/experimental/net/internet/resolver/ops/lookup.cc: 2979 Fix invalid hostname to only match the .invalid TLD. 2980 29812021-09-02 Jonathan Wakely <jwakely@redhat.com> 2982 2983 * include/bits/atomic_base.h (__atomic_base<P*>::compare_exchange_weak): 2984 Add new functions. 2985 * include/std/atomic (atomic<T*>::compare_exchange_weak): Use 2986 it. 2987 29882021-09-02 Jonathan Wakely <jwakely@redhat.com> 2989 2990 * include/std/atomic: Tweak whitespace. 2991 29922021-09-02 Jonathan Wakely <jwakely@redhat.com> 2993 2994 PR c++/102177 2995 * include/bits/atomic_base.h (__is_valid_cmpexch_failure_order): 2996 New function to check if a memory order is valid for the failure 2997 case of compare exchange operations. 2998 (__atomic_base<I>::compare_exchange_weak): Simplify assertions 2999 by using __is_valid_cmpexch_failure_order. 3000 (__atomic_base<I>::compare_exchange_strong): Likewise. 3001 (__atomic_base<P*>::compare_exchange_weak): Likewise. 3002 (__atomic_base<P*>::compare_exchange_strong): Likewise. 3003 (__atomic_impl::compare_exchange_weak): Add assertion. 3004 (__atomic_impl::compare_exchange_strong): Likewise. 3005 * include/std/atomic (atomic::compare_exchange_weak): Likewise. 3006 (atomic::compare_exchange_strong): Likewise. 3007 30082021-09-02 Jonathan Wakely <jwakely@redhat.com> 3009 3010 * include/std/functional (invoke_r): Define. 3011 * include/std/version (__cpp_lib_invoke_r): Define. 3012 * testsuite/20_util/function_objects/invoke/version.cc: Check 3013 for __cpp_lib_invoke_r as well as __cpp_lib_invoke. 3014 * testsuite/20_util/function_objects/invoke/4.cc: New test. 3015 30162021-08-31 Jonathan Wakely <jwakely@redhat.com> 3017 3018 PR libstdc++/98421 3019 * include/std/span (span(Iter, size_type), span(Iter, Iter)): 3020 Add valid range checks. 3021 * testsuite/23_containers/span/cons_1_assert_neg.cc: New test. 3022 * testsuite/23_containers/span/cons_2_assert_neg.cc: New test. 3023 30242021-08-31 Jonathan Wakely <jwakely@redhat.com> 3025 3026 * configure.ac: Fix checks for F_GETFL, F_SETFL and O_NONBLOCK. 3027 * configure: Regenerate. 3028 30292021-08-31 Jonathan Wakely <jwakely@redhat.com> 3030 3031 * src/c++11/system_error.cc (error_category::~error_category()): 3032 Remove noexcept-specifier. 3033 (system_error::~system_error()): Likewise. 3034 * testsuite/19_diagnostics/error_category/noexcept.cc: New test. 3035 * testsuite/19_diagnostics/system_error/noexcept.cc: New test. 3036 30372021-08-31 Jonathan Wakely <jwakely@redhat.com> 3038 3039 PR libstdc++/102074 3040 * include/bits/atomic_timed_wait.h (__timed_waiter_pool) 3041 [!_GLIBCXX_HAVE_PLATFORM_TIMED_WAIT]: Add missing return. 3042 30432021-08-31 Jonathan Wakely <jwakely@redhat.com> 3044 3045 * include/experimental/internet (__make_resolver_error_code): 3046 Handle EAI_SYSTEM errors. 3047 (basic_resolver_results): Use __make_resolver_error_code. Use 3048 Glibc NI_MAXHOST and NI_MAXSERV values for buffer sizes. 3049 30502021-08-31 Jonathan Wakely <jwakely@redhat.com> 3051 3052 * testsuite/experimental/net/internet/resolver/ops/lookup.cc: 3053 Try other service if "http" fails. 3054 30552021-08-31 Jonathan Wakely <jwakely@redhat.com> 3056 3057 * testsuite/17_intro/names.cc: Undefine some more names used 3058 by Solaris system headers. 3059 30602021-08-30 Jason Merrill <jason@redhat.com> 3061 3062 PR c++/96286 3063 * testsuite/30_threads/promise/requirements/lwg3466.cc: 3064 Remove dg-prune-outputs. 3065 30662021-08-28 Jonathan Wakely <jwakely@redhat.com> 3067 3068 * include/bits/alloc_traits.h (allocator_traits): Add explicit 3069 specialization for allocator<void>. Improve doxygen comments. 3070 * include/bits/allocator.h (allocator<void>): Restore for the 3071 versioned namespace. 3072 (allocator<void>::construct, allocator<void>::destroy): Remove. 3073 * include/ext/extptr_allocator.h (_Extptr_allocator<void>): 3074 Add default constructor and converting constructor. 3075 30762021-08-28 Jonathan Wakely <jwakely@redhat.com> 3077 3078 * include/bits/stl_uninitialized.h: Fix typo in comment. 3079 30802021-08-28 Jonathan Wakely <jwakely@redhat.com> 3081 3082 PR libstdc++/99876 3083 * src/c++17/fs_ops.cc (fs::absolute): Call non-throwing form, 3084 to avoid unnecessary current_path() call. 3085 30862021-08-28 Jonathan Wakely <jwakely@redhat.com> 3087 3088 * include/bits/std_function.h (function::function(F&&)): Give 3089 name to defaulted template parameter, to improve diagnostics. 3090 Use markdown for more doxygen comments. 3091 30922021-08-26 Jonathan Wakely <jwakely@redhat.com> 3093 3094 * include/bits/std_function.h (function): Adjust doxygen 3095 comments. 3096 * include/bits/unique_ptr.h (make_unique_for_overwrite): 3097 Change parameter name to match doxygen comment. 3098 30992021-08-26 Jonathan Wakely <jwakely@redhat.com> 3100 3101 * include/bits/std_function.h (_function_base::_Base_manager): 3102 Replace _M_init_functor with a function template using a 3103 forwarding reference, and a pair of _M_create function 3104 templates. Reuse _M_create for the clone operation. 3105 (function::_Decay_t): New alias template. 3106 (function::_Callable): Simplify by using _Decay. 3107 (function::function(F)): Change parameter to forwarding 3108 reference, as per LWG 2447. Add noexcept-specifier. Simplify 3109 constraints. 3110 (function::operator=(F&&)): Add noexcept-specifier. 3111 * testsuite/20_util/function/cons/lwg2774.cc: New test. 3112 * testsuite/20_util/function/cons/noexcept.cc: New test. 3113 31142021-08-26 Jonathan Wakely <jwakely@redhat.com> 3115 3116 * include/bits/std_function.h (function::function(F)): Add 3117 static assertions to check constructibility requirements. 3118 31192021-08-26 Jonathan Wakely <jwakely@redhat.com> 3120 3121 PR libstdc++/100285 3122 * configure.ac: Check for O_NONBLOCK. 3123 * configure: Regenerate. 3124 * include/experimental/internet: Include <ws2tcpip.h> for 3125 Windows. Use preprocessor conditions around more constants. 3126 * include/experimental/socket: Use preprocessor conditions 3127 around more constants. 3128 * testsuite/experimental/net/internet/resolver/base.cc: Only use 3129 constants when the corresponding C macro is defined. 3130 * testsuite/experimental/net/socket/basic_socket.cc: Likewise. 3131 * testsuite/experimental/net/socket/socket_base.cc: Likewise. 3132 Make preprocessor checks more fine-grained. 3133 31342021-08-25 Jonathan Wakely <jwakely@redhat.com> 3135 3136 * testsuite/17_intro/names.cc: Check 'sz'. 3137 31382021-08-25 Jonathan Wakely <jwakely@redhat.com> 3139 3140 * testsuite/17_intro/names.cc: Adjust for Windows. 3141 31422021-08-25 Jonathan Wakely <jwakely@redhat.com> 3143 3144 * include/std/valarray: Uglify 'func' parameters. 3145 * testsuite/17_intro/names.cc: Add 'func' to checks. 3146 31472021-08-25 Jonathan Wakely <jwakely@redhat.com> 3148 3149 PR libstdc++/102064 3150 * include/bits/stl_uninitialized.h (_GLIBCXX_USE_ASSIGN_FOR_INIT): 3151 Define macro to check conditions for optimizing trivial cases. 3152 (__check_constructible): New function to do static assert. 3153 (uninitialized_copy, uninitialized_fill, uninitialized_fill_n): 3154 Use new macro. 3155 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc: 3156 Adjust dg-error pattern. 3157 * testsuite/23_containers/vector/cons/89164.cc: Likewise. Add 3158 C++17-specific checks from 89164_c++17.cc. 3159 * testsuite/23_containers/vector/cons/89164_c++17.cc: Removed. 3160 * testsuite/20_util/specialized_algorithms/uninitialized_copy/102064.cc: 3161 New test. 3162 * testsuite/20_util/specialized_algorithms/uninitialized_copy_n/102064.cc: 3163 New test. 3164 * testsuite/20_util/specialized_algorithms/uninitialized_fill/102064.cc: 3165 New test. 3166 * testsuite/20_util/specialized_algorithms/uninitialized_fill_n/102064.cc: 3167 New test. 3168 31692021-08-25 Jonathan Wakely <jwakely@redhat.com> 3170 3171 PR libstdc++/102048 3172 * include/ext/rope (rope::erase(size_type)): Remove broken 3173 function. 3174 31752021-08-24 Jonathan Wakely <jwakely@redhat.com> 3176 3177 * doc/xml/manual/status_cxx2020.xml: Update table. 3178 * doc/html/manual/status.html: Regenerate. 3179 31802021-08-24 Jonathan Wakely <jwakely@redhat.com> 3181 3182 * include/std/type_traits (is_layout_compatible): Define. 3183 (is_corresponding_member): Define. 3184 * include/std/version (__cpp_lib_is_layout_compatible): Define. 3185 * testsuite/20_util/is_layout_compatible/is_corresponding_member.cc: 3186 New test. 3187 * testsuite/20_util/is_layout_compatible/value.cc: New test. 3188 * testsuite/20_util/is_layout_compatible/version.cc: New test. 3189 * testsuite/20_util/is_pointer_interconvertible/with_class.cc: 3190 New test. 3191 * testsuite/23_containers/span/layout_compat.cc: Do not use real 3192 std::is_layout_compatible trait if available. 3193 31942021-08-24 Jonathan Wakely <jwakely@redhat.com> 3195 3196 * src/c++11/cxx11-shim_facets.cc: Fix mismatched class-key in 3197 explicit instantiation definitions. 3198 31992021-08-23 Jonathan Wakely <jwakely@redhat.com> 3200 3201 * include/std/ranges (basic_istream_view): Add default template 3202 argument. 3203 * testsuite/std/ranges/istream_view.cc: Check it. 3204 32052021-08-23 Jonathan Wakely <jwakely@redhat.com> 3206 3207 * libsupc++/dyncast.cc (__dynamic_cast): Add __builtin_expect to 3208 precondition check. 3209 32102021-08-23 Jonathan Wakely <jwakely@redhat.com> 3211 3212 PR libstdc++/90787 3213 * testsuite/util/testsuite_fs.h (permissions_are_testable): 3214 Define as inline. 3215 32162021-08-20 Jonathan Wakely <jwakely@redhat.com> 3217 3218 PR libstdc++/90787 3219 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: 3220 Use new __gnu_test::permissions_are_testable() function. 3221 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc: 3222 Likewise. 3223 * testsuite/27_io/filesystem/operations/exists.cc: Likewise. 3224 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise. 3225 * testsuite/27_io/filesystem/operations/remove.cc: Likewise. 3226 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise. 3227 * testsuite/27_io/filesystem/operations/status.cc: Likewise. 3228 * testsuite/27_io/filesystem/operations/symlink_status.cc: 3229 Likewise. 3230 * testsuite/27_io/filesystem/operations/temp_directory_path.cc: 3231 Likewise. 3232 * testsuite/experimental/filesystem/iterators/directory_iterator.cc: 3233 Likewise. 3234 * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc: 3235 Likewise. 3236 * testsuite/experimental/filesystem/operations/exists.cc: 3237 Likewise. 3238 * testsuite/experimental/filesystem/operations/is_empty.cc: 3239 Likewise. 3240 * testsuite/experimental/filesystem/operations/remove.cc: 3241 Likewise. 3242 * testsuite/experimental/filesystem/operations/remove_all.cc: 3243 Likewise. 3244 * testsuite/experimental/filesystem/operations/temp_directory_path.cc: 3245 Likewise. 3246 * testsuite/util/testsuite_fs.h (__gnu_test::permissions_are_testable): 3247 New function to guess whether testing permissions will work. 3248 32492021-08-19 Jonathan Wakely <jwakely@redhat.com> 3250 3251 * doc/xml/manual/status_cxx2020.xml: Move row earlier in table. 3252 * doc/html/manual/status.html: Regenerate. 3253 32542021-08-19 Jonathan Wakely <jwakely@redhat.com> 3255 3256 * doc/doxygen/user.cfg.in: Update to Doxygen 1.9.2 3257 32582021-08-19 Jonathan Wakely <jwakely@redhat.com> 3259 3260 PR libstdc++/101965 3261 * include/std/charconv (__to_chars_i): Remove redundant check. 3262 32632021-08-19 Jonathan Wakely <jwakely@redhat.com> 3264 3265 PR libstdc++/101960 3266 * include/std/tuple (_Tuple_impl(_Tuple_impl&&)): Use base 3267 class' move constructor. Define as defaulted for versioned 3268 namespace. 3269 * testsuite/20_util/tuple/cons/101960.cc: New test. 3270 32712021-08-19 Jonathan Wakely <jwakely@redhat.com> 3272 3273 PR libstdc++/100139 3274 * doc/xml/manual/status_cxx2020.xml: Add P1739R4 to status table. 3275 * doc/html/manual/status.html: Regenerate. 3276 32772021-08-19 Jonathan Wakely <jwakely@redhat.com> 3278 3279 * include/bits/shared_ptr.h: Add @since and @headerfile tags. 3280 * include/bits/unique_ptr.h: Add @headerfile tags. 3281 32822021-08-19 Jonathan Wakely <jwakely@redhat.com> 3283 3284 * src/filesystem/ops-common.h (filesystem::file_time): Improve 3285 overflow check by using system_clock::duration::max(). 3286 32872021-08-19 Jonathan Wakely <jwakely@redhat.com> 3288 3289 * include/bits/stl_tree.h: Tweak whitespace. 3290 32912021-08-18 Jonathan Wakely <jwakely@redhat.com> 3292 3293 * include/bits/unique_ptr.h (default_delete): Add @since tag. 3294 (unique_ptr, unique_ptr<T[]>): Likewise. Improve @brief. 3295 (make_unique, make_unique_for_overwrite): Likewise. Add @tparam, 3296 @param, and @returns. 3297 (_MakeUniq): Move to __detail namespace. Add alias template 3298 helpers. 3299 33002021-08-18 Jonathan Wakely <jwakely@redhat.com> 3301 3302 * include/bits/stl_function.h: Improve doxygen comments. 3303 33042021-08-18 Jonathan Wakely <jwakely@redhat.com> 3305 3306 * doc/doxygen/user.cfg.in (PREDEFINED): Enable doxygen 3307 processing for C++20 components and components that depend on 3308 compiler features. 3309 * include/bits/stl_algo.h (random_shuffle): Use @deprecated. 3310 * include/std/type_traits: Improve doxygen comments for C++20 3311 traits. 3312 33132021-08-18 Jonathan Wakely <jwakely@redhat.com> 3314 3315 * include/ext/type_traits.h (__promote_2, __promote_3) 3316 (__promote_4): Redfine as alias templates using __promoted_t. 3317 * include/std/complex (__promote_2): Remove partial 3318 specializations for std::complex. 3319 33202021-08-18 Jonathan Wakely <jwakely@redhat.com> 3321 3322 * include/bits/stl_algo.h (min(initializer_list<T>)) 3323 (min(initializer_list<T>, Compare)): Call __min_element directly to 3324 avoid redundant debug checks for valid ranges. 3325 (max(initializer_list<T>), max(initializer_list<T>, Compare)): 3326 Likewise, for __max_element. 3327 (minmax(initializer_list<T>), minmax(initializer_list<T>, Compare)): 3328 Likewise, for __minmax_element. 3329 33302021-08-18 Jonathan Wakely <jwakely@redhat.com> 3331 3332 * include/debug/deque (deque(size_type, const T&, const A&)): 3333 Prevent class template argument deduction and replace with a 3334 deduction guide. 3335 * include/debug/forward_list (forward_list(size_type, const T&, const A&)): 3336 Likewise. 3337 * include/debug/list (list(size_type, const T&, const A&)): 3338 Likewise. 3339 * include/debug/vector (vector(size_type, const T&, const A&)): 3340 Likewise. 3341 33422021-08-18 Jonathan Wakely <jwakely@redhat.com> 3343 3344 * python/libstdcxx/v6/printers.py (StdBitReferencePrinter): Use 3345 'std::vector<bool>::reference' as type name, not _Bit_reference. 3346 (build_libstdcxx_dictionary): Register printers for vector<bool> 3347 types in debug mode too. 3348 * testsuite/libstdc++-prettyprinters/simple.cc: Adjust expected 3349 output for invalid _Bit_reference. Use vector<bool>::reference 3350 instead of _Bit_reference. 3351 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise. 3352 33532021-08-17 Thomas Schwinge <thomas@codesourcery.com> 3354 3355 * testsuite/lib/libstdc++.exp: Avoid illegal argument to verbose, 3356 continued. 3357 33582021-08-17 Luc Michel <lmichel@kalray.eu> 3359 Marc Poulhies <mpoulhies@kalrayinc.com> 3360 3361 * testsuite/lib/gdb-test.exp (gdb_version_check) 3362 (gdb_version_check_xmethods): Only check the GDB version for 3363 local native targets. 3364 33652021-08-17 Antony Polukhin <antoshkka@gmail.com> 3366 Jonathan Wakely <jwakely@redhat.com> 3367 3368 * include/bits/random.tcc (seed_seq::seed_seq): Reserve capacity 3369 if distance is O(1). 3370 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error 3371 line number. 3372 33732021-08-17 Jonathan Wakely <jwakely@redhat.com> 3374 3375 * testsuite/26_numerics/random/seed_seq/cons/range.cc: Check 3376 construction from input iterators. 3377 33782021-08-17 Jonathan Wakely <jwakely@redhat.com> 3379 3380 * python/libstdcxx/v6/printers.py (StdErrorCatPrinter): Remove. 3381 33822021-08-17 Jonathan Wakely <jwakely@redhat.com> 3383 3384 PR libstdc++/101923 3385 * include/bits/std_function.h (function(function&&)): Check for 3386 non-empty parameter before doing any work. 3387 33882021-08-17 Jonathan Wakely <jwakely@redhat.com> 3389 3390 * include/bits/cow_string.h (basic_string::contains): Do not 3391 define for -std=gnu++20. 3392 33932021-08-17 Jonathan Wakely <jwakely@redhat.com> 3394 3395 * include/bits/ranges_util.h (__not_same_as): Rename to 3396 __different_from. 3397 * include/std/ranges (__not_same_as): Likewise. 3398 33992021-08-17 Jonathan Wakely <jwakely@redhat.com> 3400 3401 * include/std/utility (exchange): Add noexcept-specifier. 3402 * testsuite/20_util/exchange/noexcept.cc: New test. 3403 34042021-08-17 Jonathan Wakely <jwakely@redhat.com> 3405 3406 * python/libstdcxx/v6/printers.py (StdErrorCodePrinter): Define. 3407 (build_libstdcxx_dictionary): Register printer for 3408 std::error_code and std::error_condition. 3409 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test it. 3410 34112021-08-16 Jonathan Wakely <jwakely@redhat.com> 3412 3413 PR libstdc++/101937 3414 * src/c++11/debug.cc (PrintContext::_M_indent): Replace with a 3415 static data member. 3416 (print_word): Use qualified-id to access it. 3417 34182021-08-16 Jonathan Wakely <jwakely@redhat.com> 3419 3420 * python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local): 3421 Install another copy of the GDB hook. 3422 * python/Makefile.in: Regenerate. 3423 34242021-08-12 Jonathan Wakely <jwakely@redhat.com> 3425 3426 PR libstdc++/101870 3427 * include/c_global/cmath (hypot): Use __promoted_t. 3428 (lerp): Add new overload accepting any arithmetic types. 3429 * include/ext/type_traits.h (__promoted_t): New alias template. 3430 * testsuite/26_numerics/lerp.cc: Moved to... 3431 * testsuite/26_numerics/lerp/1.cc: ...here. 3432 * testsuite/26_numerics/lerp/constexpr.cc: New test. 3433 * testsuite/26_numerics/lerp/version.cc: New test. 3434 34352021-08-12 Jonathan Wakely <jwakely@redhat.com> 3436 3437 * testsuite/26_numerics/lerp.cc: Add header name to #error. 3438 * testsuite/26_numerics/midpoint/integral.cc: Likewise. 3439 * testsuite/26_numerics/midpoint/version.cc: New test. 3440 34412021-08-12 Jonathan Wakely <jwakely@redhat.com> 3442 3443 * include/experimental/random (experimental::randint): Add 3444 nodiscard attribute. 3445 34462021-08-12 Jonathan Wakely <jwakely@redhat.com> 3447 3448 * src/c++98/locale_init.cc: Require C++11. 3449 * src/c++98/localename.cc: Likewise. 3450 * src/c++98/misc-inst.cc: Require C++98. 3451 34522021-08-11 Jonathan Wakely <jwakely@redhat.com> 3453 3454 PR libstdc++/101866 3455 * testsuite/experimental/random/randint.cc: Loop and retry if 3456 reseed() produces the same sequence. 3457 34582021-08-11 Jonathan Wakely <jwakely@redhat.com> 3459 3460 * include/std/type_traits (__cpp_lib_is_pointer_interconvertible) 3461 (is_pointer_interconvertible_base_of_v) 3462 (is_pointer_interconvertible_base_of): Define for C++20. 3463 * include/std/version (__cpp_lib_is_pointer_interconvertible): 3464 Define. 3465 * testsuite/23_containers/span/layout_compat.cc: Use correct 3466 feature test macro for std::is_layout_compatible_v. 3467 * testsuite/20_util/is_pointer_interconvertible/value.cc: New test. 3468 * testsuite/20_util/is_pointer_interconvertible/version.cc: New test. 3469 34702021-08-09 Jonathan Wakely <jwakely@redhat.com> 3471 3472 * include/bits/regex.h (basic_regex::transform_primary): Use 3473 _GLIBCXX_STD_C::vector for local variable. 3474 * include/bits/regex.tcc (__regex_algo_impl): Use reference to 3475 _GLIBCXX_STD_C::vector base class of match_results. 3476 * include/bits/regex_automaton.tcc (_StateSeq:_M_clone): Use 3477 _GLIBCXX_STD_C::map and _GLIBCXX_STD_C::deque for local 3478 variables. 3479 * include/bits/regex_compiler.h (_BracketMatcher): Use 3480 _GLIBCXX_STD_C::vector for data members. 3481 * include/bits/regex_executor.h (_Executor): Likewise. 3482 * include/std/regex [_GLIBCXX_DEBUG]: Include <debug/vector>. 3483 34842021-08-09 François Dumont <fdumont@gcc.gnu.org> 3485 3486 * include/debug/safe_container.h 3487 (_Safe_container(_Safe_container&&, const _Alloc&, std::true_type)): New. 3488 (_Safe_container(_Safe_container&&, const _Alloc&, std::false_type)): New. 3489 (_Safe_container(_Safe_container&&, const _Alloc&)): Use latters. 3490 34912021-08-09 Jonathan Wakely <jwakely@redhat.com> 3492 3493 * testsuite/23_containers/unordered_map/cons/default.cc: Add 3494 equality comparison operators to allocator. 3495 * testsuite/23_containers/unordered_set/cons/default.cc: 3496 Likewise. 3497 34982021-08-08 François Dumont <fdumont@gcc.gnu.org> 3499 3500 * testsuite/25_algorithms/copy/debug/constexpr_neg.cc: Replace 'failed_assertion' 3501 dg-prune-output reason with 'builtin_unreachable'. 3502 * testsuite/25_algorithms/copy_backward/debug/constexpr_neg.cc: Likewise. 3503 * testsuite/25_algorithms/equal/debug/constexpr_neg.cc: Likewise. 3504 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_neg.cc: Likewise. 3505 * testsuite/25_algorithms/lower_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise. 3506 * testsuite/25_algorithms/lower_bound/debug/constexpr_valid_range_neg.cc: Likewise. 3507 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_neg.cc: Likewise. 3508 * testsuite/25_algorithms/upper_bound/debug/constexpr_partitioned_pred_neg.cc: Likewise. 3509 * testsuite/25_algorithms/upper_bound/debug/constexpr_valid_range_neg.cc: Likewise. 3510 35112021-08-08 Hans-Peter Nilsson <hp@bitrange.com> 3512 3513 * testsuite/std/ranges/iota/max_size_type.cc: Set 3514 dg-timeout-factor to 4. 3515 35162021-08-06 Jonathan Wakely <jwakely@redhat.com> 3517 3518 * libsupc++/compare (compare_three_way, strong_order) 3519 (weak_order, partial_order, compare_strong_order_fallback) 3520 (compare_weak_order_fallback, compare_partial_order_fallback): 3521 Move nodiscard attributes to correct location. 3522 35232021-08-05 Jonathan Wakely <jwakely@redhat.com> 3524 3525 PR libstdc++/101782 3526 * include/bits/ranges_base.h (ranges::begin, ranges::end) 3527 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize) 3528 (ranges::empty, ranges::data): Move attribute after the 3529 declarator-id instead of at the end of the declarator. 3530 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator): 3531 Move attributes back to the start of the function declarator, 3532 but move the requires-clause to the end. 3533 (common_iterator): Move attribute after the declarator-id. 3534 * include/bits/stl_queue.h (queue): Remove ill-formed attributes 3535 from friend declaration that are not definitions. 3536 * include/std/ranges (views::all, views::filter) 3537 (views::transform, views::take, views::take_while, 3538 views::drop) (views::drop_while, views::join, 3539 views::lazy_split) (views::split, views::counted, 3540 views::common, views::reverse) (views::elements): Move 3541 attributes after the declarator-id. 3542 35432021-08-05 Jonathan Wakely <jwakely@redhat.com> 3544 3545 * libsupc++/compare (partial_ordering, weak_ordering) 3546 (strong_ordering, is_eq, is_neq, is_lt, is_lteq, is_gt, is_gteq) 3547 (compare_three_way, strong_order, weak_order, partial_order) 3548 (compare_strong_order_fallback, compare_weak_order_fallback) 3549 (compare_partial_order_fallback, __detail::__synth3way): Add 3550 nodiscard attribute. 3551 * testsuite/18_support/comparisons/categories/zero_neg.cc: Add 3552 -Wno-unused-result to options. 3553 35542021-08-05 Jonathan Wakely <jwakely@redhat.com> 3555 3556 PR libstdc++/101782 3557 * include/bits/ranges_base.h (ranges::begin, ranges::end) 3558 (ranges::rbegin, ranges::rend, ranges::size, ranges::ssize) 3559 (ranges::empty, ranges::data): Move attribute to the end of 3560 the declarator. 3561 * include/bits/stl_iterator.h (__gnu_cxx::__normal_iterator) 3562 (common_iterator): Likewise for non-member operator functions. 3563 * include/std/ranges (views::all, views::filter) 3564 (views::transform, views::take, views::take_while, views::drop) 3565 (views::drop_while, views::join, views::lazy_split) 3566 (views::split, views::counted, views::common, views::reverse) 3567 (views::elements): Likewise. 3568 * testsuite/std/ranges/access/101782.cc: New test. 3569 35702021-08-04 Jonathan Wakely <jwakely@redhat.com> 3571 3572 * include/bits/forward_list.h: Add [[nodiscard]] to functions 3573 with no side-effects. 3574 * include/bits/stl_bvector.h: Likewise. 3575 * include/bits/stl_deque.h: Likewise. 3576 * include/bits/stl_list.h: Likewise. 3577 * include/bits/stl_queue.h: Likewise. 3578 * include/bits/stl_stack.h: Likewise. 3579 * include/bits/stl_vector.h: Likewise. 3580 * include/debug/deque: Likewise. 3581 * include/debug/forward_list: Likewise. 3582 * include/debug/list: Likewise. 3583 * include/debug/safe_iterator.h: Likewise. 3584 * include/debug/vector: Likewise. 3585 * include/std/array: Likewise. 3586 * testsuite/23_containers/array/creation/3_neg.cc: Use 3587 -Wno-unused-result. 3588 * testsuite/23_containers/array/debug/back1_neg.cc: Cast result 3589 to void. 3590 * testsuite/23_containers/array/debug/back2_neg.cc: Likewise. 3591 * testsuite/23_containers/array/debug/front1_neg.cc: Likewise. 3592 * testsuite/23_containers/array/debug/front2_neg.cc: Likewise. 3593 * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc: 3594 Likewise. 3595 * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc: 3596 Likewise. 3597 * testsuite/23_containers/array/tuple_interface/get_neg.cc: 3598 Adjust dg-error line numbers. 3599 * testsuite/23_containers/deque/cons/clear_allocator.cc: Cast 3600 result to void. 3601 * testsuite/23_containers/deque/debug/invalidation/4.cc: 3602 Likewise. 3603 * testsuite/23_containers/deque/types/1.cc: Use 3604 -Wno-unused-result. 3605 * testsuite/23_containers/list/types/1.cc: Cast result to void. 3606 * testsuite/23_containers/priority_queue/members/7161.cc: 3607 Likewise. 3608 * testsuite/23_containers/queue/members/7157.cc: Likewise. 3609 * testsuite/23_containers/vector/59829.cc: Likewise. 3610 * testsuite/23_containers/vector/ext_pointer/types/1.cc: 3611 Likewise. 3612 * testsuite/23_containers/vector/ext_pointer/types/2.cc: 3613 Likewise. 3614 * testsuite/23_containers/vector/types/1.cc: Use 3615 -Wno-unused-result. 3616 36172021-08-04 Jonathan Wakely <jwakely@redhat.com> 3618 3619 * include/bits/iterator_concepts.h (iter_move): Add 3620 [[nodiscard]]. 3621 * include/bits/range_access.h (begin, end, cbegin, cend) 3622 (rbegin, rend, crbegin, crend, size, data, ssize): Likewise. 3623 * include/bits/ranges_base.h (ranges::begin, ranges::end) 3624 (ranges::cbegin, ranges::cend, ranges::rbegin, ranges::rend) 3625 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize) 3626 (ranges::empty, ranges::data, ranges::cdata): Likewise. 3627 * include/bits/stl_iterator.h (reverse_iterator, __normal_iterator) 3628 (back_insert_iterator, front_insert_iterator, insert_iterator) 3629 (move_iterator, move_sentinel, common_iterator) 3630 (counted_iterator): Likewise. 3631 * include/bits/stl_iterator_base_funcs.h (distance, next, prev): 3632 Likewise. 3633 * include/bits/stream_iterator.h (istream_iterator) 3634 (ostream_iterartor): Likewise. 3635 * include/bits/streambuf_iterator.h (istreambuf_iterator) 3636 (ostreambuf_iterator): Likewise. 3637 * include/std/ranges (views::single, views::iota, views::all) 3638 (views::filter, views::transform, views::take, views::take_while) 3639 (views::drop, views::drop_while, views::join, views::lazy_split) 3640 (views::split, views::counted, views::common, views::reverse) 3641 (views::elements): Likewise. 3642 * testsuite/20_util/rel_ops.cc: Use -Wno-unused-result. 3643 * testsuite/24_iterators/move_iterator/greedy_ops.cc: Likewise. 3644 * testsuite/24_iterators/normal_iterator/greedy_ops.cc: 3645 Likewise. 3646 * testsuite/24_iterators/reverse_iterator/2.cc: Likewise. 3647 * testsuite/24_iterators/reverse_iterator/greedy_ops.cc: 3648 Likewise. 3649 * testsuite/21_strings/basic_string/range_access/char/1.cc: 3650 Cast result to void. 3651 * testsuite/21_strings/basic_string/range_access/wchar_t/1.cc: 3652 Likewise. 3653 * testsuite/21_strings/basic_string_view/range_access/char/1.cc: 3654 Likewise. 3655 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc: 3656 Likewise. 3657 * testsuite/23_containers/array/range_access.cc: Likewise. 3658 * testsuite/23_containers/deque/range_access.cc: Likewise. 3659 * testsuite/23_containers/forward_list/range_access.cc: 3660 Likewise. 3661 * testsuite/23_containers/list/range_access.cc: Likewise. 3662 * testsuite/23_containers/map/range_access.cc: Likewise. 3663 * testsuite/23_containers/multimap/range_access.cc: Likewise. 3664 * testsuite/23_containers/multiset/range_access.cc: Likewise. 3665 * testsuite/23_containers/set/range_access.cc: Likewise. 3666 * testsuite/23_containers/unordered_map/range_access.cc: 3667 Likewise. 3668 * testsuite/23_containers/unordered_multimap/range_access.cc: 3669 Likewise. 3670 * testsuite/23_containers/unordered_multiset/range_access.cc: 3671 Likewise. 3672 * testsuite/23_containers/unordered_set/range_access.cc: 3673 Likewise. 3674 * testsuite/23_containers/vector/range_access.cc: Likewise. 3675 * testsuite/24_iterators/customization_points/iter_move.cc: 3676 Likewise. 3677 * testsuite/24_iterators/istream_iterator/sentinel.cc: 3678 Likewise. 3679 * testsuite/24_iterators/istreambuf_iterator/sentinel.cc: 3680 Likewise. 3681 * testsuite/24_iterators/move_iterator/dr2061.cc: Likewise. 3682 * testsuite/24_iterators/operations/prev_neg.cc: Likewise. 3683 * testsuite/24_iterators/ostreambuf_iterator/2.cc: Likewise. 3684 * testsuite/24_iterators/range_access/range_access.cc: 3685 Likewise. 3686 * testsuite/24_iterators/range_operations/100768.cc: Likewise. 3687 * testsuite/26_numerics/valarray/range_access2.cc: Likewise. 3688 * testsuite/28_regex/range_access.cc: Likewise. 3689 * testsuite/experimental/string_view/range_access/char/1.cc: 3690 Likewise. 3691 * testsuite/experimental/string_view/range_access/wchar_t/1.cc: 3692 Likewise. 3693 * testsuite/ext/vstring/range_access.cc: Likewise. 3694 * testsuite/std/ranges/adaptors/take.cc: Likewise. 3695 * testsuite/std/ranges/p2259.cc: Likewise. 3696 36972021-08-03 Jonathan Wakely <jwakely@redhat.com> 3698 3699 * include/bits/random.tcc (linear_congruential_engine): Do not 3700 define static constexpr members when they are implicitly inline. 3701 * include/std/ratio (ratio, __ratio_multiply, __ratio_divide) 3702 (__ratio_add, __ratio_subtract): Likewise. 3703 * include/std/type_traits (integral_constant): Likewise. 3704 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error 3705 line number. 3706 37072021-08-03 Jonathan Wakely <jwakely@redhat.com> 3708 3709 * testsuite/util/testsuite_common_types.h: Replace uses of 3710 tr1::unordered_map and tr1::unordered_set with their C++11 3711 equivalents. 3712 * testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust 3713 dg-error line number. 3714 * testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise. 3715 * testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: 3716 Likewise. 3717 * testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: 3718 Likewise. 3719 * testsuite/29_atomics/atomic_integral/operators/bitwise_neg.cc: 3720 Likewise. 3721 * testsuite/29_atomics/atomic_integral/operators/decrement_neg.cc: 3722 Likewise. 3723 * testsuite/29_atomics/atomic_integral/operators/increment_neg.cc: 3724 Likewise. 3725 37262021-08-03 Jonathan Wakely <jwakely@redhat.com> 3727 3728 * include/std/memory_resource (polymorphic_allocator::delete_object): 3729 Call destructor directly instead of using destroy. 3730 (allocator_traits<polymorphic_allocator<T>>): Define partial 3731 specialization. 3732 37332021-08-03 Jonathan Wakely <jwakely@redhat.com> 3734 3735 * testsuite/20_util/function_objects/binders/3113.cc: Remove 3736 trailing whitespace. 3737 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise. 3738 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise. 3739 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: 3740 Likewise. 3741 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise. 3742 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: 3743 Likewise. 3744 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc: 3745 Likewise. 3746 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc: 3747 Likewise. 3748 37492021-08-03 Jonathan Wakely <jwakely@redhat.com> 3750 3751 * doc/xml/manual/evolution.xml: Document deprecation. 3752 * doc/html/*: Regenerate. 3753 * include/bits/c++config (_GLIBCXX14_DEPRECATED): Define. 3754 (_GLIBCXX14_DEPRECATED_SUGGEST): Define. 3755 * include/bits/stl_algo.h (random_shuffle): Deprecate for C++14 3756 and later. 3757 * testsuite/25_algorithms/headers/algorithm/synopsis.cc: Adjust 3758 for C++11 and C++14 changes to std::random_shuffle and 3759 std::shuffle. 3760 * testsuite/25_algorithms/random_shuffle/1.cc: Add options to 3761 use deprecated algorithms. 3762 * testsuite/25_algorithms/random_shuffle/59603.cc: Likewise. 3763 * testsuite/25_algorithms/random_shuffle/moveable.cc: Likewise. 3764 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/2.cc: 3765 Likewise. 3766 * testsuite/25_algorithms/random_shuffle/requirements/explicit_instantiation/pod.cc: 3767 Likewise. 3768 37692021-08-03 Jonathan Wakely <jwakely@redhat.com> 3770 3771 * testsuite/23_containers/forward_list/operations/3.cc: 3772 Use lambda instead of std::bind2nd. 3773 * testsuite/20_util/function_objects/binders/3113.cc: Add 3774 options for testing deprecated features. 3775 * testsuite/20_util/pair/cons/99957.cc: Likewise. 3776 * testsuite/20_util/shared_ptr/assign/auto_ptr.cc: Likewise. 3777 * testsuite/20_util/shared_ptr/assign/auto_ptr_neg.cc: Likewise. 3778 * testsuite/20_util/shared_ptr/assign/auto_ptr_rvalue.cc: 3779 Likewise. 3780 * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Likewise. 3781 * testsuite/20_util/shared_ptr/cons/auto_ptr.cc: Likewise. 3782 * testsuite/20_util/shared_ptr/cons/auto_ptr_neg.cc: Likewise. 3783 * testsuite/20_util/shared_ptr/creation/dr925.cc: Likewise. 3784 * testsuite/20_util/unique_ptr/cons/auto_ptr.cc: Likewise. 3785 * testsuite/20_util/unique_ptr/cons/auto_ptr_neg.cc: Likewise. 3786 * testsuite/ext/pb_ds/example/priority_queue_erase_if.cc: 3787 Likewise. 3788 * testsuite/ext/pb_ds/example/priority_queue_split_join.cc: 3789 Likewise. 3790 * testsuite/lib/dg-options.exp (dg_add_options_using-deprecated): 3791 New proc. 3792 37932021-08-03 Jonathan Wakely <jwakely@redhat.com> 3794 3795 * include/bits/regex_executor.h (_State_info): Replace 3796 unique_ptr<bool[]> with array of bool. 3797 * include/bits/regex_executor.tcc: Likewise. 3798 * include/bits/regex_scanner.tcc: Replace std::strchr with 3799 __builtin_strchr. 3800 * include/std/regex: Replace standard headers with smaller 3801 internal ones. 3802 * testsuite/28_regex/traits/char/lookup_classname.cc: Include 3803 <string.h> for strlen. 3804 * testsuite/28_regex/traits/char/lookup_collatename.cc: 3805 Likewise. 3806 38072021-08-03 Jonathan Wakely <jwakely@redhat.com> 3808 3809 * include/bits/locale_conv.h (__detail::_Scoped_ptr): Define new 3810 RAII class template. 3811 (wstring_convert, wbuffer_convert): Use __detail::_Scoped_ptr 3812 instead of unique_ptr. 3813 38142021-08-02 Patrick Palka <ppalka@redhat.com> 3815 3816 PR libstdc++/101599 3817 * include/bits/ranges_algo.h (__reverse_copy_fn::operator()): 3818 Add missing std::move in return statement. 3819 (__partition_copy_fn::operator()): Rename templtae parameter 3820 _O2 to _Out2. Uglify function parameters out_true and out_false. 3821 * include/bits/ranges_algobase.h (__copy_or_move): Add missing 3822 std::move to recursive call that unwraps a __normal_iterator 3823 output iterator. 3824 * testsuite/25_algorithms/copy/constrained.cc (test06): New test. 3825 * testsuite/25_algorithms/move/constrained.cc (test05): New test. 3826 38272021-08-02 Patrick Palka <ppalka@redhat.com> 3828 3829 PR libstdc++/101589 3830 * include/std/ranges (lazy_split_view::_InnerIter::base): Make 3831 the const& overload unconstrained and return a const reference 3832 as per LWG 3533. Make unconditionally noexcept. 3833 (elements_view::base): Revert accidental r12-569 change. 3834 (elements_view::_Iterator::base): Make the const& overload 3835 unconstrained and return a const reference as per LWG 3533. 3836 Make unconditionally noexcept. 3837 38382021-08-02 Patrick Palka <ppalka@redhat.com> 3839 3840 PR libstdc++/101483 3841 * include/std/ranges (join_view::_Iterator::_Iterator): Add 3842 missing std::move. 3843 38442021-08-02 Jonathan Wakely <jwakely@redhat.com> 3845 3846 PR libstdc++/101709 3847 * src/filesystem/ops-common.h (get_temp_directory_from_env): 3848 Add error_code parameter. 3849 * src/c++17/fs_ops.cc (fs::temp_directory_path): Pass error_code 3850 argument to get_temp_directory_from_env and check it. 3851 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise. 3852 38532021-08-02 Jonathan Wakely <jwakely@redhat.com> 3854 3855 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc: 3856 Add dg-error for c++11_only target. 3857 38582021-07-30 Jonathan Wakely <jwakely@redhat.com> 3859 3860 PR libstdc++/65018 3861 * configure.ac: Check for secure_getenv. 3862 * config.h.in: Regenerate. 3863 * configure: Regenerate. 3864 * src/filesystem/ops-common.h (get_temp_directory_from_env): New 3865 helper function to obtain path from the environment. 3866 * src/c++17/fs_ops.cc (fs::temp_directory_path): Use new helper. 3867 * src/filesystem/ops.cc (fs::temp_directory_path): Likewise. 3868 * testsuite/27_io/filesystem/operations/temp_directory_path.cc: 3869 Print messages if test cannot be run. 3870 * testsuite/experimental/filesystem/operations/temp_directory_path.cc: 3871 Likewise. Fix incorrect condition. Use "TMP" to work with 3872 Windows as well as POSIX. 3873 38742021-07-29 Hans-Peter Nilsson <hp@bitrange.com> 3875 3876 * src/c++17/memory_resource.cc: Use __exchange instead 3877 of std::exchange. 3878 38792021-07-27 Jonathan Wakely <jwakely@redhat.com> 3880 3881 * include/experimental/optional (__throw_bad_optional_access): 3882 Replace GNU attribute with C++11 attribute. 3883 (optional::value, optional::value_or): Use if statements 3884 instead of conditional expressions. 3885 * include/std/optional (__throw_bad_optional_access) 3886 (optional::value, optional::value_or): Likewise. 3887 38882021-07-27 Marek Polacek <polacek@redhat.com> 3889 3890 DR 1512 3891 PR c++/99701 3892 * testsuite/20_util/tuple/comparison_operators/overloaded.cc: 3893 Move a line... 3894 * testsuite/20_util/tuple/comparison_operators/overloaded2.cc: 3895 ...here. New test. 3896 38972021-07-27 Jonathan Wakely <jwakely@redhat.com> 3898 3899 * include/bits/cow_string.h: Consistently use tab for 3900 indentation. 3901 39022021-07-27 Jonathan Wakely <jwakely@redhat.com> 3903 3904 * include/Makefile.am: Add new header. 3905 * include/Makefile.in: Regenerate. 3906 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI] 3907 (basic_string): Move definition of Copy-on-Write string to 3908 new file. 3909 * include/bits/basic_string.tcc: Likewise. 3910 * include/bits/cow_string.h: New file. 3911 39122021-07-27 Jonathan Wakely <jwakely@redhat.com> 3913 3914 * include/std/algorithm: Do not include <utility>. 3915 * include/std/functional: Likewise. 3916 * include/std/regex: Include <bits/stl_pair.h> instead of 3917 <utility>. 3918 * include/debug/map.h: Likewise. 3919 * include/debug/multimap.h: Likewise. 3920 * include/debug/multiset.h: Likewise. 3921 * include/debug/set.h: Likewise. 3922 * include/debug/vector: Likewise. 3923 * include/bits/fs_path.h: Likewise. 3924 * include/bits/unique_ptr.h: Do not include <utility>. 3925 * include/experimental/any: Likewise. 3926 * include/experimental/executor: Likewise. 3927 * include/experimental/memory: Likewise. 3928 * include/experimental/optional: Likewise. 3929 * include/experimental/socket: Use __exchange instead 3930 of std::exchange. 3931 * src/filesystem/ops-common.h: Likewise. 3932 * testsuite/20_util/default_delete/48631_neg.cc: Adjust expected 3933 errors to not use a hardcoded line number. 3934 * testsuite/20_util/default_delete/void_neg.cc: Likewise. 3935 * testsuite/20_util/specialized_algorithms/uninitialized_copy/constrained.cc: 3936 Include <utility> for std::as_const. 3937 * testsuite/20_util/specialized_algorithms/uninitialized_default_construct/constrained.cc: 3938 Likewise. 3939 * testsuite/20_util/specialized_algorithms/uninitialized_move/constrained.cc: 3940 Likewise. 3941 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/constrained.cc: 3942 Likewise. 3943 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: 3944 Adjust dg-error line number. 3945 39462021-07-27 Jonathan Wakely <jwakely@redhat.com> 3947 3948 * include/Makefile.am: Add bits/utility.h header. 3949 * include/Makefile.in: Regenerate. 3950 * include/bits/utility.h: New file. 3951 * include/std/utility (tuple_size, tuple_element): Move 3952 to new header. 3953 * include/std/type_traits (__is_tuple_like_impl<tuple<T...>>): 3954 Move to <tuple>. 3955 (_Index_tuple, _Build_index_tuple, integer_sequence): Likewise. 3956 (in_place_t, in_place_index_t, in_place_type_t): Likewise. 3957 * include/bits/ranges_util.h: Include new header instead of 3958 <utility>. 3959 * include/bits/stl_pair.h (tuple_size, tuple_element): Move 3960 partial specializations for std::pair here. 3961 (get): Move overloads for std::pair here. 3962 * include/std/any: Include new header instead of <utility>. 3963 * include/std/array: Likewise. 3964 * include/std/memory_resource: Likewise. 3965 * include/std/optional: Likewise. 3966 * include/std/variant: Likewise. 3967 * include/std/tuple: Likewise. 3968 (__is_tuple_like_impl<tuple<T...>>): Move here. 3969 (get) Declare overloads for std::array. 3970 * include/std/version (__cpp_lib_tuples_by_type): Change type 3971 to long. 3972 * testsuite/20_util/optional/84601.cc: Include <utility>. 3973 * testsuite/20_util/specialized_algorithms/uninitialized_fill/constrained.cc: 3974 Likewise. 3975 * testsuite/23_containers/array/tuple_interface/get_neg.cc: 3976 Adjust dg-error line numbers. 3977 * testsuite/std/ranges/access/cbegin.cc: Include <utility>. 3978 * testsuite/std/ranges/access/cend.cc: Likewise. 3979 * testsuite/std/ranges/access/end.cc: Likewise. 3980 * testsuite/std/ranges/single_view.cc: Likewise. 3981 39822021-07-23 Jonathan Wakely <jwakely@redhat.com> 3983 3984 * include/std/future: Include <bits/atomic_base.h> instead of 3985 <atomic>. 3986 39872021-07-23 Jonathan Wakely <jwakely@redhat.com> 3988 3989 * include/bits/stl_relops.h: Update documentation comments. 3990 39912021-07-22 Jonathan Wakely <jwakely@redhat.com> 3992 3993 PR libstdc++/101583 3994 * include/bits/hashtable.h (_Hashtable): Replace mixin with 3995 _Enable_default_ctor. Construct it explicitly in all 3996 non-forwarding, non-defaulted constructors. 3997 * testsuite/23_containers/unordered_map/cons/default.cc: Check 3998 non-default constructors can be used. 3999 * testsuite/23_containers/unordered_set/cons/default.cc: 4000 Likewise. 4001 40022021-07-22 David Edelsohn <dje.gcc@gmail.com> 4003 4004 * config/os/aix/os_defines.h (__LIBC_NO_CPP_MATH_OVERLOADS__): Define. 4005 40062021-07-22 Jonathan Wakely <jwakely@redhat.com> 4007 4008 PR libstdc++/94295 4009 * include/ext/new_allocator.h (_GLIBCXX_OPERATOR_NEW) 4010 (_GLIBCXX_OPERATOR_DELETE, _GLIBCXX_SIZED_DEALLOC): Define. 4011 (allocator::allocate, allocator::deallocate): Use new macros. 4012 40132021-07-22 Jonathan Wakely <jwakely@redhat.com> 4014 4015 PR libstdc++/101571 4016 * include/bits/ranges_uninitialized.h (_DestroyGuard): Change 4017 constructor parameter to reference and use addressof. 4018 * testsuite/util/testsuite_iterators.h: Define deleted operator& 4019 overloads for test iterators. 4020 40212021-07-22 Jonathan Wakely <jwakely@redhat.com> 4022 4023 * include/bits/std_function.h (_Function_base): Add 4024 default member initializers and define constructor as defaulted. 4025 (function::_M_invoker): Add default member initializer. 4026 40272021-07-22 Jonathan Wakely <jwakely@redhat.com> 4028 4029 PR libstdc++/100682 4030 * doc/xml/manual/debug_mode.xml: Update documentation about 4031 debug capability of std::array. 4032 * doc/html/*: Regenerate. 4033 * include/debug/array: New file. 4034 40352021-07-21 Jonathan Wakely <jwakely@redhat.com> 4036 4037 PR libstdc++/101542 4038 * include/ext/rope (sequence_buffer): Add move constructor and 4039 move assignment operator. 4040 * testsuite/ext/rope/101542.cc: New test. 4041 40422021-07-20 Jonathan Wakely <jwakely@redhat.com> 4043 4044 PR libstdc++/101510 4045 * src/c++17/fs_ops.cc (fs::create_directories): Use status 4046 instead of symlink_status. 4047 * src/filesystem/ops.cc (fs::create_directories): Likewise. 4048 * testsuite/27_io/filesystem/operations/create_directories.cc: 4049 Check symlink to existing directory. 4050 * testsuite/27_io/filesystem/operations/create_directory.cc: Do 4051 not test with symlinks on Windows. 4052 * testsuite/experimental/filesystem/operations/create_directories.cc: 4053 Check symlink to existing directory. 4054 * testsuite/experimental/filesystem/operations/create_directory.cc: 4055 Do not test with symlinks on Windows. 4056 40572021-07-20 Jonathan Wakely <jwakely@redhat.com> 4058 4059 PR libstdc++/100863 4060 * include/bits/hashtable.h (_Hashtable): Conditionally delete 4061 default constructor by deriving from _Enable_special_members. 4062 * testsuite/23_containers/unordered_map/cons/default.cc: New test. 4063 * testsuite/23_containers/unordered_set/cons/default.cc: New test. 4064 40652021-07-20 Jonathan Wakely <jwakely@redhat.com> 4066 4067 PR libstdc++/101510 4068 * src/c++17/fs_ops.cc (create_dir): Adjust whitespace. 4069 * testsuite/27_io/filesystem/operations/create_directory.cc: 4070 Test creating directory with name of existing symlink to 4071 directory. 4072 * testsuite/experimental/filesystem/operations/create_directory.cc: 4073 Likewise. 4074 40752021-07-16 Jonathan Wakely <jwakely@redhat.com> 4076 4077 * include/std/tuple (get<I>): Add deleted overload for bad 4078 index. 4079 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust 4080 expected errors. 4081 40822021-07-16 Jonathan Wakely <jwakely@redhat.com> 4083 4084 * include/bits/max_size_type.h (numeric_limits<__max_size_type>): 4085 Use __int_traits unconditionally. 4086 40872021-07-16 Jonathan Wakely <jwakely@redhat.com> 4088 4089 * include/bits/random.h (_Shift::__value): Use constexpr. 4090 (_Select_uint_least_t::type): Use using-declaration. 4091 (_Mod): Likewise. 4092 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error 4093 line number. 4094 40952021-07-16 Jonathan Wakely <jwakely@redhat.com> 4096 4097 * include/bits/cpp_type_traits.h (__INT_N): Use __extension__ 4098 instead of diagnostic pragmas. 4099 * include/bits/functional_hash.h: Likewise. 4100 * include/bits/iterator_concepts.h (__is_signed_int128) 4101 (__is_unsigned_int128): Likewise. 4102 * include/bits/max_size_type.h (__max_size_type): Likewise. 4103 (numeric_limits<__max_size_type>): Likewise. 4104 * include/bits/std_abs.h (abs): Likewise. 4105 * include/bits/stl_algobase.h (__size_to_integer): Likewise. 4106 * include/bits/uniform_int_dist.h (uniform_int_distribution): 4107 Likewise. 4108 * include/ext/numeric_traits.h (_GLIBCXX_INT_N_TRAITS): 4109 Likewise. 4110 * include/std/type_traits (__is_integral_helper<INT_N>) 4111 (__is_signed_integer, __is_unsigned_integer) 4112 (__make_unsigned<INT_N>, __make_signed<INT_N>): Likewise. 4113 * include/std/limits (__INT_N): Add __extension__ keyword. 4114 * include/bits/random.h (_Select_uint_least_t) 4115 (random_device): Likewise. 4116 41172021-07-16 Patrick Palka <ppalka@redhat.com> 4118 4119 PR libstdc++/101231 4120 * include/std/ranges (_CachedPosition::_M_get): For non-forward 4121 ranges, just call __builtin_unreachable. 4122 * testsuite/std/ranges/istream_view.cc (test05): New test. 4123 41242021-07-16 Patrick Palka <ppalka@redhat.com> 4125 4126 PR libstdc++/101214 4127 * include/std/ranges (split_view::split_view): Use std::move. 4128 (split_view::_Iterator::_Iterator): Remove redundant 4129 default_initializable constraint. 4130 (split_view::_Sentinel::_Sentinel): Declare. 4131 * testsuite/std/ranges/adaptors/split.cc (test02): New test. 4132 41332021-07-16 Marek Polacek <polacek@redhat.com> 4134 4135 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Add 4136 dg-error. 4137 41382021-07-16 Jonathan Wakely <jwakely@redhat.com> 4139 4140 * include/bits/unique_ptr.h: Adjust doxygen markup. 4141 41422021-07-16 Jonathan Wakely <jwakely@redhat.com> 4143 4144 PR libstdc++/101307 4145 * include/std/type_traits: Adjust doxygen markup. 4146 41472021-07-16 Jonathan Wakely <jwakely@redhat.com> 4148 4149 * include/bits/cpp_type_traits.h: Add diagnostic pragmas around 4150 uses of non-standard integer types. 4151 * include/bits/functional_hash.h: Likewise. 4152 * include/bits/iterator_concepts.h: Likewise. 4153 * include/bits/max_size_type.h: Likewise. 4154 * include/bits/std_abs.h: Likewise. 4155 * include/bits/stl_algobase.h: Likewise. 4156 * include/bits/uniform_int_dist.h: Likewise. 4157 * include/ext/numeric_traits.h: Likewise. 4158 * include/std/type_traits: Likewise. 4159 41602021-07-15 Jonathan Wakely <jwakely@redhat.com> 4161 4162 PR libstdc++/101427 4163 * include/std/tuple (tuple_element): Improve static_assert text. 4164 (__get_helper): Add deleted overload. 4165 (get<i>(tuple<T...>&&), get<i>(const tuple<T...>&&)): Use 4166 __get_helper directly. 4167 (__get_helper2): Remove. 4168 (__find_uniq_type_in_pack): New constexpr helper function. 4169 (get<T>): Use __find_uniq_type_in_pack and __get_helper instead 4170 of __get_helper2. 4171 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust 4172 expected errors. 4173 * testsuite/20_util/tuple/element_access/101427.cc: New test. 4174 41752021-07-15 Jonathan Wakely <jwakely@redhat.com> 4176 4177 PR libstdc++/101429 4178 * include/bits/c++config (__replacement_assert): Add noexcept. 4179 [!_GLIBCXX_VERBOSE] (__glibcxx_assert_impl): Use __builtin_abort 4180 instead of __replacement_assert. 4181 41822021-07-14 Jonathan Wakely <jwakely@redhat.com> 4183 4184 * include/std/string_view (basic_string_view(It, End)): Add 4185 noexcept-specifier. 4186 * testsuite/21_strings/basic_string_view/cons/char/range.cc: 4187 Check noexcept-specifier. Also check construction without CTAD. 4188 41892021-07-13 Jonathan Wakely <jwakely@redhat.com> 4190 4191 PR c++/101361 4192 * include/std/string_view (ends_with): Use traits_type::compare 4193 directly. 4194 41952021-07-13 Jonathan Wakely <jwakely@redhat.com> 4196 4197 * include/std/string_view: Only include <bits/ranges_base.h> 4198 once, and only for C++20 and later. 4199 42002021-07-12 Jonathan Wakely <jwakely@redhat.com> 4201 4202 PR libstdc++/101411 4203 * include/std/span (as_writable_bytes): Add requires-clause. 4204 * testsuite/23_containers/span/101411.cc: New test. 4205 42062021-07-09 Matheus Castanho <msc@linux.ibm.com> 4207 4208 * include/std/mutex (__lock_impl): Check 4209 _GLIBCXX_HAS_GTHREADS before using __gthread_yield. 4210 42112021-07-02 Jonathan Wakely <jwakely@redhat.com> 4212 4213 PR libstdc++/101271 4214 * include/bits/unique_ptr.h (unique_ptr<T[],D>::operator[]): 4215 Remove noexcept-specifier. 4216 (unique_ptr<T[],D>::_S_nothrow_deref): Remove. 4217 * testsuite/20_util/unique_ptr/lwg2762.cc: Remove checks for 4218 operator[]. 4219 42202021-07-01 Jonathan Wakely <jwakely@redhat.com> 4221 4222 * doc/doxygen/doxygroups.cc: Fix docs for std::literals. 4223 * doc/doxygen/user.cfg.in: Exclude the Networking TS header. 4224 Add some more predefined macros. 4225 * include/bits/fs_fwd.h: Move @addtogroup commands inside 4226 namespaces. Add better documentation. 4227 * include/bits/fs_path.h: Likewise. 4228 * include/experimental/bits/fs_fwd.h: Likewise. 4229 * include/experimental/bits/fs_path.h: Likewise. 4230 * include/ext/throw_allocator.h: Fix typo and improve docs. 4231 * include/std/chrono: Move @addtogroup commands. 4232 * include/std/system_error: Move @addtogroup commands. 4233 * libsupc++/exception: Improve documentation. 4234 * libsupc++/exception.h: Add @since documentation. 4235 42362021-06-30 Jonathan Wakely <jwakely@redhat.com> 4237 4238 PR libstdc++/101258 4239 * doc/doxygen/user.cfg.in (INPUT): Add <experimental/simd>. 4240 (COLS_IN_ALPHA_INDEX): Remove obsolete tag. 4241 (PREDEFINED): Add/fix some more macros that need to be expanded. 4242 * include/bits/random.h: Stop Doxygen from documenting internal 4243 implementation details. 4244 * include/bits/random.tcc: Likewise. 4245 * include/bits/this_thread_sleep.h: Fix @file name. 4246 * include/experimental/bits/simd.h: Add to Doxygen group. Do not 4247 document internal implementation details. 4248 * include/experimental/bits/simd_detail.h: Do not document 4249 internal implementation details. 4250 * include/experimental/simd: Define Doxygen groups. 4251 * include/experimental/type_traits: Improve documentation for 4252 the header file. Define groups. Use @since commands. 4253 * include/std/scoped_allocator (scoped_allocator_adaptor): Move 4254 declaration before undocumented region. 4255 * include/std/type_traits (true_type, false_type): Use using 4256 declaration instead of typedef. 4257 (is_invocable_v, is_nothrow_invocable_v, is_invocable_r_v) 4258 (is_nothrow_invocable_r_v): Move definitions next to other C++17 4259 variable templates. 4260 Do not document internal implementation details. Move misplaced 4261 group-end command. Define group for variable templates. 4262 * include/std/variant: Do not document internal implementation 4263 details. 4264 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error 4265 line number. 4266 42672021-06-30 Jonathan Wakely <jwakely@redhat.com> 4268 4269 * include/experimental/simd: Do not define anything pre-C++17. 4270 42712021-06-30 Jonathan Wakely <jwakely@redhat.com> 4272 4273 * include/bits/random.tcc [__cpp_inline_variables]: Remove 4274 redundant definitions of static constexpr member variables. 4275 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error 4276 line number. 4277 42782021-06-28 Jonathan Wakely <jwakely@redhat.com> 4279 4280 * include/bits/streambuf.tcc (__copy_streambufs_eof): Remove 4281 explicit instantiation declarations. 4282 * src/c++11/streambuf-inst.cc (__copy_streambufs_eof): Remove 4283 explicit instantiation definitions. 4284 42852021-06-28 Jonathan Wakely <jwakely@redhat.com> 4286 4287 PR libstdc++/97088 4288 * testsuite/17_intro/names.cc: Fix #if condition for names used 4289 by newlib headers. 4290 42912021-06-28 Jonathan Wakely <jwakely@redhat.com> 4292 4293 PR libstdc++/101236 4294 * include/bits/unique_ptr.h (unique_ptr<T[], D>::operator[]): 4295 Fail gracefully if element_type is incomplete. 4296 * testsuite/20_util/unique_ptr/cons/incomplete.cc: Clarify that 4297 the standard doesn't require this test to work for array types. 4298 * testsuite/20_util/unique_ptr/lwg2762.cc: Check that incomplete 4299 types can be used with array specialization. 4300 * testsuite/20_util/unique_ptr/101236.cc: New test. 4301 43022021-06-28 Jonathan Wakely <jwakely@redhat.com> 4303 4304 * doc/xml/manual/intro.xml: Document LWG 415 change. 4305 * doc/html/manual/bugs.html: Regenerate. 4306 * include/bits/istream.tcc (ws): Create sentry and catch 4307 exceptions. 4308 * testsuite/27_io/basic_istream/ws/char/lwg415.cc: New test. 4309 * testsuite/27_io/basic_istream/ws/wchar_t/lwg415.cc: New test. 4310 43112021-06-25 Jonathan Wakely <jwakely@redhat.com> 4312 4313 * include/bits/ostream.tcc (basic_ostream::write): Call sputn 4314 directly instead of using _M_write. Do setstate(__err) all 4315 outside the try-catch block. 4316 * include/std/ostream (basic_ostream::_M_write): Declare 4317 private. Use __ostream_insert. Do not define for the versioned 4318 namespace. 4319 43202021-06-25 Jonathan Wakely <jwakely@redhat.com> 4321 4322 * doc/xml/manual/intro.xml: Document LWG 581 change. 4323 * doc/html/manual/bugs.html: Regenerate. 4324 * include/bits/basic_ios.tcc: Whitespace. 4325 * include/bits/ostream.tcc (basic_ostream::flush()): Construct 4326 sentry. 4327 * testsuite/27_io/basic_ostream/flush/char/2.cc: Check 4328 additional cases. 4329 * testsuite/27_io/basic_ostream/flush/char/exceptions_badbit_throw.cc: 4330 Likewise. 4331 * testsuite/27_io/basic_ostream/flush/wchar_t/2.cc: Likewise. 4332 * testsuite/27_io/basic_ostream/flush/wchar_t/exceptions_badbit_throw.cc: 4333 Likewise. 4334 43352021-06-25 Jonathan Wakely <jwakely@redhat.com> 4336 4337 * include/bits/ostream.tcc (sentry): Only set failbit if badbit 4338 is set, not if eofbit is set. 4339 (tellp, seekp, seekp): Create sentry object. Do not set badbit 4340 on exceptions. 4341 * testsuite/27_io/basic_ostream/seekp/char/exceptions_badbit_throw.cc: 4342 Adjust expected behaviour. 4343 * testsuite/27_io/basic_ostream/seekp/wchar_t/exceptions_badbit_throw.cc: 4344 Likewise. 4345 * testsuite/27_io/basic_ostream/tellp/char/exceptions_badbit_throw.cc: 4346 Likewise. 4347 * testsuite/27_io/basic_ostream/tellp/wchar_t/exceptions_badbit_throw.cc: 4348 Likewise. 4349 * testsuite/27_io/basic_ostream/seekp/char/n3168.cc: New test. 4350 * testsuite/27_io/basic_ostream/seekp/wchar_t/n3168.cc: New test. 4351 * testsuite/27_io/basic_ostream/tellp/char/n3168.cc: New test. 4352 * testsuite/27_io/basic_ostream/tellp/wchar_t/n3168.cc: New test. 4353 43542021-06-25 Jonathan Wakely <jwakely@redhat.com> 4355 4356 * include/std/syncstream (basic_syncbuf::swap()): Remove 4357 noexcept, as per LWG 3498. 4358 43592021-06-25 Jonathan Wakely <jwakely@redhat.com> 4360 4361 PR libstdc++/97088 4362 * testsuite/17_intro/names.cc: Undef more names for newlib and 4363 also for arm-none-linux-gnueabi. 4364 * testsuite/experimental/names.cc: Disable PCH. 4365 43662021-06-25 Matthias Kretz <m.kretz@gsi.de> 4367 4368 * include/experimental/bits/simd.h (__bit_cast): Implement via 4369 __builtin_bit_cast #if available. 4370 (__proposed::simd_bit_cast): Add overloads for simd and 4371 simd_mask, which use __builtin_bit_cast (or __bit_cast #if not 4372 available), which return an object of the requested type with 4373 the same bits as the argument. 4374 * include/experimental/bits/simd_math.h: Use simd_bit_cast 4375 instead of __bit_cast to allow casts to fixed_size_simd. 4376 (copysign): Remove branch that was only required if __bit_cast 4377 cannot be constexpr. 4378 * testsuite/experimental/simd/tests/bits/test_values.h: Switch 4379 from __bit_cast to __proposed::simd_bit_cast since the former 4380 will not cast fixed_size objects anymore. 4381 43822021-06-24 Matthias Kretz <m.kretz@gsi.de> 4383 4384 * include/experimental/bits/simd_math.h 4385 (_GLIBCXX_SIMD_MATH_CALL2_): Rename arg2_ to __arg2. 4386 (_GLIBCXX_SIMD_MATH_CALL3_): Rename arg2_ to __arg2 and arg3_ to 4387 __arg3. 4388 43892021-06-24 Matthias Kretz <m.kretz@gsi.de> 4390 4391 * include/experimental/bits/simd.h (__execute_on_index_sequence) 4392 (__execute_on_index_sequence_with_return) 4393 (__call_with_n_evaluations, __call_with_subscripts): Add flatten 4394 attribute. 4395 43962021-06-24 Matthias Kretz <m.kretz@gsi.de> 4397 4398 * include/experimental/bits/simd_x86.h (_S_trunc, _S_floor) 4399 (_S_ceil): Set bit 8 (_MM_FROUND_NO_EXC) on AVX and SSE4.1 4400 roundp[sd] calls. 4401 44022021-06-24 Matthias Kretz <m.kretz@gsi.de> 4403 4404 * include/experimental/bits/simd_x86.h (_S_ldexp): The AVX512F 4405 implementation doesn't require a _VecBltnBtmsk ABI tag, it 4406 requires either a 64-Byte input (in which case AVX512F must be 4407 available) or AVX512VL. 4408 44092021-06-24 Matthias Kretz <m.kretz@gsi.de> 4410 4411 * include/experimental/bits/simd_math.h: Undefine internal 4412 macros after use. 4413 (frexp): Move #if to a more sensible position and reformat 4414 preceding code. 4415 (logb): Call _SimdImpl::_S_logb for fixed_size instead of 4416 duplicating the code here. 4417 (modf): Simplify condition. 4418 44192021-06-24 Matthias Kretz <m.kretz@gsi.de> 4420 4421 * include/experimental/bits/simd_math.h (fabs): Remove 4422 fabs(simd<integral>) overload. 4423 44242021-06-24 Matthias Kretz <m.kretz@gsi.de> 4425 4426 * include/experimental/bits/simd_converter.h 4427 (_SimdConverter::operator()): Pass _SimdTuple by const-ref. 4428 * include/experimental/bits/simd_fixed_size.h 4429 (_GLIBCXX_SIMD_FIXED_OP): Pass binary operator _SimdTuple 4430 arguments by const-ref. 4431 (_S_masked_unary): Pass _SimdTuple by const-ref. 4432 44332021-06-24 Matthias Kretz <m.kretz@gsi.de> 4434 4435 * include/experimental/bits/simd_fixed_size.h 4436 (_AbisInSimdTuple): Removed. 4437 44382021-06-24 Matthias Kretz <m.kretz@gsi.de> 4439 4440 * include/experimental/bits/simd.h: Add missing operator~ 4441 overload for simd<floating-point> to __float_bitwise_operators. 4442 * include/experimental/bits/simd_builtin.h 4443 (_SimdImplBuiltin::_S_complement): Bitcast to int (and back) to 4444 implement complement for floating-point vectors. 4445 * include/experimental/bits/simd_fixed_size.h 4446 (_SimdImplFixedSize::_S_copysign): New function, forwarding to 4447 copysign implementation of _SimdTuple members. 4448 * include/experimental/bits/simd_math.h (copysign): Call 4449 _SimdImpl::_S_copysign for fixed_size arguments. Simplify 4450 generic copysign implementation using the new ~ operator. 4451 44522021-06-24 Jonathan Wakely <jwakely@redhat.com> 4453 4454 * testsuite/experimental/simd/README.md: Fix typos. 4455 44562021-06-24 Jonathan Wakely <jwakely@redhat.com> 4457 4458 * include/bits/shared_ptr_base.h (__shared_ptr_access::operator[]): 4459 Add noexcept. 4460 * include/bits/unique_ptr.h (unique_ptr::operator*): Add 4461 conditional noexcept as per LWG 2762. 4462 * testsuite/20_util/shared_ptr/observers/array.cc: Check that 4463 dereferencing cannot throw. 4464 * testsuite/20_util/shared_ptr/observers/get.cc: Likewise. 4465 * testsuite/20_util/optional/observers/lwg2762.cc: New test. 4466 * testsuite/20_util/unique_ptr/lwg2762.cc: New test. 4467 44682021-06-23 Patrick Palka <ppalka@redhat.com> 4469 4470 PR c++/101174 4471 * testsuite/23_containers/multiset/cons/deduction.cc: 4472 Uncomment CTAD example that was rejected by this bug. 4473 * testsuite/23_containers/set/cons/deduction.cc: Likewise. 4474 44752021-06-23 Jonathan Wakely <jwakely@redhat.com> 4476 4477 * include/std/chrono (chrono::year::is_leap()): Fix incorrect 4478 logic in comment. 4479 44802021-06-23 Matthias Kretz <m.kretz@gsi.de> 4481 4482 * testsuite/experimental/simd/README.md: New file. 4483 44842021-06-23 Matthias Kretz <m.kretz@gsi.de> 4485 4486 * testsuite/experimental/simd/driver.sh: Rewrite output 4487 verbosity logic. Add -p/--percentage option. Allow -v/--verbose 4488 to be used twice. Add -x and -o short options. Parse long 4489 options with = instead of separating space generically. Parce 4490 contracted short options. Make unrecognized options an error. 4491 If same-line output is active, trap on EXIT to increment the 4492 progress (only with --percentage), erase the line and print the 4493 current status. 4494 * testsuite/experimental/simd/generate_makefile.sh: Initialize 4495 helper files for progress account keeping. Update help target 4496 for changes to DRIVEROPTS. 4497 44982021-06-23 Matthias Kretz <m.kretz@gsi.de> 4499 4500 * testsuite/Makefile.am (check-simd): Remove -fno-tree-vrp flag 4501 and associated warning. 4502 * testsuite/Makefile.in: Regenerate. 4503 45042021-06-23 Cassio Neri <cassio.neri@gmail.com> 4505 Jonathan Wakely <jwakely@redhat.com> 4506 Ulrich Drepper <drepper@redhat.com> 4507 4508 * include/std/chrono (chrono::year::is_leap()): Optimize. 4509 45102021-06-23 Patrick Palka <ppalka@redhat.com> 4511 4512 PR c++/86439 4513 * testsuite/23_containers/map/cons/deduction.cc: Replace ambiguous 4514 CTAD examples. 4515 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise. 4516 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise. 4517 Mention one of the replaced examples is broken due to PR101174. 4518 * testsuite/23_containers/set/cons/deduction.cc: Likewise. 4519 * testsuite/23_containers/unordered_map/cons/deduction.cc: Replace 4520 ambiguous CTAD examples. 4521 * testsuite/23_containers/unordered_multimap/cons/deduction.cc: 4522 Likewise. 4523 * testsuite/23_containers/unordered_multiset/cons/deduction.cc: 4524 Likewise. 4525 * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise. 4526 45272021-06-23 Jonathan Wakely <jwakely@redhat.com> 4528 4529 * include/std/mutex (__detail::__try_lock_impl): Rename 4530 parameter to avoid clashing with newlib's __lockable macro. 4531 (try_lock): Add 'inline' specifier. 4532 * testsuite/17_intro/names.cc: Add check for __lockable. 4533 * testsuite/30_threads/try_lock/5.cc: Add options for pthreads. 4534 45352021-06-22 Jonathan Wakely <jwakely@redhat.com> 4536 Matthias Kretz <m.kretz@gsi.de> 4537 4538 * include/std/mutex (lock): Replace recursion with iteration 4539 when lockables all have the same type. 4540 (__detail::__try_lock_impl): Likewise. Pass lockables as 4541 parameters, instead of a tuple. Always lock the first one, and 4542 recurse for the rest. 4543 (__detail::__lock_impl): Adjust call to __try_lock_impl. 4544 (__detail::__try_to_lock): Remove. 4545 * testsuite/30_threads/lock/3.cc: Check that mutexes are locked. 4546 * testsuite/30_threads/lock/4.cc: Also test non-heterogeneous 4547 arguments. 4548 * testsuite/30_threads/unique_lock/cons/60497.cc: Also check 4549 std::try_lock. 4550 * testsuite/30_threads/try_lock/5.cc: New test. 4551 45522021-06-22 Jonathan Wakely <jwakely@redhat.com> 4553 4554 * include/std/memory (declare_reachable, undeclare_reachable) 4555 (declare_no_pointers, undeclare_no_pointers, get_pointer_safety) 4556 (pointer_safety): Only define for C++11 to C++20 inclusive. 4557 * testsuite/20_util/pointer_safety/1.cc: Do not run for C++23. 4558 45592021-06-22 Jonathan Wakely <jwakely@redhat.com> 4560 4561 * include/bits/random.h (seed_seq): Constrain initializer-list 4562 constructor. 4563 * include/bits/random.tcc (seed_seq): Add template parameter. 4564 * testsuite/26_numerics/random/seed_seq/cons/default.cc: Check 4565 for noexcept. 4566 * testsuite/26_numerics/random/seed_seq/cons/initlist.cc: Check 4567 constraints. 4568 45692021-06-22 Thomas Rodgers <rodgert@appliantology.com> 4570 4571 PR libstdc++/100806 4572 * include/bits/semaphore_base.h (__atomic_semaphore::_M_release): 4573 Force _M_release() to wake all waiting threads. 4574 * testsuite/30_threads/semaphore/100806.cc: New test. 4575 45762021-06-21 Jonathan Wakely <jwakely@redhat.com> 4577 4578 * include/std/mutex (__try_to_lock): Move to __detail namespace. 4579 (struct __try_lock_impl): Replace with ... 4580 (__detail::__try_lock_impl<Idx>(tuple<Lockables...>&)): New 4581 function templates to implement std::try_lock. 4582 (try_lock): Use new __try_lock_impl. 4583 (__detail::__lock_impl(int, int&, L0&, L1&...)): New function 4584 template to implement std::lock. 4585 (lock): Use __lock_impl. 4586 45872021-06-21 Patrick Palka <ppalka@redhat.com> 4588 4589 * include/bits/ranges_cmp.h (__cpp_lib_ranges): Adjust value. 4590 45912021-06-20 Patrick Palka <ppalka@redhat.com> 4592 4593 * include/std/ranges (__non_propagating_cache::operator bool): 4594 Define for split_view::begin(). 4595 (split_view): Define as per P2210. 4596 (views::__detail::__can_split_view): Define. 4597 (views::_Split, views::split): Define. 4598 * testsuite/std/ranges/adaptors/100577.cc (test01, test02): 4599 Test views::split. 4600 * testsuite/std/ranges/adaptors/split.cc: New test. 4601 * testsuite/std/ranges/p2325.cc (test08a): New test. 4602 * testsuite/std/ranges/p2367.cc (test01): Test views::split. 4603 46042021-06-20 Patrick Palka <ppalka@redhat.com> 4605 4606 * include/std/ranges: Rename views::split to views::lazy_split, 4607 split_view to lazy_split_view, etc. throughout. 4608 * testsuite/std/ranges/*: Likewise. 4609 * testsuite/std/ranges/adaptors/lazy_split.cc: New file. 4610 * testsuite/std/ranges/adaptors/lazy_split_neg.cc: New file. 4611 46122021-06-20 Patrick Palka <ppalka@redhat.com> 4613 4614 * include/std/ranges (split_view::_OuterIter::__at_end): 4615 Check _M_trailing_empty. 4616 (split_view::_OuterIter::_M_trailing_empty): Define this 4617 data member. 4618 (split_view::_OuterIter::operator++): Set _M_trailing_empty 4619 appropriately. 4620 (split_view::_OuterIter::operator==): Compare 4621 _M_trailing_empty. 4622 * testsuite/std/ranges/adaptors/100479.cc (test03): Expect two 4623 split parts instead of one. 4624 * testsuite/std/ranges/adaptors/split.cc (test11): New test. 4625 46262021-06-20 Patrick Palka <ppalka@redhat.com> 4627 4628 * include/std/ranges (split_view::_InnerIter::base): Define as 4629 per P2210. 4630 46312021-06-19 Patrick Palka <ppalka@redhat.com> 4632 4633 * include/std/ranges (transform_view::_Iterator::_S_iter_concept): 4634 Consider _Base instead of _Vp as per LWG 3555. 4635 (elements_view::_Iterator::_S_iter_concept): Likewise. 4636 46372021-06-19 Patrick Palka <ppalka@redhat.com> 4638 4639 * include/std/ranges (split_view::_OuterIter::value_type::begin): 4640 Remove the non-const overload, and remove the copyable constraint 4641 on the const overload as per LWG 3553. 4642 46432021-06-19 Patrick Palka <ppalka@redhat.com> 4644 4645 * include/bits/stl_iterator.h 4646 (__detail::__common_iter_use_postfix_proxy): Add 4647 move_constructible constraint as per LWG 3546. 4648 (common_iterator::__postfix_proxy): Adjust initializer of 4649 _M_keep as per LWG 3546. 4650 46512021-06-18 Patrick Palka <ppalka@redhat.com> 4652 4653 PR libstdc++/100387 4654 * include/bits/ranges_algo.h (__minmax_fn::operator()): Rewrite 4655 to limit comparison complexity to 3*N/2. 4656 (__minmax_element_fn::operator()): Likewise. 4657 (shift_right): Avoid premature std::move of __result. 4658 * testsuite/25_algorithms/minmax/constrained.cc (test04, test05): 4659 New tests. 4660 * testsuite/25_algorithms/minmax_element/constrained.cc (test02): 4661 Likewise. 4662 46632021-06-18 Patrick Palka <ppalka@redhat.com> 4664 4665 * include/std/concepts (convertible_to): Just use declval as per 4666 LWG 3557. 4667 46682021-06-18 Jonathan Wakely <jwakely@redhat.com> 4669 4670 PR libstdc++/95833 4671 * include/std/numeric (reduce(Iter, Iter, T, BinaryOp)): Replace 4672 incorrect static_assert with ones matching the 'Mandates' 4673 conditions in the standard. 4674 * testsuite/26_numerics/reduce/95833.cc: New test. 4675 46762021-06-18 Jonathan Wakely <jwakely@redhat.com> 4677 4678 * testsuite/21_strings/basic_string/cons/char/1.cc: Use 4679 diagnostic pragma to suppress -Wstringop-overread error. 4680 46812021-06-18 Patrick Palka <ppalka@redhat.com> 4682 4683 * include/bits/ranges_algo.h (__find_fn, find, __find_if_fn) 4684 (find_if, __find_if_not_fn, find_if_not, _in_in_result) 4685 (__mismatch_fn, mismatch, __search_fn, search): Move to ... 4686 * include/bits/ranges_util.h: ... here. 4687 * include/std/ranges (__detail::find, __detail::find_if) 4688 (__detail::find_if_not, __detail::mismatch): Remove. 4689 (filter_view): Use ranges::find_if instead. 4690 (drop_while_view): Use ranges::find_if_not instead. 4691 (split_view): Use ranges::find and ranges::mismatch instead. 4692 46932021-06-18 Patrick Palka <ppalka@redhat.com> 4694 4695 * include/bits/iterator_concepts.h (weakly_incrementable): Remove 4696 default_initializable requirement. 4697 * include/bits/ranges_base.h (ranges::view): Likewise. 4698 * include/bits/ranges_util.h (subrange): Constrain the default 4699 ctor. 4700 * include/bits/stl_iterator.h (back_insert_iterator): Remove the 4701 default ctor. 4702 (front_insert_iterator): Likewise. 4703 (insert_iterator): Likewise. Remove NSDMIs. 4704 (common_iterator): Constrain the default ctor. 4705 (counted_iterator): Likewise. 4706 * include/bits/stream_iterator.h (ostream_iterator): Remove the 4707 default ctor. 4708 * include/std/ranges (__detail::__box::operator=): Handle 4709 self-assignment in the primary template. 4710 (__detail::__box): In the partial specialization: adjust 4711 constraints as per P2325. Add specialized operator= for the 4712 case when the wrapped type is not copyable. Constrain the 4713 default ctor. Avoid list-initialization. 4714 (single_view): Constraint the default ctor. 4715 (iota_view): Relax semiregular constraint to copyable. 4716 Constrain the default ctor. 4717 (iota_view::_Iterator): Constraint the default ctor. 4718 (basic_istream_view): Remove the default ctor. Remove NSDMIs. 4719 Remove redundant checks for empty _M_stream. 4720 (basic_istream_view::_Iterator): Likewise. 4721 (ref_view): Remove the default ctor. Remove NSDMIs. 4722 (ref_view::_Iterator): Constrain the default ctor. 4723 (__detail::__non_propagating_cache::operator=): Define overload 4724 for assigning from a value of the underlying type. 4725 (filter_view): Likewise. 4726 (filter_view::_Iterator): Likewise. 4727 (transform_view): Likewise. 4728 (transform_view::_Iterator): Likewise. 4729 (take_view): Likewise. 4730 (take_view::_Iterator): Likewise. 4731 (take_while_view): Likewise. 4732 (take_while_view::_Iterator): Likewise. 4733 (drop_while_view): Likewise. 4734 (drop_while_view::_Iterator): Likewise. 4735 (join_view): Likewise. 4736 (split_view::_OuterIter::__current): Adjust after changing the 4737 type of _M_current. 4738 (split_view::_M_current): Wrap it in a __non_propagating_cache. 4739 (split_view::split_view): Constrain the default ctor. 4740 (common_view): Constrain the default ctor. 4741 (reverse_view): Likewise. 4742 (elements_view): Likewise. 4743 * include/std/span (enable_view<span<_ElementType, _Extent>>): 4744 Define this partial specialization to true unconditionally. 4745 * include/std/version (__cpp_lib_ranges): Adjust value. 4746 * testsuite/24_iterators/back_insert_iterator/constexpr.cc: 4747 Don't attempt to default construct a back_insert_iterator. 4748 * testsuite/24_iterators/front_insert_iterator/constexpr.cc: 4749 Don't attempt to default construct a front_insert_iterator. 4750 * testsuite/24_iterators/insert_iterator/constexpr.cc: 4751 Don't attempt to default construct an insert_iterator. 4752 * testsuite/24_iterators/ostream_iterator/requirements/constexpr.cc: 4753 Remove this test for default constructibility of ostream_iterator. 4754 * testsuite/std/ranges/97600.cc: Don't attempt to default 4755 construct a basic_istream_view. 4756 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc: 4757 Rename to ... 4758 * testsuite/std/ranges/adaptors/detail/copyable_box.cc: ... this. 4759 (test02): Adjust now that __box is copyable-box not 4760 semiregular-box. 4761 (test03): New test. 4762 * testsuite/std/ranges/p2325.cc: New test. 4763 * testsuite/std/ranges/single_view.cc (test06): New test. 4764 * testsuite/std/ranges/view.cc: Adjust now that view doesn't 4765 require default_initializable. 4766 47672021-06-17 Jonathan Wakely <jwakely@redhat.com> 4768 4769 PR libstdc++/91488 4770 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Only 4771 define when is_constant_evaluated is available. 4772 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): 4773 Likewise. 4774 (__constant_string_p, __constant_array_p): Remove. 4775 (char_traits): Use is_constant_evaluated directly. 4776 * include/std/version (__cpp_lib_constexpr_char_traits) 4777 (__cpp_lib_constexpr_string): Only define when 4778 is_constant_evaluated is available. 4779 47802021-06-17 Patrick Palka <ppalka@redhat.com> 4781 4782 PR libstdc++/100940 4783 * include/std/ranges (__adaptor::_Partial): For the "simple" 4784 forwarding partial specializations, also require that 4785 the extra arguments are trivially copyable. 4786 * testsuite/std/ranges/adaptors/100577.cc (test04): New test. 4787 47882021-06-17 Patrick Palka <ppalka@redhat.com> 4789 4790 PR libstdc++/100940 4791 * include/std/ranges (__adaptor::_RangeAdaptor): Document the 4792 template form of _S_has_simple_extra_args. 4793 (__adaptor::__adaptor_has_simple_extra_args): Add _Args template 4794 parameter pack. Try to treat _S_has_simple_extra_args as a 4795 variable template parameterized by _Args. 4796 (__adaptor::_Partial): Pass _Arg/_Args to the constraint 4797 __adaptor_has_simple_extra_args. 4798 (views::_Take::_S_has_simple_extra_args): Templatize according 4799 to the type of the extra argument. 4800 (views::_Drop::_S_has_simple_extra_args): Likewise. 4801 (views::_Split::_S_has_simple_extra_args): Define. 4802 * testsuite/std/ranges/adaptors/100577.cc (test01, test02): 4803 Adjust after changes to _S_has_simple_extra_args mechanism. 4804 (test03): Define. 4805 48062021-06-16 Jonathan Wakely <jwakely@redhat.com> 4807 4808 * include/bits/iterator_concepts.h (__decay_copy): Name type. 4809 48102021-06-16 Jonathan Wakely <jwakely@redhat.com> 4811 4812 * include/bits/ranges_base.h (ranges::begin, ranges::end) 4813 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend) 4814 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize) 4815 (ranges::empty, ranges::data, ranges::cdata): Remove final 4816 keywords and deleted operator& overloads. 4817 * testsuite/24_iterators/customization_points/iter_move.cc: Use 4818 new is_customization_point_object function. 4819 * testsuite/24_iterators/customization_points/iter_swap.cc: 4820 Likewise. 4821 * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc: 4822 Likewise. 4823 * testsuite/std/ranges/access/begin.cc: Likewise. 4824 * testsuite/std/ranges/access/cbegin.cc: Likewise. 4825 * testsuite/std/ranges/access/cdata.cc: Likewise. 4826 * testsuite/std/ranges/access/cend.cc: Likewise. 4827 * testsuite/std/ranges/access/crbegin.cc: Likewise. 4828 * testsuite/std/ranges/access/crend.cc: Likewise. 4829 * testsuite/std/ranges/access/data.cc: Likewise. 4830 * testsuite/std/ranges/access/empty.cc: Likewise. 4831 * testsuite/std/ranges/access/end.cc: Likewise. 4832 * testsuite/std/ranges/access/rbegin.cc: Likewise. 4833 * testsuite/std/ranges/access/rend.cc: Likewise. 4834 * testsuite/std/ranges/access/size.cc: Likewise. 4835 * testsuite/std/ranges/access/ssize.cc: Likewise. 4836 * testsuite/util/testsuite_iterators.h 4837 (is_customization_point_object): New function. 4838 48392021-06-15 Jonathan Wakely <jwakely@redhat.com> 4840 4841 * include/bits/ranges_base.h (ranges::begin, ranges::end) 4842 (ranges::cbegin, ranges::cend, ranges::rbeing, ranges::rend) 4843 (ranges::crbegin, ranges::crend, ranges::size, ranges::ssize) 4844 (ranges::empty, ranges::data, ranges::cdata): Make types final. 4845 Add deleted operator& overloads. 4846 (ranges::advance, ranges::distance, ranges::next, ranges::prev): 4847 Likewise. 4848 * testsuite/std/ranges/headers/ranges/synopsis.cc: Replace 4849 ill-formed & expressions with using-declarations. Add checks for 4850 other function objects. 4851 48522021-06-15 Jonathan Wakely <jwakely@redhat.com> 4853 4854 * include/bits/ranges_util.h (view_interface): Add noexcept to 4855 empty, operator bool, data and size members. 4856 (subrange): Add noexcept to constructors. 4857 * include/std/ranges (single_view, ref_view): Add noexcept to 4858 constructors. 4859 (views::single, views::all): Add noexcept. 4860 * testsuite/std/ranges/adaptors/all.cc: Check noexcept. 4861 * testsuite/std/ranges/single_view.cc: Likewise. 4862 48632021-06-15 Jonathan Wakely <jwakely@redhat.com> 4864 4865 * include/bits/ranges_util.h (subrange): Add __size_type typedef 4866 and use it to simplify declarations. 4867 (subrange(i, s, n)): Remove assertion. 4868 * testsuite/std/ranges/subrange/constexpr.cc: New test. 4869 48702021-06-15 Jonathan Wakely <jwakely@redhat.com> 4871 4872 * include/bits/iterator_concepts.h (__cust_access::__decay_copy): 4873 Replace with function object. 4874 (__cust_access::__member_begin, ___cust_access::_adl_begin): Use 4875 __decay_copy unqualified. 4876 * include/bits/ranges_base.h (__member_end, __adl_end): 4877 Likewise. Use __range_iter_t for type of ranges::begin. 4878 (__member_rend): Use correct value category for rbegin argument. 4879 (__member_data): Use __decay_copy unqualified. 4880 (__begin_data): Use __range_iter_t for type of ranges::begin. 4881 48822021-06-14 Jonathan Wakely <jwakely@redhat.com> 4883 4884 * include/bits/ranges_base.h (ranges::empty): Check whether 4885 conversion to bool can throw. 4886 * testsuite/std/ranges/access/empty.cc: Check for correct 4887 noexcept-specifier. 4888 48892021-06-14 Jonathan Wakely <jwakely@redhat.com> 4890 4891 PR libstdc++/100894 4892 * include/std/type_traits (__common_ref_impl<X&, Y&>): Only 4893 use the type if it's a reference. 4894 * testsuite/20_util/common_reference/100894.cc: New test. 4895 48962021-06-14 Jonathan Wakely <jwakely@redhat.com> 4897 4898 * testsuite/experimental/filesystem/path/native/conv_c++23.cc: 4899 Add dg-require-filesystem-ts directive. 4900 49012021-06-14 Jonathan Wakely <jwakely@redhat.com> 4902 4903 PR libstdc++/101034 4904 * include/std/any (any(in_place_t<T>, initializer_list<U>, A&&...)) 4905 (any::emplace<T>(initializer_list<U>, A&&...)): Fix constraint 4906 to use lvalue. 4907 * testsuite/20_util/any/cons/101034.cc: New test. 4908 49092021-06-14 Jonathan Wakely <jwakely@redhat.com> 4910 4911 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Add 4912 -std=gnu++17 option. 4913 49142021-06-14 Jonathan Wakely <jwakely@redhat.com> 4915 4916 PR libstdc++/101056 4917 * libsupc++/compare (compare_partial_order_fallback): Add 4918 constraint using reversed parameter order, as per LWG 3465. 4919 * testsuite/18_support/comparisons/algorithms/fallback.cc: 4920 Adjust expected result. 4921 49222021-06-14 Jonathan Wakely <jwakely@redhat.com> 4923 4924 * libsupc++/compare (__decayed_same_as): New helper concept. 4925 (strong_order, weak_order, partial_order): Constrain with new 4926 concept instead of using static_assert. 4927 (compare_strong_order_fallback, compare_weak_order_fallback) 4928 (compare_partial_order_fallback): Likewise. Do not deduce return 4929 types. Remove redundant if-constexpr checks. 4930 * testsuite/18_support/comparisons/algorithms/fallback.cc: New test. 4931 49322021-06-14 Jonathan Wakely <jwakely@redhat.com> 4933 4934 PR libstdc++/101055 4935 * include/std/tuple: Use reserved form of attribute name. 4936 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Add 4937 check for no_unique_address. 4938 * testsuite/17_intro/headers/c++2014/all_attributes.cc: 4939 Likewise. 4940 * testsuite/17_intro/headers/c++2017/all_attributes.cc: 4941 Likewise. 4942 49432021-06-11 Jonathan Wakely <jwakely@redhat.com> 4944 4945 * include/bits/fs_path.h (operator==, operator<=>): Use new 4946 _S_compare function. 4947 (path::_S_compare): New function to call path::compare in a 4948 context where path::iterator is complete. 4949 * include/experimental/bits/fs_path.h (operator<, operator==): 4950 Define after path::iterator is complete. 4951 * testsuite/27_io/filesystem/path/native/conv_c++23.cc: New 4952 test. 4953 * testsuite/experimental/filesystem/path/native/conv_c++23.cc: 4954 New test. 4955 49562021-06-09 Thomas Rodgers <rodgert@appliantology.com> 4957 4958 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Guard 4959 test logic with constexpr check for is_always_lock_free. 4960 49612021-06-09 Jonathan Wakely <jwakely@redhat.com> 4962 4963 PR libstdc++/100982 4964 * include/std/optional (optional::operator=(const optional<U>&)): 4965 Fix value category used in is_assignable check. 4966 * testsuite/20_util/optional/assignment/100982.cc: New test. 4967 49682021-06-09 Jonathan Wakely <jwakely@redhat.com> 4969 4970 * include/bits/allocator.h (allocator::is_always_equal): Deprecate. 4971 * include/bits/iterator_concepts.h (indirectly_readable_traits): 4972 Add LWG issue number to comment. 4973 * include/std/memory_resource (polymorphic_allocator::release): 4974 Deprecate. 4975 * testsuite/20_util/allocator/requirements/typedefs.cc: Add 4976 dg-warning for deprecation. Also check std::allocator<void>. 4977 49782021-06-08 Thomas Rodgers <rodgert@appliantology.com> 4979 4980 PR libstdc++/100889 4981 * include/bits/atomic_base.h (atomic_ref<_Tp*>::wait): 4982 Change parameter type from _Tp to _Tp*. 4983 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Extend 4984 coverage of types tested. 4985 49862021-06-08 Thomas Rodgers <rodgert@appliantology.com> 4987 4988 * include/std/barrier (__tree_barrier::_M_arrive): Remove 4989 unnecessary hasher instantiation. 4990 49912021-06-08 Jonathan Wakely <jwakely@redhat.com> 4992 4993 * include/experimental/propagate_const (swap): Constrain. 4994 * testsuite/experimental/propagate_const/swap/lwg3413.cc: New test. 4995 49962021-06-07 Avi Kivity <avi@scylladb.com> 4997 4998 PR libstdc++/100900 4999 * include/std/ranges (elements_view::__iter_cat::_S_iter_cat): 5000 Add missing typename. 5001 50022021-06-07 Jonathan Wakely <jwakely@redhat.com> 5003 5004 PR libstdc++/98842 5005 * include/std/optional (operator<=>(const optional<T>& const U&)): 5006 Add missing constraint and add workaround for template 5007 recursion. 5008 * testsuite/20_util/optional/relops/three_way.cc: Check that 5009 type without equality comparison cannot be compared when wrapped 5010 in std::optional. 5011 50122021-06-05 Jonathan Wakely <jwakely@redhat.com> 5013 5014 PR libstdc++/100824 5015 * include/bits/ranges_base.h (_SSize): Return signed type. 5016 * testsuite/std/ranges/access/ssize.cc: Check with __int128. 5017 50182021-06-04 Jonathan Wakely <jwakely@redhat.com> 5019 5020 * include/bits/ranges_base.h (_SSize): Return the result of 5021 ranges::size converted to the wider of make-signed-like-t<S> and 5022 ptrdiff_t, rather than the ranges different type. 5023 * testsuite/std/ranges/access/ssize.cc: Adjust expected result 5024 for an iota_view that uses an integer class type for its 5025 difference_type. 5026 50272021-06-04 Jonathan Wakely <jwakely@redhat.com> 5028 5029 PR libstdc++/100824 5030 * include/bits/ranges_base.h (__member_data): Use __decay_copy. 5031 * testsuite/std/ranges/access/data.cc: Add testcase from PR. 5032 50332021-06-04 Jonathan Wakely <jwakely@redhat.com> 5034 5035 PR libstdc++/100824 5036 * include/bits/iterator_concepts.h (__detail::__decay_copy) 5037 (__detail::__member_begin, __detail::__adl_begin): Move to 5038 namespace ranges::__cust_access. 5039 (__detail::__ranges_begin): Likewise, and rename to __begin. 5040 Remove redundant static assertion. 5041 * include/bits/ranges_base.h (_Begin, _End, _RBegin, _REnd): 5042 Use lvalue in noexcept specifier. 5043 (__as_const): Add non-deduced parameter for value category. 5044 (_CBegin, _CEnd, _CRBegin, _CREnd, _CData): Adjust uses of 5045 __as_const. 5046 (__member_size, __adl_size, __member_empty, __size0_empty): 5047 (__eq_iter_empty, __adl_data): Use lvalue objects in 5048 requirements. 5049 (__sentinel_size): Likewise. Add check for conversion to 5050 unsigned-like. 5051 (__member_data): Allow non-lvalue types to satisfy the concept, 5052 but use lvalue object in requirements. 5053 (_Size, _SSize): Remove forwarding to always use an lvalue. 5054 (_Data): Likewise. Add static assertion for arrays. 5055 * testsuite/std/ranges/access/cdata.cc: Adjust expected 5056 behaviour for rvalues. Add negative tests for ill-formed 5057 expressions. 5058 * testsuite/std/ranges/access/data.cc: Likewise. 5059 * testsuite/std/ranges/access/empty.cc: Adjust expected 5060 behaviour for rvalues. 5061 * testsuite/std/ranges/access/size.cc: Likewise. 5062 50632021-06-04 Tim Adye <Tim.Adye@cern.ch> 5064 5065 * include/std/any (any::_Manager::_S_access): New static 5066 function to access the contained value. 5067 (any::emplace, __any_caster): Use _S_access member of the 5068 manager type. 5069 50702021-06-04 Jonathan Wakely <jwakely@redhat.com> 5071 5072 * doc/xml/manual/status_cxx2020.xml: 5073 * doc/html/*: Regenerate. 5074 * include/bits/hashtable.h (__cpp_lib_generic_unordered_lookup): 5075 Define. 5076 * include/std/version (__cpp_lib_generic_unordered_lookup): 5077 Define. 5078 * testsuite/23_containers/unordered_map/operations/1.cc: Check 5079 feature test macro. 5080 * testsuite/23_containers/unordered_set/operations/1.cc: 5081 Likewise. 5082 50832021-06-03 Patrick Palka <ppalka@redhat.com> 5084 5085 * include/bits/ranges_algo.h (__detail::__can_reread_output): 5086 Factor out this concept from ... 5087 (__unique_copy_fn::operator()): ... here. Use the concept 5088 throughout. 5089 * testsuite/std/ranges/range.cc: Remove now ill-formed use 5090 of range_value_t on an output_range. 5091 * testsuite/util/testsuite_iterators.h (output_iterator_wrapper): 5092 Define value_type, pointer and reference member types to void. 5093 50942021-06-03 Patrick Palka <ppalka@redhat.com> 5095 5096 PR libstdc++/100577 5097 * include/std/ranges (_RangeAdaptorClosure): Document 5098 _S_has_simple_call_op mechanism. 5099 (_RangeAdaptor): Document _S_has_simple_extra_args mechanism. 5100 (__closure_has_simple_call_op): New concept. 5101 (__adaptor_has_simple_extra_args): Likewise. 5102 (_Partial<_Adaptor, _Args...>): New partial specialization. 5103 (_Partial<_Adaptor, _Arg>): Likewise. 5104 (_Pipe<_Lhs, _Rhs>): Likewise. 5105 (views::_All::_S_has_simple_call_op): Define to true. 5106 (views::_Filter::_S_has_simple_extra_args): Likewise. 5107 (views::_Transform::_S_has_simple_extra_args): Likewise. 5108 (views::_Take::_S_has_simple_extra_args): Likewise. 5109 (views::_TakeWhile::_S_has_simple_extra_args): Likewise. 5110 (views::_Drop::_S_has_simple_extra_args): Likewise. 5111 (views::_DropWhile::_S_has_simple_extra_args): Likewise. 5112 (views::_Join::_S_has_simple_call_op): Likewise. 5113 (views::_Split): Document why we don't define 5114 _S_has_simple_extra_args to true for this adaptor. 5115 (views::_Common::_S_has_simple_call_op): Define to true. 5116 (views::_Reverse::_S_has_simple_call_op): Likewise. 5117 (views::_Elements::_S_has_simple_call_op): Likewise. 5118 * testsuite/std/ranges/adaptors/100577.cc: New test. 5119 51202021-06-02 Jonathan Wakely <jwakely@redhat.com> 5121 5122 PR libstdc++/100863 5123 PR libstdc++/65816 5124 * include/bits/hashtable_policy.h (_Hashtable_ebo_helper): 5125 Value-initialize subobject. 5126 * testsuite/23_containers/unordered_map/allocator/default_init.cc: 5127 Remove XFAIL. 5128 * testsuite/23_containers/unordered_set/allocator/default_init.cc: 5129 Remove XFAIL. 5130 51312021-06-02 Jonathan Wakely <jwakely@redhat.com> 5132 5133 PR libstdc++/96088 5134 * testsuite/23_containers/unordered_map/96088.cc: Adjust 5135 expected number of allocations. 5136 * testsuite/23_containers/unordered_set/96088.cc: Likewise. 5137 51382021-06-02 Jonathan Wakely <jwakely@redhat.com> 5139 5140 * doc/xml/manual/status_cxxis29124.xml: Improve punctuation. 5141 * doc/xml/manual/status_cxxtr1.xml: Likewise. 5142 * doc/xml/manual/status_cxxtr24733.xml: Likewise. 5143 * doc/html/*: Regenerate. 5144 51452021-06-01 Patrick Palka <ppalka@redhat.com> 5146 5147 PR c++/65816 5148 * testsuite/23_containers/deque/allocator/default_init.cc, 5149 testsuite/23_containers/forward_list/allocator/default_init.cc, 5150 testsuite/23_containers/list/allocator/default_init.cc, 5151 testsuite/23_containers/map/allocator/default_init.cc, 5152 testsuite/23_containers/set/allocator/default_init.cc, 5153 testsuite/23_containers/vector/allocator/default_init.cc, 5154 testsuite/23_containers/vector/bool/allocator/default_init.cc: 5155 Remove xfail. 5156 51572021-06-01 Jonathan Wakely <jwakely@redhat.com> 5158 5159 * testsuite/23_containers/unordered_map/96088.cc: Change 5160 effective target to c++17. 5161 * testsuite/23_containers/unordered_set/96088.cc: Likewise. 5162 51632021-06-01 Jonathan Wakely <jwakely@redhat.com> 5164 5165 * testsuite/22_locale/ctype/is/string/89728_neg.cc: Only test 5166 isblank for C++11 and later. 5167 51682021-06-01 Jonathan Wakely <jwakely@redhat.com> 5169 5170 PR libstdc++/100833 5171 * include/bits/ranges_base.h (ranges::advance(iter, n, sentinel)): 5172 Fix return value for no-op case. 5173 * testsuite/24_iterators/range_operations/advance.cc: Test 5174 return values of three-argument overload. 5175 51762021-06-01 Jonathan Wakely <jwakely@redhat.com> 5177 5178 PR libstdc++/99453 5179 * python/Makefile.am: Use archive name for printer hook if no 5180 dynamic library name is available. 5181 * python/Makefile.in: Regenerate. 5182 51832021-05-30 Gerald Pfeifer <gerald@pfeifer.com> 5184 5185 * doc/xml/manual/abi.xml: Remove dead reference to "Intel 5186 Compilers for Linux: Compatibility with GNU Compilers" article. 5187 * doc/html/manual/abi.html: Regenerate. 5188 51892021-05-26 François Dumont <fdumont@gcc.gnu.org> 5190 5191 * include/debug/formatter.h 5192 (_Error_formatter::_Parameter::_Named): New. 5193 (_Error_formatter::_Parameter::_Type): Inherit latter. 5194 (_Error_formatter::_Parameter::_M_integer): Likewise. 5195 (_Error_formatter::_Parameter::_M_string): Likewise. 5196 * src/c++11/debug.cc: Include <cstring>. 5197 (_Print_func_t): New. 5198 (print_raw(PrintContext&, const char*, ptrdiff_t)): New. 5199 (print_word): Use '%.*s' format in fprintf to render only expected number of chars. 5200 (pretty_print(PrintContext&, const char*, _Print_func_t)): New. 5201 (print_type): Rename in... 5202 (print_type_info): ...this. Use pretty_print. 5203 (print_address, print_integer): New. 5204 (print_named_name, print_iterator_constness, print_iterator_state): New. 5205 (print_iterator_seq_type): New. 5206 (print_named_field, print_type_field, print_instance_field, print_iterator_field): New. 5207 (print_field): Use latters. 5208 (print_quoted_named_name, print_type_type, print_type, print_instance): New. 5209 (print_string(PrintContext&, const char*, const _Parameter*, size_t)): 5210 Change signature to... 5211 (print_string(PrintContext&, const char*, ptrdiff_t, const _Parameter*, size_t)): 5212 ...this and adapt. Remove intermediate buffer to render input string. 5213 (print_string(PrintContext&, const char*, ptrdiff_t)): New. 5214 52152021-05-26 Jonathan Wakely <jwakely@redhat.com> 5216 5217 PR libstdc++/100768 5218 * include/bits/ranges_base.h (advance, distance, next, prev): 5219 Replace function templates with function objects. 5220 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc: 5221 Adjust for changes to function objects. 5222 * testsuite/std/ranges/adaptors/elements.cc: Add using 5223 declarations for names from namespace ranges. 5224 * testsuite/std/ranges/adaptors/transform.cc: Likewise. 5225 * testsuite/24_iterators/range_operations/100768.cc: New test. 5226 52272021-05-24 François Dumont <fdumont@gcc.gnu.org> 5228 5229 PR libstdc++/96088 5230 * include/bits/hashtable_policy.h (_Select2nd): New. 5231 (_NodeBuilder<>): New. 5232 (_ReuseOrAllocNode<>::operator()): Use variadic template args. 5233 (_AllocNode<>::operator()): Likewise. 5234 * include/bits/hashtable.h 5235 (_Hashtable<>::__node_builder_t): New. 5236 (_Hashtable<>::_M_insert_unique<>(_Kt&&, _Arg&&, const _NodeGenerator&)): 5237 New. 5238 (_Hashtable<>::_S_forward_key): New. 5239 (_Hashtable<>::_M_insert): Use latter. 5240 (_Hashtable<>::_M_insert(const_iterator, _Arg&&, const _NodeGenerator&, false_type)): 5241 Instantiate node first, compute hash code second. 5242 * testsuite/23_containers/unordered_map/96088.cc: New test. 5243 * testsuite/23_containers/unordered_multimap/96088.cc: New test. 5244 * testsuite/23_containers/unordered_multiset/96088.cc: New test. 5245 * testsuite/23_containers/unordered_set/96088.cc: New test. 5246 * testsuite/util/replacement_memory_operators.h 5247 (counter::_M_increment): New. 5248 (counter::_M_decrement): New. 5249 (counter::reset()): New. 5250 52512021-05-24 Patrick Palka <ppalka@redhat.com> 5252 5253 PR libstdc++/100479 5254 * include/std/ranges (__detail::__non_propagating_cache): Move 5255 definition up to before that of _CachedPosition. Make base 5256 class _Optional_base protected instead of private. Add const 5257 overload for operator*. 5258 (__detail::_CachedPosition): Rewrite the partial specialization 5259 for forward ranges as a derived class of __non_propagating_cache. 5260 Remove the size constraint on the partial specialization for 5261 random access ranges. Add copy/move/copy-assignment/move-assignment 5262 members to the offset partial specialization for random 5263 access ranges that propagate the cached value but additionally 5264 invalidate it in the source object on move. 5265 * testsuite/std/ranges/adaptors/100479.cc: New test. 5266 52672021-05-24 Jonathan Wakely <jwakely@redhat.com> 5268 5269 * testsuite/25_algorithms/inplace_merge/constrained.cc: Qualify 5270 call to ranges::next. 5271 * testsuite/25_algorithms/is_sorted/constrained.cc: Likewise. 5272 * testsuite/25_algorithms/is_sorted_until/constrained.cc: 5273 Likewise. 5274 * testsuite/25_algorithms/swap_ranges/1.cc: Qualify call to 5275 swap_ranges. 5276 52772021-05-21 Patrick Palka <ppalka@redhat.com> 5278 5279 PR libstdc++/100606 5280 * include/std/ranges (drop_while_view::begin): Assert the 5281 precondition added by LWG 3490. 5282 52832021-05-21 Patrick Palka <ppalka@redhat.com> 5284 5285 PR libstdc++/100690 5286 * include/std/ranges (iota_view::_Sentinel::_M_distance_from): 5287 Split out this member function from ... 5288 (iota_view::_Sentinel::operator-): ... here, for sake of access 5289 control. 5290 * testsuite/std/ranges/iota/iota_view.cc (test05): New test. 5291 52922021-05-20 Jonathan Wakely <jwakely@redhat.com> 5293 5294 * include/bits/random.tcc (__representable_as_double) 5295 (__p1_representable_as_double): Add "" to static asserts. 5296 52972021-05-20 Jonathan Wakely <jwakely@redhat.com> 5298 5299 PR libstdc++/100676 5300 * include/bits/c++config (__glibcxx_assert_1): Rename to ... 5301 (__glibcxx_constexpr_assert): ... this. 5302 (__glibcxx_assert_impl): Use __glibcxx_constexpr_assert. 5303 (__glibcxx_assert): Define as either __glibcxx_constexpr_assert 5304 or __glibcxx_assert_impl. 5305 (__glibcxx_assert_2): Remove 5306 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): Use 5307 __glibcxx_constexpr_assert instead of __glibcxx_assert_1. 5308 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc: 5309 Adjust expected error. 5310 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc: 5311 Likewise. 5312 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc: 5313 Likewise. 5314 Likewise. 5315 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc: 5316 Likewise. 5317 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc: 5318 Likewise. 5319 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc: 5320 Likewise. 5321 * testsuite/23_containers/span/back_neg.cc: Likewise. 5322 * testsuite/23_containers/span/front_neg.cc: Likewise. 5323 * testsuite/23_containers/span/index_op_neg.cc: Likewise. 5324 53252021-05-20 Patrick Palka <ppalka@redhat.com> 5326 5327 PR libstdc++/100639 5328 * include/bits/stl_iterator.h (reverse_iterator::difference_type): 5329 In C++20 mode, define in terms of iter_difference_t as per P0896R4. 5330 (reverse_iterator::reference): Likewise, but with iter_reference_t. 5331 (reverse_iterator::value_type): Likewise, but with iter_value_t. 5332 * testsuite/std/ranges/adaptors/reverse.cc (test08): New test. 5333 * testsuite/24_iterators/reverse_iterator/100639.cc: New test. 5334 53352021-05-20 Joern Rennecke <joern.rennecke@riscy-ip.com> 5336 5337 PR libstdc++/100361 5338 * include/std/charconv (to_chars): Hide the overloads for 5339 floating-point types for 16 bit targets. 5340 * src/c++17/floating_to_chars.cc: Don't compile for 16 bit targets. 5341 * testsuite/20_util/to_chars/double.cc: Run this test only on 5342 size32plus targets. 5343 * testsuite/20_util/to_chars/float.cc: Likewise. 5344 * testsuite/20_util/to_chars/long_double.cc: Likewise. 5345 53462021-05-18 Patrick Palka <ppalka@redhat.com> 5347 5348 PR libstdc++/100631 5349 * include/std/ranges (elements_view::_Sentinel::operator-): Use 5350 _M_distance_from in the other operator- overload too. 5351 * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test. 5352 53532021-05-18 Thomas Schwinge <thomas@codesourcery.com> 5354 5355 * testsuite/lib/prune.exp: Add note about 'dg-note'. 5356 53572021-05-18 Patrick Palka <ppalka@redhat.com> 5358 5359 PR libstdc++/100475 5360 * include/std/ranges (__box::__box): Use non-list-initialization 5361 in member initializer list of in-place constructor of the 5362 partial specialization for semiregular types. 5363 (__box::operator->): Use std::__addressof. 5364 * testsuite/std/ranges/adaptors/detail/semiregular_box.cc 5365 (test02): New test. 5366 * testsuite/std/ranges/single_view.cc (test04): New test. 5367 53682021-05-18 Patrick Palka <ppalka@redhat.com> 5369 5370 PR libstdc++/100621 5371 * include/std/ranges (reverse_view::_S_needs_cached_begin): 5372 Set to true if the underlying non-common random-access range 5373 doesn't have a sized sentinel. 5374 53752021-05-18 Patrick Palka <ppalka@redhat.com> 5376 5377 PR libstdc++/100631 5378 * include/std/ranges (elements_view::_Iterator): Also befriend 5379 _Sentinel<!_Const>. 5380 (elements_view::_Sentinel::_M_equal): Templatize. 5381 (elements_view::_Sentinel::_M_distance_from): Split out from ... 5382 (elements_view::_Sentinel::operator-): ... here. Depend on 5383 _Base2 instead of _Base in the return type. 5384 * testsuite/std/ranges/adaptors/elements.cc (test06, test07): 5385 New tests. 5386 53872021-05-17 Thomas Rodgers <rodgert@twrodgers.com> 5388 5389 * include/bits/atomic_wait.h (__waiter::_M_do_wait_v): loop 5390 until value change observed. 5391 (__waiter_base::_M_laundered): New member. 5392 (__waiter_base::_M_notify): Check _M_laundered to determine 5393 whether to wake one or all. 5394 (__detail::__atomic_compare): Return true if call to 5395 __builtin_memcmp() == 0. 5396 (__waiter_base::_S_do_spin_v): Adjust predicate. 5397 * testsuite/29_atomics/atomic/wait_notify/100334.cc: New 5398 test. 5399 54002021-05-17 Jonathan Wakely <jwakely@redhat.com> 5401 5402 PR libstdc++/100630 5403 * include/experimental/bits/fs_path.h (__is_constructible_from): 5404 Test construction from a const lvalue, not an rvalue. 5405 * testsuite/27_io/filesystem/path/construct/100630.cc: New test. 5406 * testsuite/experimental/filesystem/path/construct/100630.cc: 5407 New test. 5408 54092021-05-17 Antony Polukhin <antoshkka@gmail.com> 5410 5411 PR libstdc++/89728 5412 * include/bits/locale_facets.h (ctype<basic_string<C,T,A>>): 5413 Declare (but do not define) partial specialization. 5414 * testsuite/22_locale/ctype/is/string/89728_neg.cc: New test. 5415 54162021-05-17 Jonathan Wakely <jwakely@redhat.com> 5417 5418 * include/std/thread (jthread::_S_create): Fix static assert 5419 message. 5420 * testsuite/30_threads/jthread/95989.cc: Re-enable test. 5421 * testsuite/30_threads/jthread/jthread.cc: Do not require 5422 pthread effective target. 5423 * testsuite/30_threads/jthread/2.cc: Moved to... 5424 * testsuite/30_threads/jthread/version.cc: ...here. 5425 54262021-05-17 Jonathan Wakely <jwakely@redhat.com> 5427 5428 * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd. 5429 * doc/Makefile.in: Regenerate. 5430 * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder 5431 value. 5432 * scripts/run_doxygen (print_usage): Always print to stdout and 5433 do not exit. 5434 (fail): New function for exiting on error. 5435 (parse_options): Handle --latex_cmd. Do not treat --help the 5436 same as errors. Simplify handling of required arguments. 5437 54382021-05-12 Jonathan Wakely <jwakely@redhat.com> 5439 5440 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: 5441 Increase dg-timeout-factor to 4. Fix -Wunused-parameter 5442 warnings. Replace bitwise AND with logical AND in loop 5443 condition. 5444 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: 5445 Replace bitwise AND with logical AND in loop condition. 5446 * testsuite/util/pstl/test_utils.h: Remove unused parameter 5447 names. 5448 54492021-05-11 Patrick Palka <ppalka@redhat.com> 5450 5451 * src/c++17/ryu/LOCAL_PATCHES: Update. 5452 * src/c++17/ryu/ryu_generic_128.h: Remove extern "C". 5453 Remove declarations for never-defined functions. 5454 * testsuite/20_util/to_chars/4.cc: New test. 5455 54562021-05-11 Jonathan Wakely <jwakely@redhat.com> 5457 5458 * testsuite/20_util/headers/memory/synopsis.cc: Define C++98 5459 alternative for macro. 5460 * testsuite/20_util/shared_ptr/creation/99006.cc: Add effective 5461 target keyword. 5462 * testsuite/25_algorithms/copy/debug/99402.cc: Avoid C++11 5463 syntax. 5464 54652021-05-11 Jonathan Wakely <jwakely@redhat.com> 5466 5467 * include/bits/allocator.h (allocator<void>) [C++20]: Add 5468 missing noexcept to constructor. Restore missing POCMA and 5469 is_always_equal_traits. 5470 [C++17]: Make construct and destroy members private and 5471 declare allocator_traits as a friend. 5472 * include/bits/memoryfwd.h (allocator_traits): Declare. 5473 * include/ext/malloc_allocator.h (malloc_allocator::allocate): 5474 Add nodiscard attribute. Add static assertion for LWG 3307. 5475 * include/ext/new_allocator.h (new_allocator::allocate): Add 5476 static assertion for LWG 3307. 5477 * testsuite/20_util/allocator/void.cc: Check that converting 5478 constructor is noexcept. Check for propagation traits and 5479 size_type and difference_type. Check that pointer and 5480 const_pointer are gone in C++20. 5481 54822021-05-10 Jonathan Wakely <jwakely@redhat.com> 5483 5484 * include/std/stop_token: Remove TODO comment. 5485 54862021-05-10 Jonathan Wakely <jwakely@redhat.com> 5487 5488 * include/bits/shared_ptr_base.h (__shared_count(unique_ptr&&)): 5489 Initialize a non-reference deleter from an rvalue, as per LWG 5490 3548. 5491 (__shared_ptr::_UniqCompatible): Add missing constraint. 5492 * testsuite/20_util/shared_ptr/cons/lwg3548.cc: New test. 5493 * testsuite/20_util/shared_ptr/cons/unique_ptr_deleter.cc: Check 5494 constraints. 5495 54962021-05-10 Jonathan Wakely <jwakely@redhat.com> 5497 5498 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Remove 5499 -std=gnu++17 from dg-options directive. 5500 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: 5501 Likewise. 5502 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: 5503 Likewise. 5504 * testsuite/17_intro/headers/c++2017/operator_names.cc: 5505 Likewise. 5506 * testsuite/17_intro/headers/c++2017/parallel_mode.cc: Likewise. 5507 * testsuite/17_intro/headers/c++2017/stdc++.cc: Likewise. 5508 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc: 5509 Likewise. 5510 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Likewise. 5511 * testsuite/18_support/byte/81076.cc: Likewise. 5512 * testsuite/18_support/byte/global_neg.cc: Likewise. 5513 * testsuite/18_support/byte/ops.cc: Likewise. 5514 * testsuite/18_support/byte/requirements.cc: Likewise. 5515 * testsuite/18_support/headers/cfloat/values_c++17.cc: Likewise. 5516 * testsuite/18_support/launder/1.cc: Likewise. 5517 * testsuite/18_support/launder/nodiscard.cc: Likewise. 5518 * testsuite/18_support/launder/requirements.cc: Likewise. 5519 * testsuite/18_support/launder/requirements_neg.cc: Likewise. 5520 * testsuite/18_support/new_aligned.cc: Likewise. 5521 * testsuite/18_support/uncaught_exceptions/uncaught_exceptions.cc: 5522 Likewise. 5523 * testsuite/19_diagnostics/error_code/is_error_code_v.cc: 5524 Likewise. 5525 * testsuite/19_diagnostics/error_condition/hash.cc: Likewise. 5526 * testsuite/20_util/addressof/requirements/constexpr.cc: 5527 Likewise. 5528 * testsuite/20_util/as_const/1.cc: Likewise. 5529 * testsuite/20_util/as_const/rvalue_neg.cc: Likewise. 5530 * testsuite/20_util/bind/83427.cc: Likewise. 5531 * testsuite/20_util/bind/is_placeholder_v.cc: Likewise. 5532 * testsuite/20_util/bool_constant/requirements.cc: Likewise. 5533 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: 5534 Likewise. 5535 * testsuite/20_util/duration/requirements/treat_as_floating_point_v.cc: 5536 Likewise. 5537 * testsuite/20_util/duration_cast/rounding.cc: Likewise. 5538 * testsuite/20_util/enable_shared_from_this/members/weak_from_this.cc: 5539 Likewise. 5540 * testsuite/20_util/from_chars/1_neg.cc: Likewise. 5541 * testsuite/20_util/from_chars/requirements.cc: Likewise. 5542 * testsuite/20_util/function/91456.cc: Likewise. 5543 * testsuite/20_util/function/cons/deduction.cc: Likewise. 5544 * testsuite/20_util/function_objects/83607.cc: Likewise. 5545 * testsuite/20_util/function_objects/invoke/59768.cc: Likewise. 5546 * testsuite/20_util/function_objects/mem_fn/80478.cc: Likewise. 5547 * testsuite/20_util/function_objects/not_fn/1.cc: Likewise. 5548 * testsuite/20_util/function_objects/not_fn/87538.cc: Likewise. 5549 * testsuite/20_util/has_unique_object_representations/requirements/explicit_instantiation.cc: 5550 Likewise. 5551 * testsuite/20_util/has_unique_object_representations/requirements/typedefs.cc: 5552 Likewise. 5553 * testsuite/20_util/has_unique_object_representations/value.cc: 5554 Likewise. 5555 * testsuite/20_util/hash/nullptr.cc: Likewise. 5556 * testsuite/20_util/in_place/requirements.cc: Likewise. 5557 * testsuite/20_util/is_aggregate/incomplete_neg.cc: Likewise. 5558 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc: 5559 Likewise. 5560 * testsuite/20_util/is_aggregate/requirements/typedefs.cc: 5561 Likewise. 5562 * testsuite/20_util/is_aggregate/value.cc: Likewise. 5563 * testsuite/20_util/is_invocable/83395.cc: Likewise. 5564 * testsuite/20_util/is_invocable/91456.cc: Likewise. 5565 * testsuite/20_util/is_invocable/requirements/explicit_instantiation.cc: 5566 Likewise. 5567 * testsuite/20_util/is_invocable/requirements/typedefs.cc: 5568 Likewise. 5569 * testsuite/20_util/is_invocable/value.cc: Likewise. 5570 * testsuite/20_util/is_literal_type/deprecated-1z.cc: Likewise. 5571 * testsuite/20_util/is_nothrow_constructible/94003.cc: Likewise. 5572 * testsuite/20_util/is_nothrow_invocable/83395.cc: Likewise. 5573 * testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc: 5574 Likewise. 5575 * testsuite/20_util/is_nothrow_invocable/requirements/typedefs.cc: Likewise. 5576 * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise. 5577 * testsuite/20_util/is_nothrow_swappable/requirements/explicit_instantiation.cc: 5578 Likewise. 5579 * testsuite/20_util/is_nothrow_swappable/requirements/typedefs.cc: 5580 Likewise. 5581 * testsuite/20_util/is_nothrow_swappable/value.cc: Likewise. 5582 * testsuite/20_util/is_nothrow_swappable_with/requirements/explicit_instantiation.cc: 5583 Likewise. 5584 * testsuite/20_util/is_nothrow_swappable_with/requirements/typedefs.cc: 5585 Likewise. 5586 * testsuite/20_util/is_nothrow_swappable_with/value.cc: 5587 Likewise. 5588 * testsuite/20_util/is_swappable/requirements/explicit_instantiation.cc: 5589 Likewise. 5590 * testsuite/20_util/is_swappable/requirements/typedefs.cc: 5591 Likewise. 5592 * testsuite/20_util/is_swappable/value.cc: Likewise. 5593 * testsuite/20_util/is_swappable_with/requirements/explicit_instantiation.cc: 5594 Likewise. 5595 * testsuite/20_util/is_swappable_with/requirements/typedefs.cc: 5596 Likewise. 5597 * testsuite/20_util/is_swappable_with/value.cc: Likewise. 5598 * testsuite/20_util/logical_traits/83134.cc: Likewise. 5599 * testsuite/20_util/logical_traits/requirements/explicit_instantiation.cc: 5600 Likewise. 5601 * testsuite/20_util/logical_traits/requirements/typedefs.cc: 5602 Likewise. 5603 * testsuite/20_util/logical_traits/value.cc: Likewise. 5604 * testsuite/20_util/pair/cons/deduction.cc: Likewise. 5605 * testsuite/20_util/pair/swap_cxx17.cc: Likewise. 5606 * testsuite/20_util/ratio/requirements/ratio_equal_v.cc: 5607 Likewise. 5608 * testsuite/20_util/reference_wrapper/83427.cc: Likewise. 5609 * testsuite/20_util/reference_wrapper/deduction.cc: Likewise. 5610 * testsuite/20_util/shared_ptr/casts/reinterpret.cc: Likewise. 5611 * testsuite/20_util/shared_ptr/cons/deduction.cc: Likewise. 5612 * testsuite/20_util/shared_ptr/requirements/weak_type.cc: 5613 Likewise. 5614 * testsuite/20_util/time_point/arithmetic/constexpr.cc: 5615 Likewise. 5616 * testsuite/20_util/time_point_cast/rounding.cc: Likewise. 5617 * testsuite/20_util/to_chars/3.cc: Likewise. 5618 * testsuite/20_util/to_chars/chars_format.cc: Likewise. 5619 * testsuite/20_util/to_chars/lwg3266.cc: Likewise. 5620 * testsuite/20_util/to_chars/requirements.cc: Likewise. 5621 * testsuite/20_util/tuple/78939.cc: Likewise. 5622 * testsuite/20_util/tuple/apply/1.cc: Likewise. 5623 * testsuite/20_util/tuple/apply/2.cc: Likewise. 5624 * testsuite/20_util/tuple/cons/deduction.cc: Likewise. 5625 * testsuite/20_util/tuple/make_from_tuple/1.cc: Likewise. 5626 * testsuite/20_util/tuple/make_from_tuple/2.cc: Likewise. 5627 * testsuite/20_util/tuple/swap_cxx17.cc: Likewise. 5628 * testsuite/20_util/tuple/tuple_size_v.cc: Likewise. 5629 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: Likewise. 5630 * testsuite/20_util/uses_allocator/requirements/uses_allocator_v.cc: 5631 Likewise. 5632 * testsuite/20_util/variable_templates_for_traits.cc: Likewise. 5633 * testsuite/20_util/void_t/1.cc: Likewise. 5634 * testsuite/20_util/weak_ptr/cons/deduction.cc: Likewise. 5635 * testsuite/24_iterators/container_access.cc: Likewise. 5636 * testsuite/24_iterators/headers/iterator/range_access_c++17.cc: 5637 Likewise. 5638 * testsuite/24_iterators/headers/iterator/synopsis_c++17.cc: 5639 Likewise. 5640 * testsuite/24_iterators/range_access/range_access_cpp17.cc: 5641 Likewise. 5642 * testsuite/24_iterators/range_access/range_access_cpp17_neg.cc: 5643 Likewise. 5644 * testsuite/26_numerics/gcd/gcd_neg.cc: Likewise. 5645 * testsuite/26_numerics/headers/cmath/functions_std_c++17.cc: 5646 Likewise. 5647 * testsuite/26_numerics/headers/cmath/hypot.cc: Likewise. 5648 * testsuite/26_numerics/headers/cmath/special_functions_global.cc: 5649 Likewise. 5650 * testsuite/26_numerics/lcm/1.cc: Likewise. 5651 * testsuite/26_numerics/lcm/lcm_neg.cc: Likewise. 5652 * testsuite/26_numerics/valarray/deduction.cc: Likewise. 5653 * testsuite/27_io/basic_ostream/inserters_other/char/lwg2221.cc: 5654 Likewise. 5655 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc: 5656 Likewise. 5657 * testsuite/27_io/manipulators/standard/wchar_t/quoted_sv.cc: 5658 Likewise. 5659 * testsuite/27_io/types/4.cc: Likewise. 5660 * testsuite/28_regex/basic_regex/ctors/deduction.cc: Likewise. 5661 * testsuite/libstdc++-prettyprinters/91997.cc: Likewise. 5662 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise. 5663 56642021-05-10 Jonathan Wakely <jwakely@redhat.com> 5665 5666 * testsuite/20_util/function_objects/searchers.cc: Remove 5667 -std=gnu++17 from dg-options directive. 5668 * testsuite/20_util/specialized_algorithms/memory_management_tools/1.cc: 5669 Likewise. 5670 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc: 5671 Likewise. 5672 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94540.cc: 5673 Likewise. 5674 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct/94831.cc: 5675 Likewise. 5676 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/94540.cc: 5677 Likewise. 5678 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc: 5679 Likewise. 5680 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc: 5681 Likewise. 5682 * testsuite/25_algorithms/clamp/1.cc: Likewise. 5683 * testsuite/25_algorithms/clamp/2.cc: Likewise. 5684 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise. 5685 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/1.cc: 5686 Likewise. 5687 * testsuite/25_algorithms/clamp/requirements/explicit_instantiation/pod.cc: 5688 Likewise. 5689 * testsuite/25_algorithms/for_each/for_each_n.cc: Likewise. 5690 * testsuite/25_algorithms/for_each/for_each_n_debug.cc: 5691 Likewise. 5692 * testsuite/25_algorithms/sample/1.cc: Likewise. 5693 * testsuite/25_algorithms/sample/2.cc: Likewise. 5694 * testsuite/25_algorithms/sample/3.cc: Likewise. 5695 * testsuite/25_algorithms/sample/81221.cc: Likewise. 5696 * testsuite/25_algorithms/search/searcher.cc: Likewise. 5697 * testsuite/26_numerics/exclusive_scan/1.cc: Likewise. 5698 * testsuite/26_numerics/inclusive_scan/1.cc: Likewise. 5699 * testsuite/26_numerics/reduce/1.cc: Likewise. 5700 * testsuite/26_numerics/reduce/2.cc: Likewise. 5701 * testsuite/26_numerics/transform_exclusive_scan/1.cc: Likewise. 5702 * testsuite/26_numerics/transform_inclusive_scan/1.cc: Likewise. 5703 * testsuite/26_numerics/transform_reduce/1.cc: Likewise. 5704 57052021-05-10 Jonathan Wakely <jwakely@redhat.com> 5706 5707 * testsuite/23_containers/array/cons/deduction.cc: Remove 5708 -std=gnu++17 from dg-options directive. 5709 * testsuite/23_containers/array/cons/deduction_neg.cc: Likewise. 5710 * testsuite/23_containers/array/element_access/constexpr_c++17.cc: 5711 Likewise. 5712 * testsuite/23_containers/array/requirements/constexpr_iter.cc: 5713 Likewise. 5714 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc: 5715 Likewise. 5716 * testsuite/23_containers/deque/cons/deduction.cc: Likewise. 5717 * testsuite/23_containers/deque/modifiers/emplace/cxx17_return.cc: 5718 Likewise. 5719 * testsuite/23_containers/forward_list/cons/deduction.cc: 5720 Likewise. 5721 * testsuite/23_containers/forward_list/modifiers/emplace_cxx17_return.cc: 5722 Likewise. 5723 * testsuite/23_containers/list/cons/deduction.cc: Likewise. 5724 * testsuite/23_containers/list/modifiers/emplace/cxx17_return.cc: 5725 Likewise. 5726 * testsuite/23_containers/map/cons/deduction.cc: Likewise. 5727 * testsuite/23_containers/map/modifiers/extract.cc: Likewise. 5728 * testsuite/23_containers/map/modifiers/insert/83226.cc: 5729 Likewise. 5730 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: 5731 Likewise. 5732 * testsuite/23_containers/map/modifiers/merge.cc: Likewise. 5733 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: 5734 Likewise. 5735 * testsuite/23_containers/multimap/cons/deduction.cc: Likewise. 5736 * testsuite/23_containers/multimap/modifiers/extract.cc: 5737 Likewise. 5738 * testsuite/23_containers/multimap/modifiers/merge.cc: Likewise. 5739 * testsuite/23_containers/multiset/cons/deduction.cc: Likewise. 5740 * testsuite/23_containers/multiset/modifiers/extract.cc: 5741 Likewise. 5742 * testsuite/23_containers/multiset/modifiers/merge.cc: Likewise. 5743 * testsuite/23_containers/priority_queue/deduction.cc: Likewise. 5744 * testsuite/23_containers/queue/deduction.cc: Likewise. 5745 * testsuite/23_containers/queue/members/emplace_cxx17_return.cc: 5746 Likewise. 5747 * testsuite/23_containers/set/cons/deduction.cc: Likewise. 5748 * testsuite/23_containers/set/modifiers/extract.cc: Likewise. 5749 * testsuite/23_containers/set/modifiers/merge.cc: Likewise. 5750 * testsuite/23_containers/set/modifiers/node_swap.cc: Likewise. 5751 * testsuite/23_containers/stack/deduction.cc: Likewise. 5752 * testsuite/23_containers/stack/members/emplace_cxx17_return.cc: 5753 Likewise. 5754 * testsuite/23_containers/unordered_map/cons/deduction.cc: 5755 Likewise. 5756 * testsuite/23_containers/unordered_map/modifiers/extract.cc: 5757 Likewise. 5758 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc: 5759 Likewise. 5760 * testsuite/23_containers/unordered_map/modifiers/merge.cc: 5761 Likewise. 5762 * testsuite/23_containers/unordered_map/modifiers/try_emplace.cc: 5763 Likewise. 5764 * testsuite/23_containers/unordered_multimap/cons/deduction.cc: 5765 Likewise. 5766 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc: 5767 Likewise. 5768 * testsuite/23_containers/unordered_multimap/modifiers/merge.cc: 5769 Likewise. 5770 * testsuite/23_containers/unordered_multiset/cons/deduction.cc: 5771 Likewise. 5772 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc: 5773 Likewise. 5774 * testsuite/23_containers/unordered_multiset/modifiers/merge.cc: 5775 Likewise. 5776 * testsuite/23_containers/unordered_set/cons/deduction.cc: 5777 Likewise. 5778 * testsuite/23_containers/unordered_set/modifiers/extract.cc: 5779 Likewise. 5780 * testsuite/23_containers/unordered_set/modifiers/merge.cc: 5781 Likewise. 5782 * testsuite/23_containers/vector/bool/emplace_cxx17_return.cc: 5783 Likewise. 5784 * testsuite/23_containers/vector/cons/89164_c++17.cc: Likewise. 5785 * testsuite/23_containers/vector/cons/deduction.cc: Likewise. 5786 * testsuite/23_containers/vector/modifiers/emplace/cxx17_return.cc: 5787 Likewise. 5788 57892021-05-10 Jonathan Wakely <jwakely@redhat.com> 5790 5791 * testsuite/21_strings/basic_string/79162.cc: Remove 5792 -std=gnu++17 from dg-options directive. 5793 * testsuite/21_strings/basic_string/cons/char/7.cc: Likewise. 5794 * testsuite/21_strings/basic_string/cons/char/79162.cc: 5795 Likewise. 5796 * testsuite/21_strings/basic_string/cons/char/86138.cc: 5797 Likewise. 5798 * testsuite/21_strings/basic_string/cons/char/9.cc: Likewise. 5799 * testsuite/21_strings/basic_string/cons/char/deduction.cc: 5800 Likewise. 5801 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc: 5802 Likewise. 5803 * testsuite/21_strings/basic_string/cons/wchar_t/7.cc: Likewise. 5804 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: 5805 Likewise. 5806 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: 5807 Likewise. 5808 * testsuite/21_strings/basic_string/cons/wchar_t/9.cc: Likewise. 5809 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: 5810 Likewise. 5811 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc: 5812 Likewise. 5813 * testsuite/21_strings/basic_string/hash/hash.cc: Likewise. 5814 * testsuite/21_strings/basic_string/lwg2758.cc: Likewise. 5815 * testsuite/21_strings/basic_string/lwg2946.cc: Likewise. 5816 * testsuite/21_strings/basic_string/modifiers/append/char/4.cc: 5817 Likewise. 5818 * testsuite/21_strings/basic_string/modifiers/append/wchar_t/4.cc: 5819 Likewise. 5820 * testsuite/21_strings/basic_string/modifiers/assign/char/4.cc: 5821 Likewise. 5822 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc: 5823 Likewise. 5824 * testsuite/21_strings/basic_string/modifiers/insert/char/3.cc: 5825 Likewise. 5826 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/3.cc: 5827 Likewise. 5828 * testsuite/21_strings/basic_string/modifiers/replace/char/7.cc: 5829 Likewise. 5830 * testsuite/21_strings/basic_string/modifiers/replace/wchar_t/7.cc: 5831 Likewise. 5832 * testsuite/21_strings/basic_string/operations/compare/char/2.cc: 5833 Likewise. 5834 * testsuite/21_strings/basic_string/operations/compare/wchar_t/2.cc: 5835 Likewise. 5836 * testsuite/21_strings/basic_string/operations/data/char/2.cc: 5837 Likewise. 5838 * testsuite/21_strings/basic_string/operations/data/char/86169.cc: 5839 Likewise. 5840 * testsuite/21_strings/basic_string/operations/data/wchar_t/2.cc: 5841 Likewise. 5842 * testsuite/21_strings/basic_string/operations/find/char/5.cc: 5843 Likewise. 5844 * testsuite/21_strings/basic_string/operations/find/wchar_t/5.cc: 5845 Likewise. 5846 * testsuite/21_strings/basic_string/operators/char/5.cc: 5847 Likewise. 5848 * testsuite/21_strings/basic_string/operators/wchar_t/5.cc: 5849 Likewise. 5850 * testsuite/21_strings/basic_string_view/capacity/1.cc: 5851 Likewise. 5852 * testsuite/21_strings/basic_string_view/capacity/empty_neg.cc: 5853 Likewise. 5854 * testsuite/21_strings/basic_string_view/cons/char/1.cc: 5855 Likewise. 5856 * testsuite/21_strings/basic_string_view/cons/char/2.cc: 5857 Likewise. 5858 * testsuite/21_strings/basic_string_view/cons/char/3.cc: 5859 Likewise. 5860 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: 5861 Likewise. 5862 * testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc: 5863 Likewise. 5864 * testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc: 5865 Likewise. 5866 * testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc: 5867 Likewise. 5868 * testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc: 5869 Likewise. 5870 * testsuite/21_strings/basic_string_view/element_access/char/1.cc: 5871 Likewise. 5872 * testsuite/21_strings/basic_string_view/element_access/char/2.cc: 5873 Likewise. 5874 * testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc: 5875 Likewise. 5876 * testsuite/21_strings/basic_string_view/element_access/char/constexpr.cc: 5877 Likewise. 5878 * testsuite/21_strings/basic_string_view/element_access/char/constexpr_neg.cc: 5879 Likewise. 5880 * testsuite/21_strings/basic_string_view/element_access/char/empty.cc: 5881 Likewise. 5882 * testsuite/21_strings/basic_string_view/element_access/char/front_back.cc: 5883 Likewise. 5884 * testsuite/21_strings/basic_string_view/element_access/char/front_back_constexpr.cc: 5885 Likewise. 5886 * testsuite/21_strings/basic_string_view/element_access/char/front_constexpr_neg.cc: 5887 Likewise. 5888 * testsuite/21_strings/basic_string_view/element_access/wchar_t/1.cc: 5889 Likewise. 5890 * testsuite/21_strings/basic_string_view/element_access/wchar_t/2.cc: 5891 Likewise. 5892 * testsuite/21_strings/basic_string_view/element_access/wchar_t/back_constexpr_neg.cc: 5893 Likewise. 5894 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr.cc: 5895 Likewise. 5896 * testsuite/21_strings/basic_string_view/element_access/wchar_t/constexpr_neg.cc: 5897 Likewise. 5898 * testsuite/21_strings/basic_string_view/element_access/wchar_t/empty.cc: 5899 Likewise. 5900 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_back.cc: 5901 Likewise. 5902 * testsuite/21_strings/basic_string_view/element_access/wchar_t/front_constexpr_neg.cc: 5903 Likewise. 5904 * testsuite/21_strings/basic_string_view/include.cc: Likewise. 5905 * testsuite/21_strings/basic_string_view/inserters/94051.cc: 5906 Likewise. 5907 * testsuite/21_strings/basic_string_view/inserters/char/1.cc: 5908 Likewise. 5909 * testsuite/21_strings/basic_string_view/inserters/char/2.cc: 5910 Likewise. 5911 * testsuite/21_strings/basic_string_view/inserters/char/3.cc: 5912 Likewise. 5913 * testsuite/21_strings/basic_string_view/inserters/pod/10081-out.cc: 5914 Likewise. 5915 * testsuite/21_strings/basic_string_view/inserters/wchar_t/1.cc: 5916 Likewise. 5917 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc: 5918 Likewise. 5919 * testsuite/21_strings/basic_string_view/inserters/wchar_t/3.cc: 5920 Likewise. 5921 * testsuite/21_strings/basic_string_view/literals/types-char8_t.cc: 5922 Likewise. 5923 * testsuite/21_strings/basic_string_view/literals/types.cc: 5924 Likewise. 5925 * testsuite/21_strings/basic_string_view/literals/values-char8_t.cc: 5926 Likewise. 5927 * testsuite/21_strings/basic_string_view/literals/values.cc: 5928 Likewise. 5929 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc: 5930 Likewise. 5931 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc: 5932 Likewise. 5933 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc: 5934 Likewise. 5935 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc: 5936 Likewise. 5937 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc: 5938 Likewise. 5939 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc: 5940 Likewise. 5941 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc: 5942 Likewise. 5943 * testsuite/21_strings/basic_string_view/operations/compare/char/13650.cc: 5944 Likewise. 5945 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc: 5946 Likewise. 5947 * testsuite/21_strings/basic_string_view/operations/compare/char/70483.cc: 5948 Likewise. 5949 * testsuite/21_strings/basic_string_view/operations/compare/char/nonnull.cc: 5950 Likewise. 5951 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/1.cc: 5952 Likewise. 5953 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/13650.cc: 5954 Likewise. 5955 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/2.cc: 5956 Likewise. 5957 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc: 5958 Likewise. 5959 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc: 5960 Likewise. 5961 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc: 5962 Likewise. 5963 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc: 5964 Likewise. 5965 * testsuite/21_strings/basic_string_view/operations/data/char/1.cc: 5966 Likewise. 5967 * testsuite/21_strings/basic_string_view/operations/data/wchar_t/1.cc: 5968 Likewise. 5969 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc: 5970 Likewise. 5971 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc: 5972 Likewise. 5973 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc: 5974 Likewise. 5975 * testsuite/21_strings/basic_string_view/operations/find/char/4.cc: 5976 Likewise. 5977 * testsuite/21_strings/basic_string_view/operations/find/char/nonnull.cc: 5978 Likewise. 5979 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc: 5980 Likewise. 5981 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc: 5982 Likewise. 5983 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc: 5984 Likewise. 5985 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/4.cc: 5986 Likewise. 5987 * testsuite/21_strings/basic_string_view/operations/rfind/char/1.cc: 5988 Likewise. 5989 * testsuite/21_strings/basic_string_view/operations/rfind/char/2.cc: 5990 Likewise. 5991 * testsuite/21_strings/basic_string_view/operations/rfind/char/3.cc: 5992 Likewise. 5993 * testsuite/21_strings/basic_string_view/operations/rfind/char/nonnull.cc: 5994 Likewise. 5995 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/1.cc: 5996 Likewise. 5997 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/2.cc: 5998 Likewise. 5999 * testsuite/21_strings/basic_string_view/operations/rfind/wchar_t/3.cc: 6000 Likewise. 6001 * testsuite/21_strings/basic_string_view/operations/string_conversion/1.cc: 6002 Likewise. 6003 * testsuite/21_strings/basic_string_view/operations/substr/char/1.cc: 6004 Likewise. 6005 * testsuite/21_strings/basic_string_view/operations/substr/char/83511.cc: 6006 Likewise. 6007 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/1.cc: 6008 Likewise. 6009 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/83511.cc: 6010 Likewise. 6011 * testsuite/21_strings/basic_string_view/operators/char/2.cc: 6012 Likewise. 6013 * testsuite/21_strings/basic_string_view/operators/char/89446.cc: 6014 Likewise. 6015 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc: 6016 Likewise. 6017 * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc: 6018 Likewise. 6019 * testsuite/21_strings/basic_string_view/range_access/char/1.cc: 6020 Likewise. 6021 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc: 6022 Likewise. 6023 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/1.cc: 6024 Likewise. 6025 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char/1.cc: 6026 Likewise. 6027 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char16_t/1.cc: 6028 Likewise. 6029 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char32_t/1.cc: 6030 Likewise. 6031 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/char8_t/1.cc: 6032 Likewise. 6033 * testsuite/21_strings/basic_string_view/requirements/explicit_instantiation/wchar_t/1.cc: 6034 Likewise. 6035 * testsuite/21_strings/basic_string_view/requirements/traits_neg.cc: 6036 Likewise. 6037 * testsuite/21_strings/basic_string_view/requirements/typedefs.cc: 6038 Likewise. 6039 * testsuite/21_strings/basic_string_view/typedefs.cc: Likewise. 6040 * testsuite/21_strings/basic_string_view/types/1.cc: Likewise. 6041 * testsuite/21_strings/char_traits/requirements/char/99181.cc: 6042 Likewise. 6043 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc: 6044 60452021-05-10 Jonathan Wakely <jwakely@redhat.com> 6046 6047 * testsuite/20_util/memory_resource/1.cc: Remove -std=gnu++17 6048 from dg-options directive. 6049 * testsuite/20_util/memory_resource/2.cc: Likewise. 6050 * testsuite/20_util/monotonic_buffer_resource/1.cc: Likewise. 6051 * testsuite/20_util/monotonic_buffer_resource/93208.cc: 6052 Likewise. 6053 * testsuite/20_util/monotonic_buffer_resource/allocate.cc: 6054 Likewise. 6055 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: 6056 Likewise. 6057 * testsuite/20_util/monotonic_buffer_resource/release.cc: 6058 Likewise. 6059 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc: 6060 Likewise. 6061 * testsuite/20_util/polymorphic_allocator/1.cc: Likewise. 6062 * testsuite/20_util/polymorphic_allocator/construct_pair.cc: 6063 Likewise. 6064 * testsuite/20_util/polymorphic_allocator/resource.cc: Likewise. 6065 * testsuite/20_util/polymorphic_allocator/select.cc: Likewise. 6066 * testsuite/20_util/synchronized_pool_resource/allocate.cc: 6067 Likewise. 6068 * testsuite/20_util/synchronized_pool_resource/allocate_single.cc: 6069 Likewise. 6070 * testsuite/20_util/synchronized_pool_resource/cons.cc: 6071 Likewise. 6072 * testsuite/20_util/synchronized_pool_resource/cons_single.cc: 6073 Likewise. 6074 * testsuite/20_util/synchronized_pool_resource/is_equal.cc: 6075 Likewise. 6076 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc: 6077 Likewise. 6078 * testsuite/20_util/synchronized_pool_resource/options.cc: 6079 Likewise. 6080 * testsuite/20_util/synchronized_pool_resource/release.cc: 6081 Likewise. 6082 * testsuite/20_util/synchronized_pool_resource/release_single.cc: 6083 Likewise. 6084 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc: 6085 Likewise. 6086 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc: 6087 Likewise. 6088 * testsuite/20_util/unsynchronized_pool_resource/cons.cc: 6089 Likewise. 6090 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc: 6091 Likewise. 6092 * testsuite/20_util/unsynchronized_pool_resource/options.cc: 6093 Likewise. 6094 * testsuite/20_util/unsynchronized_pool_resource/release.cc: 6095 Likewise. 6096 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: 6097 Likewise. 6098 * testsuite/23_containers/deque/types/pmr_typedefs.cc: Likewise. 6099 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc: 6100 Likewise. 6101 * testsuite/23_containers/forward_list/pmr_typedefs.cc: 6102 Likewise. 6103 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc: 6104 Likewise. 6105 * testsuite/23_containers/list/pmr_typedefs.cc: Likewise. 6106 * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise. 6107 * testsuite/23_containers/map/pmr_typedefs.cc: Likewise. 6108 * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise. 6109 * testsuite/23_containers/multimap/pmr_typedefs.cc: Likewise. 6110 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc: 6111 Likewise. 6112 * testsuite/23_containers/multiset/pmr_typedefs.cc: Likewise. 6113 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc: 6114 Likewise. 6115 * testsuite/23_containers/set/pmr_typedefs.cc: Likewise. 6116 * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise. 6117 * testsuite/23_containers/unordered_map/pmr_typedefs.cc: 6118 Likewise. 6119 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc: 6120 Likewise. 6121 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc: 6122 Likewise. 6123 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc: 6124 Likewise. 6125 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc: 6126 Likewise. 6127 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc: 6128 Likewise. 6129 * testsuite/23_containers/unordered_set/pmr_typedefs.cc: 6130 Likewise. 6131 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc: 6132 Likewise. 6133 * testsuite/23_containers/vector/pmr_typedefs.cc: Likewise. 6134 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc: 6135 Likewise. 6136 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise. 6137 61382021-05-10 Jonathan Wakely <jwakely@redhat.com> 6139 6140 * testsuite/29_atomics/atomic/69769.cc: Remove -std=gnu++17 from 6141 dg-options. 6142 * testsuite/29_atomics/atomic/is_always_lock_free.cc: 6143 * testsuite/29_atomics/atomic/requirements/typedefs.cc: 6144 * testsuite/29_atomics/atomic_integral/is_always_lock_free.cc: 6145 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc: 6146 * testsuite/30_threads/lock_guard/cons/deduction.cc: Likewise. 6147 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise. 6148 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Likewise. 6149 * testsuite/30_threads/scoped_lock/requirements/explicit_instantiation.cc: 6150 Likewise. 6151 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: 6152 Likewise. 6153 * testsuite/30_threads/shared_lock/70766.cc: Likewise. 6154 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise. 6155 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: 6156 Likewise. 6157 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise. 6158 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc: 6159 Likewise. 6160 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise. 6161 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise. 6162 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise. 6163 * testsuite/30_threads/unique_lock/cons/deduction.cc: Likewise. 6164 61652021-05-10 Jonathan Wakely <jwakely@redhat.com> 6166 6167 * testsuite/20_util/any/assign/1.cc: Remove -std=gnu++17 from 6168 dg-options directive. 6169 * testsuite/20_util/any/assign/2.cc: Likewise. 6170 * testsuite/20_util/any/assign/emplace.cc: Likewise. 6171 * testsuite/20_util/any/assign/exception.cc: Likewise. 6172 * testsuite/20_util/any/assign/self.cc: Likewise. 6173 * testsuite/20_util/any/cons/1.cc: Likewise. 6174 * testsuite/20_util/any/cons/2.cc: Likewise. 6175 * testsuite/20_util/any/cons/90415.cc: Likewise. 6176 * testsuite/20_util/any/cons/92156.cc: Likewise. 6177 * testsuite/20_util/any/cons/aligned.cc: Likewise. 6178 * testsuite/20_util/any/cons/explicit.cc: Likewise. 6179 * testsuite/20_util/any/cons/in_place.cc: Likewise. 6180 * testsuite/20_util/any/cons/nontrivial.cc: Likewise. 6181 * testsuite/20_util/any/make_any.cc: Likewise. 6182 * testsuite/20_util/any/misc/any_cast.cc: Likewise. 6183 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise. 6184 * testsuite/20_util/any/misc/any_cast_no_rtti.cc: Likewise. 6185 * testsuite/20_util/any/misc/swap.cc: Likewise. 6186 * testsuite/20_util/any/modifiers/1.cc: Likewise. 6187 * testsuite/20_util/any/modifiers/83658.cc: Likewise. 6188 * testsuite/20_util/any/modifiers/92156.cc: Likewise. 6189 * testsuite/20_util/any/observers/type.cc: Likewise. 6190 * testsuite/20_util/any/requirements.cc: Likewise. 6191 * testsuite/20_util/any/typedefs.cc: Likewise. 6192 * testsuite/20_util/optional/77288.cc: Likewise. 6193 * testsuite/20_util/optional/84601.cc: Likewise. 6194 * testsuite/20_util/optional/assignment/1.cc: Likewise. 6195 * testsuite/20_util/optional/assignment/2.cc: Likewise. 6196 * testsuite/20_util/optional/assignment/3.cc: Likewise. 6197 * testsuite/20_util/optional/assignment/4.cc: Likewise. 6198 * testsuite/20_util/optional/assignment/5.cc: Likewise. 6199 * testsuite/20_util/optional/assignment/6.cc: Likewise. 6200 * testsuite/20_util/optional/assignment/7.cc: Likewise. 6201 * testsuite/20_util/optional/assignment/8.cc: Likewise. 6202 * testsuite/20_util/optional/assignment/9.cc: Likewise. 6203 * testsuite/20_util/optional/bad_access.cc: Likewise. 6204 * testsuite/20_util/optional/cons/77727.cc: Likewise. 6205 * testsuite/20_util/optional/cons/85642.cc: Likewise. 6206 * testsuite/20_util/optional/cons/copy.cc: Likewise. 6207 * testsuite/20_util/optional/cons/deduction.cc: Likewise. 6208 * testsuite/20_util/optional/cons/default.cc: Likewise. 6209 * testsuite/20_util/optional/cons/move.cc: Likewise. 6210 * testsuite/20_util/optional/cons/trivial.cc: Likewise. 6211 * testsuite/20_util/optional/cons/value.cc: Likewise. 6212 * testsuite/20_util/optional/cons/value_neg.cc: Likewise. 6213 * testsuite/20_util/optional/constexpr/cons/default.cc: 6214 Likewise. 6215 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise. 6216 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise. 6217 * testsuite/20_util/optional/constexpr/make_optional.cc: 6218 Likewise. 6219 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise. 6220 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise. 6221 * testsuite/20_util/optional/constexpr/observers/2.cc: Likewise. 6222 * testsuite/20_util/optional/constexpr/observers/3.cc: Likewise. 6223 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise. 6224 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise. 6225 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise. 6226 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise. 6227 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise. 6228 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise. 6229 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise. 6230 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise. 6231 * testsuite/20_util/optional/hash.cc: Likewise. 6232 * testsuite/20_util/optional/in_place.cc: Likewise. 6233 * testsuite/20_util/optional/make_optional.cc: Likewise. 6234 * testsuite/20_util/optional/nullopt.cc: Likewise. 6235 * testsuite/20_util/optional/observers/1.cc: Likewise. 6236 * testsuite/20_util/optional/observers/2.cc: Likewise. 6237 * testsuite/20_util/optional/observers/3.cc: Likewise. 6238 * testsuite/20_util/optional/observers/4.cc: Likewise. 6239 * testsuite/20_util/optional/observers/5.cc: Likewise. 6240 * testsuite/20_util/optional/observers/6.cc: Likewise. 6241 * testsuite/20_util/optional/relops/1.cc: Likewise. 6242 * testsuite/20_util/optional/relops/2.cc: Likewise. 6243 * testsuite/20_util/optional/relops/3.cc: Likewise. 6244 * testsuite/20_util/optional/relops/4.cc: Likewise. 6245 * testsuite/20_util/optional/relops/5.cc: Likewise. 6246 * testsuite/20_util/optional/relops/6.cc: Likewise. 6247 * testsuite/20_util/optional/relops/7.cc: Likewise. 6248 * testsuite/20_util/optional/requirements.cc: Likewise. 6249 * testsuite/20_util/optional/swap/1.cc: Likewise. 6250 * testsuite/20_util/optional/swap/2.cc: Likewise. 6251 * testsuite/20_util/optional/typedefs.cc: Likewise. 6252 * testsuite/20_util/variant/80165.cc: Likewise. 6253 * testsuite/20_util/variant/85183.cc: Likewise. 6254 * testsuite/20_util/variant/86874.cc: Likewise. 6255 * testsuite/20_util/variant/87431.cc: Likewise. 6256 * testsuite/20_util/variant/87619.cc: Likewise. 6257 * testsuite/20_util/variant/91807.cc: Likewise. 6258 * testsuite/20_util/variant/any.cc: Likewise. 6259 * testsuite/20_util/variant/compile.cc: Likewise. 6260 * testsuite/20_util/variant/deduction.cc: Likewise. 6261 * testsuite/20_util/variant/exception_safety.cc: Likewise. 6262 * testsuite/20_util/variant/hash.cc: Likewise. 6263 * testsuite/20_util/variant/index_type.cc: Likewise. 6264 * testsuite/20_util/variant/relops/89851.cc: Likewise. 6265 * testsuite/20_util/variant/relops/90008.cc: Likewise. 6266 * testsuite/20_util/variant/run.cc: Likewise. 6267 * testsuite/20_util/variant/visit.cc: Likewise. 6268 62692021-05-10 Jonathan Wakely <jwakely@redhat.com> 6270 6271 * testsuite/27_io/basic_filebuf/open/char/path.cc: Remove 6272 -std=gnu++17 from dg-options directive. 6273 * testsuite/27_io/basic_fstream/cons/char/path.cc: Likewise. 6274 * testsuite/27_io/basic_fstream/open/char/path.cc: Likewise. 6275 * testsuite/27_io/basic_ifstream/cons/char/path.cc: Likewise. 6276 * testsuite/27_io/basic_ifstream/open/char/path.cc: Likewise. 6277 * testsuite/27_io/basic_ofstream/cons/char/path.cc: Likewise. 6278 * testsuite/27_io/basic_ofstream/open/char/path.cc: Likewise. 6279 * testsuite/27_io/filesystem/directory_entry/86597.cc: Likewise. 6280 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc: 6281 Likewise. 6282 * testsuite/27_io/filesystem/file_status/1.cc: Likewise. 6283 * testsuite/27_io/filesystem/filesystem_error/cons.cc: Likewise. 6284 * testsuite/27_io/filesystem/filesystem_error/copy.cc: Likewise. 6285 * testsuite/27_io/filesystem/iterators/91067.cc: Likewise. 6286 * testsuite/27_io/filesystem/iterators/caching.cc: Likewise. 6287 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: 6288 Likewise. 6289 * testsuite/27_io/filesystem/iterators/pop.cc: Likewise. 6290 * testsuite/27_io/filesystem/iterators/recursion_pending.cc: 6291 Likewise. 6292 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc: 6293 Likewise. 6294 * testsuite/27_io/filesystem/operations/absolute.cc: Likewise. 6295 * testsuite/27_io/filesystem/operations/all.cc: Likewise. 6296 * testsuite/27_io/filesystem/operations/canonical.cc: Likewise. 6297 * testsuite/27_io/filesystem/operations/copy.cc: Likewise. 6298 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise. 6299 * testsuite/27_io/filesystem/operations/create_directories.cc: 6300 Likewise. 6301 * testsuite/27_io/filesystem/operations/create_directory.cc: 6302 Likewise. 6303 * testsuite/27_io/filesystem/operations/create_symlink.cc: 6304 Likewise. 6305 * testsuite/27_io/filesystem/operations/current_path.cc: 6306 Likewise. 6307 * testsuite/27_io/filesystem/operations/equivalent.cc: Likewise. 6308 * testsuite/27_io/filesystem/operations/exists.cc: Likewise. 6309 * testsuite/27_io/filesystem/operations/file_size.cc: Likewise. 6310 * testsuite/27_io/filesystem/operations/is_empty.cc: Likewise. 6311 * testsuite/27_io/filesystem/operations/last_write_time.cc: 6312 Likewise. 6313 * testsuite/27_io/filesystem/operations/permissions.cc: 6314 Likewise. 6315 * testsuite/27_io/filesystem/operations/proximate.cc: Likewise. 6316 * testsuite/27_io/filesystem/operations/read_symlink.cc: 6317 Likewise. 6318 * testsuite/27_io/filesystem/operations/relative.cc: Likewise. 6319 * testsuite/27_io/filesystem/operations/remove.cc: Likewise. 6320 * testsuite/27_io/filesystem/operations/remove_all.cc: Likewise. 6321 * testsuite/27_io/filesystem/operations/rename.cc: Likewise. 6322 * testsuite/27_io/filesystem/operations/resize_file.cc: 6323 Likewise. 6324 * testsuite/27_io/filesystem/operations/space.cc: Likewise. 6325 * testsuite/27_io/filesystem/operations/status.cc: Likewise. 6326 * testsuite/27_io/filesystem/operations/symlink_status.cc: 6327 Likewise. 6328 * testsuite/27_io/filesystem/operations/temp_directory_path.cc: 6329 Likewise. 6330 * testsuite/27_io/filesystem/operations/weakly_canonical.cc: 6331 Likewise. 6332 * testsuite/27_io/filesystem/path/append/path.cc: Likewise. 6333 * testsuite/27_io/filesystem/path/append/source.cc: Likewise. 6334 * testsuite/27_io/filesystem/path/assign/assign.cc: Likewise. 6335 * testsuite/27_io/filesystem/path/assign/copy.cc: Likewise. 6336 * testsuite/27_io/filesystem/path/compare/compare.cc: Likewise. 6337 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise. 6338 * testsuite/27_io/filesystem/path/compare/path.cc: Likewise. 6339 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise. 6340 * testsuite/27_io/filesystem/path/concat/92853.cc: Likewise. 6341 * testsuite/27_io/filesystem/path/concat/94063.cc: Likewise. 6342 * testsuite/27_io/filesystem/path/concat/path.cc: Likewise. 6343 * testsuite/27_io/filesystem/path/concat/strings.cc: Likewise. 6344 * testsuite/27_io/filesystem/path/construct/80762.cc: Likewise. 6345 * testsuite/27_io/filesystem/path/construct/90281.cc: Likewise. 6346 * testsuite/27_io/filesystem/path/construct/90634.cc: Likewise. 6347 * testsuite/27_io/filesystem/path/construct/copy.cc: Likewise. 6348 * testsuite/27_io/filesystem/path/construct/default.cc: 6349 Likewise. 6350 * testsuite/27_io/filesystem/path/construct/format.cc: Likewise. 6351 * testsuite/27_io/filesystem/path/construct/locale.cc: Likewise. 6352 * testsuite/27_io/filesystem/path/construct/range.cc: Likewise. 6353 * testsuite/27_io/filesystem/path/construct/string_view.cc: 6354 Likewise. 6355 * testsuite/27_io/filesystem/path/decompose/extension.cc: 6356 Likewise. 6357 * testsuite/27_io/filesystem/path/decompose/filename.cc: 6358 Likewise. 6359 * testsuite/27_io/filesystem/path/decompose/parent_path.cc: 6360 Likewise. 6361 * testsuite/27_io/filesystem/path/decompose/relative_path.cc: 6362 Likewise. 6363 * testsuite/27_io/filesystem/path/decompose/root_directory.cc: 6364 Likewise. 6365 * testsuite/27_io/filesystem/path/decompose/root_name.cc: 6366 Likewise. 6367 * testsuite/27_io/filesystem/path/decompose/root_path.cc: 6368 Likewise. 6369 * testsuite/27_io/filesystem/path/decompose/stem.cc: Likewise. 6370 * testsuite/27_io/filesystem/path/factory/u8path-char8_t.cc: 6371 Likewise. 6372 * testsuite/27_io/filesystem/path/factory/u8path.cc: Likewise. 6373 * testsuite/27_io/filesystem/path/generation/normal.cc: 6374 Likewise. 6375 * testsuite/27_io/filesystem/path/generation/normal2.cc: 6376 Likewise. 6377 * testsuite/27_io/filesystem/path/generation/proximate.cc: 6378 Likewise. 6379 * testsuite/27_io/filesystem/path/generation/relative.cc: 6380 Likewise. 6381 * testsuite/27_io/filesystem/path/generic/94242.cc: Likewise. 6382 * testsuite/27_io/filesystem/path/generic/generic_string.cc: 6383 Likewise. 6384 * testsuite/27_io/filesystem/path/generic/utf.cc: Likewise. 6385 * testsuite/27_io/filesystem/path/generic/wchar_t.cc: Likewise. 6386 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise. 6387 * testsuite/27_io/filesystem/path/itr/components.cc: Likewise. 6388 * testsuite/27_io/filesystem/path/itr/traversal.cc: Likewise. 6389 * testsuite/27_io/filesystem/path/modifiers/clear.cc: Likewise. 6390 * testsuite/27_io/filesystem/path/modifiers/make_preferred.cc: 6391 Likewise. 6392 * testsuite/27_io/filesystem/path/modifiers/remove_filename.cc: 6393 Likewise. 6394 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc: 6395 Likewise. 6396 * testsuite/27_io/filesystem/path/modifiers/replace_filename.cc: 6397 Likewise. 6398 * testsuite/27_io/filesystem/path/modifiers/swap.cc: Likewise. 6399 * testsuite/27_io/filesystem/path/native/alloc.cc: Likewise. 6400 * testsuite/27_io/filesystem/path/native/string-char8_t.cc: 6401 Likewise. 6402 * testsuite/27_io/filesystem/path/native/string.cc: Likewise. 6403 * testsuite/27_io/filesystem/path/nonmember/append.cc: Likewise. 6404 * testsuite/27_io/filesystem/path/nonmember/cmp.cc: Likewise. 6405 * testsuite/27_io/filesystem/path/nonmember/hash_value.cc: 6406 Likewise. 6407 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise. 6408 * testsuite/27_io/filesystem/path/query/empty_neg.cc: 6409 * testsuite/27_io/filesystem/path/query/has_extension.cc: 6410 Likewise. 6411 * testsuite/27_io/filesystem/path/query/has_filename.cc: 6412 Likewise. 6413 * testsuite/27_io/filesystem/path/query/has_parent_path.cc: 6414 Likewise. 6415 * testsuite/27_io/filesystem/path/query/has_relative_path.cc: 6416 Likewise. 6417 * testsuite/27_io/filesystem/path/query/has_root_directory.cc: 6418 Likewise. 6419 * testsuite/27_io/filesystem/path/query/has_root_name.cc: 6420 Likewise. 6421 * testsuite/27_io/filesystem/path/query/has_root_path.cc: 6422 Likewise. 6423 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise. 6424 * testsuite/27_io/filesystem/path/query/is_absolute.cc: 6425 Likewise. 6426 * testsuite/27_io/filesystem/path/query/is_relative.cc: 6427 Likewise. 6428 * testsuite/experimental/filesystem/path/construct/string_view.cc: 6429 Likewise. 6430 64312021-05-10 Jonathan Wakely <jwakely@redhat.com> 6432 6433 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_construct.cc: 6434 Remove -std=gnu++17 from dg-options. 6435 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc: 6436 Likewise. 6437 * testsuite/20_util/specialized_algorithms/pstl/uninitialized_fill_destroy.cc: 6438 Likewise. 6439 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: 6440 Likewise. 6441 * testsuite/25_algorithms/pstl/alg_merge/merge.cc: Likewise. 6442 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc: 6443 Likewise. 6444 * testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc: 6445 Likewise. 6446 * testsuite/25_algorithms/pstl/alg_modifying_operations/fill.cc: 6447 Likewise. 6448 * testsuite/25_algorithms/pstl/alg_modifying_operations/generate.cc: 6449 Likewise. 6450 * testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc: 6451 Likewise. 6452 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc: 6453 Likewise. 6454 * testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc: 6455 Likewise. 6456 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc: 6457 Likewise. 6458 * testsuite/25_algorithms/pstl/alg_modifying_operations/remove_copy.cc: 6459 Likewise. 6460 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace.cc: 6461 Likewise. 6462 * testsuite/25_algorithms/pstl/alg_modifying_operations/replace_copy.cc: 6463 Likewise. 6464 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc: 6465 Likewise. 6466 * testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc: 6467 Likewise. 6468 * testsuite/25_algorithms/pstl/alg_modifying_operations/swap_ranges.cc: 6469 Likewise. 6470 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_binary.cc: 6471 Likewise. 6472 * testsuite/25_algorithms/pstl/alg_modifying_operations/transform_unary.cc: 6473 Likewise. 6474 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc: 6475 Likewise. 6476 * testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc: 6477 Likewise. 6478 * testsuite/25_algorithms/pstl/alg_nonmodifying/adjacent_find.cc: 6479 Likewise. 6480 * testsuite/25_algorithms/pstl/alg_nonmodifying/all_of.cc: 6481 Likewise. 6482 * testsuite/25_algorithms/pstl/alg_nonmodifying/any_of.cc: 6483 Likewise. 6484 * testsuite/25_algorithms/pstl/alg_nonmodifying/count.cc: 6485 Likewise. 6486 * testsuite/25_algorithms/pstl/alg_nonmodifying/equal.cc: 6487 Likewise. 6488 * testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc: 6489 Likewise. 6490 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc: 6491 Likewise. 6492 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc: 6493 Likewise. 6494 * testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc: 6495 Likewise. 6496 * testsuite/25_algorithms/pstl/alg_nonmodifying/for_each.cc: 6497 Likewise. 6498 * testsuite/25_algorithms/pstl/alg_nonmodifying/mismatch.cc: 6499 Likewise. 6500 * testsuite/25_algorithms/pstl/alg_nonmodifying/none_of.cc: 6501 Likewise. 6502 * testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc: 6503 Likewise. 6504 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc: 6505 Likewise. 6506 * testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc: 6507 Likewise. 6508 * testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc: 6509 Likewise. 6510 * testsuite/25_algorithms/pstl/alg_sorting/includes.cc: 6511 Likewise. 6512 * testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise. 6513 * testsuite/25_algorithms/pstl/alg_sorting/is_sorted.cc: 6514 Likewise. 6515 * testsuite/25_algorithms/pstl/alg_sorting/lexicographical_compare.cc: 6516 Likewise. 6517 * testsuite/25_algorithms/pstl/alg_sorting/minmax_element.cc: 6518 Likewise. 6519 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort.cc: 6520 Likewise. 6521 * testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc: 6522 Likewise. 6523 * testsuite/25_algorithms/pstl/alg_sorting/set.cc: Likewise. 6524 * testsuite/25_algorithms/pstl/alg_sorting/sort.cc: Likewise. 6525 * testsuite/25_algorithms/pstl/feature_test-2.cc: Likewise. 6526 * testsuite/25_algorithms/pstl/feature_test-3.cc: Likewise. 6527 * testsuite/25_algorithms/pstl/feature_test-4.cc: Likewise. 6528 * testsuite/25_algorithms/pstl/feature_test-5.cc: Likewise. 6529 * testsuite/25_algorithms/pstl/feature_test.cc: Likewise. 6530 * testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc: 6531 Likewise. 6532 * testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise. 6533 * testsuite/26_numerics/pstl/numeric_ops/scan.cc: Likewise. 6534 * testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc: 6535 Likewise. 6536 * testsuite/26_numerics/pstl/numeric_ops/transform_scan.cc: 6537 Likewise. 6538 65392021-05-10 Jonathan Wakely <jwakely@redhat.com> 6540 6541 * testsuite/20_util/scoped_allocator/69293_neg.cc: Add dg-error 6542 for additional errors in C++20. 6543 * testsuite/20_util/specialized_algorithms/memory_management_tools/destroy_neg.cc: 6544 Likewise. 6545 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise. 6546 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise. 6547 65482021-05-10 Jonathan Wakely <jwakely@redhat.com> 6549 6550 * testsuite/20_util/variant/compile.cc: Rename 'any' to avoid 6551 clash with std::any. 6552 65532021-05-07 Jonathan Wakely <jwakely@redhat.com> 6554 6555 * include/std/istream (__rvalue_stream_extraction_t): Replace 6556 use of __rval_streamable. 6557 * include/std/ostream (__rvalue_stream_insertion_t): Likewise. 6558 (__rval_streamable): Remove. 6559 (_Require_derived_from_ios_base, __derived_from_ios_base): New 6560 helper for checking constraints. 6561 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Fix 6562 reference to the wrong subclause of the standard. 6563 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc: 6564 Likewise. 6565 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc: 6566 Likewise. 6567 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc: 6568 Likewise. 6569 * testsuite/27_io/basic_ostream/inserters_other/char/99692.cc: 6570 New test. 6571 * testsuite/27_io/filesystem/path/io/dr2989.cc: Adjust pruned 6572 errors. 6573 65742021-05-06 Jonathan Wakely <jwakely@redhat.com> 6575 6576 * include/bits/stl_algobase.h (__copy_move, __copy_move_backward): 6577 Improve static_assert messages. 6578 * testsuite/25_algorithms/copy/58982.cc: Adjust expected output. 6579 * testsuite/25_algorithms/copy_n/58982.cc: Likewise. 6580 65812021-05-06 Patrick Palka <ppalka@redhat.com> 6582 6583 * include/std/ranges (filter_view::_Iterator::base): Make the 6584 const& overload unconstrained and return a const reference as 6585 per LWG 3533. Make unconditionally noexcept. 6586 (transform_view::_Iterator::base): Likewise. 6587 (elements_view::_Iterator::base): Likewise. 6588 65892021-05-06 Patrick Palka <ppalka@redhat.com> 6590 6591 * include/bits/stl_iterator.h (move_iterator::base): Make the 6592 const& overload unconstrained and return a const reference as 6593 per LWG 3391. Make unconditionally noexcept. 6594 (counted_iterator::base): Likewise. 6595 * testsuite/24_iterators/move_iterator/lwg3391.cc: New test. 6596 * testsuite/24_iterators/move_iterator/move_only.cc: Adjust 6597 has_member_base concept to decay-copy the result of base(). 6598 65992021-05-06 Jonathan Wakely <jwakely@redhat.com> 6600 6601 * include/std/type_traits (remove_cvref_t): Define in terms of 6602 remove_cvref. 6603 * testsuite/20_util/remove_cvref/value.cc: Check alias. 6604 66052021-05-06 Jonathan Wakely <jwakely@redhat.com> 6606 6607 Revert: 6608 2021-05-05 Jonathan Wakely <jwakely@redhat.com> 6609 6610 * include/std/charconv (__from_chars_alnum): Pass unsigned 6611 char to std::isdigit. 6612 66132021-05-05 Patrick Palka <ppalka@redhat.com> 6614 6615 * include/bits/ranges_util.h (enable_borrowed_range<subrange>): 6616 Remove constraints on this partial specialization. 6617 * include/std/ranges (enable_borrowed_range<iota_view>): 6618 Likewise. 6619 66202021-05-05 Patrick Palka <ppalka@redhat.com> 6621 6622 * include/std/ranges (transform_view::_Iterator::iter_swap): 6623 Remove as per LWG 3520. 6624 (join_view::_Iterator::iter_swap): Add indirectly_swappable 6625 constraint as per LWG 3517. 6626 66272021-05-05 Jonathan Wakely <jwakely@redhat.com> 6628 6629 * testsuite/20_util/function_objects/invoke/3.cc: Check feature 6630 test macro. 6631 * testsuite/20_util/function_objects/invoke/version.cc: New test. 6632 66332021-05-05 Jonathan Wakely <jwakely@redhat.com> 6634 6635 * include/std/charconv (__from_chars_alnum): Pass unsigned 6636 char to std::isdigit. 6637 66382021-05-05 Corentin Gay <gay@adacore.com> 6639 6640 * acinclude.m4: Add VxWorks-specific case for the 6641 configuration of ctypes. 6642 * configure: Regenerate. 6643 * config/locale/vxworks/ctype_members.cc: Add VxWorks-specific 6644 version. 6645 * config/os/vxworks/ctype_base.h: Adjust for VxWorks7+. 6646 * config/os/vxworks/ctype_configure_char.cc: Likewise. 6647 * config/os/vxworks/ctype_inline.h: Likewise. 6648 * testsuite/28_regex/traits/char/isctype.cc: Defines 6649 NEWLINE_IN_CLASS_BLANK if the target is VxWorks. 6650 * testsuite/28_regex/traits/wchar_t/isctype.cc: Likewise. 6651 66522021-05-04 Jonathan Wakely <jwakely@redhat.com> 6653 6654 * include/std/future (promise::set_value): Check for existence 6655 of shared state before dereferncing it. 6656 (promise::set_exception, promise::set_value_at_thread_exit) 6657 (promise::set_exception_at_thread_exit): Likewise. 6658 (promise<R&>::set_value, promise<R&>::set_exception) 6659 (promise<R&>::set_value_at_thread_exit) 6660 (promise<R&>::set_exception_at_thread_exit): Likewise. 6661 (promise<void>::set_value, promise<void>::set_exception) 6662 (promise<void>::set_value_at_thread_exit) 6663 (promise<void>::set_exception_at_thread_exit): Likewise. 6664 * testsuite/30_threads/promise/members/at_thread_exit2.cc: 6665 Remove unused variable. 6666 66672021-05-04 Jonathan Wakely <jwakely@redhat.com> 6668 6669 * include/bits/basic_string.h (basic_string(const CharT*, const A&)): 6670 Do not do arithmetic on null pointer. 6671 66722021-05-04 Jonathan Wakely <jwakely@redhat.com> 6673 6674 * include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp 6675 (find_key_pointer(key_const_reference, false_type)) 6676 (find_key_pointer(key_const_reference, true_type)): Do not 6677 dereference null pointer. 6678 66792021-05-04 Jonathan Wakely <jwakely@redhat.com> 6680 6681 * testsuite/20_util/from_chars/3.cc: Use unsigned type to avoid 6682 overflow. 6683 * testsuite/24_iterators/reverse_iterator/2.cc: Do not add 6684 non-zero value to null pointer. 6685 * testsuite/25_algorithms/copy_backward/move_iterators/69478.cc: 6686 Use past-the-end iterator for result. 6687 * testsuite/25_algorithms/move_backward/69478.cc: Likewise. 6688 * testsuite/25_algorithms/move_backward/93872.cc: Likewise. 6689 66902021-05-04 Jonathan Wakely <jwakely@redhat.com> 6691 6692 PR libstdc++/100384 6693 * include/std/variant (__get_t): New alias template yielding the 6694 return type of std::get<N> on a variant. 6695 (__visit_result_t): New alias template yielding the result of 6696 std::visit. 6697 (__same_types): Move into namespace __detail::__variant. 6698 (__check_visitor_results): Likewise. Use __invoke_result_t and 6699 __get_t. 6700 (__check_visitor_result): Remove. 6701 (visit): Use __visit_result_t for return type. 6702 * testsuite/20_util/variant/100384.cc: New test. 6703 67042021-05-04 Jonathan Wakely <jwakely@redhat.com> 6705 6706 * acinclude.m4 (GLIBCXX_ENABLE_INT128_FLOAT128): Remove 6707 checks for __int128 and rename to GLIBCXX_ENABLE_FLOAT128. 6708 * config.h.in: Regenerate. 6709 * configure: Regenerate. 6710 * configure.ac: Adjust to use GLIBCXX_ENABLE_FLOAT128. 6711 * include/bits/random.h (_Select_uint_least_t<s, 1>): 6712 Use __SIZEOF_INT128__ to decide whether to use __int128. 6713 * include/std/charconv (__to_chars_unsigned_type): Likewise. 6714 67152021-05-03 Gerald Pfeifer <gerald@pfeifer.com> 6716 6717 * doc/xml/manual/ctype.xml: Move unix.org reference to https. 6718 * doc/html/manual/facets.html: Regenerate. 6719 67202021-04-30 Patrick Palka <ppalka@redhat.com> 6721 6722 * include/std/ranges (__detail::__non_propating_cache): Define 6723 as per P2328. 6724 (join_view): Remove constraints on the value and reference types 6725 of the wrapped iterator type as per P2328. 6726 (join_view::_Iterator::_M_satisfy): Adjust as per P2328. 6727 (join_view::_Iterator::operator++): Likewise. 6728 (join_view::_M_inner): Use __non_propating_cache as per P2328. 6729 Remove now-redundant use of __maybe_present_t. 6730 * testsuite/std/ranges/adaptors/join.cc: Include <array>. 6731 (test10): New test. 6732 67332021-04-30 Jonathan Wakely <jwakely@redhat.com> 6734 6735 * include/bits/basic_string.h (__cpp_lib_constexpr_string): 6736 Only define for C++17 and later. 6737 * include/std/version (__cpp_lib_semaphore): Fix condition 6738 to match the one in <semaphore>. 6739 67402021-04-30 Jonathan Wakely <jwakely@redhat.com> 6741 6742 * acinclude.m4 (GLIBCXX_CHECK_INT64_T): Delete. 6743 * config.h.in: Regenerate. 6744 * configure: Regenerate. 6745 * configure.ac: Do not use GLIBCXX_CHECK_INT64_T. 6746 * include/bits/postypes.h: Remove include of <stdint.h> and 6747 definition/undefinition of the __STDC_LIMIT_MACROS and 6748 __STDC_CONSTANT_MACROS macros. 6749 (streamoff): Use __INT64_TYPE__ if defined. 6750 67512021-04-30 Patrick Palka <ppalka@redhat.com> 6752 6753 * include/std/ranges (split_view::_InnerIter::operator++): 6754 Depend on _Base instead of _Vp directly, as per LWG 3532. 6755 67562021-04-30 Patrick Palka <ppalka@redhat.com> 6757 6758 * include/bits/ranges_util.h (subrange::subrange): Avoid 6759 list-initialization in delegating constructor. 6760 * include/std/ranges (single_view): Replace implicit guide 6761 with explicit deduction guide that decays its argument. 6762 (_Single::operator()): Avoid CTAD when constructing the 6763 single_view object. 6764 (_Iota::operator()): Avoid list-initialization. 6765 (__detail::__can_filter_view, _Filter::operator()): Likewise. 6766 (__detail::__can_transform_view, _Transform::operator()): Likewise. 6767 (take_view::begin): Likewise. 6768 (__detail::__can_take_view, _Take::operator()): Likewise. 6769 (__detail::__can_take_while_view, _TakeWhile::operator()): Likewise. 6770 (__detail::__can_drop_view, _Drop::operator()): Likewise. 6771 (__detail::__can_drop_while_view, _DropWhile::operator()): Likewise. 6772 (split_view::split_view): Use views::single when initializing 6773 _M_pattern. 6774 (__detail::__can_split_view, _Split::operator()): Avoid 6775 list-initialization. 6776 (_Counted::operator()): Likewise. 6777 * testsuite/std/ranges/p2367.cc: New test. 6778 67792021-04-30 Jonathan Wakely <jwakely@redhat.com> 6780 6781 PR libstdc++/60497 6782 * include/bits/basic_ios.tcc (basic_ios::copyfmt): use 6783 std::addressof. 6784 * include/bits/basic_string.tcc (basic_string::swap) 6785 (basic_string::assign): Likewise. 6786 * include/bits/deque.tcc (deque::operator=(const deque&)): 6787 Likewise. 6788 * include/bits/stl_tree.h (_Rb_tree::operator=(const * _Rb_tree&)): 6789 Likewise. 6790 * include/bits/vector.tcc (vector::operator=(const vector&)): 6791 Likewise. 6792 67932021-04-30 Jonathan Wakely <jwakely@redhat.com> 6794 6795 * include/std/istream (operator>>(Istream&&, x&)): Simplify, as 6796 per LWG 1203. 6797 * include/std/ostream (operator<<(Ostream&&, const x&)): 6798 Likewise. 6799 * testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc: 6800 Adjust dg-error pattern. 6801 * testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc: 6802 Likewise. 6803 * testsuite/27_io/basic_istream/extractors_other/char/4.cc: Define 6804 is_extractable trait to replace std::__is_extractable. Make it 6805 work with rvalue streams as well as lvalues, to replace f() and 6806 g() helper functions. 6807 * testsuite/27_io/basic_istream/extractors_other/wchar_t/4.cc: 6808 Likewise. 6809 * testsuite/27_io/basic_ostream/inserters_other/char/6.cc: 6810 Define is_insertable trait to replace std::__is_insertable. Make 6811 it work with rvalue streams as well as lvalues, to replace f() 6812 and g() helper functions. 6813 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc: 6814 Likewise. 6815 * testsuite/27_io/filesystem/path/io/dr2989.cc: Prune additional 6816 errors from new constraints. 6817 * testsuite/27_io/rvalue_streams-2.cc: Remove PR 80675 checks, 6818 which are no longer expected to compile. 6819 * testsuite/27_io/rvalue_streams.cc: Adjust existing test. 6820 Verify LWG 1203 changes. 6821 68222021-04-30 Jonathan Wakely <jwakely@redhat.com> 6823 6824 PR libstdc++/100285 6825 * include/experimental/socket (__basic_socket_impl::set_option) 6826 (__basic_socket_impl::get_option) [!_GLIBCXX_HAVE_SYS_SOCKET_H]: 6827 Just set error code. 6828 * testsuite/experimental/net/socket/socket_base.cc: CHeck 6829 for <sys/socket.h> not <socket.h>. 6830 68312021-04-30 Jonathan Wakely <jwakely@redhat.com> 6832 6833 PR libstdc++/100180 6834 PR libstdc++/100286 6835 PR libstdc++/100351 6836 * testsuite/experimental/net/internet/address/v4/comparisons.cc: 6837 Use new effective-target keyword. 6838 * testsuite/experimental/net/internet/address/v4/cons.cc: 6839 Likewise. 6840 * testsuite/experimental/net/internet/address/v4/creation.cc: 6841 Likewise. 6842 * testsuite/experimental/net/internet/address/v4/members.cc: 6843 Likewise. 6844 * testsuite/experimental/net/internet/address/v6/members.cc: 6845 Likewise. 6846 * testsuite/experimental/net/internet/resolver/base.cc: 6847 Likewise. 6848 * testsuite/experimental/net/internet/resolver/ops/lookup.cc: 6849 Likewise. 6850 * testsuite/experimental/net/internet/resolver/ops/reverse.cc: 6851 Likewise. 6852 * testsuite/experimental/net/internet/socket/opt.cc: 6853 Likewise. 6854 * testsuite/experimental/net/internet/tcp.cc: 6855 Likewise. 6856 * testsuite/experimental/net/internet/udp.cc: 6857 Likewise. 6858 * testsuite/lib/libstdc++.exp (check_effective_target_net_ts_ip): 6859 New proc to check net_ts_ip et. 6860 68612021-04-28 Jonathan Wakely <jwakely@redhat.com> 6862 6863 PR libstdc++/97930 6864 * testsuite/20_util/pair/requirements/structural.cc: New test. 6865 68662021-04-28 Jonathan Wakely <jwakely@redhat.com> 6867 6868 * include/bits/stl_pair.h (pair) [__cplusplus > 202002]: Add 6869 new definitions for constructors and assignment operators using 6870 concepts for constraints. 6871 * testsuite/20_util/pair/cons/99957.cc: Disable for C++20 and 6872 later. 6873 * testsuite/20_util/pair/cons/explicit_construct.cc: Adjust 6874 expected error messages to also match C++20 errors. 6875 68762021-04-28 Jonathan Wakely <jwakely@redhat.com> 6877 6878 PR libstdc++/99957 6879 * include/bits/stl_pair.h (_PCC::_MoveCopyPair, _PCC::_CopyMovePair): 6880 Combine and replace with ... 6881 (_PCC::_DeprConsPair): New SFINAE helper function. 6882 (pair): Merge preprocessor blocks so that all C++03 members 6883 are defined together at the end. 6884 (pair::pair(const _T1&, _U2&&), pair::pair(_U1&&, const _T2&)): 6885 Replace _T1 and _T2 parameters with __null_ptr_constant and 6886 adjust constraints. 6887 * testsuite/20_util/pair/40925.cc: Use nullptr instead of 0. 6888 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise. 6889 * testsuite/20_util/pair/cons/99957.cc: New test. 6890 68912021-04-28 Jonathan Wakely <jwakely@redhat.com> 6892 6893 * include/bits/basic_string.h (__cpp_lib_constexpr_string): Define. 6894 * include/std/version (__cpp_lib_constexpr_string): Define. 6895 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++17.cc: 6896 Check for __cpp_lib_constexpr_string. 6897 * testsuite/21_strings/char_traits/requirements/constexpr_functions_c++20.cc: 6898 Likewise. 6899 * testsuite/21_strings/char_traits/requirements/version.cc: New test. 6900 69012021-04-28 Jonathan Wakely <jwakely@redhat.com> 6902 6903 * doc/Makefile.am (stamp-pdf-doxygen): Improve comment about 6904 dealing with errors. Use '@' to prevent shell command being 6905 echoed. 6906 * doc/Makefile.in: Regenerate. 6907 69082021-04-28 Jonathan Wakely <jwakely@redhat.com> 6909 6910 PR libstdc++/100298 6911 * include/bits/std_thread.h (thread::hardware_concurrency): Add 6912 missing noexcept to inline definition for non-gthreads targets. 6913 69142021-04-28 Patrick Palka <ppalka@redhat.com> 6915 6916 PR libstdc++/100187 6917 PR libstdc++/100237 6918 PR libstdc++/100249 6919 PR libstdc++/100287 6920 * include/bits/ranges_algo.h (__search_n_fn::operator()): Give 6921 the __value_comp lambda an explicit bool return type. 6922 (__is_permutation_fn::operator()): Give the __proj_scan local 6923 variable auto&& return type. Give the __comp_scan lambda an 6924 explicit bool return type. 6925 (__remove_fn::operator()): Give the __pred lambda an explicit 6926 bool return type. 6927 (__partition_fn::operator()): Don't std::move __first twice 6928 when returning an empty subrange. 6929 (__min_fn::operator()): Don't std::move __comp. 6930 (__max_fn::operator()): Likewise. 6931 (__minmax_fn::operator()): Likewise. 6932 69332021-04-27 Patrick Palka <ppalka@redhat.com> 6934 6935 PR libstdc++/100290 6936 * include/std/ranges (join_view::_Iterator::operator++): Correct 6937 the return type of the lambda to avoid returning a copy of 6938 _M_parent->_M_inner. 6939 * testsuite/std/ranges/adaptors/join.cc (test10): New test. 6940 69412021-04-27 Jakub Jelinek <jakub@redhat.com> 6942 6943 Revert: 6944 2021-04-22 Jakub Jelinek <jakub@redhat.com> 6945 6946 PR target/100182 6947 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for 6948 ia32. 6949 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for 6950 ia32. 6951 69522021-04-27 Jonathan Wakely <jwakely@redhat.com> 6953 6954 * include/experimental/internet (address_v6::bytes_type): Adjust 6955 formatting. 6956 (basic_endpoint): Define _M_is_v6() to put all checks for 6957 AF_INET6 in one place. 6958 (basic_endpoint::resize): Simplify. 6959 (operator==(const tcp&, const tcp&)): Add constexpr and noexcept. 6960 (operator!=(const tcp&, const tcp&)): Likewise. 6961 (operator==(const udp&, const udp&)): Likewise. 6962 (operator!=(const udp&, const udp&)): Likewise. 6963 * testsuite/experimental/net/internet/tcp.cc: New test. 6964 * testsuite/experimental/net/internet/udp.cc: New test. 6965 69662021-04-27 Jonathan Wakely <jwakely@redhat.com> 6967 6968 PR libstdc++/100286 6969 * include/experimental/internet (resolver_errc, resolver_category()) 6970 (make_error_code, make_error_condition): Define unconditionally, 6971 only make enumerators and use of gai_strerror depend on the 6972 availability of <netdb.h>. 6973 (address_v4::to_string): Use correct constant for string length. 6974 (address_v4::to_string, address_v6::to_string): Define 6975 unconditionally, throw if unsupported. 6976 (make_address_v4, make_address_v6): Define unconditionally. 6977 Return an error if unsupported. 6978 (tcp, udp, v6_only, unicast::hops, multicast::*): Define 6979 conditionally, 6980 * testsuite/experimental/net/internet/socket/opt.cc: Check for 6981 <netinet/in.h> and <netinet/tcp.h> before using types from 6982 namespace net::ip. 6983 69842021-04-27 Jonathan Wakely <jwakely@redhat.com> 6985 6986 PR libstdc++/100285 6987 * include/experimental/internet (resolver_base::flags): 6988 Define overloaded operators as hidden friends. 6989 * include/experimental/socket (socket_base::message_flags): 6990 Likewise. 6991 69922021-04-26 Jonathan Wakely <jwakely@redhat.com> 6993 6994 * include/experimental/internet (tcp::no_delay, v6_only) 6995 (unicast::hops, multicast::hops, multicast::enable_loopback): 6996 Change access of base class and static data members. Add 6997 using-declaration for __socket_crtp::operator=(_Tp). 6998 (multicast::__mcastopt): New type. 6999 (multicast::join_group, multicast::leave_group): Derive from 7000 __mcastopt for common implementation. 7001 * include/experimental/socket: Add comment. 7002 * testsuite/experimental/net/internet/socket/opt.cc: New test. 7003 * testsuite/experimental/net/socket/socket_base.cc: Check for 7004 protected constructor/destructor of socket_base. Check for 7005 explicit constructors of socket option classes. 7006 70072021-04-26 Jonathan Wakely <jwakely@redhat.com> 7008 7009 * include/experimental/bits/net.h (__socket_base): Add 7010 bool template parameter to allow BooleanSocketOption and 7011 IntegerSocketOption to have different __socket_base<int> 7012 base classes. 7013 (__socket_base<bool>): Adjust base class. 7014 (__socket_base<int>): Add partial specialization. 7015 (__socket_crtp::operator=(_Tp)): Add noexcept-specifier. 7016 * include/experimental/socket (socket_base::broadcast) 7017 (socket_base::debug, socket_base::do_not_route) 7018 (socket_base::keep_alive, socket_base::linger) 7019 (socket_base::out_of_band_inline) 7020 (socket_base::receive_buffer_size) 7021 (socket_base::receive_low_watermark) 7022 (socket_base::reuse_address, socket_base::send_buffer_size) 7023 (socket_base::send_low_watermark): Add using-declaration for 7024 __socket_crtp::operator=(_Tp). 7025 * testsuite/experimental/net/socket/socket_base.cc: Check 7026 properties of socket option types. 7027 70282021-04-26 Jonathan Wakely <jwakely@redhat.com> 7029 7030 * include/experimental/internet (resolver_base::flags): Remove 7031 enumerators. Initialize constants directly with desired values. 7032 Make all operators constexpr and noexcept. 7033 * testsuite/experimental/net/internet/resolver/base.cc: Use 7034 __gnu_test::test_bitmask_values for bitmask type. Check 7035 construction and destruction is protected. 7036 70372021-04-26 Jonathan Wakely <jwakely@redhat.com> 7038 7039 * include/bits/semaphore_base.h: Include <exception> and <errno.h>. 7040 70412021-04-26 Jonathan Wakely <jwakely@redhat.com> 7042 7043 PR libstdc++/100259 7044 * include/experimental/internet (net::ip::make_error_code) 7045 (net::ip::make_error_condition, net::ip::make_network_v4) 7046 (net::ip::operator==(const udp&, const udp&)): Add 'inline'. 7047 70482021-04-24 David Edelsohn <dje.gcc@gmail.com> 7049 7050 * testsuite/lib/dg-options.exp (atomic_link_flags): New. 7051 (add_options_for_libatomic): Use atomic_link_flags. 7052 70532021-04-23 Jonathan Wakely <jwakely@redhat.com> 7054 7055 PR libstdc++/100180 7056 * include/experimental/io_context (io_context): Define 7057 dummy_pollfd type so that most member functions still compile 7058 without <poll.h> and struct pollfd. 7059 70602021-04-23 Jonathan Wakely <jwakely@redhat.com> 7061 7062 * include/experimental/io_context (io_context::async_wait): Add 7063 comment. 7064 * include/experimental/socket (basic_socket::async_connect): 7065 Cast wait_type constant to int. 7066 (basic_datagram_socket::async_receive): Likewise. 7067 (basic_datagram_socket::async_receive_from): Likewise. 7068 (basic_datagram_socket::async_send): Likewise. 7069 (basic_datagram_socket::async_send_to): Likewise. 7070 (basic_stream_socket::async_receive): Likewise. 7071 (basic_stream_socket::async_send): Likewise. Use io_context 7072 parameter directly, instead of via an executor. 7073 (basic_socket_acceptor::async_accept): Likewise. 7074 70752021-04-23 Jonathan Wakely <jwakely@redhat.com> 7076 7077 * include/experimental/socket (socket_base::shutdown_type): 7078 (socket_base::wait_type, socket_base::message_flags): 7079 Remove enumerators. Initialize constants directly with desired 7080 values. 7081 (socket_base::message_flags): Make all operators constexpr and 7082 noexcept. 7083 * testsuite/util/testsuite_common_types.h (test_bitmask_values): 7084 New test utility. 7085 * testsuite/experimental/net/socket/socket_base.cc: New test. 7086 70872021-04-22 David Edelsohn <dje.gcc@gmail.com> 7088 7089 * config/os/aix/atomicity.h: Delete. 7090 70912021-04-22 Jonathan Wakely <jwakely@redhat.com> 7092 7093 * include/bits/atomic_timed_wait.h (__cond_wait_until_impl): 7094 Handle system_clock as well as steady_clock. 7095 * testsuite/30_threads/semaphore/try_acquire_for.cc: Re-enable. 7096 * testsuite/30_threads/semaphore/try_acquire_until.cc: 7097 Re-enable. 7098 70992021-04-22 Jonathan Wakely <jwakely@redhat.com> 7100 7101 * testsuite/30_threads/semaphore/try_acquire_posix.cc: Add 7102 options for libatomic. 7103 71042021-04-22 Jonathan Wakely <jwakely@redhat.com> 7105 7106 * config/os/gnu-linux/os_defines.h: Fix type in comment. 7107 71082021-04-22 Jonathan Wakely <jwakely@redhat.com> 7109 7110 PR libstdc++/99006 7111 * include/bits/shared_ptr.h (allocate_shared): Assert that _Tp 7112 is not an array type. 7113 * include/bits/shared_ptr_base.h (__allocate_shared): Likewise. 7114 * testsuite/20_util/shared_ptr/creation/99006.cc: New test. 7115 71162021-04-22 Thomas Rodgers <rodgert@twrodgers.com> 7117 7118 * include/bits/atomic_wait.h: Always notify waiters in the 7119 case of 'bare' address notification. 7120 71212021-04-22 Jakub Jelinek <jakub@redhat.com> 7122 7123 PR target/100182 7124 * testsuite/29_atomics/atomic_float/1.cc: Add dg-xfail-run-if for 7125 ia32. 7126 * testsuite/29_atomics/atomic_float/wait_notify.cc: Add dg-skip-if for 7127 ia32. 7128 71292021-04-22 Jonathan Wakely <jwakely@redhat.com> 7130 7131 PR libstdc++/100179 7132 * include/bits/semaphore_base.h: Remove #error. 7133 * include/std/semaphore: Do not define anything unless one of 7134 the implementations is available. 7135 71362021-04-21 Thomas Rodgers <rodgert@twrodgers.com> 7137 7138 * include/bits/semaphore_base.h: Always reload __old in 7139 __atomic_semaphore::_S_do_try_acquire(). 7140 * testsuite/30_threads/stop_token/stop_callback/destroy.cc: 7141 re-enable testcase. 7142 71432021-04-21 Philippe Blain <levraiphilippeblain@gmail.com> 7144 Jonathan Wakely <jwakely@redhat.com> 7145 7146 PR libstdc++/99453 7147 * python/Makefile.am: Install libstdc++*-gdb.py more robustly. 7148 * python/Makefile.in: Regenerate. 7149 71502021-04-21 Thomas Rodgers <rodgert@twrodgers.com> 7151 7152 * include/bits/semaphore_base.h: Add missing _M_try_acquire() 7153 member to __platform_wait. 7154 71552021-04-21 Jonathan Wakely <jwakely@redhat.com> 7156 7157 * include/std/latch: Replace tab characters in license text. 7158 * include/std/semaphore: Likewise. 7159 71602021-04-21 Jakub Jelinek <jakub@redhat.com> 7161 7162 PR libstdc++/100164 7163 * acinclude.m4: For POSIX semaphores AC_DEFINE HAVE_POSIX_SEMAPHORE 7164 rather than _GLIBCXX_HAVE_POSIX_SEMAPHORE. 7165 * configure: Regenerated. 7166 * config.h.in: Regenerated. 7167 71682021-04-20 Jonathan Wakely <jwakely@redhat.com> 7169 7170 * testsuite/30_threads/semaphore/try_acquire_for.cc: Disable 7171 test for targets not using futexes for semaphores. 7172 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise. 7173 * testsuite/30_threads/stop_token/stop_callback/destroy.cc: 7174 Disable for all targets. 7175 71762021-04-20 Thomas Rodgers <trodgers@redhat.com> 7177 7178 * include/Makefile.am: Add new <bits/this_thread_sleep.h> header. 7179 * include/Makefile.in: Regenerate. 7180 * include/bits/this_thread_sleep.h: New file. 7181 * include/bits/atomic_base.h: Adjust all calls 7182 to __atomic_wait/__atomic_notify for new call signatures. 7183 * include/bits/atomic_timed_wait.h: Extensive rewrite. 7184 * include/bits/atomic_wait.h: Likewise. 7185 * include/bits/semaphore_base.h: Adjust all calls 7186 to __atomic_wait/__atomic_notify for new call signatures. 7187 * include/std/atomic: Likewise. 7188 * include/std/barrier: Likewise. 7189 * include/std/latch: Likewise. 7190 * include/std/semaphore: Likewise. 7191 * include/std/thread (this_thread::sleep_for) 7192 (this_thread::sleep_until): Move to new header. 7193 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Simplify 7194 test. 7195 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise. 7196 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise. 7197 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise. 7198 * testsuite/29_atomics/atomic_float/wait_notify.cc: Likewise. 7199 * testsuite/29_atomics/atomic_integral/wait_notify.cc: Likewise. 7200 * testsuite/29_atomics/atomic_ref/wait_notify.cc: Likewise. 7201 72022021-04-20 Patrick Palka <ppalka@redhat.com> 7203 7204 PR libstdc++/95983 7205 * include/bits/stl_iterator.h (__detail::__move_iter_cat): 7206 Define. 7207 (move_iterator): Derive from the above in C++20 in order to 7208 conditionally define iterator_category as per P2259. 7209 (move_iterator::__base_cat): No longer used, so remove. 7210 (move_iterator::iterator_category): Remove in C++20. 7211 (__detail::__common_iter_use_postfix_proxy): Define. 7212 (common_iterator::_Proxy): Rename to ... 7213 (common_iterator:__arrow_proxy): ... this. 7214 (common_iterator::__postfix_proxy): Define as per P2259. 7215 (common_iterator::operator->): Adjust. 7216 (common_iterator::operator++): Adjust as per P2259. 7217 (iterator_traits<common_iterator>::_S_iter_cat): Define. 7218 (iterator_traits<common_iterator>::iterator_category): Change as 7219 per P2259. 7220 (__detail::__counted_iter_value_type): Define. 7221 (__detail::__counted_iter_concept): Define. 7222 (__detail::__counted_iter_cat): Define. 7223 (counted_iterator): Derive from the above three classes in order 7224 to conditionally define value_type, iterator_concept and 7225 iterator category respectively as per P2259. 7226 (counted_iterator::operator->): Define as per P2259. 7227 (incrementable_traits<counted_iterator>): Remove as per P2259. 7228 (iterator_traits<counted_iterator>): Adjust as per P2259. 7229 * include/std/ranges (__detail::__iota_view_iter_cat): Define. 7230 (iota_view::_Iterator): Derive from the above in order to 7231 conditionally define iterator_category as per P2259. 7232 (iota_view::_S_iter_cat): Rename to ... 7233 (iota_view::_S_iter_concept): ... this. 7234 (iota_view::iterator_concept): Use it to apply LWG 3291 changes. 7235 (iota_view::iterator_category): Remove. 7236 (__detail::__filter_view_iter_cat): Define. 7237 (filter_view::_Iterator): Derive from the above in order to 7238 conditionally define iterator_category as per P2259. 7239 (filter_view::_Iterator): Move to struct __filter_view_iter_cat. 7240 (filter_view::_Iterator::iterator_category): Remove. 7241 (transform_view::_Base): Define. 7242 (transform_view::__iter_cat): Define. 7243 (transform_view::_Iterator): Derive from the above in order to 7244 conditionally define iterator_category as per P2259. 7245 (transform_view::_Iterator::_Base): Just alias 7246 transform_view::_Base. 7247 (transform_view::_Iterator::_S_iter_cat): Move to struct 7248 transform_view::__iter_cat. 7249 (transform_view::_Iterator::iterator_category): Remove. 7250 (transform_view::_Sentinel::_Base): Just alias 7251 transform_view::_Base. 7252 (join_view::_Base): Define. 7253 (join_view::_Outer_iter): Define. 7254 (join_view::_Inner_iter): Define. 7255 (join_view::_S_ref_is_glvalue): Define. 7256 (join_view::__iter_cat): Define. 7257 (join_view::_Iterator): Derive from it in order to conditionally 7258 define iterator_category as per P2259. 7259 (join_view::_Iterator::_Base): Just alias join_view::_Base. 7260 (join_view::_Iterator::_S_ref_is_glvalue): Just alias 7261 join_view::_S_ref_is_glvalue. 7262 (join_view::_Iterator::_S_iter_cat): Move to struct 7263 transform_view::__iter_cat. 7264 (join_view::_Iterator::_Outer_iter): Just alias 7265 join_view::_Outer_iter. 7266 (join_view::_Iterator::_Inner_iter): Just alias 7267 join_view::_Inner_iter. 7268 (join_view::_Iterator::iterator_category): Remove. 7269 (join_view::_Sentinel::_Base): Just alias join_view::_Base. 7270 (__detail::__split_view_outer_iter_cat): Define. 7271 (__detail::__split_view_inner_iter_cat): Define. 7272 (split_view::_Base): Define. 7273 (split_view::_Outer_iter): Derive from __split_view_outer_iter_cat 7274 in order to conditionally define iterator_category as per P2259. 7275 (split_view::_Outer_iter::iterator_category): Remove. 7276 (split_view::_Inner_iter): Derive from __split_view_inner_iter_cat 7277 in order to conditionally define iterator_category as per P2259. 7278 (split_view::_Inner_iter::_S_iter_cat): Move to 7279 __split_view_inner_iter_cat. 7280 (split_view::_Inner_iter::iterator_category): Remove. 7281 (elements_view::_Base): Define. 7282 (elements_view::__iter_cat): Define. 7283 (elements_view::_Iterator): Derive from the above in order to 7284 conditionall define iterator_category as per P2259. 7285 (elements_view::_Iterator::_Base): Just alias 7286 elements_view::_Base. 7287 (elements_view::_Iterator::_S_iter_concept) 7288 (elements_view::_Iterator::iterator_concept): Define as per 7289 P2259. 7290 (elements_view::_Iterator::iterator_category): Remove. 7291 (elements_view::_Sentinel::_Base): Just alias 7292 elements_view::_Base. 7293 * testsuite/24_iterators/headers/iterator/synopsis_c++20.cc: 7294 Adjust constraints on iterator_traits<counted_iterator>. 7295 * testsuite/std/ranges/p2259.cc: New test. 7296 72972021-04-20 Jonathan Wakely <jwakely@redhat.com> 7298 7299 PR libstdc++/100146 7300 * include/std/charconv (__cpp_lib_to_chars): Define 7301 conditionally. 7302 * include/std/version (__cpp_lib_to_chars): Likewise.. 7303 * testsuite/20_util/from_chars/4.cc: Only check feature test 7304 macro, not _GLIBCXX_HAVE_USELOCALE. 7305 * testsuite/20_util/from_chars/5.cc: Likewise. 7306 * testsuite/20_util/from_chars/6.cc: Likewise. 7307 * testsuite/20_util/to_chars/long_double.cc: Likewise. 7308 73092021-04-20 Jakub Jelinek <jakub@redhat.com> 7310 7311 * testsuite/util/testsuite_abi.cc (compare_symbols): If any symbol 7312 versions with _IEEE128_ substring are found, set ieee_version_found 7313 to true. Ignore missing symbols with _IEEE128_ in version name if 7314 !ieee_version_found. Use i->first as version_name instead of 7315 i->second.version_name if the latter is empty. 7316 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update. 7317 73182021-04-19 H.J. Lu <hjl.tools@gmail.com> 7319 7320 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: 7321 Updated. 7322 73232021-04-17 Jakub Jelinek <jakub@redhat.com> 7324 7325 * config/abi/post/powerpc-linux-gnu/baseline_symbols.txt: Update. 7326 * config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt: Update. 7327 73282021-04-17 Jakub Jelinek <jakub@redhat.com> 7329 7330 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. 7331 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update. 7332 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update. 7333 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update. 7334 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update. 7335 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update. 7336 73372021-04-15 Jonathan Wakely <jwakely@redhat.com> 7338 7339 * testsuite/lib/dg-options.exp (add_options_for_libatomic): Also 7340 add libatomic options for 32-bit sparc*-*-linux-gnu. 7341 73422021-04-15 Jonathan Wakely <jwakely@redhat.com> 7343 7344 PR libstdc++/96657 7345 * libsupc++/Makefile.am: Add atomicity.cc here. 7346 * src/c++98/Makefile.am: Remove it from here. 7347 * libsupc++/Makefile.in: Regenerate. 7348 * src/c++98/Makefile.in: Regenerate. 7349 * testsuite/18_support/exception_ptr/96657.cc: New test. 7350 73512021-04-13 Jonathan Wakely <jwakely@redhat.com> 7352 7353 PR libstdc++/100060 7354 * include/std/bit: Only include <ext/numeric_traits.h> for 7355 hosted build, use <limits> otherwise. 7356 73572021-04-13 Jonathan Wakely <jwakely@redhat.com> 7358 7359 * doc/xml/manual/backwards_compatibility.xml: Remove porting 7360 notes for libg++ and libstdc++-v2, and bibliography. 7361 * doc/html/*: Regenerated. 7362 73632021-04-12 Jonathan Wakely <jwakely@redhat.com> 7364 7365 PR libstdc++/100044 7366 * include/bits/ranges_util.h (__detail::__iterator_sentinel_pair): 7367 Remove helper concept. 7368 (subrange(_Pr), subrange(Pr, __make_unsigned_like<...>)): Remove 7369 deduction guides, as per LWG 3404. 7370 * testsuite/std/ranges/subrange/lwg3282_neg.cc: Check that class 7371 template argument deduction fails. 7372 73732021-04-12 Jonathan Wakely <jwakely@redhat.com> 7374 7375 * testsuite/26_numerics/random/linear_congruential_engine/requirements/non_uint_neg.cc: 7376 Adjust expected error for C++20 mode. 7377 * testsuite/tr1/5_numerical_facilities/random/linear_congruential/requirements/non_uint_neg.cc: 7378 Likewise. 7379 73802021-04-12 Jonathan Wakely <jwakely@redhat.com> 7381 7382 PR libstdc++/99995 7383 * testsuite/17_intro/headers/c++1998/49745.cc: Include all 7384 standard headers and XFAIL for effective-target c++20. 7385 73862021-04-09 François Dumont <fdumont@gcc.gnu.org> 7387 7388 PR libstdc++/99402 7389 * include/debug/helper_functions.h (__can_advance(_InputIterator, 7390 const std::pair<_Diff, _Distance_precision>&, int)): New. 7391 (__can_advance(const _Safe_iterator<>&, 7392 const std::pair<_Diff, _Distance_precision>&, int)): New. 7393 * include/debug/macros.h (__glibcxx_check_can_increment_dist): New, 7394 use latter. 7395 (__glibcxx_check_can_increment_range): Adapt to use latter. 7396 (__glibcxx_check_can_decrement_range): Likewise. 7397 * include/debug/safe_iterator.h 7398 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&, 7399 int)): New. 7400 (__can_advance(const _Safe_iterator<>&, 7401 const std::pair<_Diff, _Distance_precision>&, int)): New. 7402 * include/debug/safe_iterator.tcc 7403 (_Safe_iterator<>::_M_can_advance(const std::pair<_Diff, _Distance_precision>&, 7404 int)): New. 7405 (_Safe_iterator<>::_M_valid_range(const _Safe_iterator<>&, 7406 std::pair<difference_type, _Distance_precision>&, bool)): Adapt for 7407 __dp_sign_max_size. 7408 (__copy_move_a): Adapt to use __glibcxx_check_can_increment_dist. 7409 (__copy_move_backward_a): Likewise. 7410 (__equal_aux): Likewise. 7411 * include/debug/stl_iterator.h (__can_advance(const std::reverse_iterator<>&, 7412 const std::pair<_Diff, _Distance_precision>&, int)): New. 7413 (__can_advance(const std::move_iterator<>&, 7414 const std::pair<_Diff, _Distance_precision>&, int)): New. 7415 * testsuite/25_algorithms/copy/debug/99402.cc: New test. 7416 74172021-04-09 Jonathan Wakely <jwakely@redhat.com> 7418 7419 PR libstdc++/99985 7420 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): Fix 7421 to be a valid constexpr function in C++11. 7422 * testsuite/23_containers/unordered_set/cons/99985.cc: New test. 7423 74242021-04-09 Jonathan Wakely <jwakely@redhat.com> 7425 7426 * include/bits/fs_fwd.h: Fix doxygen group command. 7427 * include/bits/streambuf_iterator.h: Likewise. 7428 * include/bits/uses_allocator_args.h: Likewise. 7429 * include/std/memory: Likewise. 7430 * include/tr1/complex: Likewise. 7431 74322021-04-08 Jonathan Wakely <jwakely@redhat.com> 7433 7434 * include/bits/basic_string.h: Tweak doxygen comment. 7435 74362021-04-08 Patrick Palka <ppalka@redhat.com> 7437 7438 * include/std/ranges (__detail::find): Define. 7439 (split_view::_OuterIter::operator++): Apply proposed resolution 7440 of LWG 3505. 7441 * testsuite/std/ranges/adaptors/split.cc (test10): New test. 7442 74432021-04-08 Patrick Palka <ppalka@redhat.com> 7444 7445 * include/std/ranges (__detail::find_if): Simplify. 7446 (__detail::find_if_not): Likewise. 7447 (__detail::min): Remove. 7448 (__detail::mismatch): Simplify. 7449 (take_view::size): Use std::min instead of __detail::min. 7450 74512021-04-08 Patrick Palka <ppalka@redhat.com> 7452 7453 * include/std/ranges (__detail::__returnable_element): New 7454 concept. 7455 (elements_view): Use this concept in its constraints. Add 7456 missing private access specifier. 7457 (elements_view::_S_get_element): Define as per LWG 3502. 7458 (elements_view::operator*, elements_view::operator[]): Use 7459 _S_get_element. 7460 (elements_view::operator++): Remove unnecessary constraint 7461 as per LWG 3492. 7462 * testsuite/std/ranges/adaptors/elements.cc (test05): New test. 7463 74642021-04-08 Jonathan Wakely <jwakely@redhat.com> 7465 7466 * doc/Makefile.am (stamp-pdf-doxygen): Also grep for 7467 out-of-memory error in log file. 7468 * doc/Makefile.in: Regenerate. 7469 74702021-04-08 Jonathan Wakely <jwakely@redhat.com> 7471 7472 * configure: Regenerate. 7473 74742021-04-08 Jonathan Wakely <jwakely@redhat.com> 7475 7476 * include/bits/random.h: Fix doxygen group commands. 7477 * include/bits/regex_constants.h: Likewise. 7478 * include/tr1/random.h: Likewise. 7479 74802021-04-08 Jonathan Wakely <jwakely@redhat.com> 7481 7482 * include/bits/hashtable.h (_Hashtable::_S_nothrow_move()): 7483 New function to determine noexcept-specifier for move 7484 constructors. 7485 (_Hashtable): Use _S_nothrow_move() on move constructors. 7486 * testsuite/23_containers/unordered_map/cons/noexcept_move_construct.cc: 7487 Correct static assertion message. 7488 * testsuite/23_containers/unordered_multimap/cons/noexcept_move_construct.cc: 7489 Likewise. 7490 * testsuite/23_containers/unordered_multiset/cons/noexcept_move_construct.cc: 7491 Likewise. 7492 * testsuite/23_containers/unordered_set/cons/noexcept_move_construct.cc: 7493 Likewise. 7494 74952021-04-08 Patrick Palka <ppalka@redhat.com> 7496 7497 PR libstdc++/98384 7498 * testsuite/20_util/to_chars/long_double.cc: Don't run the test 7499 on targets without a large long double. XFAIL the execution on 7500 targets with a non-conforming printf. 7501 75022021-04-08 Patrick Palka <ppalka@redhat.com> 7503 7504 PR libstdc++/99433 7505 * include/std/ranges (__adaptor::__maybe_refwrap): Remove. 7506 (__adaptor::__adaptor_invocable): New concept. 7507 (__adaptor::__adaptor_partial_app_viable): New concept. 7508 (__adaptor::_RangeAdaptorClosure): Rewrite, turning it into a 7509 non-template base class. 7510 (__adaptor::_RangeAdaptor): Rewrite, turning it into a CRTP base 7511 class template. 7512 (__adaptor::_Partial): New class template that represents 7513 partial application of a range adaptor non-closure. 7514 (__adaptor::__pipe_invocable): New concept. 7515 (__adaptor::_Pipe): New class template. 7516 (__detail::__can_ref_view): New concept. 7517 (__detail::__can_subrange): New concept. 7518 (all): Replace the lambda here with ... 7519 (_All): ... this functor. Add appropriate constraints. 7520 (__detail::__can_filter_view): New concept. 7521 (filter, _Filter): As in all/_All. 7522 (__detail::__can_transform): New concept. 7523 (transform, _Transform): As in all/_All. 7524 (__detail::__can_take_view): New concept. 7525 (take, _Take): As in all/_All. 7526 (__detail::__can_take_while_view): New concept. 7527 (take_while, _TakeWhile): As in all/_All. 7528 (__detail::__can_drop_view): New concept. 7529 (drop, _Drop): As in all/_All. 7530 (__detail::__can_drop_while_view): New concept. 7531 (drop_while, _DropWhile): As in all/_All. 7532 (__detail::__can_join_view): New concept. 7533 (join, _Join): As in all/_All. 7534 (__detail::__can_split_view): New concept. 7535 (split, _Split): As in all/_All. Rename template parameter 7536 _Fp to _Pattern. 7537 (__detail::__already_common): New concept. 7538 (__detail::__can_common_view): New concept. 7539 (common, _Common): As in all/_All. 7540 (__detail::__can_reverse_view): New concept. 7541 (reverse, _Reverse): As in all/_All. 7542 (__detail::__can_elements_view): New concept. 7543 (elements, _Elements): As in all/_All. 7544 (keys, values): Adjust. 7545 * testsuite/std/ranges/adaptors/99433.cc: New test. 7546 * testsuite/std/ranges/adaptors/all.cc: No longer expect that 7547 adding empty range adaptor closure objects to a pipeline doesn't 7548 increase the size of the pipeline. 7549 (test05): New test. 7550 * testsuite/std/ranges/adaptors/common.cc (test03): New test. 7551 * testsuite/std/ranges/adaptors/drop.cc (test09): New test. 7552 * testsuite/std/ranges/adaptors/drop_while.cc (test04): New test. 7553 * testsuite/std/ranges/adaptors/elements.cc (test04): New test. 7554 * testsuite/std/ranges/adaptors/filter.cc (test06): New test. 7555 * testsuite/std/ranges/adaptors/join.cc (test09): New test. 7556 * testsuite/std/ranges/adaptors/p2281.cc: New test. 7557 * testsuite/std/ranges/adaptors/reverse.cc (test07): New test. 7558 * testsuite/std/ranges/adaptors/split.cc (test01, test04): 7559 Adjust. 7560 (test09): New test. 7561 * testsuite/std/ranges/adaptors/split_neg.cc (test01): Adjust 7562 expected error message. 7563 (test02): Likewise. Extend test. 7564 * testsuite/std/ranges/adaptors/take.cc (test06): New test. 7565 * testsuite/std/ranges/adaptors/take_while.cc (test05): New test. 7566 * testsuite/std/ranges/adaptors/transform.cc (test07, test08): 7567 New test. 7568 75692021-04-08 Jonathan Wakely <jwakely@redhat.com> 7570 7571 * include/std/string_view: Adjust Doxygen @file comment. 7572 75732021-04-08 Jonathan Wakely <jwakely@redhat.com> 7574 7575 * include/std/type_traits (is_scoped_enum<T>): Constrain partial 7576 specialization to not match incomplete enum types. Use a 7577 requires-expression instead of instantiating is_convertible. 7578 (is_scoped_enum<const T>): Add as workaround for PR c++/99968. 7579 * testsuite/20_util/is_scoped_enum/value.cc: Check with 7580 incomplete types and opaque-enum-declarations. 7581 75822021-04-07 Jonathan Wakely <jwakely@redhat.com> 7583 7584 PR libstdc++/99805 7585 * src/c++17/fs_path.cc (path::_M_split_cmpts): Do not call 7586 non-const member on _M_pathname, to avoid copy-on-write. 7587 * testsuite/27_io/filesystem/path/decompose/parent_path.cc: 7588 Check construction from strings that might be shared. 7589 75902021-04-06 Jonathan Wakely <jwakely@redhat.com> 7591 7592 * include/bits/move.h (forward, move, move_if_noexcept) 7593 (addressof): Add _GLIBCXX_NODISCARD. 7594 * include/bits/ranges_cmp.h (identity::operator()): Add 7595 nodiscard attribute. 7596 * include/c_global/cstddef (to_integer): Likewise. 7597 * include/std/bit (bit_cast): Likewise. 7598 * include/std/utility (as_const, to_underlying): Likewise. 7599 76002021-04-06 Jonathan Wakely <jwakely@redhat.com> 7601 7602 * include/bits/move.h (forward): Change static_assert message 7603 to be unambiguous about what must be true. 7604 * testsuite/20_util/forward/c_neg.cc: Adjust dg-error. 7605 * testsuite/20_util/forward/f_neg.cc: Likewise. 7606 76072021-04-06 Jonathan Wakely <jwakely@redhat.com> 7608 7609 * include/bits/alloc_traits.h: Use markdown for code font. 7610 * include/bits/basic_string.h: Fix @param names. 7611 * include/bits/max_size_type.h: Remove period after @file. 7612 * include/bits/regex.h: Fix duplicate @retval names, and rename. 7613 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Add 7614 group open to match existing group close. 7615 * include/ext/pb_ds/priority_queue.hpp: Add blank line before group 7616 open. 7617 76182021-04-06 Jonathan Wakely <jwakely@redhat.com> 7619 7620 * include/bits/atomic_base.h: Fix doxygen group close. 7621 * include/bits/basic_ios.h: Likewise. 7622 * include/bits/forward_list.h: Likewise. 7623 * include/bits/fs_dir.h: Likewise. 7624 * include/bits/fs_ops.h: Likewise. 7625 * include/bits/fs_path.h: Likewise. 7626 * include/bits/functional_hash.h: Likewise. 7627 * include/bits/gslice.h: Likewise. 7628 * include/bits/gslice_array.h: Likewise. 7629 * include/bits/hashtable_policy.h: Likewise. 7630 * include/bits/indirect_array.h: Likewise. 7631 * include/bits/locale_classes.h: Likewise. 7632 * include/bits/locale_facets.h: Likewise. 7633 * include/bits/locale_facets_nonio.h: Likewise. 7634 * include/bits/mask_array.h: Likewise. 7635 * include/bits/refwrap.h: Likewise. 7636 * include/bits/regex.h: Likewise. 7637 * include/bits/regex_automaton.h: Likewise. 7638 * include/bits/regex_compiler.h: Likewise. 7639 * include/bits/regex_constants.h: Likewise. 7640 * include/bits/regex_error.h: Likewise. 7641 * include/bits/regex_executor.h: Likewise. 7642 * include/bits/regex_scanner.h: Likewise. 7643 * include/bits/shared_ptr.h: Likewise. 7644 * include/bits/shared_ptr_atomic.h: Likewise. 7645 * include/bits/shared_ptr_base.h: Likewise. 7646 * include/bits/slice_array.h: Likewise. 7647 * include/bits/specfun.h: Likewise. 7648 * include/bits/std_function.h: Likewise. 7649 * include/bits/std_mutex.h: Likewise. 7650 * include/bits/stl_deque.h: Likewise. 7651 * include/bits/stl_iterator.h: Likewise. 7652 * include/bits/stl_iterator_base_types.h: Likewise. 7653 * include/bits/stl_map.h: Likewise. 7654 * include/bits/stl_multimap.h: Likewise. 7655 * include/bits/stl_multiset.h: Likewise. 7656 * include/bits/stl_numeric.h: Likewise. 7657 * include/bits/stl_pair.h: Likewise. 7658 * include/bits/stl_set.h: Likewise. 7659 * include/bits/stl_uninitialized.h: Likewise. 7660 * include/bits/stream_iterator.h: Likewise. 7661 * include/bits/streambuf_iterator.h: Likewise. 7662 * include/bits/unique_ptr.h: Likewise. 7663 * include/bits/unordered_map.h: Likewise. 7664 * include/bits/unordered_set.h: Likewise. 7665 * include/decimal/decimal: Likewise. 7666 * include/experimental/any: Likewise. 7667 * include/experimental/array: Likewise. 7668 * include/experimental/bits/fs_dir.h: Likewise. 7669 * include/experimental/bits/fs_fwd.h: Likewise. 7670 * include/experimental/bits/fs_ops.h: Likewise. 7671 * include/experimental/bits/fs_path.h: Likewise. 7672 * include/experimental/buffer: Likewise. 7673 * include/experimental/internet: Likewise. 7674 * include/experimental/optional: Likewise. 7675 * include/experimental/propagate_const: Likewise. 7676 * include/experimental/socket: Likewise. 7677 * include/ext/pb_ds/assoc_container.hpp: Likewise. 7678 * include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: 7679 Likewise. 7680 * include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Likewise. 7681 * include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Likewise. 7682 * include/ext/pb_ds/detail/types_traits.hpp: Likewise. 7683 * include/ext/pb_ds/exception.hpp: Likewise. 7684 * include/ext/pb_ds/priority_queue.hpp: Likewise. 7685 * include/ext/pb_ds/tag_and_trait.hpp: Likewise. 7686 * include/ext/random: Likewise. 7687 * include/std/any: Likewise. 7688 * include/std/atomic: Likewise. 7689 * include/std/bitset: Likewise. 7690 * include/std/chrono: Likewise. 7691 * include/std/complex: Likewise. 7692 * include/std/condition_variable: Likewise. 7693 * include/std/fstream: Likewise. 7694 * include/std/future: Likewise. 7695 * include/std/iostream: Likewise. 7696 * include/std/istream: Likewise. 7697 * include/std/mutex: Likewise. 7698 * include/std/numeric: Likewise. 7699 * include/std/ostream: Likewise. 7700 * include/std/ratio: Likewise. 7701 * include/std/shared_mutex: Likewise. 7702 * include/std/stdexcept: Likewise. 7703 * include/std/streambuf: Likewise. 7704 * include/std/system_error: Likewise. 7705 * include/std/thread: Likewise. 7706 * include/std/valarray: Likewise. 7707 * include/std/variant: Likewise. 7708 * include/tr1/cmath: Likewise. 7709 * include/tr1/regex: Likewise. 7710 * include/tr2/dynamic_bitset: Likewise. 7711 * libsupc++/atomic_lockfree_defines.h: Likewise. 7712 * libsupc++/exception: Likewise. 7713 * libsupc++/exception.h: Likewise. 7714 * libsupc++/exception_ptr.h: Likewise. 7715 * libsupc++/nested_exception.h: Likewise. 7716 77172021-03-31 Alexandre Oliva <oliva@adacore.com> 7718 7719 * testsuite/30_threads/future/members/poll.cc: Use faster 7720 after-ready call in the calibration loop. 7721 77222021-03-29 Jonathan Wakely <jwakely@redhat.com> 7723 7724 * doc/xml/manual/status_cxx2017.xml: Adjust link for PSTL. 7725 * doc/html/manual/status.html: Regenerate. 7726 77272021-03-28 François Dumont <fdumont@gcc.gnu.org> 7728 7729 * include/debug/forward_list 7730 (forward_list(forward_list&&, const allocator_type&)): Add noexcept qualification. 7731 * include/debug/list (list(list&&, const allocator_type&)): Likewise and add 7732 call to safe container allocator aware move constructor. 7733 * include/debug/vector (vector(vector&&, const allocator_type&)): 7734 Fix noexcept qualification. 7735 * testsuite/23_containers/forward_list/cons/noexcept_move_construct.cc: 7736 Add allocator-extended move constructor noexceot qualification check. 7737 * testsuite/23_containers/list/cons/noexcept_move_construct.cc: Likewise. 7738 77392021-03-26 Jonathan Wakely <jwakely@redhat.com> 7740 7741 * src/c++11/random.cc (USE_LCG): Define when a pseudo-random 7742 fallback is needed. 7743 [USE_LCG] (bad_seed, construct_lcg_at, destroy_lcg_at, __lcg): 7744 New helper functions and callback. 7745 (random_device::_M_init): Add 'prng' and 'all' enumerators. 7746 Replace switch with fallthrough with a series of 'if' statements. 7747 [USE_LCG]: Construct an lcg_type engine and use __lcg when cpuid 7748 checks fail. 7749 (random_device::_M_init_pretr1) [USE_MT19937]: Accept "prng" 7750 token. 7751 (random_device::_M_getval): Check for callback unconditionally 7752 and always pass _M_file pointer. 7753 * testsuite/26_numerics/random/random_device/85494.cc: Remove 7754 effective-target check. Use new random_device_available helper. 7755 * testsuite/26_numerics/random/random_device/94087.cc: Likewise. 7756 * testsuite/26_numerics/random/random_device/cons/default-cow.cc: 7757 Remove effective-target check. 7758 * testsuite/26_numerics/random/random_device/cons/default.cc: 7759 Likewise. 7760 * testsuite/26_numerics/random/random_device/cons/token.cc: Use 7761 new random_device_available helper. Test "prng" token. 7762 * testsuite/util/testsuite_random.h (random_device_available): 7763 New helper function. 7764 77652021-03-25 François Dumont <fdumont@gcc.gnu.org> 7766 7767 * include/debug/string 7768 (basic_string(const basic_string&, const _Alloc&)): Define even if !_GLIBCXX_USE_CXX11_ABI. 7769 (basic_string(basic_string&&, const _Alloc&)): Likewise and add noexcept qualification. 7770 (basic_string<>::erase): Adapt to take __const_iterator. 7771 (basic_string(const _CharT*, const _Allocator&)): Remove assign call. 7772 (basic_string<>::insert(const_iterator, _InputIte, _InputIte)): Try to 7773 remove iterator debug layer even if !_GLIBCXX_USE_CXX11_ABI. 7774 [_GLIBCXX_USE_CHAR8_T] (__gnu_debug::u8string): New. 7775 (__gnu_debug::u16string, __gnu_debug::u32string): New. 7776 (std::hash<__gnu_debug::basic_string<>>): New partial specialization. 7777 (std::__is_fast_hash<__gnu_debug::basic_string<>>): Likewise. 7778 * testsuite/util/exception/safety.h 7779 (erase_base<__gnu_debug::basic_string<>>): New partial specialization. 7780 (insert_base<__gnu_debug::basic_string<>>): Likewise. 7781 * testsuite/util/testsuite_container_traits.h (traits<__gnu_debug::basic_string<>>): 7782 New partial specialization. 7783 * testsuite/21_strings/basic_string/hash/debug.cc: New test. 7784 * testsuite/21_strings/basic_string/requirements/citerators.cc: 7785 Add test on __gnu_debug::string. 7786 * testsuite/21_strings/basic_string/requirements/dr438/constructor.cc: Likewise. 7787 * testsuite/21_strings/basic_string/requirements/exception/basic.cc: Likewise. 7788 * testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc: 7789 Likewise. 7790 * testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc: 7791 Likewise. 7792 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char/1.cc: 7793 Likewise. 7794 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char16_t/1.cc: 7795 Likewise. 7796 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char32_t/1.cc: 7797 Likewise. 7798 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/char8_t/1.cc: 7799 Likewise. 7800 * testsuite/21_strings/basic_string/requirements/explicit_instantiation/wchar_t/1.cc: 7801 Likewise. 7802 * testsuite/21_strings/basic_string/requirements/typedefs.cc: Likewise. 7803 78042021-03-25 Jakub Jelinek <jakub@redhat.com> 7805 7806 PR c++/99672 7807 * testsuite/18_support/source_location/consteval.cc (main): Adjust 7808 expected column numbers. 7809 * testsuite/18_support/source_location/1.cc (main): Likewise. 7810 78112021-03-25 Jonathan Wakely <jwakely@redhat.com> 7812 7813 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare malloc. 7814 78152021-03-25 Jonathan Wakely <jwakely@redhat.com> 7816 7817 * testsuite/util/exception/safety.h (setup_base::generate): 7818 Support seeding random engine. 7819 (erase_point, erase_range): Adjust range of random numbers to 7820 ensure dereferenceable iterators are used where required. 7821 (generation_prohibited::run): Do not try to erase from empty 7822 containers. 7823 * testsuite/util/testsuite_containergen.h (test_containers): 7824 Support seeding random engine. 7825 78262021-03-23 Jonathan Wakely <jwakely@redhat.com> 7827 7828 * testsuite/std/ranges/adaptors/reverse.cc: Replace duplicated 7829 line with a check that uses the const being/end overloads. 7830 78312021-03-23 Moritz Sichert <sichert@in.tum.de> 7832 7833 * include/std/ranges (reverse_view::begin, reverse_view::end): 7834 Qualify make_reverse_iterator calls to avoid ADL. 7835 * testsuite/std/ranges/adaptors/reverse.cc: Test that 7836 views::reverse works when make_reverse_iterator is defined 7837 in an associated namespace. 7838 78392021-03-23 Jonathan Wakely <jwakely@redhat.com> 7840 7841 * include/bits/c++config (_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT): 7842 Do not define when compiling with Clang. 7843 78442021-03-22 Jonathan Wakely <jwakely@redhat.com> 7845 7846 * include/std/string_view (basic_string_view(Range&&)): Define new 7847 constructor and deduction guide. 7848 * testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc: New test. 7849 * testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc: New test. 7850 78512021-03-22 Jonathan Wakely <jwakely@redhat.com> 7852 7853 * include/bits/range_access.h (begin(T (&)[N]), end(T (&)[N])): 7854 Add missing 'noexcept' as per LWG 2280. 7855 (rbegin(T (&)[N]), rend(T (&)[N]), rbegin(initializer_list<T>)) 7856 (rend(initializer_list<T>)): Add 'noexcept' as per LWG 3537. 7857 * testsuite/24_iterators/range_access/range_access.cc: Check for 7858 expected noexcept specifiers. Check result types of generic 7859 std::begin and std::end overloads. 7860 * testsuite/24_iterators/range_access/range_access_cpp14.cc: 7861 Check for expected noexcept specifiers. 7862 * testsuite/24_iterators/range_access/range_access_cpp17.cc: 7863 Likewise. 7864 78652021-03-19 Jonathan Wakely <jwakely@redhat.com> 7866 7867 * include/std/type_traits (is_scoped_enum): Define. 7868 * include/std/version (__cpp_lib_is_scoped_enum): Define. 7869 * testsuite/20_util/is_scoped_enum/value.cc: New test. 7870 * testsuite/20_util/is_scoped_enum/version.cc: New test. 7871 78722021-03-16 Jonathan Wakely <jwakely@redhat.com> 7873 7874 PR libstdc++/99341 7875 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Remove 7876 std::once_flag symbols. 7877 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Likewise. 7878 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Likewise. 7879 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: 7880 Likewise. 7881 * config/abi/pre/gnu.ver: Likewise. 7882 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX] 7883 (struct __once_flag_compat): Remove. 7884 (_ZNSt9once_flag11_M_activateEv): Remove. 7885 (_ZNSt9once_flag9_M_finishEb): Remove. 7886 78872021-03-16 Jonathan Wakely <jwakely@redhat.com> 7888 7889 PR libstdc++/99341 7890 * include/std/mutex [_GLIBCXX_HAVE_LINUX_FUTEX] (once_flag): 7891 Revert to pthread_once_t implementation. 7892 [_GLIBCXX_HAVE_LINUX_FUTEX] (call_once): Likewise. 7893 * src/c++11/mutex.cc [_GLIBCXX_HAVE_LINUX_FUTEX] 7894 (struct __once_flag_compat): New type matching the reverted 7895 implementation of once_flag using futexes. 7896 (once_flag::_M_activate): Remove, replace with ... 7897 (_ZNSt9once_flag11_M_activateEv): ... alias symbol. 7898 (once_flag::_M_finish): Remove, replace with ... 7899 (_ZNSt9once_flag9_M_finishEb): ... alias symbol. 7900 * testsuite/30_threads/call_once/66146.cc: Removed. 7901 79022021-03-15 Iain Sandoe <iain@sandoe.co.uk> 7903 7904 * testsuite/17_intro/names.cc: Exclude j from the list 7905 of test symbols for Darwin. 7906 79072021-03-15 Iain Sandoe <iain@sandoe.co.uk> 7908 7909 * config/os/bsd/darwin/ppc-extra.ver: Add matching for 7910 to_chars and from_chars for long double. 7911 79122021-03-15 Patrick Palka <ppalka@redhat.com> 7913 7914 * include/bits/max_size_type.h (__max_size_type::operator _Tp): 7915 Fix formatting. 7916 (__max_size_type::operator++): Define. 7917 (__max_size_type::operator--): Likewise. 7918 (__max_size_type::operator<=>): Conditionally define (in place 7919 of the other comparison operators). 7920 (__max_diff_type::operator _Tp): Fix formatting. 7921 (__max_diff_type::operator++): Define. 7922 (__max_diff_type::operator--): Likewise. 7923 (__max_diff_type::operator<=>): Conditionally define (in place 7924 of the other comparison operators). 7925 * testsuite/std/ranges/iota/max_size_type.cc (test01): Test 7926 these operator overloads. 7927 79282021-03-15 Caroline Tice <cmtice@google.com> 7929 7930 PR libstdc++/99172 7931 * src/Makefile.am (AM_CXXFLAGS_PRE, AM_CXXFLAGS): Add 7932 AM_CXXFLAGS_PRE with the old definition of AM_CXXFLAGS; make 7933 AM_CXXFLAGS to be AM_CXXFLAGS_PRE with '-fvtable-verify=std' 7934 filtered out. 7935 * src/Makefile.in: Regenerate. 7936 79372021-03-11 Patrick Palka <ppalka@redhat.com> 7938 7939 * src/c++17/floating_to_chars.cc: Simplify the file as if 7940 __SIZEOF_INT128__ is always defined. 7941 [!defined __SIZEOF_INT128__]: Include "uint128_t.h". Define 7942 a base-10 to_chars overload for the uint128_t class type. 7943 * src/c++17/uint128_t.h: New file. 7944 * testsuite/20_util/to_chars/long_double.cc: No longer expect an 7945 execution FAIL on targets that have a large long double type 7946 but lack __int128. 7947 79482021-03-11 Patrick Palka <ppalka@redhat.com> 7949 7950 * src/c++17/ryu/LOCAL_PATCHES: Update. 7951 * src/c++17/ryu/d2s_intrinsics.h: Don't define uint128_t. 7952 * src/c++17/ryu/generic_128.h: Likewise. 7953 * src/c++17/ryu/ryu_generic_128.h (struct floating_decimal_128): 7954 Use uint128_t instead of __uint128_t. 7955 (generic_binary_to_decimal): Likewise. 7956 79572021-03-11 Patrick Palka <ppalka@redhat.com> 7958 7959 * src/c++17/ryu/LOCAL_PATCHES: New file. 7960 79612021-03-11 Patrick Palka <ppalka@redhat.com> 7962 7963 * src/c++17/floating_to_chars.cc (uint128_t): New conditionally 7964 defined alias of unsigned __int128. 7965 (floating_type_traits_binary128::mantissa_t): Use uint128_t 7966 instead of unsigned __int128. 7967 (floating_type_traits<long double>::mantissa_t) 7968 [LONG_DOUBLE_KIND == LDK_IBM128]: Likewise. 7969 (get_ieee_repr): Likewise. Make casts from uint_t to mantissa_t 7970 and uint32_t explicit. Simplify the extraction of mantissa, 7971 exponent and sign bit. 7972 79732021-03-11 Jonathan Wakely <jwakely@redhat.com> 7974 7975 * include/std/barrier (barrier::arrival_token): New move-only 7976 class that encapsulates the underlying token value. 7977 79782021-03-11 Jonathan Wakely <jwakely@redhat.com> 7979 7980 * python/libstdcxx/v6/printers.py (find_type): Use tag attribute 7981 instead of unqualified() method. 7982 79832021-03-11 Jonathan Wakely <jwakely@redhat.com> 7984 7985 PR libstdc++/99537 7986 * include/std/stop_token (_Stop_state_t::_M_release_ownership): 7987 Use acq_rel memory ordering. 7988 79892021-03-11 Jonathan Wakely <jwakely@redhat.com> 7990 7991 PR libstdc++/99533 7992 * src/c++17/fs_dir.cc (recursive_directory_iterator): Use new 7993 helper function to check for permission denied errors. 7994 * src/filesystem/dir.cc (recursive_directory_iterator): 7995 Likewise. 7996 * src/filesystem/dir-common.h (is_permission_denied_error): New 7997 helper function. 7998 79992021-03-11 Jonathan Wakely <jwakely@redhat.com> 8000 8001 PR libstdc++/99536 8002 * include/bits/random.h (normal_distribution): Use 8003 default-initializer for _M_saved and _M_saved_available. 8004 80052021-03-10 John David Anglin <danglin@gcc.gnu.org> 8006 8007 * testsuite/29_atomics/atomic/wait_notify/bool.cc: Add options to 8008 link with libatomic. 8009 * testsuite/29_atomics/atomic/wait_notify/generic.cc: Likewise. 8010 * testsuite/29_atomics/atomic/wait_notify/pointers.cc: Likewise. 8011 * testsuite/29_atomics/atomic_flag/wait_notify/1.cc: Likewise. 8012 * testsuite/30_threads/barrier/arrive.cc: Likewise. 8013 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise. 8014 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise. 8015 * testsuite/30_threads/barrier/completion.cc: Likewise. 8016 * testsuite/30_threads/latch/3.cc: Likewise. 8017 * testsuite/30_threads/semaphore/try_acquire.cc: Likewise. 8018 * testsuite/30_threads/semaphore/try_acquire_for.cc: Likewise. 8019 * testsuite/30_threads/semaphore/try_acquire_until.cc: Likewise. 8020 80212021-03-10 Jonathan Wakely <jwakely@redhat.com> 8022 8023 PR libstdc++/99413 8024 * include/bits/align.h: Include debug/assertions.h. 8025 * include/bits/codecvt.h: Include bits/c++config.h. 8026 * include/bits/enable_special_members.h: Likewise. 8027 * include/bits/erase_if.h: Likewise. 8028 * include/bits/functional_hash.h: Include <type_traits>. 8029 * include/bits/invoke.h: Include bits/move.h. 8030 * include/bits/ostream_insert.h: Include bits/exception_defines.h. 8031 * include/bits/parse_numbers.h: Include <type_traits>. 8032 * include/bits/predefined_ops.h: Include bits/c++config.h. 8033 * include/bits/range_access.h: Include bits/stl_iterator.h. 8034 * include/bits/stl_bvector.h: Do not include bits/stl_vector.h. 8035 * include/bits/stl_iterator.h: Include bits/stl_iterator_base_types.h. 8036 * include/bits/stl_uninitialized.h: Include bits/stl_algobase.h. 8037 * include/bits/uniform_int_dist.h: Include bits/concept_check.h. 8038 * include/bits/unique_lock.h: Include bits/std_mutex.h. 8039 * include/debug/assertions.h: Include bits/c++config.h. 8040 80412021-03-10 Jonathan Wakely <jwakely@redhat.com> 8042 8043 * include/bits/ranges_cmp.h (__eq_builtin_ptr_cmp): Remove. 8044 (ranges::equal_to, ranges::not_equal_to): Do not constrain 8045 with __eq_builtin_ptr_cmp. 8046 (ranges::less, ranges::greater, ranges::less_equal) 8047 (ranges::greater_equal): Do not constrain with 8048 __less_builtin_ptr_cmp. 8049 * libsupc++/compare (compare_three_way): Do not constrain with 8050 __3way_builtin_ptr_cmp. 8051 * testsuite/18_support/comparisons/object/builtin-ptr-three-way.cc: Moved to... 8052 * testsuite/18_support/comparisons/object/lwg3530.cc: ...here. 8053 * testsuite/20_util/function_objects/range.cmp/lwg3530.cc: New test. 8054 80552021-03-10 Jonathan Wakely <jwakely@redhat.com> 8056 8057 * testsuite/std/time/syn_c++20.cc: Enable synopsis checks for 8058 C++20 calendar types. 8059 80602021-03-06 Jakub Jelinek <jakub@redhat.com> 8061 8062 PR libstdc++/99396 8063 * include/std/bit (__rotl, __rotr): Add optimized variants for power of 8064 two _Nd which the compiler can pattern match the rotates. 8065 80662021-03-04 Jonathan Wakely <jwakely@redhat.com> 8067 8068 PR libstdc++/99382 8069 * testsuite/20_util/specialized_algorithms/uninitialized_default_n/sizes.cc: 8070 Make storage larger than required. Verify no write to the last 8071 element. 8072 * testsuite/20_util/specialized_algorithms/uninitialized_value_construct_n/sizes.cc: 8073 Likewise. 8074 80752021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 8076 8077 * config/abi/post/i386-solaris/baseline_symbols.txt: Regenerate. 8078 * config/abi/post/i386-solaris/amd64/baseline_symbols.txt: 8079 Likewise. 8080 * config/abi/post/sparc-solaris/baseline_symbols.txt: Likewise. 8081 * config/abi/post/sparc-solaris/sparcv9/baseline_symbols.txt: 8082 Likewise. 8083 80842021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 8085 8086 * include/experimental/bits/simd.h: Replace reserved _X, _B by 8087 _Xp, _Bp. 8088 * include/experimental/bits/simd_builtin.h: Likewise. 8089 * include/experimental/bits/simd_x86.h: Likewise. 8090 80912021-02-27 Jonathan Wakely <jwakely@redhat.com> 8092 8093 PR libstdc++/99301 8094 * include/std/chrono (year_month_day::_M_days_since_epoch()): 8095 Convert chrono::month and chrono::day to unsigned before 8096 converting to uint32_t. 8097 80982021-02-25 Jonathan Wakely <jwakely@redhat.com> 8099 8100 * include/std/chrono (year_month_day::_S_from_days): Perform 8101 all calculations with type uint32_t. 8102 81032021-02-25 Jonathan Wakely <jwakely@redhat.com> 8104 8105 * doc/xml/manual/abi.xml: Document versioning for GCC 11. 8106 * doc/html/manual/abi.html: Regenerate. 8107 81082021-02-25 Jonathan Wakely <jwakely@redhat.com> 8109 8110 PR libstdc++/99270 8111 * testsuite/27_io/headers/cstdio/types_std.cc: Use pointer to 8112 FILE instead of FILE. 8113 81142021-02-25 Andreas Schwab <schwab@suse.de> 8115 8116 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Update. 8117 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update. 8118 * config/abi/post/m68k-linux-gnu/baseline_symbols.txt: Update. 8119 * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update. 8120 81212021-02-25 Jonathan Wakely <jwakely@redhat.com> 8122 8123 PR libstdc++/99265 8124 * include/std/chrono (year_month_day::_S_from_days): Cast long 8125 to int explicitly. 8126 81272021-02-25 Jonathan Wakely <jwakely@redhat.com> 8128 8129 * include/std/utility (to_underlying): Define. 8130 * include/std/version (__cpp_lib_to_underlying): Define. 8131 * testsuite/20_util/to_underlying/1.cc: New test. 8132 * testsuite/20_util/to_underlying/version.cc: New test. 8133 81342021-02-24 Jonathan Wakely <jwakely@redhat.com> 8135 8136 PR libstdc++/99261 8137 * src/c++17/floating_to_chars.cc (sprintf_ld): Add extra args 8138 before value to be printed. 8139 81402021-02-24 Patrick Palka <ppalka@redhat.com> 8141 8142 * src/c++17/floating_to_chars.cc (__floating_to_chars_precision): 8143 Relax the condition that guards the printf code path to accept 8144 F128_type as well as long double. 8145 81462021-02-24 Cassio Neri <cassio.neri@gmail.com> 8147 8148 * include/std/chrono (year_month_day_last:day): New 8149 implementation. 8150 81512021-02-24 Cassio Neri <cassio.neri@gmail.com> 8152 8153 * include/std/chrono (year::is_leap): New implementation. 8154 * testsuite/std/time/year/2.cc: New test. 8155 81562021-02-24 Cassio Neri <cassio.neri@gmail.com> 8157 8158 * include/std/chrono (year_month_day::_M_days_since_epoch): 8159 New implementation. 8160 * testsuite/std/time/year_month_day/4.cc: New test. 8161 81622021-02-24 Cassio Neri <cassio.neri@gmail.com> 8163 8164 * include/std/chrono (year_month_day::_S_from_days): New 8165 implementation. 8166 * testsuite/std/time/year_month_day/3.cc: New test. 8167 81682021-02-24 Patrick Palka <ppalka@redhat.com> 8169 8170 PR libstdc++/98384 8171 * testsuite/20_util/to_chars/long_double.cc: Include <optional>. 8172 (test01): Simplify verifying the nearby values by using a 8173 2-iteration loop and a dedicated output buffer to check that the 8174 nearby values are different. Factor out the printf-based 8175 verification into a local function, and check that the leading 8176 hex digits agree before comparing to the output of printf. Also 8177 verify the output by round-tripping it through from_chars. 8178 81792021-02-24 Jonathan Wakely <jwakely@redhat.com> 8180 8181 PR libstdc++/98389 8182 * config/abi/pre/gnu.ver (GLIBCXX_3.4.29): Do not match to_chars 8183 symbols for long double arguments mangled as 'g'. 8184 * config/os/gnu-linux/ldbl-extra.ver: Likewise. 8185 * config/os/gnu-linux/ldbl-ieee128-extra.ver: Likewise. 8186 * src/c++17/Makefile.am [GLIBCXX_LDBL_ALT128_COMPAT_TRUE]: 8187 Use -mabi=ibmlongdouble for floating_to_chars.cc. 8188 * src/c++17/Makefile.in: Regenerate. 8189 * src/c++17/floating_to_chars.cc (floating_type_traits_binary128): 8190 New type defining type traits of IEEE binary128 format. 8191 (floating_type_traits<__float128>): Define specialization. 8192 (floating_type_traits<long double>): Define in terms of 8193 floating_type_traits_binary128 when appropriate. 8194 (floating_to_shortest_scientific): Handle __float128. 8195 (sprintf_ld): New function template for printing a long double 8196 or __ieee128 value using sprintf. 8197 (__floating_to_chars_shortest, __floating_to_chars_precision): 8198 Use sprintf_ld. 8199 (to_chars): Define overloads for __float128. 8200 82012021-02-24 Jonathan Wakely <jwakely@redhat.com> 8202 8203 * testsuite/17_intro/names.cc: Undefine 'u' on powerpc*-linux*. 8204 82052021-02-23 Martin Sebor <msebor@redhat.com> 8206 8207 PR c++/99074 8208 * libsupc++/dyncast.cc (__dynamic_cast): Return null when 8209 first argument is null. 8210 82112021-02-23 Jakub Jelinek <jakub@redhat.com> 8212 8213 PR libstdc++/99181 8214 * testsuite/21_strings/char_traits/requirements/char/99181.cc: New 8215 test. 8216 82172021-02-23 Jakub Jelinek <jakub@redhat.com> 8218 8219 PR libstdc++/99181 8220 * include/bits/char_traits.h (char_traits<char>::compare): For 8221 constexpr evaluation don't call 8222 __gnu_cxx::char_traits<char_type>::compare but do the comparison loop 8223 directly. 8224 82252021-02-23 Jakub Jelinek <jakub@redhat.com> 8226 8227 PR libstdc++/97549 8228 * include/pstl/parallel_backend_serial.h: Remove __pstl::__par_backend. 8229 82302021-02-23 Patrick Palka <ppalka@redhat.com> 8231 8232 PR libstdc++/98384 8233 * src/c++17/floating_to_chars.cc (get_ieee_repr): Extract 8234 the high- and low-order parts from an IBM long double value 8235 in an endian-agnostic way. 8236 82372021-02-19 Jonathan Wakely <jwakely@redhat.com> 8238 8239 * include/bits/atomic_wait.h (__thread_relax()): Call 8240 __thread_yield() not __gthread_yield(). 8241 82422021-02-15 Jonathan Wakely <jwakely@redhat.com> 8243 8244 * include/bits/atomic_wait.h (__thread_yield()): Check 8245 _GLIBCXX_HAS_GTHREADS before using __gthread_yield. 8246 (__thread_relax()): Use __thread_yield() instead of repeating 8247 the preprocessor checks for __gthread_yield. 8248 82492021-02-15 Jonathan Wakely <jwakely@redhat.com> 8250 8251 * include/std/mutex (once_flag::_M_activate()): Add explicit 8252 return statement for passive case. 8253 (once_flag::_M_finish(bool)): Use reserved name for parameter. 8254 82552021-02-14 Jonathan Wakely <jwakely@redhat.com> 8256 8257 PR libstdc++/99096 8258 * testsuite/util/testsuite_fs.h: Always include <unistd.h>. 8259 82602021-02-12 Jonathan Wakely <jwakely@redhat.com> 8261 8262 PR libstdc++/88881 8263 * src/c++17/fs_ops.cc (fs::symlink_status): Re-enable workaround. 8264 82652021-02-12 Jonathan Wakely <jwakely@redhat.com> 8266 8267 * doc/xml/manual/status_cxx2014.xml: Document implementation 8268 specific properties of std::experimental::filesystem::rename. 8269 * doc/xml/manual/status_cxx2017.xml: Document implementation 8270 specific properties of std::filesystem::rename. 8271 * doc/html/*: Regenerate. 8272 * src/c++17/fs_ops.cc (fs::rename): Implement correct behaviour 8273 for directories on Windows. 8274 * src/filesystem/ops-common.h (__gnu_posix::rename): Use 8275 MoveFileExW on Windows. 8276 * testsuite/27_io/filesystem/operations/rename.cc: New test. 8277 * testsuite/experimental/filesystem/operations/rename.cc: New test. 8278 82792021-02-12 Jonathan Wakely <jwakely@redhat.com> 8280 8281 * testsuite/util/testsuite_fs.h (nonexistent_path): Add 8282 random number to the path. 8283 82842021-02-12 Jonathan Wakely <jwakely@redhat.com> 8285 8286 * include/experimental/internet (address_v6::to_string): Include 8287 scope ID in string. 8288 * testsuite/experimental/net/internet/address/v6/members.cc: 8289 Test to_string() results. 8290 82912021-02-12 Jonathan Wakely <jwakely@redhat.com> 8292 8293 * include/experimental/internet (address_v6::any): Avoid using 8294 memcpy in constexpr function. 8295 (address_v6::loopback): Likewise. 8296 (make_address_v6): Fix missing return statements on error paths. 8297 * include/experimental/io_context: Avoid -Wdangling-else 8298 warning. 8299 * testsuite/experimental/net/internet/address/v4/members.cc: 8300 Remove unused variables. 8301 * testsuite/experimental/net/internet/address/v6/members.cc: 8302 New test. 8303 83042021-02-12 Jonathan Wakely <jwakely@redhat.com> 8305 8306 * include/bits/shared_ptr_base.h (__shared_ptr::_M_get_deleter): 8307 Add unused attribute to parameter. 8308 * src/c++11/shared_ptr.cc (_Sp_make_shared_tag::_S_eq): 8309 Likewise. 8310 83112021-02-12 Jonathan Wakely <jwakely@redhat.com> 8312 8313 * testsuite/27_io/basic_ostream/emit/1.cc: Expect test to fail 8314 if -fno-rtti is used. 8315 * testsuite/30_threads/async/forced_unwind.cc: Expect test 8316 to abort if -fno-rtti is used. 8317 83182021-02-12 Jonathan Wakely <jwakely@redhat.com> 8319 8320 * testsuite/util/testsuite_allocator.h (memory_resource): 8321 Remove requirement for RTTI and exceptions to be enabled. 8322 83232021-02-12 Jonathan Wakely <jwakely@redhat.com> 8324 8325 * testsuite/27_io/basic_istringstream/rdbuf/char/2832.cc: Use 8326 static_cast when RTTI is disabled. 8327 * testsuite/27_io/basic_istringstream/rdbuf/wchar_t/2832.cc: 8328 Likewise. 8329 * testsuite/27_io/basic_ostringstream/rdbuf/char/2832.cc: 8330 Likewise. 8331 * testsuite/27_io/basic_ostringstream/rdbuf/wchar_t/2832.cc: 8332 Likewise. 8333 * testsuite/27_io/basic_stringstream/str/char/2.cc: 8334 Likewise. 8335 * testsuite/27_io/basic_stringstream/str/wchar_t/2.cc: 8336 Likewise. 8337 83382021-02-12 Jonathan Wakely <jwakely@redhat.com> 8339 8340 * include/std/ostream (__syncbuf_base::_S_get): Mark parameter 8341 as unused and only use dynamic_cast when RTTI is enabled. 8342 83432021-02-12 Jonathan Wakely <jwakely@redhat.com> 8344 8345 PR libstdc++/99077 8346 * src/c++11/cxx11-ios_failure.cc (__ios_failure(const char*, int)): 8347 Change int parameter to error_code, to match std::ios_failure. 8348 (__throw_ios_failure(const char*, int)): Construct error_code 8349 from int parameter. 8350 83512021-02-11 Jonathan Wakely <jwakely@redhat.com> 8352 8353 * libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define 8354 new macro. 8355 * libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new 8356 macro instead of _GLIBCXX_EH_PTR_COMPAT. 8357 (operator==): Likewise. 8358 83592021-02-11 Jonathan Wakely <jwakely@redhat.com> 8360 8361 PR libstdc++/99058 8362 * doc/xml/manual/status_cxx2011.xml: Document when support 8363 became stable. 8364 * doc/xml/manual/status_cxx2014.xml: Likewise. 8365 * doc/xml/manual/status_cxx2017.xml: Likewise. 8366 * doc/html/manual/status.html: Regenerate. 8367 83682021-02-10 Jonathan Wakely <jwakely@redhat.com> 8369 8370 PR libstdc++/88881 8371 * src/c++17/fs_ops.cc (fs::status): Re-enable workaround. 8372 83732021-02-10 Jonathan Wakely <jwakely@redhat.com> 8374 8375 * src/c++17/fs_ops.cc (fs::create_hard_link, fs::equivalent) 8376 (fs::remove): Use std::system_category() for error codes from 8377 GetLastError(). 8378 * src/filesystem/ops.cc (fs::create_hard_link, fs::remove): 8379 Likewise. 8380 83812021-02-10 Jonathan Wakely <jwakely@redhat.com> 8382 8383 * testsuite/27_io/filesystem/operations/proximate.cc: Fix typo 8384 in __MINGW32__ macro name. 8385 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise. 8386 * testsuite/27_io/filesystem/path/generation/proximate.cc: 8387 Likewise. 8388 * testsuite/27_io/filesystem/path/generation/relative.cc: 8389 Likewise. 8390 * testsuite/util/testsuite_fs.h: Likewise. 8391 83922021-02-09 François Dumont <fdumont@gcc.gnu.org> 8393 8394 * include/bits/stl_tree.h 8395 (__has_is_transparent, __has_is_transparent_t): Move... 8396 * include/bits/stl_function.h: ...here. 8397 * include/bits/hashtable_policy.h (_Hash_code_base<>::_M_hash_code_tr): New.. 8398 (_Hashtable_base<>::_M_equals_tr): New. 8399 * include/bits/hashtable.h (_Hashtable<>::_M_find_tr, _Hashtable<>::_M_count_tr, 8400 _Hashtable<>::_M_equal_range_tr): New member function templates to perform 8401 heterogeneous lookup. 8402 (_Hashtable<>::_M_find_before_node_tr): New. 8403 (_Hashtable<>::_M_find_node_tr): New. 8404 * include/bits/unordered_map.h (unordered_map::find<>, unordered_map::count<>, 8405 unordered_map::contains<>, unordered_map::equal_range<>): New member function 8406 templates to perform heterogeneous lookup. 8407 (unordered_multimap::find<>, unordered_multimap::count<>, 8408 unordered_multimap::contains<>, unordered_multimap::equal_range<>): Likewise. 8409 * include/bits/unordered_set.h (unordered_set::find<>, unordered_set::count<>, 8410 unordered_set::contains<>, unordered_set::equal_range<>): Likewise. 8411 (unordered_multiset::find<>, unordered_multiset::count<>, 8412 unordered_multiset::contains<>, unordered_multiset::equal_range<>): Likewise. 8413 * include/debug/unordered_map 8414 (unordered_map::find<>, unordered_map::equal_range<>): Likewise. 8415 (unordered_multimap::find<>, unordered_multimap::equal_range<>): Likewise. 8416 * include/debug/unordered_set 8417 (unordered_set::find<>, unordered_set::equal_range<>): Likewise. 8418 (unordered_multiset::find<>, unordered_multiset::equal_range<>): Likewise. 8419 * testsuite/23_containers/unordered_map/operations/1.cc: New test. 8420 * testsuite/23_containers/unordered_multimap/operations/1.cc: New test. 8421 * testsuite/23_containers/unordered_multiset/operations/1.cc: New test. 8422 * testsuite/23_containers/unordered_set/operations/1.cc: New test. 8423 84242021-02-09 François Dumont <fdumont@gcc.gnu.org> 8425 8426 * include/bits/stl_deque.h 8427 (std::operator-(deque::iterator, deque::iterator)): Replace if/then with 8428 a null pointer test. 8429 84302021-02-09 Jonathan Wakely <jwakely@redhat.com> 8431 8432 * testsuite/27_io/filesystem/operations/remove_all.cc: Remove 8433 test directory after making it writable again. 8434 * testsuite/experimental/filesystem/operations/remove_all.cc: 8435 Likewise. 8436 84372021-02-09 Jonathan Wakely <jwakely@redhat.com> 8438 8439 PR libstdc++/99021 8440 * include/std/coroutine (coroutine_handle<P>::from_address): Add 8441 noexcept. 8442 84432021-02-09 Vladimir Vishnevsky <vv.os.swe@gmail.com> 8444 8445 * include/ext/stdio_sync_filebuf.h: Remove unused <unistd.h>. 8446 * src/c++17/fs_ops.cc (fs::permissions): Qualify mode_t. 8447 84482021-02-09 Jakub Jelinek <jakub@redhat.com> 8449 8450 PR middle-end/98465 8451 * include/bits/basic_string.tcc (basic_string::_M_replace): When __s 8452 points to the characters moved by earlier _S_move, compute the source 8453 address using expression based on the __p pointer rather than __s 8454 pointer. 8455 84562021-02-03 Jonathan Wakely <jwakely@redhat.com> 8457 8458 * testsuite/19_diagnostics/error_code/operators/not_equal.cc: 8459 Add comparison with same category and different values. 8460 * testsuite/19_diagnostics/error_code/operators/less.cc: 8461 Likewise. Fix comparison involving different categories. 8462 * testsuite/19_diagnostics/error_code/operators/three_way.cc: 8463 Likewise. 8464 * testsuite/19_diagnostics/error_condition/operators/less.cc: 8465 Add comment. 8466 * testsuite/19_diagnostics/error_condition/operators/three_way.cc: 8467 Likewise. 8468 84692021-02-03 yaozhongxiao <yaozhongxiao@linux.alibaba.com> 8470 8471 * include/experimental/bits/simd_neon.h: Replace repeated vpadd 8472 calls with a single vaddv for aarch64. 8473 84742021-02-03 Matthias Kretz <kretz@kde.org> 8475 8476 * testsuite/Makefile.am: Warn about the workaround. Add 8477 -fno-tree-vrp to CXXFLAGS passed to the check_simd script. 8478 Improve initial user feedback from make check-simd. 8479 * testsuite/Makefile.in: Regenerated. 8480 84812021-02-03 Matthias Kretz <kretz@kde.org> 8482 8483 * include/experimental/bits/simd.h: Add __detail::_Minimum and 8484 __detail::_Maximum to use them as _BinaryOperation to _S_reduce. 8485 Add hmin and hmax overloads for simd and const_where_expression. 8486 * include/experimental/bits/simd_scalar.h 8487 (_SimdImplScalar::_S_reduce): Make unused _BinaryOperation 8488 parameter const-ref to allow calling _S_reduce with an rvalue. 8489 * testsuite/experimental/simd/tests/reductions.cc: Add tests for 8490 hmin and hmax. Since the compiler statically determined that all 8491 tests pass, repeat the test after a call to make_value_unknown. 8492 84932021-02-03 Matthias Kretz <kretz@kde.org> 8494 8495 * testsuite/experimental/simd/tests/bits/verify.h (verify): Add 8496 instruction pointer data member. Ensure that the `if (m_failed)` 8497 branch is always inlined into the calling code. The body of the 8498 conditional can still be a function call. Move the get_ip call 8499 into the verify ctor to simplify the ctor calls. 8500 (COMPARE): Don't mention the use of all_of for reduction of a 8501 simd_mask. It only distracts from the real issue. 8502 85032021-02-03 Matthias Kretz <kretz@kde.org> 8504 8505 * testsuite/experimental/simd/driver.sh: Abstract reading test 8506 options into read_src_option function. Read skip, only, 8507 expensive, and xfail via read_src_option. Add timeout and 8508 timeout-factor options and adjust timeout variable accordingly. 8509 * testsuite/experimental/simd/tests/loadstore.cc: Set 8510 timeout-factor 2. 8511 85122021-02-03 Matthias Kretz <kretz@kde.org> 8513 8514 * testsuite/experimental/simd/driver.sh: When handling the pipe 8515 to log (and on verbose to stdout) count the lines. If it exceeds 8516 1000 log the issue and exit 125, which is then handled as a 8517 failure. 8518 85192021-02-03 Matthias Kretz <kretz@kde.org> 8520 8521 * testsuite/experimental/simd/tests/hypot3_fma.cc: Add skip: 8522 markup for long double on powerpc64*. 8523 85242021-02-03 Matthias Kretz <kretz@kde.org> 8525 8526 * include/experimental/bits/simd.h: Add __have_power10vec 8527 conditional on _ARCH_PWR10. 8528 * include/experimental/bits/simd_builtin.h: Forward declare 8529 _MaskImplPpc and use it as _MaskImpl when __ALTIVEC__ is 8530 defined. 8531 (_MaskImplBuiltin::_S_some_of): Call _S_popcount from the 8532 _SuperImpl for optimizations and correctness. 8533 * include/experimental/bits/simd_ppc.h: Add _MaskImplPpc. 8534 (_MaskImplPpc::_S_popcount): Implement via vec_cntm for POWER10. 8535 Otherwise, for >=int use -vec_sums divided by a sizeof factor. 8536 For <int use -vec_sums(vec_sum4s(...)) to sum all mask entries. 8537 85382021-02-03 Matthias Kretz <kretz@kde.org> 8539 8540 * testsuite/experimental/simd/driver.sh: Remove executable on 8541 SIGINT. Process compiler and test executable output: In verbose 8542 mode print messages immediately, limited to 1000 lines and 8543 breaking long lines to below $COLUMNS (or 1024 if not set). 8544 Communicating the exit status of the compiler / test with the 8545 necessary pipe is done via a message through stdout/-in. 8546 85472021-02-03 Matthias Kretz <kretz@kde.org> 8548 8549 * testsuite/Makefile.am: Ensure .simd.summary is empty before 8550 collecting a new summary. 8551 * testsuite/Makefile.in: Regenerate. 8552 85532021-02-03 Matthias Kretz <kretz@kde.org> 8554 8555 * testsuite/experimental/simd/generate_makefile.sh: Use 8556 different variables internally than documented for user 8557 overrides. This makes internal append/prepend work as intended. 8558 85592021-02-03 Matthias Kretz <kretz@kde.org> 8560 8561 * testsuite/experimental/simd/driver.sh (verify_test): Print 8562 test output on run xfail. Do not repeat lines from the log that 8563 were already printed on stdout. 8564 (test_selector): Make the compiler flags pattern usable as a 8565 substring selector. 8566 (toplevel): Trap on SIGINT and remove the log and sum files. 8567 Call timout with --foreground to quickly terminate on SIGINT. 8568 * testsuite/experimental/simd/generate_makefile.sh: Simplify run 8569 targets via target patterns. Default DRIVEROPTS to -v for run 8570 targets. Remove log and sum files after completion of the run 8571 target (so that it's always recompiled). 8572 Place help text into text file for reasonable 'make help' 8573 performance. 8574 85752021-02-03 Matthias Kretz <kretz@kde.org> 8576 8577 * include/experimental/bits/simd.h: Remove unnecessary static 8578 assertion. Allow sizeof(8) integer __intrinsic_type to enable 8579 the necessary mask type. 8580 85812021-02-03 Matthias Kretz <kretz@kde.org> 8582 8583 * include/experimental/bits/simd.h: Let __intrinsic_type<long 8584 double, N> be valid if sizeof(long double) == sizeof(double) and 8585 use a __vector double as member type. 8586 85872021-02-03 Matthias Kretz <kretz@kde.org> 8588 8589 * include/experimental/bits/simd.h (__is_intrinsic_type): New 8590 internal type trait. Alias for __is_vector_type on x86. 8591 (_VectorTraitsImpl): Enable for __intrinsic_type in addition for 8592 __vector_type. 8593 (__intrin_bitcast): Allow casting to & from vector & intrinsic 8594 types. 8595 (__intrinsic_type): Explicitly specialize for NEON intrinsic 8596 vector types. 8597 85982021-02-03 Matthias Kretz <kretz@kde.org> 8599 8600 * testsuite/experimental/simd/driver.sh: Implement skip, only, 8601 expensive, and xfail markers. They can select on type, ABI tag 8602 subset number, target-triplet, and compiler flags. 8603 * testsuite/experimental/simd/generate_makefile.sh: The summary 8604 now includes lines for unexpected passes and expected failures. 8605 If the skip or only markers are only conditional on the type, do 8606 not generate rules for those types. 8607 * testsuite/experimental/simd/tests/abs.cc: Mark test expensive 8608 for ABI tag subsets 1-9. 8609 * testsuite/experimental/simd/tests/algorithms.cc: Ditto. 8610 * testsuite/experimental/simd/tests/broadcast.cc: Ditto. 8611 * testsuite/experimental/simd/tests/casts.cc: Ditto. 8612 * testsuite/experimental/simd/tests/generator.cc: Ditto. 8613 * testsuite/experimental/simd/tests/integer_operators.cc: Ditto. 8614 * testsuite/experimental/simd/tests/loadstore.cc: Ditto. 8615 * testsuite/experimental/simd/tests/mask_broadcast.cc: Ditto. 8616 * testsuite/experimental/simd/tests/mask_conversions.cc: Ditto. 8617 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: Ditto. 8618 * testsuite/experimental/simd/tests/mask_loadstore.cc: Ditto. 8619 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: Ditto. 8620 * testsuite/experimental/simd/tests/mask_operators.cc: Ditto. 8621 * testsuite/experimental/simd/tests/mask_reductions.cc: Ditto. 8622 * testsuite/experimental/simd/tests/operator_cvt.cc: Ditto. 8623 * testsuite/experimental/simd/tests/operators.cc: Ditto. 8624 * testsuite/experimental/simd/tests/reductions.cc: Ditto. 8625 * testsuite/experimental/simd/tests/simd.cc: Ditto. 8626 * testsuite/experimental/simd/tests/split_concat.cc: Ditto. 8627 * testsuite/experimental/simd/tests/splits.cc: Ditto. 8628 * testsuite/experimental/simd/tests/where.cc: Ditto. 8629 * testsuite/experimental/simd/tests/fpclassify.cc: Ditto. In 8630 addition replace "test only floattypes" marker by unconditional 8631 "float|double|ldouble" only marker. 8632 * testsuite/experimental/simd/tests/frexp.cc: Ditto. 8633 * testsuite/experimental/simd/tests/hypot3_fma.cc: Ditto. 8634 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc: 8635 Ditto. 8636 * testsuite/experimental/simd/tests/logarithm.cc: Ditto. 8637 * testsuite/experimental/simd/tests/math_1arg.cc: Ditto. 8638 * testsuite/experimental/simd/tests/math_2arg.cc: Ditto. 8639 * testsuite/experimental/simd/tests/remqo.cc: Ditto. 8640 * testsuite/experimental/simd/tests/trigonometric.cc: Ditto. 8641 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: Ditto. 8642 * testsuite/experimental/simd/tests/sincos.cc: Ditto. In 8643 addition, xfail on run because the reference data is missing. 8644 86452021-02-02 Jonathan Wakely <jwakely@redhat.com> 8646 8647 * doc/xml/manual/status_cxx2011.xml: Remove stray table cell. 8648 * doc/xml/manual/status_cxx2014.xml: Likewise. 8649 * doc/xml/manual/status_cxx2017.xml: Likewise. 8650 * doc/html/manual/status.html: Regenerate. 8651 86522021-02-01 François Dumont <fdumont@gcc.gnu.org> 8653 8654 PR libstdc++/70303 8655 * include/bits/stl_deque.h (std::deque<>::operator-(iterator, iterator)): 8656 Return 0 if both iterators are value-initialized. 8657 * testsuite/23_containers/deque/70303.cc: New test. 8658 * testsuite/23_containers/vector/70303.cc: New test. 8659 86602021-02-01 Jonathan Wakely <jwakely@redhat.com> 8661 8662 * doc/xml/manual/status_cxx2011.xml: Update std::call_once 8663 status. 8664 * doc/xml/manual/status_cxx2014.xml: Likewise. 8665 * doc/xml/manual/status_cxx2017.xml: Likewise. Update 8666 std::from_chars and std::to_chars status. Fix formatting. 8667 * doc/html/manual/status.html: Regenerate. 8668 86692021-01-28 Jonathan Wakely <jwakely@redhat.com> 8670 8671 * include/experimental/bits/numeric_traits.h: Update copyright 8672 dates. 8673 * include/experimental/bits/simd.h: Likewise. 8674 * include/experimental/bits/simd_builtin.h: Likewise. 8675 * include/experimental/bits/simd_converter.h: Likewise. 8676 * include/experimental/bits/simd_detail.h: Likewise. 8677 * include/experimental/bits/simd_fixed_size.h: Likewise. 8678 * include/experimental/bits/simd_math.h: Likewise. 8679 * include/experimental/bits/simd_neon.h: Likewise. 8680 * include/experimental/bits/simd_ppc.h: Likewise. 8681 * include/experimental/bits/simd_scalar.h: Likewise. 8682 * include/experimental/bits/simd_x86.h: Likewise. 8683 * include/experimental/bits/simd_x86_conversions.h: Likewise. 8684 * include/experimental/simd: Likewise. 8685 * testsuite/experimental/simd/*: Likewise. 8686 86872021-01-27 Jonathan Wakely <jwakely@redhat.com> 8688 8689 * doc/xml/manual/status_cxx2017.xml: Replace invalid entity. 8690 * doc/html/*: Regenerate. 8691 86922021-01-27 Jonathan Wakely <jwakely@redhat.com> 8693 8694 * testsuite/experimental/simd/generate_makefile.sh: Use printf 8695 instead of echo when printing escape characters. 8696 86972021-01-27 Matthias Kretz <kretz@kde.org> 8698 8699 * scripts/check_simd: New file. This script is called from the 8700 the check-simd target. It determines a set of compiler flags and 8701 simulator setups for calling generate_makefile.sh and passes the 8702 information back to the check-simd target, which recurses to the 8703 generated Makefiles. 8704 * scripts/create_testsuite_files: Remove files below simd/tests/ 8705 from testsuite_files and place them in testsuite_files_simd. 8706 * testsuite/Makefile.am: Add testsuite_files_simd. Add 8707 check-simd target. 8708 * testsuite/Makefile.in: Regenerate. 8709 * testsuite/experimental/simd/driver.sh: New file. This script 8710 compiles and runs a given simd test, logging its output and 8711 status. It uses the timeout command to implement compile and 8712 test timeouts. 8713 * testsuite/experimental/simd/generate_makefile.sh: New file. 8714 This script generates a Makefile which uses driver.sh to compile 8715 and run the tests and collect the logs into a single log file. 8716 * testsuite/experimental/simd/tests/abs.cc: New file. Tests 8717 abs(simd). 8718 * testsuite/experimental/simd/tests/algorithms.cc: New file. 8719 Tests min/max(simd, simd). 8720 * testsuite/experimental/simd/tests/bits/conversions.h: New 8721 file. Contains functions to support tests involving conversions. 8722 * testsuite/experimental/simd/tests/bits/make_vec.h: New file. 8723 Support functions make_mask and make_vec. 8724 * testsuite/experimental/simd/tests/bits/mathreference.h: New 8725 file. Support functions to supply precomputed math function 8726 reference data. 8727 * testsuite/experimental/simd/tests/bits/metahelpers.h: New 8728 file. Support code for SFINAE testing. 8729 * testsuite/experimental/simd/tests/bits/simd_view.h: New file. 8730 * testsuite/experimental/simd/tests/bits/test_values.h: New 8731 file. Test functions to easily drive a test with simd objects 8732 initialized from a given list of values and a range of random 8733 values. 8734 * testsuite/experimental/simd/tests/bits/ulp.h: New file. 8735 Support code to determine the ULP distance of simd objects. 8736 * testsuite/experimental/simd/tests/bits/verify.h: New file. 8737 Test framework for COMPARE'ing simd objects and instantiating 8738 the test templates with value_type and ABI tag. 8739 * testsuite/experimental/simd/tests/broadcast.cc: New file. Test 8740 simd broadcasts. 8741 * testsuite/experimental/simd/tests/casts.cc: New file. Test 8742 simd casts. 8743 * testsuite/experimental/simd/tests/fpclassify.cc: New file. 8744 Test floating-point classification functions. 8745 * testsuite/experimental/simd/tests/frexp.cc: New file. Test 8746 frexp(simd). 8747 * testsuite/experimental/simd/tests/generator.cc: New file. Test 8748 simd generator constructor. 8749 * testsuite/experimental/simd/tests/hypot3_fma.cc: New file. 8750 Test 3-arg hypot(simd,simd,simd) and fma(simd,simd,sim). 8751 * testsuite/experimental/simd/tests/integer_operators.cc: New 8752 file. Test integer operators. 8753 * testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc: 8754 New file. Test ldexp(simd), scalbn(simd), scalbln(simd), and 8755 modf(simd). 8756 * testsuite/experimental/simd/tests/loadstore.cc: New file. Test 8757 (converting) simd loads and stores. 8758 * testsuite/experimental/simd/tests/logarithm.cc: New file. Test 8759 log*(simd). 8760 * testsuite/experimental/simd/tests/mask_broadcast.cc: New file. 8761 Test simd_mask broadcasts. 8762 * testsuite/experimental/simd/tests/mask_conversions.cc: New 8763 file. Test simd_mask conversions. 8764 * testsuite/experimental/simd/tests/mask_implicit_cvt.cc: New 8765 file. Test simd_mask implicit conversions. 8766 * testsuite/experimental/simd/tests/mask_loadstore.cc: New file. 8767 Test simd_mask loads and stores. 8768 * testsuite/experimental/simd/tests/mask_operator_cvt.cc: New 8769 file. Test simd_mask operators convert as specified. 8770 * testsuite/experimental/simd/tests/mask_operators.cc: New file. 8771 Test simd_mask compares, subscripts, and negation. 8772 * testsuite/experimental/simd/tests/mask_reductions.cc: New 8773 file. Test simd_mask reductions. 8774 * testsuite/experimental/simd/tests/math_1arg.cc: New file. Test 8775 1-arg math functions on simd. 8776 * testsuite/experimental/simd/tests/math_2arg.cc: New file. Test 8777 2-arg math functions on simd. 8778 * testsuite/experimental/simd/tests/operator_cvt.cc: New file. 8779 Test implicit conversions on simd binary operators behave as 8780 specified. 8781 * testsuite/experimental/simd/tests/operators.cc: New file. Test 8782 simd compares, subscripts, not, unary minus, plus, minus, 8783 multiplies, divides, increment, and decrement. 8784 * testsuite/experimental/simd/tests/reductions.cc: New file. 8785 Test reduce(simd). 8786 * testsuite/experimental/simd/tests/remqo.cc: New file. Test 8787 remqo(simd). 8788 * testsuite/experimental/simd/tests/simd.cc: New file. Basic 8789 sanity checks of simd types. 8790 * testsuite/experimental/simd/tests/sincos.cc: New file. Test 8791 sin(simd) and cos(simd). 8792 * testsuite/experimental/simd/tests/split_concat.cc: New file. 8793 Test split(simd) and concat(simd, simd). 8794 * testsuite/experimental/simd/tests/splits.cc: New file. Test 8795 split(simd_mask). 8796 * testsuite/experimental/simd/tests/trigonometric.cc: New file. 8797 Test remaining trigonometric functions on simd. 8798 * testsuite/experimental/simd/tests/trunc_ceil_floor.cc: New 8799 file. Test trunc(simd), ceil(simd), and floor(simd). 8800 * testsuite/experimental/simd/tests/where.cc: New file. Test 8801 masked operations using where. 8802 88032021-01-27 Matthias Kretz <kretz@kde.org> 8804 8805 * doc/xml/manual/status_cxx2017.xml: Add implementation status 8806 of the Parallelism TS 2. Document implementation-defined types 8807 and behavior. 8808 * include/Makefile.am: Add new headers. 8809 * include/Makefile.in: Regenerate. 8810 * include/experimental/simd: New file. New header for 8811 Parallelism TS 2. 8812 * include/experimental/bits/numeric_traits.h: New file. 8813 Implementation of P1841R1 using internal naming. Addition of 8814 missing IEC559 functionality query. 8815 * include/experimental/bits/simd.h: New file. Definition of the 8816 public simd interfaces and general implementation helpers. 8817 * include/experimental/bits/simd_builtin.h: New file. 8818 Implementation of the _VecBuiltin simd_abi. 8819 * include/experimental/bits/simd_converter.h: New file. Generic 8820 simd conversions. 8821 * include/experimental/bits/simd_detail.h: New file. Internal 8822 macros for the simd implementation. 8823 * include/experimental/bits/simd_fixed_size.h: New file. Simd 8824 fixed_size ABI specific implementations. 8825 * include/experimental/bits/simd_math.h: New file. Math 8826 overloads for simd. 8827 * include/experimental/bits/simd_neon.h: New file. Simd NEON 8828 specific implementations. 8829 * include/experimental/bits/simd_ppc.h: New file. Implement bit 8830 shifts to avoid invalid results for integral types smaller than 8831 int. 8832 * include/experimental/bits/simd_scalar.h: New file. Simd scalar 8833 ABI specific implementations. 8834 * include/experimental/bits/simd_x86.h: New file. Simd x86 8835 specific implementations. 8836 * include/experimental/bits/simd_x86_conversions.h: New file. 8837 x86 specific conversion optimizations. The conversion patterns 8838 work around missing conversion patterns in the compiler and 8839 should be removed as soon as PR85048 is resolved. 8840 * testsuite/experimental/simd/standard_abi_usable.cc: New file. 8841 Test that all (not all fixed_size<N>, though) standard simd and 8842 simd_mask types are usable. 8843 * testsuite/experimental/simd/standard_abi_usable_2.cc: New 8844 file. As above but with -ffast-math. 8845 * testsuite/libstdc++-dg/conformance.exp: Don't build simd tests 8846 from the standard test loop. Instead use 8847 check_vect_support_and_set_flags to build simd tests with the 8848 relevant machine flags. 8849 88502021-01-27 Jonathan Wakely <jwakely@redhat.com> 8851 8852 PR libstdc++/66414 8853 * include/bits/string_view.tcc 8854 (basic_string_view::find(const CharT*, size_type, size_type)): 8855 Optimize. 8856 88572021-01-27 Paul Fee <paul.f.fee@gmail.com> 8858 8859 * include/bits/basic_string.h (basic_string::contains): New 8860 member functions. 8861 * include/std/string_view (basic_string_view::contains): 8862 Likewise. 8863 * include/std/version (__cpp_lib_string_contains): Define. 8864 * testsuite/21_strings/basic_string/operations/starts_with/char/1.cc: 8865 Remove trailing whitespace. 8866 * testsuite/21_strings/basic_string/operations/starts_with/wchar_t/1.cc: 8867 Likewise. 8868 * testsuite/21_strings/basic_string/operations/contains/char/1.cc: New test. 8869 * testsuite/21_strings/basic_string/operations/contains/wchar_t/1.cc: New test. 8870 * testsuite/21_strings/basic_string_view/operations/contains/char/1.cc: New test. 8871 * testsuite/21_strings/basic_string_view/operations/contains/char/2.cc: New test. 8872 * testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc: New test. 8873 88742021-01-21 Jonathan Wakely <jwakely@redhat.com> 8875 8876 * src/c++17/Makefile.in: Regenerate. 8877 88782021-01-20 David Edelsohn <dje.gcc@gmail.com> 8879 8880 * config/os/aix/ctype_inline.h (bool ctype<char>:: is): Cast 8881 _OBJ_DATA subscript to unsigned char. Add _THREAD_SAFE access to 8882 __lc_type. 8883 (const char* ctype<char>:: is): Same. 8884 88852021-01-18 Jonathan Wakely <jwakely@redhat.com> 8886 8887 PR libstdc++/98725 8888 * testsuite/20_util/unique_ptr/io/lwg2948.cc: Do not try to 8889 write to a wide character stream if wide character support is 8890 disabled in the library. 8891 88922021-01-18 Jonathan Wakely <jwakely@redhat.com> 8893 8894 * testsuite/27_io/basic_stringstream/cons/char/1.cc: Use 8895 stringbuf not wstringbuf. 8896 88972021-01-18 Jakub Jelinek <jakub@redhat.com> 8898 8899 PR debug/98708 8900 * src/c++11/Makefile.am (cxx11-ios_failure-lt.s, cxx11-ios_failure.s): 8901 Compile with -gno-as-loc-support. 8902 * src/c++11/Makefile.in: Regenerated. 8903 89042021-01-16 H.J. Lu <hjl.tools@gmail.com> 8905 8906 * testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc: 8907 Add -fcf-protection=none to -march=i486. 8908 89092021-01-14 François Dumont <fdumont@gcc.gnu.org> 8910 8911 * testsuite/23_containers/deque/debug/98466.cc: Make it pre-C++11 8912 compliant. 8913 89142021-01-14 Alexandre Oliva <oliva@adacore.com> 8915 8916 * testsuite/30_threads/future/members/poll.cc: Calibrate 8917 iteration count. 8918 89192021-01-14 François Dumont <fdumont@gcc.gnu.org> 8920 8921 PR libstdc++/98466 8922 * include/bits/hashtable_policy.h (_Node_iterator_base()): Set _M_cur to nullptr. 8923 (_Node_iterator()): Make default. 8924 (_Node_const_iterator()): Make default. 8925 * include/debug/macros.h (__glibcxx_check_erae_range_after): Add _M_singular 8926 iterator checks. 8927 * include/debug/safe_iterator.h 8928 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Accept if both iterator are value initialized. 8929 * include/debug/safe_local_iterator.h (_GLIBCXX_DEBUG_VERIFY_OPERANDS): 8930 Likewise. 8931 * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): Add 8932 _M_singular checks on input iterators. 8933 * src/c++11/debug.cc (_Safe_iterator_base::_M_can_compare): Remove _M_singular 8934 checks. 8935 * testsuite/23_containers/deque/debug/98466.cc: New test. 8936 * testsuite/23_containers/unordered_map/debug/98466.cc: New test. 8937 89382021-01-14 Jonathan Wakely <jwakely@redhat.com> 8939 8940 PR libstdc++/98471 8941 * include/bits/fs_path.h (__throw_conversion_error): New 8942 function to throw or abort on character conversion errors. 8943 (__wstr_from_utf8): Move definition after filesystem_error has 8944 been defined. Use __throw_conversion_error. 8945 (path::_S_convert<_EcharT>): Use __throw_conversion_error. 8946 (path::_S_str_convert<_CharT, _Traits, _Allocator>): Likewise. 8947 (path::u8string): Likewise. 8948 89492021-01-14 Jonathan Wakely <jwakely@redhat.com> 8950 8951 * include/std/barrier: Update copyright years. Fix whitespace. 8952 * include/std/version: Fix whitespace. 8953 * testsuite/30_threads/barrier/1.cc: Update copyright years. 8954 * testsuite/30_threads/barrier/2.cc: Likewise. 8955 * testsuite/30_threads/barrier/arrive.cc: Likewise. 8956 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise. 8957 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise. 8958 * testsuite/30_threads/barrier/completion.cc: Likewise. 8959 89602021-01-13 Jonathan Wakely <jwakely@redhat.com> 8961 8962 * doc/doxygen/user.cfg.in (INPUT): Remove include/debug/array. 8963 89642021-01-10 David Edelsohn <dje.gcc@gmail.com> 8965 8966 PR libstdc++/98613 8967 * testsuite/ext/vstring/cons/moveable.cc: Suppress false positive 8968 warning. 8969 * testsuite/ext/vstring/modifiers/assign/move_assign.cc: Same. 8970 89712021-01-08 Olivier Hainque <hainque@adacore.com> 8972 8973 * testsuite/20_util/bind/ref_neg.cc: Tweak the 8974 dg-prune-output regex for out-of-build-tree contexts. 8975 89762021-01-07 Thomas Rodgers <trodgers@redhat.com> 8977 8978 * doc/doxygen/user.cfg.in: Add new header. 8979 * include/Makefile.am (std_headers): likewise. 8980 * include/Makefile.in: Regenerate. 8981 * include/precompiled/stdc++.h: Add new header. 8982 * include/std/barrier: New file. 8983 * include/std/version: Add __cpp_lib_barrier feature test macro. 8984 * testsuite/30_threads/barrier/1.cc: New test. 8985 * testsuite/30_threads/barrier/2.cc: Likewise. 8986 * testsuite/30_threads/barrier/arrive_and_drop.cc: Likewise. 8987 * testsuite/30_threads/barrier/arrive_and_wait.cc: Likewise. 8988 * testsuite/30_threads/barrier/arrive.cc: Likewise. 8989 * testsuite/30_threads/barrier/completion.cc: Likewise. 8990 89912021-01-07 Patrick Palka <ppalka@redhat.com> 8992 8993 PR libstdc++/98384 8994 * testsuite/20_util/to_chars/long_double.cc: Use nexttowardl 8995 instead of the non-standard nextupl and nextdownl. 8996 89972021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org> 8998 8999 * configure: Re-generate. 9000 90012021-01-05 Ed Smith-Rowland <3dw4rd@verizon.net> 9002 9003 * include/precompiled/stdc++.h: Add <source_location> to C++20 section. 9004 90052021-01-01 Jakub Jelinek <jakub@redhat.com> 9006 9007 * ChangeLog-2020: Rotate ChangeLog. New file. 9008 9009Copyright (C) 2021 Free Software Foundation, Inc. 9010 9011Copying and distribution of this file, with or without modification, 9012are permitted in any medium without royalty provided the copyright 9013notice and this notice are preserved. 9014