12019-02-22 Jonathan Wakely <jwakely@redhat.com> 2 3 PR libstdc++/89446 4 * include/bits/char_traits.h (__constant_char_array): Check index is 5 in range before dereferencing. 6 * testsuite/21_strings/basic_string_view/operators/char/89446.cc: 7 New test. 8 92018-12-24 Iain Sandoe <iain@sandoe.co.uk> 10 11 Backport from mainline 12 2018-12-06 Iain Sandoe <iain@sandoe.co.uk> 13 14 * scripts/make_exports.pl (check names): Don’t try to export 15 construction vtable symbols. 16 172018-12-24 Iain Sandoe <iain@sandoe.co.uk> 18 19 Backport from mainline 20 2018-12-06 Jonathan Wakely <jwakely@redhat.com> 21 Iain Sandoe <iain@sandoe.co.uk> 22 23 PR libstdc++/64883 24 * testsuite/17_intro/headers/c++1998/all_attributes.cc: Don't test 25 always_inline on Darwin. 26 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Likewise. 27 * testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise. 28 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Likewise. 29 * testsuite/17_intro/headers/c++2020/all_attributes.cc: Likewise. 30 312018-12-24 Iain Sandoe <iain@sandoe.co.uk> 32 33 Backport from mainline 34 2018-08-25 Iain Sandoe <iain@sandoe.co.uk> 35 36 PR libstdc++/70694 37 * configure.host (OPT_LDFLAGS): Don't append 38 -fvisibility-inlines-hidden for newer Darwin. 39 402018-12-06 Release Manager 41 42 * GCC 7.4.0 released. 43 442018-11-28 François Dumont <fdumont@gcc.gnu.org> 45 46 PR libstdc++/88199 47 * include/bits/hashtable.h 48 (_Hashtable<>::_M_move_assign(_Hashtable&&, false_type)): Deallocate 49 former buckets after assignment. 50 * testsuite/23_containers/unordered_set/allocator/move_assign.cc 51 (test03): New. 52 532018-10-31 Jonathan Wakely <jwakely@redhat.com> 54 55 Backport from mainline 56 2018-10-31 Jonathan Wakely <jwakely@redhat.com> 57 58 PR libstdc++/87822 59 * include/bits/stl_pair.h (__pair_base): Change to class template. 60 (pair): Make base class type depend on template parameters. 61 * testsuite/20_util/pair/87822.cc: New test. 62 632018-10-25 Jonathan Wakely <jwakely@redhat.com> 64 65 PR libstdc++/87749 66 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] 67 (basic_string::operator=(basic_string&&)): For short strings copy the 68 buffer inline. Only fall back to using assign(const basic_string&) to 69 do a deep copy when reallocation is needed. 70 * testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc: 71 New test. 72 * testsuite/21_strings/basic_string/modifiers/assign/char/ 73 move_assign_optim.cc: New test. 74 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc: 75 New test. 76 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/ 77 move_assign_optim.cc: New test. 78 792018-10-23 Jonathan Wakely <jwakely@redhat.com> 80 81 PR libstdc++/87704 82 * include/bits/unique_ptr.h (unique_ptr::unique_ptr(nullptr_t)): Do 83 not delegate to default constructor. 84 (unique_ptr<T[], D>::unique_ptr(nullptr_t)): Likewise. 85 * testsuite/20_util/unique_ptr/cons/incomplete.cc: New test. 86 872018-10-22 Jonathan Wakely <jwakely@redhat.com> 88 89 Backport from mainline 90 2017-09-12 Jonathan Wakely <jwakely@redhat.com> 91 92 PR libstdc++/79433 93 * include/Makefile.am: Remove <bits/c++14_warning.h>. 94 * include/Makefile.in: Regenerate. 95 * include/bits/c++14_warning.h: Remove. 96 * include/experimental/algorithm: Do not include <c++14_warning.h>. 97 * include/experimental/any: Likewise. 98 * include/experimental/array: Likewise. 99 * include/experimental/bits/erase_if.h: Likewise. 100 * include/experimental/bits/lfts_config.h: Likewise. 101 * include/experimental/bits/shared_ptr.h: Likewise. 102 * include/experimental/bits/string_view.tcc: Likewise. 103 * include/experimental/chrono: Likewise. 104 * include/experimental/deque: Likewise. 105 * include/experimental/filesystem: Do not include <c++0x_warning.h>. 106 * include/experimental/forward_list: Do not include <c++14_warning.h>. 107 * include/experimental/functional: Likewise. 108 * include/experimental/iterator: Likewise. 109 * include/experimental/list: Likewise. 110 * include/experimental/map: Likewise. 111 * include/experimental/memory: Likewise. 112 * include/experimental/numeric: Likewise. 113 * include/experimental/optional: Likewise. 114 * include/experimental/propagate_const: Likewise. 115 * include/experimental/ratio: Likewise. 116 * include/experimental/regex: Likewise. 117 * include/experimental/set: Likewise. 118 * include/experimental/string: Likewise. 119 * include/experimental/string_view: Likewise. 120 * include/experimental/system_error: Likewise. 121 * include/experimental/tuple: Likewise. 122 * include/experimental/type_traits: Likewise. 123 * include/experimental/unordered_map: Likewise. 124 * include/experimental/unordered_set: Likewise. 125 * include/experimental/vector: Likewise. 126 * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error 127 line number. 128 * testsuite/experimental/array/neg.cc: Likewise. 129 * testsuite/experimental/propagate_const/assignment/move_neg.cc: 130 Likewise. 131 * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise. 132 * testsuite/experimental/propagate_const/requirements2.cc: Likewise. 133 * testsuite/experimental/propagate_const/requirements3.cc: Likewise. 134 * testsuite/experimental/propagate_const/requirements4.cc: Likewise. 135 * testsuite/experimental/propagate_const/requirements5.cc: Likewise. 136 1372018-10-18 Jonathan Wakely <jwakely@redhat.com> 138 139 Backport from mainline 140 2018-10-18 Jonathan Wakely <jwakely@redhat.com> 141 142 PR libstdc++/87641 143 * include/bits/valarray_array.h (__valarray_sum): Use first element 144 to initialize accumulator instead of value-initializing it. 145 * testsuite/26_numerics/valarray/87641.cc: New test. 146 1472018-10-15 Jonathan Wakely <jwakely@redhat.com> 148 149 * testsuite/22_locale/numpunct/members/char/3.cc: Adjust test to 150 account for change to glibc it_IT localedata (glibc bz#10797). 151 1522018-10-12 Jonathan Wakely <jwakely@redhat.com> 153 154 Backport from mainline 155 2018-07-31 Jonathan Wakely <jwakely@redhat.com> 156 157 PR libstdc++/86751 158 * include/bits/stl_pair.h (__pair_base): New class with deleted copy 159 assignment operator. 160 (pair): Derive from __pair_base. 161 (pair::operator=): Remove deleted overload. 162 * python/libstdcxx/v6/printers.py (StdPairPrinter): New pretty printer 163 so that new base class isn't shown in GDB. 164 * testsuite/20_util/pair/86751.cc: New test. 165 * testsuite/20_util/pair/ref_assign.cc: New test. 166 1672018-10-12 Jonathan Wakely <jwakely@redhat.com> 168 169 Backport from mainline 170 2018-09-03 Jonathan Wakely <jwakely@redhat.com> 171 172 PR libstdc++/78595 173 * include/bits/stl_map.h (map::insert(_Pair&&)) 174 (map::insert(const_iterator, _Pair&&)): Do emplace instead of insert. 175 * include/bits/stl_multimap.h (multimap::insert(_Pair&&)) 176 (multimap::insert(const_iterator, _Pair&&)): Likewise. 177 * include/bits/unordered_map.h (unordered_map::insert(_Pair&&)) 178 (unordered_map::insert(const_iterator, _Pair&&)) 179 (unordered_multimap::insert(_Pair&&)) 180 (unordered_multimap::insert(const_iterator, _Pair&&)): Likewise. 181 * include/std/type_traits (__enable_if_t): Define for C++11. 182 * testsuite/23_containers/map/modifiers/insert/78595.cc: New test. 183 * testsuite/23_containers/multimap/modifiers/insert/78595.cc: New test. 184 * testsuite/23_containers/unordered_map/modifiers/78595.cc: New test. 185 * testsuite/23_containers/unordered_multimap/modifiers/78595.cc: New 186 test. 187 1882018-10-12 Jonathan Wakely <jwakely@redhat.com> 189 190 Backport from mainline 191 2018-08-30 Jonathan Wakely <jwakely@redhat.com> 192 193 * include/ext/pointer.h (_Pointer_adapter): Define operators for 194 pointer arithmetic using long long offsets. 195 * testsuite/ext/ext_pointer/1.cc: Test pointer arithmetic using 196 long long values. 197 1982018-10-12 Jonathan Wakely <jwakely@redhat.com> 199 200 Backport from mainline 201 2018-08-23 Jonathan Wakely <jwakely@redhat.com> 202 203 * testsuite/21_strings/basic_string/init-list.cc: 204 Require cxx11-abi. 205 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc: 206 Likewise. 207 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc: 208 Likewise. 209 210 Backport from mainline 211 2018-08-22 Jonathan Wakely <jwakely@redhat.com> 212 213 PR libstdc++/87061 214 * include/experimental/regex [!_GLIBCXX_USE_CXX11_ABI] 215 (experimental::pmr::match_results, experimental::pmr::cmatch) 216 (experimental::pmr::smatch, experimental::pmr::wcmatch) 217 (experimental::pmr::wsmatch): Do not declare for gcc4-compatible ABI, 218 because COW strings don't support C++11 allocator model. 219 * include/experimental/string [!_GLIBCXX_USE_CXX11_ABI] 220 (experimental::pmr::basic_string, experimental::pmr::string) 221 (experimental::pmr::u16string, experimental::pmr::u32string) 222 (experimental::pmr::wstring): Likewise. 223 224 Backport from mainline 225 2018-08-15 Jonathan Wakely <jwakely@redhat.com> 226 227 * include/experimental/regex: Remove begin/end macros for namespace. 228 * include/experimental/string: Likewise. 229 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc: 230 New test. 231 * testsuite/experimental/polymorphic_allocator/ 232 pmr_typedefs_forward_list.cc: New test. 233 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc: 234 New test. 235 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc: 236 New test. 237 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc: 238 New test. 239 * testsuite/experimental/polymorphic_allocator/ 240 pmr_typedefs_multimap.cc: New test. 241 * testsuite/experimental/polymorphic_allocator/ 242 pmr_typedefs_multiset.cc: New test. 243 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc: 244 New test. 245 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc: 246 New test. 247 * testsuite/experimental/polymorphic_allocator/ 248 pmr_typedefs_unordered_map.cc: New test. 249 * testsuite/experimental/polymorphic_allocator/ 250 pmr_typedefs_unordered_multimap.cc: New test. 251 * testsuite/experimental/polymorphic_allocator/ 252 pmr_typedefs_unordered_multiset.cc: New test. 253 * testsuite/experimental/polymorphic_allocator/ 254 pmr_typedefs_unordered_set.cc: New test. 255 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc: 256 New test. 257 2582018-10-12 Jonathan Wakely <jwakely@redhat.com> 259 260 Backport from mainline 261 2018-07-24 Jonathan Wakely <jwakely@redhat.com> 262 263 PR libstdc++/70966 264 * include/experimental/memory_resource (__get_default_resource): Use 265 placement new to create an object with dynamic storage duration. 266 267 Backport from mainline 268 2018-06-20 Jonathan Wakely <jwakely@redhat.com> 269 270 PR libstdc++/70966 271 * include/experimental/memory_resource (__resource_adaptor_imp): Add 272 static assertions to enforce requirements on pointer types. 273 (__resource_adaptor_imp::get_allocator()): Add noexcept. 274 (new_delete_resource, null_memory_resource): Return address of an 275 object with dynamic storage duration. 276 (__null_memory_resource): Remove. 277 * testsuite/experimental/memory_resource/70966.cc: New. 278 2792018-10-12 Jonathan Wakely <jwakely@redhat.com> 280 281 PR libstdc++/77854 282 * doc/xml/manual/status_cxx1998.xml: Document size_type and 283 difference_type for containers. 284 * doc/html/*: Regenerate. 285 2862018-10-08 Joseph Myers <joseph@codesourcery.com> 287 288 Backport from mainline 289 2018-10-02 Joseph Myers <joseph@codesourcery.com> 290 291 * testsuite/lib/libstdc++.exp (libstdc++_init): Use 292 -fno-show-column in default cxxflags. 293 2942018-10-08 Jonathan Wakely <jwakely@redhat.com> 295 296 Backport from mainline 297 2018-10-08 Jonathan Wakely <jwakely@redhat.com> 298 299 PR libstdc++/87538 300 * include/std/functional (_Not_fn::operator()): Check value of 301 __is_nothrow_invocable as well. 302 * testsuite/20_util/function_objects/not_fn/87538.cc: New test. 303 * testsuite/experimental/functional/87538.cc: New test. 304 3052018-08-13 Jonathan Wakely <jwakely@redhat.com> 306 307 Revert 308 2018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de> 309 310 PR target/85904 311 * configure.ac: Define HAVE_ALIGNED_ALLOC if building for 312 Newlib. 313 * configure: Regenerate. 314 3152018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de> 316 317 Backport from mainline 318 2018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de> 319 320 PR target/85904 321 * configure.ac: Define HAVE_ALIGNED_ALLOC if building for 322 Newlib. 323 * configure: Regenerate. 324 3252018-08-08 Jonathan Wakely <jwakely@redhat.com> 326 327 * libsupc++/new_opa.cc (aligned_alloc): Declare inside namespace to 328 avoid clashing with an ::aligned_alloc function that was not detected 329 by configure. 330 331 * doc/xml/manual/using.xml: Remove empty table cell. 332 * doc/html/*: Regenerate. 333 334 * doc/xml/manual/using.xml: Add missing header to table and fix typo. 335 Remove C++17 and C++2a headers not present on gcc-7-branch. 336 * doc/html/*: Regenerate. 337 3382018-08-07 Jonathan Wakely <jwakely@redhat.com> 339 340 Backport from mainline 341 2018-06-27 Jonathan Wakely <jwakely@redhat.com> 342 343 PR libstdc++/86138 344 * include/bits/basic_string.tcc: [_GLIBCXX_EXTERN_TEMPLATE < 0] 345 Declare explicit instantiations of COW empty reps and I/O functions. 346 347 Backport from mainline 348 2018-05-08 Jonathan Wakely <jwakely@redhat.com> 349 350 PR libstdc++/85672 351 * include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry 352 to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero. 353 * include/Makefile.in: Regenerate. 354 * include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition 355 within conditional block. 356 357 Backport from mainline 358 2018-05-01 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com> 359 360 PR libstdc++/84654 361 * acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128. 362 * config.h.in: Remove references to _GLIBCXX_USE_FLOAT128. 363 * configure: Regenerate. 364 * include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128 365 based on ENABLE_FLOAT128. 366 * include/Makefile.in: Regenerate. 367 * include/bits/c++config: Define _GLIBCXX_USE_FLOAT128. 368 [!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine 369 _GLIBCXX_USE_FLOAT128. 370 371 Backport from mainline 372 2017-06-17 Jonathan Wakely <jwakely@redhat.com> 373 374 PR libstdc++/80893 375 * testsuite/23_containers/vector/bool/80893.cc: Add { target c++11 }. 376 377 Backport from mainline 378 2017-05-31 Jonathan Wakely <jwakely@redhat.com> 379 380 PR libstdc++/80893 381 * include/bits/stl_bvector.h (vector<bool>::_M_initialize): Avoid 382 null pointer dereference when size is zero. 383 * testsuite/23_containers/vector/bool/80893.cc: New. 384 * testsuite/util/testsuite_allocator.h (PointerBase::PointerBase): 385 Add non-explicit constructor from nullptr. 386 (PointerBase::derived() const): Add const-qualified overload. 387 388 Backport from mainline 389 2017-12-14 Jonathan Wakely <jwakely@redhat.com> 390 391 PR libstdc++/68519 392 * include/std/condition_variable (condition_variable::wait_for): 393 Convert duration to native clock's duration before addition. 394 * testsuite/30_threads/condition_variable/members/68519.cc: New test. 395 396 Backport from mainline 397 2018-06-25 Jonathan Wakely <jwakely@redhat.com> 398 399 PR libstdc++/86292 400 * include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>): 401 Add try-catch block. 402 * testsuite/23_containers/vector/cons/86292.cc: New. 403 404 Backport from mainline 405 2018-07-31 Jonathan Wakely <jwakely@redhat.com> 406 407 * doc/xml/manual/test.xml: Improve documentation on writing tests for 408 newer standards. 409 * doc/xml/manual/using.xml: Document all headers for C++11 and later. 410 * doc/html/*: Regenerate. 411 412 Backport from mainline 413 2018-08-03 Jonathan Wakely <jwakely@redhat.com> 414 415 * src/c++11/system_error.cc 416 (system_error_category::default_error_condition): Add workaround for 417 ENOTEMPTY and EEXIST having the same value on AIX. 418 * testsuite/19_diagnostics/error_category/system_category.cc: Add 419 extra testcases for EDOM, EILSEQ, ERANGE, EEXIST and ENOTEMPTY. 420 421 Backport from mainline 422 2018-08-01 Jonathan Wakely <jwakely@redhat.com> 423 424 PR libstdc++/60555 425 * src/c++11/system_error.cc 426 (system_error_category::default_error_condition): New override to 427 check for POSIX errno values. 428 * testsuite/19_diagnostics/error_category/generic_category.cc: New 429 * testsuite/19_diagnostics/error_category/system_category.cc: New 430 test. 431 432 Backport from mainline 433 2018-08-07 Jonathan Wakely <jwakely@redhat.com> 434 435 PR libstdc++/86861 436 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] (aligned_alloc): 437 Replace macro with inline function. 438 [__sun]: Increase alignment to meet memalign precondition. 439 [!HAVE__ALIGNED_MALLOC && !HAVE_POSIX_MEMALIGN && !HAVE_MEMALIGN] 440 (aligned_alloc): Move check for valid alignment to operator new. 441 Remove redundant check for non-zero size, it's enforced by the caller. 442 (operator new): Move check for valid alignment here. Use 443 __builtin_expect on check for zero size. 444 445 Backport from mainline 446 2018-07-30 Jonathan Wakely <jwakely@redhat.com> 447 448 * libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Add 449 workaround for aligned_alloc bug on AIX. 450 * testsuite/18_support/new_aligned.cc: New test. 451 452 Backport from mainline 453 2018-07-30 Jonathan Wakely <jwakely@redhat.com> 454 455 PR libstdc++/86734 456 * include/bits/stl_iterator.h (reverse_iterator::operator->): Use 457 addressof (LWG 2188). 458 * testsuite/24_iterators/reverse_iterator/dr2188.cc: New test. 459 460 Backport from mainline 461 2018-05-19 Jonathan Wakely <jwakely@redhat.com> 462 463 * src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in) 464 [__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set 465 little_endian element in bitmask. 466 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests. 467 * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New. 468 4692018-07-05 François Dumont <fdumont@gcc.gnu.org> 470 471 Backport from mainline 472 2018-07-04 François Dumont <fdumont@gcc.gnu.org> 473 474 PR libstdc++/86272 475 * include/debug/string 476 (__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite, _Ite)): 477 Use __glibcxx_check_insert_range. 478 4792018-07-04 Jonathan Wakely <jwakely@redhat.com> 480 481 Backport from mainline 482 2018-03-09 Jonathan Wakely <jwakely@redhat.com> 483 484 src/filesystem/ops.cc (create_dir): Pass error_code to is_directory. 485 486 Backport from mainline 487 2018-06-18 Jonathan Wakely <jwakely@redhat.com> 488 489 LWG 3050 Fix cv-qualification of convertibility constraints 490 * include/std/chrono (duration, operator*, operator/, operator%): Use 491 const-qualified type as source type in is_convertible constraints. 492 * testsuite/20_util/duration/arithmetic/dr3050.cc: New. 493 * testsuite/20_util/duration/cons/dr3050.cc: New. 494 * testsuite/20_util/duration/literals/range.cc: Rename to... 495 * testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust 496 dg-error lineno. 497 498 Backport from mainline 499 2018-06-13 Jonathan Wakely <jwakely@redhat.com> 500 501 PR libstdc++/86127 502 * include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove 503 unused typedef. 504 (_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after): 505 Use node allocator to create and destroy elements. 506 (forward_list::_Tp_alloc_type): Remove unused typedef. 507 (forward_list::_Alloc_traits): Use allocator_traits instead of 508 __gnu_cxx::__alloc_traits. 509 * include/bits/forward_list.tcc (_Fwd_list_base::_M_erase_after): 510 Use node allocator to create and destroy elements. 511 512 Backport from mainline 513 2018-05-29 Jonathan Wakely <jwakely@redhat.com> 514 515 * include/std/variant (__erased_dtor): Qualify call to __get. 516 517 Backport from mainline 518 2018-05-15 Jonathan Wakely <jwakely@redhat.com> 519 520 * include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify 521 __invoke to prevent ADL. 522 523 Backport from mainline 524 2018-04-05 Jonathan Wakely <jwakely@redhat.com> 525 526 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify 527 __get calls to avoid ADL and avoid ambiguity due to Clang bug. 528 529 Backport from mainline 530 2018-03-26 Jonathan Wakely <jwakely@redhat.com> 531 532 * include/std/variant (__get): Qualify calls to avoid ADL. 533 (__select_index): Adjust whitespace. 534 (variant): Add using-declaration to workaround Clang bug. 535 536 Backport from mainline 537 2018-05-24 Maya Rashish <coypu@sdf.org> 538 539 PR target/85904 540 * crossconfig.m4: Test for aligned_alloc on netbsd. 541 * configure: Regenerate. 542 543 Backport from mainline 544 2018-05-18 Jonathan Wakely <jwakely@redhat.com> 545 546 PR libstdc++/85098 547 * include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase) 548 (basic_regex::nosubs, basic_regex::optimize, basic_regex::collate) 549 (basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended) 550 (basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add 551 definitions. 552 * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust 553 whitespace. 554 * testsuite/28_regex/basic_regex/85098.cc: New 555 556 Backport from mainline 557 2018-05-07 Jonathan Wakely <jwakely@redhat.com> 558 559 PR libstdc++/85671 560 * include/experimental/bits/fs_path.h (operator/): Likewise. 561 562 Backport from mainline 563 2018-06-14 Daniel Trebbien <dtrebbien@gmail.com> 564 Jonathan Wakely <jwakely@redhat.com> 565 566 PR libstdc++/83982 567 * include/bits/vector.tcc (vector::_M_default_append(size_type)): 568 Default-construct new elements before moving existing ones. 569 * testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc: 570 New. 571 572 Backport from mainline 573 2018-05-03 Jonathan Wakely <jwakely@redhat.com> 574 575 PR libstdc++/84087 LWG DR 2268 basic_string default arguments 576 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1] 577 (append(const basic_string&, size_type, size_type) 578 (assign(const basic_string&, size_type, size_type) 579 (insert(size_type, const basic_string&, size_type, size_type) 580 (replace(size_type,size_type,const basic_string&,size_type,size_type) 581 (compare(size_type,size_type,constbasic_string&,size_type,size_type)): 582 Add default arguments (LWG 2268). 583 [_GLIBCXX_USE_CXX11_ABI=0] 584 (append(const basic_string&, size_type, size_type) 585 (assign(const basic_string&, size_type, size_type) 586 (insert(size_type, const basic_string&, size_type, size_type) 587 (replace(size_type,size_type,const basic_string&,size_type,size_type) 588 (compare(size_type,size_type,constbasic_string&,size_type,size_type)): 589 Likewise. 590 * testsuite/21_strings/basic_string/dr2268.cc: New test. 591 5922018-06-22 Jakub Jelinek <jakub@redhat.com> 593 594 Backported from mainline 595 2018-04-18 David Malcolm <dmalcolm@redhat.com> 596 597 PR jit/85384 598 * configure: Regenerate. 599 6002018-06-22 Jonathan Wakely <jwakely@redhat.com> 601 602 Backport from mainline 603 2018-06-22 Jonathan Wakely <jwakely@redhat.com> 604 605 PR libstdc++/86138 606 * include/bits/basic_string.tcc: 607 [__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI] 608 (basic_string<char>::_Rep::_S_empty_rep_storage) 609 (basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit 610 instantiation declarations. 611 [__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable 612 explicit instantiation declarations. 613 * testsuite/21_strings/basic_string/cons/char/86138.cc: New. 614 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New. 615 6162018-06-21 Jonathan Wakely <jwakely@redhat.com> 617 618 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. 619 6202018-06-19 Jonathan Wakely <jwakely@redhat.com> 621 622 * include/std/utility: Remove unused <exception> header. 623 6242018-06-15 Jonathan Wakely <jwakely@redhat.com> 625 626 PR libstdc++/86169 627 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI] 628 (basic_string::data()): Unshare string. 629 * testsuite/21_strings/basic_string/operations/data/char/86169.cc: 630 New. 631 6322018-06-15 Jonathan Wakely <jwakely@redhat.com> 633 634 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only 635 define for C++17 and above. 636 6372018-05-17 Jonathan Wakely <jwakely@redhat.com> 638 639 PR libstdc++/85812 640 * libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare. 641 * libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]: 642 Refactor to separate non-throwing and throwing implementations. 643 [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory 644 if constructing the object throws. 645 6462018-05-14 Jonathan Wakely <jwakely@redhat.com> 647 648 PR libstdc++/67554 649 * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>) 650 (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy. 651 652 PR libstdc++/82966 653 * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value 654 instead of type. 655 * testsuite/23_containers/set/modifiers/node_swap.cc: New. 656 6572018-05-10 Jonathan Wakely <jwakely@redhat.com> 658 659 * doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer. 660 * doc/xml/manual/debug_mode.xml: Add array and forward_list to list 661 of C++11 containers with Debug Mode support. 662 * doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure. 663 * doc/html/*: Regenerate. 664 6652018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net> 666 Jonathan Wakely <jwakely@redhat.com> 667 668 Backport from mainline 669 2018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net> 670 671 PR libstdc++/80506 672 * include/bits/random.tcc (gamma_distribution::operator()): Fix magic 673 number used in loop condition. 674 (gamma_distribution::__generate_impl()): Ditto. 675 6762018-05-03 Jonathan Wakely <jwakely@redhat.com> 677 678 PR libstdc++/84769 679 * include/std/variant (visit): Qualify std::get call. 680 681 PR libstdc++/85632 use uintmax_t for arithmetic 682 * src/filesystem/ops.cc (experimental::filesystem::space): Perform 683 arithmetic in result type. 684 * testsuite/experimental/filesystem/operations/space.cc: New. 685 6862018-04-30 Edward Smith-Rowland <3dw4rd@verizon.net> 687 688 PR libstdc++/pr66689 - comp_ellint_3 and ellint_3 return garbage values 689 * include/tr1/ell_integral.tcc: Correct the nu sign convention 690 in ellint_3 and comp_ellint_3. 691 * testsuite/tr1/5_numerical_facilities/special_functions/ 692 06_comp_ellint_3/check_value.cc: Regen with correct values. 693 * testsuite/tr1/5_numerical_facilities/special_functions/ 694 14_ellint_3/check_value.cc: Ditto. 695 * testsuite/special_functions/06_comp_ellint_3/check_value.cc: Ditto. 696 * testsuite/special_functions/13_ellint_3/check_value.cc: Ditto. 697 * testsuite/special_functions/06_comp_ellint_3/pr66689.cc: New. 698 * testsuite/special_functions/13_ellint_3/pr66689.cc: New. 699 * testsuite/tr1/5_numerical_facilities/special_functions/ 700 06_comp_ellint_3/pr66689.cc: New. 701 * testsuite/tr1/5_numerical_facilities/special_functions/ 702 14_ellint_3/pr66689.cc: New. 703 7042018-04-30 Edward Smith-Rowland <3dw4rd@verizon.net> 705 706 PR libstdc++/68397 std::tr1::expint fails ... long double arguments. 707 * include/tr1/exp_integral.tcc: Increase iteration limits. 708 * testsuite/tr1/5_numerical_facilities/special_functions/15_expint/ 709 pr68397.cc: New test. 710 * testsuite/special_functions/14_expint/pr68397.cc: New test. 711 7122018-04-18 Jonathan Wakely <jwakely@redhat.com> 713 Jakub Jelinek <jakub@redhat.com> 714 715 PR libstdc++/85442 716 * src/c++11/Makefile.am: Don't generate debuginfo again for 717 cxx11-ios_failure-lt.s and cxx11-ios_failure.s files. 718 * src/c++11/Makefile.in: Regenerate. 719 7202018-04-13 Jonathan Wakely <jwakely@redhat.com> 721 722 * src/c++11/Makefile.am: Fix sed command. 723 * src/c++11/Makefile.in: Regenerate. 724 725 * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to 726 handle mangled names starting with double underscores on darwin. 727 * src/c++11/Makefile.in: Regenerate. 728 7292018-04-12 Jonathan Wakely <jwakely@redhat.com> 730 731 * src/c++11/Makefile.am: Fix comment. 732 * src/c++11/Makefile.in: Regenerate. 733 * src/c++11/cxx11-ios_failure.cc: Fix comment. 734 * src/c++98/ios_failure.cc: Likewise. 735 736 Backport from mainline 737 2018-04-10 Jonathan Wakely <jwakely@redhat.com> 738 739 PR libstdc++/85222 740 * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for 741 cxx11-ios_failure.cc to rewrite type info for __ios_failure. 742 * src/c++11/Makefile.in: Regenerate. 743 * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info): 744 New types. 745 [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here. 746 * src/c++11/ios.cc (__throw_ios_failure): Remove definition. 747 (_GLIBCXX_USE_CXX11_ABI): Don't define here. 748 * src/c++98/ios_failure.cc (__construct_ios_failure) 749 (__destroy_ios_failure, is_ios_failure_handler): New functions. 750 [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here. 751 * testsuite/27_io/ios_base/failure/dual_abi.cc: New. 752 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to 753 handler types, to always catch std::ios_base::failure. 754 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise. 755 * testsuite/27_io/basic_istream/extractors_arithmetic/char/ 756 exceptions_failbit.cc: Likewise. 757 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/ 758 exceptions_failbit.cc: Likewise. 759 * testsuite/27_io/basic_istream/extractors_other/char/ 760 exceptions_null.cc: Likewise. 761 * testsuite/27_io/basic_istream/extractors_other/wchar_t/ 762 exceptions_null.cc: Likewise. 763 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise. 764 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise. 765 * testsuite/27_io/basic_ostream/inserters_other/char/ 766 exceptions_null.cc: Likewise. 767 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ 768 exceptions_null.cc: Likewise. 769 * testsuite/27_io/ios_base/storage/2.cc: Likewise. 770 7712018-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 772 773 PR libstdc++/77691 774 * testsuite/experimental/memory_resource/resource_adaptor.cc: 775 xfail execution on 32-bit Solaris/x86. 776 7772018-03-13 Jonathan Wakely <jwakely@redhat.com> 778 779 Backport from mainline 780 2018-03-09 Jonathan Wakely <jwakely@redhat.com> 781 782 PR libstdc++/84769 783 * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>): 784 Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>. 785 7862018-03-12 Jonathan Wakely <jwakely@redhat.com> 787 788 PR libstdc++/84773 789 PR libstdc++/83662 790 * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32. 791 * configure: Regenerate. 792 * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC] 793 (aligned_alloc): Add using-declaration. 794 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test. 795 7962018-03-02 Jonathan Wakely <jwakely@redhat.com> 797 798 Backport from mainline 799 2018-03-02 Jonathan Wakely <jwakely@redhat.com> 800 801 PR libstdc++/84671 802 * include/bits/parse_numbers.h (_Number_help): Add partial 803 specialization to handle digit separators. Adjust partial 804 specialization for recursion temrination to require _Pow == 1ULL. 805 * testsuite/20_util/duration/literals/84671.cc: New 806 8072018-02-26 Jonathan Wakely <jwakely@redhat.com> 808 809 Backport from mainline 810 2018-02-23 Jonathan Wakely <jwakely@redhat.com> 811 812 PR libstdc++/84532 813 * include/std/thread (thread::__make_invoker): Construct tuple 814 directly instead of using make_tuple. 815 * testsuite/30_threads/async/84532.cc: New. 816 * testsuite/30_threads/thread/84532.cc: New. 817 8182018-02-19 Jonathan Wakely <jwakely@redhat.com> 819 820 Backport from mainline 821 2018-02-15 Jonathan Wakely <jwakely@redhat.com> 822 823 PR libstdc++/81797 824 * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define. 825 * configure: Regenerate. 826 * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when 827 defined. 828 * include/Makefile.in: Regenerate. 829 8302018-01-29 Jonathan Wakely <jwakely@redhat.com> 831 832 PR libstdc++/83833 833 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: 834 Add -ffloat-store to options for m68k and ia32. 835 836 PR libstdc++/83658 837 * include/std/any (any::__do_emplace): Only set _M_manager after 838 constructing the contained object. 839 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line. 840 * testsuite/20_util/any/modifiers/83658.cc: New test. 841 842 Backport from mainline 843 2018-01-15 Jonathan Wakely <jwakely@redhat.com> 844 845 PR libstdc++/83833 846 * include/bits/random.h (chi_squared_distribution::param): Update 847 gamma distribution parameter. 848 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New 849 test. 850 8512018-01-25 Jonathan Wakely <jwakely@redhat.com> 852 853 PR libstdc++/81076 854 * include/c_global/cstddef (__byte_operand): Define primary template. 855 * testsuite/18_support/byte/81076.cc: New test. 856 857 Backport from mainline 858 2018-01-15 Jonathan Wakely <jwakely@redhat.com> 859 860 PR libstdc++/83830 861 * include/std/type_traits (has_unique_object_representations_v): Add 862 variable template. 863 * testsuite/20_util/has_unique_object_representations/value.cc: Check 864 variable template. 865 8662018-01-25 Release Manager 867 868 * GCC 7.3.0 released. 869 8702018-01-19 Jonathan Wakely <jwakely@redhat.com> 871 872 Backport from mainline 873 2018-01-16 Jonathan Wakely <jwakely@redhat.com> 874 875 PR libstdc++/83834 876 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard 877 pattern with exact match for std::cerr. 878 8792018-01-18 Jonathan Wakely <jwakely@redhat.com> 880 881 Backport from mainline 882 2017-10-23 Jonathan Wakely <jwakely@redhat.com> 883 884 * doc/xml/manual/intro.xml: Include new section. 885 * doc/xml/manual/status_cxxis29124.xml: New section on IS 29124 886 status. 887 * doc/html/*: Regenerate. 888 889 Backport from mainline 890 2017-10-19 Jonathan Wakely <jwakely@redhat.com> 891 892 * doc/xml/manual/status_cxx2017.xml: Update references to C++17 893 section numbers. 894 8952018-01-16 Eric Botcazou <ebotcazou@adacore.com> 896 897 * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux. 898 8992018-01-13 Jonathan Wakely <jwakely@redhat.com> 900 901 * python/libstdcxx/v6/printers.py (register_type_printers): Remove 902 printer for experimental::any. Fix printers for experimental::optional 903 and experimental::basic_string_view. 904 905 Backport from mainline 906 2018-01-05 Jonathan Wakely <jwakely@redhat.com> 907 908 PR libstdc++/83626 909 * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove 910 unnecessary symlink_status call. 911 (remove_all(const path&, error_code&)): Use filesystem::remove. 912 9132018-01-05 Jonathan Wakely <jwakely@redhat.com> 914 915 Backport from mainline 916 2017-10-19 Jonathan Wakely <jwakely@redhat.com> 917 918 * testsuite/experimental/filesystem/iterators/ 919 recursive_directory_iterator.cc: Ensure that error_code arguments are 920 cleared when required. 921 * testsuite/experimental/filesystem/operations/create_directory.cc: 922 Remove redundant check. 923 * testsuite/experimental/filesystem/operations/temp_directory_path.cc: 924 Ensure that error_code argument is cleared when required. 925 926 Backport from mainline 927 2017-12-27 Jonathan Wakely <jwakely@redhat.com> 928 929 PR libstdc++/83600 930 * include/bits/regex.h (match_results::end()): Return valid iterator 931 when not ready. 932 * testsuite/28_regex/match_results/ctors/char/default.cc: Check that 933 unready objects are empty and have equal begin and end iterators. 934 * testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise. 935 936 Backport from mainline 937 2017-12-27 Jonathan Wakely <jwakely@redhat.com> 938 939 PR libstdc++/83598 940 * include/bits/regex.h (basic_regex): Don't modify flags passed to 941 constructors. 942 * testsuite/28_regex/basic_regex/ctors/83598.cc: New test. 943 944 Backport from mainline 945 2017-12-14 Jonathan Wakely <jwakely@redhat.com> 946 947 PR libstdc++/83279 948 * src/filesystem/std-ops.cc (do_copy_file): Handle sendfile not 949 copying entire file. 950 951 Backport from mainline 952 2018-01-04 Jonathan Wakely <jwakely@redhat.com> 953 954 * include/experimental/fs_ops.h (exists(const path&, error_code&))): 955 Only check status_known once. 956 957 Backport from mainline 958 2018-01-05 Jonathan Wakely <jwakely@redhat.com> 959 960 PR libstdc++/83626 961 * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not 962 report an error for ENOENT. 963 (remove_all(const path&)): Fix type of result variable. 964 (remove_all(const path&, error_code&)): Use non-throwing increment 965 for directory iterator. Call POSIX remove directly to avoid redundant 966 calls to symlink_status. Do not report errors for ENOENT. 967 * testsuite/experimental/filesystem/operations/remove_all.cc: Test 968 throwing overload. 969 970 Backport from mainline 971 2018-01-04 Jonathan Wakely <jwakely@redhat.com> 972 973 PR libstdc++/83626 974 * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove 975 redundant call to ec.clear(). 976 (remove_all(const path&, error_code&))): Do not return an error for 977 non-existent paths. 978 * testsuite/experimental/filesystem/operations/remove.cc: New test. 979 * testsuite/experimental/filesystem/operations/remove_all.cc: Fix 980 expected results for non-existent paths. 981 982 Backport from mainline 983 2017-10-25 Jonathan Wakely <jwakely@redhat.com> 984 985 PR libstdc++/79283 986 * src/filesystem/ops.cc (read_symlink): Handle st_size being zero. 987 9882018-01-04 Ville Voutilainen <ville.voutilainen@gmail.com> 989 990 Backport from mainline 991 2018-01-03 Ville Voutilainen <ville.voutilainen@gmail.com> 992 993 Protect optional's deduction guide with the feature macro 994 * include/std/optional: Use the feature macro. 995 9962017-12-28 François Dumont <fdumont@gcc.gnu.org> 997 998 Backport from mainline 999 2017-12-20 François Dumont <fdumont@gcc.gnu.org> 1000 1001 PR libstdc++/82522 1002 * include/debug/map.h (map::insert(value_type&&)) 1003 (map::insert(const_iterator, value_type&&)): Add overload for rvalues. 1004 * include/debug/multimap.h (multimap::insert(value_type&&)) 1005 (multimap::insert(const_iterator, value_type&&)): Likewise. 1006 * include/debug/unordered_map (unordered_map::insert(value_type&&)) 1007 (unordered_map::insert(const_iterator, value_type&&)) 1008 (unordered_multimap::insert(value_type&&)) 1009 (unordered_multimap::insert(const_iterator, value_type&&)): Likewise. 1010 * testsuite/23_containers/map/modifiers/insert/dr2354.cc (test02): New. 1011 * testsuite/23_containers/multimap/modifiers/insert/dr2354.cc (test02): 1012 New. 1013 * testsuite/23_containers/unordered_map/insert/dr2354.cc (test02): New. 1014 * testsuite/23_containers/unordered_multimap/insert/dr2354.cc (test02): 1015 New. 1016 10172017-12-14 Jonathan Wakely <jwakely@redhat.com> 1018 1019 PR libstdc++/83427 1020 * include/bits/refwrap.h (_Weak_result_type_impl) 1021 (_Reference_wrapper_base): Deduce noexcept for function types. 1022 * testsuite/20_util/bind/83427.cc: New test. 1023 * testsuite/20_util/reference_wrapper/83427.cc: New test. 1024 1025 PR libstdc++/59568 1026 * include/std/complex (operator>>): Only use putback if a character 1027 was successfully extracted and only set the value if a number was 1028 successfully extracted. 1029 * testsuite/26_numerics/complex/inserters_extractors/char/59568.cc: 1030 New test. 1031 10322017-12-12 Jonathan Wakely <jwakely@redhat.com> 1033 1034 PR libstdc++/83395 1035 * include/std/type_traits (__is_invocable_impl): Remove partial 1036 specialization for INVOKE<void> and restore is_void<R> check in 1037 primary template. 1038 (__is_nt_invocable_impl): Likewise. 1039 * testsuite/20_util/is_invocable/83395.cc: New test. 1040 * testsuite/20_util/is_nothrow_invocable/83395.cc: New test. 1041 10422017-12-01 Jonathan Wakely <jwakely@redhat.com> 1043 1044 Backport from mainline 1045 2017-10-13 Jonathan Wakely <jwakely@redhat.com> 1046 1047 PR libstdc++/82522 1048 * doc/xml/manual/intro.xml: Document LWG 2354 changes. 1049 * include/bits/stl_map.h (map::insert(value_type&&)) 1050 (map::insert(const_iterator, value_type&&)): Add overload for rvalues. 1051 * include/bits/stl_multimap.h (multimap::insert(value_type&&)) 1052 (multimap::insert(const_iterator, value_type&&)): Likewise. 1053 * include/bits/unordered_map.h (unordered_map::insert(value_type&&)) 1054 (unordered_map::insert(const_iterator, value_type&&)) 1055 (unordered_multimap::insert(value_type&&)) 1056 (unordered_multimap::insert(const_iterator, value_type&&)): Likewise. 1057 * testsuite/23_containers/map/modifiers/insert/dr2354.cc: New test. 1058 * testsuite/23_containers/multimap/modifiers/insert/dr2354.cc: New 1059 test. 1060 * testsuite/23_containers/unordered_map/insert/dr2354.cc: New test. 1061 * testsuite/23_containers/unordered_multimap/insert/dr2354.cc: New 1062 test. 1063 1064 Backport from mainline 1065 2017-11-23 Jonathan Wakely <jwakely@redhat.com> 1066 1067 PR libstdc++/83134 1068 * include/std/type_traits (__not_): Explicitly convert to bool. 1069 * testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error. 1070 * testsuite/20_util/logical_traits/83134.cc: New test. 1071 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust 1072 dg-error. 1073 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: 1074 Likewise. 1075 1076 Backport from mainline 1077 2017-12-01 Jonathan Wakely <jwakely@redhat.com> 1078 1079 * include/std/type_traits (integral_constant): Make member functions 1080 noexcept (LWG 2346). 1081 * include/std/utility (integer_sequence): Likewise. 1082 1083 Backport from mainline 1084 2017-11-16 Jonathan Wakely <jwakely@redhat.com> 1085 1086 * include/std/future (shared_future): Add noexcept to copy constructor 1087 and copy-assignment operator (LWG 2799). 1088 1089 Backport from mainline 1090 2017-11-15 Jonathan Wakely <jwakely@redhat.com> 1091 1092 * include/bits/range_access.h (size, empty, data): Add conditional 1093 noexcept to generic overloads. 1094 1095 Backport from mainline 1096 2017-10-24 Jonathan Wakely <jwakely@redhat.com> 1097 1098 PR libstdc++/82685 1099 * include/experimental/string_view (operator""sv): Add noexcept. 1100 * include/std/string_view (operator""sv): Likewise. 1101 1102 Backport from mainline 1103 2017-11-30 Jonathan Wakely <jwakely@redhat.com> 1104 1105 PR libstdc++/83226 1106 * include/bits/node_handle.h (_Node_handle::__pointer): Avoid forming 1107 pointer-to-reference types. 1108 * testsuite/23_containers/map/modifiers/insert/83226.cc: New test. 1109 1110 Backport from mainline 1111 2017-11-14 Jonathan Wakely <jwakely@redhat.com> 1112 1113 * include/bits/locale_conv.h (wbuffer_convert::_M_conv_get): Fix typo. 1114 * testsuite/22_locale/conversions/buffer/3.cc: New test. 1115 1116 Backport from mainline 1117 2017-11-03 Jonathan Wakely <jwakely@redhat.com> 1118 1119 * include/bits/node_handle.h (_Node_insert_return::get): Remove, as 1120 per P0508R0. 1121 11222017-10-25 Jonathan Wakely <jwakely@redhat.com> 1123 1124 * doc/xml/manual/status_cxx1998.xml: Correct statement about 1125 what the doc covers. 1126 * doc/xml/manual/status_cxx2011.xml: Likewise. 1127 * doc/xml/manual/status_cxx2014.xml: Likewise. 1128 * doc/xml/manual/status_cxx2017.xml: Update C++17 status, and 1129 information on feature-test macros. 1130 * doc/xml/manual/status_cxxtr1.xml: Correct statement about what 1131 the doc covers. 1132 * doc/xml/manual/status_cxxtr24733.xml: Likewise. 1133 * doc/html/*: Regenerate. 1134 11352017-10-23 Jonathan Wakely <jwakely@redhat.com> 1136 1137 Backport from mainline 1138 2017-07-18 Jonathan Wakely <jwakely@redhat.com> 1139 1140 PR libstdc++/81395 1141 * include/bits/fstream.tcc (basic_filebuf::xsgetn): Don't set buffer 1142 pointers for write mode after reading. 1143 * testsuite/27_io/basic_filebuf/sgetn/char/81395.cc: New. 1144 11452017-10-21 Jonathan Wakely <jwakely@redhat.com> 1146 1147 * testsuite/experimental/filesystem/path/itr/traversal.cc: Do not 1148 increment past-the-end iterators. 1149 11502017-10-20 Jonathan Wakely <jwakely@redhat.com> 1151 1152 * include/std/chrono (__cpp_lib_chrono): Update macro value to 1153 indicate support for P0505R0. 1154 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: Check 1155 for updated macro. 1156 1157 * include/c_global/cstddef: Define __cpp_lib_byte feature-test macro. 1158 * testsuite/18_support/byte/requirements.cc: Check macro. 1159 1160 Backport from mainline 1161 2017-10-13 Jonathan Wakely <jwakely@redhat.com> 1162 1163 PR libstdc++/82481 1164 * include/std/mutex (call_once): Suppress clang-tidy warnings about 1165 dangling references. 1166 1167 Backport from mainline 1168 2017-09-12 Jonathan Wakely <jwakely@redhat.com> 1169 1170 PR libstdc++/79433 1171 * doc/xml/manual/status_cxx2017.xml: Update feature-test macros. 1172 * doc/html/*: Regenerate. 1173 * include/Makefile.am: Remove <bits/c++17_warning.h>. 1174 * include/Makefile.in: Regenerate. 1175 * include/bits/c++17_warning.h: Remove. 1176 * include/bits/string_view.tcc: Do not include <bits/c++17_warning.h> 1177 for pre-C++17 modes. 1178 * include/std/any: Likewise. 1179 (__cpp_lib_any): Define. 1180 * include/std/mutex (__cpp_lib_scoped_lock): Adjust value as per new 1181 SD-6 draft. 1182 * include/std/numeric (__cpp_lib_gcd_lcm): Define as per new SD-6 1183 draft. 1184 * include/std/optional: Do not include <bits/c++17_warning.h>. 1185 (__cpp_lib_optional): Define. 1186 * include/std/shared_mutex: Do not include <bits/c++14_warning.h>. 1187 * include/std/string_view: Do not include <bits/c++17_warning.h>. 1188 (__cpp_lib_string_view): Define. 1189 * include/std/variant: Do not include <bits/c++17_warning.h>. 1190 (__cpp_lib_variant): Define. 1191 * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error line 1192 numbers. 1193 * testsuite/26_numerics/gcd/1.cc: Test for __cpp_lib_gcd_lcm. 1194 * testsuite/26_numerics/gcd/gcd_neg.cc: Adjust dg-error line 1195 numbers. 1196 * testsuite/26_numerics/lcm/1.cc: Test for __cpp_lib_gcd_lcm. 1197 * testsuite/26_numerics/lcm/lcm_neg.cc: Adjust dg-error line 1198 numbers. 1199 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Adjust 1200 expected value of __cpp_lib_scoped_lock. 1201 1202 Backport from mainline 1203 2017-10-19 Jonathan Wakely <jwakely@redhat.com> 1204 1205 * include/experimental/bits/fs_path.h (path::iterator++(int)) 1206 (path::iterator--(int)): Fix for paths with only one component. 1207 * testsuite/experimental/filesystem/path/itr/traversal.cc: Test 1208 post-increment and post-decrement. 1209 12102017-09-21 Jonathan Wakely <jwakely@redhat.com> 1211 1212 * testsuite/25_algorithms/clamp/1.cc: Fix order of arguments and 1213 expected results when using predicate defining reverse order. 1214 * testsuite/25_algorithms/clamp/constexpr.cc: Likewise. 1215 12162017-09-20 Jonathan Wakely <jwakely@redhat.com> 1217 1218 Backport from mainline 1219 2017-06-14 Jonathan Wakely <jwakely@redhat.com> 1220 1221 * doc/xml/manual/test.xml: Correct instructions on running tests. 1222 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Adjust to pass when 1223 -D_GLIBCXX_USE_CXX11_ABI=0 added to RUNTESTFLAGS. 1224 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise. 1225 * testsuite/27_io/basic_istream/extractors_arithmetic/char/ 1226 exceptions_failbit.cc: Likewise. 1227 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/ 1228 exceptions_failbit.cc: Likewise. 1229 * testsuite/27_io/basic_istream/extractors_other/char/ 1230 exceptions_null.cc: Likewise. 1231 * testsuite/27_io/basic_istream/extractors_other/wchar_t/ 1232 exceptions_null.cc: Likewise. 1233 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise. 1234 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise. 1235 * testsuite/27_io/basic_ostream/inserters_other/char/ 1236 exceptions_null.cc: Likewise. 1237 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ 1238 exceptions_null.cc: Likewise. 1239 * testsuite/27_io/ios_base/storage/2.cc: Likewise. 1240 1241 PR libstdc++/79162 1242 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI] 1243 (basic_string::_If_sv): Remove from the overload set when the 1244 argument is derived from basic_string. 1245 1246 PR libstdc++/79162 1247 * include/bits/basic_string.h (basic_string::_If_sv): Remove from the 1248 overload set when the argument is derived from basic_string. 1249 * testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc: New 1250 test. 1251 * testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc: 1252 New test. 1253 1254 * testsuite/24_iterators/range_access_cpp17.cc: Fix order of dg-do 1255 and dg-options directives. Fix invalid test. 1256 1257 Backport from mainline 1258 2017-09-20 Jonathan Wakely <jwakely@redhat.com> 1259 1260 PR libstdc++/82262 1261 * include/std/optional (__optional_hash_call_base): Add template 1262 parameter for remove_const_t<_Tp> and use it consistently. 1263 * testsuite/20_util/optional/hash.cc: Test optional<const T>. 1264 1265 Backport from mainline 1266 2017-09-19 Jonathan Wakely <jwakely@redhat.com> 1267 1268 PR libstdc++/82254 1269 * include/std/type_traits (__is_invocable): Add partial specialization 1270 for INVOKE<void> case and remove is_void<R> check from partial 1271 specialization for INVOKE<R> case. 1272 (__is_nt_invocable_impl): New helper for is_nothrow_invocable_r. 1273 (is_nothrow_invocable_r): Use __is_nt_invocable_impl. 1274 * testsuite/20_util/is_nothrow_invocable/value.cc: Add tests for 1275 conversions that can throw or fail to convert. Use static assert 1276 strings to explain negative results. 1277 * testsuite/20_util/is_nothrow_invocable/value_ext.cc: Use 1278 is_nothrow_constructible in is_nt_invocable_conv. 1279 12802017-09-13 Jonathan Wakely <jwakely@redhat.com> 1281 1282 Backport from mainline 1283 2017-09-04 Daniel Kruegler <daniel.kruegler@gmail.com> 1284 1285 PR libstdc++/79162 1286 Implement LWG 2946, LWG 2758's resolution missed further corrections 1287 * include/bits/basic_string.h (basic_string::compare): Add missing 1288 required noexcept specifications. 1289 (basic_string): Introduce internal _S_to_string_view and __sv_wrapper 1290 for implicit string_view conversion. 1291 (basic_string::basic_string): Fix explicit string_view conversion by 1292 implicit conversion using _S_to_string_view and __sv_wrapper. 1293 (basic_string): Introduce internal basic_string(__sv_wrapper, Alloc) 1294 constructor. 1295 (basic_string): Fix operator=(T) template by operator=(const T&) 1296 template for uncopyable types (PR 79162). 1297 (basic_string::operator+=, basic_string::append, basic_string::assign) 1298 (basic_string::insert, basic_string::replace, basic_string::find) 1299 (basic_string::rfind, basic_string::find_first_of) 1300 (basic_string::find_last_of, basic_string::find_first_not_of) 1301 (basic_string::find_last_not_of, basic_string::compare): Replace 1302 __sv_type argument by template const T& (LWG 2946) and correct 1303 documentation describing __sv_type argument. 1304 (basic_string::find, basic_string::rfind, basic_string::find_first_of) 1305 (basic_string::find_last_of, basic_string::find_first_not_of) 1306 (basic_string::find_last_not_of, basic_string::compare): Replace 1307 unconditional noexcept specification by conditional noexcept 1308 specification to partially balance the removal of noexcept by LWG 2946. 1309 * testsuite/21_strings/basic_string/79162.cc: New. 1310 * testsuite/21_strings/basic_string/lwg2946.cc: New. 1311 13122017-09-13 Jonathan Wakely <jwakely@redhat.com> 1313 1314 PR libstdc++/81468 1315 * include/std/chrono (time_point(const time_point<_Dur2>&)): Add 1316 missing constraint from LWG DR 1177. 1317 * testsuite/20_util/duration/cons/dr1177.cc: New. 1318 * testsuite/20_util/time_point/cons/81468.cc: New. 1319 * testsuite/20_util/duration/literals/range.cc: Update dg-error line. 1320 1321 * doc/doxygen/mainpage.html: Fix broken URLs. 1322 1323 PR libstdc++/81835 1324 * doc/xml/manual/extensions.xml: Replace unstable URL. 1325 * doc/html/manual/ext_demangling.html: Regenerate. 1326 * libsupc++/cxxabi.h (__cxa_demangle): Fix broken URL. 1327 13282017-09-12 Jonathan Wakely <jwakely@redhat.com> 1329 1330 Backport from mainline 1331 2017-09-12 Jonathan Wakely <jwakely@redhat.com> 1332 1333 PR libstdc++/70483 1334 * include/experimental/bits/string_view.tcc (basic_string_view::find) 1335 (basic_string_view::rfind, basic_string_view::find_first_of) 1336 (basic_string_view::find_last_of, basic_string_view::find_first_not_of) 1337 (basic_string_view::find_last_not_of): Add constexpr specifier. 1338 * include/experimental/string_view (basic_string_view::remove_prefix) 1339 (basic_string_view::remove_suffix, basic_string_view::swap) 1340 (basic_string_view::compare, basic_string_view::find) 1341 (basic_string_view::rfind, basic_string_view::find_first_of) 1342 (basic_string_view::find_last_of, basic_string_view::find_first_not_of) 1343 (basic_string_view::find_last_not_of, operator==, operator!=) 1344 (operator<, operator>, operator<=, operator>=): Likewise. 1345 * testsuite/experimental/string_view/operations/compare/char/70483.cc: 1346 New. 1347 1348 Backport from mainline 1349 2017-09-11 Jonathan Wakely <jwakely@redhat.com> 1350 1351 PR libstdc++/70483 1352 * include/bits/string_view.tcc (basic_string_view::find) 1353 (basic_string_view::rfind, basic_string_view::find_first_of) 1354 (basic_string_view::find_last_of, basic_string_view::find_first_not_of) 1355 (basic_string_view::find_last_not_of): Add constexpr specifier. 1356 * include/std/string_view (basic_string_view::operator=) 1357 (basic_string_view::rbegin, basic_string_view::rend) 1358 (basic_string_view::crbegin, basic_string_view::crend) 1359 (basic_string_view::remove_prefix, basic_string_view::remove_suffix) 1360 (basic_string_view::swap, basic_string_view::compare) 1361 (basic_string_view::find, basic_string_view::rfind) 1362 (basic_string_view::find_first_of, basic_string_view::find_last_of) 1363 (basic_string_view::find_first_not_of) 1364 (basic_string_view::find_last_not_of, basic_string_view::_M_check) 1365 (basic_string_view::_M_limit, operator==, operator!=, operator<) 1366 (operator>, operator<=, operator>=): Likewise. 1367 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/ 1368 char/1.cc: Repeat tests in constexpr context. 1369 * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/ 1370 wchar_t/1.cc: Likewise. 1371 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/ 1372 char/1.cc: Likewise. 1373 * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/ 1374 wchar_t/1.cc: Likewise. 1375 * testsuite/21_strings/basic_string_view/operations/find/char/1.cc: 1376 Likewise. 1377 * testsuite/21_strings/basic_string_view/operations/find/char/2.cc: 1378 Likewise. 1379 * testsuite/21_strings/basic_string_view/operations/find/char/3.cc: 1380 Likewise. 1381 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/1.cc: 1382 Likewise. 1383 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/2.cc: 1384 Likewise. 1385 * testsuite/21_strings/basic_string_view/operations/find/wchar_t/3.cc: 1386 Likewise. 1387 * testsuite/21_strings/basic_string_view/operators/char/2.cc: 1388 Likewise. 1389 * testsuite/21_strings/basic_string_view/operators/wchar_t/2.cc: 1390 Likewise. 1391 * testsuite/21_strings/basic_string_view/range_access/char/1.cc: Test 1392 cbegin, cend, rbegin, rend, crbegin and crend. 1393 * testsuite/21_strings/basic_string_view/range_access/wchar_t/1.cc: 1394 Likewise. 1395 * testsuite/21_strings/basic_string_view/operations/compare/char/1.cc: 1396 Remove trailing whitespace. 1397 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/ 1398 1.cc: Likewise. 1399 * testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc: 1400 New. 1401 * testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc: 1402 New. 1403 * testsuite/21_strings/basic_string_view/operations/compare/char/2.cc: 1404 New. 1405 * testsuite/21_strings/basic_string_view/operations/compare/wchar_t/ 1406 2.cc: New. 1407 1408 Backport from mainline 1409 2017-06-12 Pedro Alves <palves@redhat.com> 1410 1411 * doc/xml/manual/status_cxx2017.xml: Update C++17 constexpr 1412 char_traits status. 1413 * doc/html/*: Regenerate. 1414 1415 * include/bits/char_traits.h (_GLIBCXX_ALWAYS_INLINE): Define if 1416 not already defined. 1417 (__cpp_lib_constexpr_char_traits): Uncomment. 1418 (__constant_string_p, __constant_char_array_p): New. 1419 (std::char_traits<char>, std::char_traits<wchar_t>): Add 1420 _GLIBCXX17_CONSTEXPR on compare, length and find and use 1421 __constant_string_p, __constant_char_array_p and 1422 __builtin_constant_p to defer to __gnu_cxx::char_traits at compile 1423 time. 1424 1425 * testsuite/21_strings/char_traits/requirements/ 1426 constexpr_functions_c++17.cc: Uncomment 1427 __cpp_lib_constexpr_char_traits tests. Uncomment 1428 test_compare<char>, test_length<char>, test_find<char>, 1429 test_compare<wchar_t>, test_length<wchar_t> and test_find<wchar_t> 1430 static_assert tests. 1431 14322017-09-04 Jonathan Wakely <jwakely@redhat.com> 1433 1434 Backport from mainline 1435 2017-08-31 Jonathan Wakely <jwakely@redhat.com> 1436 1437 PR c++/82039 1438 * include/ext/new_allocator.h (__gnu_cxx::new_allocator::allocate): 1439 Adjust null pointer constant to avoid warning. 1440 1441 Backport from mainline 1442 2017-08-21 Jonathan Wakely <jwakely@redhat.com> 1443 1444 PR libstdc++/81912 1445 * include/bits/stl_iterator_base_types.h (__iterator_category): Add 1446 constexpr for C++11 and later. 1447 * testsuite/24_iterators/container_access.cc: Add target selector. 1448 * testsuite/24_iterators/range_access.cc: Fix clause number in 1449 comment. 1450 * testsuite/24_iterators/range_access_cpp14.cc: Likewise. 1451 * testsuite/24_iterators/range_access_cpp17.cc: New. 1452 1453 Backport from mainline 1454 2017-08-09 Jonathan Wakely <jwakely@redhat.com> 1455 1456 * include/std/type_traits (_GLIBCXX_NO_BUILTIN_HAS_UNIQ_OBJ_REP): 1457 Replace with _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP and use 1458 __is_identifier to set it. 1459 1460 Backport from mainline 1461 2017-08-09 Katsuhiko Nishimra <ktns.87@gmail.com> 1462 1463 * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Use 1464 __is_identifier instead of __has_builtin. 1465 1466 Backport from mainline 1467 2017-08-18 Jonathan Wakely <jwakely@redhat.com> 1468 1469 PR libstdc++/81891 1470 * include/bits/hashtable.h (_Hashtable(_InputIterator, _InputIterator, 1471 size_type, const _H1&, const _H2&, const _Hash&, const _Equal&, 1472 const _ExtractKey&, const allocator_type&)): Let destructor do clean 1473 up if an exception is thrown. 1474 * testsuite/23_containers/unordered_map/cons/81891.cc: New. 1475 1476 Backport from mainline 1477 2017-07-31 Marek Polacek <polacek@redhat.com> 1478 1479 PR libstdc++/81599 1480 * include/bits/stl_stack.h: Fix typo. 1481 1482 Backport from mainline 1483 2017-07-10 Jonathan Wakely <jwakely@redhat.com> 1484 1485 PR libstdc++/81338 1486 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string): 1487 Declare basic_stringbuf to be a friend. 1488 * include/bits/sstream.tcc (basic_stringbuf::overflow) 1489 [_GLIBCXX_USE_CXX11_ABI]: Use unused capacity before reallocating. 1490 * include/std/sstream (basic_stringbuf::__xfer_bufptrs): Update string 1491 length to buffer length. 1492 * testsuite/27_io/basic_stringstream/assign/81338.cc: New. 1493 14942017-08-20 John David Anglin <danglin@gcc.gnu.org> 1495 1496 PR testsuite/81056 1497 * testsuite/17_intro/names.cc: Undef 'd' and 'r' on __hpux__. 1498 14992017-08-14 Jonathan Wakely <jwakely@redhat.com> 1500 1501 Backport from mainline 1502 2017-08-09 Jonathan Wakely <jwakely@redhat.com> 1503 1504 PR libstdc++/79820 1505 PR libstdc++/81751 1506 * config/io/basic_file_stdio.cc (sys_open(FILE*, ios_base::openmode)): 1507 Call fflush on the stream instead of calling sync() while _M_cfile is 1508 null. Restore original value of errno. 1509 * testsuite/ext/stdio_filebuf/char/79820.cc: New. 1510 * testsuite/ext/stdio_filebuf/char/81751.cc: New. 1511 1512 Backport from mainline 1513 2017-07-25 Jonathan Wakely <jwakely@redhat.com> 1514 1515 PR libstdc++/53984 1516 * include/bits/basic_ios.h (basic_ios::_M_setstate): Adjust comment. 1517 * include/bits/istream.tcc (basic_istream::sentry): Handle exceptions 1518 during construction. 1519 * include/std/istream: Adjust comments for formatted input functions 1520 and unformatted input functions. 1521 * testsuite/27_io/basic_fstream/53984.cc: New. 1522 * testsuite/27_io/basic_istream/sentry/char/53984.cc: New. 1523 15242017-08-14 Release Manager 1525 1526 * GCC 7.2.0 released. 1527 15282017-07-26 Richard Biener <rguenther@suse.de> 1529 1530 Backport from mainline 1531 2017-06-02 Richard Biener <rguenther@suse.de> 1532 Markus Eisenmann <meisenmann.lba@fh-salzburg.ac.at> 1533 1534 PR libstdc++/80721 1535 * libsupc++/eh_alloc.cc (pool::free): Keep list properly 1536 sorted and add missing freelist item merging cases. 1537 15382017-07-25 Jonathan Wakely <jwakely@redhat.com> 1539 1540 Backport from mainline 1541 2017-06-09 Jonathan Wakely <jwakely@redhat.com> 1542 1543 * doc/xml/manual/intro.xml: Document LWG 2802, 2873 and 2942 changes. 1544 * include/bits/shared_ptr.h (shared_ptr): Use rvalues for deleters 1545 (LWG 2802). 1546 * include/bits/shared_ptr_base.h (_Sp_ebo_helper, _Sp_counted_deleter 1547 (_Sp_counted_deleter::_Impl, __shared_count, __shared_ptr): Likewise. 1548 * testsuite/20_util/shared_ptr/cons/lwg2802.cc: New. 1549 1550 Backport from mainline 1551 2017-06-05 Jonathan Wakely <jwakely@redhat.com> 1552 1553 * include/bits/shared_ptr_base.h (__shared_ptr::owner_before) 1554 (__weak_ptr::owner_before, _Sp_owner_less::operator()): Add noexcept 1555 specifiers as per LWG 2873 and LWG 2942. 1556 * testsuite/20_util/owner_less/noexcept.cc: New. 1557 * testsuite/20_util/shared_ptr/observers/owner_before.cc: Test 1558 noexcept guarantees. 1559 * testsuite/20_util/weak_ptr/observers/owner_before.cc: Likewise. 1560 1561 Backport from mainline 1562 2017-04-28 Jonathan Wakely <jwakely@redhat.com> 1563 1564 PR libstdc++/80553 1565 * include/bits/stl_construct.h (_Destroy, _Destroy_n): Add static 1566 assertions to ensure type is destructible. 1567 (destroy_at, destroy, destroy_n): Move from stl_uninitialized.h. 1568 * include/bits/stl_uninitialized.h (destroy_at, destroy, destroy_n): 1569 Move to stl_construct.h. 1570 * testsuite/20_util/specialized_algorithms/memory_management_tools/ 1571 destroy_neg.cc: New test. 1572 * testsuite/23_containers/vector/cons/destructible_neg.cc: New test. 1573 1574 Backport from mainline 1575 2017-05-16 Jonathan Wakely <jwakely@redhat.com> 1576 1577 * configure: Regenerate. 1578 * doc/xml/manual/status_cxx2017.xml: Update status table. 1579 * doc/html/*: Regenerate. 1580 * include/Makefile.am: Add new header. 1581 * include/Makefile.in: Regenerate. 1582 * include/experimental/source_location: New header implementing N4519. 1583 * testsuite/experimental/source_location/1.cc: New test. 1584 1585 Backport from mainline 1586 2017-07-06 Jonathan Wakely <jwakely@redhat.com> 1587 1588 * include/bits/uses_allocator.h (__use_alloc(const _Alloc&&)): Add 1589 deleted overload to prevent dangling references to rvalues. 1590 * include/experimental/memory_resource 1591 (polymorphic_allocator::construct): Do not call __use_alloc with 1592 rvalue arguments. 1593 1594 Backport from mainline 1595 2017-06-08 Jonathan Wakely <jwakely@redhat.com> 1596 1597 PR libstdc++/81017 1598 * include/bits/std_function.h (function::function(function&&)) 1599 (function::operator=(funtion&&)): Add noexcept. 1600 * testsuite/20_util/function/assign/move.cc: Check for noexcept. 1601 * testsuite/20_util/function/cons/move.cc: Likewise. 1602 1603 Backport from mainline 1604 2017-07-15 Jonathan Wakely <jwakely@redhat.com> 1605 1606 * include/std/mutex (scoped_lock): Reorder std::adopt_lock_t parameter 1607 as per P0739R0. 1608 * testsuite/30_threads/scoped_lock/cons/1.cc: Reorder arguments. 1609 * testsuite/30_threads/scoped_lock/cons/deduction.cc: Test deduction 1610 with std::adopt_lock_t. 1611 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Check 1612 feature-test macro. 1613 1614 Backport from mainline 1615 2017-07-14 Jason Merrill <jason@redhat.com> 1616 Jonathan Wakely <jwakely@redhat.com> 1617 1618 * include/std/variant (variant::variant(_Tp&&)): Constrain to remove 1619 the constructor for empty variants from the candidate functions 1620 during class template argument deduction. 1621 * testsuite/20_util/variant/deduction.cc: New. 1622 1623 Backport from mainline 1624 2017-06-02 Jonathan Wakely <jwakely@redhat.com> 1625 1626 PR libstdc++/80939 1627 * include/std/variant (__erased_ctor, __erased_assign, __erased_swap) 1628 (__erased_hash): Remove constexpr specifier and qualify calls to 1629 __ref_cast. 1630 (__erased_dtor): Remove constexpr specifier and use _Destroy. 1631 1632 Backport from mainline 1633 2017-05-20 Tim Shen <timshen@google.com> 1634 1635 PR libstdc++/80737 1636 * include/std/variant(variant::variant): SFINAE on is_same first. 1637 * testsuite/20_util/variant/any.cc: test case. 1638 16392017-07-11 Jonathan Wakely <jwakely@redhat.com> 1640 1641 Backport from mainline 1642 2017-04-21 Jonathan Wakely <jwakely@redhat.com> 1643 1644 PR libstdc++/80316 1645 * include/std/future (_State_baseV2::_Setter::operator()): Remove 1646 _S_check calls that are done after the pointer to the shared state is 1647 already dereferenced. 1648 (_State_baseV2::_Setter<_Res, void>): Define specialization for void 1649 as partial specialization so it can be defined within the definition 1650 of _State_baseV2. 1651 (_State_baseV2::__setter): Call _S_check. 1652 (_State_baseV2::__setter(promise<void>*)): Add overload for use by 1653 promise<void>::set_value and promise<void>::set_value_at_thread_exit. 1654 (promise<T>, promise<T&>, promise<void>): Make _State a friend. 1655 (_State_baseV2::_Setter<void, void>): Remove explicit specialization. 1656 (promise<void>::set_value, promise<void>::set_value_at_thread_exit): 1657 Use new __setter overload. 1658 * testsuite/30_threads/promise/members/at_thread_exit2.cc: New test. 1659 * testsuite/30_threads/promise/members/set_exception.cc: Test 1660 promise<T&> and promise<void> specializations. 1661 * testsuite/30_threads/promise/members/set_exception2.cc: Likewise. 1662 Test for no_state error condition. 1663 * testsuite/30_threads/promise/members/set_value2.cc: Likewise. 1664 16652017-06-27 Jonathan Wakely <jwakely@redhat.com> 1666 1667 PR libstdc++/81221 1668 * include/bits/stl_algo.h (sample): Qualify with _GLIBCXX_STD_A not 1669 std. 1670 * testsuite/25_algorithms/sample/81221.cc: New. 1671 16722017-06-21 Ville Voutilainen <ville.voutilainen@gmail.com> 1673 1674 Backport from mainline 1675 2017-06-21 Ville Voutilainen <ville.voutilainen@gmail.com> 1676 1677 PR libstdc++/80675 1678 PR libstdc++/80940 1679 * include/std/istream: 1680 (__is_convertible_to_basic_istream_test(basic_istream<_Ch, _Up>*)): New. 1681 (__do_is_convertible_to_basic_istream_impl): Likewise. 1682 (__is_convertible_to_basic_istream_impl): Likewise. 1683 (__is_convertible_to_basic_istream): Use the new base. 1684 (__rvalue_istream_type): New. 1685 (operator>>(_Istream&&, _Tp&&)): Use the new helper alias 1686 for the SFINAE check, convert to the helper alias type before 1687 doing the actual extraction. 1688 * include/std/ostream: 1689 (__is_convertible_to_basic_ostream_test(basic_ostream<_Ch, _Up>*)): New. 1690 (__do_is_convertible_to_basic_ostream_impl): Likewise. 1691 (__is_convertible_to_basic_ostream_impl): Likewise. 1692 (__is_convertible_to_basic_ostream): Use the new base. 1693 (__rvalue_ostream_type): New. 1694 (operator<<(_Ostream&&, const _Tp&)): Use the new helper alias 1695 for the SFINAE check, convert to the helper alias type before 1696 doing the actual insertion. 1697 * testsuite/27_io/rvalue_streams-2.cc: Add new tests. 1698 16992017-06-21 Uros Bizjak <ubizjak@gmail.com> 1700 1701 * config/abi/post/alpha-linux-gnu/baseline_symbols.txt: Update. 1702 17032017-06-21 Jonathan Wakely <jwakely@redhat.com> 1704 1705 PR libstdc++/81092 1706 * configure: Regenerate. 1707 17082017-06-19 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1709 1710 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate. 1711 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise. 1712 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise. 1713 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise. 1714 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise. 1715 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt: 1716 Likewise. 1717 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise. 1718 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt: 1719 Likewise. 1720 17212017-06-18 H.J. Lu <hongjiu.lu@intel.com> 1722 1723 PR libstdc++/81092 1724 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated. 1725 17262017-06-16 Jakub Jelinek <jakub@redhat.com> 1727 1728 PR libstdc++/81092 1729 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Update. 1730 17312017-06-16 Jonathan Wakely <jwakely@redhat.com> 1732 1733 * include/bits/locale_conv.h (wbuffer_convert::sync): Fix condition. 1734 * testsuite/22_locale/conversions/buffer/2.cc: New. 1735 1736 * doc/xml/manual/appendix_contributing.xml: Link to the list of bad 1737 names, and link to the test docs and note higher DejaGnu version 1738 requirement. 1739 * doc/xml/manual/allocator.xml: Fix ViewCVS URLs. 1740 * doc/xml/manual/mt_allocator.xml: Likewise. 1741 * doc/xml/manual/test.xml: Correct instructions on running tests. 1742 * doc/html/*: Regenerate. 1743 1744 PR libstdc++/81092 1745 * acinclude.m4: Bump libtool_VERSION. 1746 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Update. 1747 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Update. 1748 * config/abi/pre/gnu.ver: Add wstring constructor symbols to new 1749 GLIBCXX_3.4.24 version. 1750 * doc/xml/manual/abi.xml: Document new versions. 1751 * doc/html/*: Regenerate. 1752 * testsuite/21_strings/basic_string/cons/char/8.cc: Use base object 1753 constructors to ensure required symbols are exported. 1754 * testsuite/21_strings/basic_string/cons/wchar_t/8.cc: Likewise. 1755 * testsuite/util/testsuite_abi.cc: Add new version. 1756 1757 * include/bits/locale_conv.h (wbuffer_convert::_M_put): Add missing 1758 return statement. 1759 * testsuite/21_strings/basic_string_view/operations/copy/char/1.cc: 1760 Return void. 1761 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc: 1762 Likewise. 1763 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: Add 1764 missing return statements. 1765 * testsuite/23_containers/unordered_map/modifiers/insert_or_assign.cc: 1766 Likewise. 1767 * testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc: 1768 Return void. 1769 * testsuite/special_functions/14_expint/pr68397.cc: Likewise. 1770 17712017-06-07 Jonathan Wakely <jwakely@redhat.com> 1772 1773 PR libstdc++/81002 1774 * include/bits/regex_compiler.h (__compile_nfa): Add template argument 1775 list to specify traits type. 1776 * testsuite/28_regex/basic_regex/ctors/basic/iter.cc: New. 1777 17782017-05-19 Jonathan Wakely <jwakely@redhat.com> 1779 1780 PR libstdc++/80796 1781 * include/bits/stl_algo.h (search): Add new overload for C++17. 1782 * testsuite/25_algorithms/search/searcher.cc: New. 1783 17842017-05-18 Jonathan Wakely <jwakely@redhat.com> 1785 1786 PR libstdc++/80478 1787 * include/std/functional (_Mem_fn_traits_base): Add specializations 1788 for noexcept member function types. 1789 * testsuite/20_util/function_objects/mem_fn/80478.cc: New test. 1790 17912017-05-18 Jonathan Wakely <jwakely@redhat.com> 1792 1793 * doc/xml/manual/policy_data_structures.xml: Fix typo. 1794 * doc/xml/manual/test_policy_data_structures.xml: Likewise. 1795 * doc/html/*: Regenerate. 1796 1797 * doc/xml/manual/abi.xml: Document latest library versions. 1798 * doc/xml/manual/build_hacking.xml: Document requirement to update 1799 abi.xml when bumping library versions. 1800 * doc/html/*: Regenerate. 1801 18022017-05-15 Jonathan Wakely <jwakely@redhat.com> 1803 1804 PR libstdc++/80761 1805 * include/bits/node_handle.h (_Node_insert_return): Reorder members. 1806 (tuple_size, tuple_element): Remove partial specializations. 1807 * include/bits/stl_tree.h (_Rb_tree::insert_return_type): Use 1808 const_iterator for std::set. 1809 * testsuite/23_containers/map/modifiers/extract.cc: New. 1810 * testsuite/23_containers/set/modifiers/extract.cc: New. 1811 * testsuite/23_containers/unordered_map/modifiers/extract.cc: New. 1812 * testsuite/23_containers/unordered_set/modifiers/extract.cc: New. 1813 18142017-05-12 Jonathan Wakely <jwakely@redhat.com> 1815 1816 PR libstdc++/78939 1817 * include/std/utility (tuple_size<cv T>) [__cplusplus > 201402L]: 1818 Only define partial specializations when tuple_size<T>::value is 1819 valid. 1820 * testsuite/20_util/tuple/78939.cc: New. 1821 18222017-05-02 Release Manager 1823 1824 * GCC 7.1.0 released. 1825 18262017-04-19 Jonathan Wakely <jwakely@redhat.com> 1827 1828 * doc/xml/manual/abi.xml: Rephrase one of the references to the 1829 Itanium C++ ABI. 1830 * doc/xml/manual/test.xml: Document DejaGnu 1.5.3 requirement. 1831 * doc/html/*: Regenerate. 1832 1833 * libsupc++/new: Update comment on #endif directive. 1834 1835 PR libstdc++/80448 1836 * include/experimental/bits/fs_dir.h (directory_iterator) 1837 (recursive_directory_iterator): Remove noexcept from defaulted 1838 constructors. 1839 1840 PR libstdc++/80446 1841 * include/std/type_traits (is_aggregate): Change __has_builtin checks. 1842 * libsupc++/new (launder): Likewise. 1843 18442017-04-18 Jonathan Wakely <jwakely@redhat.com> 1845 1846 * include/std/functional (default_searcher, __boyer_moore_array_base) 1847 (__is_std_equal_to, __boyer_moore_base_t, boyer_moore_searcher) 1848 (boyer_moore_horspool_searcher): Remove redundant namespace 1849 qualification. 1850 (default_searcher::operator()): Construct return value early and 1851 advance second member in-place. 1852 (boyer_moore_horspool_searcher::operator()): Increment random access 1853 iterator directly instead of using std::next. 1854 (boyer_moore_searcher::operator()): Fix return value. 1855 * testsuite/20_util/function_objects/searchers.cc: Check both parts 1856 of return values. 1857 18582017-04-12 Gerald Pfeifer <gerald@pfeifer.com> 1859 1860 * doc/xml/faq.xml: Update reference link to C++ ABI for Itanium. 1861 * doc/xml/manual/abi.xml. Ditto (thrice). 1862 18632017-04-03 Jonathan Wakely <jwakely@redhat.com> 1864 1865 * doc/xml/manual/status_cxx2017.xml: Remove duplicate table entry. 1866 * doc/html/*: Regenerate. 1867 1868 * testsuite/20_util/reference_wrapper/invoke.cc: Uncomment tests 1869 that no longer fail. 1870 1871 * include/bits/ios_base.h: Correct comment. 1872 * testsuite/util/testsuite_hooks.h: Likewise. 1873 1874 * doc/xml/manual/status_cxx2017.xml: Update C++17 status table. 1875 * doc/xml/manual/appendix_contributing.xml (contrib.organization): Add 1876 directories for debug, parallel and profile headers. 1877 * doc/html/*: Regenerate. 1878 1879 * include/bits/char_traits.h (__gnu_cxx::char_traits): Add 1880 _GLIBCXX14_CONSTEXPR on assign, compare, find, and length. 1881 (std::char_traits<char>, std::char_traits<wchar_t>): Add 1882 _GLIBCXX17_CONSTEXPR on assign. 1883 (std::char_traits<char16_t>, std::char_traits<char32_t>): Add 1884 _GLIBCXX17_CONSTEXPR on assign, compare, find, and length. 1885 * testsuite/21_strings/char_traits/requirements/ 1886 constexpr_functions_c++17.cc: New test. 1887 18882017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com> 1889 1890 PR libstdc++/79141 1891 * include/bits/stl_pair.h (__nonesuch_no_braces): New. 1892 (operator=(typename conditional< 1893 __and_<is_copy_assignable<_T1>, 1894 is_copy_assignable<_T2>>::value, 1895 const pair&, const __nonesuch&>::type)): Change __nonesuch 1896 to __nonesuch_no_braces. 1897 (operator=(typename conditional< 1898 __not_<__and_<is_copy_assignable<_T1>, 1899 is_copy_assignable<_T2>>>::value, 1900 const pair&, const __nonesuch&>::type)): Likewise. 1901 (operator=(typename conditional< 1902 __and_<is_move_assignable<_T1>, 1903 is_move_assignable<_T2>>::value, 1904 pair&&, __nonesuch&&>::type)): Likewise. 1905 * testsuite/20_util/pair/79141.cc: New. 1906 19072017-04-03 Ville Voutilainen <ville.voutilainen@gmail.com> 1908 1909 Implement std::is_aggregate. 1910 * include/std/type_traits (is_aggregate, is_aggregate_v): New. 1911 * testsuite/20_util/is_aggregate/requirements/explicit_instantiation.cc: 1912 New. 1913 * testsuite/20_util/is_aggregate/requirements/typedefs.cc: Likewise. 1914 * testsuite/20_util/is_aggregate/value.cc: Likewise. 1915 19162017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com> 1917 1918 Adjust optional's pretty printer for LWG 2900. 1919 * python/libstdcxx/v6/printers.py (StdExpOptionalPrinter.__init__): 1920 Look at the nested payload in case of non-experimental optional. 1921 19222017-03-29 Ville Voutilainen <ville.voutilainen@gmail.com> 1923 1924 Implement LWG 2900, The copy and move constructors 1925 of optional are not constexpr. 1926 * include/std/optional (_Optional_payload): New. 1927 (_Optional_base): Remove the bool parameter. 1928 (_Optional_base<_Tp, false>): Remove. 1929 (_Optional_base()): Adjust. 1930 (_Optional_base(nullopt_t)): Likewise. 1931 (_Optional_base(in_place_t, _Args&&...)): Likewise. 1932 (_Optional_base(in_place_t, initializer_list<_Up>, _Args&&...)): 1933 Likewise. 1934 (_Optional_base(const _Optional_base&)): Likewise. 1935 (_Optional_base(_Optional_base&&)): Likewise. 1936 (operator=(const _Optional_base&)): Likewise. 1937 (operator=(_Optional_base&&)): Likewise. 1938 (~_Optional_base()): Remove. 1939 (_M_is_engaged()): Adjust. 1940 (_M_get()): Likewise. 1941 (_M_construct(_Args&&...)): Likewise. 1942 (_M_destruct()): Likewise. 1943 (_M_reset()): Likewise. 1944 (_Optional_base::_Empty_byte): Remove. 1945 (_Optional_base::_M_empty): Remove. 1946 (_Optional_base::_M_payload): Adjust. 1947 * testsuite/20_util/optional/cons/value_neg.cc: Adjust. 1948 * testsuite/20_util/optional/constexpr/cons/value.cc: Add tests. 1949 19502017-03-28 Jonathan Wakely <jwakely@redhat.com> 1951 1952 PR libstdc++/80137 1953 * include/bits/random.tcc (generate_canonical): Use std::nextafter 1954 or numeric_limits::epsilon() to reduce out-of-range values. 1955 * testsuite/26_numerics/random/uniform_real_distribution/operators/ 1956 64351.cc: Verify complexity requirement is met. 1957 1958 * doc/xml/manual/abi.xml: Add xml:id anchor. 1959 * doc/xml/manual/using.xml (manual.intro.using.macros): Document 1960 _GLIBCXX_RELEASE. Link to new anchor for __GLIBCXX__ notes. 1961 (concurrency.io.structure): Add markup. 1962 * doc/html/*: Regenerate. 1963 1964 PR libstdc++/80229 1965 * include/bits/shared_ptr_base.h 1966 (__shared_ptr::_M_enable_shared_from_this_with): Change parameters to 1967 non-const and then use remove_cv to get unqualified type. 1968 * testsuite/20_util/enable_shared_from_this/members/const.cc: Don't 1969 cast away constness on object created const. 1970 * testsuite/20_util/shared_ptr/cons/80229.cc: New test. 1971 19722017-03-26 Markus Trippelsdorf <markus@trippelsdorf.de> 1973 1974 PR libstdc++/80183 1975 * include/bits/stl_tree.h: 1976 (_Rb_tree_header::_M_move_data(_Rb_tree_header&)): Also save _M_color. 1977 19782017-03-23 Jonathan Wakely <jwakely@redhat.com> 1979 1980 * testsuite/23_containers/array/tuple_interface/ 1981 tuple_element_debug_neg.cc: Adjust dg-error. 1982 * testsuite/23_containers/list/operations/78389.cc: Fix less-than to 1983 define a valid strict weak ordering. 1984 * testsuite/23_containers/priority_queue/67085.cc: Disable test for 1985 Debug Mode, due to debug checks making extra copies of predicate. 1986 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc: 1987 Likewise. 1988 1989 * doc/xml/faq.xml: Add link. 1990 * doc/xml/manual/backwards_compatibility.xml: Remove outdated 1991 information on pre-ISO headers. Replace broken link to C++ FAQ Lite. 1992 * doc/xml/manual/io.xml: Update broken link. 1993 * doc/html/*: Regenerate. 1994 19952017-03-23 Daniel Kruegler <daniel.kruegler@gmail.com> 1996 1997 Implement LWG 2686, Why is std::hash specialized for error_code, 1998 but not error_condition? 1999 * include/std/system_error (hash<error_condition>): Define for C++17. 2000 * testsuite/20_util/hash/operators/size_t.cc (hash<error_condition>): 2001 Instantiate test for error_condition. 2002 * testsuite/20_util/hash/requirements/explicit_instantiation.cc 2003 (hash<error_condition>): Instantiate hash<error_condition>. 2004 2005 * include/bits/c++config (_GLIBCXX17_INLINE): Define. 2006 * include/bits/regex_constants.h (All std::regex_constants constants): 2007 Add _GLIBCXX17_INLINE as per P0607R0. 2008 * include/bits/std_mutex.h (defer_lock, try_to_lock, adopt_lock): 2009 Likewise. 2010 * include/bits/stl_pair.h (piecewise_construct): Likewise. 2011 * include/bits/uses_allocator.h (allocator_arg, uses_allocator_v) 2012 (__is_uses_allocator_constructible_v) 2013 (__is_nothrow_uses_allocator_constructible_v): Likewise. 2014 * include/std/chrono (treat_as_floating_point_v): Likewise. 2015 * include/std/functional (is_bind_expression_v, is_placeholder_v): 2016 Likewise. 2017 * include/std/optional (nullopt): Likewise. 2018 * include/std/ratio (ratio_equal_v, ratio_not_equal_v, ratio_less_v) 2019 ratio_less_equal_v, ratio_greater_v, ratio_greater_equal_v): Likewise. 2020 * include/std/system_error (is_error_code_enum_v) 2021 (is_error_condition_enum_v): Likewise. 2022 * include/std/tuple (tuple_size_v, ignore): Likewise. 2023 (ignore): Declare ignore constexpr as per LWG 2773, declare assignment 2024 constexpr as per LWG 2933. 2025 * include/std/type_traits (All variable templates): Add 2026 _GLIBCXX17_INLINE as per P0607R0. 2027 * include/std/variant (variant_size_v, variant_npos, __index_of_v) 2028 (__tuple_count_v, __exactly_once): Likewise. 2029 * testsuite/18_support/headers/new/synopsis.cc 2030 (hardware_destructive_interference_size) 2031 (hardware_constructive_interference_size): Likewise for commented-out 2032 variables. 2033 * testsuite/20_util/tuple/creation_functions/constexpr.cc: Add new 2034 test function for constexpr std::ignore (LWG 2773). 2035 * testsuite/20_util/tuple/creation_functions/constexpr_cpp14.cc: New 2036 test for LWG 2933. 2037 20382017-03-22 Jonathan Wakely <jwakely@redhat.com> 2039 2040 * include/bits/shared_ptr.h (shared_ptr, weak_ptr): Add deduction 2041 guides for C++17. 2042 * include/bits/std_function.h (function): Likewise. 2043 * include/bits/stl_pair.h (pair): Likewise. 2044 * include/debug/array (__gnu_debug::array): Likewise. 2045 * include/std/array (array): Likewise. 2046 * include/std/functional (make_default_searcher) 2047 (make_boyer_moore_searcher, make_boyer_moore_horspool_searcher): 2048 Remove generator functions. 2049 * include/std/tuple (tuple): Add deduction guides. 2050 * include/std/valarray (valarray): Likewise. 2051 * testsuite/20_util/function_objects/searchers.cc: Adjust to use 2052 class template argument deduction instead of generator functions. 2053 * testsuite/20_util/function/cons/deduction.cc: New test. 2054 * testsuite/20_util/optional/cons/deduction_guide.cc: Rename to ... 2055 * testsuite/20_util/optional/cons/deduction.cc: ... here. 2056 * testsuite/20_util/pair/cons/deduction.cc: New test. 2057 * testsuite/20_util/shared_ptr/cons/deduction.cc: New test. 2058 * testsuite/20_util/tuple/cons/deduction.cc: New test. 2059 * testsuite/20_util/tuple/element_access/get_neg.cc: Adjust dg-error. 2060 * testsuite/20_util/unique_ptr/cons/deduction_neg.cc: New test. 2061 * testsuite/20_util/weak_ptr/cons/deduction.cc: New test. 2062 * testsuite/23_containers/array/cons/deduction.cc: New test. 2063 * testsuite/23_containers/array/cons/deduction_neg.cc: New test. 2064 * testsuite/23_containers/array/tuple_interface/get_debug_neg.cc: 2065 Adjust dg-error. 2066 * testsuite/23_containers/array/tuple_interface/get_neg.cc: Likewise. 2067 * testsuite/23_containers/array/tuple_interface/tuple_element_neg.cc: 2068 Likewise. 2069 * testsuite/26_numerics/valarray/deduction.cc: New test. 2070 * testsuite/30_threads/lock_guard/cons/deduction.cc: New test. 2071 * testsuite/30_threads/scoped_lock/cons/deduction.cc: New test. 2072 * testsuite/30_threads/unique_lock/cons/deduction.cc: New test. 2073 20742017-03-20 François Dumont <fdumont@gcc.gnu.org> 2075 2076 * include/bits/stl_deque.h (deque): Access allocator value_type only if 2077 concept checks are enabled. 2078 * include/bits/stl_stack.h (stack): Likewise. 2079 * include/bits/stl_vector.h (vector): Likewise. 2080 * include/bits/stl_list.h (list): Likewise and check 2081 _SGIAssignableConcept only in C++03. 2082 * include/bits/stl_map.h (map): Likewise. 2083 * include/bits/stl_set.h (set): Likewise. 2084 * include/bits/stl_multimap.h (multimap): Likewise. 2085 * include/bits/stl_multiset.h (multiset): Likewise. 2086 * include/bits/stl_queue.h (queue, priority_queue): Likewise. 2087 20882017-03-18 Gerald Pfeifer <gerald@pfeifer.com> 2089 2090 * doc/xml/manual/appendix_contributing.xml: Convert link to 2091 ansi.org to https. 2092 Update link to the C++ standard at ansi.org. 2093 2094 * doc/xml/faq.xml: Remove information redundant with the above; 2095 instead add a reference. 2096 20972017-03-17 Jonathan Wakely <jwakely@redhat.com> 2098 2099 * src/c++11/codecvt.cc (range): Add non-type template parameter and 2100 define oerloaded operators for reading and writing code units. 2101 (range<Elem, false>): Define partial specialization for accessing 2102 wide characters in potentially unaligned byte ranges. 2103 (ucs2_span(const char16_t*, const char16_t*, ...)) 2104 (ucs4_span(const char16_t*, const char16_t*, ...)): Change parameters 2105 to range<const char16_t, false> in order to avoid unaligned reads. 2106 (__codecvt_utf16_base<char16_t>::do_out) 2107 (__codecvt_utf16_base<char32_t>::do_out) 2108 (__codecvt_utf16_base<wchar_t>::do_out): Use range specialization for 2109 unaligned data to avoid unaligned writes. 2110 (__codecvt_utf16_base<char16_t>::do_in) 2111 (__codecvt_utf16_base<char32_t>::do_in) 2112 (__codecvt_utf16_base<wchar_t>::do_in): Likewise for writes. Return 2113 error if there are unprocessable trailing bytes. 2114 (__codecvt_utf16_base<char16_t>::do_length) 2115 (__codecvt_utf16_base<char32_t>::do_length) 2116 (__codecvt_utf16_base<wchar_t>::do_length): Pass arguments of type 2117 range<const char16_t, false> to span functions. 2118 * testsuite/22_locale/codecvt/codecvt_utf16/misaligned.cc: New test. 2119 21202017-03-16 Jonathan Wakely <jwakely@redhat.com> 2121 2122 PR libstdc++/79980 2123 * src/c++11/codecvt.cc (to_integer(codecvt_mode)): Fix target type. 2124 2125 PR libstdc++/80041 2126 * src/c++11/codecvt.cc (__codecvt_utf16_base<wchar_t>::do_out) 2127 (__codecvt_utf16_base<wchar_t>::do_in): Convert char arguments to 2128 char16_t to work with UTF-16 instead of UTF-8. 2129 * testsuite/22_locale/codecvt/codecvt_utf16/80041.cc: New test. 2130 2131 * src/c++11/codecvt.cc (codecvt<char16_t, char, mbstate_t>) 2132 (codecvt<char32_t, char, mbstate_t>, __codecvt_utf8_base<char16_t>) 2133 (__codecvt_utf8_base<char32_t>, __codecvt_utf8_base<wchar_t>) 2134 (__codecvt_utf16_base<char16_t>, __codecvt_utf16_base<char32_t>) 2135 (__codecvt_utf16_base<wchar_t>, __codecvt_utf8_utf16_base<char16_t>) 2136 (__codecvt_utf8_utf16_base<char32_t>) 2137 (__codecvt_utf8_utf16_base<wchar_t>): Fix do_encoding() and 2138 do_max_length() return values. 2139 * testsuite/22_locale/codecvt/codecvt_utf16/members.cc: New test. 2140 * testsuite/22_locale/codecvt/codecvt_utf8/members.cc: New test. 2141 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/members.cc: New test. 2142 2143 PR libstdc++/79980 2144 * include/bits/locale_conv.h (__do_str_codecvt): Set __count on 2145 error path. 2146 * src/c++11/codecvt.cc (operator&=, operator|=, operator~): Overloads 2147 for manipulating codecvt_mode values. 2148 (read_utf16_bom): Compare input to BOM constants instead of integral 2149 constants that depend on endianness. Take mode parameter by 2150 reference and adjust it, to distinguish between no BOM present and 2151 UTF-16BE BOM present. 2152 (ucs4_in, ucs2_span, ucs4_span): Adjust calls to read_utf16_bom. 2153 (surrogates): New enumeration type. 2154 (utf16_in, utf16_out): Add surrogates parameter to choose between 2155 UTF-16 and UCS2 behaviour. 2156 (utf16_span, ucs2_span): Use std::min not std::max. 2157 (ucs2_out): Use std::min not std::max. Disallow surrogate pairs. 2158 (ucs2_in): Likewise. Adjust calls to read_utf16_bom. 2159 * testsuite/22_locale/codecvt/codecvt_utf16/79980.cc: New test. 2160 * testsuite/22_locale/codecvt/codecvt_utf8/79980.cc: New test. 2161 2162 PR libstdc++/79511 2163 * src/c++11/codecvt.cc (write_utf16_code_point): Don't write 0xffff 2164 as a surrogate pair. 2165 (__codecvt_utf8_utf16_base<char32_t>::do_in): Use native endianness 2166 for internal representation. 2167 (__codecvt_utf8_utf16_base<wchar_t>::do_in): Likewise. 2168 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/79511.cc: New test. 2169 2170 PR libstdc++/80064 2171 * include/bits/stl_heap.h (__is_heap, push_heap, __adjust_heap) 2172 (pop_heap, make_heap, sort_heap, is_heap_until, is_heap): Cope with 2173 invalid instantiations using function types for _Compare argument. 2174 * testsuite/25_algorithms/make_heap/80064.cc: New test. 2175 2176 PR libstdc++/67440 2177 * python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name 2178 for GDB 7.6 compatibility, use gdb.Type.unqualified instead. 2179 21802017-03-15 Ville Voutilainen <ville.voutilainen@gmail.com> 2181 2182 Implement LWG 2857, {variant,optional,any}::emplace should 2183 return the constructed value. 2184 * include/std/any (emplace(_Args&&...)): Change the return type and 2185 return a reference to the constructed value. 2186 (emplace(initializer_list<_Up>, _Args&&...)): Likewise. 2187 * include/std/optional (emplace(_Args&&...)): Likewise. 2188 (emplace(initializer_list<_Up>, _Args&&...)): Likewise. 2189 * include/std/variant (emplace<_Tp>(_Args&&...)): Likewise. 2190 (emplace<_Tp>(initializer_list<_Up>, _Args&&...)): Likewise. 2191 (emplace<_Np>(_Args&&...)): Likewise. 2192 (emplace<_Np>(initializer_list<_Up>, _Args&&...)): Likewise. 2193 * testsuite/20_util/any/assign/emplace.cc: Add tests for 2194 checking the return value of emplace. 2195 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust. 2196 * testsuite/20_util/optional/assignment/6.cc: Add tests for 2197 checking the return value of emplace. 2198 * testsuite/20_util/variant/run.cc: Likewise. 2199 22002017-03-15 Xi Ruoyao <ryxi@stu.xidian.edu.cn> 2201 2202 PR libstdc++/62045 2203 * include/ext/pb_ds/qdetail/binary_heap_/binary_heap_.hpp 2204 (is_heap): Remove. 2205 (push_heap): Remove the wrong checking using is_heap. 2206 (make_heap): Remove the assertion using is_heap. 2207 * include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp 2208 (modify): Ditto. 2209 (resize_for_insert_if_needed): Add PB_DS_ASSERT_VALID after 2210 calling make_heap. 2211 22122017-03-15 Jonathan Wakely <jwakely@redhat.com> 2213 2214 PR libstdc++/62045 2215 * testsuite/ext/pb_ds/regression/priority_queue_binary_heap-62045.cc: 2216 New test. 2217 * testsuite/ext/pb_ds/regression/priority_queues.cc: Fix copy&paste 2218 error in comment. 2219 22202017-03-15 Jonathan Wakely <jwakely@redhat.com> 2221 2222 * acinclude.m4 (GLIBCXX_CHECK_S_ISREG_OR_S_IFREG): Fix typo in 2223 comment. 2224 * config.h.in: Regenerate. 2225 * configure: Regenerate. 2226 * doc/Makefile.in: Regenerate. 2227 22282017-03-14 Jonathan Wakely <jwakely@redhat.com> 2229 2230 PR libstdc++/79162 2231 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] 2232 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Replace 2233 with a constrained template. 2234 [!_GLIBCXX_USE_CXX11_ABI] 2235 (basic_string<C,T,A>::operator=(basic_string_view<C,T>)): Likewise. 2236 * testsuite/21_strings/basic_string/cons/char/79162.cc: New test. 2237 * testsuite/21_strings/basic_string/cons/wchar_t/79162.cc: New test. 2238 22392017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com> 2240 2241 PR libstdc++/80034 2242 * include/bits/list.tcc (merge(list&&)): Use const for the size_t 2243 in the catch-block. 2244 (merge(list&&, _StrictWeakOrdering)): Likewise. 2245 * testsuite/23_containers/list/operations/80034.cc: New. 2246 22472017-03-13 Ville Voutilainen <ville.voutilainen@gmail.com> 2248 2249 Implement LWG 2806, Base class of bad_optional_access. 2250 * include/std/optional (bad_optional_access): 2251 Derive from std::exception. 2252 (bad_optional_access::bad_optional_access): Adjust. 2253 (bad_optional_access::what): New. 2254 (__throw_bad_optional_access(const char*)): 2255 Remove the parameter and adjust calls. 2256 * testsuite/20_util/optional/cons/value_neg.cc: Adjust. 2257 * testsuite/20_util/optional/typedefs.cc: Likewise. 2258 22592017-03-12 Ville Voutilainen <ville.voutilainen@gmail.com> 2260 2261 Implement LWG 2934, optional<const T> doesn't compare with T. 2262 * include/std/optional 2263 (operator==(const optional<_Tp>&, const optional<_Tp>&)): 2264 Turn into operator==(const optional<_Tp>&, const optional<_Up>&). 2265 (operator!=(const optional<_Tp>&, const optional<_Tp>&)): 2266 Turn into operator!=(const optional<_Tp>&, const optional<_Up>&). 2267 (operator<(const optional<_Tp>&, const optional<_Tp>&)): 2268 Turn into operator<(const optional<_Tp>&, const optional<_Up>&. 2269 (operator>(const optional<_Tp>&, const optional<_Tp>&)): 2270 Turn into operator>(const optional<_Tp>&, const optional<_Up>&. 2271 (operator<=(const optional<_Tp>&, const optional<_Tp>&)): 2272 Turn into operator<=(const optional<_Tp>&, const optional<_Up>&). 2273 (operator>=(const optional<_Tp>&, const optional<_Tp>&)): 2274 Turn into operator>=(const optional<_Tp>&, const optional<_Up>&). 2275 (operator==(const optional<_Tp>&, const _Tp&)): 2276 Turn into operator==(const optional<_Tp>&, const _Up&). 2277 (operator==(const _Tp&, const optional<_Tp>&)): 2278 Turn into operator==(const _Up&, const optional<_Tp>&). 2279 (operator!=(const optional<_Tp>&, const _Tp&)): 2280 Turn into operator!=(const optional<_Tp>&, const _Up&). 2281 (operator!=(const _Tp&, const optional<_Tp>&)): 2282 Turn into operator!=(const _Up&, const optional<_Tp>&). 2283 (operator<(const optional<_Tp>&, const _Tp&)): 2284 Turn into operator<(const optional<_Tp>&, const _Up&). 2285 (operator<(const _Tp&, const optional<_Tp>&)): 2286 Turn into operator<(const _Up&, const optional<_Tp>&). 2287 (operator>(const optional<_Tp>&, const _Tp&)): 2288 Turn into operator>(const optional<_Tp>&, const _Up&). 2289 (operator>(const _Tp&, const optional<_Tp>&)): 2290 Turn into operator>(const _Up&, const optional<_Tp>&). 2291 (operator<=(const optional<_Tp>&, const _Tp&)): 2292 Turn into operator<=(const optional<_Tp>&, const _Up&). 2293 (operator<=(const _Tp&, const optional<_Tp>&)): 2294 Turn into operator<=(const _Up&, const optional<_Tp>&). 2295 (operator>=(const optional<_Tp>&, const _Tp&)): 2296 Turn into operator>=(const optional<_Tp>&, const _Up&). 2297 (operator>=(const _Tp&, const optional<_Tp>&)): 2298 Turn into operator>=(const _Up&, const optional<_Tp>&). 2299 * testsuite/20_util/optional/relops/7.cc: New. 2300 23012017-03-10 Jonathan Wakely <jwakely@redhat.com> 2302 2303 * testsuite/17_intro/names.cc: Undefine macros that clash with 2304 identifiers in AIX system headers. 2305 2306 * include/bits/invoke.h (__invoke): Use __invoke_result instead of 2307 result_of, and __is_nothrow_invocable instead of 2308 __is_nothrow_callable. 2309 * include/bits/shared_ptr_base.h (__shared_ptr): Use __is_invocable 2310 instead of __is_callable. 2311 * include/std/functional (invoke): use invoke_result_t instead of 2312 result_of_t and is_nothrow_invocable instead of is_nothrow_callable. 2313 (_Not_fn): Use __invoke_result instead of result_of. 2314 * include/std/type_traits (__result_of_memobj, __result_of_memfun): 2315 Remove partial specializations for reference_wrapper types. 2316 (__result_of_impl): Use __inv_unwrap to strip reference_wrapper. 2317 (__invoke_result): Define replacement for result_of and then use it to 2318 define result_of. 2319 (__is_callable_impl, __is_callable, __is_nothrow_callable): Replace 2320 with __is_invocable_impl, __is_invocable, and __is_nothrow_invocable 2321 respectively. 2322 (invoke_result, invoke_result_t): Define for C++17. 2323 (is_callable, is_nothrow_callable): Replace with is_invocable, 2324 is_invocable_r, is_nothrow_invocable, and is_nothrow_invocable_r. 2325 (is_callable_v, is_nothrow_callable_v): Replace with is_invocable_v, 2326 is_invocable_r_v, is_nothrow_invocable_v, and is_nothrow_invocable_r_v. 2327 * include/std/variant (hash<variant<T...>>): Use is_nothrow_invocable_v 2328 instead of is_nothrow_callable_v. 2329 * testsuite/20_util/function_objects/invoke/59768.cc: Remove unused 2330 main function. 2331 * testsuite/20_util/function_objects/not_fn/1.cc: Use is_invocable 2332 instead of is_callable. 2333 * testsuite/20_util/is_callable/*: Rename directory and adjust tests 2334 to use new traits. 2335 * testsuite/20_util/is_nothrow_callable/*: Likewise. 2336 * testsuite/20_util/optional/hash.cc: Use is_invocable_v instead of 2337 is_callable. 2338 * testsuite/20_util/variant/hash.cc: Likewise. 2339 23402017-03-10 George Lander <george.lander@arm.com> 2341 2342 * acinclude.m4 (glibcxx_cv_obsolete_isnan): Define 2343 _GLIBCXX_INCLUDE_NEXT_C_HEADERS before including math.h. 2344 * configure: Regenerate. 2345 23462017-03-09 Jonathan Wakely <jwakely@redhat.com> 2347 2348 * include/std/functional (_Not_fn): Define macro to simplify 2349 repetitive function definitions. 2350 2351 * doc/xml/manual/status_cxx2017.xml: Document std::byte support. 2352 * include/c_global/cstddef (std::byte): Define for C++17. 2353 * testsuite/18_support/byte/global_neg.cc: New test. 2354 * testsuite/18_support/byte/ops.cc: New test. 2355 * testsuite/18_support/byte/requirements.cc: New test. 2356 23572017-03-05 Jonathan Wakely <jwakely@redhat.com> 2358 2359 * doc/xml/manual/status_cxx2017.xml: Document P0156R2 status. 2360 * doc/html/*: Regenerate. 2361 * include/std/mutex (scoped_lock): Implement new C++17 template. 2362 * testsuite/30_threads/scoped_lock/cons/1.cc: New test. 2363 * testsuite/30_threads/scoped_lock/requirements/ 2364 explicit_instantiation.cc: New test. 2365 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: New test. 2366 23672017-03-02 Gerald Pfeifer <gerald@pfeifer.com> 2368 François Dumont <frs.dumont@gmail.com> 2369 Jonathan Wakely <jwakely@redhat.com> 2370 2371 * doc/xml/manual/debug_mode.xml: Update and simplify note 2372 on link- and run-time coexistence. 2373 23742017-03-02 Jonathan Wakely <jwakely@redhat.com> 2375 2376 * testsuite/17_intro/headers/names.cc: Rename to ... 2377 * testsuite/17_intro/names.cc: ... here. 2378 2379 PR libstdc++/79789 2380 * include/bits/hashtable_policy.h (__clp2): Use reserved names for 2381 parameters and local variables. 2382 * include/bits/ios_base.h (make_error_code, make_error_condition): 2383 Likewise. 2384 * include/bits/list.tcc (list::sort): Likewise. 2385 * include/bits/mask_array.h (mask_array): Likewise. 2386 * include/bits/regex.h (regex_token_iterator): Likewise. 2387 * include/bits/slice_array.h (slice_array): Likewise. 2388 * include/bits/stl_algo.h (__sample): Likewise. 2389 * include/std/memory (undeclare_no_pointers): Likewise. 2390 * include/std/type_traits (is_callable_v, is_nothrow_callable_v): 2391 Likewise. 2392 * libsupc++/exception_ptr.h (__dest_thunk): Likewise. 2393 * testsuite/17_intro/headers/names.cc: New test. 2394 2395 PR libstdc++/79798 2396 * include/std/functional (bind::_Res_type_impl): Fix incorrect use of 2397 result_of that loses top-level cv-qualifiers. 2398 * testsuite/20_util/bind/79798.cc: New test. 2399 24002017-03-01 Gerald Pfeifer <gerald@pfeifer.com> 2401 2402 * doc/xml/manual/documentation_hacking.xml: Tweak link to 2403 doxygen.org. 2404 24052017-02-23 Jonathan Wakely <jwakely@redhat.com> 2406 2407 * include/experimental/iterator: Include <iterator>. 2408 * testsuite/experimental/iterator/requirements.cc: Check for contents 2409 of <iterator>. 2410 24112017-02-19 Dinka Ranns <dinka.ranns@googlemail.com> 2412 2413 C++17 GB50 resolution 2414 * include/std/chrono (duration::operator++()): Add 2415 _GLIBCXX17_CONSTEXPR. 2416 (duration::operator++(int)): Likewise. 2417 (duration::operator--()): Likewise. 2418 (duration::operator--(int)): Likewise. 2419 (duration::operator+=(const duration&)): Likewise. 2420 (duration::operator-=(const duration&)): Likewise. 2421 (duration::operator*=(const rep&)): Likewise. 2422 (duration::operator/=(const rep&)): Likewise. 2423 (duration::operator%=(const rep&)): Likewise. 2424 (duration::operator%=(const duration&)): Likewise. 2425 (time_point::operator+=(const duration&)): Likewise. 2426 (time_point::operator-=(const duration&)): Likewise. 2427 * testsuite/20_util/duration/arithmetic/constexpr_c++17.cc: New test. 2428 * testsuite/20_util/duration/literals/range.cc: Adjust dg-error. 2429 * testsuite/20_util/time_point/arithmetic/constexpr.cc: New test. 2430 24312017-02-19 Gerald Pfeifer <gerald@pfeifer.com> 2432 2433 * doc/xml/manual/debug.xml: Adjust link to ThreadSanitizer. 2434 24352017-02-18 Gerald Pfeifer <gerald@pfeifer.com> 2436 2437 * doc/xml/manual/io.xml: Update link to groups.google.com. 2438 Tweak link description. 2439 24402017-02-18 Gerald Pfeifer <gerald@pfeifer.com> 2441 2442 * doc/xml/manual/profile_mode.xml: Fix link. 2443 24442017-02-16 Gerald Pfeifer <gerald@pfeifer.com> 2445 2446 * doc/xml/manual/policy_data_structures.xml: Simplify and 2447 standardize references to boost.org. 2448 * doc/xml/manual/policy_data_structures_biblio.xml: Ditto. 2449 * doc/xml/manual/shared_ptr.xml: Ditto. 2450 24512017-02-16 Jonathan Wakely <jwakely@redhat.com> 2452 2453 PR libstdc++/60936 2454 * src/c++11/snprintf_lite.cc (__concat_size_t): Calculate length 2455 written to buffer, not length remaining in buffer. 2456 24572017-02-15 Tim Shen <timshen@google.com> 2458 2459 PR libstdc++/78723 2460 * include/std/variant (operator<(), operator>(), operator<=(), 2461 operator>=(), operator==(), operator!=()): Implement P0393R3. 2462 * testsuite/20_util/variant/compile.cc: Adjust tests. 2463 * testsuite/20_util/variant/run.cc: Adjust tests. 2464 24652017-02-15 Tim Shen <timshen@google.com> 2466 2467 PR libstdc++/79513 2468 * include/std/variant (visit()): Forward variant types to the return 2469 type detection code. 2470 * testsuite/20_util/variant/compile.cc: Add test cases. 2471 24722017-02-13 H.J. Lu <hongjiu.lu@intel.com> 2473 2474 PR libstdc++/79348 2475 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated. 2476 24772017-02-13 Jakub Jelinek <jakub@redhat.com> 2478 2479 PR libstdc++/79348 2480 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. 2481 * config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt: Likewise. 2482 * config/abi/post/i386-linux-gnu/baseline_symbols.txt: Likewise. 2483 * config/abi/post/i486-linux-gnu/baseline_symbols.txt: Likewise. 2484 * config/abi/post/aarch64-linux-gnu/baseline_symbols.txt: Likewise. 2485 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Likewise. 2486 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Likewise. 2487 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Likewise. 2488 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Likewise. 2489 24902017-02-13 Jonathan Wakely <jwakely@redhat.com> 2491 2492 PR libstdc++/79486 2493 * include/std/future (__future_base::_Task_state::_M_run) 2494 (__future_base::_Task_state::_M_run_delayed): Use lvalue types in 2495 result_of expressions. 2496 * testsuite/30_threads/packaged_task/79486.cc: New. 2497 24982017-02-11 Jonathan Wakely <jwakely@redhat.com> 2499 2500 PR libstdc++/79467 2501 * include/bits/shared_ptr_base.h (__shared_ptr(_Yp*, _Deleter)) 2502 (__shared_ptr(_Yp*, _Deleter, _Alloc)): Use lvalue types in 2503 __is_callable check. 2504 * testsuite/20_util/shared_ptr/cons/79467.cc: New. 2505 2506 * include/bits/atomic_base.h: Re-indent. 2507 25082017-02-10 Gerald Pfeifer <gerald@pfeifer.com> 2509 2510 * doc/xml/manual/profile_mode.xml: Update a paper reference. 2511 25122017-02-08 Gerald Pfeifer <gerald@pfeifer.com> 2513 2514 * src/c++11/snprintf_lite.cc (__err): Use https for bug reporting. 2515 25162017-02-08 Jonathan Wakely <jwakely@redhat.com> 2517 2518 * doc/xml/manual/policy_data_structures.xml: Fix spelling of author's 2519 name. 2520 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. Remove 2521 broken links to texts that are no longer online. 2522 * doc/xml/manual/profile_mode.xml: Update links to CGO 2009 paper and 2523 LCPC 2006 paper. 2524 * doc/xml/manual/using.xml: Update links to memory model information. 2525 * doc/xml/manual/using_exceptions.xml: Update link to "Appendix E: 2526 Standard-Library Exception Safety". 2527 * doc/html/*: Regenerate. 2528 25292017-02-08 Gerald Pfeifer <gerald@pfeifer.com> 2530 2531 * doc/xml/manual/profile_mode.xml: Unbreak link to 2532 "Optimizing Sorting with Machine Learning Algorithms". 2533 25342017-02-08 Gerald Pfeifer <gerald@pfeifer.com> 2535 2536 * src/c++11/snprintf_lite.cc (__err): Update bug reporting URL. 2537 25382017-02-08 Gerald Pfeifer <gerald@pfeifer.com> 2539 2540 * doc/xml/manual/abi.xml: Update link to "Sun Studio 11: C++ 2541 Migration Guide". 2542 25432017-02-07 Gerald Pfeifer <gerald@pfeifer.com> 2544 2545 * doc/html/ext/lwg-active.html: Remove. 2546 * doc/html/ext/lwg-closed.html: Ditto. 2547 * doc/html/ext/lwg-defects.html: Ditto. 2548 2549 * doc/Makefile.am (xml_extradir): Remove. 2550 (xml_extra): Ditto. 2551 (stamp-html-docbook-lwg): Remove recipe... 2552 (stamp-html-docbook-data): ...and its use here. 2553 * doc/Makefile.in: Regenerate. 2554 2555 * doc/xml/manual/intro.xml: Shorten two paragraphs explaining 2556 the relationship to the upstream working group. 2557 Replace a local link to ../ext/lwg-active.html by the upstream one. 2558 Replace all reference to ../ext/lwg-defects.html by a new entity 2559 &DR; which refers to the upstream address. 2560 25612017-02-07 Gerald Pfeifer <gerald@pfeifer.com> 2562 2563 * doc/xml/manual/status_cxx2017.xml: Fix link to N4284. 2564 25652017-02-06 Jonathan Wakely <jwakely@redhat.com> 2566 2567 PR libstdc++/79323 2568 * testsuite/20_util/duration/literals/range.cc: Prune extra output 2569 at -O0. 2570 25712017-02-06 Gerald Pfeifer <gerald@pfeifer.com> 2572 2573 * doc/xml/manual/documentation_hacking.xml: Update URL of the 2574 DocBook Element Reference. Use that term as link description 2575 instead of "online". 2576 epubcheck has moved to GitHub. 2577 Remove obsolete link to DocBook Publishing Tools. 2578 25792017-02-03 Jonathan Wakely <jwakely@redhat.com> 2580 2581 PR libstdc++/66145 2582 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Restore ABI override 2583 so new ios::failure can be caught even when old ABI is the default. 2584 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise. 2585 * testsuite/27_io/basic_istream/extractors_arithmetic/char/ 2586 exceptions_failbit.cc: Likewise. 2587 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/ 2588 exceptions_failbit.cc: Likewise. 2589 * testsuite/27_io/basic_istream/extractors_other/char/ 2590 exceptions_null.cc: Likewise. 2591 * testsuite/27_io/basic_istream/extractors_other/wchar_t/ 2592 exceptions_null.cc: Likewise. 2593 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise. 2594 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise. 2595 * testsuite/27_io/basic_ostream/inserters_other/char/ 2596 exceptions_null.cc: Likewise. 2597 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ 2598 exceptions_null.cc: Likewise. 2599 * testsuite/27_io/ios_base/storage/2.cc: Likewise. 2600 2601 PR libstdc++/60936 2602 * src/c++11/Makefile.am: Add new files. 2603 * src/c++11/Makefile.in: Regenerate. 2604 * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI] 2605 (operator<<, operator>>, getline): Move explicit instantiations to ... 2606 * src/c++11/cow-string-io-inst.cc: ... new file. 2607 * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI] 2608 (operator<<, operator>>, getline): Move explicit instantiations to ... 2609 * src/c++11/cow-wstring-io-inst.cc: ... new file. 2610 * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error) 2611 (__throw_future_error, __throw_bad_function_call): 2612 (__throw_regex_error): Move functions for C++11 exceptions to the 2613 files that define the exception types. 2614 * src/c++11/functional.cc (__throw_bad_function_call): Move here. 2615 * src/c++11/future.cc (__throw_future_error): Likewise. 2616 * src/c++11/ios.cc (__throw_ios_failure): Likewise. 2617 * src/c++11/regex.cc (__throw_regex_error): Likewise. 2618 * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal 2619 representation directly instead of calling __int_to_char. 2620 * src/c++11/sso_string.cc (__sso_string): New file for definition 2621 of __sso_string type. 2622 * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for 2623 explicit instantiations of narrow string I/O functions. 2624 * src/c++11/system_error.cc (__throw_system_error): Move here. 2625 (__sso_string): Move to new file. 2626 * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for 2627 explicit instantiations of wide string I/O functions. 2628 * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<) 2629 (operator>>, getline): Remove explicit instantiations from here. 2630 26312017-02-02 H.J. Lu <hongjiu.lu@intel.com> 2632 2633 * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated. 2634 26352017-02-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2636 2637 * configure.host: Separate Solaris/SPARC and x86 baselines. 2638 * config/abi/post/solaris2.10/baseline_symbols.txt: Move ... 2639 * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: ... here. 2640 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Move ... 2641 * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt: 2642 ... here. 2643 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Move ... 2644 * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: ... here. 2645 * config/abi/post/i386-solaris2.10/baseline_symbols.txt: New file. 2646 * config/abi/post/solaris2.11/baseline_symbols.txt: Move ... 2647 * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: ... here. 2648 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Move ... 2649 * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt: 2650 ... here. 2651 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Move ... 2652 * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: ... here. 2653 * config/abi/post/i386-solaris2.11/baseline_symbols.txt: New file. 2654 2655 * config/abi/post/solaris2.10/baseline_symbols.txt: Regenerate. 2656 * config/abi/post/solaris2.10/amd64/baseline_symbols.txt: Likewise. 2657 * config/abi/post/solaris2.10/sparcv9/baseline_symbols.txt: Likewise. 2658 * config/abi/post/solaris2.11/baseline_symbols.txt: Likewise. 2659 * config/abi/post/solaris2.11/amd64/baseline_symbols.txt: Likewise. 2660 * config/abi/post/solaris2.11/sparcv9/baseline_symbols.txt: Likewise. 2661 26622017-02-01 Jonathan Wakely <jwakely@redhat.com> 2663 2664 PR libstdc++/78346 2665 * include/bits/predefined_ops.h (_Iter_equals_iter): Store iterator 2666 not its referent. 2667 (_Iter_comp_to_iter): Likewise. 2668 * testsuite/25_algorithms/search/78346.cc: New test. 2669 2670 PR libstdc++/79254 2671 * config/abi/pre/gnu.ver: Remove recently added symbols. 2672 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] 2673 (basic_string::_M_copy_assign): Remove. 2674 (basic_string::operator=(const basic_string&)): Don't dispatch to 2675 _M_copy_assign. If source object is small just deallocate, otherwise 2676 perform new allocation before making any changes. 2677 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] 2678 (basic_string::_M_copy_assign(const basic_string&, true_type)): 2679 Remove. 2680 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc: 2681 Test cases where the allocators are equal or the string is small. 2682 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc: 2683 Likewise. 2684 26852017-01-30 Ville Voutilainen <ville.voutilainen@gmail.com> 2686 2687 Implement LWG 2825, LWG 2756 breaks class template argument 2688 deduction for optional. 2689 * include/std/optional: Add a deduction guide. 2690 * testsuite/20_util/optional/cons/deduction_guide.cc: New. 2691 26922017-01-27 Jonathan Wakely <jwakely@redhat.com> 2693 2694 PR libstdc++/79254 2695 * config/abi/pre/gnu.ver: Add new symbols. 2696 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] 2697 (basic_string::_M_copy_assign): New overloaded functions to perform 2698 copy assignment. 2699 (basic_string::operator=(const basic_string&)): Dispatch to 2700 _M_copy_assign. 2701 * include/bits/basic_string.tcc [_GLIBCXX_USE_CXX11_ABI] 2702 (basic_string::_M_copy_assign(const basic_string&, true_type)): 2703 Define, performing rollback on exception. 2704 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc: 2705 Test exception-safety guarantee. 2706 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc: 2707 Likewise. 2708 * testsuite/util/testsuite_allocator.h (uneq_allocator::swap): Make 2709 std::swap visible. 2710 27112017-01-26 Jonathan Wakely <jwakely@redhat.com> 2712 2713 PR libstdc++/70607 2714 * include/tr1/complex (conj): Remove using-declaration and restore 2715 overloads, reverting previous change. 2716 2717 * testsuite/23_containers/list/operations/78389.cc: Fix for C++11 2718 mode. 2719 * testsuite/23_containers/priority_queue/requirements/constructible.cc: 2720 Mark as unsupported in C++98 mode. 2721 * testsuite/23_containers/queue/requirements/constructible.cc: 2722 Likewise. 2723 * testsuite/23_containers/stack/requirements/constructible.cc: 2724 Likewise. 2725 * testsuite/25_algorithms/make_heap/movable.cc: Fix for C++11 mode. 2726 2727 PR libstdc++/79243 2728 * include/bits/c++config (literals::string_view_literals::__7): Add. 2729 Only declare versioned namespaces for the relevant C++ dialects. 2730 * include/experimental/bits/erase_if.h (fundamentals_v2::__detail): 2731 Add versioning macros. 2732 * include/experimental/bits/lfts_config.h: 2733 (fundamentals_v1::__detail::__7, fundamentals_v2::__detail::__7): Add. 2734 * include/experimental/string_view (fundamentals_v2::__detail): 2735 Add versioning macros. 2736 (fundamentals_v2::__detail::__identity): Remove. 2737 (fundamentals_v2::__detail::__idt): Use common_type instead of 2738 __detail::__identity. 2739 * include/std/string_view (__detail::__identity, __detail::__idt): 2740 Likewise. 2741 (literals::string_view_literals): Fix nesting of versioning macros. 2742 2743 PR libstdc++/79190 2744 * libsupc++/del_opa.cc (operator delete(void*, std::align_val_t)) 2745 [!_GLIBCXX_HAVE_ALIGNED_ALLOC && !_GLIBCXX_HAVE_POSIX_MEMALIGN 2746 && !_GLIBCXX_HAVE_MEMALIGN && !_GLIBCXX_HAVE__ALIGNED_MALLOC]: 2747 Retrieve original pointer value allocated by malloc. 2748 * libsupc++/new_opa.cc [!_GLIBCXX_HAVE_ALIGNED_ALLOC 2749 && !_GLIBCXX_HAVE_POSIX_MEMALIGN && !_GLIBCXX_HAVE_MEMALIGN 2750 && !_GLIBCXX_HAVE__ALIGNED_MALLOC] (aligned_alloc(size_t, size_t)): 2751 Define, adjusting pointer value allocated by malloc and storing for 2752 retrieval by operator delete. 2753 27542017-01-26 Jakub Jelinek <jakub@redhat.com> 2755 2756 * libsupc++/eh_atomics.h: Update copyright years. 2757 * testsuite/20_util/unique_ptr/cons/default.cc: Update copyright years. 2758 27592017-01-25 Jonathan Wakely <jwakely@redhat.com> 2760 2761 PR libstdc++/61791 2762 PR libstdc++/70607 2763 * include/std/complex (real(T), imag(T)): Add _GLIBCXX_CONSTEXPR. 2764 (proj(T), conj(T)): Change return types per DR 1522. 2765 * include/tr1/complex (conj): Remove overloads and use std::conj. 2766 * testsuite/26_numerics/complex/dr781_dr1137.cc: Rename to... 2767 * testsuite/26_numerics/complex/dr781.cc: ... this, and update. 2768 * testsuite/26_numerics/complex/value_operations/constexpr2.cc: Test 2769 real(T) and imag(T). Allow testing for C++11 too. 2770 27712017-01-24 Jonathan Wakely <jwakely@redhat.com> 2772 2773 PR libstdc++/79206 2774 * include/experimental/string_view (operator==): Check sizes first. 2775 * include/std/string_view (operator==): Likewise. 2776 27772017-01-23 Jonathan Wakely <jwakely@redhat.com> 2778 2779 * testsuite/experimental/array/make_array.cc: Restore <functional> 2780 inclusion. 2781 27822017-01-23 Thomas Preud'homme <thomas.preudhomme@arm.com> 2783 2784 * testsuite/29_atomics/atomic/69301.cc: Require atomic builtins. 2785 27862017-01-23 Jonathan Wakely <jwakely@redhat.com> 2787 2788 PR libstdc++/79195 2789 * include/experimental/array (__make_array_elem): New class template 2790 and partial specialization. 2791 (__is_reference_wrapper): Move into __make_array_elem specialization. 2792 (make_array): Use __make_array_elem to determine element type and move 2793 static assertion into specialization. Qualify std::forward call. 2794 (to_array): Add exception specifiation. 2795 * testsuite/experimental/array/make_array.cc: Test argument types 2796 without a common type. 2797 * testsuite/experimental/array/neg.cc: Adjust expected error message. 2798 27992017-01-22 Gerald Pfeifer <gerald@pfeifer.com> 2800 2801 * doc/xml/manual/debug.xml: code.google.com uses https now. 2802 28032017-01-22 Gerald Pfeifer <gerald@pfeifer.com> 2804 2805 * doc/xml/manual/test.xml: Fix link into gccint online manual. 2806 28072017-01-21 Ville Voutilainen <ville.voutilainen@gmail.com> 2808 2809 Make poisoned hashes SFINAE away the call operator of the hash. 2810 * include/bits/functional_hash.h 2811 (__poison_hash::__enable_hash_call): New. 2812 * include/std/optional (__optional_hash_call_base): New. 2813 (hash<optional<_Tp>>): Derive from the new base, 2814 move the hash function into that base. 2815 * include/std/variant (__variant_hash_call_base_impl): New. 2816 (__variant_hash_call_base): Likewise. 2817 (hash<variant<_Types...>>): Derive from the new base, 2818 move the hash function into that base. 2819 * testsuite/20_util/optional/hash.cc: Add tests for is_callable. 2820 * testsuite/20_util/variant/hash.cc: Likewise. 2821 28222017-01-20 Joe Seymour <joe.s@somniumtech.com> 2823 2824 * acinclude.m4 (GLIBCXX_CHECK_SIZE_T_MANGLING): Support uint20_t. 2825 * configure: Regenerate. 2826 28272017-01-20 Jonathan Wakely <jwakely@redhat.com> 2828 2829 PR libstdc++/69240 2830 * include/bits/random.h (uniform_real_distribution::param_type) 2831 (normal_distribution::param_type, lognormal_distribution::param_type) 2832 (gamma_distribution::param_type, chi_squared_distribution::param_type) 2833 (cauchy_distribution::param_type, fisher_f_distribution::param_type) 2834 (student_t_distribution::param_type) 2835 (bernoulli_distribution::param_type, binomial_distribution::param_type) 2836 (geometric_distribution::param_type) 2837 (negative_binomial_distribution::param_type) 2838 (poisson_distribution::param_type) 2839 (exponential_distribution::param_type) 2840 (weibull_distribution::param_type) 2841 (extreme_value_distribution::param_type) 2842 (discrete_distribution::param_type) 2843 (piecewise_constant_distribution::param_type) 2844 (piecewise_linear_distribution::param_type): Define operator!=. 2845 * include/bits/uniform_int_dist.h 2846 (uniform_int_distribution::param_type): Likewise. 2847 * include/ext/random (beta_distribution::param_type) 2848 (rice_distribution::param_type, nakagami_distribution::param_type) 2849 (pareto_distribution::param_type, k_distribution::param_type) 2850 (arcsine_distribution::param_type, hoyt_distribution::param_type) 2851 (triangular_distribution::param_type) 2852 (von_mises_distribution::param_type) 2853 (hypergeometric_distribution::param_type) 2854 (logistic_distribution::param_type) 2855 (uniform_on_sphere_distribution::param_type) 2856 (uniform_inside_sphere_distribution::param_type): Likewise. 2857 * testsuite/26_numerics/random/bernoulli_distribution/cons/parms.cc: 2858 Test construction with param_type. 2859 * testsuite/26_numerics/random/binomial_distribution/cons/parms.cc: 2860 Likewise. 2861 * testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc: 2862 Likewise. 2863 * testsuite/26_numerics/random/chi_squared_distribution/cons/parms.cc: 2864 Likewise. 2865 * testsuite/26_numerics/random/exponential_distribution/cons/parms.cc: 2866 Likewise. 2867 * testsuite/26_numerics/random/extreme_value_distribution/cons/ 2868 parms.cc: Likewise. 2869 * testsuite/26_numerics/random/fisher_f_distribution/cons/parms.cc: 2870 Likewise. 2871 * testsuite/26_numerics/random/gamma_distribution/cons/parms.cc: 2872 Likewise. 2873 * testsuite/26_numerics/random/geometric_distribution/cons/parms.cc: 2874 Likewise. 2875 * testsuite/26_numerics/random/lognormal_distribution/cons/parms.cc: 2876 Likewise. 2877 * testsuite/26_numerics/random/negative_binomial_distribution/cons/ 2878 parms.cc: Likewise. 2879 * testsuite/26_numerics/random/normal_distribution/cons/parms.cc: 2880 Likewise. 2881 * testsuite/26_numerics/random/poisson_distribution/cons/parms.cc: 2882 Likewise. 2883 * testsuite/26_numerics/random/student_t_distribution/cons/parms.cc: 2884 Likewise. 2885 * testsuite/26_numerics/random/uniform_int_distribution/cons/parms.cc: 2886 Likewise. 2887 * testsuite/26_numerics/random/uniform_real_distribution/cons/parms.cc: 2888 Likewise. 2889 * testsuite/26_numerics/random/weibull_distribution/cons/parms.cc: 2890 Likewise. 2891 * testsuite/ext/random/arcsine_distribution/cons/parms.cc: Likewise. 2892 * testsuite/ext/random/beta_distribution/cons/parms.cc: Likewise. 2893 * testsuite/ext/random/hoyt_distribution/cons/parms.cc: Likewise. 2894 * testsuite/ext/random/hypergeometric_distribution/cons/parms.cc: 2895 Likewise. 2896 * testsuite/ext/random/k_distribution/cons/parms.cc: Likewise. 2897 * testsuite/ext/random/logistic_distribution/cons/parms.cc: Likewise. 2898 * testsuite/ext/random/nakagami_distribution/cons/parms.cc: Likewise. 2899 * testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise. 2900 * testsuite/ext/random/pareto_distribution/cons/parms.cc: Likewise. 2901 * testsuite/ext/random/rice_distribution/cons/parms.cc: Likewise. 2902 * testsuite/ext/random/triangular_distribution/cons/parms.cc: 2903 Likewise. 2904 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/ 2905 parms.cc: Likewise. 2906 * testsuite/ext/random/von_mises_distribution/cons/parms.cc: Likewise. 2907 2908 PR libstdc++/72792 2909 * include/bits/alloc_traits.h (__allocator_traits_base::__diff_type) 2910 (__allocator_traits_base::__size_type): Remove. 2911 (allocator_traits::_Ptr): New class template to detect const and void 2912 pointer types without instantiating pointer_traits::rebind 2913 unnecessarily. 2914 (allocator_traits::_Diff): Likewise for detecting difference_type. 2915 (allocator_traits::_Size): New class template to detect size_type 2916 without instantiating make_unsigned unnecessarily. 2917 * include/bits/ptr_traits.h (pointer_traits::element_type): Use 2918 __detected_or_t instead of __detected_or_t_. 2919 * include/std/type_traits (__detected_or_t_): Remove. 2920 * testsuite/20_util/allocator_traits/members/pointers.cc: New test. 2921 2922 PR libstdc++/72792 2923 PR libstdc++/72793 2924 * include/bits/alloc_traits.h (__allocator_traits_base::__rebind): 2925 Replace with class template using void_t. 2926 (__alloc_rebind): Define in terms of 2927 __allocator_traits_base::__rebind. 2928 (allocator_traits): Remove unconditional static_assert for 2929 rebind_alloc. 2930 * include/bits/ptr_traits.h (__replace_first_arg): Remove type member. 2931 (pointer_traits::__rebind): Replace with class template using void_t. 2932 (pointer_traits::rebind): Define in terms of __rebind. 2933 (pointer_traits): Remove unconditional static_assert for rebind. 2934 * testsuite/20_util/allocator_traits/members/rebind_alloc.cc: New test. 2935 * testsuite/20_util/pointer_traits/rebind.cc: New test. 2936 2937 PR libstdc++/69321 2938 * include/experimental/any (__any_caster): Avoid instantiating 2939 manager function for types that can't be stored in any. 2940 * include/std/any (__any_caster): Likewise. 2941 * testsuite/20_util/any/misc/any_cast.cc: Test non-copyable type. 2942 * testsuite/experimental/any/misc/any_cast.cc: Likewise. 2943 2944 PR libstdc++/64903 2945 * include/bits/stl_algo.h (is_partitioned): Use increment instead of 2946 std::advance. 2947 29482017-01-19 Jonathan Wakely <jwakely@redhat.com> 2949 2950 PR libstdc++/79156 2951 * include/bits/shared_ptr_base.h (__enable_shared_from_this_base): 2952 Fix return type. 2953 (__enable_shared_from_this): Declare __shared_ptr as a friend. 2954 * testsuite/ext/shared_ptr/1.cc: New test. 2955 2956 PR libstdc++/64903 2957 * include/bits/stl_algo.h (is_partitioned): Don't retest the partition 2958 point. 2959 * testsuite/25_algorithms/is_partitioned/2.cc: New test. 2960 2961 * doc/xml/manual/abi.xml: Fix typo. 2962 * doc/html/manual/abi.html: Likewise. 2963 2964 PR libstdc++/67085 2965 * include/bits/predefined_ops.h (_Iter_less_val, _Val_less_iter): Add 2966 converting constructors from _Iter_less_iter. 2967 (_Iter_comp_val, _Val_comp_iter): Add converting constructors from 2968 _Iter_comp_iter. 2969 (__iter_comp_val(_Iter_comp_iter<C>): Use converting constructor. 2970 (__val_comp_iter(_Iter_comp_iter<C>): Likewise. 2971 * include/bits/stl_heap.h (__is_heap_until, __push_heap, __pop_heap) 2972 (__make_heap, __sort_heap): Change _Compare parameters to references. 2973 (__is_heap, push_heap, __adjust_heap, __pop_heap, pop_heap) 2974 (__make_heap, make_heap, sort_heap, is_heap_until): Pass comparison 2975 functions as lvalues. 2976 (is_heap): Call __is_heap_until directly to avoid copying __comp. 2977 * testsuite/23_containers/priority_queue/67085.cc: Adjust test to 2978 count copies during construction with empty sequence. 2979 2980 PR libstdc++/67085 2981 * include/bits/stl_heap.h (__is_heap): Use _GLIBCXX_MOVE. 2982 (__make_heap, __sort_heap): Don't use _GLIBCXX_MOVE inside loops. 2983 * testsuite/23_containers/priority_queue/67085.cc: Adjust expected 2984 number of copies. 2985 * testsuite/25_algorithms/make_heap/movable.cc: New test. 2986 2987 PR libstdc++/67085 2988 * include/bits/stl_heap.h (push_heap, __adjust_heap, __pop_heap) 2989 (pop_heap, __make_heap, make_heap, __sort_heap, sort_heap): Use 2990 _GLIBCXX_MOVE when passing comparison function to other functions. 2991 (is_heap_until, is_heap): Use std::move when passing comparison 2992 function. 2993 * testsuite/23_containers/priority_queue/67085.cc: New test. 2994 2995 PR libstdc++/78905 2996 * doc/xml/manual/abi.xml (abi.versioning.history): Add markup to 2997 macro names, filenames, and literal values. Document _GLIBCXX_RELEASE. 2998 Document that the deprecated _GLIBCXX_VERSION macro was removed for 2999 the 4.0.0 release. 3000 * doc/html/*: Regenerate. 3001 * include/Makefile.am (_GLIBCXX_RELEASE): Set value. 3002 * include/Makefile.in: Regenerate. 3003 * include/bits/c++config (_GLIBCXX_RELEASE): Add #define. 3004 * testsuite/ext/profile/mutex_extensions_neg.cc: Use lineno of 0 in 3005 dg-error. 3006 30072017-01-18 Jonathan Wakely <jwakely@redhat.com> 3008 3009 PR libstdc++/69301 3010 * include/std/atomic (atomic<T>::load, atomic<T>::exchange): Use 3011 aligned buffer instead of default-initialized variable. 3012 * testsuite/29_atomics/atomic/69301.cc: New test. 3013 * include/experimental/memory (observer_ptr::release): Use reserved 3014 name. 3015 * include/ext/pointer.h (_Pointer_adapter::operator++(int)) 3016 (_Pointer_adapter::operator--(int)): Likewise. 3017 3018 PR libstdc++/68925 3019 * include/experimental/random (randint): Use temporary instead of 3020 thread_local static. 3021 30222017-01-17 Joshua Conner <joshconner@google.com> 3023 3024 * crossconfig.m4: Add fuchsia OS. 3025 * configure: Regenerate. 3026 30272017-01-17 Jonathan Wakely <jwakely@redhat.com> 3028 3029 PR libstdc++/69699 3030 * doc/xml/manual/abi.xml (abi.versioning.history): Explain why the 3031 __GLIBCXX__ macro is not useful. Remove redundant date information 3032 and link to the GCC release timeline. 3033 (abi.versioning.active): Move partial sentence into the previous 3034 paragraph. 3035 * doc/html/*: Regenerate. 3036 3037 PR libstdc++/79114 3038 * libsupc++/nested_exception.h (throw_with_nested): Use decay instead 3039 of remove_reference. 3040 * testsuite/18_support/nested_exception/79114.cc: New test. 3041 30422017-01-17 Jakub Jelinek <jakub@redhat.com> 3043 3044 PR other/79046 3045 * configure.ac: Add GCC_BASE_VER. 3046 * fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to 3047 get version from BASE-VER file. 3048 * po/Makefile.in: Regenerated. 3049 * libsupc++/Makefile.in: Regenerated. 3050 * testsuite/Makefile.in: Regenerated. 3051 * src/Makefile.in: Regenerated. 3052 * configure: Regenerated. 3053 * Makefile.in: Regenerated. 3054 * include/Makefile.in: Regenerated. 3055 * doc/Makefile.in: Regenerated. 3056 * python/Makefile.in: Regenerated. 3057 * src/c++11/Makefile.in: Regenerated. 3058 * src/c++98/Makefile.in: Regenerated. 3059 * src/filesystem/Makefile.in: Regenerated. 3060 30612017-01-16 Jonathan Wakely <jwakely@redhat.com> 3062 3063 PR libstdc++/66145 3064 * src/c++11/functexcept.cc: Use new ABI for std::ios_base::failure 3065 exceptions. 3066 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Don't override ABI 3067 for test, so new ios::failure can be caught. 3068 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise. 3069 * testsuite/27_io/basic_istream/extractors_arithmetic/char/ 3070 exceptions_failbit.cc: Likewise. 3071 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/ 3072 exceptions_failbit.cc: Likewise. 3073 * testsuite/27_io/basic_istream/extractors_other/char/ 3074 exceptions_null.cc: Likewise. 3075 * testsuite/27_io/basic_istream/extractors_other/wchar_t/ 3076 exceptions_null.cc: Likewise. 3077 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise. 3078 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise. 3079 * testsuite/27_io/basic_ostream/inserters_other/char/ 3080 exceptions_null.cc: Likewise. 3081 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ 3082 exceptions_null.cc: Likewise. 3083 * testsuite/27_io/ios_base/storage/2.cc: Likewise. 3084 3085 PR libstdc++/78702 3086 * include/bits/locale_classes.h (locale::facet::__shim): Change from 3087 private to protected. 3088 * src/c++11/cxx11-shim_facets.cc (__shim_accessor): Define helper to 3089 make locale::facet::__shim accessible. 3090 30912017-01-16 Ville Voutilainen <ville.voutilainen@gmail.com> 3092 3093 PR libstdc++/78389 3094 * include/bits/list.tcc (merge(list&&)): Fix backwards size adjustments. 3095 (merge(list&&, _StrictWeakOrdering)): Likewise. 3096 * testsuite/23_containers/list/operations/78389.cc: Add 3097 better test for the sizes. 3098 30992017-01-14 Jonathan Wakely <jwakely@redhat.com> 3100 3101 * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc: 3102 Skip test when -D_GLIBCXX_PROFILE mode is included in options. 3103 * testsuite/23_containers/map/modifiers/extract.cc: Likewise. 3104 * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc: 3105 Likewise. 3106 * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise. 3107 * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise. 3108 * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise. 3109 * testsuite/23_containers/set/modifiers/extract.cc: Likewise. 3110 * testsuite/23_containers/unordered_map/modifiers/extract.cc: 3111 Likewise. 3112 * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:: 3113 Likewise. 3114 * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:: 3115 Likewise. 3116 * testsuite/23_containers/unordered_set/modifiers/extract.cc: 3117 Likewise. 3118 * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc: 3119 Likewise. 3120 * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise. 3121 * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise. 3122 * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise. 3123 * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise. 3124 * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise. 3125 * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise. 3126 * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise. 3127 * testsuite/libstdc++-prettyprinters/debug.cc: Likewise. 3128 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise. 3129 * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise. 3130 * testsuite/libstdc++-prettyprinters/simple.cc: Likewise. 3131 * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise. 3132 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise. 3133 31342017-01-13 Jonathan Wakely <jwakely@redhat.com> 3135 3136 PR libstdc++/65411 3137 * config/io/basic_file_stdio.cc (__basic_file<char>::close()): Don't 3138 retry fclose on EINTR. 3139 3140 * include/profile/base.h: Remove unused header that leads to header 3141 cycle in C++17 mode. 3142 3143 PR libstdc++/79075 3144 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] (basic_string): 3145 Make _If_sv private. 3146 [!_GLIBCXX_USE_CXX11_ABI] (basic_string): Add member functions taking 3147 basic_string_view arguments. 3148 3149 PR libstdc++/79075 3150 * testsuite/lib/libstdc++.exp (check_v3_target_filesystem_ts): Remove 3151 redundant option from cxxflags. 3152 (check_effective_target_cxx11-abi): Define. 3153 * testsuite/21_strings/basic_string/allocator/71964.cc: Use cxx11-abi 3154 effective target. 3155 * testsuite/21_strings/basic_string/allocator/char/copy.cc: Likewise. 3156 * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc: 3157 Likewise. 3158 * testsuite/21_strings/basic_string/allocator/char/minimal.cc: 3159 Likewise. 3160 * testsuite/21_strings/basic_string/allocator/char/move.cc: Likewise. 3161 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc: 3162 Likewise. 3163 * testsuite/21_strings/basic_string/allocator/char/noexcept.cc: 3164 Likewise. 3165 * testsuite/21_strings/basic_string/allocator/char/swap.cc: Likewise. 3166 * testsuite/21_strings/basic_string/allocator/wchar_t/copy.cc: 3167 Likewise. 3168 * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc: 3169 Likewise. 3170 * testsuite/21_strings/basic_string/allocator/wchar_t/minimal.cc: 3171 Likewise. 3172 * testsuite/21_strings/basic_string/allocator/wchar_t/move.cc: 3173 Likewise. 3174 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc: 3175 Likewise. 3176 * testsuite/21_strings/basic_string/allocator/wchar_t/noexcept.cc: 3177 Likewise. 3178 * testsuite/21_strings/basic_string/allocator/wchar_t/swap.cc: 3179 Likewise. 3180 * testsuite/23_containers/list/61347.cc: Likewise. 3181 * testsuite/27_io/basic_fstream/cons/base.cc: Likewise. 3182 * testsuite/27_io/ios_base/failure/cxx11.cc: Likewise. 3183 31842017-01-13 Ville Voutilainen <ville.voutilainen@gmail.com> 3185 3186 PR libstdc++/78389 3187 * include/bits/list.tcc (merge(list&&)): 3188 Adjust list sizes if the comparator throws. 3189 (merge(list&&, _StrictWeakOrdering)): Likewise. 3190 (sort()): Splice elements back from the scratch buffers 3191 if the comparator throws. 3192 (sort(_StrictWeakOrdering)): Likewise. 3193 * testsuite/23_containers/list/operations/78389.cc: New. 3194 31952017-01-13 Jonathan Wakely <jwakely@redhat.com> 3196 3197 * testsuite/23_containers/unordered_set/allocator/ext_ptr.cc: Mark 3198 XFAIL for C++17 until node reinsertion supports fancy pointers. 3199 3200 PR libstdc++/78361 3201 * testsuite/20_util/add_pointer/value.cc: Test forming function 3202 pointers. 3203 32042017-01-13 Michael Brune <lucdanton@free.fr> 3205 3206 PR libstdc++/78361 3207 * include/std/type_traits (__is_referenceable): Handle noexcept 3208 function types. 3209 32102017-01-12 Jonathan Wakely <jwakely@redhat.com> 3211 3212 PR libstdc++/77528 3213 * include/bits/stl_queue.h (queue, priority_queue): Remove default 3214 member-initializers and define default constructors as templates with 3215 constraints. 3216 * include/bits/stl_stack.h (stack): Likewise. 3217 * testsuite/23_containers/priority_queue/requirements/constructible.cc: 3218 New. 3219 * testsuite/23_containers/priority_queue/requirements/ 3220 explicit_instantiation/1.cc: Test more instantiations. 3221 * testsuite/23_containers/priority_queue/requirements/ 3222 explicit_instantiation/1_c++98.cc: Likewise. 3223 * testsuite/23_containers/queue/requirements/constructible.cc: New. 3224 * testsuite/23_containers/stack/requirements/constructible.cc: New. 3225 3226 PR libstdc++/66284 3227 * doc/xml/manual/intro.xml: Document LWG 2781 change. 3228 * doc/html/*: Regenerate. 3229 * include/std/functional (_Function_base::_Ref_manager): Remove. 3230 (_Function_handler): Remove partial specializations for 3231 reference_wrapper. 3232 (function::target): Remove special case for const qualification. 3233 * testsuite/20_util/function/6.cc: Adjust tests for target type. 3234 * testsuite/20_util/function/7.cc: Likewise. 3235 * testsuite/20_util/function/8.cc: Likewise. 3236 32372017-01-11 Jonathan Wakely <jwakely@redhat.com> 3238 3239 PR libstdc++/78134 3240 * include/bits/stl_map.h (map::lower_bound, map::upper_bound) 3241 (map::equal_range): Fix return type of heterogeneous overloads. 3242 * include/bits/stl_multimap.h (multimap::lower_bound) 3243 (multimap::upper_bound, multimap::equal_range): Likewise. 3244 * include/bits/stl_multiset.h (multiset::lower_bound) 3245 (multiset::upper_bound, multiset::equal_range): Likewise. 3246 * include/bits/stl_set.h (set::lower_bound, set::upper_bound) 3247 (set::equal_range): Likewise. 3248 * testsuite/23_containers/map/operations/2.cc 3249 * testsuite/23_containers/multimap/operations/2.cc 3250 * testsuite/23_containers/multiset/operations/2.cc 3251 * testsuite/23_containers/set/operations/2.cc 3252 3253 PR libstdc++/78273 3254 * include/bits/stl_map.h (map::count<_Kt>(const _Kt&)): Don't assume 3255 the heterogeneous comparison can only find one match. 3256 * include/bits/stl_set.h (set::count<_Kt>(const _Kt&)): Likewise. 3257 * testsuite/23_containers/map/operations/2.cc: Test count works with 3258 comparison function that just partitions rather than sorting. 3259 * testsuite/23_containers/set/operations/2.cc: Likewise. 3260 32612017-01-11 Ville Voutilainen <ville.voutilainen@gmail.com> 3262 3263 Reduce the size of variant, it doesn't need an index of 3264 type size_t internally. 3265 * include/std/variant (parse_numbers.h): New include. 3266 (__select_index): New. 3267 (_Variant_storage<false, _Types...>::_M_reset_impl): Use 3268 _index_type for comparison with variant_npos. 3269 (_Variant_storage<false, _Types...>::__index_type): New. 3270 (_Variant_storage<false, _Types...>::_M_index): Change the 3271 type from size_t to __index_type. 3272 (_Variant_storage<true, _Types...>::__index_type): New. 3273 (_Variant_storage<true, _Types...>::_M_index): Change the 3274 type from size_t to __index_type. 3275 (_Variant_base::_M_valid): Use _Storage::__index_type 3276 for comparison with variant_npos. 3277 (variant::index): Use _Base::_Storage::__index_type 3278 for comparison with variant_npos. 3279 * testsuite/20_util/variant/index_type.cc: New. 3280 32812017-01-10 Jonathan Wakely <jwakely@redhat.com> 3282 3283 * testsuite/18_support/exception_ptr/60612-unexpected.cc: Adjust 3284 effective target selector to prevent running in C++17 mode. 3285 3286 PR libstdc++/77528 3287 * include/bits/stl_queue.h (queue::c): Add default member initializer. 3288 (queue::queue()): Add constructor and define as defaulted. 3289 (queue::queue(_Sequence&&)): Remove default argument. 3290 (priority_queue::c, priority_queue::comp): Add default member 3291 initializers. 3292 (priority_queue::priority_queue()): Add constructor and define as 3293 defaulted. 3294 (priority_queue::priority_queue(const _Compare&, _Sequence&&)): 3295 Remove default argument for first parameter. 3296 * include/bits/stl_stack.h (stack::c): Add default member initializer. 3297 (stack::stack()): Add constructor and define as defaulted. 3298 (stack::stack(const _Sequence&)): Remove default argument. 3299 * testsuite/23_containers/priority_queue/requirements/ 3300 explicit_instantiation/1.cc: Test explicit instantiation with 3301 non-DefaultConstructible sequence. 3302 * testsuite/23_containers/priority_queue/77528.cc: New test. 3303 * testsuite/23_containers/priority_queue/requirements/ 3304 explicit_instantiation/1_c++0x.cc: Replace with 1_c++98.cc. 3305 * testsuite/23_containers/queue/77528.cc: New test. 3306 * testsuite/23_containers/queue/requirements/explicit_instantiation/ 3307 1.cc: Test explicit instantiation with non-DefaultConstructible 3308 sequence. 3309 * testsuite/23_containers/queue/requirements/explicit_instantiation/ 3310 1_c++0x.cc: Replace with 1_c++98.cc. 3311 * testsuite/23_containers/stack/77528.cc: New test. 3312 * testsuite/23_containers/stack/requirements/explicit_instantiation/ 3313 1.cc: Test explicit instantiation with non-DefaultConstructible 3314 sequence. 3315 * testsuite/23_containers/stack/requirements/explicit_instantiation/ 3316 1_c++0x.cc: Replace with 1_c++98.cc. 3317 33182017-01-10 Felipe Magno de Almeida <felipe@expertisesolutions.com.br> 3319 3320 * include/bits/locale_facets_nonio.tcc 3321 (time_get::_M_extract_via_format): Avoid compilation errors with 3322 non-standard struct tm. 3323 33242017-01-10 François Dumont <fdumont@gcc.gnu.org> 3325 Jonathan Wakely <jwakely@redhat.com> 3326 3327 * python/libstdcxx/v6/printers.py (_versioned_namespace): Define. 3328 (is_specialization, strip_versioned_namespace): New helpers functions 3329 to work with symbols in the versioned namespace. 3330 (Printer.add_version): Add second name using versioned namespace. 3331 (add_one_template_type_printer, add_one_type_printer): Add second 3332 type printers using versioned namespace. 3333 (register_type_printers): Add template type printer for basic_string. 3334 (build_libstdcxx_dictionary): Remove dead code. 3335 * python/libstdcxx/v6/xmethods.py: Make all matchers look for 3336 versioned namespace. 3337 * testsuite/libstdc++-prettyprinters/48362.cc: Adjust expected 3338 results. 3339 * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise. 3340 33412017-01-09 Jonathan Wakely <jwakely@redhat.com> 3342 3343 PR libstdc++/79017 3344 * acinclude.m4 (GLIBCXX_CHECK_C99_TR1): Check for llrint and llround 3345 functions separately on darwin and if they're missing define 3346 _GLIBCXX_NO_C99_ROUNDING_FUNCS. 3347 * config.h.in: Regenerate. 3348 * configure: Regenerate. 3349 * include/c_global/cmath [_GLIBCXX_NO_C99_ROUNDING_FUNCS] (llrint) 3350 (llrintf, llrintl, llround, llroundf, llroundl): Do not define. 3351 3352 * testsuite/30_threads/condition_variable/members/3.cc: Use new macro 3353 to detect correct thread_local destructors. 3354 * testsuite/util/testsuite_hooks.h (CORRECT_THREAD_LOCAL_DTORS): 3355 Define. 3356 33572017-01-09 Jonathan Wakely <jwakely@redhat.com> 3358 Aditya Kumar <hiraditya@msn.com> 3359 3360 PR libstdc++/66414 3361 * include/bits/basic_string.tcc 3362 (basic_string::find(const CharT*, size_type, size_type)): Optimize. 3363 33642017-01-06 Jonathan Wakely <jwakely@redhat.com> 3365 3366 * testsuite/21_strings/basic_string/operations/find/char/6.cc: New. 3367 * testsuite/21_strings/basic_string/operations/find/wchar_t/6.cc: New. 3368 3369 * testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp: 3370 Include <cassert> header. 3371 3372 PR libstdc++/78968 3373 * crossconfig.m4: Check for __cxa_thread_atexit on *-*-freebsd*. 3374 * configure: Regenerate. 3375 33762017-01-06 Barrett Adair <barrettellisadair@gmail.com> 3377 Jonathan Wakely <jwakely@redhat.com> 3378 3379 * include/std/variant (variant, swap): Replace __and_ usage with fold 3380 expressions. 3381 33822017-01-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 3383 3384 PR go/78978 3385 * acinclude.m4 (GLIBCXX_CHECK_ASSEMBLER_HWCAP): Remove. 3386 * configure.ac: Call GCC_CHECK_ASSEMBLER_HWCAP instead of 3387 GLIBCXX_CHECK_ASSEMBLER_HWCAP. 3388 * fragment.am (CONFIG_CXXFLAGS): Use HWCAP_CFLAGS instead of 3389 HWCAP_FLAGS. 3390 * aclocal.m4: Regenerate. 3391 * configure: Regenerate. 3392 * Makefile.in, doc/Makefile.in, include/Makefile.in, 3393 libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in, 3394 src/Makefile.in, src/c++11/Makefile.in, src/c++98/Makefile.in, 3395 src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate. 3396 33972017-01-06 Jonathan Wakely <jwakely@redhat.com> 3398 3399 * include/bits/c++config (_GLIBCXX_ASSERTIONS): Avoid redefinition. 3400 3401 PR libstdc++/78991 3402 * include/bits/predefined_ops.h (_Iter_comp_iter, _Iter_comp_val) 3403 (_Val_comp_iter, _Iter_equals_val, _Iter_pred, _Iter_comp_to_val) 3404 (_Iter_comp_to_iter, _Iter_negate): Make constructors explicit and 3405 move function objects. 3406 (__iter_comp_iter, __iter_comp_val, __val_comp_iter, __pred_iter) 3407 (__iter_comp_val, __iter_comp_iter, __negate): Move function objects. 3408 * testsuite/25_algorithms/sort/78991.cc: New test. 3409 34102017-01-05 Jonathan Wakely <jwakely@redhat.com> 3411 3412 * include/bits/std_function.h (function::_Signature_type): Remove. 3413 (function::function(_Functor)): Adjust. 3414 34152017-01-05 Tim Shen <timshen@google.com> 3416 3417 PR libstdc++/78996 3418 * include/std/variant (__gen_vtable_impl): rename __unused to 3419 __dimensions to avoid naming conflict. 3420 34212017-01-04 Jonathan Wakely <jwakely@redhat.com> 3422 3423 PR libstdc++/78968 3424 * config.h.in: Regenerate. 3425 * configure: Likewise. 3426 * configure.ac: Check for __cxa_thread_atexit. 3427 * libsupc++/atexit_thread.cc [_GLIBCXX_HAVE___CXA_THREAD_ATEXIT]: 3428 Don't define __cxa_thread_atexit if libc provides it. 3429 34302017-01-04 Ville Voutilainen <ville.voutilainen@gmail.com> 3431 3432 Implement 2801, Default-constructibility of unique_ptr. 3433 * include/bits/unique_ptr.h (__uniq_ptr_impl::_DeleterConstraint): New. 3434 (unique_ptr::_DeleterConstraint): Likewise. 3435 (unique_ptr()): Constrain. 3436 (unique_ptr(pointer)): Likewise. 3437 (unique_ptr(nullptr_t)): Likewise. 3438 (unique_ptr<_Tp[], _Dp>::_DeleterConstraint): New. 3439 (unique_ptr<_Tp[], _Dp>::unique_ptr()): Constrain. 3440 (unique_ptr<_Tp[], _Dp>::unique_ptr(_Up)): Likewise. 3441 (unique_ptr<_Tp[], _Dp>::unique_ptr(nullptr_t)): Likewise. 3442 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Adjust. 3443 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise. 3444 * testsuite/20_util/unique_ptr/cons/default.cc: New. 3445 * testsuite/20_util/unique_ptr/cons/ptr_deleter_neg.cc: Adjust. 3446 34472017-01-04 Pauli Nieminen <suokkos@gmail.com> 3448 Jonathan Wakely <jwakely@redhat.com> 3449 3450 PR libstdc++/64735 3451 * acinclude.m4 (GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER): Define. 3452 * config.h.in: Regenerate. 3453 * config/abi/pre/gnu.ver [HAVE_EXCEPTION_PTR_SINCE_GCC46] 3454 (GLIBCXX_3.4.15, GLIBCXX_3.4.21, CXXABI_1.3.3, CXXABI_1.3.5): Make 3455 exports for exception_ptr, nested_exception, and future conditional. 3456 [HAVE_EXCEPTION_PTR_SINCE_GCC46] (GLIBCXX_3.4.23, CXXABI_1.3.11): Add 3457 exports for exception_ptr, nested_exception, and future conditional. 3458 * configure: Regenerate. 3459 * configure.ac: Use GLIBCXX_CHECK_EXCEPTION_PTR_SYMVER. 3460 * include/std/future: Remove check for ATOMIC_INT_LOCK_FREE 3461 * libsupc++/eh_atomics.h: New file for internal use only. 3462 (__eh_atomic_inc, __eh_atomic_dec): New. 3463 * libsupc++/eh_ptr.cc (exception_ptr::_M_addref) 3464 (exception_ptr::_M_release) (__gxx_dependent_exception_cleanup) 3465 (rethrow_exception): Use eh_atomics.h reference counting helpers. 3466 * libsupc++/eh_throw.cc (__gxx_exception_cleanup): Likewise. 3467 * libsupc++/eh_tm.cc (free_any_cxa_exception): Likewise. 3468 * libsupc++/exception: Remove check for ATOMIC_INT_LOCK_FREE. 3469 * libsupc++/exception_ptr.h: Likewise. 3470 * libsupc++/guard.cc: Include header for ATOMIC_INT_LOCK_FREE macro. 3471 * libsupc++/nested_exception.cc: Remove check for 3472 ATOMIC_INT_LOCK_FREE. 3473 * libsupc++/nested_exception.h: Likewise. 3474 * src/c++11/future.cc: Likewise. 3475 * testsuite/18_support/exception_ptr/*: Remove atomic builtins checks. 3476 * testsuite/18_support/nested_exception/*: Likewise. 3477 * testsuite/30_threads/async/*: Likewise. 3478 * testsuite/30_threads/future/*: Likewise. 3479 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise. 3480 * testsuite/30_threads/packaged_task/*: Likewise. 3481 * testsuite/30_threads/promise/*: Likewise. 3482 * testsuite/30_threads/shared_future/*: Likewise. 3483 34842017-01-03 Gerald Pfeifer <gerald@pfeifer.com> 3485 3486 * doc/xml/manual/documentation_hacking.xml: sourceforge.net now 3487 defaults to https; adjust reference. 3488 34892017-01-03 Jonathan Wakely <jwakely@redhat.com> 3490 3491 PR libstdc++/78956 3492 * include/std/thread (thread(const thread&&)): Add deleted 3493 constructor. 3494 * testsuite/30_threads/thread/cons/lwg2097.cc: New test. 3495 3496 * doc/xml/manual/spine.xml: Update copyright years. 3497 * doc/xml/manual/build_hacking.xml: Fix spelling of libbuilddir. 3498 * doc/xml/manual/test.xml: Likewise. 3499 * doc/html/*: Regenerate. 3500 35012017-01-01 Gerald Pfeifer <gerald@pfeifer.com> 3502 3503 * doc/xml/faq.xml: Update address of C++ ABI link. 3504 * doc/xml/manual/abi.xml: Ditto. 3505 35062017-01-01 Jakub Jelinek <jakub@redhat.com> 3507 3508 Update copyright years. 3509 3510Copyright (C) 2017 Free Software Foundation, Inc. 3511 3512Copying and distribution of this file, with or without modification, 3513are permitted in any medium without royalty provided the copyright 3514notice and this notice are preserved. 3515