12020-03-04 Release Manager 2 3 * GCC 8.4.0 released. 4 52020-02-26 Jonathan Wakely <jwakely@redhat.com> 6 7 Backport from mainline 8 2020-01-09 Jonathan Wakely <jwakely@redhat.com> 9 10 PR libstdc++/93205 11 * include/bits/random.h (operator>>): Check stream operation succeeds. 12 * include/bits/random.tcc (operator>>): Likewise. 13 (__extract_params): New function to fill a vector from a stream. 14 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error line. 15 16 Backport from mainline 17 2019-12-10 Jonathan Wakely <jwakely@redhat.com> 18 19 PR libstdc++/92886 20 * include/bits/ios_base.h (std::ios_base::trunc): Fix comment. 21 22 Backport from mainline 23 2020-01-28 Jonathan Wakely <jwakely@redhat.com> 24 25 PR libstdc++/93325 26 * acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Use AC_SEARCH_LIBS for 27 clock_gettime instead of explicit glibc version check. 28 * configure: Regenerate. 29 302020-02-26 Jonathan Wakely <jwakely@redhat.com> 31 32 Backport from mainline 33 2020-02-04 Jonathan Wakely <jwakely@redhat.com> 34 35 PR libstdc++/93562 36 * include/bits/unique_ptr.h (__uniq_ptr_impl::swap): Define. 37 (unique_ptr::swap, unique_ptr<T[], D>::swap): Call it. 38 * testsuite/20_util/unique_ptr/modifiers/93562.cc: New test. 39 402020-02-26 Jonathan Wakely <jwakely@redhat.com> 41 42 Backport from mainline 43 2020-01-17 Jonathan Wakely <jwakely@redhat.com> 44 45 PR libstdc++/92376 46 * libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare allocation 47 functions if they were detected by configure. 48 492020-02-26 Jonathan Wakely <jwakely@redhat.com> 50 51 Backport from mainline 52 2019-10-09 Jonathan Wakely <jwakely@redhat.com> 53 54 PR libstdc++/78552 55 * src/c++98/locale_init.cc (locale::classic()): Do not construct a new 56 locale object for every call. 57 (locale::_S_initialize_once()): Construct C locale here. 58 59 Backport from mainline 60 2020-01-23 Jonathan Wakely <jwakely@redhat.com> 61 62 PR libstdc++/91947 63 * include/Makefile.am (${host_builddir}/largefile-config.h): Simplify 64 rule. 65 * include/Makefile.in: Regenerate. 66 67 Backport from mainlne 68 2019-10-04 Jonathan Wakely <jwakely@redhat.com> 69 70 PR libstdc++/81091 71 PR libstdc++/91947 72 * configure.ac: Use AC_SYS_LARGEFILE to enable 64-bit file APIs. 73 * config.h.in: Regenerate: 74 * configure: Regenerate: 75 * include/Makefile.am (${host_builddir}/largefile-config.h): New 76 target to generate config header for filesystem library. 77 (${host_builddir}/c++config.h): Rename macros for large file support. 78 * include/Makefile.in: Regenerate. 79 * src/filesystem/dir.cc: Include new config header. 80 * src/filesystem/ops.cc: Likewise. 81 (experimental::filesystem::file_size): Use uintmax_t for size. 82 * src/filesystem/std-dir.cc: Include new config header. 83 * src/filesystem/std-ops.cc: Likewise. 84 (filesystem::file_size): Use uintmax_t for size. 85 862020-01-24 Jonathan Wakely <jwakely@redhat.com> 87 88 Backport from mainline 89 2020-01-20 Jonathan Wakely <jwakely@redhat.com> 90 91 * doc/xml/faq.xml: Fix grammar. 92 * doc/xml/manual/appendix_contributing.xml: Improve instructions. 93 * doc/xml/manual/spine.xml: Update copyright years. 94 * doc/html/*: Regenerate. 95 962020-01-19 Eric S. Raymond <esr@thyrsus.com> 97 Sandra Loosemore <sandra@codesourcery.com> 98 99 Partial backport from mainline: 100 101 2020-01-19 Eric S. Raymond <esr@thyrsus.com> 102 * doc/xml/faq.xml: Update for SVN -> Git transition. 103 * doc/xml/manual/appendix_contributing.xml: Likewise. 104 1052020-01-13 Jonathan Wakely <jwakely@redhat.com> 106 107 * doc/xml/manual/status_cxx1998.xml: Replace incorrect statement 108 about documenting mainline. 109 * doc/xml/manual/status_cxx2011.xml: Likewise. 110 * doc/xml/manual/status_cxx2014.xml: Likewise. 111 * doc/xml/manual/status_cxx2017.xml: Likewise. 112 * doc/xml/manual/status_cxxtr1.xml: Likewise. 113 * doc/xml/manual/status_cxxtr24733.xml: Likewise. 114 * doc/html/*: Regenerate. 115 1162020-01-08 Jonathan Wakely <jwakely@redhat.com> 117 118 PR libstdc++/93201 119 * src/c++17/fs_ops.cc (remove_all(const path&, error_code&)): Check 120 result of recursive call before incrementing iterator. 121 * src/filesystem/ops.cc (remove_all(const path&, error_code&)): 122 Likewise. 123 * testsuite/27_io/filesystem/operations/remove_all.cc: Check errors 124 are reported correctly. 125 * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise. 126 1272019-10-24 Jonathan Wakely <jwakely@redhat.com> 128 129 Backport from mainline 130 2019-06-06 Jonathan Wakely <jwakely@redhat.com> 131 132 * testsuite/20_util/is_nothrow_invocable/value.cc: Test converting to 133 void. 134 * testsuite/experimental/names.cc: Do not run for C++98 mode. Do not 135 include Library Fundamentals or Networking headers in C++11 mode. 136 137 Backport from mainline 138 2019-10-22 Jonathan Wakely <jwakely@redhat.com> 139 140 * include/bits/memoryfwd.h (uses_allocator): Do not declare for C++98. 141 * testsuite/17_intro/names.cc: Check uses_allocator in C++98. 142 143 Backport from mainline 144 2019-10-18 Jonathan Wakely <jwakely@redhat.com> 145 146 PR libstdc++/92143 147 * libsupc++/new_opa.cc (operator new) [__APPLE__]: Increase alignment 148 to at least sizeof(void*). 149 150 Backport from mainline 151 2019-10-08 Jonathan Wakely <jwakely@redhat.com> 152 153 * doc/Makefile.am (doc-html-docbook-regenerate): New target. 154 (${docbook_outdir}/html): Do not create unused 'html/ext' directory. 155 * doc/Makefile.in: Regenerate. 156 * doc/xml/manual/documentation_hacking.xml: Document new target. 157 * doc/html/*: Regenerate. 158 159 * doc/xml/manual/allocator.xml: Use archived copy of CUJ article. 160 161 Backport from mainline 162 2019-05-31 Gerald Pfeifer <gerald@pfeifer.com> 163 164 * doc/xml/manual/allocator.xml: Move hoard.org back to http. 165 166 Backport from mainline 167 2019-10-11 Jonathan Wakely <jwakely@redhat.com> 168 169 PR libstdc++/92059 170 * include/tr2/dynamic_bitset (__dynamic_bitset_base): Define all 171 special member functions as defaulted. Add noexcept to most members. 172 (__dynamic_bitset_base(size_t, unsigned long long, const _Alloc&)): 173 Mask off unwanted bits in the __val parameter. Avoid undefined left 174 shifts. 175 (__dynamic_bitset_base::_M_assign): Remove. 176 (__dynamic_bitset_base::_M_do_reset): Use std::fill. 177 (__dynamic_bitset_base::_M_are_all_aux): Avoid integer promotion when 178 block_type has lower rank than int. 179 (dynamic_bitset): Add noexcept to most members. Use injected-class-name 180 in return types and parameter types. 181 (dynamic_bitset::_M_Nb): Add default member initializer. 182 (dynamic_bitset(), dynamic_bitset(const dynamic_bitset&)): Define as 183 defaulted. 184 (dynamic_bitset(dynamic_bitset&&)): Clear source object after move. 185 (dynamic_bitset::operator=(const dynamic_bitset&)): Define as 186 defaulted. 187 (dynamic_bitset::operator=(dynamic_bitset&&)): Add noexcept-specifier. 188 Define without using swap, to propagate allocator correctly. 189 (dynamic_bitset(const char*, const _Alloc&)): Use strlen. 190 (dynamic_bitset::_M_do_sanitize, dynamic_bitset::_M_do_fill): Use 191 casts to avoid unwanted integer promotions. 192 (dynamic_bitset::_M_copy_from_ptr): Rearrange template parameters and 193 add default template arguments and default argument to simplify usage. 194 (dynamic_bitset::_M_copy_from_string): Adjust call to _M_copy_from_ptr. 195 (operator==(const dynamic_bitset&, const dynamic_bitset&)) 196 (operator<(const dynamic_bitset&, const dynamic_bitset&)): Use _M_Nb. 197 * include/tr2/dynamic_bitset.tcc (dynamic_bitset::_M_copy_from_ptr): 198 Adjust template parameters to match declaration. 199 * testsuite/tr2/dynamic_bitset/cmp.cc: New test. 200 * testsuite/tr2/dynamic_bitset/cons.cc: New test. 201 * testsuite/tr2/dynamic_bitset/copy.cc: New test. 202 * testsuite/tr2/dynamic_bitset/move.cc: New test. 203 * testsuite/tr2/dynamic_bitset/pr92059.cc: New test. 204 2052019-09-11 Jonathan Wakely <jwakely@redhat.com> 206 207 * python/libstdcxx/v6/xmethods.py (SharedPtrUseCountWorker.__call__): 208 Fix syntax error. 209 2102019-09-02 Jonathan Wakely <jwakely@redhat.com> 211 212 * doc/html/*: Regenerate. 213 214 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Replace dg-error 215 with dg-prune-output for enable_if failure. 216 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Add 217 dg-prune-output for enable_if failure. 218 2192019-08-30 Jonathan Wakely <jwakely@redhat.com> 220 221 Backport from mainline 222 2018-10-02 Jonathan Wakely <jwakely@redhat.com> 223 224 * include/std/variant (__gen_vtable_impl::__visit_invoke): Call __get 225 directly instead of get, as caller ensures correct index is used. 226 (holds_alternative, get, get_if): Remove redundant inline specifiers. 227 (_VARIANT_RELATION_FUNCTION_TEMPLATE): Likewise. 228 2292019-08-30 Jonathan Wakely <jwakely@redhat.com> 230 231 Backport from mainline 232 2018-08-16 Jonathan Wakely <jwakely@redhat.com> 233 234 * include/std/ostream (basic_ostream::sentry::~sentry): Suppress 235 deprecation warnings for using uncaught_exception(). 236 2372019-08-30 Jonathan Wakely <jwakely@redhat.com> 238 239 Backport from mainline 240 2019-07-31 Jonathan Wakely <jwakely@redhat.com> 241 242 PR libstdc++/91308 243 * include/bits/unique_ptr.h (unique_ptr::__safe_conversion_up): Remove 244 constraints on deleter that should only apply to the constructor. 245 (unique_ptr<T[], D>::__safe_conversion_up): Likewise. 246 (unique_ptr<T[], D>::unique_ptr(unique_ptr<U, D>&&)): Restore 247 constraints on deleter here. 248 * testsuite/20_util/unique_ptr/assign/91308.cc: New test. 249 2502019-08-30 Jonathan Wakely <jwakely@redhat.com> 251 252 Backport from mainline 253 2019-07-29 Jonathan Wakely <jwakely@redhat.com> 254 255 PR libstdc++/51333 256 * libsupc++/cxxabi.h (__gnu_cxx::recursive_init_error): Do not define 257 constructor inline. 258 * libsupc++/guard_error.cc (__gnu_cxx::recursive_init_error): Define 259 constructor. 260 * testsuite/18_support/51333.cc: New test. 261 2622019-08-30 Jonathan Wakely <jwakely@redhat.com> 263 264 Backport from mainline 265 2019-05-23 Jonathan Wakely <jwakely@redhat.com> 266 267 * doc/xml/manual/status_cxx2017.xml: Add feature test macro for 268 P0040R3. 269 * doc/html/*: Regenerate. 270 271 Backport from mainline 272 2019-06-20 Jonathan Wakely <jwakely@redhat.com> 273 274 * doc/xml/manual/status_cxx2017.xml: Fix outdated reference to 275 C++17 working draft. 276 277 Backport from mainline 278 2019-05-21 Jonathan Wakely <jwakely@redhat.com> 279 280 * doc/xml/manual/shared_ptr.xml: Fix names of lock policy constants. 281 2822019-08-30 Jonathan Wakely <jwakely@redhat.com> 283 284 Backport from mainline 285 2018-09-21 Jonathan Wakely <jwakely@redhat.com> 286 287 PR libstdc++/78179 288 * testsuite/26_numerics/headers/cmath/hypot.cc: Use lower tolerance 289 when sizeof(long double) == sizeof(double). 290 2912019-08-30 Jonathan Wakely <jwakely@redhat.com> 292 293 Backport from mainline 294 2019-03-22 Jonathan Wakely <jwakely@redhat.com> 295 296 * include/bits/stl_algobase.h (__lg): Do arithmetic on type int to 297 avoid -Wconversion warnings. 298 2992019-08-30 Jonathan Wakely <jwakely@redhat.com> 300 301 Backport from mainline 302 2019-06-07 Jonathan Wakely <jwakely@redhat.com> 303 304 PR libstdc++/90770 305 * src/Makefile.am (stamp-debug): Also test for missing makefile. 306 * src/Makefile.in: Regenerate. 307 3082019-08-30 Jonathan Wakely <jwakely@redhat.com> 309 310 Backport from mainline 311 2019-05-17 Jonathan Wakely <jwakely@redhat.com> 312 313 * include/bits/random.h (seed_seq::param): Fix non-reserved name. 314 * include/experimental/type_traits (is_detected_exact) 315 (is_detected_exact_v): Likewise. 316 * testsuite/17_intro/names.cc: Check for more non-reserved names. 317 * testsuite/experimental/names.cc: New test. 318 3192019-08-30 Jonathan Wakely <jwakely@redhat.com> 320 321 Backport from mainline 322 2019-05-17 Jonathan Wakely <jwakely@redhat.com> 323 324 PR libstdc++/85965 325 * include/bits/hashtable.h (_Hashtable::~_Hashtable()): Remove static 326 assertions from the destructor. 327 * include/bits/hashtable_policy.h (_Hash_code_base::_M_hash_code): 328 Move static_assert for hash function to here. 329 (_Hash_table_base::_M_equals): Move static_assert for equality 330 predicate to here. 331 * include/bits/stl_tree.h (_Rb_tree::_S_key(_Const_Link_type)): Move 332 assertions here. Access the value directly instead of calling _S_value. 333 (_Rb_tree::_S_key(_Const_Base_ptr)): Do downcast and forward to 334 _S_key(_Const_Link_type). 335 * testsuite/23_containers/set/85965.cc: Check construction, 336 destruction, assignment and size() do not trigger the assertions. 337 * testsuite/23_containers/unordered_set/85965.cc: Likewise. 338 * testsuite/23_containers/map/48101_neg.cc: Call find and adjust 339 expected errors. 340 * testsuite/23_containers/multimap/48101_neg.cc: Likewise. 341 * testsuite/23_containers/multiset/48101_neg.cc: Likewise. 342 * testsuite/23_containers/set/48101_neg.cc: Likewise. 343 * testsuite/23_containers/unordered_map/48101_neg.cc: Likewise. 344 * testsuite/23_containers/unordered_multimap/48101_neg.cc: Likewise. 345 * testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise. 346 * testsuite/23_containers/unordered_set/48101_neg.cc: Likewise. 347 3482019-08-30 Jonathan Wakely <jwakely@redhat.com> 349 350 Backport from mainline 351 2018-09-03 Jonathan Wakely <jwakely@redhat.com> 352 353 * include/bits/stl_vector.h (vector::_Temporary_value::_M_ptr): 354 Return raw pointer not allocator's pointer type. 355 (vector::_Temporary_value::_M_val): Use _M_ptr. 356 3572019-06-01 Iain Sandoe <iain@sandoe.co.uk> 358 359 Backport from mainline 360 2018-12-22 Iain Sandoe <iain@sandoe.co.uk> 361 362 * /config/os/bsd/darwin/ppc-extra.ver: Append long double symbols. 363 3642019-05-30 Jonathan Wakely <jwakely@redhat.com> 365 366 * doc/xml/manual/status_cxx2017.xml: Fix typo in documentation of 367 implementation-defined support for [fs.conform.9945]. 368 * doc/html/*: Regenerate. 369 3702019-05-28 Jonathan Wakely <jwakely@redhat.com> 371 372 PR libstdc++/90634 373 * src/filesystem/path.cc (path::_M_split_cmpts()): Fix check for "/". 374 * testsuite/27_io/filesystem/path/construct/90634.cc: New test. 375 * testsuite/experimental/filesystem/path/construct/90634.cc: New test. 376 377 PR libstdc++/90634 378 * include/bits/fs_path.h (path::path(path&&)): Only call 379 _M_split_cmpts() for a path with multiple components. 380 (path::_S_is_dir_sep()): Add missing 'static' keyword to function. 381 * include/experimental/bits/fs_path.h: Likewise. 382 * src/filesystem/path.cc (path::_M_split_cmpts()): Count number of 383 components and reserve space in vector. Return early when there is 384 only one component. 385 * src/filesystem/std-path.cc (path::_M_split_cmpts()): Likewise. 386 3872019-05-23 Jonathan Wakely <jwakely@redhat.com> 388 389 Backport from mainline 390 2019-02-27 Jonathan Wakely <jwakely@redhat.com> 391 392 PR libstdc++/89466 393 * acinclude.m4 (GLIBCXX_CONFIGURE_DOCBOOK): Reorder check for local 394 stylesheet directories before check for xsltproc. Try to use 395 xmlcatalog to find local stylesheet directory before trying hardcoded 396 paths. Add path used by suse to hardcoded paths. Adjust xsltproc 397 check to look for the same stylesheet as doc/Makefile.am uses. Don't 398 use xsltproc if xmlcatalog fails to find a local stylesheet. 399 * configure.ac: Check for xmlcatalog. 400 * Makefile.in: Regenerate. 401 * configure: Likewise. 402 * doc/Makefile.in: Likewise. 403 * include/Makefile.in: Likewise. 404 * libsupc++/Makefile.in: Likewise. 405 * po/Makefile.in: Likewise. 406 * python/Makefile.in: Likewise. 407 * src/Makefile.in: Likewise. 408 * src/c++11/Makefile.in: Likewise. 409 * src/c++17/Makefile.in: Likewise. 410 * src/c++98/Makefile.in: Likewise. 411 * src/filesystem/Makefile.in: Likewise. 412 * testsuite/Makefile.in: Likewise. 413 4142019-05-23 Jonathan Wakely <jwakely@redhat.com> 415 416 * doc/html/*: Regenerate. 417 4182019-05-23 Jonathan Wakely <jwakely@redhat.com> 419 420 Backport from mainline 421 2019-05-23 Jonathan Wakely <jwakely@redhat.com> 422 423 * include/experimental/any (__any_caster): Use RTTI if comparing 424 addresses fails, to support non-unique addresses in shared libraries. 425 * include/std/any (__any_caster): Likewise. 426 * testsuite/experimental/any/misc/any_cast_neg.cc: Use 0 for dg-error 427 line number. 428 4292019-05-23 Jonathan Wakely <jwakely@redhat.com> 430 431 Backport from mainline 432 2019-05-23 Jonathan Wakely <jwakely@redhat.com> 433 434 PR libstdc++/90220 435 * include/experimental/any (__any_caster): Constrain to only be 436 callable for object types. Use remove_cv_t instead of decay_t. 437 If the type decays or isn't copy constructible, compare the manager 438 function to a dummy specialization. 439 (__any_caster): Add overload constrained for non-object types. 440 (any::_Manager_internal<_Op>): Add dummy specialization. 441 * testsuite/experimental/any/misc/any_cast.cc: Test function types 442 and array types. 443 444 Backport from mainline 445 2019-04-24 Jonathan Wakely <jwakely@redhat.com> 446 447 PR libstdc++/90220 448 * include/std/any (__any_caster): Use remove_cv_t instead of decay_t. 449 Avoid a runtime check for types that can never be stored in std::any. 450 * testsuite/20_util/any/misc/any_cast.cc: Test std::any_cast with 451 array types. 452 453 Backport from mainline 454 2019-04-24 Jonathan Wakely <jwakely@redhat.com> 455 456 PR libstdc++/90220 (partial) 457 * include/std/any (any_cast<T>(any*), any_cast<T>(const any*)): Do 458 not attempt ill-formed static_cast to pointers to non-object types. 459 * testsuite/20_util/any/misc/any_cast.cc: Test std::any_cast with 460 function types. 461 4622019-05-23 Jonathan Wakely <jwakely@redhat.com> 463 464 Backported from mainline 465 2019-01-15 Jonathan Wakely <jwakely@redhat.com> 466 467 * doc/xml/manual/status_cxx2017.xml: Document P0032R3 and P0307R2 468 status. 469 * include/bits/stl_uninitialized.h (__cpp_lib_raw_memory_algorithms): 470 Define. 471 * include/std/any (__cpp_lib_any): Define as 201606L, because P0032R3 472 changes are supported. 473 * include/std/optional (__cpp_lib_optional): Likewise. 474 * include/std/variant (__cpp_lib_variant): Likewise. 475 * libsupc++/exception (__cpp_lib_uncaught_exceptions): Define as long 476 integer. 477 4782019-05-20 Jonathan Wakely <jwakely@redhat.com> 479 480 Backported from mainline 481 2019-05-20 Jonathan Wakely <jwakely@redhat.com> 482 483 PR c++/90532 Ensure __is_constructible(T[]) is false 484 * include/std/type_traits (__do_is_default_constructible_impl) 485 (__is_default_constructible_atom, __is_default_constructible_safe): 486 Remove. 487 (is_default_constructible): Use is_constructible. 488 * testsuite/20_util/is_constructible/value.cc: Check int[] case. 489 * testsuite/20_util/is_default_constructible/value.cc: Likewise. 490 * testsuite/20_util/is_trivially_constructible/value.cc: Likewise. 491 * testsuite/20_util/is_trivially_default_constructible/value.cc: 492 Likewise. 493 4942019-05-17 Jonathan Wakely <jwakely@redhat.com> 495 496 Backport from mainline 497 2019-05-04 Jonathan Wakely <jwakely@redhat.com> 498 499 PR libstdc++/90299 500 * src/filesystem/std-ops.cc (absolute(const path&)): Report an error 501 if the argument is an empty path. 502 (absolute(const path&, error_code&)): Use invalid_argument as error 503 code instead of no_such_file_or_directory. 504 * testsuite/27_io/filesystem/operations/absolute.cc: Check handling 505 of non-existent paths and empty paths with both overloads of absolute. 506 5072019-05-15 Jonathan Wakely <jwakely@redhat.com> 508 509 Backport from mainline 510 2019-04-30 Jonathan Wakely <jwakely@redhat.com> 511 512 * testsuite/27_io/filesystem/path/decompose/root_path.cc: Remove 513 macros accidentally left in. 514 515 Backport from mainline 516 2019-05-13 Jonathan Wakely <jwakely@redhat.com> 517 518 PR libstdc++/90454.cc path construction from void* 519 * include/bits/fs_path.h (path::_Path): Use remove_pointer so that 520 pointers to void are rejected as well as void. 521 * include/experimental/bits/fs_path.h (path::_Path): Likewise. 522 * testsuite/27_io/filesystem/path/construct/80762.cc: Also check 523 pointers to void. 524 * testsuite/experimental/filesystem/path/construct/80762.cc: Likewise. 525 5262019-05-11 Jonathan Wakely <jwakely@redhat.com> 527 528 Backport from mainline 529 2019-05-10 Jonathan Wakely <jwakely@redhat.com> 530 531 PR libstdc++/81266 532 * testsuite/util/thread/all.h: Do not use remove_pointer for 533 std::thread::native_handle_type. 534 5352019-05-07 Jonathan Wakely <jwakely@redhat.com> 536 537 Backport from mainline 538 2019-02-06 Jonathan Wakely <jwakely@redhat.com> 539 540 PR libstdc++/89102 (partial) 541 * include/std/type_traits (common_type<>): Define. 542 (common_type<T>): Derive from common_type<T, T>. 543 * testsuite/20_util/common_type/requirements/explicit_instantiation.cc: 544 Test zero-length template argument list. 545 * testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc: 546 Test additional single argument cases. 547 * testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc: 548 Adjust expected error. 549 550 Backport from mainline 551 2019-01-22 Jonathan Wakely <jwakely@redhat.com> 552 553 PR libstdc++/88740 554 * testsuite/util/testsuite_hooks.h [stderr] (VERIFY): Use fprintf to 555 write to stderr instead of using printf. 556 557 Backport from mainline 558 2019-04-23 Jonathan Wakely <jwakely@redhat.com> 559 560 PR libstdc++/90165 561 * include/std/variant (variant::__is_in_place_tag) 562 (variant::__not_in_place_tag): New helpers for variant(T&&) 563 constructor constraint. 564 (variant::variant(T&&)): Use __not_in_place_tag in constraints. 565 * testsuite/20_util/variant/compile.cc: Check variant(T&&) constructor 566 isn't used for in_place_type or in_place_index arguments. 567 568 Backport from mainline 569 2019-04-17 Jonathan Wakely <jwakely@redhat.com> 570 571 PR libstdc++/90105 572 * include/bits/forward_list.tcc (operator==): Do not use operator!= to 573 compare elements. 574 (forward_list<T, A>::sort(Comp)): When elements are equal take the one 575 earlier in the list, so that sort is stable. 576 * testsuite/23_containers/forward_list/operations/90105.cc: New test. 577 * testsuite/23_containers/forward_list/comparable.cc: Test with 578 types that meet the minimum EqualityComparable and LessThanComparable 579 requirements. Remove irrelevant comment. 580 581 Backport from mainline 582 2019-04-17 Jonathan Wakely <jwakely@redhat.com> 583 584 * include/std/optional (optional::value_or(U&&) &&): Add missing 585 constexpr specifier. 586 * testsuite/20_util/optional/constexpr/observers/4.cc: Check value_or 587 for disengaged optionals and rvalue optionals. 588 * testsuite/20_util/optional/observers/4.cc: Likewise. 589 590 Backport from mainline 591 2019-04-10 Jonathan Wakely <jwakely@redhat.com> 592 593 * doc/xml/faq.xml: Add information about emergency EH pool. 594 * doc/xml/manual/debug.xml: Update list of memory debugging tools. 595 Move outdated information on mt_allocator to a separate section. 596 * doc/xml/manual/evolution.xml: Clarify that GLIBCXX_FORCE_NEW 597 doesn't affect the default allocator. 598 599 Backport from mainline 600 2019-04-05 Jonathan Wakely <jwakely@redhat.com> 601 602 * src/filesystem/std-dir.cc (_Dir::advance(bool, error_code&)): Handle 603 d_type == DT_UNKNOWN immediately. 604 (_Dir::should_recurse(bool, error_code&)): Remove file_type::unknown 605 handling here. 606 * testsuite/27_io/filesystem/iterators/caching.cc: New test. 607 608 Backport from mainline 609 2019-04-05 Jonathan Wakely <jwakely@redhat.com> 610 611 * include/bits/fs_path.h (path::operator=(path&&)): Check for self 612 assignment. 613 * testsuite/27_io/filesystem/path/assign/copy.cc: Test self 614 assignment. 615 616 Backport from mainline 617 2019-03-26 Jonathan Wakely <jwakely@redhat.com> 618 619 PR libstdc++/85965 620 * include/bits/hashtable.h (_Hashtable): Move static assertions to 621 destructor so they are not evaluated until the _Key type is complete. 622 * include/bits/stl_tree.h (_Rb_tree): Likewise. 623 * testsuite/23_containers/set/85965.cc: New test. 624 * testsuite/23_containers/unordered_set/85965.cc: New test. 625 * testsuite/23_containers/map/48101_neg.cc: Replace "here" errors 626 with regexp matching the corresponding _Rb_tree specialization. 627 * testsuite/23_containers/multimap/48101_neg.cc: Likewise. 628 * testsuite/23_containers/multiset/48101_neg.cc: Remove "here" error. 629 * testsuite/23_containers/set/48101_neg.cc: Likewise. 630 * testsuite/23_containers/unordered_map/48101_neg.cc: Likewise. 631 * testsuite/23_containers/unordered_multimap/48101_neg.cc: Likewise. 632 * testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise. 633 * testsuite/23_containers/unordered_set/48101_neg.cc: Likewise. 634 635 Backport from mainline 636 2019-03-11 Jonathan Wakely <jwakely@redhat.com> 637 638 PR libstdc++/89629 639 * libsupc++/hash_bytes.cc [__SIZEOF_SIZE_T__ == 8] (_Hash_bytes): 640 Use correct type for len_aligned. 641 * testsuite/20_util/hash/89629.cc: New test. 642 643 Backport from mainline 644 2019-03-08 Jonathan Wakely <jwakely@redhat.com> 645 646 * doc/xml/manual/using.xml: Use link element instead of xref. 647 648 Backport from mainline 649 2019-02-14 Jonathan Wakely <jwakely@redhat.com> 650 651 * doc/xml/manual/intro.xml: Document LWG 2586 status. 652 * include/bits/uses_allocator.h (__uses_alloc): Use const lvalue 653 allocator type in is_constructible checks. 654 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust dg-error. 655 * testsuite/20_util/scoped_allocator/dr2586.cc: New test. 656 * testsuite/20_util/tuple/cons/allocators.cc: Add test using 657 problematic type from LWG 2586 discussion. 658 * testsuite/20_util/uses_allocator/69293_neg.cc: Adjust dg-error. 659 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise. 660 661 Backport from mainline 662 2019-02-14 Jonathan Wakely <jwakely@redhat.com> 663 664 * doc/xml/manual/intro.xml: Document LWG 2537 status. 665 * include/bits/stl_queue.h 666 (priority_queue(const Compare&, const Container&, const Alloc&)) 667 (priority_queue(const Compare&, Container&&, const Alloc&)): Call 668 make_heap. 669 * testsuite/23_containers/priority_queue/dr2537.cc: New test. 670 6712019-02-22 Jonathan Wakely <jwakely@redhat.com> 672 673 PR libstdc++/89446 674 * include/bits/char_traits.h (__constant_char_array): Check index is 675 in range before dereferencing. 676 * testsuite/21_strings/basic_string_view/operators/char/89446.cc: 677 New test. 678 6792019-02-22 Release Manager 680 681 * GCC 8.3.0 released. 682 6832019-02-14 Jonathan Wakely <jwakely@redhat.com> 684 685 PR middle-end/89303 686 * testsuite/20_util/enable_shared_from_this/89303.cc: New test. 687 6882019-02-09 Jonathan Wakely <jwakely@redhat.com> 689 690 Backport from mainline 691 2019-01-08 Jonathan Wakely <jwakely@redhat.com> 692 693 PR libstdc++/88066 694 * include/bits/locale_conv.h: Use <> for includes not "". 695 * include/ext/random: Likewise. 696 * include/ext/vstring.h: Likewise. 697 6982019-02-08 Jonathan Wakely <jwakely@redhat.com> 699 700 * doc/html/*: Regenerate. 701 702 * src/c++17/fs_ops.cc (absolute(const path&, error_code&)): Do nothing 703 if the path is already absolute. 704 [!_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Pass error_code to current_path. 705 706 Backport from mainline 707 2019-01-11 Jonathan Wakely <jwakely@redhat.com> 708 709 * include/std/chrono (duration_values::zero(), duration_values::min()) 710 (duration_values::max()): Add noexcept. 711 (duration::zero(), duration::min(), duration::max()): Likewise. 712 (time_point::zero(), time_point::min(), time_point::max()): Likewise. 713 * testsuite/20_util/duration/requirements/noexcept.cc: New test. 714 * testsuite/20_util/time_point/requirements/noexcept.cc: New test. 715 7162019-02-08 Jonathan Wakely <jwakely@redhat.com> 717 718 Backport from mainline 719 2019-01-07 Jonathan Wakely <jwakely@redhat.com> 720 721 PR libstdc++/87787 722 * include/bits/char_traits.h (char_traits::move): Do not pass null 723 pointers to memmove. 724 * include/bits/locale_facets.h 725 (ctype<char>::widen(const char*, const char*, char*)): Do not 726 pass null pointers to memcpy. 727 (ctype<char>::narrow(const char*, const char*, char, char*)): 728 Likewise. 729 (ctype<char>::do_widen(const char*, const char*, char*)): 730 Likewise. 731 (ctype<char>::do_narrow(const char*, const char*, char, char*)): 732 Likewise. 733 7342019-02-08 Jonathan Wakely <jwakely@redhat.com> 735 736 Backport from mainline 737 2018-11-23 Martin Sebor <msebor@redhat.com> 738 Jonathan Wakely <jwakely@redhat.com> 739 740 PR libstdc++/65229 741 * python/libstdcxx/v6/printers.py (StdBitsetPrinter): Handle 742 exception thrown for std::bitset<0>. 743 * testsuite/libstdc++-prettyprinters/simple.cc: Test std::bitset<0>. 744 7452019-02-08 Jonathan Wakely <jwakely@redhat.com> 746 747 Backport from mainline 748 2018-11-23 Jonathan Wakely <jwakely@redhat.com> 749 750 PR libstdc++/87308 (partial) 751 * python/libstdcxx/v6/printers.py (StdExpAnyPrinter): Adjust regex to 752 work around PR 88166. 753 7542019-02-08 Jonathan Wakely <jwakely@redhat.com> 755 756 Backport from mainline 757 2019-02-05 Jonathan Wakely <jwakely@redhat.com> 758 759 PR libstdc++/89128 760 * include/bits/stl_queue.h (queue, priority_queue): Add deduction 761 guides. 762 * include/bits/stl_stack.h (stack): Likewise. 763 * testsuite/23_containers/priority_queue/deduction.cc: New test. 764 * testsuite/23_containers/queue/deduction.cc: New test. 765 * testsuite/23_containers/stack/deduction.cc: New test. 766 7672019-02-08 Jonathan Wakely <jwakely@redhat.com> 768 769 Backport from mainline 770 2018-11-29 Jonathan Wakely <jwakely@redhat.com> 771 772 PR libstdc++/88119 773 * include/ext/aligned_buffer.h (__aligned_membuf): Add comment. 774 (__aligned_buffer): Use __alignof__ instead of std::alignment_of. 775 * include/std/type_traits (alignment_of): Use alignof instead of 776 __alignof__. 777 * testsuite/20_util/alignment_of/value.cc: Fix test to check values 778 match alignof not __alignof__, as required by the standard. 779 7802019-02-08 Jonathan Wakely <jwakely@redhat.com> 781 782 Backport from mainline 783 2018-11-28 Jonathan Wakely <jwakely@redhat.com> 784 785 PR libstdc++/83511 786 * include/std/string_view (basic_string_view::substr): Add default 787 argument to first parameter. 788 * include/experimental/string_view (basic_string_view::substr): 789 Likewise. 790 * testsuite/21_strings/basic_string_view/operations/substr/char/ 791 83511.cc: New test. 792 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/ 793 83511.cc: New test. 794 * testsuite/experimental/string_view/operations/substr/char/83511.cc: 795 New test. 796 * testsuite/experimental/string_view/operations/substr/wchar_t/83511.cc: 797 New test. 798 799 Backport from mainline 800 2018-11-19 Jonathan Wakely <jwakely@redhat.com> 801 802 PR libstdc++/88084 - Implement LWG 2777 803 * include/std/string_view (basic_string_view::copy): Use traits to 804 copy. 805 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc: 806 New test. 807 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc: 808 New test. 809 810 Backport from mainline 811 2018-11-29 Jonathan Wakely <jwakely@redhat.com> 812 813 PR libstdc++/86910 814 PR libstdc++/87846 815 * src/filesystem/ops.cc (experimental::create_directories): Report 816 an error when the path resolves to an existing non-directory (P1164). 817 * src/filesystem/std-ops.cc (create_directories): Likewise. Handle 818 empty filenames due to trailing slashes. 819 * testsuite/27_io/filesystem/operations/create_directories.cc: Test 820 when some component of the path exists and is not a directory. Test 821 trailing slashes. 822 * testsuite/experimental/filesystem/operations/create_directories.cc: 823 Likewise. 824 825 Backport from mainline 826 2018-11-28 Jonathan Wakely <jwakely@redhat.com> 827 828 * doc/xml/manual/intro.xml: Document LWG 3096 change. 829 * src/filesystem/std-path.cc (path::lexically_relative(const path&)): 830 Treat a final empty element equivalently to a final dot element. 831 * testsuite/27_io/filesystem/path/generation/relative.cc: Add checks 832 for the examples in the DR. 833 834 Backport from mainline 835 2018-07-20 Jonathan Wakely <jwakely@redhat.com> 836 837 PR libstdc++/86595 838 * include/bits/fs_dir.h (directory_entry::refresh(error_code&)): Add 839 noexcept. 840 841 Backport from mainline 842 2018-05-21 Jonathan Wakely <jwakely@redhat.com> 843 844 * src/filesystem/std-ops.cc (absolute): Report an error for empty 845 paths. 846 (weakly_canonical(const path&)): Do not call canonical on empty path. 847 (weakly_canonical(const path&, error_code&)): Likewise. 848 * testsuite/27_io/filesystem/operations/absolute.cc: Check for errors. 849 850 Backport from mainline 851 2019-01-30 Jonathan Wakely <jwakely@redhat.com> 852 853 PR libstdc++/89117 854 * src/c++17/fs_path.cc (path::replace_extension): Erase extension from 855 final component as well as from _M_pathname. 856 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc: 857 Add more test cases. 858 8592019-01-21 Jonathan Wakely <jwakely@redhat.com> 860 861 Backport from mainline 862 2019-01-18 Jonathan Wakely <jwakely@redhat.com> 863 864 PR libstdc++/87514 865 PR libstdc++/87520 866 PR libstdc++/88782 867 * include/bits/shared_ptr.h 868 (shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)) 869 (allocate_shared): Change to use new tag type. 870 (_Sp_alloc_shared_tag): Define new type. 871 (_Sp_counted_ptr_inplace): Declare __shared_count<_Lp> as a friend. 872 (__shared_count(Ptr, Deleter),__shared_count(Ptr, Deleter, Alloc)): 873 Constrain to prevent being called with _Sp_alloc_shared_tag. 874 (__shared_count(_Sp_make_shared_tag, const _Alloc&, Args&&...)): 875 Replace constructor with ... 876 (__shared_count(Tp*&, _Sp_alloc_shared_tag<_Alloc>, Args&&...)): Use 877 reference parameter so address of the new object can be returned to 878 the caller. Obtain the allocator from the tag type. 879 (__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Replace 880 constructor with ... 881 (__shared_ptr(_Sp_alloc_shared_tag<Alloc>, Args&&...)): Pass _M_ptr 882 to the __shared_count constructor. 883 (__allocate_shared): Change to use new tag type. 884 8852019-01-14 Jonathan Wakely <jwakely@redhat.com> 886 887 PR libstdc++/80762 888 * testsuite/experimental/filesystem/path/construct/80762.cc: Add 889 dg-require-filesystem-ts directive. 890 8912019-01-10 Jonathan Wakely <jwakely@redhat.com> 892 893 Backport from mainline 894 2019-01-04 Jonathan Wakely <jwakely@redhat.com> 895 896 (path::lexically_normal()): Use std::vector iterators instead of 897 path::iterator. Use pop_back to remove components from the end. Clear 898 trailing filename, instead of using erase(const_iterator) to remove 899 a non-final component. 900 * testsuite/27_io/filesystem/path/generation/normal.cc: Test 901 additional cases. 902 * testsuite/27_io/filesystem/path/generation/normal2.cc: New test. 903 9042019-01-10 Jonathan Wakely <jwakely@redhat.com> 905 906 Backport from mainline 907 2018-12-12 Jonathan Wakely <jwakely@redhat.com> 908 909 PR libstdc++/80762 910 * include/bits/fs_path.h (path::_Path): Use remove_cv_t and is_void. 911 * include/experimental/bits/fs_path.h (path::_Path): Likewise. 912 * testsuite/27_io/filesystem/path/construct/80762.cc: New test. 913 * testsuite/experimental/filesystem/path/construct/80762.cc: New test. 914 9152019-01-10 Jonathan Wakely <jwakely@redhat.com> 916 917 Backport from mainline 918 2018-05-23 Jonathan Wakely <jwakely@redhat.com> 919 920 * include/bits/fs_path.h (path::_M_type): Change default member 921 initializer to _Filename. 922 (path::begin): Create past-the-end iterator for empty path. 923 (path::has_relative_path()): Return false for empty filenames. 924 (path::_M_split_cmpts): Set _M_type to _Filename for empty paths. 925 Fix offset of empty final component. 926 * testsuite/27_io/filesystem/path/itr/components.cc: New. 927 * testsuite/27_io/filesystem/path/itr/traversal.cc: Add new inputs. 928 9292019-01-10 Jonathan Wakely <jwakely@redhat.com> 930 931 Backport from mainline 932 2019-01-10 Jonathan Wakely <jwakely@redhat.com> 933 934 * testsuite/util/testsuite_fs.h (nonexistent_path): Include name 935 of the source file containing the caller. 936 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Remove 937 directories created by test. 938 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc: 939 Likewise. 940 * testsuite/experimental/filesystem/iterators/directory_iterator.cc: 941 Likewise. 942 * testsuite/experimental/filesystem/iterators/ 943 recursive_directory_iterator.cc: Likewise. 944 9452019-01-10 Jonathan Wakely <jwakely@redhat.com> 946 947 Backport from mainline 948 2018-11-27 Jonathan Wakely <jwakely@redhat.com> 949 950 * testsuite/27_io/filesystem/operations/canonical.cc: Remove 951 directory created by test. 952 * testsuite/27_io/filesystem/operations/symlink_status.cc: Remove 953 symlink created by test. 954 9552019-01-10 Jonathan Wakely <jwakely@redhat.com> 956 957 * src/filesystem/std-path.cc (path::remove_filename()): Remove debug 958 check that prevents building with -fno-exceptions. 959 9602019-01-09 Jonathan Wakely <jwakely@redhat.com> 961 962 * testsuite/20_util/optional/cons/value_neg.cc: Change dg-error to 963 dg-prune-output. Remove unused header. 964 965 Backport from mainline 966 2019-01-08 Jonathan Wakely <jwakely@redhat.com> 967 968 PR libstdc++/87855 969 * include/std/optional (_Optional_payload_base): New class template 970 for common code hoisted from _Optional_payload specializations. Use 971 a template for the union, to allow a partial specialization for 972 types with non-trivial destructors. Add constructors for in-place 973 initialization to the union. 974 (_Optional_payload(bool, const _Optional_payload&)): Use _M_construct 975 to perform non-trivial copy construction, instead of relying on 976 non-standard copy elision in a delegating constructor. 977 (_Optional_payload(bool, _Optional_payload&&)): Likewise for 978 non-trivial move construction. 979 (_Optional_payload): Derive from _Optional_payload_base and use it 980 for everything except the non-trivial assignment operators, which are 981 defined as needed. 982 (_Optional_payload<false, C, M>): Derive from the specialization 983 _Optional_payload<true, false, false> and add a destructor. 984 (_Optional_base_impl::_M_destruct, _Optional_base_impl::_M_reset): 985 Forward to corresponding members of _Optional_payload. 986 (_Optional_base_impl::_M_is_engaged, _Optional_base_impl::_M_get): 987 Hoist common members from _Optional_base. 988 (_Optional_base): Make all members and base class public. 989 (_Optional_base::_M_get, _Optional_base::_M_is_engaged): Move to 990 _Optional_base_impl. 991 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter): Add 992 support for new std::optional layout. 993 * testsuite/libstdc++-prettyprinters/compat.cc: New test. 994 995 Backport from mainline 996 2018-11-19 Ville Voutilainen <ville.voutilainen@gmail.com> 997 998 PR libstdc++/87855 999 Also implement P0602R4 (variant and optional 1000 should propagate copy/move triviality) for std::optional. 1001 * include/std/optional (_Optional_payload): Change 1002 the main constraints to check constructibility in 1003 addition to assignability. 1004 (operator=): Make constexpr. 1005 (_M_reset): Likewise. 1006 (_M_construct): Likewise. 1007 (operator->): Likewise. 1008 * testsuite/20_util/optional/assignment/8.cc: Adjust. 1009 * testsuite/20_util/optional/assignment/9.cc: New. 1010 10112018-12-23 Iain Sandoe <iain@sandoe.co.uk> 1012 1013 Backport from mainline 1014 2018-12-06 Iain Sandoe <iain@sandoe.co.uk> 1015 1016 * scripts/make_exports.pl (check names): Don’t try to export 1017 construction vtable symbols. 1018 10192018-12-22 Iain Sandoe <iain@sandoe.co.uk> 1020 1021 Backport from mainline 1022 2018-12-06 Jonathan Wakely <jwakely@redhat.com> 1023 Iain Sandoe <iain@sandoe.co.uk> 1024 1025 PR libstdc++/64883 1026 * testsuite/17_intro/headers/c++1998/all_attributes.cc: Don't test 1027 always_inline on Darwin. 1028 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Likewise. 1029 * testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise. 1030 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Likewise. 1031 * testsuite/17_intro/headers/c++2020/all_attributes.cc: Likewise. 1032 10332018-12-06 Iain Sandoe <iain@sandoe.co.uk> 1034 1035 Backport from mainline 1036 2018-08-25 Iain Sandoe <iain@sandoe.co.uk> 1037 1038 PR libstdc++/70694 1039 * configure.host (OPT_LDFLAGS): Don't append 1040 -fvisibility-inlines-hidden for newer Darwin. 1041 10422018-11-28 François Dumont <fdumont@gcc.gnu.org> 1043 1044 PR libstdc++/88199 1045 * include/bits/hashtable.h 1046 (_Hashtable<>::_M_move_assign(_Hashtable&&, false_type)): Deallocate 1047 former buckets after assignment. 1048 * testsuite/23_containers/unordered_set/allocator/move_assign.cc 1049 (test03): New. 1050 10512018-11-22 Jonathan Wakely <jwakely@redhat.com> 1052 1053 Backport from mainline 1054 2018-11-22 Jonathan Wakely <jwakely@redhat.com> 1055 1056 PR libstdc++/85930 1057 PR libstdc++/87520 1058 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti) 1059 [__cpp_rtti]: Define even when RTTI is enabled. Use array of 1060 sizeof(type_info) so that type-punned reference binds to an object 1061 of the correct size as well as correct alignment. 1062 (_Sp_counted_ptr_inplace::_M_get_deleter) [__cpp_rtti]: Check for 1063 _S_ti() reference even when RTTI is enabled. 1064 (__shared_ptr(_Sp_make_shared_tag, const _Alloc&, _Args&&...)) 1065 [__cpp_rtti]: Pass _S_ti() instead of typeid(_Sp_make_shared_tag). 1066 10672018-10-31 Jonathan Wakely <jwakely@redhat.com> 1068 1069 Backport from mainline 1070 2018-10-31 Jonathan Wakely <jwakely@redhat.com> 1071 1072 PR libstdc++/87822 1073 * include/bits/stl_pair.h (__pair_base): Change to class template. 1074 (pair): Make base class type depend on template parameters. 1075 * testsuite/20_util/pair/87822.cc: New test. 1076 10772018-10-30 Jonathan Wakely <jwakely@redhat.com> 1078 1079 Backport from mainline 1080 2018-10-30 Jonathan Wakely <jwakely@redhat.com> 1081 1082 PR libstdc++/87809 1083 * include/bits/forward_list.h (_Fwd_list_impl::_Fwd_list_impl()): Use 1084 trait in exception-specification instead of possibly invalid 1085 expression. 1086 * include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()): 1087 Likewise. 1088 * include/bits/stl_list.h (_List_impl::_List_impl()): Likewise. 1089 * testsuite/23_containers/forward_list/cons/87809.cc: New test. 1090 * testsuite/23_containers/list/cons/87809.cc: New test. 1091 * testsuite/23_containers/vector/bool/cons/87809.cc: New test. 1092 * testsuite/23_containers/vector/cons/87809.cc: New test. 1093 10942018-10-25 Jonathan Wakely <jwakely@redhat.com> 1095 1096 PR libstdc++/87749 1097 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] 1098 (basic_string::operator=(basic_string&&)): For short strings copy the 1099 buffer inline. Only fall back to using assign(const basic_string&) to 1100 do a deep copy when reallocation is needed. 1101 * testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc: 1102 New test. 1103 * testsuite/21_strings/basic_string/modifiers/assign/char/ 1104 move_assign_optim.cc: New test. 1105 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc: 1106 New test. 1107 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/ 1108 move_assign_optim.cc: New test. 1109 11102018-10-23 Jonathan Wakely <jwakely@redhat.com> 1111 1112 PR libstdc++/87704 1113 * include/bits/unique_ptr.h (unique_ptr::unique_ptr(nullptr_t)): Do 1114 not delegate to default constructor. 1115 (unique_ptr<T[], D>::unique_ptr(nullptr_t)): Likewise. 1116 * testsuite/20_util/unique_ptr/cons/incomplete.cc: New test. 1117 11182018-10-19 Jonathan Wakely <jwakely@redhat.com> 1119 1120 * include/bits/regex_executor.tcc (_Backref_matcher::_M_apply): Use 1121 _GLIBCXX_STD_A to refer to normal mode algorithms. 1122 * testsuite/28_regex/headers/regex/parallel_mode.cc: New test. 1123 * testsuite/28_regex/headers/regex/std_c++0x_neg.cc: Remove empty 1124 whitespace. 1125 11262018-10-18 Jonathan Wakely <jwakely@redhat.com> 1127 1128 Backport from mainline 1129 2018-10-18 Jonathan Wakely <jwakely@redhat.com> 1130 1131 PR libstdc++/87641 1132 * include/bits/valarray_array.h (__valarray_sum): Use first element 1133 to initialize accumulator instead of value-initializing it. 1134 * testsuite/26_numerics/valarray/87641.cc: New test. 1135 11362018-10-15 Jonathan Wakely <jwakely@redhat.com> 1137 1138 * testsuite/22_locale/numpunct/members/char/3.cc: Adjust test to 1139 account for change to glibc it_IT localedata (glibc bz#10797). 1140 11412018-10-12 Jonathan Wakely <jwakely@redhat.com> 1142 1143 Backport from mainline 1144 2018-07-31 Jonathan Wakely <jwakely@redhat.com> 1145 1146 PR libstdc++/86751 1147 * include/bits/stl_pair.h (__pair_base): New class with deleted copy 1148 assignment operator. 1149 (pair): Derive from __pair_base. 1150 (pair::operator=): Remove deleted overload. 1151 * python/libstdcxx/v6/printers.py (StdPairPrinter): New pretty printer 1152 so that new base class isn't shown in GDB. 1153 * testsuite/20_util/pair/86751.cc: New test. 1154 * testsuite/20_util/pair/ref_assign.cc: New test. 1155 11562018-10-12 Jonathan Wakely <jwakely@redhat.com> 1157 1158 Backport from mainline 1159 2018-09-03 Jonathan Wakely <jwakely@redhat.com> 1160 1161 PR libstdc++/78595 1162 * include/bits/stl_map.h (map::insert(_Pair&&)) 1163 (map::insert(const_iterator, _Pair&&)): Do emplace instead of insert. 1164 * include/bits/stl_multimap.h (multimap::insert(_Pair&&)) 1165 (multimap::insert(const_iterator, _Pair&&)): Likewise. 1166 * include/bits/unordered_map.h (unordered_map::insert(_Pair&&)) 1167 (unordered_map::insert(const_iterator, _Pair&&)) 1168 (unordered_multimap::insert(_Pair&&)) 1169 (unordered_multimap::insert(const_iterator, _Pair&&)): Likewise. 1170 * include/std/type_traits (__enable_if_t): Define for C++11. 1171 * testsuite/23_containers/map/modifiers/insert/78595.cc: New test. 1172 * testsuite/23_containers/multimap/modifiers/insert/78595.cc: New test. 1173 * testsuite/23_containers/unordered_map/modifiers/78595.cc: New test. 1174 * testsuite/23_containers/unordered_multimap/modifiers/78595.cc: New 1175 test. 1176 11772018-10-12 Jonathan Wakely <jwakely@redhat.com> 1178 1179 Backport from mainline 1180 2018-08-30 Jonathan Wakely <jwakely@redhat.com> 1181 1182 * include/ext/pointer.h (_Pointer_adapter): Define operators for 1183 pointer arithmetic using long long offsets. 1184 * testsuite/ext/ext_pointer/1.cc: Test pointer arithmetic using 1185 long long values. 1186 11872018-10-12 Jonathan Wakely <jwakely@redhat.com> 1188 1189 Backport from mainline 1190 2018-08-23 Jonathan Wakely <jwakely@redhat.com> 1191 1192 * testsuite/21_strings/basic_string/init-list.cc: 1193 Require cxx11-abi. 1194 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc: 1195 Likewise. 1196 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc: 1197 Likewise. 1198 1199 Backport from mainline 1200 2018-08-22 Jonathan Wakely <jwakely@redhat.com> 1201 1202 PR libstdc++/87061 1203 * include/experimental/regex [!_GLIBCXX_USE_CXX11_ABI] 1204 (experimental::pmr::match_results, experimental::pmr::cmatch) 1205 (experimental::pmr::smatch, experimental::pmr::wcmatch) 1206 (experimental::pmr::wsmatch): Do not declare for gcc4-compatible ABI, 1207 because COW strings don't support C++11 allocator model. 1208 * include/experimental/string [!_GLIBCXX_USE_CXX11_ABI] 1209 (experimental::pmr::basic_string, experimental::pmr::string) 1210 (experimental::pmr::u16string, experimental::pmr::u32string) 1211 (experimental::pmr::wstring): Likewise. 1212 1213 Backport from mainline 1214 2018-08-15 Jonathan Wakely <jwakely@redhat.com> 1215 1216 * include/experimental/regex: Remove begin/end macros for namespace. 1217 * include/experimental/string: Likewise. 1218 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc: 1219 New test. 1220 * testsuite/experimental/polymorphic_allocator/ 1221 pmr_typedefs_forward_list.cc: New test. 1222 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc: 1223 New test. 1224 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc: 1225 New test. 1226 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc: 1227 New test. 1228 * testsuite/experimental/polymorphic_allocator/ 1229 pmr_typedefs_multimap.cc: New test. 1230 * testsuite/experimental/polymorphic_allocator/ 1231 pmr_typedefs_multiset.cc: New test. 1232 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc: 1233 New test. 1234 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc: 1235 New test. 1236 * testsuite/experimental/polymorphic_allocator/ 1237 pmr_typedefs_unordered_map.cc: New test. 1238 * testsuite/experimental/polymorphic_allocator/ 1239 pmr_typedefs_unordered_multimap.cc: New test. 1240 * testsuite/experimental/polymorphic_allocator/ 1241 pmr_typedefs_unordered_multiset.cc: New test. 1242 * testsuite/experimental/polymorphic_allocator/ 1243 pmr_typedefs_unordered_set.cc: New test. 1244 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc: 1245 New test. 1246 12472018-10-12 Jonathan Wakely <jwakely@redhat.com> 1248 1249 Backport from mainline 1250 2018-07-24 Jonathan Wakely <jwakely@redhat.com> 1251 1252 PR libstdc++/70966 1253 * include/experimental/memory_resource (__get_default_resource): Use 1254 placement new to create an object with dynamic storage duration. 1255 1256 Backport from mainline 1257 2018-06-20 Jonathan Wakely <jwakely@redhat.com> 1258 1259 PR libstdc++/70966 1260 * include/experimental/memory_resource (__resource_adaptor_imp): Add 1261 static assertions to enforce requirements on pointer types. 1262 (__resource_adaptor_imp::get_allocator()): Add noexcept. 1263 (new_delete_resource, null_memory_resource): Return address of an 1264 object with dynamic storage duration. 1265 (__null_memory_resource): Remove. 1266 * testsuite/experimental/memory_resource/70966.cc: New. 1267 12682018-10-12 Jonathan Wakely <jwakely@redhat.com> 1269 1270 PR libstdc++/77854 1271 * doc/xml/manual/status_cxx1998.xml: Document size_type and 1272 difference_type for containers. 1273 * doc/html/*: Regenerate. 1274 12752018-10-08 Joseph Myers <joseph@codesourcery.com> 1276 1277 Backport from mainline 1278 2018-10-02 Joseph Myers <joseph@codesourcery.com> 1279 1280 * testsuite/lib/libstdc++.exp (libstdc++_init): Use 1281 -fno-show-column in default cxxflags. 1282 12832018-10-08 Jonathan Wakely <jwakely@redhat.com> 1284 1285 Backport from mainline 1286 2018-10-08 Jonathan Wakely <jwakely@redhat.com> 1287 1288 PR libstdc++/87538 1289 * include/std/functional (_Not_fn::operator()): Check value of 1290 __is_nothrow_invocable as well. 1291 * testsuite/20_util/function_objects/not_fn/87538.cc: New test. 1292 * testsuite/experimental/functional/87538.cc: New test. 1293 12942018-09-11 Jonathan Wakely <jwakely@redhat.com> 1295 1296 PR libstdc++/87278 1297 * include/bits/shared_ptr.h (make_shared): Use remove_cv instead of 1298 remove_const. 1299 * testsuite/20_util/shared_ptr/creation/87278.cc: New test. 1300 13012018-08-28 Jonathan Wakely <jwakely@redhat.com> 1302 1303 PR libstdc++/87116 1304 * src/filesystem/std-path.cc (path::lexically_normal): When handling 1305 a dot-dot filename, preserve an empty final component in the iteration 1306 sequence. 1307 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use preferred-separator for 1308 root-directory. 1309 * testsuite/27_io/filesystem/path/generation/normal.cc: Add new tests 1310 for more than two adjacent dot-dot filenames. 1311 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Replace slashes with 1312 preferred-separator in expected normalized strings. 1313 13142018-08-13 Jonathan Wakely <jwakely@redhat.com> 1315 1316 Revert 1317 2018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de> 1318 1319 PR target/85904 1320 * configure.ac: Define HAVE_ALIGNED_ALLOC if building for 1321 Newlib. 1322 * configure: Regenerate. 1323 13242018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de> 1325 1326 Backport from mainline 1327 2018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de> 1328 1329 PR target/85904 1330 * configure.ac: Define HAVE_ALIGNED_ALLOC if building for 1331 Newlib. 1332 * configure: Regenerate. 1333 13342018-08-08 Jonathan Wakely <jwakely@redhat.com> 1335 1336 * libsupc++/new_opa.cc (aligned_alloc): Declare inside namespace to 1337 avoid clashing with an ::aligned_alloc function that was not detected 1338 by configure. 1339 1340 PR libstdc++/86597 1341 * include/bits/fs_dir.h (directory_entry::_M_file_type(error_code&)): 1342 Clear error_code when cached type is used. 1343 * testsuite/27_io/filesystem/directory_entry/86597.cc: New test. 1344 1345 * doc/xml/manual/using.xml: Remove C++2a headers not on gcc-8-branch. 1346 * doc/html/*: Regenerate. 1347 1348 * doc/xml/manual/using.xml: Add missing header to table and fix typo. 1349 Remove C++17 headers not present on gcc-8-branch. 1350 * doc/html/*: Regenerate. 1351 13522018-08-07 Jonathan Wakely <jwakely@redhat.com> 1353 1354 Backport from mainline 1355 2018-07-31 Jonathan Wakely <jwakely@redhat.com> 1356 1357 * doc/xml/manual/test.xml: Improve documentation on writing tests for 1358 newer standards. 1359 * doc/xml/manual/using.xml: Document all headers for C++11 and later. 1360 * doc/html/*: Regenerate. 1361 1362 Backport from mainline 1363 2018-05-03 Jonathan Wakely <jwakely@redhat.com> 1364 1365 PR libstdc++/84535 1366 * include/std/thread (thread::__not_same): New SFINAE helper. 1367 (thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that 1368 first argument is not a std::thread. Add static assertion to check 1369 INVOKE expression is valid. 1370 (thread::thread(thread&), thread::thread(const thread&&)): Remove. 1371 * testsuite/30_threads/thread/cons/84535.cc: New. 1372 1373 Backport from mainline 1374 2018-08-03 Jonathan Wakely <jwakely@redhat.com> 1375 1376 * src/c++11/system_error.cc 1377 (system_error_category::default_error_condition): Add workaround for 1378 ENOTEMPTY and EEXIST having the same value on AIX. 1379 * testsuite/19_diagnostics/error_category/system_category.cc: Add 1380 extra testcases for EDOM, EILSEQ, ERANGE, EEXIST and ENOTEMPTY. 1381 1382 Backport from mainline 1383 2018-08-01 Jonathan Wakely <jwakely@redhat.com> 1384 1385 PR libstdc++/60555 1386 * src/c++11/system_error.cc 1387 (system_error_category::default_error_condition): New override to 1388 check for POSIX errno values. 1389 * testsuite/19_diagnostics/error_category/generic_category.cc: New 1390 * testsuite/19_diagnostics/error_category/system_category.cc: New 1391 test. 1392 1393 Backport from mainline 1394 2018-08-07 Jonathan Wakely <jwakely@redhat.com> 1395 1396 PR libstdc++/86874 1397 * include/std/variant (_Copy_ctor_base::_M_destructive_move): Define 1398 here instead of in _Move_assign_base. 1399 (_Copy_ctor_base<true, _Types...>::_M_destructive_move): Define. 1400 (_Copy_assign_base::operator=): Use _M_destructive_move when changing 1401 the contained value to another alternative. 1402 (_Move_assign_base::operator=): Likewise. 1403 (_Move_assign_base::_M_destructive_move): Remove. 1404 * testsuite/20_util/variant/86874.cc: New test. 1405 1406 Backport from mainline 1407 2018-08-07 Jonathan Wakely <jwakely@redhat.com> 1408 1409 PR libstdc++/86861 1410 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] (aligned_alloc): 1411 Replace macro with inline function. 1412 [__sun]: Increase alignment to meet memalign precondition. 1413 [!HAVE__ALIGNED_MALLOC && !HAVE_POSIX_MEMALIGN && !HAVE_MEMALIGN] 1414 (aligned_alloc): Move check for valid alignment to operator new. 1415 Remove redundant check for non-zero size, it's enforced by the caller. 1416 (operator new): Move check for valid alignment here. Use 1417 __builtin_expect on check for zero size. 1418 14192018-07-31 Jonathan Wakely <jwakely@redhat.com> 1420 1421 Backport from mainline 1422 2018-07-30 Jonathan Wakely <jwakely@redhat.com> 1423 1424 * libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Add 1425 workaround for aligned_alloc bug on AIX. 1426 * testsuite/18_support/new_aligned.cc: New test. 1427 1428 Backport from mainline 1429 2018-07-20 Fangrui Song <maskray@google.com> 1430 1431 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Use 1432 _GLIBCXX_VISIBILITY(default). 1433 1434 Backport from mainline 1435 2018-07-30 Jonathan Wakely <jwakely@redhat.com> 1436 1437 PR libstdc++/86734 1438 * include/bits/stl_iterator.h (reverse_iterator::operator->): Use 1439 addressof (LWG 2188). 1440 * testsuite/24_iterators/reverse_iterator/dr2188.cc: New test. 1441 1442 Backport from mainline 1443 2018-05-08 Jonathan Wakely <jwakely@redhat.com> 1444 1445 PR libstdc++/85672 1446 * include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry 1447 to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero. 1448 * include/Makefile.in: Regenerate. 1449 * include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition 1450 within conditional block. 1451 1452 Backport from mainline 1453 2018-05-01 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com> 1454 1455 PR libstdc++/84654 1456 * acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128. 1457 * config.h.in: Remove references to _GLIBCXX_USE_FLOAT128. 1458 * configure: Regenerate. 1459 * include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128 1460 based on ENABLE_FLOAT128. 1461 * include/Makefile.in: Regenerate. 1462 * include/bits/c++config: Define _GLIBCXX_USE_FLOAT128. 1463 [!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine 1464 _GLIBCXX_USE_FLOAT128. 1465 14662018-07-26 Marek Polacek <polacek@redhat.com> 1467 1468 * testsuite/30_threads/condition_variable_any/cond.cc: New. 1469 14702018-07-26 Release Manager 1471 1472 * GCC 8.2.0 released. 1473 14742018-07-18 Jonathan Wakely <jwakely@redhat.com> 1475 1476 Backport from mainline 1477 2018-07-05 Jonathan Wakely <jwakely@redhat.com> 1478 1479 * testsuite/21_strings/basic_string/cons/char/deduction.cc: XFAIL for 1480 COW strings. 1481 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: 1482 Likewise. 1483 1484 Backport from mainline 1485 2018-07-04 Jonathan Wakely <jwakely@redhat.com> 1486 1487 * testsuite/25_algorithms/make_heap/complexity.cc: Require effective 1488 target for std::random_device. 1489 * testsuite/26_numerics/random/random_device/cons/default.cc: 1490 Likewise. 1491 * testsuite/experimental/algorithm/sample-2.cc: Likewise. 1492 * testsuite/experimental/algorithm/shuffle.cc: Likewise. 1493 * testsuite/experimental/random/randint.cc: Likewise. 1494 * testsuite/lib/libstdc++.exp 1495 (check_effective_target_random_device): New proc. 1496 1497 Backport from mainline 1498 2018-06-26 David Edelsohn <dje.gcc@gmail.com> 1499 1500 * testsuite/experimental/algorithm/sample-2.cc: Add TLS DejaGNU 1501 directives. 1502 * testsuite/experimental/algorithm/shuffle.cc: Likewise. 1503 1504 Backport from mainline 1505 2018-06-25 Jonathan Wakely <jwakely@redhat.com> 1506 1507 * include/experimental/algorithm (sample, shuffle): Add new overloads 1508 using per-thread random number engine. 1509 * testsuite/experimental/algorithm/sample.cc: Simpify and reduce 1510 dependencies by using __gnu_test::test_container. 1511 * testsuite/experimental/algorithm/sample-2.cc: New. 1512 * testsuite/experimental/algorithm/shuffle.cc: New. 1513 15142018-07-16 Andreas Krebbel <krebbel@linux.ibm.com> 1515 1516 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update. 1517 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Update. 1518 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update. 1519 15202018-07-05 François Dumont <fdumont@gcc.gnu.org> 1521 1522 Backport from mainline 1523 2018-07-04 François Dumont <fdumont@gcc.gnu.org> 1524 1525 PR libstdc++/86272 1526 * include/debug/string 1527 (__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite, _Ite)): 1528 Use __glibcxx_check_insert_range. 1529 15302018-07-04 Jonathan Wakely <jwakely@redhat.com> 1531 1532 Backport from mainline 1533 2018-05-19 Jonathan Wakely <jwakely@redhat.com> 1534 1535 * src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in) 1536 [__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set 1537 little_endian element in bitmask. 1538 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests. 1539 * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New. 1540 1541 Backport from mainline 1542 2018-07-03 Jonathan Wakely <jwakely@redhat.com> 1543 1544 * include/bits/alloc_traits.h: Remove redundant preprocessor 1545 condition. 1546 1547 Backport from mainline 1548 2018-06-27 Jonathan Wakely <jwakely@redhat.com> 1549 1550 * include/bits/cpp_type_traits.h [__cplusplus >= 201703] 1551 (__is_byte<byte>): Define specialization for std::byte. 1552 1553 Backport from mainline 1554 2018-06-18 Jonathan Wakely <jwakely@redhat.com> 1555 1556 LWG 3050 Fix cv-qualification of convertibility constraints 1557 * include/std/chrono (duration, operator*, operator/, operator%): Use 1558 const-qualified type as source type in is_convertible constraints. 1559 * testsuite/20_util/duration/arithmetic/dr3050.cc: New. 1560 * testsuite/20_util/duration/cons/dr3050.cc: New. 1561 * testsuite/20_util/duration/literals/range.cc: Rename to... 1562 * testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust 1563 dg-error lineno. 1564 1565 Backport from mainline 1566 2018-06-13 Jonathan Wakely <jwakely@redhat.com> 1567 1568 PR libstdc++/86127 1569 * include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove 1570 unused typedef. 1571 (_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after): 1572 Use node allocator to create and destroy elements. 1573 (forward_list::_Tp_alloc_type): Remove unused typedef. 1574 (forward_list::_Alloc_traits): Use allocator_traits instead of 1575 __gnu_cxx::__alloc_traits. 1576 1577 Backport from mainline 1578 2018-05-29 Jonathan Wakely <jwakely@redhat.com> 1579 1580 * include/std/variant (__erased_dtor): Qualify call to __get. 1581 1582 Backport from mainline 1583 2018-05-15 Jonathan Wakely <jwakely@redhat.com> 1584 1585 * include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify 1586 __invoke to prevent ADL. 1587 1588 Backport from mainline 1589 2018-05-24 Maya Rashish <coypu@sdf.org> 1590 1591 PR target/85904 1592 * crossconfig.m4: Test for aligned_alloc on netbsd. 1593 * configure: Regenerate. 1594 1595 Backport from mainline 1596 2018-05-18 Jonathan Wakely <jwakely@redhat.com> 1597 1598 PR libstdc++/85098 1599 * include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase) 1600 (basic_regex::nosubs, basic_regex::optimize, basic_regex::collate) 1601 (basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended) 1602 (basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add 1603 definitions. 1604 * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust 1605 whitespace. 1606 * include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add 1607 braces around body of do-while. 1608 * testsuite/28_regex/basic_regex/85098.cc: New 1609 1610 Backport from mainline 1611 2018-05-07 Jonathan Wakely <jwakely@redhat.com> 1612 1613 PR libstdc++/85671 1614 * include/bits/fs_path.h (operator/): Permit copy elision. 1615 * include/experimental/bits/fs_path.h (operator/): Likewise. 1616 1617 Backport from mainline 1618 2018-06-14 Daniel Trebbien <dtrebbien@gmail.com> 1619 Jonathan Wakely <jwakely@redhat.com> 1620 1621 PR libstdc++/83982 1622 * include/bits/vector.tcc (vector::_M_default_append(size_type)): 1623 Default-construct new elements before moving existing ones. 1624 * testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc: 1625 New. 1626 1627 Backport from mainline 1628 2018-06-25 Jonathan Wakely <jwakely@redhat.com> 1629 1630 PR libstdc++/86292 1631 * include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>): 1632 Add try-catch block. 1633 * testsuite/23_containers/vector/cons/86292.cc: New. 1634 1635 Backport from mainline 1636 2018-06-27 Jonathan Wakely <jwakely@redhat.com> 1637 1638 PR libstdc++/86138 1639 * include/bits/basic_string.tcc: [_GLIBCXX_EXTERN_TEMPLATE < 0] 1640 Declare explicit instantiations of COW empty reps and I/O functions. 1641 1642 Backport from mainline 1643 2018-06-16 Jonathan Wakely <jwakely@redhat.com> 1644 1645 LWG 3076 basic_string CTAD ambiguity 1646 * doc/xml/manual/intro.xml: Document LWG 3076 change. 1647 * include/bits/basic_string.h 1648 [__cpp_deduction_guides && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS] 1649 (basic_string(const _CharT*, const _Alloc&)): Turn into a function 1650 template constrained by _RequireAllocator. 1651 (basic_string(size_type, _CharT, const _Alloc&)): Likewise. 1652 * src/c++11/string-inst.cc (_GLIBCXX_DEFINING_STRING_INSTANTIATIONS): 1653 Define. 1654 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test 1655 deduction 1656 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: 1657 Likewise. 1658 1659 Backport from mainline 1660 2018-06-14 Jonathan Wakely <jwakely@redhat.com> 1661 1662 LWG 3075 basic_string needs deduction guides from basic_string_view 1663 * include/bits/basic_string.h: Add deduction guides from string_view. 1664 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test 1665 deduction from string views. 1666 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: 1667 Likewise. 1668 1669 Backport from mainline 1670 2018-05-03 Jonathan Wakely <jwakely@redhat.com> 1671 1672 PR libstdc++/84087 LWG DR 2268 basic_string default arguments 1673 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1] 1674 (append(const basic_string&, size_type, size_type) 1675 (assign(const basic_string&, size_type, size_type) 1676 (insert(size_type, const basic_string&, size_type, size_type) 1677 (replace(size_type,size_type,const basic_string&,size_type,size_type) 1678 (compare(size_type,size_type,constbasic_string&,size_type,size_type)): 1679 Add default arguments (LWG 2268). 1680 [_GLIBCXX_USE_CXX11_ABI=0] 1681 (append(const basic_string&, size_type, size_type) 1682 (assign(const basic_string&, size_type, size_type) 1683 (insert(size_type, const basic_string&, size_type, size_type) 1684 (replace(size_type,size_type,const basic_string&,size_type,size_type) 1685 (compare(size_type,size_type,constbasic_string&,size_type,size_type)): 1686 Likewise. 1687 * testsuite/21_strings/basic_string/dr2268.cc: New test. 1688 1689 PR libstdc++/86398 1690 * include/std/type_traits (is_trivially_constructible): Check 1691 is_constructible before __is_trivially_constructible. 1692 * testsuite/20_util/is_trivially_constructible/value.cc: Add more 1693 tests, including negative cases. 1694 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Use 1695 zero for dg-error lineno. 1696 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: 1697 Likewise. 1698 16992018-06-25 Jonathan Wakely <jwakely@redhat.com> 1700 1701 PR libstdc++/86112 1702 * python/libstdcxx/v6/printers.py (add_one_template_type_printer): 1703 Replace dict comprehension. 1704 17052018-06-25 Jonathan Wakely <jwakely@redhat.com> 1706 1707 PR libstdc++/81092 1708 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update. 1709 17102018-06-22 Jonathan Wakely <jwakely@redhat.com> 1711 1712 Backport from mainline 1713 2018-06-22 Jonathan Wakely <jwakely@redhat.com> 1714 1715 PR libstdc++/86138 1716 * include/bits/basic_string.tcc: 1717 [__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI] 1718 (basic_string<char>::_Rep::_S_empty_rep_storage) 1719 (basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit 1720 instantiation declarations. 1721 [__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable 1722 explicit instantiation declarations. 1723 * testsuite/21_strings/basic_string/cons/char/86138.cc: New. 1724 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New. 1725 17262018-06-21 Jonathan Wakely <jwakely@redhat.com> 1727 1728 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. 1729 17302018-06-19 Jonathan Wakely <jwakely@redhat.com> 1731 1732 * include/std/utility: Remove unused <exception> header. 1733 17342018-06-19 Jonathan Wakely <jwakely@redhat.com> 1735 1736 Backport from mainline 1737 2018-05-03 Jonathan Wakely <jwakely@redhat.com> 1738 1739 PR libstdc++/82644 1740 * include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use 1741 inline definitions instead of using-declarations. 1742 [__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise. 1743 * testsuite/tr1/5_numerical_facilities/special_functions/ 1744 07_conf_hyperg/compile_cxx17.cc: New. 1745 * testsuite/tr1/5_numerical_facilities/special_functions/ 1746 17_hyperg/compile_cxx17.cc: New. 1747 17482018-06-15 Jonathan Wakely <jwakely@redhat.com> 1749 1750 PR libstdc++/86169 1751 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI] 1752 (basic_string::data()): Unshare string. 1753 * testsuite/21_strings/basic_string/operations/data/char/86169.cc: 1754 New. 1755 17562018-06-15 Jonathan Wakely <jwakely@redhat.com> 1757 1758 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only 1759 define for C++17 and above. 1760 17612018-06-06 Jonathan Wakely <jwakely@redhat.com> 1762 1763 PR libstdc++/86008 1764 * include/bits/quoted_string.h (_Quoted_string<basic_string_view, C>): 1765 Define new partial specialization. 1766 * include/std/iomanip (quoted(basic_string_view<C,T>, C, C)): Define 1767 new overload. 1768 (operator<<(basic_ostream<C,T>&, const _Quoted_string<S,C>&)): Use 1769 value not reference for iteration. 1770 * testsuite/27_io/manipulators/standard/char/quoted.cc: Adjust 1771 comment. 1772 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc: New test. 1773 * testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: Adjust 1774 comment. 1775 17762018-06-05 Jonathan Wakely <jwakely@redhat.com> 1777 1778 * include/std/type_traits: Fix comment typo. 1779 17802018-06-04 Jonathan Wakely <jwakely@redhat.com> 1781 1782 PR libstdc++/85930 1783 * include/bits/shared_ptr_base.h [!__cpp_rtti]: Include <typeinfo> 1784 unconditionally. Remove redundant declaration. 1785 [!__cpp_rtti] (_Sp_make_shared_tag::_S_ti): Align the static variable 1786 correctly. 1787 17882018-05-31 Jonathan Wakely <jwakely@redhat.com> 1789 1790 PR libstdc++/85951 1791 * include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define 1792 uint_least16_t and uint_least32_t. 1793 (__make_unsigned<wchar_t>): Define unconditionally. 1794 (__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define. 1795 (__make_signed<wchar_t>, __make_signed<char16_t>) 1796 (__make_signed<char32_t>)): Define unconditionally. 1797 * testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check 1798 wchar_t, char16_t and char32_t are transformed correctly. 1799 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust 1800 dg-error lineno. 1801 * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check 1802 wchar_t, char16_t and char32_t are transformed correctly. 1803 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust 1804 dg-error lineno. 1805 18062018-05-21 François Dumont <fdumont@gcc.gnu.org> 1807 1808 * include/debug/map.h 1809 (map(map&&, const_allocator_type&)): Add noexcept qualitication. 1810 * include/debug/multimap.h 1811 (multimap(multimap&&, const_allocator_type&)): Likewise. 1812 * include/debug/set.h 1813 (set(set&&, const_allocator_type&)): Likewise. 1814 * include/debug/multiset.h 1815 (multiset(multiset&&, const_allocator_type&)): Likewise. 1816 18172018-05-21 Jonathan Wakely <jwakely@redhat.com> 1818 1819 PR libstdc++/85818 1820 * testsuite/experimental/filesystem/path/preferred_separator.cc: Add 1821 dg-require-filesystem-ts. 1822 18232018-05-17 Jonathan Wakely <jwakely@redhat.com> 1824 1825 PR libstdc++/85818 1826 * src/filesystem/path.cc (path::preferred_separator): Add used 1827 attribute. 1828 * testsuite/experimental/filesystem/path/preferred_separator.cc: New. 1829 1830 PR libstdc++/85812 1831 * libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare. 1832 * libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]: 1833 Refactor to separate non-throwing and throwing implementations. 1834 [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory 1835 if constructing the object throws. 1836 18372018-05-15 Jonathan Wakely <jwakely@redhat.com> 1838 1839 PR libstdc++/83891 1840 * include/bits/fs_path.h (path::is_absolute()): Use same definition 1841 for all operating systems. 1842 * include/experimental/bits/fs_path.h (path::is_absolute()): Likewise. 1843 * testsuite/27_io/filesystem/path/query/is_absolute.cc: New. 1844 * testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment. 1845 * testsuite/experimental/filesystem/path/query/is_absolute.cc: New. 1846 1847 * testsuite/27_io/filesystem/path/decompose/extension.cc: Remove 1848 unused <vector> header. 1849 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise. 1850 * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise. 1851 * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise. 1852 * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise. 1853 * testsuite/27_io/filesystem/path/query/has_relative_path.cc: 1854 Likewise. 1855 * testsuite/27_io/filesystem/path/query/has_root_directory.cc: 1856 Likewise. 1857 * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise. 1858 * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise. 1859 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise. 1860 * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise. 1861 * testsuite/experimental/filesystem/path/decompose/extension.cc: 1862 Likewise. 1863 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise. 1864 * testsuite/experimental/filesystem/path/query/has_extension.cc: 1865 Likewise. 1866 * testsuite/experimental/filesystem/path/query/has_filename.cc: 1867 Likewise. 1868 * testsuite/experimental/filesystem/path/query/has_parent_path.cc: 1869 Likewise. 1870 * testsuite/experimental/filesystem/path/query/has_relative_path.cc: 1871 Likewise. 1872 * testsuite/experimental/filesystem/path/query/has_root_directory.cc: 1873 Likewise. 1874 * testsuite/experimental/filesystem/path/query/has_root_name.cc: 1875 Likewise. 1876 * testsuite/experimental/filesystem/path/query/has_root_path.cc: 1877 Likewise. 1878 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise. 1879 * testsuite/experimental/filesystem/path/query/is_relative.cc: 1880 Likewise. 1881 1882 PR libstdc++/84159 1883 * include/bits/fs_path.h (path::operator/=, path::append): Construct 1884 temporary path before calling _M_append. 1885 (path::_M_append): Change parameter to path and implement C++17 1886 semantics. 1887 * testsuite/27_io/filesystem/path/append/path.cc: Add helper function 1888 and more examples from the standard. 1889 * testsuite/27_io/filesystem/path/append/source.cc: New. 1890 * testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment. 1891 * testsuite/27_io/filesystem/path/nonmember/append.cc: New. 1892 18932018-05-14 Jonathan Wakely <jwakely@redhat.com> 1894 1895 PR libstdc++/67554 1896 * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>) 1897 (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy. 1898 1899 PR libstdc++/82966 1900 * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value 1901 instead of type. 1902 * testsuite/23_containers/set/modifiers/node_swap.cc: New. 1903 19042018-05-10 Jonathan Wakely <jwakely@redhat.com> 1905 1906 * doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer. 1907 * doc/xml/manual/debug_mode.xml: Add array and forward_list to list 1908 of C++11 containers with Debug Mode support. 1909 * doc/xml/manual/using.xml: Document that the C++17 Filesystem 1910 implementation also needs -lstdc++fs. Document Dual ABI for 1911 ios_base::failure. 1912 * doc/html/*: Regenerate. 1913 19142018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net> 1915 1916 Backport from mainline 1917 2018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net> 1918 1919 Moar PR libstdc++/80506 1920 * include/bits/random.tcc (gamma_distribution::__generate_impl()): 1921 Fix magic number used in loop condition. 1922 19232018-05-04 Jonathan Wakely <jwakely@redhat.com> 1924 1925 PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>> 1926 * include/std/optional (_Optional_payload): Add noexcept to default 1927 constructor. Re-indent. 1928 (_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to 1929 constructor for copying disengaged payloads. 1930 (_Optional_payload<_Tp, true, false, true>): Likewise. 1931 (_Optional_payload<_Tp, true, true, false>): Likewise. 1932 (_Optional_payload<_Tp, true, false, false>): Likewise. 1933 * testsuite/20_util/optional/cons/85642.cc: New. 1934 * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines. 1935 19362018-05-03 Jonathan Wakely <jwakely@redhat.com> 1937 1938 PR libstdc++/84769 1939 * include/std/variant (visit): Qualify std::get call. 1940 19412018-05-03 Jonathan Wakely <jwakely@redhat.com> 1942 1943 PR libstdc++/85632 use uintmax_t for arithmetic 1944 * src/filesystem/ops.cc (experimental::filesystem::space): Perform 1945 arithmetic in result type. 1946 * src/filesystem/std-ops.cc (filesystem::space): Likewise. 1947 * testsuite/27_io/filesystem/operations/space.cc: Check total capacity 1948 is greater than free space. 1949 * testsuite/experimental/filesystem/operations/space.cc: New. 1950 19512018-05-02 Release Manager 1952 1953 * GCC 8.1.0 released. 1954 19552018-04-24 H.J. Lu <hongjiu.lu@intel.com> 1956 1957 * configure: Regenerated. 1958 19592018-04-19 Jakub Jelinek <jakub@redhat.com> 1960 1961 * configure: Regenerated. 1962 19632018-04-18 Jonathan Wakely <jwakely@redhat.com> 1964 Jakub Jelinek <jakub@redhat.com> 1965 1966 PR libstdc++/85442 1967 * src/c++11/Makefile.am: Don't generate debuginfo again for 1968 cxx11-ios_failure-lt.s and cxx11-ios_failure.s files. 1969 * src/c++11/Makefile.in: Regenerate. 1970 19712018-04-18 Jonathan Wakely <jwakely@redhat.com> 1972 1973 PR libstdc++/84442 1974 * testsuite/30_threads/thread/cons/terminate.cc 1975 [!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit. 1976 19772018-04-18 David Malcolm <dmalcolm@redhat.com> 1978 1979 PR jit/85384 1980 * configure: Regenerate. 1981 19822018-04-16 Jonathan Wakely <jwakely@redhat.com> 1983 1984 * testsuite/experimental/filesystem/file_status/1.cc: Add 1985 -DUSE_FILESYSTEM_TS to dg-options. 1986 * testsuite/experimental/filesystem/iterators/directory_iterator.cc: 1987 Likewise. 1988 * testsuite/experimental/filesystem/iterators/pop.cc: Likewise. 1989 * testsuite/experimental/filesystem/iterators/ 1990 recursive_directory_iterator.cc: Likewise. 1991 * testsuite/experimental/filesystem/operations/absolute.cc: Likewise. 1992 * testsuite/experimental/filesystem/operations/canonical.cc: Likewise. 1993 * testsuite/experimental/filesystem/operations/copy.cc: Likewise. 1994 * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise. 1995 * testsuite/experimental/filesystem/operations/create_directories.cc: 1996 Likewise. 1997 * testsuite/experimental/filesystem/operations/create_directory.cc: 1998 Likewise. 1999 * testsuite/experimental/filesystem/operations/create_symlink.cc: 2000 Likewise. 2001 * testsuite/experimental/filesystem/operations/current_path.cc: 2002 Likewise. 2003 * testsuite/experimental/filesystem/operations/equivalent.cc: Likewise. 2004 * testsuite/experimental/filesystem/operations/exists.cc: Likewise. 2005 * testsuite/experimental/filesystem/operations/file_size.cc: Likewise. 2006 * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise. 2007 * testsuite/experimental/filesystem/operations/last_write_time.cc: 2008 Likewise. 2009 * testsuite/experimental/filesystem/operations/permissions.cc: 2010 Likewise. 2011 * testsuite/experimental/filesystem/operations/read_symlink.cc: 2012 Likewise. 2013 * testsuite/experimental/filesystem/operations/remove.cc: Likewise. 2014 * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise. 2015 * testsuite/experimental/filesystem/operations/status.cc: Likewise. 2016 * testsuite/experimental/filesystem/operations/temp_directory_path.cc: 2017 Likewise. 2018 * testsuite/experimental/filesystem/path/append/path.cc: Likewise. 2019 * testsuite/experimental/filesystem/path/assign/assign.cc: Likewise. 2020 * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise. 2021 * testsuite/experimental/filesystem/path/compare/compare.cc: Likewise. 2022 * testsuite/experimental/filesystem/path/compare/path.cc: Likewise. 2023 * testsuite/experimental/filesystem/path/compare/strings.cc: Likewise. 2024 * testsuite/experimental/filesystem/path/concat/path.cc: Likewise. 2025 * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise. 2026 * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise. 2027 * testsuite/experimental/filesystem/path/construct/default.cc: 2028 Likewise. 2029 * testsuite/experimental/filesystem/path/construct/locale.cc: Likewise. 2030 * testsuite/experimental/filesystem/path/construct/range.cc: Likewise. 2031 * testsuite/experimental/filesystem/path/construct/string_view.cc: 2032 Likewise. 2033 * testsuite/experimental/filesystem/path/decompose/extension.cc: 2034 Likewise. 2035 * testsuite/experimental/filesystem/path/decompose/filename.cc: 2036 Likewise. 2037 * testsuite/experimental/filesystem/path/decompose/parent_path.cc: 2038 Likewise. 2039 * testsuite/experimental/filesystem/path/decompose/relative_path.cc: 2040 Likewise. 2041 * testsuite/experimental/filesystem/path/decompose/root_directory.cc: 2042 Likewise. 2043 * testsuite/experimental/filesystem/path/decompose/root_name.cc: 2044 Likewise. 2045 * testsuite/experimental/filesystem/path/decompose/root_path.cc: 2046 Likewise. 2047 * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise. 2048 * testsuite/experimental/filesystem/path/generic/generic_string.cc: 2049 Likewise. 2050 * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise. 2051 * testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise. 2052 * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc: 2053 Likewise. 2054 * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc: 2055 Likewise. 2056 * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc: 2057 Likewise. 2058 * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc: 2059 Likewise. 2060 * testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise. 2061 * testsuite/experimental/filesystem/path/native/string.cc: Likewise. 2062 * testsuite/experimental/filesystem/path/nonmember/hash_value.cc: 2063 Likewise. 2064 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise. 2065 * testsuite/experimental/filesystem/path/query/has_extension.cc: 2066 Likewise. 2067 * testsuite/experimental/filesystem/path/query/has_filename.cc: 2068 Likewise. 2069 * testsuite/experimental/filesystem/path/query/has_parent_path.cc: 2070 Likewise. 2071 * testsuite/experimental/filesystem/path/query/has_relative_path.cc: 2072 Likewise. 2073 * testsuite/experimental/filesystem/path/query/has_root_directory.cc: 2074 Likewise. 2075 * testsuite/experimental/filesystem/path/query/has_root_name.cc: 2076 Likewise. 2077 * testsuite/experimental/filesystem/path/query/has_root_path.cc: 2078 Likewise. 2079 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise. 2080 * testsuite/experimental/filesystem/path/query/is_relative.cc: 2081 Likewise. 2082 20832018-04-13 Jonathan Wakely <jwakely@redhat.com> 2084 2085 * src/c++11/Makefile.am: Fix sed command. 2086 * src/c++11/Makefile.in: Regenerate. 2087 2088 * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to 2089 handle mangled names starting with double underscores on darwin. 2090 * src/c++11/Makefile.in: Regenerate. 2091 20922018-04-12 Jonathan Wakely <jwakely@redhat.com> 2093 2094 * src/c++11/Makefile.am: Fix comment. 2095 * src/c++11/Makefile.in: Regenerate. 2096 * src/c++11/cxx11-ios_failure.cc: Fix comment. 2097 * src/c++98/ios_failure.cc: Likewise. 2098 2099 * src/c++11/ios.cc: Remove redundant macro definition. 2100 21012018-04-11 Jonathan Wakely <jwakely@redhat.com> 2102 2103 * doc/xml/manual/abi.xml: Document header locations in recent 2104 releases. 2105 * doc/xml/manual/evolution.xml: Add API changes since GCC 5. 2106 * doc/xml/manual/spine.xml: Update copyright years. 2107 * doc/xml/manual/strings.xml: Adjust tolower example to avoid 2108 undefined behaviour. 2109 * doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests. 2110 * doc/html/*: Regenerate. 2111 21122018-04-10 Jonathan Wakely <jwakely@redhat.com> 2113 2114 * doc/xml/faq.xml: Update links to archived copy of SGI STL docs. 2115 * doc/xml/manual/backwards_compatibility.xml: Likewise. 2116 * doc/xml/manual/containers.xml: Likewise. 2117 * doc/xml/manual/debug_mode.xml: Likewise. 2118 * doc/xml/manual/extensions.xml: Likewise. 2119 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. 2120 * doc/xml/manual/using.xml: Likewise. 2121 * doc/xml/manual/utilities.xml: Likewise. 2122 2123 PR libstdc++/85222 2124 * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for 2125 cxx11-ios_failure.cc to rewrite type info for __ios_failure. 2126 * src/c++11/Makefile.in: Regenerate. 2127 * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info): 2128 New types. 2129 [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here. 2130 * src/c++11/ios.cc (__throw_ios_failure): Remove definition. 2131 * src/c++98/ios_failure.cc (__construct_ios_failure) 2132 (__destroy_ios_failure, is_ios_failure_handler): New functions. 2133 [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here. 2134 * testsuite/27_io/ios_base/failure/dual_abi.cc: New. 2135 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to 2136 handler types, to always catch std::ios_base::failure. 2137 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise. 2138 * testsuite/27_io/basic_istream/extractors_arithmetic/char/ 2139 exceptions_failbit.cc: Likewise. 2140 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/ 2141 exceptions_failbit.cc: Likewise. 2142 * testsuite/27_io/basic_istream/extractors_other/char/ 2143 exceptions_null.cc: Likewise. 2144 * testsuite/27_io/basic_istream/extractors_other/wchar_t/ 2145 exceptions_null.cc: Likewise. 2146 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise. 2147 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise. 2148 * testsuite/27_io/basic_ostream/inserters_other/char/ 2149 exceptions_null.cc: Likewise. 2150 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ 2151 exceptions_null.cc: Likewise. 2152 * testsuite/27_io/ios_base/storage/2.cc: Likewise. 2153 21542018-04-05 Jonathan Wakely <jwakely@redhat.com> 2155 2156 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify 2157 __get calls to avoid ADL and avoid ambiguity due to Clang bug. 2158 21592018-04-03 Jonathan Wakely <jwakely@redhat.com> 2160 2161 PR libstdc++/85183 2162 * include/std/variant (_Move_assign_base::operator=): Fix incorrect 2163 value categories. 2164 * testsuite/20_util/variant/85183.cc: New. 2165 21662018-03-26 Jonathan Wakely <jwakely@redhat.com> 2167 2168 * include/std/variant (__get): Qualify calls to avoid ADL. 2169 (__select_index): Adjust whitespace. 2170 (variant): Add using-declaration to workaround Clang bug. 2171 21722018-03-22 Jonathan Wakely <jwakely@redhat.com> 2173 2174 PR libstdc++/85040 2175 * include/bits/stl_function.h (greater::__not_overloaded) 2176 (less::__not_overloaded, greater_equal::__not_overloaded) 2177 (less_equal::__not_overloaded): Fix ambiguous specializations. 2178 * testsuite/20_util/function_objects/comparisons_pointer.cc: Add 2179 tests for type with overloaded operators. 2180 21812018-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2182 2183 PR libstdc++/77691 2184 * testsuite/experimental/memory_resource/resource_adaptor.cc: 2185 xfail execution on 32-bit Solaris/x86. 2186 21872018-03-21 Jonathan Wakely <jwakely@redhat.com> 2188 2189 * testsuite/20_util/function_objects/comparisons_pointer.cc: Use 2190 VERIFY instead of assert. 2191 * testsuite/20_util/hash/84998.cc: New test. 2192 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New 2193 copy of test adjusted for Debug Mode. 2194 * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run 2195 test in Debug Mode. 2196 21972018-03-20 François Dumont <fdumont@gcc.gnu.org> 2198 2199 PR libstdc++/84998 2200 * include/bits/stl_bvector.h: Fix std::hash friend declaration. 2201 * include/std/bitset: Likewise. 2202 * include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend 2203 declaration. 2204 * include/bits/stl_multimap.h (std::multimap<>): Likewise. 2205 * include/bits/stl_multiset.h (std::multiset<>): Likewise. 2206 * include/bits/stl_set.h (std::set<>): Likewise. 2207 * include/bits/unordered_map.h (std::unordered_map<>): Fix 2208 _Hash_merge_helper friend declaration. 2209 (std::unordered_multimap<>): Likewise. 2210 * include/bits/unordered_set.h (std::unordered_set<>): Likewise. 2211 (std::unordered_multiset<>): Likewise. 2212 22132018-03-19 Gerald Pfeifer <gerald@pfeifer.com> 2214 2215 * doc/xml/api.xml: www.fsf.org has moved to https. Also omit 2216 trailing slash for domain level link. 2217 * doc/xml/faq.xml: Ditto. 2218 * doc/xml/manual/appendix_free.xml (software): Ditto. 2219 * doc/xml/manual/intro.xml: Ditto. 2220 * doc/xml/manual/spine.xml: Ditto. 2221 * doc/xml/spine.xml: Ditto. 2222 22232018-03-19 Gerald Pfeifer <gerald@pfeifer.com> 2224 2225 * doc/xml/manual/documentation_hacking.xml: Adjust link to 2226 docbook.org. 2227 22282018-03-17 Jonathan Wakely <jwakely@redhat.com> 2229 2230 * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust 2231 to compile as C++98. 2232 22332018-03-14 Jonathan Wakely <jwakely@redhat.com> 2234 2235 PR libstdc++/78420 2236 * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>) 2237 (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations 2238 to ensure total order for pointers. 2239 (greater<void>, less<void>, greater_equal<void>, less_equal<void>): 2240 Add operator() overloads for pointer arguments and make generic 2241 overloads dispatch to new _S_cmp functions when comparisons would 2242 use built-in operators for pointers. 2243 * testsuite/20_util/function_objects/comparisons_pointer.cc: New. 2244 22452018-03-12 Jonathan Wakely <jwakely@redhat.com> 2246 2247 PR libstdc++/84773 2248 PR libstdc++/83662 2249 * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32. 2250 * configure: Regenerate. 2251 * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC] 2252 (aligned_alloc): Add using-declaration. 2253 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test. 2254 22552018-03-09 François Dumont <fdumont@gcc.gnu.org> 2256 2257 * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary): 2258 Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers 2259 registration. 2260 22612018-03-09 Jonathan Wakely <jwakely@redhat.com> 2262 2263 PR libstdc++/84769 2264 * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>): 2265 Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>. 2266 2267 src/filesystem/ops.cc (create_dir): Pass error_code to is_directory. 2268 src/filesystem/std-ops.cc (create_dir): Likewise. 2269 22702018-03-08 François Dumont <fdumont@gcc.gnu.org> 2271 2272 * python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New. 2273 (StdListIteratorPrinter): Inherit from latter. 2274 (StdFwdListIteratorPrinter): New, inherit from latter. 2275 (StdDebugIteratorPrinter.to_string): Use non-debug iterator printer 2276 when iterator has no associated container. 2277 (build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and 2278 __gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace 2279 registrations. 2280 * testsuite/libstdc++-prettyprinters/debug.cc: Adapt. 2281 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt. 2282 22832018-03-06 Ville Voutilainen <ville.voutilainen@gmail.com> 2284 2285 PR libstdc++/84601 2286 * include/std/optional (_Optional_payload): Split into multiple 2287 specializations that can handle different cases of trivial or 2288 non-trivial assignment operators. 2289 * testsuite/20_util/optional/84601.cc: New. 2290 * testsuite/20_util/optional/cons/value_neg.cc: Adjust. 2291 22922018-03-02 Jonathan Wakely <jwakely@redhat.com> 2293 2294 PR libstdc++/84671 2295 * include/bits/parse_numbers.h (_Number_help): Add partial 2296 specialization to handle digit separators. Adjust partial 2297 specialization for recursion temrination to require _Pow == 1ULL. 2298 * testsuite/20_util/duration/literals/84671.cc: New 2299 23002018-02-27 Ville Voutilainen <ville.voutilainen@gmail.com> 2301 2302 Implement the missing bits of LWG 2769 2303 * include/std/any (any_cast(const any&)): Add static_assert. 2304 (any_cast(any&)): Likewise. 2305 (any_cast(any&&)): Likewise, and remove the handling 2306 for copyable-but-not-movable type. 2307 * testsuite/20_util/any/misc/any_cast.cc: Adjust. 2308 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and 2309 add new tests. 2310 23112018-02-23 Jonathan Wakely <jwakely@redhat.com> 2312 2313 PR libstdc++/84532 2314 * include/std/thread (thread::__make_invoker): Construct tuple 2315 directly instead of using make_tuple. 2316 * testsuite/30_threads/async/84532.cc: New. 2317 * testsuite/30_threads/thread/84532.cc: New. 2318 23192018-02-20 François Dumont <fdumont@gcc.gnu.org> 2320 2321 * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION] 2322 (template<> __aligned_buffer): Define as __aligned_membuf alias. 2323 23242018-02-19 Igor Tsimbalist <igor.v.tsimbalist@intel.com> 2325 2326 PR target/84148 2327 * configure: Regenerate. 2328 23292018-02-15 Jonathan Wakely <jwakely@redhat.com> 2330 2331 PR libstdc++/81797 2332 * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define. 2333 * configure: Regenerate. 2334 * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when 2335 defined. 2336 * include/Makefile.in: Regenerate. 2337 23382018-01-29 Jonathan Wakely <jwakely@redhat.com> 2339 2340 PR libstdc++/83833 2341 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: 2342 Add -ffloat-store to options for m68k and ia32. 2343 2344 * doc/xml/faq.xml: Update copyright years. 2345 * doc/html/*: Regenerate. 2346 2347 PR libstdc++/83658 2348 * include/std/any (any::__do_emplace): Only set _M_manager after 2349 constructing the contained object. 2350 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line. 2351 * testsuite/20_util/any/modifiers/83658.cc: New test. 2352 23532018-01-25 Jonathan Wakely <jwakely@redhat.com> 2354 2355 PR libstdc++/81076 2356 * include/c_global/cstddef (__byte_operand): Define primary template. 2357 * testsuite/18_support/byte/81076.cc: New test. 2358 23592018-01-19 Christophe Lyon <christophe.lyon@linaro.org> 2360 2361 * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix 2362 dg-options and dg-add-options order. 2363 * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise. 2364 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: 2365 Likewise. 2366 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise. 2367 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: 2368 Likewise. 2369 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: 2370 Likewise. 2371 * testsuite/special_functions/03_beta/check_nan.cc: Likewise. 2372 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: 2373 Likewise. 2374 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: 2375 Likewise. 2376 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: 2377 Likewise. 2378 * testsuite/special_functions/06_comp_ellint_3/pr66689.cc: 2379 Likewise. 2380 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: 2381 Likewise. 2382 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: 2383 Likewise. 2384 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: 2385 Likewise. 2386 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: 2387 Likewise. 2388 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise. 2389 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise. 2390 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise. 2391 * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise. 2392 * testsuite/special_functions/14_expint/check_nan.cc: Likewise. 2393 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise. 2394 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise. 2395 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise. 2396 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: 2397 Likewise. 2398 * testsuite/special_functions/19_sph_bessel/check_nan.cc: 2399 Likewise. 2400 * testsuite/special_functions/20_sph_legendre/check_nan.cc: 2401 Likewise. 2402 * testsuite/special_functions/21_sph_neumann/check_nan.cc: 2403 Likewise. 2404 24052018-01-18 Uros Bizjak <ubizjak@gmail.com> 2406 2407 * configure.ac (AC_CHECK_HEADERS): Add linux/types.h. Conditionally 2408 include linux/types.h when checking linux/random.h header. 2409 * config.h.in: Regenerate. 2410 * configure: Ditto. 2411 * src/c++11/random.cc: Conditionally include linux/types.h. 2412 24132018-01-16 Eric Botcazou <ebotcazou@adacore.com> 2414 2415 * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux. 2416 24172018-01-16 Jonathan Wakely <jwakely@redhat.com> 2418 2419 PR libstdc++/83834 2420 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard 2421 pattern with exact match for std::cerr. 2422 24232018-01-15 Jonathan Wakely <jwakely@redhat.com> 2424 2425 PR libstdc++/83833 2426 * include/bits/random.h (chi_squared_distribution::param): Update 2427 gamma distribution parameter. 2428 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New 2429 test. 2430 2431 PR libstdc++/83830 2432 * include/std/type_traits (has_unique_object_representations_v): Add 2433 variable template. 2434 * testsuite/20_util/has_unique_object_representations/value.cc: Check 2435 variable template. 2436 24372018-01-15 Ville Voutilainen <ville.voutilainen@gmail.com> 2438 2439 Make optional conditionally 2440 trivially_{copy,move}_{constructible,assignable} 2441 * include/std/optional (_Optional_payload): Fix the comment in 2442 the class head and turn into a primary and one specialization. 2443 (_Optional_payload::_M_engaged): Strike the NSDMI. 2444 (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)): 2445 New. 2446 (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)): 2447 Likewise. 2448 (_Optional_payload<_Tp, false>::_M_get): Likewise. 2449 (_Optional_payload<_Tp, false>::_M_reset): Likewise. 2450 (_Optional_base_impl): Likewise. 2451 (_Optional_base): Turn into a primary and three specializations. 2452 (optional(nullopt)): Change the base init. 2453 * testsuite/20_util/optional/assignment/8.cc: New. 2454 * testsuite/20_util/optional/cons/trivial.cc: Likewise. 2455 * testsuite/20_util/optional/cons/value_neg.cc: Adjust. 2456 24572018-01-15 Jonathan Wakely <jwakely@redhat.com> 2458 2459 PR libstdc++/80276 2460 * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New. 2461 (get_template_arg_list): New. 2462 (StdVariantPrinter._template_args): Remove, use get_template_arg_list 2463 instead. 2464 (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead 2465 of strings and regular expressions. 2466 (add_one_template_type_printer): Adapt to new TemplateTypePrinter. 2467 (FilteringTypePrinter): Add docstring. Match using startswith. Use 2468 strip_inline_namespaces instead of strip_versioned_namespace. 2469 (add_one_type_printer): Prepend namespace to match argument. 2470 (register_type_printers): Add type printers for char16_t and char32_t 2471 string types and for types using cxx11 ABI. Update calls to 2472 add_one_template_type_printer to provide default argument dicts. 2473 * testsuite/libstdc++-prettyprinters/80276.cc: New test. 2474 * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for 2475 basic_string<unsigned char> and basic_string<signed char>. 2476 * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc 2477 to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI. 2478 24792018-01-14 Andreas Schwab <schwab@linux-m68k.org> 2480 2481 PR libstdc++/81092 2482 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update. 2483 24842018-01-13 Tim Shen <timshen@google.com> 2485 2486 PR libstdc++/83601 2487 * include/bits/regex.tcc (regex_replace): Fix escaping in sed. 2488 * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests. 2489 * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests. 2490 24912018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2492 2493 PR libstdc++/64054 2494 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc: 2495 Remove dg-xfail-run-if. 2496 24972018-01-10 François Dumont <fdumont@gcc.gnu.org> 2498 2499 * include/bits/forward_list.h 2500 (_Fwd_list_node_base(_Fwd_list_node_base&&)): New. 2501 (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New. 2502 (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete. 2503 (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise. 2504 (_Fwd_list_impl()): Add noexcept qualification. 2505 (_Fwd_list_impl(const _Node_alloc_type&)): Delete. 2506 (_Fwd_list_impl(_Fwd_list_impl&&)): New, default. 2507 (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New. 2508 (_Fwd_list_base()): Default. 2509 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New. 2510 (_Fwd_list_base(_Fwd_list_base&&)): Default. 2511 (forward_list<>()): Default. 2512 (forward_list<>(forward_list&&)): Default. 2513 (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New. 2514 (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New. 2515 (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters. 2516 * include/bits/forward_list.tcc 2517 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use 2518 _M_impl._M_head move assignment. 2519 (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise. 2520 * testsuite/23_containers/forward_list/allocator/default_init.cc: New. 2521 25222018-01-09 Jonathan Wakely <jwakely@redhat.com> 2523 2524 PR libstdc++/80276 2525 * python/libstdcxx/v6/printers.py (SharedPointerPrinter) 2526 (UniquePointerPrinter): Print correct template argument, not type of 2527 the pointer. 2528 (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup 2529 a type. 2530 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of 2531 array type. 2532 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and 2533 weak_ptr of array types. 2534 25352018-01-09 François Dumont <fdumont@gcc.gnu.org> 2536 2537 PR libstdc++/83709 2538 * include/bits/hashtable_policy.h 2539 (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if 2540 __first != __last. 2541 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New. 2542 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)): 2543 Add false_type parameter. 2544 (_Insert_base::insert): Adapt. 2545 * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)): 2546 Adapt. 2547 (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)): 2548 Add __n_elt parameter, defaulted to 1. 2549 (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash 2550 policy _M_need_rehash. 2551 (_Hashtable::_M_merge_unique): Pass target number of elements to add to 2552 produce only 1 rehash if necessary. 2553 * testsuite/23_containers/unordered_map/insert/83709.cc: New. 2554 * testsuite/23_containers/unordered_set/insert/83709.cc: New. 2555 25562018-01-09 Juraj Oršulić <juraj.orsulic@fer.hr> 2557 Jonathan Wakely <jwakely@redhat.com> 2558 2559 PR libstdc++/59253 (partial) 2560 * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator 2561 type for pointer stored by shared_ptr, weak_ptr and unique_ptr. 2562 (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as 2563 children. 2564 * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output 2565 of unique_ptr printer. 2566 * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected 2567 output of shared_ptr printer. 2568 25692018-01-05 Jonathan Wakely <jwakely@redhat.com> 2570 2571 PR libstdc++/83626 2572 * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove 2573 unnecessary symlink_status call. 2574 (remove_all(const path&, error_code&)): Use filesystem::remove. 2575 * src/filesystem/std-ops.cc: Likewise. 2576 2577 PR libstdc++/83279 2578 * src/filesystem/std-ops.cc (do_copy_file): Use non-null offset with 2579 sendfile. 2580 2581 PR libstdc++/83626 2582 * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not 2583 report an error for ENOENT. 2584 (remove_all(const path&)): Fix type of result variable. 2585 (remove_all(const path&, error_code&)): Use non-throwing increment 2586 for directory iterator. Call POSIX remove directly to avoid redundant 2587 calls to symlink_status. Do not report errors for ENOENT. 2588 * src/filesystem/std-ops.cc: Likewise. 2589 * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing 2590 overload. 2591 * testsuite/experimental/filesystem/operations/remove_all.cc: 2592 Likewise. 2593 25942018-01-04 Jonathan Wakely <jwakely@redhat.com> 2595 2596 PR libstdc++/83626 2597 * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove 2598 redundant call to ec.clear(). 2599 (remove_all(const path&, error_code&))): Do not return an error for 2600 non-existent paths. 2601 * src/filesystem/std-ops.cc: Likewise. 2602 * testsuite/27_io/filesystem/operations/remove.cc: New test. 2603 * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected 2604 results for non-existent paths. 2605 * testsuite/experimental/filesystem/operations/remove.cc: New test. 2606 * testsuite/experimental/filesystem/operations/remove_all.cc: Fix 2607 expected results for non-existent paths. 2608 2609 * include/bits/fs_ops.h (exists(const path&, error_code&))): Only 2610 check status_known once. 2611 * include/experimental/bits/fs_ops.h: Likewise. 2612 2613 PR libstdc++/83607 2614 * include/std/functional (__is_byte_like): New trait. 2615 (__is_std_equal_to): Remove. 2616 (__boyer_moore_base_t): Use __is_byte_like instead of 2617 __is_std_equal_to. 2618 * include/experimental/functional (__is_std_equal_to): Remove. 2619 (__boyer_moore_base_t): Use __is_byte_like instead of 2620 __is_std_equal_to. 2621 * testsuite/20_util/function_objects/83607.cc: New test. 2622 26232018-01-03 Ville Voutilainen <ville.voutilainen@gmail.com> 2624 2625 Protect optional's deduction guide with the feature macro 2626 * include/std/optional: Use the feature macro. 2627 26282018-01-03 Jakub Jelinek <jakub@redhat.com> 2629 2630 Update copyright years. 2631 2632Copyright (C) 2018 Free Software Foundation, Inc. 2633 2634Copying and distribution of this file, with or without modification, 2635are permitted in any medium without royalty provided the copyright 2636notice and this notice are preserved. 2637