12019-02-22 Release Manager 2 3 * GCC 8.3.0 released. 4 52019-02-14 Jonathan Wakely <jwakely@redhat.com> 6 7 PR middle-end/89303 8 * testsuite/20_util/enable_shared_from_this/89303.cc: New test. 9 102019-02-09 Jonathan Wakely <jwakely@redhat.com> 11 12 Backport from mainline 13 2019-01-08 Jonathan Wakely <jwakely@redhat.com> 14 15 PR libstdc++/88066 16 * include/bits/locale_conv.h: Use <> for includes not "". 17 * include/ext/random: Likewise. 18 * include/ext/vstring.h: Likewise. 19 202019-02-08 Jonathan Wakely <jwakely@redhat.com> 21 22 * doc/html/*: Regenerate. 23 24 * src/c++17/fs_ops.cc (absolute(const path&, error_code&)): Do nothing 25 if the path is already absolute. 26 [!_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Pass error_code to current_path. 27 28 Backport from mainline 29 2019-01-11 Jonathan Wakely <jwakely@redhat.com> 30 31 * include/std/chrono (duration_values::zero(), duration_values::min()) 32 (duration_values::max()): Add noexcept. 33 (duration::zero(), duration::min(), duration::max()): Likewise. 34 (time_point::zero(), time_point::min(), time_point::max()): Likewise. 35 * testsuite/20_util/duration/requirements/noexcept.cc: New test. 36 * testsuite/20_util/time_point/requirements/noexcept.cc: New test. 37 382019-02-08 Jonathan Wakely <jwakely@redhat.com> 39 40 Backport from mainline 41 2019-01-07 Jonathan Wakely <jwakely@redhat.com> 42 43 PR libstdc++/87787 44 * include/bits/char_traits.h (char_traits::move): Do not pass null 45 pointers to memmove. 46 * include/bits/locale_facets.h 47 (ctype<char>::widen(const char*, const char*, char*)): Do not 48 pass null pointers to memcpy. 49 (ctype<char>::narrow(const char*, const char*, char, char*)): 50 Likewise. 51 (ctype<char>::do_widen(const char*, const char*, char*)): 52 Likewise. 53 (ctype<char>::do_narrow(const char*, const char*, char, char*)): 54 Likewise. 55 562019-02-08 Jonathan Wakely <jwakely@redhat.com> 57 58 Backport from mainline 59 2018-11-23 Martin Sebor <msebor@redhat.com> 60 Jonathan Wakely <jwakely@redhat.com> 61 62 PR libstdc++/65229 63 * python/libstdcxx/v6/printers.py (StdBitsetPrinter): Handle 64 exception thrown for std::bitset<0>. 65 * testsuite/libstdc++-prettyprinters/simple.cc: Test std::bitset<0>. 66 672019-02-08 Jonathan Wakely <jwakely@redhat.com> 68 69 Backport from mainline 70 2018-11-23 Jonathan Wakely <jwakely@redhat.com> 71 72 PR libstdc++/87308 (partial) 73 * python/libstdcxx/v6/printers.py (StdExpAnyPrinter): Adjust regex to 74 work around PR 88166. 75 762019-02-08 Jonathan Wakely <jwakely@redhat.com> 77 78 Backport from mainline 79 2019-02-05 Jonathan Wakely <jwakely@redhat.com> 80 81 PR libstdc++/89128 82 * include/bits/stl_queue.h (queue, priority_queue): Add deduction 83 guides. 84 * include/bits/stl_stack.h (stack): Likewise. 85 * testsuite/23_containers/priority_queue/deduction.cc: New test. 86 * testsuite/23_containers/queue/deduction.cc: New test. 87 * testsuite/23_containers/stack/deduction.cc: New test. 88 892019-02-08 Jonathan Wakely <jwakely@redhat.com> 90 91 Backport from mainline 92 2018-11-29 Jonathan Wakely <jwakely@redhat.com> 93 94 PR libstdc++/88119 95 * include/ext/aligned_buffer.h (__aligned_membuf): Add comment. 96 (__aligned_buffer): Use __alignof__ instead of std::alignment_of. 97 * include/std/type_traits (alignment_of): Use alignof instead of 98 __alignof__. 99 * testsuite/20_util/alignment_of/value.cc: Fix test to check values 100 match alignof not __alignof__, as required by the standard. 101 1022019-02-08 Jonathan Wakely <jwakely@redhat.com> 103 104 Backport from mainline 105 2018-11-28 Jonathan Wakely <jwakely@redhat.com> 106 107 PR libstdc++/83511 108 * include/std/string_view (basic_string_view::substr): Add default 109 argument to first parameter. 110 * include/experimental/string_view (basic_string_view::substr): 111 Likewise. 112 * testsuite/21_strings/basic_string_view/operations/substr/char/ 113 83511.cc: New test. 114 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/ 115 83511.cc: New test. 116 * testsuite/experimental/string_view/operations/substr/char/83511.cc: 117 New test. 118 * testsuite/experimental/string_view/operations/substr/wchar_t/83511.cc: 119 New test. 120 121 Backport from mainline 122 2018-11-19 Jonathan Wakely <jwakely@redhat.com> 123 124 PR libstdc++/88084 - Implement LWG 2777 125 * include/std/string_view (basic_string_view::copy): Use traits to 126 copy. 127 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc: 128 New test. 129 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc: 130 New test. 131 132 Backport from mainline 133 2018-11-29 Jonathan Wakely <jwakely@redhat.com> 134 135 PR libstdc++/86910 136 PR libstdc++/87846 137 * src/filesystem/ops.cc (experimental::create_directories): Report 138 an error when the path resolves to an existing non-directory (P1164). 139 * src/filesystem/std-ops.cc (create_directories): Likewise. Handle 140 empty filenames due to trailing slashes. 141 * testsuite/27_io/filesystem/operations/create_directories.cc: Test 142 when some component of the path exists and is not a directory. Test 143 trailing slashes. 144 * testsuite/experimental/filesystem/operations/create_directories.cc: 145 Likewise. 146 147 Backport from mainline 148 2018-11-28 Jonathan Wakely <jwakely@redhat.com> 149 150 * doc/xml/manual/intro.xml: Document LWG 3096 change. 151 * src/filesystem/std-path.cc (path::lexically_relative(const path&)): 152 Treat a final empty element equivalently to a final dot element. 153 * testsuite/27_io/filesystem/path/generation/relative.cc: Add checks 154 for the examples in the DR. 155 156 Backport from mainline 157 2018-07-20 Jonathan Wakely <jwakely@redhat.com> 158 159 PR libstdc++/86595 160 * include/bits/fs_dir.h (directory_entry::refresh(error_code&)): Add 161 noexcept. 162 163 Backport from mainline 164 2018-05-21 Jonathan Wakely <jwakely@redhat.com> 165 166 * src/filesystem/std-ops.cc (absolute): Report an error for empty 167 paths. 168 (weakly_canonical(const path&)): Do not call canonical on empty path. 169 (weakly_canonical(const path&, error_code&)): Likewise. 170 * testsuite/27_io/filesystem/operations/absolute.cc: Check for errors. 171 172 Backport from mainline 173 2019-01-30 Jonathan Wakely <jwakely@redhat.com> 174 175 PR libstdc++/89117 176 * src/c++17/fs_path.cc (path::replace_extension): Erase extension from 177 final component as well as from _M_pathname. 178 * testsuite/27_io/filesystem/path/modifiers/replace_extension.cc: 179 Add more test cases. 180 1812019-01-21 Jonathan Wakely <jwakely@redhat.com> 182 183 Backport from mainline 184 2019-01-18 Jonathan Wakely <jwakely@redhat.com> 185 186 PR libstdc++/87514 187 PR libstdc++/87520 188 PR libstdc++/88782 189 * include/bits/shared_ptr.h 190 (shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)) 191 (allocate_shared): Change to use new tag type. 192 (_Sp_alloc_shared_tag): Define new type. 193 (_Sp_counted_ptr_inplace): Declare __shared_count<_Lp> as a friend. 194 (__shared_count(Ptr, Deleter),__shared_count(Ptr, Deleter, Alloc)): 195 Constrain to prevent being called with _Sp_alloc_shared_tag. 196 (__shared_count(_Sp_make_shared_tag, const _Alloc&, Args&&...)): 197 Replace constructor with ... 198 (__shared_count(Tp*&, _Sp_alloc_shared_tag<_Alloc>, Args&&...)): Use 199 reference parameter so address of the new object can be returned to 200 the caller. Obtain the allocator from the tag type. 201 (__shared_ptr(_Sp_make_shared_tag, const Alloc&, Args&&...)): Replace 202 constructor with ... 203 (__shared_ptr(_Sp_alloc_shared_tag<Alloc>, Args&&...)): Pass _M_ptr 204 to the __shared_count constructor. 205 (__allocate_shared): Change to use new tag type. 206 2072019-01-14 Jonathan Wakely <jwakely@redhat.com> 208 209 PR libstdc++/80762 210 * testsuite/experimental/filesystem/path/construct/80762.cc: Add 211 dg-require-filesystem-ts directive. 212 2132019-01-10 Jonathan Wakely <jwakely@redhat.com> 214 215 Backport from mainline 216 2019-01-04 Jonathan Wakely <jwakely@redhat.com> 217 218 (path::lexically_normal()): Use std::vector iterators instead of 219 path::iterator. Use pop_back to remove components from the end. Clear 220 trailing filename, instead of using erase(const_iterator) to remove 221 a non-final component. 222 * testsuite/27_io/filesystem/path/generation/normal.cc: Test 223 additional cases. 224 * testsuite/27_io/filesystem/path/generation/normal2.cc: New test. 225 2262019-01-10 Jonathan Wakely <jwakely@redhat.com> 227 228 Backport from mainline 229 2018-12-12 Jonathan Wakely <jwakely@redhat.com> 230 231 PR libstdc++/80762 232 * include/bits/fs_path.h (path::_Path): Use remove_cv_t and is_void. 233 * include/experimental/bits/fs_path.h (path::_Path): Likewise. 234 * testsuite/27_io/filesystem/path/construct/80762.cc: New test. 235 * testsuite/experimental/filesystem/path/construct/80762.cc: New test. 236 2372019-01-10 Jonathan Wakely <jwakely@redhat.com> 238 239 Backport from mainline 240 2018-05-23 Jonathan Wakely <jwakely@redhat.com> 241 242 * include/bits/fs_path.h (path::_M_type): Change default member 243 initializer to _Filename. 244 (path::begin): Create past-the-end iterator for empty path. 245 (path::has_relative_path()): Return false for empty filenames. 246 (path::_M_split_cmpts): Set _M_type to _Filename for empty paths. 247 Fix offset of empty final component. 248 * testsuite/27_io/filesystem/path/itr/components.cc: New. 249 * testsuite/27_io/filesystem/path/itr/traversal.cc: Add new inputs. 250 2512019-01-10 Jonathan Wakely <jwakely@redhat.com> 252 253 Backport from mainline 254 2019-01-10 Jonathan Wakely <jwakely@redhat.com> 255 256 * testsuite/util/testsuite_fs.h (nonexistent_path): Include name 257 of the source file containing the caller. 258 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Remove 259 directories created by test. 260 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc: 261 Likewise. 262 * testsuite/experimental/filesystem/iterators/directory_iterator.cc: 263 Likewise. 264 * testsuite/experimental/filesystem/iterators/ 265 recursive_directory_iterator.cc: Likewise. 266 2672019-01-10 Jonathan Wakely <jwakely@redhat.com> 268 269 Backport from mainline 270 2018-11-27 Jonathan Wakely <jwakely@redhat.com> 271 272 * testsuite/27_io/filesystem/operations/canonical.cc: Remove 273 directory created by test. 274 * testsuite/27_io/filesystem/operations/symlink_status.cc: Remove 275 symlink created by test. 276 2772019-01-10 Jonathan Wakely <jwakely@redhat.com> 278 279 * src/filesystem/std-path.cc (path::remove_filename()): Remove debug 280 check that prevents building with -fno-exceptions. 281 2822019-01-09 Jonathan Wakely <jwakely@redhat.com> 283 284 * testsuite/20_util/optional/cons/value_neg.cc: Change dg-error to 285 dg-prune-output. Remove unused header. 286 287 Backport from mainline 288 2019-01-08 Jonathan Wakely <jwakely@redhat.com> 289 290 PR libstdc++/87855 291 * include/std/optional (_Optional_payload_base): New class template 292 for common code hoisted from _Optional_payload specializations. Use 293 a template for the union, to allow a partial specialization for 294 types with non-trivial destructors. Add constructors for in-place 295 initialization to the union. 296 (_Optional_payload(bool, const _Optional_payload&)): Use _M_construct 297 to perform non-trivial copy construction, instead of relying on 298 non-standard copy elision in a delegating constructor. 299 (_Optional_payload(bool, _Optional_payload&&)): Likewise for 300 non-trivial move construction. 301 (_Optional_payload): Derive from _Optional_payload_base and use it 302 for everything except the non-trivial assignment operators, which are 303 defined as needed. 304 (_Optional_payload<false, C, M>): Derive from the specialization 305 _Optional_payload<true, false, false> and add a destructor. 306 (_Optional_base_impl::_M_destruct, _Optional_base_impl::_M_reset): 307 Forward to corresponding members of _Optional_payload. 308 (_Optional_base_impl::_M_is_engaged, _Optional_base_impl::_M_get): 309 Hoist common members from _Optional_base. 310 (_Optional_base): Make all members and base class public. 311 (_Optional_base::_M_get, _Optional_base::_M_is_engaged): Move to 312 _Optional_base_impl. 313 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter): Add 314 support for new std::optional layout. 315 * testsuite/libstdc++-prettyprinters/compat.cc: New test. 316 317 Backport from mainline 318 2018-11-19 Ville Voutilainen <ville.voutilainen@gmail.com> 319 320 PR libstdc++/87855 321 Also implement P0602R4 (variant and optional 322 should propagate copy/move triviality) for std::optional. 323 * include/std/optional (_Optional_payload): Change 324 the main constraints to check constructibility in 325 addition to assignability. 326 (operator=): Make constexpr. 327 (_M_reset): Likewise. 328 (_M_construct): Likewise. 329 (operator->): Likewise. 330 * testsuite/20_util/optional/assignment/8.cc: Adjust. 331 * testsuite/20_util/optional/assignment/9.cc: New. 332 3332018-12-23 Iain Sandoe <iain@sandoe.co.uk> 334 335 Backport from mainline 336 2018-12-06 Iain Sandoe <iain@sandoe.co.uk> 337 338 * scripts/make_exports.pl (check names): Don’t try to export 339 construction vtable symbols. 340 3412018-12-22 Iain Sandoe <iain@sandoe.co.uk> 342 343 Backport from mainline 344 2018-12-06 Jonathan Wakely <jwakely@redhat.com> 345 Iain Sandoe <iain@sandoe.co.uk> 346 347 PR libstdc++/64883 348 * testsuite/17_intro/headers/c++1998/all_attributes.cc: Don't test 349 always_inline on Darwin. 350 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Likewise. 351 * testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise. 352 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Likewise. 353 * testsuite/17_intro/headers/c++2020/all_attributes.cc: Likewise. 354 3552018-12-06 Iain Sandoe <iain@sandoe.co.uk> 356 357 Backport from mainline 358 2018-08-25 Iain Sandoe <iain@sandoe.co.uk> 359 360 PR libstdc++/70694 361 * configure.host (OPT_LDFLAGS): Don't append 362 -fvisibility-inlines-hidden for newer Darwin. 363 3642018-11-28 François Dumont <fdumont@gcc.gnu.org> 365 366 PR libstdc++/88199 367 * include/bits/hashtable.h 368 (_Hashtable<>::_M_move_assign(_Hashtable&&, false_type)): Deallocate 369 former buckets after assignment. 370 * testsuite/23_containers/unordered_set/allocator/move_assign.cc 371 (test03): New. 372 3732018-11-22 Jonathan Wakely <jwakely@redhat.com> 374 375 Backport from mainline 376 2018-11-22 Jonathan Wakely <jwakely@redhat.com> 377 378 PR libstdc++/85930 379 PR libstdc++/87520 380 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti) 381 [__cpp_rtti]: Define even when RTTI is enabled. Use array of 382 sizeof(type_info) so that type-punned reference binds to an object 383 of the correct size as well as correct alignment. 384 (_Sp_counted_ptr_inplace::_M_get_deleter) [__cpp_rtti]: Check for 385 _S_ti() reference even when RTTI is enabled. 386 (__shared_ptr(_Sp_make_shared_tag, const _Alloc&, _Args&&...)) 387 [__cpp_rtti]: Pass _S_ti() instead of typeid(_Sp_make_shared_tag). 388 3892018-10-31 Jonathan Wakely <jwakely@redhat.com> 390 391 Backport from mainline 392 2018-10-31 Jonathan Wakely <jwakely@redhat.com> 393 394 PR libstdc++/87822 395 * include/bits/stl_pair.h (__pair_base): Change to class template. 396 (pair): Make base class type depend on template parameters. 397 * testsuite/20_util/pair/87822.cc: New test. 398 3992018-10-30 Jonathan Wakely <jwakely@redhat.com> 400 401 Backport from mainline 402 2018-10-30 Jonathan Wakely <jwakely@redhat.com> 403 404 PR libstdc++/87809 405 * include/bits/forward_list.h (_Fwd_list_impl::_Fwd_list_impl()): Use 406 trait in exception-specification instead of possibly invalid 407 expression. 408 * include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()): 409 Likewise. 410 * include/bits/stl_list.h (_List_impl::_List_impl()): Likewise. 411 * testsuite/23_containers/forward_list/cons/87809.cc: New test. 412 * testsuite/23_containers/list/cons/87809.cc: New test. 413 * testsuite/23_containers/vector/bool/cons/87809.cc: New test. 414 * testsuite/23_containers/vector/cons/87809.cc: New test. 415 4162018-10-25 Jonathan Wakely <jwakely@redhat.com> 417 418 PR libstdc++/87749 419 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] 420 (basic_string::operator=(basic_string&&)): For short strings copy the 421 buffer inline. Only fall back to using assign(const basic_string&) to 422 do a deep copy when reallocation is needed. 423 * testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc: 424 New test. 425 * testsuite/21_strings/basic_string/modifiers/assign/char/ 426 move_assign_optim.cc: New test. 427 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc: 428 New test. 429 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/ 430 move_assign_optim.cc: New test. 431 4322018-10-23 Jonathan Wakely <jwakely@redhat.com> 433 434 PR libstdc++/87704 435 * include/bits/unique_ptr.h (unique_ptr::unique_ptr(nullptr_t)): Do 436 not delegate to default constructor. 437 (unique_ptr<T[], D>::unique_ptr(nullptr_t)): Likewise. 438 * testsuite/20_util/unique_ptr/cons/incomplete.cc: New test. 439 4402018-10-19 Jonathan Wakely <jwakely@redhat.com> 441 442 * include/bits/regex_executor.tcc (_Backref_matcher::_M_apply): Use 443 _GLIBCXX_STD_A to refer to normal mode algorithms. 444 * testsuite/28_regex/headers/regex/parallel_mode.cc: New test. 445 * testsuite/28_regex/headers/regex/std_c++0x_neg.cc: Remove empty 446 whitespace. 447 4482018-10-18 Jonathan Wakely <jwakely@redhat.com> 449 450 Backport from mainline 451 2018-10-18 Jonathan Wakely <jwakely@redhat.com> 452 453 PR libstdc++/87641 454 * include/bits/valarray_array.h (__valarray_sum): Use first element 455 to initialize accumulator instead of value-initializing it. 456 * testsuite/26_numerics/valarray/87641.cc: New test. 457 4582018-10-15 Jonathan Wakely <jwakely@redhat.com> 459 460 * testsuite/22_locale/numpunct/members/char/3.cc: Adjust test to 461 account for change to glibc it_IT localedata (glibc bz#10797). 462 4632018-10-12 Jonathan Wakely <jwakely@redhat.com> 464 465 Backport from mainline 466 2018-07-31 Jonathan Wakely <jwakely@redhat.com> 467 468 PR libstdc++/86751 469 * include/bits/stl_pair.h (__pair_base): New class with deleted copy 470 assignment operator. 471 (pair): Derive from __pair_base. 472 (pair::operator=): Remove deleted overload. 473 * python/libstdcxx/v6/printers.py (StdPairPrinter): New pretty printer 474 so that new base class isn't shown in GDB. 475 * testsuite/20_util/pair/86751.cc: New test. 476 * testsuite/20_util/pair/ref_assign.cc: New test. 477 4782018-10-12 Jonathan Wakely <jwakely@redhat.com> 479 480 Backport from mainline 481 2018-09-03 Jonathan Wakely <jwakely@redhat.com> 482 483 PR libstdc++/78595 484 * include/bits/stl_map.h (map::insert(_Pair&&)) 485 (map::insert(const_iterator, _Pair&&)): Do emplace instead of insert. 486 * include/bits/stl_multimap.h (multimap::insert(_Pair&&)) 487 (multimap::insert(const_iterator, _Pair&&)): Likewise. 488 * include/bits/unordered_map.h (unordered_map::insert(_Pair&&)) 489 (unordered_map::insert(const_iterator, _Pair&&)) 490 (unordered_multimap::insert(_Pair&&)) 491 (unordered_multimap::insert(const_iterator, _Pair&&)): Likewise. 492 * include/std/type_traits (__enable_if_t): Define for C++11. 493 * testsuite/23_containers/map/modifiers/insert/78595.cc: New test. 494 * testsuite/23_containers/multimap/modifiers/insert/78595.cc: New test. 495 * testsuite/23_containers/unordered_map/modifiers/78595.cc: New test. 496 * testsuite/23_containers/unordered_multimap/modifiers/78595.cc: New 497 test. 498 4992018-10-12 Jonathan Wakely <jwakely@redhat.com> 500 501 Backport from mainline 502 2018-08-30 Jonathan Wakely <jwakely@redhat.com> 503 504 * include/ext/pointer.h (_Pointer_adapter): Define operators for 505 pointer arithmetic using long long offsets. 506 * testsuite/ext/ext_pointer/1.cc: Test pointer arithmetic using 507 long long values. 508 5092018-10-12 Jonathan Wakely <jwakely@redhat.com> 510 511 Backport from mainline 512 2018-08-23 Jonathan Wakely <jwakely@redhat.com> 513 514 * testsuite/21_strings/basic_string/init-list.cc: 515 Require cxx11-abi. 516 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc: 517 Likewise. 518 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc: 519 Likewise. 520 521 Backport from mainline 522 2018-08-22 Jonathan Wakely <jwakely@redhat.com> 523 524 PR libstdc++/87061 525 * include/experimental/regex [!_GLIBCXX_USE_CXX11_ABI] 526 (experimental::pmr::match_results, experimental::pmr::cmatch) 527 (experimental::pmr::smatch, experimental::pmr::wcmatch) 528 (experimental::pmr::wsmatch): Do not declare for gcc4-compatible ABI, 529 because COW strings don't support C++11 allocator model. 530 * include/experimental/string [!_GLIBCXX_USE_CXX11_ABI] 531 (experimental::pmr::basic_string, experimental::pmr::string) 532 (experimental::pmr::u16string, experimental::pmr::u32string) 533 (experimental::pmr::wstring): Likewise. 534 535 Backport from mainline 536 2018-08-15 Jonathan Wakely <jwakely@redhat.com> 537 538 * include/experimental/regex: Remove begin/end macros for namespace. 539 * include/experimental/string: Likewise. 540 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc: 541 New test. 542 * testsuite/experimental/polymorphic_allocator/ 543 pmr_typedefs_forward_list.cc: New test. 544 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc: 545 New test. 546 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc: 547 New test. 548 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc: 549 New test. 550 * testsuite/experimental/polymorphic_allocator/ 551 pmr_typedefs_multimap.cc: New test. 552 * testsuite/experimental/polymorphic_allocator/ 553 pmr_typedefs_multiset.cc: New test. 554 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc: 555 New test. 556 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc: 557 New test. 558 * testsuite/experimental/polymorphic_allocator/ 559 pmr_typedefs_unordered_map.cc: New test. 560 * testsuite/experimental/polymorphic_allocator/ 561 pmr_typedefs_unordered_multimap.cc: New test. 562 * testsuite/experimental/polymorphic_allocator/ 563 pmr_typedefs_unordered_multiset.cc: New test. 564 * testsuite/experimental/polymorphic_allocator/ 565 pmr_typedefs_unordered_set.cc: New test. 566 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc: 567 New test. 568 5692018-10-12 Jonathan Wakely <jwakely@redhat.com> 570 571 Backport from mainline 572 2018-07-24 Jonathan Wakely <jwakely@redhat.com> 573 574 PR libstdc++/70966 575 * include/experimental/memory_resource (__get_default_resource): Use 576 placement new to create an object with dynamic storage duration. 577 578 Backport from mainline 579 2018-06-20 Jonathan Wakely <jwakely@redhat.com> 580 581 PR libstdc++/70966 582 * include/experimental/memory_resource (__resource_adaptor_imp): Add 583 static assertions to enforce requirements on pointer types. 584 (__resource_adaptor_imp::get_allocator()): Add noexcept. 585 (new_delete_resource, null_memory_resource): Return address of an 586 object with dynamic storage duration. 587 (__null_memory_resource): Remove. 588 * testsuite/experimental/memory_resource/70966.cc: New. 589 5902018-10-12 Jonathan Wakely <jwakely@redhat.com> 591 592 PR libstdc++/77854 593 * doc/xml/manual/status_cxx1998.xml: Document size_type and 594 difference_type for containers. 595 * doc/html/*: Regenerate. 596 5972018-10-08 Joseph Myers <joseph@codesourcery.com> 598 599 Backport from mainline 600 2018-10-02 Joseph Myers <joseph@codesourcery.com> 601 602 * testsuite/lib/libstdc++.exp (libstdc++_init): Use 603 -fno-show-column in default cxxflags. 604 6052018-10-08 Jonathan Wakely <jwakely@redhat.com> 606 607 Backport from mainline 608 2018-10-08 Jonathan Wakely <jwakely@redhat.com> 609 610 PR libstdc++/87538 611 * include/std/functional (_Not_fn::operator()): Check value of 612 __is_nothrow_invocable as well. 613 * testsuite/20_util/function_objects/not_fn/87538.cc: New test. 614 * testsuite/experimental/functional/87538.cc: New test. 615 6162018-09-11 Jonathan Wakely <jwakely@redhat.com> 617 618 PR libstdc++/87278 619 * include/bits/shared_ptr.h (make_shared): Use remove_cv instead of 620 remove_const. 621 * testsuite/20_util/shared_ptr/creation/87278.cc: New test. 622 6232018-08-28 Jonathan Wakely <jwakely@redhat.com> 624 625 PR libstdc++/87116 626 * src/filesystem/std-path.cc (path::lexically_normal): When handling 627 a dot-dot filename, preserve an empty final component in the iteration 628 sequence. 629 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use preferred-separator for 630 root-directory. 631 * testsuite/27_io/filesystem/path/generation/normal.cc: Add new tests 632 for more than two adjacent dot-dot filenames. 633 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Replace slashes with 634 preferred-separator in expected normalized strings. 635 6362018-08-13 Jonathan Wakely <jwakely@redhat.com> 637 638 Revert 639 2018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de> 640 641 PR target/85904 642 * configure.ac: Define HAVE_ALIGNED_ALLOC if building for 643 Newlib. 644 * configure: Regenerate. 645 6462018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de> 647 648 Backport from mainline 649 2018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de> 650 651 PR target/85904 652 * configure.ac: Define HAVE_ALIGNED_ALLOC if building for 653 Newlib. 654 * configure: Regenerate. 655 6562018-08-08 Jonathan Wakely <jwakely@redhat.com> 657 658 * libsupc++/new_opa.cc (aligned_alloc): Declare inside namespace to 659 avoid clashing with an ::aligned_alloc function that was not detected 660 by configure. 661 662 PR libstdc++/86597 663 * include/bits/fs_dir.h (directory_entry::_M_file_type(error_code&)): 664 Clear error_code when cached type is used. 665 * testsuite/27_io/filesystem/directory_entry/86597.cc: New test. 666 667 * doc/xml/manual/using.xml: Remove C++2a headers not on gcc-8-branch. 668 * doc/html/*: Regenerate. 669 670 * doc/xml/manual/using.xml: Add missing header to table and fix typo. 671 Remove C++17 headers not present on gcc-8-branch. 672 * doc/html/*: Regenerate. 673 6742018-08-07 Jonathan Wakely <jwakely@redhat.com> 675 676 Backport from mainline 677 2018-07-31 Jonathan Wakely <jwakely@redhat.com> 678 679 * doc/xml/manual/test.xml: Improve documentation on writing tests for 680 newer standards. 681 * doc/xml/manual/using.xml: Document all headers for C++11 and later. 682 * doc/html/*: Regenerate. 683 684 Backport from mainline 685 2018-05-03 Jonathan Wakely <jwakely@redhat.com> 686 687 PR libstdc++/84535 688 * include/std/thread (thread::__not_same): New SFINAE helper. 689 (thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that 690 first argument is not a std::thread. Add static assertion to check 691 INVOKE expression is valid. 692 (thread::thread(thread&), thread::thread(const thread&&)): Remove. 693 * testsuite/30_threads/thread/cons/84535.cc: New. 694 695 Backport from mainline 696 2018-08-03 Jonathan Wakely <jwakely@redhat.com> 697 698 * src/c++11/system_error.cc 699 (system_error_category::default_error_condition): Add workaround for 700 ENOTEMPTY and EEXIST having the same value on AIX. 701 * testsuite/19_diagnostics/error_category/system_category.cc: Add 702 extra testcases for EDOM, EILSEQ, ERANGE, EEXIST and ENOTEMPTY. 703 704 Backport from mainline 705 2018-08-01 Jonathan Wakely <jwakely@redhat.com> 706 707 PR libstdc++/60555 708 * src/c++11/system_error.cc 709 (system_error_category::default_error_condition): New override to 710 check for POSIX errno values. 711 * testsuite/19_diagnostics/error_category/generic_category.cc: New 712 * testsuite/19_diagnostics/error_category/system_category.cc: New 713 test. 714 715 Backport from mainline 716 2018-08-07 Jonathan Wakely <jwakely@redhat.com> 717 718 PR libstdc++/86874 719 * include/std/variant (_Copy_ctor_base::_M_destructive_move): Define 720 here instead of in _Move_assign_base. 721 (_Copy_ctor_base<true, _Types...>::_M_destructive_move): Define. 722 (_Copy_assign_base::operator=): Use _M_destructive_move when changing 723 the contained value to another alternative. 724 (_Move_assign_base::operator=): Likewise. 725 (_Move_assign_base::_M_destructive_move): Remove. 726 * testsuite/20_util/variant/86874.cc: New test. 727 728 Backport from mainline 729 2018-08-07 Jonathan Wakely <jwakely@redhat.com> 730 731 PR libstdc++/86861 732 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] (aligned_alloc): 733 Replace macro with inline function. 734 [__sun]: Increase alignment to meet memalign precondition. 735 [!HAVE__ALIGNED_MALLOC && !HAVE_POSIX_MEMALIGN && !HAVE_MEMALIGN] 736 (aligned_alloc): Move check for valid alignment to operator new. 737 Remove redundant check for non-zero size, it's enforced by the caller. 738 (operator new): Move check for valid alignment here. Use 739 __builtin_expect on check for zero size. 740 7412018-07-31 Jonathan Wakely <jwakely@redhat.com> 742 743 Backport from mainline 744 2018-07-30 Jonathan Wakely <jwakely@redhat.com> 745 746 * libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Add 747 workaround for aligned_alloc bug on AIX. 748 * testsuite/18_support/new_aligned.cc: New test. 749 750 Backport from mainline 751 2018-07-20 Fangrui Song <maskray@google.com> 752 753 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Use 754 _GLIBCXX_VISIBILITY(default). 755 756 Backport from mainline 757 2018-07-30 Jonathan Wakely <jwakely@redhat.com> 758 759 PR libstdc++/86734 760 * include/bits/stl_iterator.h (reverse_iterator::operator->): Use 761 addressof (LWG 2188). 762 * testsuite/24_iterators/reverse_iterator/dr2188.cc: New test. 763 764 Backport from mainline 765 2018-05-08 Jonathan Wakely <jwakely@redhat.com> 766 767 PR libstdc++/85672 768 * include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry 769 to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero. 770 * include/Makefile.in: Regenerate. 771 * include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition 772 within conditional block. 773 774 Backport from mainline 775 2018-05-01 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com> 776 777 PR libstdc++/84654 778 * acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128. 779 * config.h.in: Remove references to _GLIBCXX_USE_FLOAT128. 780 * configure: Regenerate. 781 * include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128 782 based on ENABLE_FLOAT128. 783 * include/Makefile.in: Regenerate. 784 * include/bits/c++config: Define _GLIBCXX_USE_FLOAT128. 785 [!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine 786 _GLIBCXX_USE_FLOAT128. 787 7882018-07-26 Marek Polacek <polacek@redhat.com> 789 790 * testsuite/30_threads/condition_variable_any/cond.cc: New. 791 7922018-07-26 Release Manager 793 794 * GCC 8.2.0 released. 795 7962018-07-18 Jonathan Wakely <jwakely@redhat.com> 797 798 Backport from mainline 799 2018-07-05 Jonathan Wakely <jwakely@redhat.com> 800 801 * testsuite/21_strings/basic_string/cons/char/deduction.cc: XFAIL for 802 COW strings. 803 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: 804 Likewise. 805 806 Backport from mainline 807 2018-07-04 Jonathan Wakely <jwakely@redhat.com> 808 809 * testsuite/25_algorithms/make_heap/complexity.cc: Require effective 810 target for std::random_device. 811 * testsuite/26_numerics/random/random_device/cons/default.cc: 812 Likewise. 813 * testsuite/experimental/algorithm/sample-2.cc: Likewise. 814 * testsuite/experimental/algorithm/shuffle.cc: Likewise. 815 * testsuite/experimental/random/randint.cc: Likewise. 816 * testsuite/lib/libstdc++.exp 817 (check_effective_target_random_device): New proc. 818 819 Backport from mainline 820 2018-06-26 David Edelsohn <dje.gcc@gmail.com> 821 822 * testsuite/experimental/algorithm/sample-2.cc: Add TLS DejaGNU 823 directives. 824 * testsuite/experimental/algorithm/shuffle.cc: Likewise. 825 826 Backport from mainline 827 2018-06-25 Jonathan Wakely <jwakely@redhat.com> 828 829 * include/experimental/algorithm (sample, shuffle): Add new overloads 830 using per-thread random number engine. 831 * testsuite/experimental/algorithm/sample.cc: Simpify and reduce 832 dependencies by using __gnu_test::test_container. 833 * testsuite/experimental/algorithm/sample-2.cc: New. 834 * testsuite/experimental/algorithm/shuffle.cc: New. 835 8362018-07-16 Andreas Krebbel <krebbel@linux.ibm.com> 837 838 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update. 839 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Update. 840 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update. 841 8422018-07-05 François Dumont <fdumont@gcc.gnu.org> 843 844 Backport from mainline 845 2018-07-04 François Dumont <fdumont@gcc.gnu.org> 846 847 PR libstdc++/86272 848 * include/debug/string 849 (__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite, _Ite)): 850 Use __glibcxx_check_insert_range. 851 8522018-07-04 Jonathan Wakely <jwakely@redhat.com> 853 854 Backport from mainline 855 2018-05-19 Jonathan Wakely <jwakely@redhat.com> 856 857 * src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in) 858 [__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set 859 little_endian element in bitmask. 860 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests. 861 * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New. 862 863 Backport from mainline 864 2018-07-03 Jonathan Wakely <jwakely@redhat.com> 865 866 * include/bits/alloc_traits.h: Remove redundant preprocessor 867 condition. 868 869 Backport from mainline 870 2018-06-27 Jonathan Wakely <jwakely@redhat.com> 871 872 * include/bits/cpp_type_traits.h [__cplusplus >= 201703] 873 (__is_byte<byte>): Define specialization for std::byte. 874 875 Backport from mainline 876 2018-06-18 Jonathan Wakely <jwakely@redhat.com> 877 878 LWG 3050 Fix cv-qualification of convertibility constraints 879 * include/std/chrono (duration, operator*, operator/, operator%): Use 880 const-qualified type as source type in is_convertible constraints. 881 * testsuite/20_util/duration/arithmetic/dr3050.cc: New. 882 * testsuite/20_util/duration/cons/dr3050.cc: New. 883 * testsuite/20_util/duration/literals/range.cc: Rename to... 884 * testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust 885 dg-error lineno. 886 887 Backport from mainline 888 2018-06-13 Jonathan Wakely <jwakely@redhat.com> 889 890 PR libstdc++/86127 891 * include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove 892 unused typedef. 893 (_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after): 894 Use node allocator to create and destroy elements. 895 (forward_list::_Tp_alloc_type): Remove unused typedef. 896 (forward_list::_Alloc_traits): Use allocator_traits instead of 897 __gnu_cxx::__alloc_traits. 898 899 Backport from mainline 900 2018-05-29 Jonathan Wakely <jwakely@redhat.com> 901 902 * include/std/variant (__erased_dtor): Qualify call to __get. 903 904 Backport from mainline 905 2018-05-15 Jonathan Wakely <jwakely@redhat.com> 906 907 * include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify 908 __invoke to prevent ADL. 909 910 Backport from mainline 911 2018-05-24 Maya Rashish <coypu@sdf.org> 912 913 PR target/85904 914 * crossconfig.m4: Test for aligned_alloc on netbsd. 915 * configure: Regenerate. 916 917 Backport from mainline 918 2018-05-18 Jonathan Wakely <jwakely@redhat.com> 919 920 PR libstdc++/85098 921 * include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase) 922 (basic_regex::nosubs, basic_regex::optimize, basic_regex::collate) 923 (basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended) 924 (basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add 925 definitions. 926 * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust 927 whitespace. 928 * include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add 929 braces around body of do-while. 930 * testsuite/28_regex/basic_regex/85098.cc: New 931 932 Backport from mainline 933 2018-05-07 Jonathan Wakely <jwakely@redhat.com> 934 935 PR libstdc++/85671 936 * include/bits/fs_path.h (operator/): Permit copy elision. 937 * include/experimental/bits/fs_path.h (operator/): Likewise. 938 939 Backport from mainline 940 2018-06-14 Daniel Trebbien <dtrebbien@gmail.com> 941 Jonathan Wakely <jwakely@redhat.com> 942 943 PR libstdc++/83982 944 * include/bits/vector.tcc (vector::_M_default_append(size_type)): 945 Default-construct new elements before moving existing ones. 946 * testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc: 947 New. 948 949 Backport from mainline 950 2018-06-25 Jonathan Wakely <jwakely@redhat.com> 951 952 PR libstdc++/86292 953 * include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>): 954 Add try-catch block. 955 * testsuite/23_containers/vector/cons/86292.cc: New. 956 957 Backport from mainline 958 2018-06-27 Jonathan Wakely <jwakely@redhat.com> 959 960 PR libstdc++/86138 961 * include/bits/basic_string.tcc: [_GLIBCXX_EXTERN_TEMPLATE < 0] 962 Declare explicit instantiations of COW empty reps and I/O functions. 963 964 Backport from mainline 965 2018-06-16 Jonathan Wakely <jwakely@redhat.com> 966 967 LWG 3076 basic_string CTAD ambiguity 968 * doc/xml/manual/intro.xml: Document LWG 3076 change. 969 * include/bits/basic_string.h 970 [__cpp_deduction_guides && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS] 971 (basic_string(const _CharT*, const _Alloc&)): Turn into a function 972 template constrained by _RequireAllocator. 973 (basic_string(size_type, _CharT, const _Alloc&)): Likewise. 974 * src/c++11/string-inst.cc (_GLIBCXX_DEFINING_STRING_INSTANTIATIONS): 975 Define. 976 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test 977 deduction 978 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: 979 Likewise. 980 981 Backport from mainline 982 2018-06-14 Jonathan Wakely <jwakely@redhat.com> 983 984 LWG 3075 basic_string needs deduction guides from basic_string_view 985 * include/bits/basic_string.h: Add deduction guides from string_view. 986 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test 987 deduction from string views. 988 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: 989 Likewise. 990 991 Backport from mainline 992 2018-05-03 Jonathan Wakely <jwakely@redhat.com> 993 994 PR libstdc++/84087 LWG DR 2268 basic_string default arguments 995 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1] 996 (append(const basic_string&, size_type, size_type) 997 (assign(const basic_string&, size_type, size_type) 998 (insert(size_type, const basic_string&, size_type, size_type) 999 (replace(size_type,size_type,const basic_string&,size_type,size_type) 1000 (compare(size_type,size_type,constbasic_string&,size_type,size_type)): 1001 Add default arguments (LWG 2268). 1002 [_GLIBCXX_USE_CXX11_ABI=0] 1003 (append(const basic_string&, size_type, size_type) 1004 (assign(const basic_string&, size_type, size_type) 1005 (insert(size_type, const basic_string&, size_type, size_type) 1006 (replace(size_type,size_type,const basic_string&,size_type,size_type) 1007 (compare(size_type,size_type,constbasic_string&,size_type,size_type)): 1008 Likewise. 1009 * testsuite/21_strings/basic_string/dr2268.cc: New test. 1010 1011 PR libstdc++/86398 1012 * include/std/type_traits (is_trivially_constructible): Check 1013 is_constructible before __is_trivially_constructible. 1014 * testsuite/20_util/is_trivially_constructible/value.cc: Add more 1015 tests, including negative cases. 1016 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Use 1017 zero for dg-error lineno. 1018 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: 1019 Likewise. 1020 10212018-06-25 Jonathan Wakely <jwakely@redhat.com> 1022 1023 PR libstdc++/86112 1024 * python/libstdcxx/v6/printers.py (add_one_template_type_printer): 1025 Replace dict comprehension. 1026 10272018-06-25 Jonathan Wakely <jwakely@redhat.com> 1028 1029 PR libstdc++/81092 1030 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update. 1031 10322018-06-22 Jonathan Wakely <jwakely@redhat.com> 1033 1034 Backport from mainline 1035 2018-06-22 Jonathan Wakely <jwakely@redhat.com> 1036 1037 PR libstdc++/86138 1038 * include/bits/basic_string.tcc: 1039 [__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI] 1040 (basic_string<char>::_Rep::_S_empty_rep_storage) 1041 (basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit 1042 instantiation declarations. 1043 [__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable 1044 explicit instantiation declarations. 1045 * testsuite/21_strings/basic_string/cons/char/86138.cc: New. 1046 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New. 1047 10482018-06-21 Jonathan Wakely <jwakely@redhat.com> 1049 1050 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. 1051 10522018-06-19 Jonathan Wakely <jwakely@redhat.com> 1053 1054 * include/std/utility: Remove unused <exception> header. 1055 10562018-06-19 Jonathan Wakely <jwakely@redhat.com> 1057 1058 Backport from mainline 1059 2018-05-03 Jonathan Wakely <jwakely@redhat.com> 1060 1061 PR libstdc++/82644 1062 * include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use 1063 inline definitions instead of using-declarations. 1064 [__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise. 1065 * testsuite/tr1/5_numerical_facilities/special_functions/ 1066 07_conf_hyperg/compile_cxx17.cc: New. 1067 * testsuite/tr1/5_numerical_facilities/special_functions/ 1068 17_hyperg/compile_cxx17.cc: New. 1069 10702018-06-15 Jonathan Wakely <jwakely@redhat.com> 1071 1072 PR libstdc++/86169 1073 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI] 1074 (basic_string::data()): Unshare string. 1075 * testsuite/21_strings/basic_string/operations/data/char/86169.cc: 1076 New. 1077 10782018-06-15 Jonathan Wakely <jwakely@redhat.com> 1079 1080 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only 1081 define for C++17 and above. 1082 10832018-06-06 Jonathan Wakely <jwakely@redhat.com> 1084 1085 PR libstdc++/86008 1086 * include/bits/quoted_string.h (_Quoted_string<basic_string_view, C>): 1087 Define new partial specialization. 1088 * include/std/iomanip (quoted(basic_string_view<C,T>, C, C)): Define 1089 new overload. 1090 (operator<<(basic_ostream<C,T>&, const _Quoted_string<S,C>&)): Use 1091 value not reference for iteration. 1092 * testsuite/27_io/manipulators/standard/char/quoted.cc: Adjust 1093 comment. 1094 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc: New test. 1095 * testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: Adjust 1096 comment. 1097 10982018-06-05 Jonathan Wakely <jwakely@redhat.com> 1099 1100 * include/std/type_traits: Fix comment typo. 1101 11022018-06-04 Jonathan Wakely <jwakely@redhat.com> 1103 1104 PR libstdc++/85930 1105 * include/bits/shared_ptr_base.h [!__cpp_rtti]: Include <typeinfo> 1106 unconditionally. Remove redundant declaration. 1107 [!__cpp_rtti] (_Sp_make_shared_tag::_S_ti): Align the static variable 1108 correctly. 1109 11102018-05-31 Jonathan Wakely <jwakely@redhat.com> 1111 1112 PR libstdc++/85951 1113 * include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define 1114 uint_least16_t and uint_least32_t. 1115 (__make_unsigned<wchar_t>): Define unconditionally. 1116 (__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define. 1117 (__make_signed<wchar_t>, __make_signed<char16_t>) 1118 (__make_signed<char32_t>)): Define unconditionally. 1119 * testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check 1120 wchar_t, char16_t and char32_t are transformed correctly. 1121 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust 1122 dg-error lineno. 1123 * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check 1124 wchar_t, char16_t and char32_t are transformed correctly. 1125 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust 1126 dg-error lineno. 1127 11282018-05-21 François Dumont <fdumont@gcc.gnu.org> 1129 1130 * include/debug/map.h 1131 (map(map&&, const_allocator_type&)): Add noexcept qualitication. 1132 * include/debug/multimap.h 1133 (multimap(multimap&&, const_allocator_type&)): Likewise. 1134 * include/debug/set.h 1135 (set(set&&, const_allocator_type&)): Likewise. 1136 * include/debug/multiset.h 1137 (multiset(multiset&&, const_allocator_type&)): Likewise. 1138 11392018-05-21 Jonathan Wakely <jwakely@redhat.com> 1140 1141 PR libstdc++/85818 1142 * testsuite/experimental/filesystem/path/preferred_separator.cc: Add 1143 dg-require-filesystem-ts. 1144 11452018-05-17 Jonathan Wakely <jwakely@redhat.com> 1146 1147 PR libstdc++/85818 1148 * src/filesystem/path.cc (path::preferred_separator): Add used 1149 attribute. 1150 * testsuite/experimental/filesystem/path/preferred_separator.cc: New. 1151 1152 PR libstdc++/85812 1153 * libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare. 1154 * libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]: 1155 Refactor to separate non-throwing and throwing implementations. 1156 [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory 1157 if constructing the object throws. 1158 11592018-05-15 Jonathan Wakely <jwakely@redhat.com> 1160 1161 PR libstdc++/83891 1162 * include/bits/fs_path.h (path::is_absolute()): Use same definition 1163 for all operating systems. 1164 * include/experimental/bits/fs_path.h (path::is_absolute()): Likewise. 1165 * testsuite/27_io/filesystem/path/query/is_absolute.cc: New. 1166 * testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment. 1167 * testsuite/experimental/filesystem/path/query/is_absolute.cc: New. 1168 1169 * testsuite/27_io/filesystem/path/decompose/extension.cc: Remove 1170 unused <vector> header. 1171 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise. 1172 * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise. 1173 * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise. 1174 * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise. 1175 * testsuite/27_io/filesystem/path/query/has_relative_path.cc: 1176 Likewise. 1177 * testsuite/27_io/filesystem/path/query/has_root_directory.cc: 1178 Likewise. 1179 * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise. 1180 * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise. 1181 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise. 1182 * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise. 1183 * testsuite/experimental/filesystem/path/decompose/extension.cc: 1184 Likewise. 1185 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise. 1186 * testsuite/experimental/filesystem/path/query/has_extension.cc: 1187 Likewise. 1188 * testsuite/experimental/filesystem/path/query/has_filename.cc: 1189 Likewise. 1190 * testsuite/experimental/filesystem/path/query/has_parent_path.cc: 1191 Likewise. 1192 * testsuite/experimental/filesystem/path/query/has_relative_path.cc: 1193 Likewise. 1194 * testsuite/experimental/filesystem/path/query/has_root_directory.cc: 1195 Likewise. 1196 * testsuite/experimental/filesystem/path/query/has_root_name.cc: 1197 Likewise. 1198 * testsuite/experimental/filesystem/path/query/has_root_path.cc: 1199 Likewise. 1200 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise. 1201 * testsuite/experimental/filesystem/path/query/is_relative.cc: 1202 Likewise. 1203 1204 PR libstdc++/84159 1205 * include/bits/fs_path.h (path::operator/=, path::append): Construct 1206 temporary path before calling _M_append. 1207 (path::_M_append): Change parameter to path and implement C++17 1208 semantics. 1209 * testsuite/27_io/filesystem/path/append/path.cc: Add helper function 1210 and more examples from the standard. 1211 * testsuite/27_io/filesystem/path/append/source.cc: New. 1212 * testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment. 1213 * testsuite/27_io/filesystem/path/nonmember/append.cc: New. 1214 12152018-05-14 Jonathan Wakely <jwakely@redhat.com> 1216 1217 PR libstdc++/67554 1218 * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>) 1219 (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy. 1220 1221 PR libstdc++/82966 1222 * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value 1223 instead of type. 1224 * testsuite/23_containers/set/modifiers/node_swap.cc: New. 1225 12262018-05-10 Jonathan Wakely <jwakely@redhat.com> 1227 1228 * doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer. 1229 * doc/xml/manual/debug_mode.xml: Add array and forward_list to list 1230 of C++11 containers with Debug Mode support. 1231 * doc/xml/manual/using.xml: Document that the C++17 Filesystem 1232 implementation also needs -lstdc++fs. Document Dual ABI for 1233 ios_base::failure. 1234 * doc/html/*: Regenerate. 1235 12362018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net> 1237 1238 Backport from mainline 1239 2018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net> 1240 1241 Moar PR libstdc++/80506 1242 * include/bits/random.tcc (gamma_distribution::__generate_impl()): 1243 Fix magic number used in loop condition. 1244 12452018-05-04 Jonathan Wakely <jwakely@redhat.com> 1246 1247 PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>> 1248 * include/std/optional (_Optional_payload): Add noexcept to default 1249 constructor. Re-indent. 1250 (_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to 1251 constructor for copying disengaged payloads. 1252 (_Optional_payload<_Tp, true, false, true>): Likewise. 1253 (_Optional_payload<_Tp, true, true, false>): Likewise. 1254 (_Optional_payload<_Tp, true, false, false>): Likewise. 1255 * testsuite/20_util/optional/cons/85642.cc: New. 1256 * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines. 1257 12582018-05-03 Jonathan Wakely <jwakely@redhat.com> 1259 1260 PR libstdc++/84769 1261 * include/std/variant (visit): Qualify std::get call. 1262 12632018-05-03 Jonathan Wakely <jwakely@redhat.com> 1264 1265 PR libstdc++/85632 use uintmax_t for arithmetic 1266 * src/filesystem/ops.cc (experimental::filesystem::space): Perform 1267 arithmetic in result type. 1268 * src/filesystem/std-ops.cc (filesystem::space): Likewise. 1269 * testsuite/27_io/filesystem/operations/space.cc: Check total capacity 1270 is greater than free space. 1271 * testsuite/experimental/filesystem/operations/space.cc: New. 1272 12732018-05-02 Release Manager 1274 1275 * GCC 8.1.0 released. 1276 12772018-04-24 H.J. Lu <hongjiu.lu@intel.com> 1278 1279 * configure: Regenerated. 1280 12812018-04-19 Jakub Jelinek <jakub@redhat.com> 1282 1283 * configure: Regenerated. 1284 12852018-04-18 Jonathan Wakely <jwakely@redhat.com> 1286 Jakub Jelinek <jakub@redhat.com> 1287 1288 PR libstdc++/85442 1289 * src/c++11/Makefile.am: Don't generate debuginfo again for 1290 cxx11-ios_failure-lt.s and cxx11-ios_failure.s files. 1291 * src/c++11/Makefile.in: Regenerate. 1292 12932018-04-18 Jonathan Wakely <jwakely@redhat.com> 1294 1295 PR libstdc++/84442 1296 * testsuite/30_threads/thread/cons/terminate.cc 1297 [!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit. 1298 12992018-04-18 David Malcolm <dmalcolm@redhat.com> 1300 1301 PR jit/85384 1302 * configure: Regenerate. 1303 13042018-04-16 Jonathan Wakely <jwakely@redhat.com> 1305 1306 * testsuite/experimental/filesystem/file_status/1.cc: Add 1307 -DUSE_FILESYSTEM_TS to dg-options. 1308 * testsuite/experimental/filesystem/iterators/directory_iterator.cc: 1309 Likewise. 1310 * testsuite/experimental/filesystem/iterators/pop.cc: Likewise. 1311 * testsuite/experimental/filesystem/iterators/ 1312 recursive_directory_iterator.cc: Likewise. 1313 * testsuite/experimental/filesystem/operations/absolute.cc: Likewise. 1314 * testsuite/experimental/filesystem/operations/canonical.cc: Likewise. 1315 * testsuite/experimental/filesystem/operations/copy.cc: Likewise. 1316 * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise. 1317 * testsuite/experimental/filesystem/operations/create_directories.cc: 1318 Likewise. 1319 * testsuite/experimental/filesystem/operations/create_directory.cc: 1320 Likewise. 1321 * testsuite/experimental/filesystem/operations/create_symlink.cc: 1322 Likewise. 1323 * testsuite/experimental/filesystem/operations/current_path.cc: 1324 Likewise. 1325 * testsuite/experimental/filesystem/operations/equivalent.cc: Likewise. 1326 * testsuite/experimental/filesystem/operations/exists.cc: Likewise. 1327 * testsuite/experimental/filesystem/operations/file_size.cc: Likewise. 1328 * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise. 1329 * testsuite/experimental/filesystem/operations/last_write_time.cc: 1330 Likewise. 1331 * testsuite/experimental/filesystem/operations/permissions.cc: 1332 Likewise. 1333 * testsuite/experimental/filesystem/operations/read_symlink.cc: 1334 Likewise. 1335 * testsuite/experimental/filesystem/operations/remove.cc: Likewise. 1336 * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise. 1337 * testsuite/experimental/filesystem/operations/status.cc: Likewise. 1338 * testsuite/experimental/filesystem/operations/temp_directory_path.cc: 1339 Likewise. 1340 * testsuite/experimental/filesystem/path/append/path.cc: Likewise. 1341 * testsuite/experimental/filesystem/path/assign/assign.cc: Likewise. 1342 * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise. 1343 * testsuite/experimental/filesystem/path/compare/compare.cc: Likewise. 1344 * testsuite/experimental/filesystem/path/compare/path.cc: Likewise. 1345 * testsuite/experimental/filesystem/path/compare/strings.cc: Likewise. 1346 * testsuite/experimental/filesystem/path/concat/path.cc: Likewise. 1347 * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise. 1348 * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise. 1349 * testsuite/experimental/filesystem/path/construct/default.cc: 1350 Likewise. 1351 * testsuite/experimental/filesystem/path/construct/locale.cc: Likewise. 1352 * testsuite/experimental/filesystem/path/construct/range.cc: Likewise. 1353 * testsuite/experimental/filesystem/path/construct/string_view.cc: 1354 Likewise. 1355 * testsuite/experimental/filesystem/path/decompose/extension.cc: 1356 Likewise. 1357 * testsuite/experimental/filesystem/path/decompose/filename.cc: 1358 Likewise. 1359 * testsuite/experimental/filesystem/path/decompose/parent_path.cc: 1360 Likewise. 1361 * testsuite/experimental/filesystem/path/decompose/relative_path.cc: 1362 Likewise. 1363 * testsuite/experimental/filesystem/path/decompose/root_directory.cc: 1364 Likewise. 1365 * testsuite/experimental/filesystem/path/decompose/root_name.cc: 1366 Likewise. 1367 * testsuite/experimental/filesystem/path/decompose/root_path.cc: 1368 Likewise. 1369 * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise. 1370 * testsuite/experimental/filesystem/path/generic/generic_string.cc: 1371 Likewise. 1372 * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise. 1373 * testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise. 1374 * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc: 1375 Likewise. 1376 * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc: 1377 Likewise. 1378 * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc: 1379 Likewise. 1380 * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc: 1381 Likewise. 1382 * testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise. 1383 * testsuite/experimental/filesystem/path/native/string.cc: Likewise. 1384 * testsuite/experimental/filesystem/path/nonmember/hash_value.cc: 1385 Likewise. 1386 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise. 1387 * testsuite/experimental/filesystem/path/query/has_extension.cc: 1388 Likewise. 1389 * testsuite/experimental/filesystem/path/query/has_filename.cc: 1390 Likewise. 1391 * testsuite/experimental/filesystem/path/query/has_parent_path.cc: 1392 Likewise. 1393 * testsuite/experimental/filesystem/path/query/has_relative_path.cc: 1394 Likewise. 1395 * testsuite/experimental/filesystem/path/query/has_root_directory.cc: 1396 Likewise. 1397 * testsuite/experimental/filesystem/path/query/has_root_name.cc: 1398 Likewise. 1399 * testsuite/experimental/filesystem/path/query/has_root_path.cc: 1400 Likewise. 1401 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise. 1402 * testsuite/experimental/filesystem/path/query/is_relative.cc: 1403 Likewise. 1404 14052018-04-13 Jonathan Wakely <jwakely@redhat.com> 1406 1407 * src/c++11/Makefile.am: Fix sed command. 1408 * src/c++11/Makefile.in: Regenerate. 1409 1410 * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to 1411 handle mangled names starting with double underscores on darwin. 1412 * src/c++11/Makefile.in: Regenerate. 1413 14142018-04-12 Jonathan Wakely <jwakely@redhat.com> 1415 1416 * src/c++11/Makefile.am: Fix comment. 1417 * src/c++11/Makefile.in: Regenerate. 1418 * src/c++11/cxx11-ios_failure.cc: Fix comment. 1419 * src/c++98/ios_failure.cc: Likewise. 1420 1421 * src/c++11/ios.cc: Remove redundant macro definition. 1422 14232018-04-11 Jonathan Wakely <jwakely@redhat.com> 1424 1425 * doc/xml/manual/abi.xml: Document header locations in recent 1426 releases. 1427 * doc/xml/manual/evolution.xml: Add API changes since GCC 5. 1428 * doc/xml/manual/spine.xml: Update copyright years. 1429 * doc/xml/manual/strings.xml: Adjust tolower example to avoid 1430 undefined behaviour. 1431 * doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests. 1432 * doc/html/*: Regenerate. 1433 14342018-04-10 Jonathan Wakely <jwakely@redhat.com> 1435 1436 * doc/xml/faq.xml: Update links to archived copy of SGI STL docs. 1437 * doc/xml/manual/backwards_compatibility.xml: Likewise. 1438 * doc/xml/manual/containers.xml: Likewise. 1439 * doc/xml/manual/debug_mode.xml: Likewise. 1440 * doc/xml/manual/extensions.xml: Likewise. 1441 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. 1442 * doc/xml/manual/using.xml: Likewise. 1443 * doc/xml/manual/utilities.xml: Likewise. 1444 1445 PR libstdc++/85222 1446 * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for 1447 cxx11-ios_failure.cc to rewrite type info for __ios_failure. 1448 * src/c++11/Makefile.in: Regenerate. 1449 * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info): 1450 New types. 1451 [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here. 1452 * src/c++11/ios.cc (__throw_ios_failure): Remove definition. 1453 * src/c++98/ios_failure.cc (__construct_ios_failure) 1454 (__destroy_ios_failure, is_ios_failure_handler): New functions. 1455 [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here. 1456 * testsuite/27_io/ios_base/failure/dual_abi.cc: New. 1457 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to 1458 handler types, to always catch std::ios_base::failure. 1459 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise. 1460 * testsuite/27_io/basic_istream/extractors_arithmetic/char/ 1461 exceptions_failbit.cc: Likewise. 1462 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/ 1463 exceptions_failbit.cc: Likewise. 1464 * testsuite/27_io/basic_istream/extractors_other/char/ 1465 exceptions_null.cc: Likewise. 1466 * testsuite/27_io/basic_istream/extractors_other/wchar_t/ 1467 exceptions_null.cc: Likewise. 1468 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise. 1469 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise. 1470 * testsuite/27_io/basic_ostream/inserters_other/char/ 1471 exceptions_null.cc: Likewise. 1472 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ 1473 exceptions_null.cc: Likewise. 1474 * testsuite/27_io/ios_base/storage/2.cc: Likewise. 1475 14762018-04-05 Jonathan Wakely <jwakely@redhat.com> 1477 1478 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify 1479 __get calls to avoid ADL and avoid ambiguity due to Clang bug. 1480 14812018-04-03 Jonathan Wakely <jwakely@redhat.com> 1482 1483 PR libstdc++/85183 1484 * include/std/variant (_Move_assign_base::operator=): Fix incorrect 1485 value categories. 1486 * testsuite/20_util/variant/85183.cc: New. 1487 14882018-03-26 Jonathan Wakely <jwakely@redhat.com> 1489 1490 * include/std/variant (__get): Qualify calls to avoid ADL. 1491 (__select_index): Adjust whitespace. 1492 (variant): Add using-declaration to workaround Clang bug. 1493 14942018-03-22 Jonathan Wakely <jwakely@redhat.com> 1495 1496 PR libstdc++/85040 1497 * include/bits/stl_function.h (greater::__not_overloaded) 1498 (less::__not_overloaded, greater_equal::__not_overloaded) 1499 (less_equal::__not_overloaded): Fix ambiguous specializations. 1500 * testsuite/20_util/function_objects/comparisons_pointer.cc: Add 1501 tests for type with overloaded operators. 1502 15032018-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1504 1505 PR libstdc++/77691 1506 * testsuite/experimental/memory_resource/resource_adaptor.cc: 1507 xfail execution on 32-bit Solaris/x86. 1508 15092018-03-21 Jonathan Wakely <jwakely@redhat.com> 1510 1511 * testsuite/20_util/function_objects/comparisons_pointer.cc: Use 1512 VERIFY instead of assert. 1513 * testsuite/20_util/hash/84998.cc: New test. 1514 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New 1515 copy of test adjusted for Debug Mode. 1516 * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run 1517 test in Debug Mode. 1518 15192018-03-20 François Dumont <fdumont@gcc.gnu.org> 1520 1521 PR libstdc++/84998 1522 * include/bits/stl_bvector.h: Fix std::hash friend declaration. 1523 * include/std/bitset: Likewise. 1524 * include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend 1525 declaration. 1526 * include/bits/stl_multimap.h (std::multimap<>): Likewise. 1527 * include/bits/stl_multiset.h (std::multiset<>): Likewise. 1528 * include/bits/stl_set.h (std::set<>): Likewise. 1529 * include/bits/unordered_map.h (std::unordered_map<>): Fix 1530 _Hash_merge_helper friend declaration. 1531 (std::unordered_multimap<>): Likewise. 1532 * include/bits/unordered_set.h (std::unordered_set<>): Likewise. 1533 (std::unordered_multiset<>): Likewise. 1534 15352018-03-19 Gerald Pfeifer <gerald@pfeifer.com> 1536 1537 * doc/xml/api.xml: www.fsf.org has moved to https. Also omit 1538 trailing slash for domain level link. 1539 * doc/xml/faq.xml: Ditto. 1540 * doc/xml/manual/appendix_free.xml (software): Ditto. 1541 * doc/xml/manual/intro.xml: Ditto. 1542 * doc/xml/manual/spine.xml: Ditto. 1543 * doc/xml/spine.xml: Ditto. 1544 15452018-03-19 Gerald Pfeifer <gerald@pfeifer.com> 1546 1547 * doc/xml/manual/documentation_hacking.xml: Adjust link to 1548 docbook.org. 1549 15502018-03-17 Jonathan Wakely <jwakely@redhat.com> 1551 1552 * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust 1553 to compile as C++98. 1554 15552018-03-14 Jonathan Wakely <jwakely@redhat.com> 1556 1557 PR libstdc++/78420 1558 * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>) 1559 (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations 1560 to ensure total order for pointers. 1561 (greater<void>, less<void>, greater_equal<void>, less_equal<void>): 1562 Add operator() overloads for pointer arguments and make generic 1563 overloads dispatch to new _S_cmp functions when comparisons would 1564 use built-in operators for pointers. 1565 * testsuite/20_util/function_objects/comparisons_pointer.cc: New. 1566 15672018-03-12 Jonathan Wakely <jwakely@redhat.com> 1568 1569 PR libstdc++/84773 1570 PR libstdc++/83662 1571 * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32. 1572 * configure: Regenerate. 1573 * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC] 1574 (aligned_alloc): Add using-declaration. 1575 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test. 1576 15772018-03-09 François Dumont <fdumont@gcc.gnu.org> 1578 1579 * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary): 1580 Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers 1581 registration. 1582 15832018-03-09 Jonathan Wakely <jwakely@redhat.com> 1584 1585 PR libstdc++/84769 1586 * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>): 1587 Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>. 1588 1589 src/filesystem/ops.cc (create_dir): Pass error_code to is_directory. 1590 src/filesystem/std-ops.cc (create_dir): Likewise. 1591 15922018-03-08 François Dumont <fdumont@gcc.gnu.org> 1593 1594 * python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New. 1595 (StdListIteratorPrinter): Inherit from latter. 1596 (StdFwdListIteratorPrinter): New, inherit from latter. 1597 (StdDebugIteratorPrinter.to_string): Use non-debug iterator printer 1598 when iterator has no associated container. 1599 (build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and 1600 __gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace 1601 registrations. 1602 * testsuite/libstdc++-prettyprinters/debug.cc: Adapt. 1603 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt. 1604 16052018-03-06 Ville Voutilainen <ville.voutilainen@gmail.com> 1606 1607 PR libstdc++/84601 1608 * include/std/optional (_Optional_payload): Split into multiple 1609 specializations that can handle different cases of trivial or 1610 non-trivial assignment operators. 1611 * testsuite/20_util/optional/84601.cc: New. 1612 * testsuite/20_util/optional/cons/value_neg.cc: Adjust. 1613 16142018-03-02 Jonathan Wakely <jwakely@redhat.com> 1615 1616 PR libstdc++/84671 1617 * include/bits/parse_numbers.h (_Number_help): Add partial 1618 specialization to handle digit separators. Adjust partial 1619 specialization for recursion temrination to require _Pow == 1ULL. 1620 * testsuite/20_util/duration/literals/84671.cc: New 1621 16222018-02-27 Ville Voutilainen <ville.voutilainen@gmail.com> 1623 1624 Implement the missing bits of LWG 2769 1625 * include/std/any (any_cast(const any&)): Add static_assert. 1626 (any_cast(any&)): Likewise. 1627 (any_cast(any&&)): Likewise, and remove the handling 1628 for copyable-but-not-movable type. 1629 * testsuite/20_util/any/misc/any_cast.cc: Adjust. 1630 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and 1631 add new tests. 1632 16332018-02-23 Jonathan Wakely <jwakely@redhat.com> 1634 1635 PR libstdc++/84532 1636 * include/std/thread (thread::__make_invoker): Construct tuple 1637 directly instead of using make_tuple. 1638 * testsuite/30_threads/async/84532.cc: New. 1639 * testsuite/30_threads/thread/84532.cc: New. 1640 16412018-02-20 François Dumont <fdumont@gcc.gnu.org> 1642 1643 * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION] 1644 (template<> __aligned_buffer): Define as __aligned_membuf alias. 1645 16462018-02-19 Igor Tsimbalist <igor.v.tsimbalist@intel.com> 1647 1648 PR target/84148 1649 * configure: Regenerate. 1650 16512018-02-15 Jonathan Wakely <jwakely@redhat.com> 1652 1653 PR libstdc++/81797 1654 * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define. 1655 * configure: Regenerate. 1656 * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when 1657 defined. 1658 * include/Makefile.in: Regenerate. 1659 16602018-01-29 Jonathan Wakely <jwakely@redhat.com> 1661 1662 PR libstdc++/83833 1663 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: 1664 Add -ffloat-store to options for m68k and ia32. 1665 1666 * doc/xml/faq.xml: Update copyright years. 1667 * doc/html/*: Regenerate. 1668 1669 PR libstdc++/83658 1670 * include/std/any (any::__do_emplace): Only set _M_manager after 1671 constructing the contained object. 1672 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line. 1673 * testsuite/20_util/any/modifiers/83658.cc: New test. 1674 16752018-01-25 Jonathan Wakely <jwakely@redhat.com> 1676 1677 PR libstdc++/81076 1678 * include/c_global/cstddef (__byte_operand): Define primary template. 1679 * testsuite/18_support/byte/81076.cc: New test. 1680 16812018-01-19 Christophe Lyon <christophe.lyon@linaro.org> 1682 1683 * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix 1684 dg-options and dg-add-options order. 1685 * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise. 1686 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: 1687 Likewise. 1688 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise. 1689 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: 1690 Likewise. 1691 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: 1692 Likewise. 1693 * testsuite/special_functions/03_beta/check_nan.cc: Likewise. 1694 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: 1695 Likewise. 1696 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: 1697 Likewise. 1698 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: 1699 Likewise. 1700 * testsuite/special_functions/06_comp_ellint_3/pr66689.cc: 1701 Likewise. 1702 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: 1703 Likewise. 1704 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: 1705 Likewise. 1706 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: 1707 Likewise. 1708 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: 1709 Likewise. 1710 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise. 1711 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise. 1712 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise. 1713 * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise. 1714 * testsuite/special_functions/14_expint/check_nan.cc: Likewise. 1715 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise. 1716 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise. 1717 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise. 1718 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: 1719 Likewise. 1720 * testsuite/special_functions/19_sph_bessel/check_nan.cc: 1721 Likewise. 1722 * testsuite/special_functions/20_sph_legendre/check_nan.cc: 1723 Likewise. 1724 * testsuite/special_functions/21_sph_neumann/check_nan.cc: 1725 Likewise. 1726 17272018-01-18 Uros Bizjak <ubizjak@gmail.com> 1728 1729 * configure.ac (AC_CHECK_HEADERS): Add linux/types.h. Conditionally 1730 include linux/types.h when checking linux/random.h header. 1731 * config.h.in: Regenerate. 1732 * configure: Ditto. 1733 * src/c++11/random.cc: Conditionally include linux/types.h. 1734 17352018-01-16 Eric Botcazou <ebotcazou@adacore.com> 1736 1737 * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux. 1738 17392018-01-16 Jonathan Wakely <jwakely@redhat.com> 1740 1741 PR libstdc++/83834 1742 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard 1743 pattern with exact match for std::cerr. 1744 17452018-01-15 Jonathan Wakely <jwakely@redhat.com> 1746 1747 PR libstdc++/83833 1748 * include/bits/random.h (chi_squared_distribution::param): Update 1749 gamma distribution parameter. 1750 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New 1751 test. 1752 1753 PR libstdc++/83830 1754 * include/std/type_traits (has_unique_object_representations_v): Add 1755 variable template. 1756 * testsuite/20_util/has_unique_object_representations/value.cc: Check 1757 variable template. 1758 17592018-01-15 Ville Voutilainen <ville.voutilainen@gmail.com> 1760 1761 Make optional conditionally 1762 trivially_{copy,move}_{constructible,assignable} 1763 * include/std/optional (_Optional_payload): Fix the comment in 1764 the class head and turn into a primary and one specialization. 1765 (_Optional_payload::_M_engaged): Strike the NSDMI. 1766 (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)): 1767 New. 1768 (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)): 1769 Likewise. 1770 (_Optional_payload<_Tp, false>::_M_get): Likewise. 1771 (_Optional_payload<_Tp, false>::_M_reset): Likewise. 1772 (_Optional_base_impl): Likewise. 1773 (_Optional_base): Turn into a primary and three specializations. 1774 (optional(nullopt)): Change the base init. 1775 * testsuite/20_util/optional/assignment/8.cc: New. 1776 * testsuite/20_util/optional/cons/trivial.cc: Likewise. 1777 * testsuite/20_util/optional/cons/value_neg.cc: Adjust. 1778 17792018-01-15 Jonathan Wakely <jwakely@redhat.com> 1780 1781 PR libstdc++/80276 1782 * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New. 1783 (get_template_arg_list): New. 1784 (StdVariantPrinter._template_args): Remove, use get_template_arg_list 1785 instead. 1786 (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead 1787 of strings and regular expressions. 1788 (add_one_template_type_printer): Adapt to new TemplateTypePrinter. 1789 (FilteringTypePrinter): Add docstring. Match using startswith. Use 1790 strip_inline_namespaces instead of strip_versioned_namespace. 1791 (add_one_type_printer): Prepend namespace to match argument. 1792 (register_type_printers): Add type printers for char16_t and char32_t 1793 string types and for types using cxx11 ABI. Update calls to 1794 add_one_template_type_printer to provide default argument dicts. 1795 * testsuite/libstdc++-prettyprinters/80276.cc: New test. 1796 * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for 1797 basic_string<unsigned char> and basic_string<signed char>. 1798 * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc 1799 to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI. 1800 18012018-01-14 Andreas Schwab <schwab@linux-m68k.org> 1802 1803 PR libstdc++/81092 1804 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update. 1805 18062018-01-13 Tim Shen <timshen@google.com> 1807 1808 PR libstdc++/83601 1809 * include/bits/regex.tcc (regex_replace): Fix escaping in sed. 1810 * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests. 1811 * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests. 1812 18132018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1814 1815 PR libstdc++/64054 1816 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc: 1817 Remove dg-xfail-run-if. 1818 18192018-01-10 François Dumont <fdumont@gcc.gnu.org> 1820 1821 * include/bits/forward_list.h 1822 (_Fwd_list_node_base(_Fwd_list_node_base&&)): New. 1823 (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New. 1824 (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete. 1825 (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise. 1826 (_Fwd_list_impl()): Add noexcept qualification. 1827 (_Fwd_list_impl(const _Node_alloc_type&)): Delete. 1828 (_Fwd_list_impl(_Fwd_list_impl&&)): New, default. 1829 (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New. 1830 (_Fwd_list_base()): Default. 1831 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New. 1832 (_Fwd_list_base(_Fwd_list_base&&)): Default. 1833 (forward_list<>()): Default. 1834 (forward_list<>(forward_list&&)): Default. 1835 (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New. 1836 (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New. 1837 (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters. 1838 * include/bits/forward_list.tcc 1839 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use 1840 _M_impl._M_head move assignment. 1841 (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise. 1842 * testsuite/23_containers/forward_list/allocator/default_init.cc: New. 1843 18442018-01-09 Jonathan Wakely <jwakely@redhat.com> 1845 1846 PR libstdc++/80276 1847 * python/libstdcxx/v6/printers.py (SharedPointerPrinter) 1848 (UniquePointerPrinter): Print correct template argument, not type of 1849 the pointer. 1850 (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup 1851 a type. 1852 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of 1853 array type. 1854 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and 1855 weak_ptr of array types. 1856 18572018-01-09 François Dumont <fdumont@gcc.gnu.org> 1858 1859 PR libstdc++/83709 1860 * include/bits/hashtable_policy.h 1861 (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if 1862 __first != __last. 1863 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New. 1864 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)): 1865 Add false_type parameter. 1866 (_Insert_base::insert): Adapt. 1867 * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)): 1868 Adapt. 1869 (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)): 1870 Add __n_elt parameter, defaulted to 1. 1871 (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash 1872 policy _M_need_rehash. 1873 (_Hashtable::_M_merge_unique): Pass target number of elements to add to 1874 produce only 1 rehash if necessary. 1875 * testsuite/23_containers/unordered_map/insert/83709.cc: New. 1876 * testsuite/23_containers/unordered_set/insert/83709.cc: New. 1877 18782018-01-09 Juraj Oršulić <juraj.orsulic@fer.hr> 1879 Jonathan Wakely <jwakely@redhat.com> 1880 1881 PR libstdc++/59253 (partial) 1882 * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator 1883 type for pointer stored by shared_ptr, weak_ptr and unique_ptr. 1884 (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as 1885 children. 1886 * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output 1887 of unique_ptr printer. 1888 * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected 1889 output of shared_ptr printer. 1890 18912018-01-05 Jonathan Wakely <jwakely@redhat.com> 1892 1893 PR libstdc++/83626 1894 * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove 1895 unnecessary symlink_status call. 1896 (remove_all(const path&, error_code&)): Use filesystem::remove. 1897 * src/filesystem/std-ops.cc: Likewise. 1898 1899 PR libstdc++/83279 1900 * src/filesystem/std-ops.cc (do_copy_file): Use non-null offset with 1901 sendfile. 1902 1903 PR libstdc++/83626 1904 * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not 1905 report an error for ENOENT. 1906 (remove_all(const path&)): Fix type of result variable. 1907 (remove_all(const path&, error_code&)): Use non-throwing increment 1908 for directory iterator. Call POSIX remove directly to avoid redundant 1909 calls to symlink_status. Do not report errors for ENOENT. 1910 * src/filesystem/std-ops.cc: Likewise. 1911 * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing 1912 overload. 1913 * testsuite/experimental/filesystem/operations/remove_all.cc: 1914 Likewise. 1915 19162018-01-04 Jonathan Wakely <jwakely@redhat.com> 1917 1918 PR libstdc++/83626 1919 * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove 1920 redundant call to ec.clear(). 1921 (remove_all(const path&, error_code&))): Do not return an error for 1922 non-existent paths. 1923 * src/filesystem/std-ops.cc: Likewise. 1924 * testsuite/27_io/filesystem/operations/remove.cc: New test. 1925 * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected 1926 results for non-existent paths. 1927 * testsuite/experimental/filesystem/operations/remove.cc: New test. 1928 * testsuite/experimental/filesystem/operations/remove_all.cc: Fix 1929 expected results for non-existent paths. 1930 1931 * include/bits/fs_ops.h (exists(const path&, error_code&))): Only 1932 check status_known once. 1933 * include/experimental/bits/fs_ops.h: Likewise. 1934 1935 PR libstdc++/83607 1936 * include/std/functional (__is_byte_like): New trait. 1937 (__is_std_equal_to): Remove. 1938 (__boyer_moore_base_t): Use __is_byte_like instead of 1939 __is_std_equal_to. 1940 * include/experimental/functional (__is_std_equal_to): Remove. 1941 (__boyer_moore_base_t): Use __is_byte_like instead of 1942 __is_std_equal_to. 1943 * testsuite/20_util/function_objects/83607.cc: New test. 1944 19452018-01-03 Ville Voutilainen <ville.voutilainen@gmail.com> 1946 1947 Protect optional's deduction guide with the feature macro 1948 * include/std/optional: Use the feature macro. 1949 19502018-01-03 Jakub Jelinek <jakub@redhat.com> 1951 1952 Update copyright years. 1953 1954Copyright (C) 2018 Free Software Foundation, Inc. 1955 1956Copying and distribution of this file, with or without modification, 1957are permitted in any medium without royalty provided the copyright 1958notice and this notice are preserved. 1959