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