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