12018-12-23 François Dumont <fdumont@gcc.gnu.org> 2 3 * libstdc++-v3/testsuite/util/testsuite_allocator.h 4 (CustomPointerAlloc<>::allocate(size_t, pointer)): Replace by... 5 (CustomPointerAlloc<>::allocate(size_t, const_void_pointer)): ...this. 6 7 Respect pointer_traits on node deallocation in _ReuseOrAllocNode 8 parenthesis operator. 9 10 * include/bits/hashtable_policy.h 11 (_Hashtable_alloc<>::_M_deallocate_node_ptr(__node_type*)): New. 12 (_Hashtable_alloc<>::_M_deallocate_node(__node_type*)): Use latter. 13 (_ReuseOrAllocNode<>::operator<_Arg>()(_Arg&&)): Likewise. 14 152018-12-22 Iain Sandoe <iain@sandoe.co.uk> 16 17 * /config/os/bsd/darwin/ppc-extra.ver: Append long double symbols. 18 192018-12-20 Jonathan Wakely <jwakely@redhat.com> 20 21 * testsuite/27_io/filesystem/operations/proximate.cc: Fix test for 22 MinGW. 23 * testsuite/27_io/filesystem/path/append/source.cc: Likewise. 24 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: Likewise. 25 26 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc: New test 27 (missed from previous commit). 28 292018-12-19 Jonathan Wakely <jwakely@redhat.com> 30 31 * doc/xml/manual/abi.xml: Add missing word. 32 332018-12-18 Jonathan Wakely <jwakely@redhat.com> 34 35 * include/bits/fs_dir.h (operator<<): Overload for directory_entry, 36 as per LWG 3171. 37 * testsuite/27_io/filesystem/directory_entry/lwg3171.cc: New test. 38 39 * src/filesystem/std-dir.cc (filesystem::_Dir::advance): Move new 40 path instead of copying. 41 42 * src/filesystem/std-dir.cc (filesystem::_Dir::advance): Append 43 string to lvalue to avoid creating temporary path. 44 45 * include/bits/fs_path.h (path::compare(const string_type&)) 46 (path::compare(const value_type*)): Add noexcept and construct a 47 string view to compare to instead of a path. 48 (path::compare(basic_string_view<value_type>)): Add noexcept. Remove 49 inline definition. 50 * src/filesystem/std-path.cc (path::_Parser): Track last type read 51 from input. 52 (path::_Parser::next()): Return a final empty component when the 53 input ends in a non-root directory separator. 54 (path::_M_append(basic_string_view<value_type>)): Remove special cases 55 for trailing non-root directory separator. 56 (path::_M_concat(basic_string_view<value_type>)): Likewise. 57 (path::compare(const path&)): Implement LWG 2936. 58 (path::compare(basic_string_view<value_type>)): Define in terms of 59 components returned by parser, consistent with LWG 2936. 60 * testsuite/27_io/filesystem/path/compare/lwg2936.cc: New. 61 * testsuite/27_io/filesystem/path/compare/path.cc: Test more cases. 62 * testsuite/27_io/filesystem/path/compare/strings.cc: Likewise. 63 64 * include/std/string_view [__cplusplus > 201703L] 65 (basic_string_view::starts_with(basic_string_view)): Implement 66 proposed resolution of LWG 3040 to avoid redundant length check. 67 (basic_string_view::starts_with(_CharT)): Implement proposed 68 resolution of LWG 3040 to check at most one character. 69 (basic_string_view::ends_with(_CharT)): Likewise. 70 712018-12-17 Jonathan Wakely <jwakely@redhat.com> 72 73 PR libstdc++/71044 74 * src/filesystem/std-path.cc (path::_M_append): Fix off-by-one error 75 that caused a component to be lost from the iteration sequence. 76 (path::_M_concat): Likewise. 77 * testsuite/27_io/filesystem/path/append/source.cc: Test appending 78 long strings. 79 * testsuite/27_io/filesystem/path/concat/strings.cc: Test 80 concatenating long strings. 81 * testsuite/27_io/filesystem/path/construct/string_view.cc: Test 82 construction from long string. 83 842018-12-13 Jonathan Wakely <jwakely@redhat.com> 85 86 * src/filesystem/std-path.cc (SLASHSLASH_IS_ROOT_NAME): New macro to 87 control whether interpret paths with two slashes as a root-name. 88 (path::operator/=(const path&)) [SLASHSLASH_IS_ROOT_NAME]: Add a 89 root-directory when appending to a root-name. 90 (path::_M_append(basic_string_view<value_type>)) 91 [SLASHSLASH_IS_ROOT_NAME]: Likewise. 92 (path::operator/=(const path&)) [SLASHSLASH_IS_ROOT_NAME]: Likewise. 93 (path::_M_concat(basic_string_view<value_type>)) 94 [SLASHSLASH_IS_ROOT_NAME]: Likewise. 95 (path::lexically_normal()) [SLASHSLASH_IS_ROOT_NAME]: Use += instead 96 of /= to add a root-directory to the result. 97 * testsuite/27_io/filesystem/path/decompose/root_directory.cc: Fix 98 expected result for Cygwin. 99 100 PR libstdc++/71044 101 * include/bits/fs_path.h (path::path(path&&)): Add noexcept when 102 appropriate. Move _M_cmpts instead of reparsing the native pathname. 103 (path::operator=(const path&)): Do not define as defaulted. 104 (path::operator/=, path::append): Call _M_append. 105 (path::concat): Call _M_concat. 106 (path::path(string_type, _Type): Change type of first parameter to 107 basic_string_view<value_type>. 108 (path::_M_append(basic_string_view<value_type>)): New member function. 109 (path::_M_concat(basic_string_view<value_type>)): New member function. 110 (_S_convert(value_type*, __null_terminated)): Return string view. 111 (_S_convert(const value_type*, __null_terminated)): Return string view. 112 (_S_convert(value_type*, value_type*)) 113 (_S_convert(const value_type*, const value_type*)): Add overloads for 114 pairs of pointers. 115 (_S_convert(_InputIterator, __null_terminated)): Construct string_type 116 explicitly, for cases where _S_convert returns a string view. 117 (path::_S_is_dir_sep): Replace with non-member is_dir_sep. 118 (path::_M_trim, path::_M_add_root_name, path::_M_add_root_dir) 119 (path::_M_add_filename): Remove. 120 (path::_M_type()): New member function to replace _M_type data member. 121 (path::_List): Define new struct type instead of using std::vector. 122 (path::_Cmpt::_Cmpt(string_type, _Type, size_t)): Change type of 123 first parameter to basic_string_view<value_type>. 124 (path::operator+=(const path&)): Do not define inline. 125 (path::operator+=(const string_type&)): Call _M_concat. 126 (path::operator+=(const value_type*)): Likewise. 127 (path::operator+=(value_type)): Likewise. 128 (path::operator+=(basic_string_view<value_type>)): Likewise. 129 (path::operator/=(const path&)): Do not define inline. 130 (path::_M_append(path)): Remove. 131 * python/libstdcxx/v6/printers.py (StdPathPrinter): New printer that 132 understands the new path::_List type. 133 * src/filesystem/std-path.cc (is_dir_sep): New function to replace 134 path::_S_is_dir_sep. 135 (path::_Parser): New helper class to parse strings as paths. 136 (path::_List::_Impl): Define container type for path components. 137 (path::_List): Define members. 138 (path::operator=(const path&)): Define explicitly, to provide the 139 strong exception safety guarantee. 140 (path::operator/=(const path&)): Implement manually by processing 141 each component of the argument, rather than using _M_split_cmpts 142 to parse the entire string again. 143 (path::_M_append(string_type)): Likewise. 144 (path::operator+=(const path&)): Likewise. 145 (path::_M_concat(string_type)): Likewise. 146 (path::remove_filename()): Perform trim directly instead of calling 147 _M_trim(). 148 (path::_M_split_cmpts()): Rewrite in terms of _Parser class. 149 (path::_M_trim, path::_M_add_root_name, path::_M_add_root_dir) 150 (path::_M_add_filename): Remove. 151 * testsuite/27_io/filesystem/path/append/source.cc: Test appending a 152 string view that aliases the path. 153 testsuite/27_io/filesystem/path/concat/strings.cc: Test concatenating 154 a string view that aliases the path. 155 156 * testsuite/27_io/filesystem/path/generation/proximate.cc: Use 157 preferred directory separators for normalized paths. 158 * testsuite/27_io/filesystem/path/generation/relative.cc: Likewise. 159 160 * testsuite/27_io/filesystem/path/itr/traversal.cc: Fix test for 161 mingw. 162 163 * testsuite/27_io/filesystem/path/construct/80762.cc: Skip test if 164 the Filesystem TS support is not configured. 165 * testsuite/experimental/filesystem/path/construct/80762.cc: Likewise. 166 1672018-12-12 Jonathan Wakely <jwakely@redhat.com> 168 169 PR libstdc++/71044 (partial) 170 * include/bits/fs_path.h (__path_iter_distance, __path_iter_advance): 171 New friend functions to implement std::distance and std::advance more 172 efficiently. 173 (distance, advance): Add overloads for path::iterator. 174 * testsuite/27_io/filesystem/path/itr/components.cc: Test new 175 overload. 176 177 PR libstdc++/80762 178 * include/bits/fs_path.h (path::_Path): Use remove_cv_t and is_void. 179 * include/experimental/bits/fs_path.h (path::_Path): Likewise. 180 * testsuite/27_io/filesystem/path/construct/80762.cc: New test. 181 * testsuite/experimental/filesystem/path/construct/80762.cc: New test. 182 1832018-12-12 Jakub Jelinek <jakub@redhat.com> 184 185 P0595R2 - is_constant_evaluated 186 * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED): 187 Define if __builtin_is_constant_evaluated is available. 188 * include/std/type_traits (std::is_constant_evaluated): New constexpr 189 inline function. 190 * testsuite/20_util/is_constant_evaluated/1.cc: New test. 191 * testsuite/20_util/is_constant_evaluated/noexcept.cc: New test. 192 1932018-12-10 Gerald Pfeifer <gerald@pfeifer.com> 194 195 * doc/xml/manual/documentation_hacking.xml: Update reference 196 to epubcheck. 197 1982018-12-10 Jonathan Wakely <jwakely@redhat.com> 199 200 * testsuite/experimental/filesystem/path/query/is_absolute.cc: Fix 201 test to use TS, not C++17. 202 2032018-12-06 Iain Sandoe <iain@sandoe.co.uk> 204 205 * scripts/make_exports.pl (check names): Don’t try to export 206 construction vtable symbols. 207 2082018-12-06 Jonathan Wakely <jwakely@redhat.com> 209 Iain Sandoe <iain@sandoe.co.uk> 210 211 PR libstdc++/64883 212 * testsuite/17_intro/headers/c++1998/all_attributes.cc: Don't test 213 always_inline on Darwin. 214 * testsuite/17_intro/headers/c++2011/all_attributes.cc: Likewise. 215 * testsuite/17_intro/headers/c++2014/all_attributes.cc: Likewise. 216 * testsuite/17_intro/headers/c++2017/all_attributes.cc: Likewise. 217 * testsuite/17_intro/headers/c++2020/all_attributes.cc: Likewise. 218 2192018-12-03 Edward Smith-Rowland <3dw4rd@verizon.net> 220 221 PR libstdc++/88341 - Complex norm doesn't compile with C++11 222 * include/std/complex (_S_do_it): Make C++20 constexpr. 223 * testsuite/26_numerics/complex/value_operations/pr88341.cc: New test. 224 2252018-11-30 Edward Smith-Rowland <3dw4rd@verizon.net> 226 227 Implement P0457R2 String Prefix and Suffix Checking. 228 * include/bits/basic_string.h: Add starts_with, ends_with members. 229 * include/std/string_view: Ditto. 230 * testsuite/21_strings/basic_string/operations/starts_with/ 231 char/1.cc: New test. 232 * testsuite/21_strings/basic_string/operations/starts_with/ 233 wchar_t/1.cc: New test. 234 * testsuite/21_strings/basic_string/operations/ends_with/ 235 char/1.cc: New test. 236 * testsuite/21_strings/basic_string/operations/ends_with/ 237 wchar_t/1.cc: New test. 238 * testsuite/21_strings/basic_string_view/operations/starts_with/ 239 char/1.cc: New test. 240 * testsuite/21_strings/basic_string_view/operations/starts_with/ 241 wchar_t/1.cc: New test. 242 * testsuite/21_strings/basic_string_view/operations/ends_with/ 243 char/1.cc: New test. 244 * testsuite/21_strings/basic_string_view/operations/ends_with/ 245 wchar_t/1.cc: New test. 246 2472018-11-30 Edward Smith-Rowland <3dw4rd@verizon.net> 248 249 Pre-emptively support P0646R1 for std container erasure. 250 * include/bits/erase_if.h: Accumulate and return number of erased nodes. 251 * include/std/forward_list (): Return number of erased items. 252 * include/std/list (): Ditto. 253 * include/std/map (): Ditto. 254 * include/std/set (): Ditto. 255 * include/std/string (): Ditto. 256 * include/std/unordered_map (): Ditto. 257 * include/std/unordered_set (): Ditto. 258 * include/std/vector (): Ditto. 259 * include/std/deque (): Ditto. 260 * testsuite/21_strings/basic_string/erasure.cc: Test number of erasures. 261 * testsuite/23_containers/deque/erasure.cc: Ditto. 262 * testsuite/23_containers/forward_list/erasure.cc: Ditto. 263 * testsuite/23_containers/list/erasure.cc: Ditto. 264 * testsuite/23_containers/map/erasure.cc: Ditto. 265 * testsuite/23_containers/set/erasure.cc: Ditto. 266 * testsuite/23_containers/unordered_map/erasure.cc: Ditto. 267 * testsuite/23_containers/unordered_set/erasure.cc: Ditto. 268 * testsuite/23_containers/vector/erasure.cc: Ditto. 269 2702018-11-29 Edward Smith-Rowland <3dw4rd@verizon.net> 271 272 Only include bits/stl_algo.h for C++20. 273 * include/std/deque: Only include bits/stl_algo.h for C++20. 274 * include/std/string: Ditto. 275 * include/std/vector: Ditto. 276 2772018-11-29 Edward Smith-Rowland <3dw4rd@verizon.net> 278 279 Fix erasure goofs. 280 * include/experimental/deque: Make inline. 281 * include/std/deque: Include bits/stl_algo.h. 282 (erase, erase_if): Make inline. 283 * include/std/string: Include bits/stl_algo.h. 284 * include/std/unordered_set: Add erase, erase_if! 285 * include/std/vector: Include bits/stl_algo.h. 286 * testsuite/21_strings/basic_string/erasure.cc: 287 Add { dg-options "-std=gnu++2a" }. 288 * testsuite/23_containers/deque/erasure.cc: Ditto. 289 * testsuite/23_containers/forward_list/erasure.cc: Ditto. 290 * testsuite/23_containers/list/erasure.cc: Ditto. 291 * testsuite/23_containers/map/erasure.cc: Ditto. 292 * testsuite/23_containers/set/erasure.cc: Ditto. 293 * testsuite/23_containers/unordered_map/erasure.cc: Ditto. 294 * testsuite/23_containers/unordered_set/erasure.cc: Ditto. 295 * testsuite/23_containers/vector/erasure.cc: Ditto. 296 2972018-11-29 Jonathan Wakely <jwakely@redhat.com> 298 299 PR libstdc++/88119 300 * include/ext/aligned_buffer.h (__aligned_membuf): Add comment. 301 (__aligned_buffer): Use __alignof__ instead of std::alignment_of. 302 * include/std/type_traits (alignment_of): Use alignof instead of 303 __alignof__. 304 * testsuite/20_util/alignment_of/value.cc: Fix test to check values 305 match alignof not __alignof__, as required by the standard. 306 307 PR libstdc++/86910 308 PR libstdc++/87846 309 * src/filesystem/ops.cc (experimental::create_directories): Report 310 an error when the path resolves to an existing non-directory (P1164). 311 * src/filesystem/std-ops.cc (create_directories): Likewise. Handle 312 empty filenames due to trailing slashes. 313 * testsuite/27_io/filesystem/operations/create_directories.cc: Test 314 when some component of the path exists and is not a directory. Test 315 trailing slashes. 316 * testsuite/experimental/filesystem/operations/create_directories.cc: 317 Likewise. 318 3192018-11-28 Jonathan Wakely <jwakely@redhat.com> 320 321 PR libstdc++/83306 322 * src/filesystem/path.cc (filesystem_error::_M_gen_what()): Create 323 string directly, instead of calling fs_err_concat. 324 325 PR libstdc++/83511 326 * include/std/string_view (basic_string_view::substr): Add default 327 argument to first parameter. 328 * include/experimental/string_view (basic_string_view::substr): 329 Likewise. 330 * testsuite/21_strings/basic_string_view/operations/substr/char/ 331 83511.cc: New test. 332 * testsuite/21_strings/basic_string_view/operations/substr/wchar_t/ 333 83511.cc: New test. 334 * testsuite/experimental/string_view/operations/substr/char/83511.cc: 335 New test. 336 * testsuite/experimental/string_view/operations/substr/wchar_t/83511.cc: 337 New test. 338 3392018-11-28 Edward Smith-Rowland <3dw4rd@verizon.net> 340 341 Implement uniform container erasure for C++20. 342 * include/Makefile.am: Move erase_if.h. 343 * include/Makefile.in: Move erase_if.h. 344 * include/experimental/bits/erase_if.h: Move ... 345 * include/bits/erase_if.h: ... here. 346 * include/experimental/map: Move erase_if.h. 347 * include/experimental/set: Move erase_if.h. 348 * include/experimental/unordered_map: Move erase_if.h. 349 * include/experimental/unordered_set: Move erase_if.h. 350 * include/std/deque (erase_if, erase): New functions. 351 * include/std/forward_list: Ditto. 352 * include/std/list: Ditto. 353 * include/std/map: Ditto. 354 * include/std/set: Ditto. 355 * include/std/string: Ditto. 356 * include/std/unordered_map: Ditto. 357 * include/std/unordered_set: Ditto. 358 * include/std/vector: Ditto. 359 * testsuite/21_strings/basic_string/erasure.cc: New test. 360 * testsuite/23_containers/deque/erasure.cc: New test. 361 * testsuite/23_containers/forward_list/erasure.cc: New test. 362 * testsuite/23_containers/list/erasure.cc: New test. 363 * testsuite/23_containers/map/erasure.cc: New test. 364 * testsuite/23_containers/set/erasure.cc: New test. 365 * testsuite/23_containers/unordered_map/erasure.cc: New test. 366 * testsuite/23_containers/unordered_set/erasure.cc: New test. 367 * testsuite/23_containers/vector/erasure.cc: New test. 368 3692018-11-28 Jonathan Wakely <jwakely@redhat.com> 370 371 * doc/xml/manual/intro.xml: Document LWG 3096 change. 372 * src/filesystem/std-path.cc (path::lexically_relative(const path&)): 373 Treat a final empty element equivalently to a final dot element. 374 * testsuite/27_io/filesystem/path/generation/relative.cc: Add checks 375 for the examples in the DR. 376 377 PR libstdc++/83306 378 * include/bits/fs_path.h (filesystem_error): Move data members into 379 pimpl class owned by shared_ptr. Remove inline definitions of member 380 functions. 381 * src/filesystem/std-path.cc (filesystem_error::_Impl): Define. 382 (filesystem_error): Define member functions. 383 * testsuite/27_io/filesystem/filesystem_error/cons.cc: New test. 384 * testsuite/27_io/filesystem/filesystem_error/copy.cc: New test. 385 386 * doc/xml/manual/status_cxx2017.xml: Update C++17 status. 387 * doc/html/*: Regenerate. 388 3892018-11-27 Jonathan Wakely <jwakely@redhat.com> 390 391 * testsuite/27_io/filesystem/operations/canonical.cc: Remove 392 directory created by test. 393 * testsuite/27_io/filesystem/operations/symlink_status.cc: Remove 394 symlink created by test. 395 396 PR libstdc++/67843 397 * acinclude.m4 (GLIBCXX_ENABLE_LOCK_POLICY): Add new macro 398 that defines _GLIBCXX_HAVE_ATOMIC_LOCK_POLICY. 399 * config.h.in: Regenerate. 400 * configure: Regenerate. 401 * configure.ac: Use GLIBCXX_ENABLE_LOCK_POLICY. 402 * doc/xml/manual/configure.xml: Document new configure option. 403 * include/bits/fs_dir.h (directory_iterator): Use __shared_ptr 404 instead of shared_ptr. 405 (recursive_directory_iterator): Likewise. 406 (__shared_ptr<_Dir>): Add explicit instantiation declaration. 407 (__shared_ptr<recursive_directory_iterator::_Dir_stack>): Likewise. 408 * include/bits/shared_ptr_base.h (__allocate_shared, __make_shared): 409 Add default template argument for _Lock_policy template parameter. 410 * include/ext/concurrence.h (__default_lock_policy): Check macro 411 _GLIBCXX_HAVE_ATOMIC_LOCK_POLICY instead of checking if the current 412 target supports the builtins for compare-and-swap. 413 * src/filesystem/std-dir.cc (__shared_ptr<_Dir>): Add explicit 414 instantiation definition. 415 (__shared_ptr<recursive_directory_iterator::_Dir_stack>): Likewise. 416 (directory_iterator, recursive_directory_iterator): Use __make_shared 417 instead of make_shared. 418 4192018-11-27 François Dumont <fdumont@gcc.gnu.org> 420 421 PR libstdc++/88199 422 * include/bits/hashtable.h (_Hashtable<>::_M_assign_elements): New. 423 (_Hashtable<>::operator=(const _Hashtable&)): Use latter. 424 (_Hashtable<>::_M_move_assign(_Hashtable&&, false_type)): Likewise. 425 * testsuite/23_containers/unordered_set/allocator/move_assign.cc 426 (test03): New. 427 4282018-11-26 Jonathan Wakely <jwakely@redhat.com> 429 430 * testsuite/26_numerics/complex/requirements/more_constexpr.cc: Fix 431 failure on targets without __float128. 432 4332018-11-23 Edward Smith-Rowland <3dw4rd@verizon.net> 434 435 Implement P0415 More constexpr for std::complex. 436 * include/std/complex (conj(complex<Tp>), norm(complex<Tp>)): Constexpr; 437 (real(Tp), imag(Tp)): Constexpr; 438 (operator@=(Tp), operator@=(complex<Tp>)): Constexpr; 439 (operator@(Tp,complex<Tp>), operator@(complex<Tp>,Tp) 440 operator@(complex<Tp>,complex<Tp>)): Constexpr. 441 * testsuite/26_numerics/complex/comparison_operators/ 442 more_constexpr.cc: New test. 443 * testsuite/26_numerics/complex/operators/more_constexpr.cc: New test. 444 * testsuite/26_numerics/complex/requirements/ 445 more_constexpr.cc: New test. 446 * testsuite/26_numerics/complex/value_operations/ 447 more_constexpr.cc: New test. 448 * testsuite/26_numerics/headers/complex/synopsis.cc: 449 Add _GLIBCXX20_CONSTEXPR to applicable operators; Add missing proj(). 450 * testsuite/26_numerics/headers/complex/synopsis.cc: 451 Add _GLIBCXX20_CONSTEXPR to relevant decls. 452 4532018-11-23 Martin Sebor <msebor@redhat.com> 454 Jonathan Wakely <jwakely@redhat.com> 455 456 PR libstdc++/65229 457 * python/libstdcxx/v6/printers.py (StdBitsetPrinter): Handle 458 exception thrown for std::bitset<0>. 459 * testsuite/libstdc++-prettyprinters/simple.cc: Test std::bitset<0>. 460 4612018-11-23 Jonathan Wakely <jwakely@redhat.com> 462 463 PR libstdc++/87308 (partial) 464 * python/libstdcxx/v6/printers.py (StdExpAnyPrinter): Adjust regex to 465 work around PR 88166. 466 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test std::any 467 containing a local type. 468 4692018-11-22 Marc Glisse <marc.glisse@inria.fr> 470 471 PR libstdc++/87106 472 * include/bits/stl_algobase.h: Include <type_traits>. 473 (__niter_base): Add noexcept specification. 474 * include/bits/stl_deque.h: Include <bits/stl_uninitialized.h>. 475 (__is_trivially_relocatable): Specialize for deque. 476 * include/bits/stl_iterator.h: Include <type_traits>. 477 (__niter_base): Add noexcept specification. 478 * include/bits/stl_uninitialized.h (__is_trivially_relocatable): 479 Add parameter for meta-programming. 480 (__relocate_a_1, __relocate_a): Add noexcept specification. 481 * include/bits/stl_vector.h (__use_relocate): Test __relocate_a. 482 4832018-11-22 Jonathan Wakely <jwakely@redhat.com> 484 485 PR libstdc++/85930 486 PR libstdc++/87520 487 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti) 488 [__cpp_rtti]: Define even when RTTI is enabled. Use array of 489 sizeof(type_info) so that type-punned reference binds to an object 490 of the correct size as well as correct alignment. 491 (_Sp_counted_ptr_inplace::_M_get_deleter) [__cpp_rtti]: Check for 492 _S_ti() reference even when RTTI is enabled. 493 (__shared_ptr(_Sp_make_shared_tag, const _Alloc&, _Args&&...)) 494 [__cpp_rtti]: Pass _S_ti() instead of typeid(_Sp_make_shared_tag). 495 4962018-11-21 Jakub Jelinek <jakub@redhat.com> 497 498 PR c++/87386 499 * testsuite/20_util/scoped_allocator/69293_neg.cc: Adjust expected 500 line. 501 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise. 502 * testsuite/20_util/uses_allocator/69293_neg.cc: Likewise. 503 * testsuite/experimental/propagate_const/requirements2.cc: Likewise. 504 * testsuite/experimental/propagate_const/requirements3.cc: Likewise. 505 * testsuite/experimental/propagate_const/requirements4.cc: Likewise. 506 * testsuite/experimental/propagate_const/requirements5.cc: Likewise. 507 5082018-11-21 Jonathan Wakely <jwakely@redhat.com> 509 510 PR libstdc++/88111 511 * include/std/memory_resource (pool_options): Add Doxygen comments. 512 * src/c++17/memory_resource.cc (pool_sizes): Only use suitable values 513 on targets with 16-bit or 20-bit size_t type. 514 (munge_options): Make default values depend on width of size_t type. 515 516 PR libstdc++/88113 517 * src/c++17/memory_resource.cc (bitset::size_type): Use the smaller 518 of uint32_t and size_t. 519 (bitset::size(), bitset::free(), bitset::update_next_word()) 520 (bitset::max_blocks_per_chunk(), bitset::max_word_index()): Use 521 size_type consistently instead of size_t. 522 (chunk): Adjust static_assert checking sizeof(chunk). 523 5242018-11-20 Ville Voutilainen <ville.voutilainen@gmail.com> 525 526 Housekeeping for the effective targets of optional's tests. 527 * testsuite/20_util/optional/77288.cc: Adjust. 528 * testsuite/20_util/optional/84601.cc: Likewise. 529 * testsuite/20_util/optional/assignment/1.cc: Likewise. 530 * testsuite/20_util/optional/assignment/2.cc: Likewise. 531 * testsuite/20_util/optional/assignment/3.cc: Likewise. 532 * testsuite/20_util/optional/assignment/4.cc: Likewise. 533 * testsuite/20_util/optional/assignment/5.cc: Likewise. 534 * testsuite/20_util/optional/assignment/6.cc: Likewise. 535 * testsuite/20_util/optional/assignment/7.cc: Likewise. 536 * testsuite/20_util/optional/assignment/8.cc: Likewise. 537 * testsuite/20_util/optional/cons/77727.cc: Likewise. 538 * testsuite/20_util/optional/cons/copy.cc: Likewise. 539 * testsuite/20_util/optional/cons/deduction.cc: Likewise. 540 * testsuite/20_util/optional/cons/default.cc: Likewise. 541 * testsuite/20_util/optional/cons/move.cc: Likewise. 542 * testsuite/20_util/optional/cons/trivial.cc: Likewise. 543 * testsuite/20_util/optional/cons/value.cc: Likewise. 544 * testsuite/20_util/optional/cons/value_neg.cc: Likewise. 545 * testsuite/20_util/optional/constexpr/cons/default.cc: Likewise. 546 * testsuite/20_util/optional/constexpr/cons/value.cc: Likewise. 547 * testsuite/20_util/optional/constexpr/in_place.cc: Likewise. 548 * testsuite/20_util/optional/constexpr/nullopt.cc: Likewise. 549 * testsuite/20_util/optional/constexpr/observers/1.cc: Likewise. 550 * testsuite/20_util/optional/constexpr/observers/4.cc: Likewise. 551 * testsuite/20_util/optional/constexpr/observers/5.cc: Likewise. 552 * testsuite/20_util/optional/constexpr/relops/1.cc: Likewise. 553 * testsuite/20_util/optional/constexpr/relops/2.cc: Likewise. 554 * testsuite/20_util/optional/constexpr/relops/3.cc: Likewise. 555 * testsuite/20_util/optional/constexpr/relops/4.cc: Likewise. 556 * testsuite/20_util/optional/constexpr/relops/5.cc: Likewise. 557 * testsuite/20_util/optional/constexpr/relops/6.cc: Likewise. 558 * testsuite/20_util/optional/in_place.cc: Likewise. 559 * testsuite/20_util/optional/make_optional.cc: Likewise. 560 * testsuite/20_util/optional/nullopt.cc: Likewise. 561 * testsuite/20_util/optional/observers/1.cc: Likewise. 562 * testsuite/20_util/optional/observers/2.cc: Likewise. 563 * testsuite/20_util/optional/observers/3.cc: Likewise. 564 * testsuite/20_util/optional/observers/4.cc: Likewise. 565 * testsuite/20_util/optional/observers/5.cc: Likewise. 566 * testsuite/20_util/optional/observers/6.cc: Likewise. 567 * testsuite/20_util/optional/relops/1.cc: Likewise. 568 * testsuite/20_util/optional/relops/2.cc: Likewise. 569 * testsuite/20_util/optional/relops/3.cc: Likewise. 570 * testsuite/20_util/optional/relops/4.cc: Likewise. 571 * testsuite/20_util/optional/relops/5.cc: Likewise. 572 * testsuite/20_util/optional/relops/6.cc: Likewise. 573 * testsuite/20_util/optional/relops/7.cc: Likewise. 574 * testsuite/20_util/optional/requirements.cc: Likewise. 575 * testsuite/20_util/optional/swap/1.cc: Likewise. 576 * testsuite/20_util/optional/swap/2.cc: Likewise. 577 * testsuite/20_util/optional/typedefs.cc: Likewise. 578 5792018-11-19 François Dumont <fdumont@gcc.gnu.org> 580 581 * include/ext/throw_allocator.h 582 (annotate_base::insert(void*, size_t)): Use insert result to check for 583 double insert attempt. 584 (annotate_base::insert_construct(void*)): Likewise. 585 (annotate_base::check_allocated(void*, size_t)): Return found iterator. 586 (annotate_base::erase(void*, size_t)): Use latter method returned 587 iterator. 588 (annotate_base::check_constructed(void*, size_t)): Return found iterator. 589 (annotate_base::erase_construct(void*)): Use latter method returned 590 iterator. 591 5922018-11-19 Ville Voutilainen <ville.voutilainen@gmail.com> 593 594 PR libstdc++/87855 595 Also implement P0602R4 (variant and optional 596 should propagate copy/move triviality) for std::optional. 597 * include/std/optional (_Optional_payload): Change 598 the main constraints to check constructibility in 599 addition to assignability. 600 (operator=): Make constexpr. 601 (_M_reset): Likewise. 602 (_M_construct): Likewise. 603 (operator->): Likewise. 604 * testsuite/20_util/optional/assignment/8.cc: Adjust. 605 * testsuite/20_util/optional/assignment/9.cc: New. 606 6072018-11-19 Jonathan Wakely <jwakely@redhat.com> 608 609 PR libstdc++/88084 - Implement LWG 2777 610 * include/std/string_view (basic_string_view::copy): Use traits to 611 copy. 612 * testsuite/21_strings/basic_string_view/operations/copy/char/2.cc: 613 New test. 614 * testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc: 615 New test. 616 6172018-11-18 Michele Pezzutti <mpezz@tiscali.it> 618 Edward Smith-Rowland <3dw4rd@verizon.net> 619 620 PR libstdc++/83566 - cyl_bessel_j returns wrong result for x>1000 621 for high orders. 622 * include/tr1/bessel_function.tcc: Perform no fewer than nu/2 iterations 623 of the asymptotic series (nu is the Bessel order). 624 * testsuite/tr1/5_numerical_facilities/special_functions/ 625 09_cyl_bessel_j/check_value.cc: Add tests at nu=100, 1000<=x<=2000. 626 * testsuite/tr1/5_numerical_facilities/special_functions/ 627 11_cyl_neumann/check_value.cc: Ditto. 628 * testsuite/special_functions/08_cyl_bessel_j/check_value.cc: Ditto. 629 * testsuite/special_functions/10_cyl_neumann/check_value.cc: Ditto. 630 6312018-11-17 Jonathan Wakely <jwakely@redhat.com> 632 633 Implement std::pmr::synchronized_pool_resource 634 * config/abi/pre/gnu.ver: Add new symbols. 635 * include/std/memory_resource [_GLIBCXX_HAS_GTHREADS] 636 (__cpp_lib_memory_resource): Define to expected value, 201603. 637 (synchronized_pool_resource): New class. 638 [!_GLIBCXX_HAS_GTHREADS] (__cpp_lib_memory_resource): Define to 1. 639 * include/std/shared_mutex (__glibcxx_rwlock_rdlock) 640 (__glibcxx_rwlock_tryrdlock, __glibcxx_rwlock_wrlock) 641 (__glibcxx_rwlock_trywrlock, __glibcxx_rwlock_unlock) 642 (__glibcxx_rwlock_destroy, __glibcxx_rwlock_init) 643 (__glibcxx_rwlock_timedrdlock, __glibcxx_rwlock_timedwrlock): Define 644 weak symbols for POSIX rwlock functions. 645 (__shared_mutex_pthread): Use weak symbols. 646 * include/std/version (__cpp_lib_memory_resource): Define. 647 * src/c++17/memory_resource.cc [_GLIBCXX_HAS_GTHREADS] 648 (synchronized_pool_resource::_TPools): New class. 649 (destroy_TPools): New function for pthread_key_create destructor. 650 (synchronized_pool_resource::synchronized_pool_resource) 651 (synchronized_pool_resource::~synchronized_pool_resource) 652 (synchronized_pool_resource::release) 653 (synchronized_pool_resource::do_allocate) 654 (synchronized_pool_resource::do_deallocate): Define public members. 655 (synchronized_pool_resource::_M_thread_specific_pools) 656 (synchronized_pool_resource::_M_alloc_tpools) 657 (synchronized_pool_resource::_M_alloc_shared_tpools): Define private 658 members. 659 * testsuite/20_util/synchronized_pool_resource/allocate.cc: New test. 660 * testsuite/20_util/synchronized_pool_resource/cons.cc: New test. 661 * testsuite/20_util/synchronized_pool_resource/is_equal.cc: New test. 662 * testsuite/20_util/synchronized_pool_resource/multithreaded.cc: New 663 test. 664 * testsuite/20_util/synchronized_pool_resource/release.cc: New test. 665 * testsuite/performance/20_util/memory_resource/pools.cc: Add 666 multithreaded tests using pmr::synchronized_pool_resource. 667 6682018-11-16 Renlin Li <renlin.li@arm.com> 669 Tejas Belagod <tejas.belagod@arm.com> 670 671 testsuite/lib/libstdc++.exp (check_v3_target_prop_cached): New proc. 672 (check_v3_target): Use the check_v3_target_prop_cached. 673 6742018-11-15 Jonathan Wakely <jwakely@redhat.com> 675 676 * scripts/check_performance: Allow tests to choose a -std flag. 677 * src/c++17/memory_resource.cc (bitset::get_first_unset()): Use local 678 variables of the right types. Call update_next_word() unconditionally. 679 * testsuite/20_util/unsynchronized_pool_resource/cons.cc: New test. 680 * testsuite/performance/20_util/memory_resource/pools.cc: New test. 681 * testsuite/util/testsuite_performance.h (time_counter): Allow 682 timer to be restarted. 683 684 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc: Fix 685 test for 32-bit targets. Test additional allocation sizes. 686 6872018-11-14 Jonathan Wakely <jwakely@redhat.com> 688 689 * scripts/create_testsuite_files: Add special_functions to the list 690 of directories to search. Add comment referring to conformance.exp. 691 * testsuite/libstdc++-dg/conformance.exp: Add comment referring 692 to create_testsuite_files. 693 6942018-11-13 Jonathan Wakely <jwakely@redhat.com> 695 696 * src/c++17/memory_resource.cc (select_num_pools): Fix off-by-one 697 error when block_size is equal to one of the values in the array. 698 699 * src/c++17/memory_resource.cc (_Pool::deallocate): Restore 700 attributes to parameters that are only used in assertions. 701 702 * src/c++17/memory_resource.cc (bitset::find_first_unset()): Remove 703 unused function. 704 (bitset::get_first_unset()): Remove loop, if there's are unset bits 705 then _M_next_word refers to the first one and there's no need to loop. 706 (_Pool::_Pool(size_t, size_t), _Pool::block_size()): Remove dead code. 707 708 * src/c++17/memory_resource.cc (munge_options): Round up value of 709 largest_required_pool_block to multiple of smallest pool size. Round 710 excessively large values down to largest pool size. 711 (select_num_pools): Increase number of pools by one unless it exactly 712 matches requested largest_required_pool_block. 713 (__pool_resource::_M_alloc_pools()): Make largest pool size equal 714 largest_required_pool_block. 715 * testsuite/20_util/unsynchronized_pool_resource/options.cc: Check 716 that pool_options::largest_required_pool_block is set appropriately. 717 718 * src/c++17/memory_resource.cc (big_block): Improve comments. 719 (big_block::all_ones): Remove. 720 (big_block::big_block(size_t, size_t)): Use alloc_size. 721 (big_block::size()): Add comment, replace all_ones with equivalent 722 expression. 723 (big_block::align()): Shift value of correct type. 724 (big_block::alloc_size(size_t)): New function to round up size. 725 (__pool_resource::allocate(size_t, size_t)): Add comment. 726 (__pool_resource::deallocate(void*, size_t, size_t)): Likewise. Fix 727 incorrect assertion by using big_block::alloc_size(size_t). 728 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc: Add 729 more tests for unpooled allocations. 730 731 * src/c++17/memory_resource.cc (bitset::full()): Handle edge case 732 for _M_next_word maximum value. 733 (bitset::get_first_unset(), bitset::set(size_type)): Use 734 update_next_word() to update _M_next_word. 735 (bitset::update_next_word()): New function, avoiding wraparound of 736 unsigned _M_next_word member. 737 (bitset::max_word_index()): New function. 738 (chunk::chunk(void*, uint32_t, void*, size_t)): Add assertion. 739 (chunk::max_bytes_per_chunk()): New function. 740 (pool::replenish(memory_resource*, const pool_options&)): Prevent 741 _M_blocks_per_chunk from exceeding max_blocks_per_chunk or from 742 causing chunk::max_bytes_per_chunk() to be exceeded. 743 * testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc: 744 New test. 745 7462018-11-12 Jason Merrill <jason@redhat.com> 747 748 * libsupc++/new (std::destroying_delete_t): New. 749 7502018-11-12 Jonathan Wakely <jwakely@redhat.com> 751 752 PR libstdc++/87963 753 * src/c++17/memory_resource.cc (chunk::_M_bytes): Change type from 754 unsigned to uint32_t. 755 (chunk): Fix static assertion for 64-bit targets that aren't LP64. 756 (bigblock::all_ones): Fix undefined shift. 757 7582018-11-11 Hans-Peter Nilsson <hp@axis.com> 759 760 PR libstdc++-v3/54005 761 * include/bits/atomic_base.h (__atomic_base<_TTp>::is_lock_free(), 762 __atomic_base<_PTp*>::is_lock_free()): Call __atomic_is_lock_free 763 with the type-derived _S_alignment instead of __alignof the object. 764 * include/std/atomic (atomic<T>::is_lock_free()): Likewise. 765 7662018-11-11 Jonathan Wakely <jwakely@redhat.com> 767 768 Implement P0318R1 unwrap_ref_decay and unwrap_reference 769 * include/std/type_traits (unwrap_reference, unwrap_reference_t) 770 (unwrap_ref_decay, unwrap_ref_decay_t): New traits and aliases. 771 * testsuite/20_util/unwrap_reference/1.cc: New test. 772 * testsuite/20_util/unwrap_reference/2.cc: New test. 773 774 Implement P1007R3 std::assume_aligned 775 * include/std/memory (assume_aligned): Implement for C++17. 776 * testsuite/20_util/assume_aligned/1.cc: New test. 777 * testsuite/20_util/assume_aligned/2_neg.cc: New test. 778 * testsuite/20_util/assume_aligned/3.cc: New test. 779 7802018-11-09 Jonathan Wakely <jwakely@redhat.com> 781 782 PR libstdc++/87787 783 * include/bits/stl_uninitialized.h (__relocate_a_1): Do not call 784 memmove when there's nothing to copy (and pointers could be null). 785 7862018-11-07 Hafiz Abid Qadeer <abidh@codesourcery.com> 787 788 * configure: Regenerated. 789 7902018-11-07 Jonathan Wakely <jwakely@redhat.com> 791 792 * config/abi/pre/gnu.ver: Fix patterns for size_t parameters. 793 7942018-11-06 Jonathan Wakely <jwakely@redhat.com> 795 796 Implement std::pmr::unsynchronized_pool_resource 797 * config/abi/pre/gnu.ver: Add new symbols. 798 * include/std/memory_resource (std::pmr::__pool_resource): New class. 799 (std::pmr::unsynchronized_pool_resource): New class. 800 * src/c++17/Makefile.am: Add -fimplicit-templates to flags for 801 memory_resource.cc 802 * src/c++17/Makefile.in: Regenerate. 803 * src/c++17/memory_resource.cc (bitset, chunk, big_block): New 804 internal classes. 805 (__pool_resource::_Pool): Define new class. 806 (munge_options, pool_index, select_num_pools): New internal functions. 807 (__pool_resource::__pool_resource, __pool_resource::~__pool_resource) 808 (__pool_resource::allocate, __pool_resource::deallocate) 809 (__pool_resource::_M_alloc_pools): Define member functions. 810 (unsynchronized_pool_resource::unsynchronized_pool_resource) 811 (unsynchronized_pool_resource::~unsynchronized_pool_resource) 812 (unsynchronized_pool_resource::release) 813 (unsynchronized_pool_resource::_M_find_pool) 814 (unsynchronized_pool_resource::do_allocate) 815 (unsynchronized_pool_resource::do_deallocate): Define member 816 functions. 817 * testsuite/20_util/unsynchronized_pool_resource/allocate.cc: New 818 test. 819 * testsuite/20_util/unsynchronized_pool_resource/is_equal.cc: New 820 test. 821 * testsuite/20_util/unsynchronized_pool_resource/options.cc: New 822 test. 823 * testsuite/20_util/unsynchronized_pool_resource/release.cc: New 824 test. 825 8262018-11-06 John Bytheway <jbytheway@gmail.com> 827 828 PR libstdc++/87872 829 * include/debug/safe_sequence.tcc 830 (_Safe_sequence<>::_M_transfer_from_if): Skip transfer to self. 831 8322018-10-31 Joseph Myers <joseph@codesourcery.com> 833 834 PR bootstrap/82856 835 * Makefile.am: Include multilib.am. 836 * configure.ac: Remove AC_PREREQ. 837 * Makefile.in, aclocal.m4, configure, doc/Makefile.in, 838 include/Makefile.in, libsupc++/Makefile.in, po/Makefile.in, 839 python/Makefile.in, src/Makefile.in, src/c++11/Makefile.in, 840 src/c++17/Makefile.in, src/c++98/Makefile.in, 841 src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate. 842 8432018-10-31 Jonathan Wakely <jwakely@redhat.com> 844 845 * testsuite/20_util/pair/87822.cc: Test deeper nesting. 846 847 PR libstdc++/87822 848 * include/bits/stl_pair.h (__pair_base): Change to class template. 849 (pair): Make base class type depend on template parameters. 850 * testsuite/20_util/pair/87822.cc: New test. 851 8522018-10-30 Marek Polacek <polacek@redhat.com> 853 854 Implement P0892R2, explicit(bool). 855 * testsuite/20_util/any/cons/explicit.cc: Adjust dg-error. 856 * testsuite/20_util/pair/cons/explicit_construct.cc: Likewise. 857 * testsuite/20_util/tuple/cons/explicit_construct.cc: Likewise. 858 8592018-10-30 Jonathan Wakely <jwakely@redhat.com> 860 861 PR libstdc++/87809 862 * include/bits/forward_list.h (_Fwd_list_impl::_Fwd_list_impl()): Use 863 trait in exception-specification instead of possibly invalid 864 expression. 865 * include/bits/stl_bvector.h (_Bvector_impl::_Bvector_impl()): 866 Likewise. 867 * include/bits/stl_list.h (_List_impl::_List_impl()): Likewise. 868 * include/bits/stl_vector.h (_Vector_impl::_Vector_impl()): Likewise. 869 * testsuite/23_containers/forward_list/cons/87809.cc: New test. 870 * testsuite/23_containers/list/cons/87809.cc: New test. 871 * testsuite/23_containers/vector/bool/cons/87809.cc: New test. 872 * testsuite/23_containers/vector/cons/87809.cc: New test. 873 874 PR libstdc++/87784 875 * include/tr2/dynamic_bitset (dynamic_bitset::push_back): When there 876 are no unused bits in the last block, append a new block with the 877 right value so the bit doesn't need to be set. Only increment size 878 after setting the new bit, not before. 879 * testsuite/tr2/dynamic_bitset/pr87784.cc: New test. 880 8812018-10-29 David Malcolm <dmalcolm@redhat.com> 882 883 * testsuite/17_intro/using_namespace_std_exp_neg.cc: Remove 884 "expected namespace-name before" error. 885 * testsuite/17_intro/using_namespace_std_tr1_neg.cc: Likewise. 886 8872018-10-28 François Dumont <fdumont@gcc.gnu.org> 888 889 * testsuite/23_containers/deque/48101_neg.cc: Remove dg-prune-output 890 'std' from regex pattern for versioned namespace compatibility. 891 * testsuite/23_containers/vector/48101_neg.cc: Likewise. 892 * testsuite/27_io/filesystem/path/io/dr2989.cc: Likewise. 893 8942018-10-25 Jonathan Wakely <jwakely@redhat.com> 895 896 PR libstdc++/87749 897 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] 898 (basic_string::operator=(basic_string&&)): For short strings copy the 899 buffer inline. Only fall back to using assign(const basic_string&) to 900 do a deep copy when reallocation is needed. 901 * testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc: 902 New test. 903 * testsuite/21_strings/basic_string/modifiers/assign/char/ 904 move_assign_optim.cc: New test. 905 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc: 906 New test. 907 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/ 908 move_assign_optim.cc: New test. 909 9102018-10-25 Marc Glisse <marc.glisse@inria.fr> 911 912 PR libstdc++/87106 913 * include/bits/alloc_traits.h (_S_construct, _S_destroy, construct, 914 destroy): Add noexcept specification. 915 * include/bits/allocator.h (construct, destroy): Likewise. 916 * include/ext/alloc_traits.h (construct, destroy): Likewise. 917 * include/ext/malloc_allocator.h (construct, destroy): Likewise. 918 * include/ext/new_allocator.h (construct, destroy): Likewise. 919 * include/bits/stl_uninitialized.h (__relocate_object_a, __relocate_a, 920 __relocate_a_1): New functions. 921 (__is_trivially_relocatable): New class. 922 * include/bits/stl_vector.h (__use_relocate): New static member. 923 * include/bits/vector.tcc (reserve, _M_realloc_insert, 924 _M_default_append): Use __relocate_a. 925 (reserve, _M_assign_aux, _M_realloc_insert, _M_fill_insert, 926 _M_default_append, _M_range_insert): Move _GLIBCXX_ASAN_ANNOTATE_REINIT 927 after _Destroy. 928 * testsuite/23_containers/vector/modifiers/push_back/49836.cc: 929 Replace CopyConsOnlyType with DelAnyAssign. 930 9312018-10-24 François Dumont <fdumont@gcc.gnu.org> 932 933 * include/debug/safe_unordered_container.h 934 (_Safe_unordered_container<>::_M_invalidate_locals): Take lambda 935 parameter type from local end variable. 936 (_Safe_unordered_container<>::_M_invalidate_all): Likewise. 937 * include/debug/unordered_map 938 (unordered_map<>::begin()): Use C++11 direct initialization. 939 (unordered_map<>::end()): Likewise. 940 (unordered_map<>::cbegin()): Likewise. 941 (unordered_map<>::cend()): Likewise. 942 (unordered_map<>::begin(size_type)): Likewise. 943 (unordered_map<>::end(size_type)): Likewise. 944 (unordered_map<>::cbegin(size_type)): Likewise. 945 (unordered_map<>::cend(size_type)): Likewise. 946 (unordered_map<>::emplace<>(_Args&&...)): Likewise. 947 (unordered_map<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise. 948 (unordered_map<>::insert(const value_type&)): Likewise. 949 (unordered_map<>::insert(value_type&&)): Likewise. 950 (unordered_map<>::insert<>(_Pair&&)): Likewise. 951 (unordered_map<>::insert(const_iterator, const value_type&)): Likewise. 952 (unordered_map<>::insert(const_iterator, value_type&&)): Likewise. 953 (unordered_map<>::insert<>(const_iterator, _Pair&&)): Likewise. 954 (unordered_map<>::try_emplace<>(const key_type&, _Args&&...)): Likewise. 955 (unordered_map<>::try_emplace<>(key_type&&, _Args&&...)): Likewise. 956 (unordered_map<>::try_emplace<>(const_iterator, const key_type&, 957 _Args&&...)): Likewise. 958 (unordered_map<>::try_emplace<>(const_iterator, key_type&&, 959 _Args&&...)): Likewise. 960 (unordered_map<>::insert_or_assign<>(const key_type&, _Obj&&)): Likewise. 961 (unordered_map<>::insert_or_assign<>(key_type&&, _Obj&&)): Likewise. 962 (unordered_map<>::insert_or_assign<>(const_iterator, const key_type&, 963 _Obj&&)): Likewise. 964 (unordered_map<>::insert_or_assign<>(const_iterator, key_type&&, 965 _Obj&&)): Likewise. 966 (unordered_map<>::insert(note_type&&)): Likewise. 967 (unordered_map<>::find(const key_type&)): Likewise. 968 (unordered_map<>::equal_range(const key_type&)): Likewise. 969 (unordered_map<>::_M_extract): New. 970 (unordered_map<>::extract(const_iterator)): Use latter. 971 (unordered_map<>::extract(const key_type&)): Likewise. 972 (unordered_map<>::_M_erase): New. 973 (unordered_map<>::erase(const key_type&)): Use latter. 974 (unordered_map<>::erase(const_iterator)): Likewise. 975 (unordered_map<>::erase(iterator)): Likewise. 976 (unordered_map<>::_M_invalidate): New. 977 (unordered_map<>::erase(const_iterator, const_iterator)): Use latter. 978 (unordered_multimap<>::begin()): Use C++11 direct initialization. 979 (unordered_multimap<>::end()): Likewise. 980 (unordered_multimap<>::cbegin()): Likewise. 981 (unordered_multimap<>::cend()): Likewise. 982 (unordered_multimap<>::begin(size_type)): Likewise. 983 (unordered_multimap<>::end(size_type)): Likewise. 984 (unordered_multimap<>::cbegin(size_type)): Likewise. 985 (unordered_multimap<>::cend(size_type)): Likewise. 986 (unordered_multimap<>::emplace<>(_Args&&...)): Likewise. 987 (unordered_multimap<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise. 988 (unordered_multimap<>::insert(const value_type&)): Likewise. 989 (unordered_multimap<>::insert(const_iterator, const value_type&)): Likewise. 990 (unordered_multimap<>::insert(const_iterator, value_type&&)): Likewise. 991 (unordered_multimap<>::insert<>(_Pair&&)): Likewise. 992 (unordered_multimap<>::insert<>(const_iterator, _Pair&&)): Likewise. 993 (unordered_multimap<>::insert(note_type&&)): Likewise. 994 (unordered_multimap<>::insert(const_iterator, note_type&&)): Likewise. 995 (unordered_multimap<>::find(const key_type&)): Likewise. 996 (unordered_multimap<>::equal_range(const key_type&)): Likewise. 997 (unordered_multimap<>::_M_extract): New. 998 (unordered_multimap<>::extract(const_iterator)): Use latter. 999 (unordered_multimap<>::extract(const key_type&)): Likewise. 1000 (unordered_multimap<>::_M_erase): New. 1001 (unordered_multimap<>::erase(const_iterator)): Likewise. 1002 (unordered_multimap<>::erase(iterator)): Likewise. 1003 (unordered_multimap<>::_M_invalidate): New. 1004 (unordered_multimap<>::erase(const key_type&)): Use latter. 1005 (unordered_multimap<>::erase(const_iterator, const_iterator)): Likewise. 1006 * include/debug/unordered_set 1007 (unordered_set<>::begin()): Use C++11 direct initialization. 1008 (unordered_set<>::end()): Likewise. 1009 (unordered_set<>::cbegin()): Likewise. 1010 (unordered_set<>::cend()): Likewise. 1011 (unordered_set<>::begin(size_type)): Likewise. 1012 (unordered_set<>::end(size_type)): Likewise. 1013 (unordered_set<>::cbegin(size_type)): Likewise. 1014 (unordered_set<>::cend(size_type)): Likewise. 1015 (unordered_set<>::emplace<>(_Args&&...)): Likewise. 1016 (unordered_set<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise. 1017 (unordered_set<>::insert(const value_type&)): Likewise. 1018 (unordered_set<>::insert(value_type&&)): Likewise. 1019 (unordered_set<>::insert(const_iterator, const value_type&)): Likewise. 1020 (unordered_set<>::insert(const_iterator, value_type&&)): Likewise. 1021 (unordered_set<>::insert(note_type&&)): Likewise. 1022 (unordered_set<>::insert(const_iterator, note_type&&)): Likewise. 1023 (unordered_set<>::find(const key_type&)): Likewise. 1024 (unordered_set<>::equal_range(const key_type&)): Likewise. 1025 (unordered_set<>::_M_extract): New. 1026 (unordered_set<>::extract(const_iterator)): Use latter. 1027 (unordered_set<>::extract(const key_type&)): Likewise. 1028 (unordered_set<>::_M_erase): New. 1029 (unordered_set<>::erase(const key_type&)): Use latter. 1030 (unordered_set<>::erase(const_iterator)): Likewise. 1031 (unordered_set<>::erase(iterator)): Likewise. 1032 (unordered_set<>::_M_invalidate): New. 1033 (unordered_set<>::erase(const_iterator, const_iterator)): Use latter. 1034 (unordered_multiset<>::begin()): Use C++11 direct initialization. 1035 (unordered_multiset<>::end()): Likewise. 1036 (unordered_multiset<>::cbegin()): Likewise. 1037 (unordered_multiset<>::cend()): Likewise. 1038 (unordered_multiset<>::begin(size_type)): Likewise. 1039 (unordered_multiset<>::end(size_type)): Likewise. 1040 (unordered_multiset<>::cbegin(size_type)): Likewise. 1041 (unordered_multiset<>::cend(size_type)): Likewise. 1042 (unordered_multiset<>::emplace<>(_Args&&...)): Likewise. 1043 (unordered_multiset<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise. 1044 (unordered_multiset<>::insert(const value_type&)): Likewise. 1045 (unordered_multiset<>::insert(const_iterator, const value_type&)): Likewise. 1046 (unordered_multiset<>::insert(value_type&&)): Likewise. 1047 (unordered_multiset<>::insert(const_iterator, value_type&&)): Likewise. 1048 (unordered_multiset<>::insert(node_type&&)): Likewise. 1049 (unordered_multiset<>::insert(const_iterator, node_type&&)): Likewise. 1050 (unordered_multiset<>::find(const key_type&)): Likewise. 1051 (unordered_multiset<>::equal_range(const key_type&)): Likewise. 1052 (unordered_multiset<>::_M_extract): New. 1053 (unordered_multiset<>::extract(const_iterator)): Use latter. 1054 (unordered_multiset<>::extract(const key_type&)): Likewise. 1055 (unordered_multiset<>::_M_erase): New. 1056 (unordered_multiset<>::erase(const_iterator)): Likewise. 1057 (unordered_multiset<>::erase(iterator)): Likewise. 1058 (unordered_multiset<>::_M_invalidate): New. 1059 (unordered_multiset<>::erase(const key_type&)): Use latter. 1060 (unordered_multiset<>::erase(const_iterator, const_iterator)): Likewise. 1061 1062 * include/c_global/cstddef: Add versioned namespace. 1063 10642018-10-23 Jonathan Wakely <jwakely@redhat.com> 1065 1066 PR libstdc++/87704 1067 * include/bits/unique_ptr.h (unique_ptr::unique_ptr(nullptr_t)): Do 1068 not delegate to default constructor. 1069 (unique_ptr<T[], D>::unique_ptr(nullptr_t)): Likewise. 1070 * testsuite/20_util/unique_ptr/cons/incomplete.cc: New test. 1071 10722018-10-20 François Dumont <fdumont@gcc.gnu.org> 1073 1074 * testsuite/util/testsuite_containers.h 1075 (forward_members_unordered<>::forward_members_unordered 1076 (const value_type&)): Add local_iterator pre and post increment checks. 1077 * config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 new symbol. 1078 10792018-10-19 Jonathan Wakely <jwakely@redhat.com> 1080 1081 * testsuite/23_containers/array/requirements/explicit_instantiation/ 1082 3.cc: Skip test when compiled with a -std=c++NN strict mode. 1083 * testsuite/23_containers/deque/requirements/explicit_instantiation/ 1084 3.cc: Likewise. 1085 * testsuite/23_containers/forward_list/requirements/ 1086 explicit_instantiation/3.cc: Likewise. 1087 * testsuite/23_containers/list/requirements/explicit_instantiation/ 1088 3.cc: Likewise. 1089 * testsuite/23_containers/map/requirements/explicit_instantiation/ 1090 3.cc: Likewise. 1091 * testsuite/23_containers/multimap/requirements/explicit_instantiation/ 1092 3.cc: Likewise. 1093 * testsuite/23_containers/multiset/requirements/explicit_instantiation/ 1094 3.cc: Likewise. 1095 * testsuite/23_containers/set/requirements/explicit_instantiation/ 1096 3.cc: Likewise. 1097 * testsuite/23_containers/unordered_map/requirements/ 1098 explicit_instantiation/3.cc: Likewise. 1099 * testsuite/23_containers/unordered_multimap/requirements/ 1100 explicit_instantiation/3.cc: Likewise. 1101 * testsuite/23_containers/unordered_multiset/requirements/ 1102 explicit_instantiation/3.cc: Likewise. 1103 * testsuite/23_containers/unordered_set/requirements/ 1104 explicit_instantiation/3.cc: Likewise. 1105 * testsuite/23_containers/vector/ext_pointer/explicit_instantiation/ 1106 3.cc: Likewise. 1107 * testsuite/23_containers/vector/requirements/explicit_instantiation/ 1108 3.cc: Likewise. 1109 1110 * testsuite/23_containers/deque/48101_neg.cc: Prune additional errors 1111 printed when __STRICT_ANSI__ is defined. 1112 * testsuite/23_containers/forward_list/48101_neg.cc: Likewise. 1113 * testsuite/23_containers/list/48101_neg.cc: Likewise. 1114 * testsuite/23_containers/multiset/48101_neg.cc: Likewise. 1115 * testsuite/23_containers/set/48101_neg.cc: Likewise. 1116 * testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise. 1117 * testsuite/23_containers/unordered_set/48101_neg.cc: Likewise. 1118 * testsuite/23_containers/vector/48101_neg.cc: Likewise. 1119 1120 * testsuite/23_containers/forward_list/requirements/ 1121 explicit_instantiation/5.cc [__STRICT_ANSI__]: Don't test non-standard 1122 extension. 1123 * testsuite/23_containers/list/requirements/explicit_instantiation/ 1124 5.cc [__STRICT_ANSI__]: Likewise. 1125 * testsuite/23_containers/map/requirements/explicit_instantiation/5.cc 1126 [__STRICT_ANSI__]: Likewise. 1127 * testsuite/23_containers/multimap/requirements/explicit_instantiation/ 1128 5.cc [__STRICT_ANSI__]: Likewise. 1129 * testsuite/23_containers/multiset/requirements/explicit_instantiation/ 1130 5.cc [__STRICT_ANSI__]: Likewise. 1131 * testsuite/23_containers/set/requirements/explicit_instantiation/5.cc 1132 [__STRICT_ANSI__]: Likewise. 1133 * testsuite/23_containers/unordered_map/requirements/debug_container.cc 1134 [__STRICT_ANSI__]: Likewise. 1135 * testsuite/23_containers/unordered_map/requirements/ 1136 explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise. 1137 * testsuite/23_containers/unordered_multimap/requirements/ 1138 explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise. 1139 * testsuite/23_containers/unordered_multiset/requirements/ 1140 explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise. 1141 * testsuite/23_containers/unordered_set/requirements/ 1142 explicit_instantiation/5.cc [__STRICT_ANSI__]: Likewise. 1143 1144 * testsuite/20_util/scoped_allocator/1.cc: Use allocator with correct 1145 value type for the container. 1146 * testsuite/23_containers/forward_list/cons/14.cc: Likewise. 1147 * testsuite/23_containers/map/56613.cc: Likewise. 1148 * testsuite/23_containers/unordered_map/55043.cc: Likewise. 1149 * testsuite/23_containers/unordered_map/allocator/copy.cc: Likewise. 1150 * testsuite/23_containers/unordered_map/allocator/copy_assign.cc: 1151 Likewise. 1152 * testsuite/23_containers/unordered_map/allocator/minimal.cc: 1153 Likewise. 1154 * testsuite/23_containers/unordered_map/allocator/move.cc: Likewise. 1155 * testsuite/23_containers/unordered_map/allocator/move_assign.cc: 1156 Likewise. 1157 * testsuite/23_containers/unordered_map/allocator/noexcept.cc: 1158 Likewise. 1159 * testsuite/23_containers/unordered_map/cons/81891.cc: Likewise. 1160 * testsuite/23_containers/unordered_map/requirements/exception/ 1161 basic.cc: Likewise. 1162 * testsuite/23_containers/unordered_map/requirements/exception/ 1163 generation_prohibited.cc: Likewise. 1164 * testsuite/23_containers/unordered_map/requirements/exception/ 1165 propagation_consistent.cc: Likewise. 1166 * testsuite/23_containers/unordered_multimap/55043.cc: Likewise. 1167 * testsuite/23_containers/unordered_multimap/allocator/copy.cc: 1168 Likewise. 1169 * testsuite/23_containers/unordered_multimap/allocator/copy_assign.cc: 1170 Likewise. 1171 * testsuite/23_containers/unordered_multimap/allocator/minimal.cc: 1172 Likewise. 1173 * testsuite/23_containers/unordered_multimap/allocator/move.cc: 1174 Likewise. 1175 * testsuite/23_containers/unordered_multimap/allocator/move_assign.cc: 1176 Likewise. 1177 * testsuite/23_containers/unordered_multimap/allocator/noexcept.cc: 1178 Likewise. 1179 * testsuite/23_containers/unordered_multimap/requirements/exception/ 1180 basic.cc: Likewise. 1181 * testsuite/23_containers/unordered_multimap/requirements/exception/ 1182 generation_prohibited.cc: Likewise. 1183 * testsuite/23_containers/unordered_multimap/requirements/exception/ 1184 propagation_consistent.cc: Likewise. 1185 * testsuite/23_containers/unordered_multimap/requirements/ 1186 explicit_instantiation/5.cc: Likewise. 1187 * testsuite/ext/malloc_allocator/sanity.cc: Likewise. 1188 1189 * ext/special_functions/airy_ai/check_nan.cc: Skip test for 1190 non-standard extension when a strict -std=c++NN dialect is used. 1191 * ext/special_functions/airy_ai/check_value.cc: Likewise. 1192 * ext/special_functions/airy_ai/compile.cc: Likewise. 1193 * ext/special_functions/airy_bi/check_nan.cc: Likewise. 1194 * ext/special_functions/airy_bi/check_value.cc: Likewise. 1195 * ext/special_functions/airy_bi/compile.cc: Likewise. 1196 * ext/special_functions/conf_hyperg/check_nan.cc: Likewise. 1197 * ext/special_functions/conf_hyperg/check_value.cc: Likewise. 1198 * ext/special_functions/conf_hyperg/compile.cc: Likewise. 1199 * ext/special_functions/hyperg/check_nan.cc: Likewise. 1200 * ext/special_functions/hyperg/check_value.cc: Likewise. 1201 * ext/special_functions/hyperg/compile.cc: Likewise. 1202 1203 * testsuite/23_containers/list/requirements/explicit_instantiation/ 1204 5_c++0x.cc: Remove redundant test that is functionally identical to 1205 the 5.cc test. 1206 * testsuite/23_containers/map/requirements/explicit_instantiation/ 1207 5_c++0x.cc: Likewise. 1208 * testsuite/23_containers/multimap/requirements/explicit_instantiation/ 1209 5_c++0x.cc: Likewise. 1210 * testsuite/23_containers/multiset/requirements/explicit_instantiation/ 1211 5_c++0x.cc: Likewise. 1212 * testsuite/23_containers/set/requirements/explicit_instantiation/ 1213 5_c++0x.cc: Likewise. 1214 1215 * include/bits/regex_executor.tcc (_Backref_matcher::_M_apply): Use 1216 _GLIBCXX_STD_A to refer to normal mode algorithms. 1217 * testsuite/28_regex/headers/regex/parallel_mode.cc: New test. 1218 * testsuite/28_regex/headers/regex/std_c++0x_neg.cc: Remove empty 1219 whitespace. 1220 1221 * include/debug/map.h (map::erase(iterator)): Add abi-tag so that 1222 C++11 version mangles differently from incompatible C++98 version. 1223 * include/debug/multimap.h (multimap::erase(iterator)): Likewise. 1224 * include/debug/multiset.h (multiset::erase(iterator)) 1225 (multiset::erase(const_iterator, const_iterator)): Likewise. 1226 * include/debug/set.h (set::erase(iterator)) 1227 (multiset::erase(const_iterator, const_iterator)): Likewise. 1228 12292018-10-18 Jonathan Wakely <jwakely@redhat.com> 1230 1231 * testsuite/20_util/duration/cons/2.cc: Add -ffloat-store to fix 1232 failure when compiled without optimisation. 1233 * testsuite/ext/profile/mutex_extensions_neg.cc: Prune additional 1234 errors caused by C++17 std::pmr alias templates. 1235 1236 PR libstdc++/87642 1237 * config/locale/gnu/monetary_members.cc 1238 (moneypunct<char, true>::_M_initialize_moneypunct): Use 1239 __narrow_multibyte_chars to convert multibyte thousands separators 1240 to a single char. 1241 * config/locale/gnu/numeric_members.cc 1242 (numpunct<char>::_M_initialize_numpunct): Likewise. 1243 (__narrow_multibyte_chars): New function. 1244 1245 PR libstdc++/87641 1246 * include/bits/valarray_array.h (__valarray_sum): Use first element 1247 to initialize accumulator instead of value-initializing it. 1248 (__valarray_product<_Tp>): Move to ... 1249 * src/c++98/valarray.cc (__valarray_product<_Tp>): Here. Use first 1250 element to initialize accumulator. 1251 (__valarray_product(const valarray<size_t>&)): Remove const_cast made 1252 unnecessary by LWG 389. 1253 * testsuite/26_numerics/valarray/87641.cc: New test. 1254 12552018-10-18 François Dumont <fdumont@gcc.gnu.org> 1256 1257 Partial revert. 1258 2018-10-08 François Dumont <fdumont@gcc.gnu.org> 1259 1260 * include/debug/list (list<>::cbegin()): Use C++11 direct 1261 initialization. 1262 (list<>::cend()): Likewise. 1263 (list<>::erase(const_iterator, const_iterator)): Ensure consistent 1264 iterator comparisons. 1265 (list<>::splice(const_iterator, list&&, const_iterator, 1266 const_iterator)): Likewise. 1267 1268 Partial revert. 1269 2018-10-15 François Dumont <fdumont@gcc.gnu.org> 1270 1271 * include/debug/vector (vector<>::cbegin()): Use C++11 direct 1272 initialization. 1273 (vector<>::cend()): Likewise. 1274 (vector<>::insert(const_iterator, const _Tp&)): Use consistent 1275 iterator comparison. 1276 (vector<>::erase(const_iterator)): Likewise. 1277 (vector<>::erase(const_iterator, const_iterator)): Likewise. 1278 12792018-10-17 Ville Voutilainen <ville.voutilainen@gmail.com> 1280 1281 PR libstdc++/87619 1282 * include/std/variant (__select_index): Fix an off-by-one. 1283 * testsuite/20_util/variant/87619.cc: New. 1284 12852018-10-16 Jonathan Wakely <jwakely@redhat.com> 1286 1287 * include/bits/random.h (random_device) [!_GLIBCXX_USE_DEV_RANDOM]: 1288 Fix default constructor to call correct function. 1289 1290 * testsuite/experimental/net/internet/address/v4/creation.cc: Do not 1291 declare ip in global namespace, to avoid collision with struct ip 1292 defined in <netinet/ip.h>. 1293 1294 * include/experimental/bits/net.h: Move versioned namespace macros 1295 to correct location. 1296 * include/experimental/buffer: Likewise. 1297 * include/experimental/executor: Likewise. 1298 * include/experimental/internet: Likewise. 1299 * include/experimental/io_context: Likewise. 1300 * include/experimental/netfwd: Likewise. 1301 * include/experimental/socket: Likewise. 1302 * include/experimental/timer: Likewise. 1303 1304 * config.h.in: Regenerate. 1305 * configure: Regenerate. 1306 * configure.ac: Check for headers used by Networking TS. 1307 * include/experimental/executor: Include <condition_variable> 1308 instead of <mutex>. 1309 * include/experimental/internet: Use autoconf macros for available 1310 headers. Include <sys/socket.h> for. Remove <cstring> and use 1311 __builtin_memcpy and __builtin_strchr. 1312 (resolver_errc) [!_GLIBCXX_HAVE_NETDB_H]: Do not define. 1313 (address_v4::to_string, address_v6::to_string) 1314 [!_GLIBCXX_HAVE_ARPA_INET_H]: Likewise. 1315 (basic_resolver_results) [!_GLIBCXX_HAVE_NETDB_H]: Make private 1316 constructors report errors. 1317 [!_GLIBCXX_HAVE_NETINET_TCP_H] (tcp::no_delay): Do not define. 1318 * include/experimental/io_context: Likewise. 1319 * include/experimental/socket: Likewise. 1320 [!_GLIBCXX_HAVE_SYS_SOCKET_H, !_GLIBCXX_HAVE_POLL_H] (socket_base): Do 1321 not define nested types when relevant header not available. 1322 (__socket_impl::native_non_blocking) [!_GLIBCXX_HAVE_FCNTL_H]: Report 1323 an error. 1324 (__basic_socket_impl::open, __basic_socket_impl::local_endpoint) 1325 (__basic_socket_impl::bind) [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise. 1326 (__basic_socket_impl::io_control) [!_GLIBCXX_HAVE_SYS_IOCTL_H]: 1327 Likewise. 1328 (basic_socket::at_mark, basic_socket::shutdown) 1329 (basic_socket::remote_endpoint, basic_socket::connect) 1330 (basic_socket::async_connect) [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise. 1331 (basic_socket::available) [_GLIBCXX_HAVE_SYS_IOCTL_H]: Check macro 1332 for <sys/ioctl.h> availability. 1333 (basic_socket::wait) [!_GLIBCXX_HAVE_POLL_H]: Likewise. 1334 (basic_datagram_socket::receive, basic_datagram_socket::async_receive) 1335 (basic_datagram_socket::receive_from) 1336 (basic_datagram_socket::async_receive_from) 1337 (basic_datagram_socket::send, basic_datagram_socket::async_send) 1338 (basic_datagram_socket::send_to, basic_datagram_socket::async_send_to) 1339 [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise. 1340 (basic_stream_socket::receive, basic_stream_socket::async_receive) 1341 (basic_stream_socket::send, basic_stream_socket::async_send) 1342 [!_GLIBCXX_HAVE_SYS_SOCKET_H]: Likewise. 1343 (basic_socket_acceptor::listen, basic_socket_acceptor::accept) 1344 (basic_socket_acceptor::async_accept) [!_GLIBCXX_HAVE_SYS_SOCKET_H]: 1345 Likewise. 1346 (basic_socket_acceptor::wait) [!_GLIBCXX_HAVE_POLL_H]: Likewise. 1347 1348 * testsuite/experimental/net/headers.cc: Remove dg-options. 1349 * testsuite/experimental/net/buffer/arithmetic.cc: Replace dg-options 1350 with dg-do using effective target. 1351 * testsuite/experimental/net/buffer/const.cc: Likewise. 1352 * testsuite/experimental/net/buffer/creation.cc: Likewise. 1353 * testsuite/experimental/net/buffer/mutable.cc: Likewise. 1354 * testsuite/experimental/net/buffer/size.cc: Likewise. 1355 * testsuite/experimental/net/buffer/traits.cc: Likewise. 1356 * testsuite/experimental/net/execution_context/use_service.cc: 1357 Likewise. 1358 * testsuite/experimental/net/internet/address/v4/comparisons.cc: 1359 Likewise. 1360 * testsuite/experimental/net/internet/address/v4/cons.cc: Likewise. 1361 * testsuite/experimental/net/internet/address/v4/creation.cc: 1362 Likewise. 1363 * testsuite/experimental/net/internet/address/v4/members.cc: Likewise. 1364 * testsuite/experimental/net/internet/resolver/base.cc: Likewise. 1365 * testsuite/experimental/net/internet/resolver/ops/lookup.cc: 1366 Likewise. 1367 * testsuite/experimental/net/internet/resolver/ops/reverse.cc: 1368 Likewise. 1369 * testsuite/experimental/net/timer/waitable/cons.cc: Likewise. 1370 * testsuite/experimental/net/timer/waitable/dest.cc: Likewise. 1371 * testsuite/experimental/net/timer/waitable/ops.cc: Likewise. 1372 1373 * include/experimental/socket (basic_socket::at_mark): Add missing 1374 return. 1375 1376 * acinclude.m4 (GLIBCXX_CHECK_RANDOM_TR1): Replace with ... 1377 (GLIBCXX_CHECK_DEV_RANDOM): New macro with more descriptive name. 1378 Define _GLIBCXX_USE_DEV_RANDOM as well as _GLIBCXX_USE_RANDOM_TR1. 1379 * config.h.in: Regenerate. 1380 * configure: Regenerate. 1381 * configure.ac: Use GLIBCXX_CHECK_DEV_RANDOM instead of 1382 GLIBCXX_CHECK_RANDOM_TR1. 1383 crossconfig.m4: Likewise. 1384 * include/bits/random.h (random_device): Use _GLIBCXX_USE_DEV_RANDOM 1385 instead of _GLIBCXX_USE_RANDOM_TR1. 1386 * testsuite/26_numerics/random/random_device/cons/token.cc: Likewise. 1387 13882018-10-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1389 1390 * testsuite/lib/dg-options.exp (add_options_for_net_ts): New proc. 1391 * testsuite/experimental/net/internet/address/v4/comparisons.cc: 1392 Add dg-add-options net_ts. 1393 * testsuite/experimental/net/internet/address/v4/cons.cc: Likewise. 1394 * testsuite/experimental/net/internet/address/v4/creation.cc: Likewise. 1395 * testsuite/experimental/net/internet/address/v4/members.cc: Likewise. 1396 * testsuite/experimental/net/internet/resolver/base.cc: Likewise. 1397 * testsuite/experimental/net/internet/resolver/ops/lookup.cc: Likewise. 1398 * testsuite/experimental/net/internet/resolver/ops/reverse.cc: Likewise. 1399 14002018-10-16 Jonathan Wakely <jwakely@redhat.com> 1401 1402 * testsuite/20_util/duration/literals/range_neg.cc: Adjust pruned 1403 diagnostic to account for quotes around 'constexpr'. 1404 * testsuite/23_containers/deque/capacity/max_size.cc: Define static 1405 variable. 1406 * testsuite/23_containers/vector/capacity/max_size.cc: Likewise. 1407 1408 PR libstdc++/87618 1409 * config/abi/pre/gnu.ver: Fix typos in patterns for basic_stringbuf. 1410 * testsuite/27_io/basic_stringbuf/cons/char/default.cc: Disable 1411 optimisation to check constructor definition can be linked to. 1412 * testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: Likewise. 1413 14142018-10-15 Jonathan Wakely <jwakely@redhat.com> 1415 1416 * testsuite/22_locale/numpunct/members/char/3.cc: Adjust test to 1417 account for change to glibc it_IT localedata (glibc bz#10797). 1418 1419 PR libstdc++/87587 1420 * src/c++11/cxx11-shim_facets.cc: Suppress -Wabi warnings. 1421 14222018-10-15 François Dumont <fdumont@gcc.gnu.org> 1423 1424 * include/debug/vector (vector<>::cbegin()): Use C++11 direct 1425 initialization. 1426 (vector<>::cend()): Likewise. 1427 (vector<>::emplace(const_iterator, _Args&&...)): Likewise and use 1428 consistent iterator comparison. 1429 (vector<>::insert(const_iterator, size_type, const _Tp&)): Likewise. 1430 (vector<>::insert(const_iterator, _InputIterator, _InputIterator)): 1431 Likewise. 1432 (vector<>::erase(const_iterator)): Likewise. 1433 (vector<>::erase(const_iterator, const_iterator)): Likewise. 1434 14352018-10-12 Jonathan Wakely <jwakely@redhat.com> 1436 1437 Initial commit of Networking TS implementation. 1438 * include/Makefile.am: Add new headers. 1439 * include/Makefile.in: Regenerate. 1440 * include/experimental/bits/net.h: New header for common 1441 implementation details of Networking TS. 1442 * include/experimental/buffer: New header. 1443 * include/experimental/executor: New header. 1444 * include/experimental/internet: New header. 1445 * include/experimental/io_context: New header. 1446 * include/experimental/net: New header. 1447 * include/experimental/netfwd: New header. 1448 * include/experimental/socket: New header. 1449 * include/experimental/timer: New header. 1450 * testsuite/experimental/net/buffer/arithmetic.cc: New test. 1451 * testsuite/experimental/net/buffer/const.cc: New test. 1452 * testsuite/experimental/net/buffer/creation.cc: New test. 1453 * testsuite/experimental/net/buffer/mutable.cc: New test. 1454 * testsuite/experimental/net/buffer/size.cc: New test. 1455 * testsuite/experimental/net/buffer/traits.cc: New test. 1456 * testsuite/experimental/net/execution_context/use_service.cc: New 1457 test. 1458 * testsuite/experimental/net/headers.cc: New test. 1459 * testsuite/experimental/net/internet/address/v4/comparisons.cc: New 1460 test. 1461 * testsuite/experimental/net/internet/address/v4/cons.cc: New test. 1462 * testsuite/experimental/net/internet/address/v4/creation.cc: New 1463 test. 1464 * testsuite/experimental/net/internet/address/v4/members.cc: New 1465 test. 1466 * testsuite/experimental/net/internet/resolver/base.cc: New test. 1467 * testsuite/experimental/net/internet/resolver/ops/lookup.cc: New 1468 test. 1469 * testsuite/experimental/net/internet/resolver/ops/reverse.cc: New 1470 test. 1471 * testsuite/experimental/net/timer/waitable/cons.cc: New test. 1472 * testsuite/experimental/net/timer/waitable/dest.cc: New test. 1473 * testsuite/experimental/net/timer/waitable/ops.cc: New test. 1474 1475 PR libstdc++/77691 1476 * include/experimental/memory_resource (__resource_adaptor_imp): Do 1477 not allocate sizes smaller than alignment when relying on guaranteed 1478 alignment. 1479 * testsuite/experimental/memory_resource/new_delete_resource.cc: 1480 Adjust expected number of bytes allocated for alignof(max_align_t). 1481 14822018-10-11 François Dumont <fdumont@gcc.gnu.org> 1483 1484 * include/debug/forward_list 1485 (forward_list<>::before_begin()): Use C++11 direct initialization. 1486 (forward_list<>::begin()): Likewise. 1487 (forward_list<>::end()): Likewise. 1488 (forward_list<>::cbefore_begin()): Likewise. 1489 (forward_list<>::cbegin()): Likewise. 1490 (forward_list<>::cend()): Likewise. 1491 (forward_list<>::emplace_after<>(const_iterator, _Args&&...)): Likewise. 1492 (forward_list<>::insert_after(const_iterator, const _Tp&)): Likewise. 1493 (forward_list<>::insert_after(const_iterator, _Tp&&)): Likewise. 1494 (forward_list<>::insert_after(const_iterator, size_type, const _Tp&)): 1495 Likewise. 1496 (forward_list<>::insert_after(const_iterator, initializer_list<>)): 1497 Likewise. 1498 (forward_list<>::erase_after(const_iterator)): Likewise. 1499 (forward_list<>::erase_after(const_iterator, const_iterator)): Likewise 1500 and ensure consistent iterator comparison. 1501 1502 * include/bits/forward_list.h 1503 (_Fwd_list_iterator<>::operator==): Replace member function with inline 1504 friend. 1505 (_Fwd_list_iterator<>::operator!=): Likewise. 1506 (_Fwd_list_const_iterator<>::operator==): Likewise. 1507 (_Fwd_list_const_iterator<>::operator!=): Likewise. 1508 (operator==(const _Fwd_list_iterator<>&, 1509 const _Fwd_list_const_iterator<>&)): Remove. 1510 (operator!=(const _Fwd_list_iterator<>&, 1511 const _Fwd_list_const_iterator<>&)): Remove. 1512 (forward_list<>::_Node): Take typedef from base type. 1513 (forward_list<>::iterator): Likewise. 1514 (forward_list<>::const_iterator): Likewise. 1515 15162018-10-11 Jonathan Wakely <jwakely@redhat.com> 1517 1518 PR libstdc++/80538 1519 * src/c++11/thread.cc (this_thread::__sleep_for) 1520 [_GLIBCXX_HAVE_SLEEP]: Only call sleep for non-zero values. 1521 Loop while sleep call is interrupted and until steady_clock 1522 shows requested duration has elapsed. 1523 (!_GLIBCXX_HAVE_USLEEP]: Use the _GLIBCXX_HAVE_SLEEP code path, but 1524 avoiding the usleep call. 1525 * testsuite/30_threads/this_thread/60421.cc: Test repeated 1526 signal interruptions. 1527 1528 * include/bits/allocator.h 1529 (operator==(const allocator<_Tp>&, const allocator<_Tp>)) 1530 (operator!=(const allocator<_Tp>&, const allocator<_Tp>)): Replace 1531 with inline friends. 1532 * include/ext/debug_allocator.h (operator==, operator!=): Replace 1533 with inline friend functions that compare to rebound allocators. 1534 * include/ext/malloc_allocator.h (operator==, operator!=): Likewise. 1535 * include/ext/new_allocator.h (operator==, operator!=): Likewise. 1536 * testsuite/ext/debug_allocator/eq.cc: New test. 1537 * testsuite/ext/ext_pointer/alloc_eq.cc: New test. 1538 * testsuite/ext/malloc_allocator/eq.cc: New test. 1539 * testsuite/ext/new_allocator/eq.cc: New test. 1540 15412018-10-10 Jonathan Wakely <jwakely@redhat.com> 1542 1543 PR libstdc++/87544 1544 * include/bits/stl_vector.h (vector::_S_max_size): Limit size to 1545 PTRDIFF_MAX / sizeof(value_type). 1546 * include/ext/malloc_allocator.h (malloc_allocator::max_size): 1547 Likewise. 1548 * include/ext/new_allocator.h (new_allocator::max_size): Likewise. 1549 * testsuite/23_containers/vector/allocator/minimal.cc: Adjust 1550 expected value for max_size(). 1551 * testsuite/23_containers/vector/capacity/87544.cc: New test. 1552 15532018-10-09 François Dumont <fdumont@gcc.gnu.org> 1554 1555 * include/bits/stl_list.h 1556 (_List_operator<>::operator==): Replace member function with inline 1557 friend. 1558 (_List_operator<>::operator!=): Likewise. 1559 (_List_const_operator<>::operator==): Likewise. 1560 (_List_const_operator<>::operator!=): Likewise. 1561 (operator==(const _List_iterator<>&, const _List_const_iterator<>&)): 1562 Remove. 1563 (operator!=(const _List_iterator<>&, const _List_const_iterator<>&)): 1564 Remove. 1565 15662018-10-09 Jonathan Wakely <jwakely@redhat.com> 1567 1568 * include/bits/stringfwd.h (string, wstring, u16string, u32string): 1569 Define typedefs outside of __cxx11 inline namespace. 1570 * python/libstdcxx/v6/printers.py (register_type_printers): Also 1571 register printers for typedefs in new location. 1572 15732018-10-08 Jonathan Wakely <jwakely@redhat.com> 1574 1575 PR libstdc++/87538 1576 * testsuite/experimental/functional/87538.cc: New test. 1577 1578 PR libstdc++/87538 1579 * include/std/functional (_Not_fn::operator()): Check value of 1580 __is_nothrow_invocable as well. 1581 * testsuite/20_util/function_objects/not_fn/87538.cc: New test. 1582 15832018-10-08 François Dumont <fdumont@gcc.gnu.org> 1584 1585 * include/debug/list (list<>::cbegin()): Use C++11 direct 1586 initialization. 1587 (list<>::cend()): Likewise. 1588 (list<>::emplace<>(const_iterator, _Args&&...)): Likewise. 1589 (list<>::insert(const_iterator, initializer_list<>)): Likewise. 1590 (list<>::insert(const_iterator, size_type, const _Tp&)): Likewise. 1591 (list<>::erase(const_iterator, const_iterator)): Ensure consistent 1592 iterator comparisons. 1593 (list<>::splice(const_iterator, list&&, const_iterator, 1594 const_iterator)): Likewise. 1595 15962018-10-05 François Dumont <fdumont@gcc.gnu.org> 1597 1598 * include/bits/stl_tree.h 1599 (_Rb_tree_iterator<>::operator==): Make inline friend. 1600 (_Rb_tree_iterator<>::operator!=): Likewise. 1601 (_Rb_tree_const_iterator<>::operator==): Likewise. 1602 (_Rb_tree_const_iterator<>::operator!=): Likewise. 1603 (operator==(const _Rb_tree_iterator<>&, 1604 const _Rb_tree_const_iterator&)): Remove. 1605 (operator!=(const _Rb_tree_iterator<>&, 1606 const _Rb_tree_const_iterator&)): Remove. 1607 (operator==(const _Rb_tree<>&, const _Rb_tree<>&)): Make inline friend. 1608 (operator<(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise. 1609 (operator!=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise and 1610 deprecate. 1611 (operator>(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise. 1612 (operator<=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise. 1613 (operator>=(const _Rb_tree<>&, const _Rb_tree<>&)): Likewise. 1614 * include/debug/map.h (map<>::erase(const_iterator, const_iterator)): 1615 Compare __victim with _Base::cend(). 1616 * include/debug/multimap.h 1617 (multimap<>::erase(const_iterator, const_iterator)): Likewise. 1618 * include/debug/set.h (set<>::erase(const_iterator, const_iterator)): 1619 Compare __victim with _Base::cend(). 1620 * include/debug/multiset.h 1621 (multiset<>::erase(const_iterator, const_iterator)): Likewise. 1622 16232018-10-03 Jonathan Wakely <jwakely@redhat.com> 1624 1625 PR libstdc++/59439 1626 * src/c++98/locale.cc (locale::locale(const locale&)): Bypass 1627 reference count updates for the classic locale. 1628 (locale::~locale()): Likewise. 1629 (locale::operator=(const locale&)): Likewise. 1630 * src/c++98/locale_init.cc (locale::locale()): Likewise. 1631 (locale::global(const locale&)): Likewise. 1632 16332018-10-03 François Dumont <fdumont@gcc.gnu.org> 1634 1635 * include/debug/map.h 1636 (map<>::emplace<>(_Args&&...)): Use C++11 direct initialization. 1637 (map<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise. 1638 (map<>::insert(value_type&&)): Likewise. 1639 (map<>::insert<>(_Pair&&)): Likewise. 1640 (map<>::insert<>(const_iterator, _Pair&&)): Likewise. 1641 (map<>::try_emplace): Likewise. 1642 (map<>::insert_or_assign): Likewise. 1643 (map<>::insert(node_type&&)): Likewise. 1644 (map<>::insert(const_iterator, node_type&&)): Likewise. 1645 (map<>::erase(const_iterator)): Likewise. 1646 (map<>::erase(const_iterator, const_iterator)): Likewise. 1647 * include/debug/multimap.h 1648 (multimap<>::emplace<>(_Args&&...)): Use C++11 direct initialization. 1649 (multimap<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise. 1650 (multimap<>::insert<>(_Pair&&)): Likewise. 1651 (multimap<>::insert<>(const_iterator, _Pair&&)): Likewise. 1652 (multimap<>::insert(node_type&&)): Likewise. 1653 (multimap<>::insert(const_iterator, node_type&&)): Likewise. 1654 (multimap<>::erase(const_iterator)): Likewise. 1655 (multimap<>::erase(const_iterator, const_iterator)): Likewise. 1656 * include/debug/set.h 1657 (set<>::emplace<>(_Args&&...)): Use C++11 direct initialization. 1658 (set<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise. 1659 (set<>::insert(value_type&&)): Likewise. 1660 (set<>::insert<>(const_iterator, value_type&&)): Likewise. 1661 (set<>::insert(const_iterator, node_type&&)): Likewise. 1662 (set<>::erase(const_iterator)): Likewise. 1663 (set<>::erase(const_iterator, const_iterator)): Likewise. 1664 * include/debug/multiset.h 1665 (multiset<>::emplace<>(_Args&&...)): Use C++11 direct initialization. 1666 (multiset<>::emplace_hint<>(const_iterator, _Args&&...)): Likewise. 1667 (multiset<>::insert<>(value_type&&)): Likewise. 1668 (multiset<>::insert<>(const_iterator, value_type&&)): Likewise. 1669 (multiset<>::insert(node_type&&)): Likewise. 1670 (multiset<>::insert(const_iterator, node_type&&)): Likewise. 1671 (multiset<>::erase(const_iterator)): Likewise. 1672 (multiset<>::erase(const_iterator, const_iterator)): Likewise. 1673 16742018-10-02 Marc Glisse <marc.glisse@inria.fr> 1675 1676 PR libstdc++/87258 1677 * include/bits/stl_bvector.h (vector::begin(), vector::cbegin()): 1678 Rebuild _M_start with an explicit 0 offset. 1679 16802018-10-02 Jonathan Wakely <jwakely@redhat.com> 1681 1682 * include/std/variant (__gen_vtable_impl::__visit_invoke): Call __get 1683 directly instead of get, as caller ensures correct index is used. 1684 (holds_alternative, get, get_if): Remove redundant inline specifiers. 1685 (_VARIANT_RELATION_FUNCTION_TEMPLATE): Likewise. 1686 16872018-10-02 Joseph Myers <joseph@codesourcery.com> 1688 1689 * testsuite/lib/libstdc++.exp (libstdc++_init): Use 1690 -fno-show-column in default cxxflags. 1691 16922018-10-01 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 1693 1694 * config/os/uclibc/os_defines.h (__NO_STRING_INLINES): Delete. 1695 16962018-10-01 Gerald Pfeifer <gerald@pfeifer.com> 1697 1698 * doc/xml/manual/allocator.xml: Adjust link to "Reconsidering 1699 Custom Memory Allocation". 1700 17012018-10-01 Jonathan Wakely <jwakely@redhat.com> 1702 1703 * doc/html/*: Regenerate. 1704 17052018-09-30 Gerald Pfeifer <gerald@pfeifer.com> 1706 1707 * doc/xml/manual/messages.xml: Switch link to www.oracle.com 1708 to https. 1709 17102018-09-30 Gerald Pfeifer <gerald@pfeifer.com> 1711 1712 * doc/xml/manual/policy_data_structures_biblio.xml: Update 1713 link to Microsoft Component Model Object Technologies. 1714 17152018-09-29 Gerald Pfeifer <gerald@pfeifer.com> 1716 1717 * doc/xml/gnu/fdl-1.3.xml: The Free Software Foundation web 1718 site now uses https. Also omit the unnecessary trailing slash. 1719 * doc/xml/gnu/gpl-3.0.xml: Ditto. 1720 17212018-09-28 François Dumont <fdumont@gcc.gnu.org> 1722 1723 * include/debug/functions.h 1724 (__foreign_iterator_aux3(const _Safe_iterator<>&, const _InputeIter&, 1725 const _InputIter&, __true_type)): Use empty() rather than begin() == 1726 end(). 1727 17282018-09-25 Mike Crowe <mac@mcrowe.com> 1729 1730 * include/std/condition_variable (condition_variable::wait_for): Use 1731 steady clock in overload that uses a predicate. 1732 17332018-09-25 Jonathan Wakely <jwakely@redhat.com> 1734 1735 PR libstdc++/87431 1736 * include/std/variant (_Variant_storage<true, _Types...>::_M_valid): 1737 Avoid runtime test when all alternatives are scalars and so cannot 1738 throw during initialization. 1739 17402018-09-25 Gerald Pfeifer <gerald@pfeifer.com> 1741 1742 * doc/xml/manual/codecvt.xml: Move link to "UTF-8 and Unicode FAQ" 1743 to https. 1744 17452018-09-24 Gerald Pfeifer <gerald@pfeifer.com> 1746 1747 * doc/xml/manual/policy_data_structures_biblio.xml: Update link 1748 to "Priority Queues and the STL". 1749 17502018-09-23 Gerald Pfeifer <gerald@pfeifer.com> 1751 1752 * doc/xml/manual/using_exceptions.xml: Move boost.orgs link to 1753 https. 1754 17552018-09-21 François Dumont <fdumont@gcc.gnu.org> 1756 1757 PR libstdc++/87135 1758 * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt): 1759 Use __builtin_floor to compute _M_next_resize. 1760 * testsuite/23_containers/unordered_set/hash_policy/71181.cc: Adapt. 1761 * testsuite/23_containers/unordered_set/hash_policy/prime_rehash.cc: 1762 Adapt. 1763 17642018-09-21 Jonathan Wakely <jwakely@redhat.com> 1765 1766 * testsuite/26_numerics/headers/cmath/hypot-long-double.cc: Remove. 1767 * testsuite/26_numerics/headers/cmath/hypot.cc: Restore test for 1768 long double unconditionally, but use lower tolerance when 1769 sizeof(long double) == sizeof(double). 1770 17712018-09-20 Christophe Lyon <christophe.lyon@linaro.org> 1772 1773 * testsuite/26_numerics/headers/cmath/hypot-long-double.cc: Skip 1774 on arm*. 1775 17762018-09-19 Jonathan Wakely <jwakely@redhat.com> 1777 1778 * include/bits/regex_automaton.tcc (_StateSeq<_TraitsT>::_M_clone()): 1779 Remove __glibcxx_assert statements and use map::find instead of 1780 map::operator[]. 1781 17822018-09-18 François Dumont <fdumont@gcc.gnu.org> 1783 1784 PR libstdc++/87135 1785 * src/c++11/hashtable_c++0x.cc: 1786 (_Prime_rehash_policy::_M_next_bkt): Return a prime no smaller than 1787 requested size, but not necessarily greater. 1788 (_Prime_rehash_policy::_M_need_rehash): Rehash only if target size is 1789 strictly greater than next resize threshold. 1790 * testsuite/23_containers/unordered_map/modifiers/reserve.cc: Adapt test 1791 to validate that there is no rehash as long as number of insertion is 1792 lower or equal to the reserved number of elements. 1793 17942018-09-18 Jonathan Wakely <jwakely@redhat.com> 1795 1796 * include/bits/unique_ptr.h (__uniq_ptr_impl): Remove static assertion 1797 checking invocable condition. 1798 (unique_ptr::~unique_ptr, unique_ptr::reset): Restore static assertion 1799 here, where types must be complete. Pass pointer to deleter as an 1800 rvalue. 1801 * testsuite/20_util/unique_ptr/requirements/incomplete.cc: New test. 1802 18032018-09-13 Jonathan Wakely <jwakely@redhat.com> 1804 1805 * include/std/variant (variant) [__clang__]: Limit workaround to 1806 Clang 7 and older. 1807 18082018-09-11 Jonathan Wakely <jwakely@redhat.com> 1809 1810 PR libstdc++/87278 1811 * include/bits/shared_ptr.h (make_shared): Use remove_cv instead of 1812 remove_const. 1813 * testsuite/20_util/shared_ptr/creation/87278.cc: New test. 1814 1815 Implement LWG 2905 changes to constrain unique_ptr constructors 1816 * include/bits/unique_ptr.h (__uniq_ptr_impl): Add assertions to 1817 check deleter type. 1818 (unique_ptr::unique_ptr(pointer, const deleter_type&)): Add copy 1819 constructible constraint. 1820 (unique_ptr::unique_ptr(pointer, deleter_type&&)): Disable for 1821 deleters of reference type and add move constructible constraint. 1822 (unique_ptr::unique_ptr(pointer, remove_reference_t<deleter_type>&&)): 1823 Disable for deleters of non-reference type. Define as deleted. 1824 (unique_ptr<T[], D>): Likewise. 1825 * testsuite/20_util/unique_ptr/assign/48635_neg.cc: Replace dg-error 1826 directives with unstable line numbers with dg-prune-output. 1827 * testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Likewise. 1828 * testsuite/20_util/unique_ptr/cons/lwg2905.cc: New test. 1829 * testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc: 1830 Make deleter types invocable. 1831 18322018-09-05 Jonathan Wakely <jwakely@redhat.com> 1833 1834 * libsupc++/cxxabi.h (__cxa_demangle): Clarify doxygen comment. 1835 18362018-09-03 Jonathan Wakely <jwakely@redhat.com> 1837 1838 PR libstdc++/78179 1839 * testsuite/26_numerics/headers/cmath/hypot-long-double.cc: New test 1840 that runs the long double part of hypot.cc. 1841 * testsuite/26_numerics/headers/cmath/hypot.cc: Disable long double 1842 tests unless TEST_HYPOT_LONG_DOUBLE is defined. 1843 1844 * include/bits/stl_vector.h (vector::_Temporary_value::_M_ptr): 1845 Return raw pointer not allocator's pointer type. 1846 (vector::_Temporary_value::_M_val): Use _M_ptr. 1847 1848 PR libstdc++/87194 1849 * include/bits/stl_map.h 1850 (map::map(initializer_list<value_type>, const Compare&, const Alloc&)) 1851 (map::map(initializer_list<value_type>, const Alloc&)) 1852 (map::map(InputIterator, InputIterator, const Alloc&)) 1853 (map::map(InputIterator, InputIterator)) 1854 (map::map(InputIterator, InputIterator, const Compare&, const Alloc&)) 1855 (map::insert(InputIterator, InputIterator)): 1856 Call _M_insert_range_unique instead of _M_insert_unique. 1857 * include/bits/stl_multimap.h 1858 (multimap::multimap(initializer_list<value_type>, const C&, const A&)) 1859 (multimap::multimap(initializer_list<value_type>, const A&)) 1860 (multimap::multimap(InputIterator, InputIterator, const A&)) 1861 (multimap::multimap(InputIterator, InputIterator)) 1862 (multimap::multimap(InputIterator, InputIterator, const C&, const A&)) 1863 (multimap::insert(InputIterator, InputIterator)): Call 1864 _M_insert_range_equal instead of _M_insert_equal. 1865 * include/bits/stl_multiset.h 1866 (multiset::multiset(InputIterator, InputIterator)) 1867 (multiset::multiset(InputIterator, InputIterator, const C&, const A&)) 1868 (multiset::multiset(initializer_list<value_type>, const C&, const A&)) 1869 (multiset::multiset(initializer_list<value_type>, const A&)) 1870 (multiset::multiset(InputIterator, InputIterator, const A&)) 1871 (multiset::insert(InputIterator, InputIterator)): Call 1872 _M_insert_range_equal instead of _M_insert_equal. 1873 * include/bits/stl_set.h 1874 (set::set(InputIterator, InputIterator)) 1875 (set::set(InputIterator, InputIterator, const Compare&, const Alloc&)) 1876 (set::set(initializer_list<value_type>, const Compare&, const Alloc&)) 1877 (set::set(initializer_list<value_type>, const Alloc&)) 1878 (set::set(InputIterator, InputIterator, const Alloc&)) 1879 (set::insert(InputIterator, InputIterator)): 1880 Call _M_insert_range_unique instead of _M_insert_unique. 1881 * include/bits/stl_tree.h 1882 [__cplusplus >= 201103L] (_Rb_tree::__same_value_type): New alias 1883 template for SFINAE constraints. 1884 [__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_unique): Pair of 1885 constrained overloads that either insert or emplace, depending on 1886 iterator's value_type. 1887 [__cplusplus >= 201103L] (_Rb_tree::_M_insert_range_equal): Likewise. 1888 [__cplusplus < 201103L] (_Rb_tree::_M_insert_range_unique) 1889 (_Rb_tree::_M_insert_range_equal): New functions replacing range 1890 versions of _M_insert_unique and _M_insert_equal. 1891 (_Rb_tree::_M_insert_unique(_InputIterator, _InputIterator)) 1892 (_Rb_tree::_M_insert_equal(_InputIterator, _InputIterator)): Remove. 1893 * testsuite/23_containers/map/modifiers/insert/87194.cc: New test. 1894 * testsuite/23_containers/multimap/modifiers/insert/87194.cc: New test. 1895 * testsuite/23_containers/multiset/modifiers/insert/87194.cc: New test. 1896 * testsuite/23_containers/set/modifiers/insert/87194.cc: New test. 1897 1898 PR libstdc++/78595 1899 * include/bits/stl_map.h (map::insert(_Pair&&)) 1900 (map::insert(const_iterator, _Pair&&)): Do emplace instead of insert. 1901 * include/bits/stl_multimap.h (multimap::insert(_Pair&&)) 1902 (multimap::insert(const_iterator, _Pair&&)): Likewise. 1903 * include/bits/unordered_map.h (unordered_map::insert(_Pair&&)) 1904 (unordered_map::insert(const_iterator, _Pair&&)) 1905 (unordered_multimap::insert(_Pair&&)) 1906 (unordered_multimap::insert(const_iterator, _Pair&&)): Likewise. 1907 * testsuite/23_containers/map/modifiers/insert/78595.cc: New test. 1908 * testsuite/23_containers/multimap/modifiers/insert/78595.cc: New test. 1909 * testsuite/23_containers/unordered_map/modifiers/78595.cc: New test. 1910 * testsuite/23_containers/unordered_multimap/modifiers/78595.cc: New 1911 test. 1912 19132018-09-02 François Dumont <fdumont@gcc.gnu.org> 1914 1915 * include/debug/safe_iterator.h 1916 (_Safe_iterator<_It, _Seq, _Cat>::_Self): New. 1917 (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag>::_Self): 1918 New. 1919 (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag> 1920 ::_OtherSelf): New. 1921 (_GLIBCXX_DEBUG_VERIFY_OPERANDS, _GLIBCXX_DEBUG_VERIFY_EQ_OPERANDS) 1922 (_GLIBCXX_DEBUG_VERIFY_REL_OPERANDS) 1923 (_GLIBCXX_DEBUG_VERIFY_DIST_OPERANDS): Define macros. 1924 (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag> 1925 ::operator+(difference_type)): Use latters, inline as friend. 1926 (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag> 1927 ::operator-(difference_type)): Likewise. 1928 (operator==(const _Safe_iterator<>&, const _Safe_iterator<>&)): 1929 Likewise. 1930 (operator!=(const _Safe_iterator<>&, const _Safe_iterator<>&)): 1931 Likewise. 1932 (operator<(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise. 1933 (operator<=(const _Safe_iterator<>&, const _Safe_iterator<>&)): 1934 Likewise. 1935 (operator>(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise. 1936 (operator>=(const _Safe_iterator<>&, const _Safe_iterator<>&)): 1937 Likewise. 1938 (operator-(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise. 1939 (operator+(difference_type, const _Safe_iterator<>&)): Likewise. 1940 (operator-(const _Safe_iterator<>&, difference_type)): Likewise. 1941 * include/debug/safe_iterator.tcc 1942 (_Safe_iterator<>::_M_can_advance(difference_type)): Take parameter by 1943 copy. 1944 * include/debug/safe_local_iterator.h 1945 (_Safe_local_iterator<_It, _Seq>::_Self): New. 1946 (_Safe_local_iterator<_It, _Seq>::_OtherSelf): New. 1947 (_GLIBCXX_DEBUG_VERIFY_OPERANDS): Define macro. 1948 (operator==(const _Safe_local_iterator<>&, 1949 const _Safe_local_iterator<>&)): Use latter, inline as friend. 1950 (operator!=(const _Safe_local_iterator<>&, 1951 const _Safe_local_iterator<>&)): Likewise. 1952 * testsuite/util/testsuite_containers.h: Include utility. 1953 (struct forward_members_unordered<_Tp, bool>): Remove 2nd template 1954 parameter. 1955 (forward_members_unordered<>::forward_members_unordered(value_type&)): 1956 Add using namespace std::rel_ops. 1957 Add iterator_concept_checks on local_iterator and const_local_iterator. 1958 Add asserts on comparison between const_local_iterator and 1959 local_iterator. 1960 (struct forward_members_unordered<_Tp, false>): Remove partial 1961 specialization. 1962 * testsuite/23_containers/forward_list/types/1.cc: New. 1963 * testsuite/23_containers/list/types/1.cc: New. 1964 19652018-09-01 Gerald Pfeifer <gerald@pfeifer.com> 1966 1967 * doc/xml/manual/profile_mode.xml: Update three ieeexplore.ieee.org 1968 references. 1969 19702018-08-31 Sandra Loosemore <sandra@codesourcery.com> 1971 1972 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/10.cc: 1973 Add dg-require-fileio. 1974 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/11.cc: 1975 Likewise. 1976 * testsuite/21_strings/basic_string/inserters_extractors/wchar_t/5.cc: 1977 Likewise. 1978 * testsuite/21_strings/basic_string_view/inserters/wchar_t/2.cc: 1979 Likewise. 1980 * testsuite/25_algorithms/copy/streambuf_iterators/wchar_t/4.cc: 1981 Likewise. 1982 * testsuite/25_algorithms/find/istreambuf_iterators/wchar_t/2.cc: 1983 Likewise. 1984 * testsuite/27_io/basic_filebuf/close/wchar_t/12790-1.cc: Likewise. 1985 * testsuite/27_io/basic_filebuf/close/wchar_t/12790-2.cc: Likewise. 1986 * testsuite/27_io/basic_filebuf/close/wchar_t/12790-3.cc: Likewise. 1987 * testsuite/27_io/basic_filebuf/close/wchar_t/12790-4.cc: Likewise. 1988 * testsuite/27_io/basic_filebuf/seekoff/wchar_t/11543.cc: Likewise. 1989 * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-1.cc: 1990 Likewise. 1991 * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-2.cc: 1992 Likewise. 1993 * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-3.cc: 1994 Likewise. 1995 * testsuite/27_io/basic_filebuf/seekoff/wchar_t/12790-4.cc: 1996 Likewise. 1997 * testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-1.cc: 1998 Likewise. 1999 * testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-2.cc: 2000 Likewise. 2001 * testsuite/27_io/basic_filebuf/seekpos/wchar_t/12790-4.cc: 2002 Likewise. 2003 * testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc: Likewise. 2004 * testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc: Likewise. 2005 * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: Likewise. 2006 * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: Likewise. 2007 * testsuite/27_io/basic_istream/extractors_character/wchar_t/4.cc: 2008 Likewise. 2009 * testsuite/27_io/basic_istream/extractors_other/wchar_t/2.cc: 2010 Likewise. 2011 * testsuite/27_io/basic_istream/get/wchar_t/2.cc: Likewise. 2012 * testsuite/27_io/basic_istream/getline/wchar_t/5.cc: Likewise. 2013 * testsuite/27_io/basic_istream/ignore/wchar_t/2.cc: Likewise. 2014 * testsuite/27_io/basic_istream/ignore/wchar_t/3.cc: Likewise. 2015 * testsuite/27_io/basic_istream/seekg/wchar_t/sstream.cc: Likewise. 2016 * testsuite/27_io/basic_istream/tellg/wchar_t/sstream.cc: Likewise. 2017 * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: Likewise. 2018 * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: Likewise. 2019 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/1.cc: 2020 Likewise. 2021 * testsuite/27_io/objects/wchar_t/10.cc: Likewise. 2022 * testsuite/27_io/objects/wchar_t/12048-1.cc: Likewise. 2023 * testsuite/27_io/objects/wchar_t/12048-2.cc: Likewise. 2024 * testsuite/27_io/objects/wchar_t/12048-3.cc: Likewise. 2025 * testsuite/27_io/objects/wchar_t/12048-4.cc: Likewise. 2026 * testsuite/27_io/objects/wchar_t/12048-5.cc: Likewise. 2027 * testsuite/experimental/string_view/inserters/wchar_t/2.cc: 2028 Likewise. 2029 * testsuite/ext/stdio_sync_filebuf/wchar_t/1.cc: Likewise. 2030 20312018-08-30 Sandra Loosemore <sandra@codesourcery.com> 2032 2033 * testsuite/experimental/propagate_const/observers/1.cc: Make 2034 dependence on -fdelete-null-pointer-checks explicit. 2035 20362018-08-30 Jonathan Wakely <jwakely@redhat.com> 2037 2038 * include/bits/hashtable_policy.h (__clp2): Fix calculation for LLP64 2039 targets where sizeof(size_t) > sizeof(long). Avoid undefined shifts 2040 of the number of bits in the type. 2041 * include/std/bit (__ceil2): Avoid undefined shifts. 2042 * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: Test values with 2043 the most signifiant bit set. 2044 2045 * config/abi/pre/gnu.ver: Add missing exports for mingw. 2046 2047 * include/ext/pointer.h (_Pointer_adapter): Define operators for 2048 pointer arithmetic using long long offsets. 2049 * testsuite/ext/ext_pointer/1.cc: Test pointer arithmetic using 2050 long long values. 2051 20522018-08-29 Jonathan Wakely <jwakely@redhat.com> 2053 2054 PR libstdc++/31413 2055 * testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Check D_FMT 2056 string for alternative format. 2057 20582018-08-28 Jonathan Wakely <jwakely@redhat.com> 2059 2060 PR libstdc++/87116 2061 * src/filesystem/std-path.cc (path::lexically_normal): When handling 2062 a dot-dot filename, preserve an empty final component in the iteration 2063 sequence. 2064 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Use preferred-separator for 2065 root-directory. 2066 * testsuite/27_io/filesystem/path/generation/normal.cc: Add new tests 2067 for more than two adjacent dot-dot filenames. 2068 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Replace slashes with 2069 preferred-separator in expected normalized strings. 2070 20712018-08-25 Iain Sandoe <iain@sandoe.co.uk> 2072 2073 PR libstdc++/70694 2074 * configure.host (OPT_LDFLAGS): Don't append 2075 -fvisibility-inlines-hidden for newer Darwin. 2076 20772018-08-24 Marc Glisse <marc.glisse@inria.fr> 2078 2079 PR libstdc++/86822 2080 * libsupc++/new (operator new(size_t, nothrow_t), operator 2081 new[](size_t, nothrow_t), operator new(size_t, align_val_t, nothrow_t), 2082 operator new[](size_t, align_val_t, nothrow_t)): Add malloc attribute. 2083 20842018-08-24 Jonathan Wakely <jwakely@redhat.com> 2085 2086 * include/debug/deque (std::__debug::deque): Declare. 2087 * include/debug/forward_list (std::__debug::forward_list): Declare. 2088 * include/debug/list (std::__debug::list): Declare. 2089 * include/debug/map (std::__debug::map): Declare. 2090 * include/debug/set (std::__debug::set): Declare. 2091 * include/debug/unordered_map (std::__debug::unordered_map): Declare. 2092 * include/debug/unordered_set (std::__debug::unordered_set): Declare. 2093 * include/debug/vector (std::__debug::vector): Declare. 2094 * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc: New test. 2095 * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc: New 2096 test. 2097 * testsuite/23_containers/list/pmr_typedefs_debug.cc: New test. 2098 * testsuite/23_containers/map/pmr_typedefs_debug.cc: New test. 2099 * testsuite/23_containers/multimap/pmr_typedefs_debug.cc: New test. 2100 * testsuite/23_containers/multiset/pmr_typedefs_debug.cc: New test. 2101 * testsuite/23_containers/set/pmr_typedefs_debug.cc: New test. 2102 * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc: New 2103 test. 2104 * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc: 2105 New test. 2106 * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc: 2107 New test. 2108 * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc: New 2109 test. 2110 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: 2111 Adjust dg-error lineno. 2112 * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc: New 2113 test. 2114 21152018-08-23 Jonathan Wakely <jwakely@redhat.com> 2116 2117 * testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource): 2118 Only define when RTTI is enabled. 2119 2120 * include/debug/vector (__niter_base): Define for C++98. 2121 2122 * testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc: 2123 Fix C++98 test to not use C++11 features. 2124 * testsuite/25_algorithms/fill_n/2.cc: Likewise. 2125 2126 * scripts/check_compile: Fix comments. 2127 2128 * include/debug/string (insert(__const_iterator, _InIter, _InIter)): 2129 [!_GLIBCXX_USE_CXX11_ABI]: Replace use of C++11-only cbegin() with 2130 begin(), for C++98 compatibility. 2131 2132 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] 2133 (basic_string::__const_iterator): Change access to protected. 2134 [!_GLIBCXX_USE_CXX11_ABI] (basic_string::__const_iterator): Define 2135 as typedef for iterator. 2136 * include/debug/string (__const_iterator): Use typedef from base. 2137 (insert(const_iterator, _CharT)) 2138 (replace(const_iterator, const_iterator, const basic_string&)) 2139 (replace(const_iterator, const_iterator, const _CharT*, size_type)) 2140 (replace(const_iterator, const_iterator, const CharT*)) 2141 (replace(const_iterator, const_iterator, size_type, _CharT)) 2142 (replace(const_iterator, const_iterator, _InputIter, _InputIter)) 2143 (replace(const_iterator, const_iterator, initializer_list<_CharT>)): 2144 Change const_iterator parameters to __const_iterator. 2145 (insert(iterator, size_type, _CharT)): Add C++98 overload. 2146 (insert(const_iterator, _InputIterator, _InputIterator)): Change 2147 const_iterator parameter to __const_iterator. 2148 [!_GLIBCXX_USE_CXX11_ABI]: Add workaround for incorrect return type 2149 of base's member function. 2150 (insert(const_iterator, size_type, _CharT)) [!_GLIBCXX_USE_CXX11_ABI]: 2151 Likewise. 2152 (insert(const_iterator, initializer_list<_CharT>)) 2153 [!_GLIBCXX_USE_CXX11_ABI]: Likewise. 2154 * testsuite/21_strings/basic_string/init-list.cc: Remove effective 2155 target directive. 2156 2157 * testsuite/20_util/reference_wrapper/lwg2993.cc: Fix C++11 test to 2158 not use C++14 feature. 2159 * testsuite/23_containers/list/68222_neg.cc: Likewise. 2160 2161 * testsuite/21_strings/basic_string/init-list.cc: 2162 Require cxx11-abi. 2163 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc: 2164 Likewise. 2165 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc: 2166 Likewise. 2167 2168 * testsuite/23_containers/deque/capacity/max_size.cc: Fix test for 2169 C++98 mode. 2170 * testsuite/23_containers/deque/modifiers/assign/1.cc: Likewise. 2171 * testsuite/23_containers/list/modifiers/assign/1.cc: Likewise. 2172 * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: Likewise. 2173 * testsuite/23_containers/vector/capacity/max_size.cc: Likewise. 2174 * testsuite/23_containers/vector/modifiers/assign/1.cc: Likewise. 2175 21762018-08-22 Jonathan Wakely <jwakely@redhat.com> 2177 2178 PR libstdc++/87061 2179 * include/experimental/regex [!_GLIBCXX_USE_CXX11_ABI] 2180 (experimental::pmr::match_results, experimental::pmr::cmatch) 2181 (experimental::pmr::smatch, experimental::pmr::wcmatch) 2182 (experimental::pmr::wsmatch): Do not declare for gcc4-compatible ABI, 2183 because COW strings don't support C++11 allocator model. 2184 * include/experimental/string [!_GLIBCXX_USE_CXX11_ABI] 2185 (experimental::pmr::basic_string, experimental::pmr::string) 2186 (experimental::pmr::u16string, experimental::pmr::u32string) 2187 (experimental::pmr::wstring): Likewise. 2188 * include/std/regex [!_GLIBCXX_USE_CXX11_ABI] (pmr::match_results) 2189 (pmr::cmatch, pmr::smatch, pmr::wcmatch, pmr::wsmatch): Likewise. 2190 * include/std/string [!_GLIBCXX_USE_CXX11_ABI] (pmr::basic_string) 2191 (pmr::string, pmr::u16string, pmr::u32string, pmr::wstring): Likewise. 2192 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: Require 2193 cxx11-abi. 2194 * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise. 2195 2196 PR libstdc++/78448 2197 * include/bits/deque.tcc (deque::_M_range_initialize): Use 2198 _S_check_init_len to check size. 2199 (deque::_M_push_back_aux, deque::_M_push_front_aux): Throw length 2200 error if size would exceed max_size(). 2201 * include/bits/stl_deque.h (_Deque_base::size_type): Remove typedef. 2202 (_Deque_base(_Deque_base&&, const allocator_type&, size_t)): Use 2203 size_t instead of size_type. 2204 (deq(size_type, const allocator_type&) 2205 (deq(size_type, const value_type&, const allocator_type&) 2206 (deque::_M_initialize_dispatch): Use _S_check_init_len to check size. 2207 (deque::max_size): Call _S_max_size. 2208 (deque::_S_check_init_len, deque::_S_max_size): New functions. 2209 * include/bits/stl_vector.h (vector(size_type, const allocator_type&)) 2210 (vector(size_type, const value_type&, const allocator_type&)) 2211 (vector::_M_initialize_dispatch, vector::_M_range_initialize): Use 2212 _S_check_init_len to check size. 2213 (vector::max_size): Call _S_max_size. 2214 (vector::_M_check_len): Prevent max from being expanded as a 2215 function-like macro. 2216 (vector::_S_check_init_len, vector::_S_max_size): New functions. 2217 * include/bits/vector.tcc (vector::_M_assign_aux): Use 2218 _S_check_init_len to check size. 2219 * testsuite/23_containers/deque/capacity/max_size.cc: New test. 2220 * testsuite/23_containers/vector/capacity/max_size.cc: New test. 2221 22222018-08-22 François Dumont <fdumont@gcc.gnu.org> 2223 2224 PR libstdc++/68222 2225 * include/debug/safe_iterator.h 2226 (_Safe_iterator<_It, _Sq, _Cat>): Add category template parameter. 2227 (_Safe_iterator<>::_Const_iterator): Remove. 2228 (_Safe_iterator<>::_IsConstant): New. 2229 (_Safe_iterator<>::_OtherIterator): New. 2230 (_Safe_iterator<_It, _Sq, _Cat>::_Safe_iterator<_MutIte>( 2231 const _Safe_iterator<_MutIte, _Sq, _Cat>&)): Add _IsConstant::__value in 2232 __gnu_cxx::__enable_if condition. 2233 (_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_to): New. 2234 (_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_from_begin): New. 2235 (_Safe_iterator<_It, _Sq, _Cat>::_M_get_distance_to_end): New. 2236 (_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag>): New. 2237 (_Safe_iterator<_It, _Sq, _Cat>::operator--()): Move... 2238 (_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag> 2239 ::operator--()): ...here. 2240 (_Safe_iterator<_It, _Sq, _Cat>::operator--(int)): Move... 2241 (_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag> 2242 ::operator--(int)): ...here. 2243 (_Safe_iterator<_It, _Sq, _Cat>::_M_decrementable()): Move... 2244 (_Safe_iterator<_It, _Sq, std::bidirectional_iterator_tag> 2245 ::_M_decrementable()): ...here. 2246 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag>): New. 2247 (_Safe_iterator<_It, _Sq, _Cat>::operator[](const difference_type&)): 2248 Move... 2249 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag> 2250 ::operator[](const difference_type&)): ...here. 2251 (_Safe_iterator<_It, _Sq, _Cat>::operator+=(const difference_type&)): 2252 Move... 2253 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag> 2254 ::operator+=(const difference_type&)): ...here. 2255 (_Safe_iterator<_It, _Sq, _Cat>::operator+(const difference_type&)): 2256 Move... 2257 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag> 2258 ::operator+(const difference_type&)): ...here. 2259 (_Safe_iterator<_It, _Sq, _Cat>::operator-=(const difference_type&)): 2260 Move... 2261 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag> 2262 ::operator-=(const difference_type&)): ...here. 2263 (_Safe_iterator<_It, _Sq, _Cat>::operator-(const difference_type&)): 2264 Move... 2265 (_Safe_iterator<_It, _Sq, std::random_access_iterator_tag> 2266 ::operator-(const difference_type&)): ...here. 2267 (operator<(const _Safe_iterator<>&, const _Safe_iterator<>&)): 2268 Constraint to random access iterators. 2269 (operator<=(const _Safe_iterator<>&, const _Safe_iterator<>&)): 2270 Likewise. 2271 (operator>(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise. 2272 (operator>=(const _Safe_iterator<>&, const _Safe_iterator<>&)): 2273 Likewise. 2274 (operator-(const _Safe_iterator<>&, const _Safe_iterator<>&)): Likewise. 2275 (operator+(const difference_type&, const _Safe_iterator<>&)): Likewise. 2276 (__check_dereferenceable(const _Safe_iterator<>&)): Remove. 2277 (__get_distance): Remove. 2278 (__get_distance_from_begin): Remove. 2279 (__get_distance_to_end): Remove. 2280 (struct __is_safe_random_iterator<_Safe_iterator<>>): Remove partial 2281 specialization. 2282 (__base(const _Safe_iterator<>&, std::input_iterator_tag)): Remove. 2283 (__base(const _Safe_iterator<>&, std::random_access_iterator_tag)): Remove. 2284 (__base(const _Safe_iterator<>&)): Constraint to random access iterator. 2285 * include/debug/safe_iterator.tcc 2286 (_Safe_iterator<>::_M_get_distance_from_begin()): New. 2287 (_Safe_iterator<>::_M_get_distance_to_end()): New. 2288 (_Safe_iterator<>::_M_get_distance_to(const _Safe_iterator<>&)): New. 2289 (_Safe_iterator<_It, _Seq, std::random_access_iterator_tag> 2290 ::_M_valid_range): New. 2291 * include/debug/safe_local_iterator.h 2292 (_Safe_local_iterator<>::_Const_local_iterator): Remove. 2293 (_Safe_local_iterator<>::_IsConstant): New. 2294 (_Safe_local_iterator<>::_OtherIterator): New. 2295 (_Safe_local_iterator<_It, _Cont>::_Safe_local_iterator<_MutIte, _Cont>( 2296 const _Safe_local_iterator<_MutIte, _Seq>&)): Add _IsConstant::__value 2297 in __gnu_cxx::__enable_if condition. If singular compare base iterator 2298 with _MutIte rather than _It. 2299 (_Safe_local_iterator<>::_S_constant): Make constexpr. 2300 (_Safe_local_iterator<>::_M_get_distance_to): New. 2301 (__check_dereferenceable(const _Safe_local_iterator<>&)): Remove. 2302 (__get_distance(const _Safe_local_iterator<>&, 2303 const _Safe_local_iterator<>&, std::input_iterator_tag)): Remove. 2304 (__valid_range(const _Safe_local_iterator<>&, 2305 const _Safe_local_iterator<>&)): New. 2306 * include/debug/safe_local_iterator.tcc 2307 (_Safe_local_iterator<>::_M_get_distance_to): New. 2308 * include/debug/deque (std::__debug::deque<>): Add 2309 ::__gnu_debug::_Safe_iterator<> friend declaration. 2310 * include/debug/forward_list (std::__debug::forward_list<>): Likewise. 2311 * include/debug/list (std::__debug::list<>): Likewise. 2312 * include/debug/map.h (std::__debug::map<>): Likewise. 2313 * include/debug/multimap.h (std::__debug::multimap<>): Likewise. 2314 * include/debug/set.h (std::__debug::set<>): Likewise. 2315 * include/debug/multiset.h (std::__debug::multiset<>): Likewise. 2316 * include/debug/string (std::__debug::basic_string<>): Likewise. 2317 * include/debug/unordered_map (std::__debug::unordered_map<>): Likewise 2318 and add ::__gnu_debug::_Safe_local_iterator<> friend declaration. 2319 (std::__debug::unordered_multimap<>): Likewise. 2320 * include/debug/unordered_set (std::__debug::unordered_set<>): Likewise. 2321 (std::__debug::unordered_multiset<>): Likewise. 2322 * include/debug/formatter.h: Adapt. 2323 * include/debug/helper_functions.h 2324 (__gnu_debug::_Safe_local_iterator<>): Add declaration. 2325 (__get_distance<_Ite>(_Ite, _Ite, std::random_access_iterator_tag): 2326 Pass parameter by copy. 2327 (__get_distance<_Ite>(_Ite, _Ite, std::input_iterator_tag): Likewise. 2328 (__get_distance<_Ite>(_Ite, _Ite): Likewise. 2329 (__valid_range_aux<_Integral>): Pass _Integral by copy. 2330 (__valid_range<_InputIterator>): Pass _InputIterator by copy. 2331 (__valid_range<>(const _Safe_iterator<>&, 2332 const _Safe_iterator<>&, typename _Distance_traits<>::__type&)): 2333 Declare. 2334 (__valid_range(const _Safe_local_iterator<>&, 2335 const _Safe_local_iterator<>&, typename _Distance_traits<>::__type&)): 2336 Declare. 2337 (__valid_range<>(const _Safe_iterator<>&, const _Safe_iterator<>&)): 2338 Declare. 2339 (__valid_range(const _Safe_local_iterator<>&, const _Safe_local_iterator<>&)): 2340 Declare. 2341 (__can_advance): Adapt. 2342 (struct __is_safe_random_iterator<>): Remove. 2343 (struct _SIter_base<>): Remove. 2344 * include/debug/functions.h: Include <bits/stl_iterator.h>. 2345 (__check_dereferenceable): Remove. 2346 (__foreign_iterator_aux4, __foreign_iterator_aux3): Adapt. 2347 (__foreign_iterator_aux2, __foreign_iterator_aux): Adapt. 2348 (__foreign_iterator): Adapt. 2349 * include/debug/stl_iterator.h 2350 (__is_safe_random_iterator<std::reverse_iterator<>>): Remove. 2351 (__base(const std::reverse_iterator<_Safe_iterator<_It, _Sq>)): 2352 Constraint for random access iterators. 2353 (__niter_base): Adapt. 2354 * testsuite/util/testsuite_containers.h: 2355 Include <bits/boost_concept_check.h>. 2356 (iterator_concept_checks<_It, _Mutable, _Category>): New. 2357 (citerator<_Cont>::forward_members::forward_members()): Instantiate 2358 latter for container iterator and const_iterator. 2359 * testsuite/23_containers/list/68222_neg.cc: New. 2360 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: Adapt 2361 line number. 2362 * testsuite/23_containers/unordered_set/debug/debug_functions.cc: 2363 (test01): Remove. 2364 * testsuite/23_containers/vector/debug/debug_functions.cc (test01): 2365 Remove. 2366 23672018-08-22 Jonathan Wakely <jwakely@redhat.com> 2368 2369 PR libstdc++/77854 2370 * doc/xml/manual/status_cxx1998.xml: Document size_type and 2371 difference_type for containers. 2372 * doc/html/*: Regenerate. 2373 23742018-08-21 François Dumont <fdumont@gcc.gnu.org> 2375 2376 P0646R1 Improving the Return Value of Erase-Like Algorithms I 2377 * include/debug/forward_list (forward_list::__remove_return_type): 2378 Define typedef as size_type or void, according to __cplusplus value. 2379 (_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or 2380 empty, according to __cplusplus value. 2381 (_GLIBCXX20_ONLY): Define macro. 2382 (forward_list::remove, forward_list::unique): Use typedef and macro 2383 to change return type and add abi-tag for C++2a. Return number of 2384 removed elements for C++2a. 2385 (forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use 2386 typedef to change return type for C++2a. Return number of removed 2387 elements for C++2a. 2388 * include/debug/list (list::__remove_return_type): Define typedef as 2389 size_type or void, according to __cplusplus value. 2390 (_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or 2391 empty, according to __cplusplus value. 2392 (_GLIBCXX20_ONLY): Define macro. 2393 (list::remove, list::unique): Use typedef and macro to change return 2394 type and add abi-tag for C++2a. Return number of removed elements for 2395 C++2a. 2396 (list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use typedef 2397 to change return type for C++2a. Return number of removed elements for 2398 C++2a. 2399 24002018-08-21 David Edelsohn <dje.gcc@gmail.com> 2401 2402 * testsuite/18_support/new_nothrow.cc: XFAIL on AIX. 2403 24042018-08-21 Jonathan Wakely <jwakely@redhat.com> 2405 2406 * testsuite/26_numerics/bit/bitops.count/countl_one.cc: Remove 2407 redundant dg-do directive. 2408 * testsuite/26_numerics/bit/bitops.count/countl_zero.cc: Likewise. 2409 * testsuite/26_numerics/bit/bitops.count/countr_one.cc: Likewise. 2410 * testsuite/26_numerics/bit/bitops.count/countr_zero.cc: Likewise. 2411 * testsuite/26_numerics/bit/bitops.count/popcount.cc: Likewise. 2412 24132018-08-20 Jonathan Wakely <jwakely@redhat.com> 2414 2415 PR libstdc++/86963 2416 * include/std/tuple (_Tuple_impl::operator=): Define as deleted. 2417 (_Tuple_impl::_M_assign): New functions to perform assignment instead 2418 of assignment operators. 2419 (_Tuple_impl::_M_swap): Remove exception specification. 2420 (_Tuple_impl<_Idx, _Head>): Likewise. 2421 (_TC::_NonNestedTuple, _TC::_NotSameTuple): Use __remove_cvref_t. 2422 (__tuple_base): Remove. 2423 (tuple, tuple<_T1, _T2>): Remove inheritance from __tuple_base. 2424 (tuple::operator=, tuple<_T1, _T2>::operator=): Call _M_assign. 2425 (tuple::swap, tuple<_T1, _T2>::swap): Define exception specification 2426 using __is_nothrow_swappable. 2427 (tuple<_T1, _T2>::tuple(_U1&&, _U2&&)): Use __remove_cvref_t. 2428 2429 * include/std/optional (_Optional_payload): Use variable templates 2430 for conditions in default template arguments and exception 2431 specifications. 2432 (optional): Likewise. Adjust indentation. 2433 (optional::__not_self, optional::__not_tag, optional::_Requires): New 2434 SFINAE helpers. 2435 (optional::optional): Use new helpers in constructor constraints. 2436 * include/std/type_traits (__or_v, __and_v): New variable templates. 2437 * testsuite/20_util/optional/cons/value_neg.cc: Change dg-error to 2438 dg-prune-output. Remove unused header. 2439 24402018-08-18 François Dumont <fdumont@gcc.gnu.org> 2441 2442 * testsuite/25_algorithms/copy/86658.cc: Use dg-options to define 2443 _GLIBCXX_DEBUG. 2444 24452018-08-17 Jonathan Wakely <jwakely@redhat.com> 2446 2447 PR libstdc++/86963 2448 * include/std/tuple (__tuple_base): New class template with deleted 2449 copy assignment operator. 2450 (tuple, tuple<_T1, _T2>): Derive from __tuple_base<tuple> so that 2451 implicit copy/move assignment operator will be deleted/suppressed. 2452 (tuple::__assignable, tuple<_T1, _T2>::__assignable): New helper 2453 functions for SFINAE constraints on assignment operators. 2454 (tuple::__nothrow_assignable, tuple<_T1, _T2>::__nothrow_assignable): 2455 New helper functions for exception specifications. 2456 (tuple::operator=(const tuple&), tuple::operator=(tuple&&)) 2457 (tuple<_T1, _T2>::operator=(const tuple&)) 2458 (tuple<_T1, _T2>::operator=(tuple&&)): Change parameter types to 2459 __nonesuch_no_braces when the operator should be defined implicitly. 2460 Use __nothrow_assignable for exception specifications. 2461 (tuple::operator=(const tuple<_UElements...>&)) 2462 (tuple::operator=(tuple<_UElements...>&&)) 2463 (tuple<_T1, _T2>::operator=(const tuple<_U1, _U2>&)) 2464 (tuple<_T1, _T2>::operator=(tuple<_U1, _U2>&&)) 2465 (tuple<_T1, _T2>::operator=(const pair<_U1, _U2>&)) 2466 (tuple<_T1, _T2>::operator=(pair<_U1, _U2>&&)): Constrain using 2467 __assignable and use __nothrow_assignable for exception 2468 specifications. 2469 * python/libstdcxx/v6/printers.py (is_specialization_of): Accept 2470 gdb.Type as first argument, instead of a string. 2471 (StdTuplePrinter._iterator._is_nonempty_tuple): New method to check 2472 tuple for expected structure. 2473 (StdTuplePrinter._iterator.__init__): Use _is_nonempty_tuple. 2474 * testsuite/20_util/tuple/dr2729.cc: New test. 2475 * testsuite/20_util/tuple/element_access/get_neg.cc: Change dg-error 2476 to dg-prune-output. 2477 24782018-08-16 Jonathan Wakely <jwakely@redhat.com> 2479 2480 * include/tr1/legendre_function.tcc (__sph_legendre): Avoid warning 2481 about signed/unsigned comparison. 2482 2483 * include/std/ostream (basic_ostream::sentry::~sentry): Suppress 2484 deprecation warnings for using uncaught_exception(). 2485 2486 PR libstdc++/86447 2487 * src/c++11/cow-stdexcept.cc [_GLIBCXX_FULLY_DYNAMIC_STRING] 2488 (logic_error::logic_error(logic_error&&)) 2489 (logic_error::operator=(logic_error&&)) 2490 (runtime_error::runtime_error(runtime_error&&)) 2491 (runtime_error::operator=(runtime_error&&)): Copy strings instead of 2492 moving, to avoid allocating empty reps for moved-from strings. 2493 24942018-08-15 Jonathan Wakely <jwakely@redhat.com> 2495 2496 * include/experimental/regex: Remove begin/end macros for namespace. 2497 * include/experimental/string: Likewise. 2498 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc: 2499 New test. 2500 * testsuite/experimental/polymorphic_allocator/ 2501 pmr_typedefs_forward_list.cc: New test. 2502 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc: 2503 New test. 2504 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc: 2505 New test. 2506 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc: 2507 New test. 2508 * testsuite/experimental/polymorphic_allocator/ 2509 pmr_typedefs_multimap.cc: New test. 2510 * testsuite/experimental/polymorphic_allocator/ 2511 pmr_typedefs_multiset.cc: New test. 2512 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc: 2513 New test. 2514 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc: 2515 New test. 2516 * testsuite/experimental/polymorphic_allocator/ 2517 pmr_typedefs_unordered_map.cc: New test. 2518 * testsuite/experimental/polymorphic_allocator/ 2519 pmr_typedefs_unordered_multimap.cc: New test. 2520 * testsuite/experimental/polymorphic_allocator/ 2521 pmr_typedefs_unordered_multiset.cc: New test. 2522 * testsuite/experimental/polymorphic_allocator/ 2523 pmr_typedefs_unordered_set.cc: New test. 2524 * testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc: 2525 New test. 2526 2527 * include/bits/uses_allocator.h (__uses_allocator_construct): Qualify 2528 calls to __uses_allocator_construct_impl and __use_alloc. 2529 * include/experimental/memory_resource 2530 (polymorphic_allocator::_M_construct): Remove. 2531 (polymorphic_allocator::construct): Call __uses_allocator_construct. 2532 Qualify calls to __use_alloc. 2533 * include/std/memory_resource (polymorphic_allocator::construct): Fix 2534 type in SFINAE constraint. Use constexpr if instead of tag dispatching 2535 to _S_construct overloads. 2536 (polymorphic_allocator::construct(pair<T1, T2>*, ...)): Fix order of 2537 arguments to _S_construct_p. 2538 (polymorphic_allocator::_S_construct): Remove. 2539 (polymorphic_allocator::_S_construct_p): Return allocators by value 2540 not by reference. 2541 * include/std/scoped_allocator (scoped_allocator_adaptor::construct): 2542 Qualify calls to __use_alloc. 2543 * testsuite/20_util/polymorphic_allocator/construct_pair.cc: New test, 2544 copied from testsuite/20_util/scoped_allocator/construct_pair.cc. 2545 * testsuite/experimental/polymorphic_allocator/1.cc: New test. 2546 * testsuite/experimental/polymorphic_allocator/construct_pair.cc: 2547 New test. 2548 2549 * src/c++17/memory_resource.cc [!_GLIBCXX_HAS_GTHREADS] 2550 (atomic_mem_res): Add unsynchronized definition for single-threaded. 2551 25522018-08-14 Jonathan Wakely <jwakely@redhat.com> 2553 2554 PR libstdc++/86954 2555 * include/bits/stl_tempbuf.h (return_temporary_buffer): Use 2556 non-placement delete. 2557 2558 * include/std/chrono (__check_overflow): Simplify definition. 2559 (_Checked_integral_constant): Remove. 2560 2561 PR libstdc++/86846 2562 * src/c++17/default_resource.h: New file, defining default_res. 2563 * src/c++17/memory_resource.cc [ATOMIC_POINTER_LOCK_FREE != 2] 2564 (atomic_mem_res): Define alternative for atomic<memory_resource*> 2565 using a mutex instead of atomics. 2566 2567 PR libstdc++/85343 2568 * config/abi/pre/gnu.ver: Export new symbol. 2569 * doc/xml/manual/abi.xml: Document new versions. 2570 * include/bits/fstream.tcc (basic_filebuf<C, T>::underflow) 2571 (basic_filebuf<C, T>::xsgetn): Pass errno to __throw_ios_failure. 2572 * include/bits/functexcept.h (__throw_ios_failure(const char*, int)): 2573 Declare new overload. 2574 * src/c++11/cxx11-ios_failure.cc (__ios_failure): Add new constructor 2575 and static member function. 2576 (__throw_ios_failure(const char*, int)): Define. 2577 * src/c++98/ios_failure.cc [!_GLIBCXX_USE_DUAL_ABI] 2578 (__throw_ios_failure(const char*, int)): Define. 2579 25802018-08-14 Jeremy Sawicki <jeremy-gcc@sawicki.us> 2581 2582 * include/ext/rope (_Rope_iterator_base(const _Rope_iterator_base&)) 2583 (_Rope_const_iterator::operator=(const _Rope_const_iterator&)) 2584 (_Rope_iterator::operator=(const _Rope_iterator&)): Ensure 2585 copied/assigned rope iterators don't retain pointers to the iterator 2586 they were copied/assigned from. 2587 * testsuite/ext/rope/7.cc: New. 2588 25892018-08-13 Jonathan Wakely <jwakely@redhat.com> 2590 2591 PR libstdc++/45093 2592 * include/bits/stl_tree.h (_Rb_tree::_M_destroy_node(_Link_type)): 2593 Combine definitions to avoid --detect-odr-violations warning. 2594 2595 * libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Use 2596 __is_pow2 to check for valid alignment. Avoid branching when rounding 2597 size to multiple of alignment. 2598 2599 * include/Makefile.am: Install <bit> and <version> for freestanding. 2600 * include/Makefile.in: Regenerate. 2601 * testsuite/17_intro/freestanding.cc: Check for <bit> and <version>. 2602 2603 Revert 2604 2018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de> 2605 2606 PR target/85904 2607 * configure.ac: Define HAVE_ALIGNED_ALLOC if building for 2608 Newlib. 2609 * configure: Regenerate. 2610 26112018-08-10 Jonathan Wakely <jwakely@redhat.com> 2612 2613 PR libstdc++/68210 2614 * doc/xml/manual/intro.xml: Document LWG 206 change. 2615 * libsupc++/del_op.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept. 2616 * libsupc++/del_opa.cc: Likewise. 2617 * libsupc++/del_opant.cc: Likewise. 2618 * libsupc++/del_opnt.cc: Likewise. Call operator delete(ptr) instead 2619 of free(ptr). 2620 * libsupc++/del_ops.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept. 2621 * libsupc++/del_opsa.cc: Likewise. 2622 * libsupc++/del_opva.cc: Likewise. 2623 * libsupc++/del_opvant.cc: Likewise. 2624 * libsupc++/del_opvnt.cc: Likewise. Call operator delete[](ptr) 2625 instead of operator delete(ptr). 2626 * libsupc++/del_opvs.cc: Replace _GLIBCXX_USE_NOEXCEPT with noexcept. 2627 * libsupc++/del_opvsa.cc: Likewise. 2628 * libsupc++/new_op.cc: Use __builtin_expect in check for zero size. 2629 * libsupc++/new_opa.cc: Use nullptr instead of literal 0. 2630 * libsupc++/new_opant.cc: Likewise. Replace _GLIBCXX_USE_NOEXCEPT 2631 with noexcept. 2632 * libsupc++/new_opnt.cc: Likewise. Call operator new(sz) instead of 2633 malloc(sz). 2634 * libsupc++/new_opvant.cc: Use nullptr and noexcept. 2635 * libsupc++/new_opvnt.cc: Likewise. Call operator new[](sz) instead of 2636 operator new(sz, nothrow). 2637 * testsuite/18_support/new_nothrow.cc: New test. 2638 26392018-08-10 Martin Liska <mliska@suse.cz> 2640 2641 * libsupc++/new_op.cc (new): Remove __builtin_expect as malloc 2642 predictor can handle that. 2643 * libsupc++/new_opa.cc: Likewise. 2644 * libsupc++/new_opnt.cc (new): Likewise. 2645 26462018-08-10 Sebastian Huber <sebastian.huber@embedded-brains.de> 2647 2648 PR target/85904 2649 * configure.ac: Define HAVE_ALIGNED_ALLOC if building for 2650 Newlib. 2651 * configure: Regenerate. 2652 26532018-08-10 Jonathan Wakely <jwakely@redhat.com> 2654 2655 * include/std/deque (std::pmr::deque): Declare alias. 2656 * include/std/forward_list (std::pmr::forward_list): Likewise. 2657 * include/std/list (std::pmr::list): Likewise. 2658 * include/std/map (std::pmr::map, std::pmr::multimap): Likewise. 2659 * include/std/regex (std::pmr::match_results, std::pmr::cmatch) 2660 (std::pmr::smatch, std::pmr::wcmatch, std::pmr::wsmatch): Likewise. 2661 * include/std/set (std::pmr::set, std::pmr::multiset): Likewise. 2662 * include/std/string (std::pmr::basic_string, std::pmr::string) 2663 (std::pmr::u16string, std::pmr::u32string, std::pmr::wstring): 2664 Likewise. 2665 * include/std/unordered_map (std::pmr::unordered_map) 2666 (std::pmr::unordered_multimap): Likewise. 2667 * include/std/unordered_set (std::pmr::unordered_set) 2668 (std::pmr::unordered_multiset): Likewise. 2669 * include/std/vector (std::pmr::vector): Likewise. 2670 * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: New test. 2671 * testsuite/23_containers/deque/types/pmr_typedefs.cc: New test. 2672 * testsuite/23_containers/forward_list/pmr_typedefs.cc: New test. 2673 * testsuite/23_containers/list/pmr_typedefs.cc: New test. 2674 * testsuite/23_containers/map/pmr_typedefs.cc: New test. 2675 * testsuite/23_containers/multimap/pmr_typedefs.cc: New test. 2676 * testsuite/23_containers/multiset/pmr_typedefs.cc: New test. 2677 * testsuite/23_containers/set/pmr_typedefs.cc: New test. 2678 * testsuite/23_containers/unordered_map/pmr_typedefs.cc: New test. 2679 * testsuite/23_containers/unordered_multimap/pmr_typedefs.cc: New 2680 test. 2681 * testsuite/23_containers/unordered_multiset/pmr_typedefs.cc: New 2682 test. 2683 * testsuite/23_containers/unordered_set/pmr_typedefs.cc: New test. 2684 * testsuite/23_containers/vector/pmr_typedefs.cc: New test. 2685 * testsuite/28_regex/match_results/pmr_typedefs.cc: New test. 2686 26872018-08-08 François Dumont <fdumont@gcc.gnu.org> 2688 2689 * include/bits/stl_algo.h 2690 (__rotate(_Ite, _Ite, _Ite, forward_iterator_tag)) 2691 (__rotate(_Ite, _Ite, _Ite, bidirectional_iterator_tag)) 2692 (__rotate(_Ite, _Ite, _Ite, random_access_iterator_tag)): Move code 2693 duplication... 2694 (rotate(_Ite, _Ite, _Ite)): ...here. 2695 (__stable_partition_adaptive(_FIt, _FIt, _Pred, _Dist, _Pointer, _Dist)): 2696 Simplify rotate call. 2697 (__rotate_adaptive(_BIt1, _BIt1, _BIt1, _Dist, _Dist, _Bit2, _Dist)): 2698 Likewise. 2699 (__merge_without_buffer(_BIt, _BIt, _BIt, _Dist, _Dist, _Comp)): 2700 Likewise. 2701 27022018-08-08 Jonathan Wakely <jwakely@redhat.com> 2703 2704 * libsupc++/new_opa.cc (aligned_alloc): Declare inside namespace to 2705 avoid clashing with an ::aligned_alloc function that was not detected 2706 by configure. 2707 2708 * doc/xml/manual/using.xml: Fix markup for empty table entry. 2709 * doc/html/*: Regenerate. 2710 2711 * doc/xml/manual/using.xml: Add missing header to table and fix typo. 2712 * doc/html/*: Regenerate. 2713 2714 PR libstdc++/86597 2715 * include/bits/fs_dir.h (directory_entry::_M_file_type(error_code&)): 2716 Clear error_code when cached type is used. 2717 * testsuite/27_io/filesystem/directory_entry/86597.cc: New test. 2718 27192018-08-07 Jonathan Wakely <jwakely@redhat.com> 2720 2721 PR libstdc++/86874 2722 * include/std/variant (_Copy_ctor_base::_M_destructive_move): Define 2723 here instead of in _Move_assign_base. 2724 (_Copy_ctor_base<true, _Types...>::_M_destructive_move): Define. 2725 (_Copy_assign_base::operator=): Use _M_destructive_move when changing 2726 the contained value to another alternative. 2727 (_Move_assign_base::operator=): Likewise. 2728 (_Move_assign_base::_M_destructive_move): Remove. 2729 * testsuite/20_util/variant/86874.cc: New test. 2730 2731 PR libstdc++/86861 2732 * libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] (aligned_alloc): 2733 Replace macro with inline function. 2734 [__sun]: Increase alignment to meet memalign precondition. 2735 [!HAVE__ALIGNED_MALLOC && !HAVE_POSIX_MEMALIGN && !HAVE_MEMALIGN] 2736 (aligned_alloc): Move check for valid alignment to operator new. 2737 Remove redundant check for non-zero size, it's enforced by the caller. 2738 (operator new): Move check for valid alignment here. Use 2739 __builtin_expect on check for zero size. 2740 2741 * config/abi/pre/gnu.ver: Export monotonic_buffer_resource members. 2742 * include/std/memory_resource (monotonic_buffer_resource::release): 2743 Call _M_release_buffers to free buffers. 2744 (monotonic_buffer_resource::do_allocate): Call _M_new_buffer to 2745 allocate a new buffer from upstream. 2746 (monotonic_buffer_resource::_M_new_buffer): Declare. 2747 (monotonic_buffer_resource::_M_release_buffers): Declare. 2748 (monotonic_buffer_resource::_Chunk): Replace definition with 2749 declaration as opaque type. 2750 * src/c++17/memory_resource.cc (monotonic_buffer_resource::_Chunk): 2751 Define. 2752 (monotonic_buffer_resource::_M_new_buffer): Define. 2753 (monotonic_buffer_resource::_M_release_buffers): Define. 2754 27552018-08-05 François Dumont <fdumont@gcc.gnu.org> 2756 2757 * include/bits/stl_iterator.h: Fix comment. 2758 27592018-08-03 Jonathan Wakely <jwakely@redhat.com> 2760 2761 * src/c++11/system_error.cc 2762 (system_error_category::default_error_condition): Add workaround for 2763 ENOTEMPTY and EEXIST having the same value on AIX. 2764 * testsuite/19_diagnostics/error_category/system_category.cc: Add 2765 extra testcases for EDOM, EILSEQ, ERANGE, EEXIST and ENOTEMPTY. 2766 27672018-08-01 Jonathan Wakely <jwakely@redhat.com> 2768 2769 * configure: Regenerate. 2770 * configure.ac: Add -D_GLIBCXX_ASSERTIONS to default DEBUG_FLAGS. 2771 * src/c++11/futex.cc: Use __glibcxx_assert instead of 2772 _GLIBCXX_DEBUG_ASSERT. 2773 27742018-08-01 Mike Crowe <mac@mcrowe.com> 2775 2776 * include/std/condition_variable (wait_for): Use steady_clock. 2777 27782018-08-01 Mike Crowe <mac@mcrowe.com> 2779 2780 * include/std/condition_variable (wait_until): Only report timeout 2781 if we really have timed out when measured against the 2782 caller-supplied clock. 2783 * testsuite/30_threads/condition_variable/members/2.cc: Add test 2784 case to confirm above behaviour. 2785 27862018-08-01 Jonathan Wakely <jwakely@redhat.com> 2787 2788 PR libstdc++/60555 2789 * src/c++11/system_error.cc 2790 (system_error_category::default_error_condition): New override to 2791 check for POSIX errno values. 2792 * testsuite/19_diagnostics/error_category/generic_category.cc: New 2793 * testsuite/19_diagnostics/error_category/system_category.cc: New 2794 test. 2795 27962018-07-31 Jonathan Wakely <jwakely@redhat.com> 2797 2798 PR libstdc++/86751 2799 * include/bits/stl_pair.h (__pair_base): New class with deleted copy 2800 assignment operator. 2801 (pair): Derive from __pair_base. 2802 (pair::operator=): Remove deleted overload. 2803 * python/libstdcxx/v6/printers.py (StdPairPrinter): New pretty printer 2804 so that new base class isn't shown in GDB. 2805 * testsuite/20_util/pair/86751.cc: New test. 2806 * testsuite/20_util/pair/ref_assign.cc: New test. 2807 2808 * include/bits/c++config (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP) 2809 (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Move definitions here. 2810 (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Likewise. Use !__is_identifier 2811 instead of __has_builtin. 2812 * include/std/type_traits (_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP) 2813 (_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE): Remove definitions from here. 2814 * include/std/version [!_GLIBCXX_HAS_GTHREADS] 2815 (__cpp_lib_shared_timed_mutex, __cpp_lib_scoped_lock) 2816 (__cpp_lib_shared_mutex): Don't define when Gthreads not in use. 2817 [!_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP] 2818 (__cpp_lib_has_unique_object_representations): Don't define when 2819 builtin not available. 2820 [!_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE] (__cpp_lib_is_aggregate): 2821 Likewise. 2822 [!_GLIBCXX_HAVE_BUILTIN_LAUNDER] (__cpp_lib_launder): Likewise. 2823 * libsupc++/new (_GLIBCXX_HAVE_BUILTIN_LAUNDER): Remove definition 2824 from here. 2825 2826 * doc/xml/manual/test.xml: Improve documentation on writing tests for 2827 newer standards. 2828 * doc/xml/manual/using.xml: Document all headers for C++11 and later. 2829 * doc/html/*: Regenerate. 2830 2831 * include/ext/pointer.h [__cplusplus >= 201103L] 2832 (_Pointer_adapter::operator bool): Add explicit conversion operator 2833 to replace safe bool idiom. 2834 28352018-07-30 Jonathan Wakely <jwakely@redhat.com> 2836 2837 PR libstdc++/86734 2838 * include/bits/stl_iterator.h (reverse_iterator::operator->): Call 2839 _S_to_pointer (LWG 1052, LWG 2118). 2840 (reverse_iterator::_S_to_pointer): Define overloaded helper functions. 2841 * testsuite/24_iterators/reverse_iterator/dr1052.cc: New test. 2842 * testsuite/24_iterators/reverse_iterator/dr2188.cc: New test. 2843 2844 * libsupc++/new_opa.cc (operator new(size_t, align_val_t)): Add 2845 workaround for aligned_alloc bug on AIX. 2846 * testsuite/18_support/new_aligned.cc: New test. 2847 28482018-07-26 Marek Polacek <polacek@redhat.com> 2849 2850 * testsuite/30_threads/condition_variable_any/cond.cc: New. 2851 28522018-07-26 Marek Polacek <polacek@redhat.com> 2853 2854 * src/c++98/locale_init.cc: Fix #ifdef condition. 2855 28562018-07-26 Jonathan Wakely <jwakely@redhat.com> 2857 2858 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: Add 2859 dg-require-cstdint directive. 2860 * testsuite/20_util/allocator/overaligned.cc: Likewise. 2861 * testsuite/20_util/any/cons/aligned.cc: Likewise. 2862 * testsuite/20_util/monotonic_buffer_resource/allocate.cc: Likewise. 2863 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: Likewise. 2864 * testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc: 2865 Likewise. 2866 * testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise. 2867 * testsuite/23_containers/list/modifiers/insert/25288.cc: Likewise. 2868 * testsuite/23_containers/set/allocator/move_assign.cc: Likewise. 2869 * testsuite/25_algorithms/make_heap/complexity.cc: Likewise. 2870 * testsuite/25_algorithms/pop_heap/complexity.cc: Require cstdint and 2871 random_device effective-target. 2872 * testsuite/25_algorithms/push_heap/complexity.cc: Likewise. 2873 * testsuite/25_algorithms/sample/1.cc: Require cstdint. 2874 * testsuite/25_algorithms/sample/2.cc: Likewise. 2875 * testsuite/25_algorithms/sort_heap/complexity.cc: Require cstdint 2876 and random_device. 2877 * testsuite/26_numerics/headers/random/types_std_c++0x.cc: Require 2878 cstdint. 2879 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: 2880 Likewise. 2881 * testsuite/26_numerics/random/discard_block_engine/requirements/ 2882 constexpr_data.cc: Likewise. 2883 * testsuite/26_numerics/random/discard_block_engine/requirements/ 2884 constexpr_functions.cc: Likewise. 2885 * testsuite/26_numerics/random/independent_bits_engine/requirements/ 2886 constexpr_functions.cc: Likewise. 2887 * testsuite/26_numerics/random/linear_congruential_engine/requirements/ 2888 constexpr_data.cc: Likewise. 2889 * testsuite/26_numerics/random/linear_congruential_engine/requirements/ 2890 constexpr_functions.cc: Likewise. 2891 * testsuite/26_numerics/random/mersenne_twister_engine/requirements/ 2892 constexpr_data.cc: Likewise. 2893 * testsuite/26_numerics/random/mersenne_twister_engine/requirements/ 2894 constexpr_functions.cc: Likewise. 2895 * testsuite/26_numerics/random/pr60037-neg.cc: Likewise. 2896 * testsuite/26_numerics/random/seed_seq/cons/65631.cc: Likewise. 2897 * testsuite/26_numerics/random/shuffle_order_engine/requirements/ 2898 constexpr_data.cc: Add dg-require-cstdint directive. 2899 * testsuite/26_numerics/random/shuffle_order_engine/requirements/ 2900 constexpr_functions.cc: Likewise. 2901 * testsuite/26_numerics/random/subtract_with_carry_engine/requirements/ 2902 constexpr_data.cc: Likewise. 2903 * testsuite/26_numerics/random/subtract_with_carry_engine/requirements/ 2904 constexpr_functions.cc: Likewise. 2905 * testsuite/26_numerics/random/uniform_real_distribution/operators/ 2906 64351.cc: Likewise. 2907 * testsuite/29_atomics/headers/atomic/types_std_c++0x.cc: Likewise. 2908 * testsuite/experimental/algorithm/sample-2.cc: Likewise. 2909 * testsuite/experimental/algorithm/sample.cc: Likewise. 2910 * testsuite/experimental/algorithm/search.cc: Likewise. 2911 * testsuite/experimental/algorithm/shuffle.cc: Likewise. 2912 * testsuite/experimental/any/cons/aligned.cc: Likewise. 2913 * testsuite/experimental/memory_resource/new_delete_resource.cc: 2914 Likewise. 2915 * testsuite/experimental/memory_resource/resource_adaptor.cc: Likewise. 2916 * testsuite/experimental/random/randint.cc: Likewise. 2917 * testsuite/experimental/source_location/1.cc: Likewise. 2918 * testsuite/ext/bitmap_allocator/overaligned.cc: Likewise. 2919 * testsuite/ext/malloc_allocator/overaligned.cc: Likewise. 2920 * testsuite/ext/mt_allocator/overaligned.cc: Likewise. 2921 * testsuite/ext/new_allocator/overaligned.cc: Likewise. 2922 * testsuite/ext/pb_ds/regression/hash_map_rand.cc: Likewise. 2923 * testsuite/ext/pb_ds/regression/hash_set_rand.cc: Likewise. 2924 * testsuite/ext/pb_ds/regression/list_update_map_rand.cc: Likewise. 2925 * testsuite/ext/pb_ds/regression/list_update_set_rand.cc: Likewise. 2926 * testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Likewise. 2927 * testsuite/ext/pb_ds/regression/tree_map_rand.cc: Likewise. 2928 * testsuite/ext/pb_ds/regression/tree_set_rand.cc: Likewise. 2929 * testsuite/ext/pb_ds/regression/trie_map_rand.cc: Likewise. 2930 * testsuite/ext/pb_ds/regression/trie_set_rand.cc: Likewise. 2931 * testsuite/ext/pool_allocator/overaligned.cc: Likewise. 2932 * testsuite/ext/throw_allocator/check_allocate_max_size.cc: Likewise. 2933 * testsuite/ext/throw_allocator/check_deallocate_null.cc: Likewise. 2934 * testsuite/ext/throw_allocator/check_delete.cc: Likewise. 2935 * testsuite/ext/throw_allocator/check_new.cc: Likewise. 2936 * testsuite/ext/throw_allocator/deallocate_global.cc: Likewise. 2937 * testsuite/ext/throw_allocator/deallocate_local.cc: Likewise. 2938 * testsuite/ext/throw_allocator/explicit_instantiation.cc: Likewise. 2939 * testsuite/ext/throw_allocator/variadic_construct.cc: Likewise. 2940 * testsuite/tr1/8_c_compatibility/cinttypes/functions.cc: Likewise. 2941 2942 * testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise. 2943 * testsuite/30_threads/recursive_mutex/cons/assign_neg.cc: Likewise. 2944 * testsuite/30_threads/recursive_mutex/cons/copy_neg.cc: Likewise. 2945 * testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc: 2946 Likewise. 2947 * testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise. 2948 * testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise. 2949 * testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc: 2950 Likewise. 2951 * testsuite/30_threads/recursive_mutex/requirements/standard_layout.cc: 2952 Likewise. 2953 * testsuite/30_threads/recursive_mutex/requirements/typedefs.cc: 2954 Likewise. 2955 * testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise. 2956 * testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise. 2957 * testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise. 2958 * testsuite/30_threads/recursive_mutex/unlock/2.cc: Likewise. 2959 * testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise. 2960 * testsuite/30_threads/recursive_timed_mutex/cons/assign_neg.cc: 2961 Likewise. 2962 * testsuite/30_threads/recursive_timed_mutex/cons/copy_neg.cc: 2963 Likewise. 2964 * testsuite/30_threads/recursive_timed_mutex/dest/ 2965 destructor_locked.cc: Likewise. 2966 * testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise. 2967 * testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise. 2968 * testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc: 2969 Likewise. 2970 * testsuite/30_threads/recursive_timed_mutex/native_handle/ 2971 typesizes.cc: Likewise. 2972 * testsuite/30_threads/recursive_timed_mutex/requirements/typedefs.cc: 2973 Likewise. 2974 * testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: 2975 Likewise. 2976 * testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: 2977 Likewise. 2978 * testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc: 2979 Likewise. 2980 * testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc: 2981 Likewise. 2982 * testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc: 2983 Likewise. 2984 * testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc: 2985 Likewise. 2986 * testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc: 2987 Likewise. 2988 * testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise. 2989 * testsuite/30_threads/recursive_timed_mutex/unlock/2.cc: Likewise. 2990 * testsuite/30_threads/scoped_lock/cons/1.cc: Likewise. 2991 * testsuite/30_threads/scoped_lock/requirements/ 2992 explicit_instantiation.cc: Likewise. 2993 * testsuite/30_threads/scoped_lock/requirements/typedefs.cc: Likewise. 2994 * testsuite/30_threads/shared_future/cons/assign.cc: Likewise. 2995 * testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise. 2996 * testsuite/30_threads/shared_future/cons/copy.cc: Likewise. 2997 * testsuite/30_threads/shared_future/cons/default.cc: Likewise. 2998 * testsuite/30_threads/shared_future/cons/move.cc: Likewise. 2999 * testsuite/30_threads/shared_future/cons/move_assign.cc: Likewise. 3000 * testsuite/30_threads/shared_future/members/45133.cc: Likewise. 3001 * testsuite/30_threads/shared_future/members/get.cc: Likewise. 3002 * testsuite/30_threads/shared_future/members/get2.cc: Likewise. 3003 * testsuite/30_threads/shared_future/members/valid.cc: Likewise. 3004 * testsuite/30_threads/shared_future/members/wait.cc: Likewise. 3005 * testsuite/30_threads/shared_future/members/wait_for.cc: Likewise. 3006 * testsuite/30_threads/shared_future/members/wait_until.cc: Likewise. 3007 * testsuite/30_threads/shared_future/requirements/ 3008 explicit_instantiation.cc: Likewise. 3009 * testsuite/30_threads/shared_lock/cons/1.cc: Likewise. 3010 * testsuite/30_threads/shared_lock/cons/2.cc: Likewise. 3011 * testsuite/30_threads/shared_lock/cons/3.cc: Likewise. 3012 * testsuite/30_threads/shared_lock/cons/4.cc: Likewise. 3013 * testsuite/30_threads/shared_lock/cons/5.cc: Likewise. 3014 * testsuite/30_threads/shared_lock/cons/6.cc: Likewise. 3015 * testsuite/30_threads/shared_lock/locking/1.cc: Likewise. 3016 * testsuite/30_threads/shared_lock/locking/2.cc: Likewise. 3017 * testsuite/30_threads/shared_lock/locking/3.cc: Likewise. 3018 * testsuite/30_threads/shared_lock/locking/4.cc: Likewise. 3019 * testsuite/30_threads/shared_lock/modifiers/1.cc: Likewise. 3020 * testsuite/30_threads/shared_lock/requirements/ 3021 explicit_instantiation.cc: Likewise. 3022 * testsuite/30_threads/shared_lock/requirements/typedefs.cc: Likewise. 3023 * testsuite/30_threads/shared_mutex/cons/1.cc: Likewise. 3024 * testsuite/30_threads/shared_mutex/cons/assign_neg.cc: Likewise. 3025 * testsuite/30_threads/shared_mutex/cons/copy_neg.cc: Likewise. 3026 * testsuite/30_threads/shared_mutex/requirements/standard_layout.cc: 3027 Likewise. 3028 * testsuite/30_threads/shared_mutex/try_lock/1.cc: Likewise. 3029 * testsuite/30_threads/shared_mutex/try_lock/2.cc: Likewise. 3030 * testsuite/30_threads/shared_mutex/unlock/1.cc: Likewise. 3031 * testsuite/30_threads/shared_timed_mutex/cons/1.cc: Likewise. 3032 * testsuite/30_threads/shared_timed_mutex/cons/assign_neg.cc: Likewise. 3033 * testsuite/30_threads/shared_timed_mutex/cons/copy_neg.cc: Likewise. 3034 * testsuite/30_threads/shared_timed_mutex/requirements/ 3035 standard_layout.cc: Likewise. 3036 * testsuite/30_threads/shared_timed_mutex/try_lock/1.cc: Likewise. 3037 * testsuite/30_threads/shared_timed_mutex/try_lock/2.cc: Likewise. 3038 * testsuite/30_threads/shared_timed_mutex/try_lock/3.cc: Likewise. 3039 * testsuite/30_threads/shared_timed_mutex/unlock/1.cc: Likewise. 3040 * testsuite/30_threads/this_thread/1.cc: Likewise. 3041 * testsuite/30_threads/this_thread/2.cc: Likewise. 3042 * testsuite/30_threads/this_thread/3.cc: Likewise. 3043 * testsuite/30_threads/this_thread/4.cc: Likewise. 3044 * testsuite/30_threads/this_thread/58038.cc: Likewise. 3045 * testsuite/30_threads/thread/70503.cc: Likewise. 3046 * testsuite/30_threads/thread/84532.cc: Likewise. 3047 * testsuite/30_threads/thread/adl.cc: Likewise. 3048 * testsuite/30_threads/thread/cons/1.cc: Likewise. 3049 * testsuite/30_threads/thread/cons/2.cc: Likewise. 3050 * testsuite/30_threads/thread/cons/3.cc: Likewise. 3051 * testsuite/30_threads/thread/cons/4.cc: Likewise. 3052 * testsuite/30_threads/thread/cons/49668.cc: Likewise. 3053 * testsuite/30_threads/thread/cons/5.cc: Likewise. 3054 * testsuite/30_threads/thread/cons/6.cc: Likewise. 3055 * testsuite/30_threads/thread/cons/7.cc: Likewise. 3056 * testsuite/30_threads/thread/cons/8.cc: Likewise. 3057 * testsuite/30_threads/thread/cons/84535.cc: Likewise. 3058 * testsuite/30_threads/thread/cons/9.cc: Likewise. 3059 * testsuite/30_threads/thread/cons/assign_neg.cc: Likewise. 3060 * testsuite/30_threads/thread/cons/copy_neg.cc: Likewise. 3061 * testsuite/30_threads/thread/cons/lwg2097.cc: Likewise. 3062 * testsuite/30_threads/thread/cons/moveable.cc: Likewise. 3063 * testsuite/30_threads/thread/cons/terminate.cc: Likewise. 3064 * testsuite/30_threads/thread/id/operators.cc: Likewise. 3065 * testsuite/30_threads/thread/members/1.cc: Likewise. 3066 * testsuite/30_threads/thread/members/2.cc: Likewise. 3067 * testsuite/30_threads/thread/members/3.cc: Likewise. 3068 * testsuite/30_threads/thread/members/4.cc: Likewise. 3069 * testsuite/30_threads/thread/members/5.cc: Likewise. 3070 * testsuite/30_threads/thread/members/hardware_concurrency.cc: 3071 Likewise. 3072 * testsuite/30_threads/thread/native_handle/cancel.cc: Likewise. 3073 * testsuite/30_threads/thread/swap/1.cc: Likewise. 3074 * testsuite/30_threads/timed_mutex/cons/1.cc: Likewise. 3075 * testsuite/30_threads/timed_mutex/cons/assign_neg.cc: Likewise. 3076 * testsuite/30_threads/timed_mutex/cons/copy_neg.cc: Likewise. 3077 * testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise. 3078 * testsuite/30_threads/timed_mutex/lock/1.cc: Likewise. 3079 * testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise. 3080 * testsuite/30_threads/timed_mutex/native_handle/typesizes.cc: 3081 Likewise. 3082 * testsuite/30_threads/timed_mutex/requirements/ 3083 standard_layout.cc: Likewise. 3084 * testsuite/30_threads/timed_mutex/requirements/typedefs.cc: Likewise. 3085 * testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise. 3086 * testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise. 3087 * testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise. 3088 * testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise. 3089 * testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise. 3090 * testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise. 3091 * testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise. 3092 * testsuite/30_threads/timed_mutex/try_lock_until/57641.cc: Likewise. 3093 * testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise. 3094 * testsuite/30_threads/timed_mutex/unlock/2.cc: Likewise. 3095 * testsuite/30_threads/try_lock/1.cc: Likewise. 3096 * testsuite/30_threads/try_lock/2.cc: Likewise. 3097 * testsuite/30_threads/try_lock/3.cc: Likewise. 3098 * testsuite/30_threads/try_lock/4.cc: Likewise. 3099 * testsuite/30_threads/unique_lock/cons/1.cc: Likewise. 3100 * testsuite/30_threads/unique_lock/cons/2.cc: Likewise. 3101 * testsuite/30_threads/unique_lock/cons/3.cc: Likewise. 3102 * testsuite/30_threads/unique_lock/cons/4.cc: Likewise. 3103 * testsuite/30_threads/unique_lock/cons/5.cc: Likewise. 3104 * testsuite/30_threads/unique_lock/cons/6.cc: Likewise. 3105 * testsuite/30_threads/unique_lock/locking/1.cc: Likewise. 3106 * testsuite/30_threads/unique_lock/locking/2.cc: Likewise. 3107 * testsuite/30_threads/unique_lock/locking/3.cc: Likewise. 3108 * testsuite/30_threads/unique_lock/locking/4.cc: Likewise. 3109 * testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise. 3110 * testsuite/30_threads/unique_lock/requirements/ 3111 explicit_instantiation.cc: Likewise. 3112 * testsuite/30_threads/unique_lock/requirements/typedefs.cc: Likewise. 3113 3114 * testsuite/30_threads/async/42819.cc: Remove dg-require-cstdint 3115 directive. 3116 * testsuite/30_threads/async/49668.cc: Likewise. 3117 * testsuite/30_threads/async/54297.cc: Likewise. 3118 * testsuite/30_threads/async/84532.cc: Likewise. 3119 * testsuite/30_threads/async/any.cc: Likewise. 3120 * testsuite/30_threads/async/async.cc: Likewise. 3121 * testsuite/30_threads/async/except.cc: Likewise. 3122 * testsuite/30_threads/async/forced_unwind.cc: Likewise. 3123 * testsuite/30_threads/async/launch.cc: Likewise. 3124 * testsuite/30_threads/async/lwg2021.cc: Likewise. 3125 * testsuite/30_threads/async/sync.cc: Likewise. 3126 * testsuite/30_threads/call_once/39909.cc: Likewise. 3127 * testsuite/30_threads/call_once/49668.cc: Likewise. 3128 * testsuite/30_threads/call_once/60497.cc: Likewise. 3129 * testsuite/30_threads/call_once/call_once1.cc: Likewise. 3130 * testsuite/30_threads/call_once/constexpr.cc: Likewise. 3131 * testsuite/30_threads/call_once/dr2442.cc: Likewise. 3132 * testsuite/30_threads/call_once/once_flag.cc: Likewise. 3133 * testsuite/30_threads/condition_variable/54185.cc: Likewise. 3134 * testsuite/30_threads/condition_variable/cons/1.cc: Likewise. 3135 * testsuite/30_threads/condition_variable/cons/assign_neg.cc: 3136 Likewise. 3137 * testsuite/30_threads/condition_variable/cons/copy_neg.cc: Likewise. 3138 * testsuite/30_threads/condition_variable/members/1.cc: Likewise. 3139 * testsuite/30_threads/condition_variable/members/2.cc: Likewise. 3140 * testsuite/30_threads/condition_variable/members/3.cc: Likewise. 3141 * testsuite/30_threads/condition_variable/members/53841.cc: Likewise. 3142 * testsuite/30_threads/condition_variable/members/68519.cc: Likewise. 3143 * testsuite/30_threads/condition_variable/native_handle/typesizes.cc: 3144 Likewise. 3145 * testsuite/30_threads/condition_variable/requirements/ 3146 standard_layout.cc: Likewise. 3147 * testsuite/30_threads/condition_variable/requirements/typedefs.cc: 3148 * Likewise. 3149 * testsuite/30_threads/condition_variable_any/50862.cc: Likewise. 3150 * testsuite/30_threads/condition_variable_any/53830.cc: Likewise. 3151 * testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise. 3152 * testsuite/30_threads/condition_variable_any/cons/assign_neg.cc: 3153 Likewise. 3154 * testsuite/30_threads/condition_variable_any/cons/copy_neg.cc: 3155 Likewise. 3156 * testsuite/30_threads/condition_variable_any/members/1.cc: Likewise. 3157 * testsuite/30_threads/condition_variable_any/members/2.cc: Likewise. 3158 * testsuite/30_threads/future/cons/assign_neg.cc: Likewise. 3159 * testsuite/30_threads/future/cons/constexpr.cc: Likewise. 3160 * testsuite/30_threads/future/cons/copy_neg.cc: Likewise. 3161 * testsuite/30_threads/future/cons/default.cc: Likewise. 3162 * testsuite/30_threads/future/cons/move.cc: Likewise. 3163 * testsuite/30_threads/future/cons/move_assign.cc: Likewise. 3164 * testsuite/30_threads/future/members/45133.cc: Likewise. 3165 * testsuite/30_threads/future/members/get.cc: Likewise. 3166 * testsuite/30_threads/future/members/get2.cc: Likewise. 3167 * testsuite/30_threads/future/members/share.cc: Likewise. 3168 * testsuite/30_threads/future/members/valid.cc: Likewise. 3169 * testsuite/30_threads/future/members/wait.cc: Likewise. 3170 * testsuite/30_threads/future/members/wait_for.cc: Likewise. 3171 * testsuite/30_threads/future/members/wait_until.cc: Likewise. 3172 * testsuite/30_threads/future/requirements/explicit_instantiation.cc: 3173 Likewise. 3174 * testsuite/30_threads/headers/condition_variable/types_std_c++0x.cc: 3175 Likewise. 3176 * testsuite/30_threads/headers/future/types_std_c++0x.cc: Likewise. 3177 * testsuite/30_threads/headers/mutex/types_std_c++0x.cc: Likewise. 3178 * testsuite/30_threads/headers/thread/std_c++0x_neg.cc: Likewise. 3179 * testsuite/30_threads/headers/thread/types_std_c++0x.cc: Likewise. 3180 * testsuite/30_threads/lock/1.cc: Likewise. 3181 * testsuite/30_threads/lock/2.cc: Likewise. 3182 * testsuite/30_threads/lock/3.cc: Likewise. 3183 * testsuite/30_threads/lock/4.cc: Likewise. 3184 * testsuite/30_threads/lock_guard/cons/1.cc: Likewise. 3185 * testsuite/30_threads/lock_guard/requirements/ 3186 explicit_instantiation.cc: Likewise. 3187 * testsuite/30_threads/lock_guard/requirements/typedefs.cc: Likewise. 3188 * testsuite/30_threads/mutex/cons/1.cc: Likewise. 3189 * testsuite/30_threads/mutex/cons/assign_neg.cc: Likewise. 3190 * testsuite/30_threads/mutex/cons/constexpr.cc: Likewise. 3191 * testsuite/30_threads/mutex/cons/copy_neg.cc: Likewise. 3192 * testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise. 3193 * testsuite/30_threads/mutex/lock/1.cc: Likewise. 3194 * testsuite/30_threads/mutex/native_handle/1.cc: Likewise. 3195 * testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise. 3196 * testsuite/30_threads/mutex/requirements/standard_layout.cc:: 3197 Likewise. 3198 * testsuite/30_threads/mutex/requirements/typedefs.cc: Likewise. 3199 * testsuite/30_threads/mutex/try_lock/1.cc: Likewise. 3200 * testsuite/30_threads/mutex/try_lock/2.cc: Likewise. 3201 * testsuite/30_threads/mutex/unlock/1.cc: Likewise. 3202 * testsuite/30_threads/mutex/unlock/2.cc: Likewise. 3203 * testsuite/30_threads/once_flag/cons/constexpr.cc: Likewise. 3204 * testsuite/30_threads/packaged_task/49668.cc: Likewise. 3205 * testsuite/30_threads/packaged_task/60564.cc: Likewise. 3206 * testsuite/30_threads/packaged_task/cons/1.cc: Likewise. 3207 * testsuite/30_threads/packaged_task/cons/2.cc: Likewise. 3208 * testsuite/30_threads/packaged_task/cons/3.cc: Likewise. 3209 * testsuite/30_threads/packaged_task/cons/56492.cc: Likewise. 3210 * testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise. 3211 * testsuite/30_threads/packaged_task/cons/alloc2.cc: Likewise. 3212 * testsuite/30_threads/packaged_task/cons/alloc_min.cc: Likewise. 3213 * testsuite/30_threads/packaged_task/cons/assign_neg.cc: Likewise. 3214 * testsuite/30_threads/packaged_task/cons/copy_neg.cc: Likewise. 3215 * testsuite/30_threads/packaged_task/cons/move.cc: Likewise. 3216 * testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise. 3217 * testsuite/30_threads/packaged_task/members/at_thread_exit.cc: 3218 Likewise. 3219 * testsuite/30_threads/packaged_task/members/get_future.cc: Likewise. 3220 * testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise. 3221 * testsuite/30_threads/packaged_task/members/invoke.cc: Likewise. 3222 * testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise. 3223 * testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise. 3224 * testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise. 3225 * testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise. 3226 * testsuite/30_threads/packaged_task/members/reset.cc: Likewise. 3227 * testsuite/30_threads/packaged_task/members/reset2.cc: Likewise. 3228 * testsuite/30_threads/packaged_task/members/swap.cc: Likewise. 3229 * testsuite/30_threads/packaged_task/members/valid.cc: Likewise. 3230 * testsuite/30_threads/packaged_task/requirements/ 3231 explicit_instantiation.cc: Likewise. 3232 * testsuite/30_threads/packaged_task/uses_allocator.cc: Likewise. 3233 * testsuite/30_threads/promise/60966.cc: Likewise. 3234 * testsuite/30_threads/promise/69106.cc: Likewise. 3235 * testsuite/30_threads/promise/cons/1.cc: Likewise. 3236 * testsuite/30_threads/promise/cons/alloc.cc: Likewise. 3237 * testsuite/30_threads/promise/cons/alloc2.cc: Likewise. 3238 * testsuite/30_threads/promise/cons/alloc_min.cc: Likewise. 3239 * testsuite/30_threads/promise/cons/assign_neg.cc: Likewise. 3240 * testsuite/30_threads/promise/cons/copy_neg.cc: Likewise. 3241 * testsuite/30_threads/promise/cons/move.cc: Likewise. 3242 * testsuite/30_threads/promise/cons/move_assign.cc: Likewise. 3243 * testsuite/30_threads/promise/members/at_thread_exit.cc: Likewise. 3244 * testsuite/30_threads/promise/members/at_thread_exit2.cc: Likewise. 3245 * testsuite/30_threads/promise/members/get_future.cc: Likewise. 3246 * testsuite/30_threads/promise/members/get_future2.cc: Likewise. 3247 * testsuite/30_threads/promise/members/set_exception.cc: Likewise. 3248 * testsuite/30_threads/promise/members/set_exception2.cc: Likewise. 3249 * testsuite/30_threads/promise/members/set_value.cc: Likewise. 3250 * testsuite/30_threads/promise/members/set_value2.cc: Likewise. 3251 * testsuite/30_threads/promise/members/set_value3.cc: Likewise. 3252 * testsuite/30_threads/promise/members/swap.cc: Likewise. 3253 * testsuite/30_threads/promise/requirements/explicit_instantiation.cc: 3254 * Likewise. 3255 * testsuite/30_threads/promise/uses_allocator.cc: Likewise. 3256 3257 * testsuite/18_support/numeric_limits/char16_32_t.cc: Qualify names 3258 from namespace std. 3259 * testsuite/20_util/align/2.cc: Remove dg-require-cstdint directive. 3260 * testsuite/20_util/duration/arithmetic/1.cc: Likewise. 3261 * testsuite/20_util/duration/arithmetic/2.cc: Likewise. 3262 * testsuite/20_util/duration/arithmetic/dr2020.cc: Likewise. 3263 * testsuite/20_util/duration/arithmetic/dr934-1.cc: Likewise. 3264 * testsuite/20_util/duration/arithmetic/dr934-2.cc: Likewise. 3265 * testsuite/20_util/duration/comparison_operators/1.cc: Likewise. 3266 * testsuite/20_util/duration/cons/1.cc: Likewise. 3267 * testsuite/20_util/duration/cons/1_neg.cc: Likewise. 3268 * testsuite/20_util/duration/cons/2.cc: Likewise. 3269 * testsuite/20_util/duration/cons/54025.cc: Likewise. 3270 * testsuite/20_util/duration/cons/dr974_neg.cc: Likewise. 3271 * testsuite/20_util/duration/requirements/explicit_instantiation/ 3272 explicit_instantiation.cc: Likewise. 3273 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise. 3274 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise. 3275 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise. 3276 * testsuite/20_util/make_signed/requirements/typedefs-4.cc: Likewise. 3277 * testsuite/20_util/ratio/comparisons/comp1.cc: Likewise. 3278 * testsuite/20_util/ratio/comparisons/comp2.cc: Likewise. 3279 * testsuite/20_util/ratio/comparisons/comp3.cc: Likewise. 3280 * testsuite/20_util/ratio/cons/cons1.cc: Likewise. 3281 * testsuite/20_util/ratio/operations/45866.cc: Likewise. 3282 * testsuite/20_util/ratio/operations/47913.cc: Likewise. 3283 * testsuite/20_util/ratio/operations/53840.cc: Likewise. 3284 * testsuite/20_util/ratio/operations/ops1.cc: Likewise. 3285 * testsuite/20_util/shared_ptr/atomic/3.cc: Likewise. 3286 * testsuite/20_util/system_clock/1.cc: Likewise. 3287 * testsuite/20_util/time_point/1.cc: Likewise. 3288 * testsuite/20_util/time_point/2.cc: Likewise. 3289 * testsuite/20_util/time_point/3.cc: Likewise. 3290 * testsuite/20_util/time_point/requirements/explicit_instantiation/ 3291 explicit_instantiation.cc: Likewise. 3292 * testsuite/21_strings/basic_string/requirements/ 3293 explicit_instantiation/char16_t/1.cc: Likewise. 3294 * testsuite/21_strings/basic_string/requirements/ 3295 explicit_instantiation/char32_t/1.cc: Likewise. 3296 * testsuite/21_strings/basic_string_view/requirements/ 3297 explicit_instantiation/char16_t/1.cc: Likewise. 3298 * testsuite/21_strings/basic_string_view/requirements/ 3299 explicit_instantiation/char32_t/1.cc: Likewise. 3300 * testsuite/21_strings/char_traits/requirements/ 3301 explicit_instantiation/char16_t/1.cc: Likewise. 3302 * testsuite/21_strings/char_traits/requirements/ 3303 explicit_instantiation/char32_t/1.cc: Likewise. 3304 * testsuite/21_strings/headers/string/types_std_c++0x.cc: Likewise. 3305 * testsuite/22_locale/codecvt/char16_t.cc: Likewise. 3306 * testsuite/22_locale/codecvt/char32_t.cc: Likewise. 3307 * testsuite/22_locale/codecvt/codecvt_utf16/requirements/1.cc: 3308 Likewise. 3309 * testsuite/22_locale/codecvt/codecvt_utf8/requirements/1.cc: 3310 Likewise. 3311 * testsuite/22_locale/codecvt/codecvt_utf8_utf16/requirements/1.cc: 3312 Likewise. 3313 * testsuite/22_locale/codecvt/utf8.cc: Likewise. 3314 * testsuite/23_containers/vector/bool/72847.cc: Likewise. 3315 * testsuite/23_containers/vector/debug/multithreaded_swap.cc: 3316 Likewise. 3317 * testsuite/experimental/string_view/requirements/ 3318 explicit_instantiation/char16_t/1.cc: Likewise. 3319 * testsuite/experimental/string_view/requirements/ 3320 explicit_instantiation/char32_t/1.cc: Likewise. 3321 * testsuite/ext/vstring/requirements/explicit_instantiation/char16_t/ 3322 1.cc: Likewise. 3323 * testsuite/ext/vstring/requirements/explicit_instantiation/char32_t/ 3324 1.cc: Likewise. 3325 3326 * include/ext/throw_allocator.h [!_GLIBCXX_USE_C99_STDINT_TR1] 3327 (random_condition, throw_value_random, throw_allocator_random) 3328 (std::hash<throw_value_random>): Do not define when <tr1/random> is 3329 not usable. 3330 * src/c++11/cow-stdexcept.cc [!_GLIBCXX_USE_C99_STDINT_TR1]: Do not 3331 define transactional memory support when <stdint.h> is not usable. 3332 3333 * include/bits/hashtable_policy.h (__detail::__clp2): Use faster 3334 implementation that doesn't depend on <stdint.h> types. 3335 * include/std/memory (align) [!_GLIBCXX_USE_C99_STDINT_TR1]: Use 3336 std::size_t when std::uintptr_t is not usable. 3337 [!_GLIBCXX_USE_C99_STDINT_TR1] (pointer_safety, declare_reachable) 3338 (undeclare_reachable, declare_no_pointers, undeclare_no_pointers): 3339 Define independent of _GLIBCXX_USE_C99_STDINT_TR1. 3340 3341 * include/bits/basic_string.h [!_GLIBCXX_USE_C99_STDINT_TR1] 3342 (hash<u16string>, hash<u32string>): Remove dependency on 3343 _GLIBCXX_USE_C99_STDINT_TR1. 3344 * include/bits/char_traits.h [!_GLIBCXX_USE_C99_STDINT_TR1] 3345 (char_traits<char16_t>, char_traits<char32_t>): Remove dependency on 3346 _GLIBCXX_USE_C99_STDINT_TR1. Use __UINT_LEAST16_TYPE__ and 3347 __UINT_LEAST32_TYPE__ or make_unsigned when <stdint.h> is not usable. 3348 * include/bits/codecvt.h [!_GLIBCXX_USE_C99_STDINT_TR1] 3349 (codecvt<char16_t, char, mbstate_t>) 3350 (codecvt<char32_t, char, mbstate_t>) 3351 (codecvt_byname<char16_t, char, mbstate_t>) 3352 (codecvt_byname<char32_t, char, mbstate_t>): Remove dependency 3353 on _GLIBCXX_USE_C99_STDINT_TR1. 3354 * include/bits/locale_facets.h [!_GLIBCXX_USE_C99_STDINT_TR1] 3355 (_GLIBCXX_NUM_UNICODE_FACETS): Likewise. 3356 * include/bits/stringfwd.h [!_GLIBCXX_USE_C99_STDINT_TR1] 3357 (char_traits<char16_t>, char_traits<char32_t>) 3358 (basic_string<char16_t>, basic_string<char32_t>): Remove dependency 3359 on _GLIBCXX_USE_C99_STDINT_TR1. 3360 * include/experimental/string_view [!_GLIBCXX_USE_C99_STDINT_TR1] 3361 (u16string_view, u32string_view, hash<u16string_view>) 3362 (hash<u32string_view>, operator""sv(const char16_t, size_t)) 3363 (operator""sv(const char32_t, size_t)): Likewise. 3364 * include/ext/vstring.h [!_GLIBCXX_USE_C99_STDINT_TR1] 3365 (hash<__u16vstring>, hash<__u32vstring>): Likewise. 3366 * include/ext/vstring_fwd.h [!_GLIBCXX_USE_C99_STDINT_TR1] 3367 (__u16vstring, __u16sso_string, __u16rc_string, __u32vstring) 3368 (__u32sso_string, __u32rc_string): Likewise. 3369 * include/std/codecvt [!_GLIBCXX_USE_C99_STDINT_TR1] (codecvt_mode) 3370 (codecvt_utf8, codecvt_utf16, codecvt_utf8_utf16): Likewise. 3371 * include/std/string_view [!_GLIBCXX_USE_C99_STDINT_TR1] 3372 (u16string_view, u32string_view, hash<u16string_view>) 3373 (hash<u32string_view>, operator""sv(const char16_t, size_t)) 3374 (operator""sv(const char32_t, size_t)): Likewise. 3375 * src/c++11/codecvt.cc: Likewise. 3376 * src/c++98/locale_init.cc: Likewise. 3377 * src/c++98/localename.cc: Likewise. 3378 3379 * include/bits/atomic_futex.h [!_GLIBCXX_USE_C99_STDINT_TR1] 3380 (__atomic_futex_unsigned_base): Remove dependency on 3381 _GLIBCXX_USE_C99_STDINT_TR1 macro. 3382 * include/bits/unique_lock.h [!_GLIBCXX_USE_C99_STDINT_TR1] 3383 (unique_lock): Remove dependency on _GLIBCXX_USE_C99_STDINT_TR1. 3384 * include/c_global/cstdint [!_GLIBCXX_USE_C99_STDINT_TR1] (intmax_t) 3385 (uintmax_t): Define using predefined macros. 3386 * include/std/chrono [!_GLIBCXX_USE_C99_STDINT_TR1] (duration) 3387 (time_point, system_clock, high_resolution_clock, steady_clock): Remove 3388 dependency on _GLIBCXX_USE_C99_STDINT_TR1 macro. 3389 (nanoseconds, microseconds, milliseconds, seconds, minutes, hours): 3390 [!_GLIBCXX_USE_C99_STDINT_TR1]: Define using __INT64_TYPE__ or 3391 long long when <stdint.h> is not usable. 3392 * include/std/condition_variable [!_GLIBCXX_USE_C99_STDINT_TR1] 3393 (condition_variable, condition_variable_any): Remove dependency on 3394 _GLIBCXX_USE_C99_STDINT_TR1. 3395 * include/std/future [!_GLIBCXX_USE_C99_STDINT_TR1] (future, promise) 3396 (packaged_task, async): Likewise. 3397 * include/std/mutex [!_GLIBCXX_USE_C99_STDINT_TR1] (recursive_mutex) 3398 (timed_mutex, recursive_timed_mutex, try_lock, lock, scoped_lock) 3399 (once_flag, call_once): Likewise. 3400 * include/std/ratio [!_GLIBCXX_USE_C99_STDINT_TR1] (ratio): Likewise. 3401 * include/std/shared_mutex [!_GLIBCXX_USE_C99_STDINT_TR1] 3402 (shared_mutex, shared_timed_mutex, shared_lock): Likewise. 3403 * include/std/thread [!_GLIBCXX_USE_C99_STDINT_TR1] (thread) 3404 (this_thread::get_id, this_thread::yield, this_thread::sleep_for) 3405 (this_thread::sleep_until): Likewise. 3406 * src/c++11/chrono.cc: Remove dependency on 3407 _GLIBCXX_USE_C99_STDINT_TR1 macro. 3408 * src/c++11/condition_variable.cc: Likewise. 3409 * src/c++11/futex.cc: Likewise. 3410 * src/c++11/future.cc: Likewise. 3411 * src/c++11/mutex.cc: Likewise. 3412 * src/c++11/thread.cc: Likewise. 3413 * testsuite/20_util/duration/literals/range_neg.cc: Adjust dg-error. 3414 * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise. 3415 * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise. 3416 * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise. 3417 * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Likewise. 3418 * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise. 3419 34202018-07-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 3421 3422 PR libstdc++/77691 3423 * testsuite/experimental/memory_resource/new_delete_resource.cc: 3424 xfail execution on 32-bit Solaris/x86. 3425 34262018-07-26 Marc Glisse <marc.glisse@inria.fr> 3427 3428 * include/bits/stl_vector.h (_Vector_impl_data::_M_copy_data): New. 3429 (_Vector_impl_data::_M_swap_data): Use _M_copy_data. 3430 (vector::_M_move_assign): Reorder the swaps. 3431 34322018-07-26 Jonathan Wakely <jwakely@redhat.com> 3433 3434 PR libstdc++/86676 3435 * testsuite/20_util/monotonic_buffer_resource/release.cc: Request 3436 same alignment for post-release allocation. 3437 34382018-07-25 Jonathan Wakely <jwakely@redhat.com> 3439 3440 PR libstdc++/86676 3441 * testsuite/20_util/monotonic_buffer_resource/release.cc: Allow for 3442 buffer being misaligned and so returned pointer not being at start. 3443 3444 * include/experimental/memory_resource: Include <cstddef> header. 3445 3446 * acinclude.m4 (glibcxx_SUBDIRS): Add src/c++17. 3447 * src/Makefile.am: Add comment. 3448 * src/c++17/Makefile.in: Regenerate. 3449 3450 * include/Makefile.am: Add new <bits/unique_lock.h> header. 3451 * include/Makefile.in: Regenerate. 3452 * include/bits/std_mutex.h [!_GLIBCXX_USE_C99_STDINT_TR1] (mutex) 3453 (lock_guard): Define independent of _GLIBCXX_USE_C99_STDINT_TR1. 3454 (unique_lock): Move definition to ... 3455 * include/bits/unique_lock.h: New header. 3456 [!_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock): Define unconditionally. 3457 [_GLIBCXX_USE_C99_STDINT_TR1] (unique_lock(mutex_type&, time_point)) 3458 (unique_lock(mutex_type&, duration), unique_lock::try_lock_until) 3459 (unique_lock::try_lock_for): Define only when <chrono> is usable. 3460 * include/std/condition_variable: Include <bits/unique_lock.h>. 3461 * include/std/mutex: Likewise. 3462 34632018-07-24 Jonathan Wakely <jwakely@redhat.com> 3464 3465 * config/abi/pre/gnu.ver: Export new symbols. 3466 * configure: Regenerate. 3467 * include/Makefile.am: Add new <memory_resource> header. 3468 * include/Makefile.in: Regenerate. 3469 * include/precompiled/stdc++.h: Include <memory_resource> for C++17. 3470 * include/std/memory_resource: New header. 3471 (memory_resource, polymorphic_allocator, new_delete_resource) 3472 (null_memory_resource, set_default_resource, get_default_resource) 3473 (pool_options, monotonic_buffer_resource): Define. 3474 * src/Makefile.am: Add c++17 directory. 3475 * src/Makefile.in: Regenerate. 3476 * src/c++11/Makefile.am: Fix comment. 3477 * src/c++17/Makefile.am: Add makefile for new sub-directory. 3478 * src/c++17/Makefile.in: Generate. 3479 * src/c++17/memory_resource.cc: New. 3480 (newdel_res_t, null_res_t, constant_init, newdel_res, null_res) 3481 (default_res, new_delete_resource, null_memory_resource) 3482 (set_default_resource, get_default_resource): Define. 3483 * testsuite/20_util/memory_resource/1.cc: New test. 3484 * testsuite/20_util/memory_resource/2.cc: New test. 3485 * testsuite/20_util/monotonic_buffer_resource/1.cc: New test. 3486 * testsuite/20_util/monotonic_buffer_resource/allocate.cc: New test. 3487 * testsuite/20_util/monotonic_buffer_resource/deallocate.cc: New test. 3488 * testsuite/20_util/monotonic_buffer_resource/release.cc: New test. 3489 * testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc: 3490 New test. 3491 * testsuite/20_util/polymorphic_allocator/1.cc: New test. 3492 * testsuite/20_util/polymorphic_allocator/resource.cc: New test. 3493 * testsuite/20_util/polymorphic_allocator/select.cc: New test. 3494 * testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource): 3495 Define concrete memory resource for testing. 3496 (__gnu_test::default_resource_mgr): Define RAII helper for changing 3497 default resource. 3498 3499 PR libstdc++/86658 3500 * include/bits/stl_algobase.h (__niter_wrap<_Iterator>): Pass unused 3501 parameter by reference, to avoid copying invalid iterators. 3502 * testsuite/25_algorithms/copy/86658.cc: New test. 3503 3504 * include/std/bit (__countl_zero, __countr_zero, __popcount): Use 3505 local variables for number of digits instead of type aliases. 3506 (__log2p1): Remove redundant branch also checked in __countl_zero. 3507 3508 * include/bits/uses_allocator.h (__is_erased_or_convertible): Reorder 3509 conditions. Add comments. 3510 * testsuite/20_util/uses_allocator/69293_neg.cc: Adjust dg-error line. 3511 * testsuite/20_util/uses_allocator/cons_neg.cc: Likewise. 3512 * testsuite/20_util/scoped_allocator/69293_neg.cc: Likewise. 3513 3514 * include/bits/uses_allocator.h (__is_erased_or_convertible): Remove. 3515 (__uses_allocator_helper): Check conditions directly instead of 3516 using __is_erased_or_convertible. 3517 3518 * include/experimental/memory_resource: Adjust comments and 3519 whitespace. 3520 (__resource_adaptor_imp): Add second template parameter for type of 3521 memory resource base class. 3522 (memory_resource): Define default constructor, destructor, copy 3523 constructor and copy assignment operator as defaulted. 3524 3525 PR libstdc++/70966 3526 * include/experimental/memory_resource (__get_default_resource): Use 3527 placement new to create an object with dynamic storage duration. 3528 35292018-07-23 Jonathan Wakely <jwakely@redhat.com> 3530 3531 PR libstdc++/70940 3532 * include/experimental/memory_resource 3533 (__resource_adaptor_common::_AlignMgr::_M_unadjust): Add assertion. 3534 (__resource_adaptor_common::__guaranteed_alignment): New helper to 3535 give maximum alignment an allocator guarantees. Specialize for known 3536 allocators using new and malloc. 3537 (__resource_adaptor_imp::do_allocate): Use __guaranteed_alignment. 3538 (__resource_adaptor_imp::do_deallocate): Likewise. 3539 * testsuite/experimental/memory_resource/new_delete_resource.cc: 3540 Check that new and delete are called with expected sizes. 3541 35422018-07-20 Jonathan Wakely <jwakely@redhat.com> 3543 3544 PR libstdc++/86595 3545 * include/bits/fs_dir.h (directory_entry::refresh(error_code&)): Add 3546 noexcept. 3547 35482018-07-20 Fangrui Song <maskray@google.com> 3549 3550 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Use 3551 _GLIBCXX_VISIBILITY(default). 3552 35532018-07-20 Jonathan Wakely <jwakely@redhat.com> 3554 3555 PR libstdc++/86603 3556 * include/std/version: Move __cpp_lib_list_remove_return_type macro. 3557 35582018-07-19 Jonathan Wakely <jwakely@redhat.com> 3559 3560 * include/std/type_traits (__is_member_object_pointer_helper): Use 3561 __not_<is_function<_Tp>>::type instead of integral_constant. 3562 (__is_member_function_pointer_helper): Likewise for 3563 is_function<_Tp>::type. 3564 (is_compund): Likewise for __not_<is_fundamental<_Tp>>::type. 3565 (__do_is_nt_destructible_impl): Use __bool_constant and reindent. 3566 (is_trivially_constructible): Remove redundant use of 3567 is_constructible. 3568 (__is_trivially_copy_assignable_impl): Remove redundant use of 3569 is_copy_assignable. 3570 (__is_trivially_move_assignable_impl): Remove redundant use of 3571 is_move_assignable. 3572 (is_trivially_destructible): Use __bool_constant. 3573 * testsuite/20_util/is_trivially_assignable/value.cc: Add some more 3574 tests for scalar types. 3575 35762018-07-19 Glen Joseph Fernandes <glenjofe@gmail.com> 3577 3578 * include/bits/stl_algobase.h (__copy_move_a): Used 3579 __is_trivially_copyable. 3580 (__copy_move_backward_a): Likewise. 3581 * testsuite/20_util/specialized_algorithms/uninitialized_copy/1.cc: 3582 New test. 3583 35842018-07-17 Jonathan Wakely <jwakely@redhat.com> 3585 3586 PR libstdc++/86450 3587 * acinclude.m4 (GLIBCXX_CHECK_COMPILER_FEATURES): Don't define WERROR. 3588 (GLIBCXX_EXPORT_FLAGS): Use -Wabi=2 instead of -Wabi. 3589 * configure: Regenerate. 3590 * configure.ac: Change GLIBCXX_ENABLE_WERROR default to "no". 3591 * doc/Makefile.in: Regenerate. 3592 * fragment.am: Set WERROR_FLAG to -Werror instead of $(WERROR). 3593 * include/Makefile.in: Regenerate. 3594 * libsupc++/Makefile.in: Regenerate. 3595 * po/Makefile.in: Regenerate. 3596 * python/Makefile.in: Regenerate. 3597 * src/Makefile.in: Regenerate. 3598 * src/c++11/Makefile.in: Regenerate. 3599 * src/c++11/debug.cc: Use diagnostic pragmas to suppress warnings 3600 from -Wabi=2 that don't affect exported symbols. 3601 * src/c++98/Makefile.in: Regenerate. 3602 * src/filesystem/Makefile.in: Regenerate. 3603 * testsuite/Makefile.in: Regenerate. 3604 3605 * src/c++11/compatibility-thread-c++0x.cc [_GLIBCXX_SHARED] 3606 (_Async_state_common::_M_join): Simplify use of std::call_once and 3607 corresponding explicit instantiation. 3608 (_Maybe_wrap_member_pointer, _Bind_simple, _Bind_simple_helper) 3609 (__bind_simple): Remove definitions and explicit instantiation that 3610 are not required by exported symbols. 3611 36122018-07-16 Jonathan Wakely <jwakely@redhat.com> 3613 3614 * scripts/create_testsuite_files: Fix typo in comment. 3615 3616 PR libstdc++/86537 3617 * include/bits/shared_ptr.h (less<shared_ptr<_Tp>>): Remove 3618 non-standard partial specialization. 3619 * include/bits/shared_ptr_base.h (_Sp_less): Remove class definition. 3620 (less<__shared_ptr<_Tp, _Lp>): Remove partial specialization. 3621 * testsuite/20_util/shared_ptr/comparison/86537.cc: New test. 3622 36232018-07-16 Andreas Krebbel <krebbel@linux.ibm.com> 3624 3625 * config/abi/post/s390-linux-gnu/baseline_symbols.txt: Update. 3626 * config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Update. 3627 * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Update. 3628 36292018-07-06 François Dumont <fdumont@gcc.gnu.org> 3630 3631 * include/debug/functions.h (__gnu_debug::__check_string): Move... 3632 * include/debug/string (__gnu_debug::__check_string): ... here. 3633 (_GLIBCXX_DEBUG_VERIFY_STR_COND_AT): New. 3634 (__glibcxx_check_string_n_constructor): New. 3635 (__gnu_debug::basic_string<>(const _CharT*, size_type, const _Alloc&)): 3636 Use latter. 3637 (__glibcxx_check_string_constructor): New. 3638 (__gnu_debug::basic_string<>(const _CharT*, const _Alloc&)): 3639 Use latter. 3640 * testsuite/21_strings/basic_string/debug/1_neg.cc: New. 3641 * testsuite/21_strings/basic_string/debug/2_neg.cc: New. 3642 36432018-07-06 Jonathan Wakely <jwakely@redhat.com> 3644 3645 PR libstdc++/84928 use std::move in <numeric> algorithms 3646 * include/bits/stl_numeric.h (_GLIBCXX_MOVE_IF_20): Define macro to 3647 conditionally move, according to __cplusplus value. 3648 (accumulate, inner_product, partial_sum, adjacent_difference): Use 3649 _GLIBCXX_MOVE_IF_20. 3650 * testsuite/26_numerics/accumulate/lwg2055.cc: New test. 3651 * testsuite/26_numerics/adjacent_difference/lwg2055.cc: New test. 3652 * testsuite/26_numerics/inner_product/lwg2055.cc: New test. 3653 * testsuite/26_numerics/partial_sum/lwg2055.cc: New test. 3654 3655 * config/abi/pre/gnu.ver: Use wildcards to combine related patterns. 3656 3657 P0935R0 Eradicating unnecessarily explicit default constructors 3658 * config/abi/pre/gnu.ver: Tighten existing patterns and export new 3659 default constructor symbols. 3660 * include/std/sstream (basic_stringbuf, basic_istringstream) 3661 (basic_ostringstream, basic_stringstream): Remove default arguments 3662 from explicit constructors taking ios_base::openmode and add separate 3663 non-explicit default constructors. 3664 * testsuite/27_io/basic_istringstream/cons/default.cc: New. 3665 * testsuite/27_io/basic_ostringstream/cons/default.cc: New. 3666 * testsuite/27_io/basic_stringstream/cons/default.cc: New. 3667 * testsuite/27_io/basic_stringbuf/cons/char/default.cc: New. 3668 * testsuite/27_io/basic_stringbuf/cons/wchar_t/default.cc: New. 3669 3670 * include/std/variant (__accepted_index): Use void_t. 3671 36722018-07-05 Jonathan Wakely <jwakely@redhat.com> 3673 3674 PR libstdc++/85831 3675 * config/abi/pre/gnu.ver: Export move constructors and move 3676 assignment operators for std::logic_error and std::runtime_error. 3677 * include/std/stdexcept: Use _GLIBCXX_NOTHROW instead of 3678 _GLIBCXX_USE_NOEXCEPT. 3679 (logic_error, runtime_error): Declare move constructors and move 3680 assignment operators. When not declared already, define copy 3681 constructors and copy assignment operators as explicit-defaulted. 3682 (domain_error, invalid_argument, length_error, out_of_range) 3683 (overflow_error, underflow_error): Define move constructors and move 3684 assignment operators as explicitly-defaulted. 3685 * libsupc++/exception.h (exception): Likewise. 3686 * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Define 3687 move constructors and move assignment operators as defaulted. 3688 * testsuite/19_diagnostics/stdexcept.cc: Check that constructors and 3689 assignment operators are defined. 3690 3691 * testsuite/21_strings/basic_string/cons/char/deduction.cc: XFAIL for 3692 COW strings. 3693 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: 3694 Likewise. 3695 * testsuite/21_strings/basic_string/requirements/ 3696 explicit_instantiation/debug.cc: Likewise. 3697 3698 PR libstdc++/58265 3699 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI] 3700 (basic_string::assign(basic_string&&)): Add conditional noexcept 3701 depending on the allocator's is_always_equal property (LWG 2063). 3702 * testsuite/21_strings/basic_string/modifiers/assign/char/ 3703 move_assign.cc: Check for non-throwing exception specification. 3704 * testsuite/21_strings/basic_string/modifiers/assign/wchar_t/ 3705 move_assign.cc: Likewise. 3706 3707 PR libstdc++/58265 3708 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI] 3709 [_GLIBCXX_FULLY_DYNAMIC_STRING==0] (basic_string::basic_string()): 3710 Add GLIBCXX_NOEXCEPT. 3711 (basic_string::operator=(basic_string&&)): Add _GLIBCXX_NOEXCEPT_IF 3712 to depend on the allocator's is_always_equal property (LWG 2063). 3713 (basic_string::swap(basic_string&)): Likewise. 3714 * include/bits/basic_string.tcc [!_GLIBCXX_USE_CXX11_ABI] 3715 (basic_string::swap(basic_string&)): Likewise. 3716 * testsuite/21_strings/basic_string/allocator/char/move_assign.cc: 3717 Check is_nothrow_move_assignable. 3718 * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc: 3719 Check is_nothrow_move_assignable. 3720 * testsuite/21_strings/basic_string/cons/char/ 3721 noexcept_move_construct.cc: Likewise. 3722 * testsuite/21_strings/basic_string/cons/wchar_t/ 3723 noexcept_move_construct.cc: Likewise. 3724 37252018-07-04 Jonathan Wakely <jwakely@redhat.com> 3726 3727 P0646R1 Improving the Return Value of Erase-Like Algorithms I 3728 * include/bits/forward_list.h (__cpp_lib_list_remove_return_type): 3729 Define. 3730 (forward_list::__remove_return_type): Define typedef as size_type or 3731 void, according to __cplusplus value. 3732 (_GLIBCXX_FWDLIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or 3733 empty, according to __cplusplus value. 3734 (forward_list::remove, forward_list::unique): Use typedef and macro 3735 to change return type and add abi-tag for C++2a. 3736 (forward_list::remove_if<Pred>, forward_list::unique<BinPred>): Use 3737 typedef to change return type for C++2a. 3738 * include/bits/forward_list.tcc (_GLIBCXX20_ONLY): Define macro. 3739 (forward_list::remove, forward_list::remove_if<Pred>) 3740 (forward_list::unique<BinPred>): Return number of removed elements 3741 for C++2a. 3742 * include/bits/list.tcc (_GLIBCXX20_ONLY): Define macro. 3743 (list::remove, list::unique, list::remove_if<Predicate>) 3744 (list::unique<BinaryPredicate>): Return number of removed elements 3745 for C++2a. 3746 * include/bits/stl_list.h (__cpp_lib_list_remove_return_type): Define. 3747 (list::__remove_return_type): Define typedef as size_type or 3748 void, according to __cplusplus value. 3749 (_GLIBCXX_LIST_REMOVE_RETURN_TYPE_TAG): Define macro as abi-tag or 3750 empty, according to __cplusplus value. 3751 (list::remove, list::unique): Use typedef and macro to change return 3752 type and add abi-tag for C++2a. 3753 (list::remove_if<Predicate>, list::unique<BinaryPredicate>): Use 3754 typedef to change return type for C++2a. 3755 * include/std/version (__cpp_lib_list_remove_return_type): Define. 3756 * testsuite/23_containers/forward_list/operations/ 3757 remove_cxx20_return.cc: New. 3758 * testsuite/23_containers/forward_list/operations/ 3759 unique_cxx20_return.cc: New. 3760 3761 P0458R2 Checking for Existence of an Element in Associative Containers 3762 * include/bits/stl_map.h (map::contains): Add for C++2a. 3763 * include/bits/stl_multimap.h (multimap::contains): Likewise. 3764 * include/bits/stl_multiset.h (multiset::contains): Likewise. 3765 * include/bits/stl_set.h (set::contains): Likewise. 3766 * include/bits/stl_tree.h (__has_is_transparent_t): Define alias. 3767 (_Rb_tree::_M_find_tr, _Rb_tree::_M_count_tr) 3768 (_Rb_tree::_M_lower_bound_tr, _Rb_tree::_M_upper_bound_tr) 3769 (_Rb_tree::_M_equal_range_tr): Use __has_is_transparent_t. 3770 * include/bits/unordered_map.h (unordered_map::contains) 3771 (unordered_multimap::contains): Add for C++2a. 3772 * include/bits/unordered_set.h (unordered_set::contains) 3773 (unordered_multiset::contains): Likewise. 3774 * testsuite/23_containers/map/operations/contains.cc: New. 3775 * testsuite/23_containers/multimap/operations/contains.cc: New. 3776 * testsuite/23_containers/multiset/operations/contains.cc: New. 3777 * testsuite/23_containers/set/operations/contains.cc: New. 3778 * testsuite/23_containers/unordered_map/operations/contains.cc: New. 3779 * testsuite/23_containers/unordered_multimap/operations/contains.cc: 3780 New. 3781 * testsuite/23_containers/unordered_multiset/operations/contains.cc: 3782 New. 3783 * testsuite/23_containers/unordered_set/operations/contains.cc: New. 3784 37852018-07-04 François Dumont <fdumont@gcc.gnu.org> 3786 3787 PR libstdc++/86272 3788 * include/debug/string 3789 (__gnu_debug::basic_string<>::insert<_Ite>(const_iterator, _Ite, _Ite)): 3790 Use __glibcxx_check_insert_range. 3791 * 21_strings/basic_string/cons/char/1.cc: Adapt test to use 3792 __gnu_debug::string when _GLIBCXX_DEBUG. 3793 * 21_strings/basic_string/init-list.cc: Likewise. 3794 * 21_strings/basic_string/modifiers/insert/char/1.cc: Likewise. 3795 * 21_strings/basic_string/modifiers/insert/char/2.cc: Likewise. 3796 * 21_strings/basic_string/modifiers/insert/char/83328.cc: Likewise. 3797 * 21_strings/basic_string/types/1.cc: Likewise. 3798 37992018-07-04 Jonathan Wakely <jwakely@redhat.com> 3800 3801 * testsuite/25_algorithms/make_heap/complexity.cc: Require effective 3802 target for std::random_device. 3803 * testsuite/26_numerics/random/random_device/cons/default.cc: 3804 Likewise. 3805 * testsuite/experimental/algorithm/sample-2.cc: Likewise. 3806 * testsuite/experimental/algorithm/shuffle.cc: Likewise. 3807 * testsuite/experimental/random/randint.cc: Likewise. 3808 * testsuite/lib/libstdc++.exp 3809 (check_effective_target_random_device): New proc. 3810 38112018-07-04 Jonathan Wakely <jwakely@redhat.com> 3812 Jakub Jelinek <jakub@redhat.com> 3813 3814 * include/std/bit (__rotl, __rotr): Fix for non-power of two sizes. 3815 38162018-07-04 Jonathan Wakely <jwakely@redhat.com> 3817 3818 PR libstdc++/86398 3819 * include/std/type_traits (is_trivially_constructible): Check 3820 is_constructible before __is_trivially_constructible. 3821 * testsuite/20_util/is_trivially_constructible/value.cc: Add more 3822 tests, including negative cases. 3823 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Use 3824 zero for dg-error lineno. 3825 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: 3826 Likewise. 3827 3828 * include/std/bit (__rotl, __rotr): Avoid branch. 3829 (_If_is_unsigned_integer): Use remove_cv_t. 3830 * testsuite/26_numerics/bit/bitops.count/popcount.cc: New. 3831 38322018-07-03 Jonathan Wakely <jwakely@redhat.com> 3833 3834 P0556R3 Integral power-of-2 operations, P0553R2 Bit operations 3835 * include/Makefile.am: Add new header. 3836 * include/Makefile.in: Regenerate. 3837 * include/precompiled/stdc++.h: Include new header. 3838 * include/std/bit: New header. 3839 (__rotl, __rotr, __countl_zero, __countl_one, __countr_zero) 3840 (__countr_one, __popcount, __ispow2, __ceil2, __floor2, __log2p1): 3841 Define for C++14. 3842 [!__STRICT_ANSI__] (rotl, rotr, countl_zero, countl_one, countr_zero) 3843 (countr_one, popcount): Define for C++2a. Also overload for std::byte. 3844 (ispow2, ceil2, floor2, log2p1): Define for C++2a. 3845 [!__STRICT_ANSI__] (ispow2, ceil2, floor2, log2p1): Overload for 3846 std::byte. 3847 * testsuite/26_numerics/bit/bit.pow.two/ceil2.cc: New. 3848 * testsuite/26_numerics/bit/bit.pow.two/floor2.cc: New. 3849 * testsuite/26_numerics/bit/bit.pow.two/ispow2.cc: New. 3850 * testsuite/26_numerics/bit/bit.pow.two/log2p1.cc: New. 3851 * testsuite/26_numerics/bit/bitops.rot/rotl.cc: New. 3852 * testsuite/26_numerics/bit/bitops.rot/rotr.cc: New. 3853 * testsuite/26_numerics/bit/bitops.count/countl_one.cc: New. 3854 * testsuite/26_numerics/bit/bitops.count/countl_zero.cc: New. 3855 * testsuite/26_numerics/bit/bitops.count/countr_one.cc: New. 3856 * testsuite/26_numerics/bit/bitops.count/countr_zero.cc: New. 3857 3858 * include/bits/alloc_traits.h: Remove redundant preprocessor 3859 condition. 3860 38612018-07-03 François Dumont <fdumont@gcc.gnu.org> 3862 3863 * include/bits/stl_algobase.h (__niter_wrap): New. 3864 (__copy_move_a2(_II, _II, _OI)): Use latter. 3865 (__copy_move_backward_a2(_BI1, _BI1, _BI2)): Likewise. 3866 (fill_n(_OI, _Size, const _Tp&)): Likewise. 3867 (equal(_II1, _II1, _II2)): Use __glibcxx_requires_can_increment. 3868 * include/debug/stl_iterator.h 3869 (std::__niter_base(const __gnu_cxx::_Safe_iterator< 3870 __gnu_cxx::__normal_iterator<>, _Sequence>&)): New declaration. 3871 * include/debug/vector (__niter_base(const __gnu_cxx::_Safe_iterator< 3872 __gnu_cxx::__normal_iterator<>, _Sequence>&)): New. 3873 38742018-07-02 Jonathan Wakely <jwakely@redhat.com> 3875 3876 P0758R1 Implicit conversion traits 3877 * include/std/type_traits [__cplusplus > 201703] 3878 (__is_convertible_helper::__is_nothrow_type): Define new member. 3879 (__is_convertible_helper<_From, _To, false>::__test_aux1): Add 3880 noexcept. 3881 (__is_convertible_helper<_From, _To, false>::__test_nothrow) 3882 (__is_convertible_helper<_From, _To, false>::__is_nothrow_type): Add 3883 new members. 3884 (is_nothrow_convertible, is_nothrow_convertible_v): Define for C++2a. 3885 * testsuite/20_util/is_nothrow_convertible/value.cc: New. 3886 * testsuite/20_util/is_nothrow_convertible/requirements/ 3887 explicit_instantiation.cc: New. 3888 * testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc: 3889 New. 3890 3891 P0887R1 The identity metafunction 3892 * include/std/type_traits (type_identity, type_identity_t): Define 3893 for C++2a. 3894 * testsuite/20_util/type_identity/requirements/alias_decl.cc: New. 3895 * testsuite/20_util/type_identity/requirements/ 3896 explicit_instantiation.cc:New. 3897 * testsuite/20_util/type_identity/requirements/typedefs.cc: New. 3898 3899 * include/bits/regex.h (sub_match::operator string_type): Call str(). 3900 (sub_match::compare): Use _M_str() instead of str(). 3901 (sub_match::_M_compare): New public function. 3902 (sub_match::__string_view): New helper type. 3903 (sub_match::_M_str): New overloaded functions to avoid creating a 3904 string_type object when not needed. 3905 (operator==, operator!=, operator<, operator>, operator<=, operator>=): 3906 Use sub_match::_M_compare instead of creating string_type objects. 3907 Fix Doxygen comments. 3908 * include/bits/regex_compiler.h (__has_contiguous_iter): Remove. 3909 (__is_contiguous_normal_iter): Rename to __is_contiguous_iter and 3910 simplify. 3911 (__enable_if_contiguous_iter, __disable_if_contiguous_iter): Use 3912 __enable_if_t. 3913 * include/std/type_traits (__enable_if_t): Define for C++11. 3914 * testsuite/28_regex/sub_match/compare.cc: New. 3915 * testsuite/util/testsuite_iterators.h (remove_cv): Add transformation 3916 trait. 3917 (input_iterator_wrapper): Use remove_cv for value_type argument of 3918 std::iterator base class. 3919 39202018-06-29 Jonathan Wakely <jwakely@redhat.com> 3921 3922 * testsuite/20_util/add_rvalue_reference/requirements/alias_decl.cc: 3923 Add whitespace to dejagnu directive. 3924 * testsuite/23_containers/array/element_access/at_neg.cc: Likewise. 3925 39262018-06-27 François Dumont <fdumont@gcc.gnu.org> 3927 3928 * include/bits/stl_vector.h 3929 (struct _Vector_base<>::_Vector_impl_data): New. 3930 (struct _Vector_base<>::_Vector_impl): Inherit from latter. 3931 (_Vector_base<>::_Vector_impl::_M_swap_data): Move... 3932 (_Vector_base<>::_Vector_impl_data::_M_swap_data): ...here. 3933 (_Vector_base<>::_Vector_impl()): Add noexcept qualification. 3934 (_Vector_base<>::_Vector_impl(_Vector_impl&&)): New. 3935 (_Vector_base<>::_Vector_impl(_Tp_alloc_type&&, _Vector_impl&&)): New. 3936 (_Vector_base(const allocator_type&, _Vector_base&&)): New, use latter. 3937 (_Vector_base()): Default. 3938 (_Vector_base(_Vector_base&&)): Default. 3939 (_Vector_base(size_t)) [_GLIBCXX_INLINE_VERSION]: Delete. 3940 (_Vector_base(_Tp_alloc_type&&)) [_GLIBCXX_INLINE_VERSION]: Delete. 3941 (_Vector_base::_M_create_storage(size_t)): Make protected. 3942 (vector()): Default. 3943 (vector(vector&&)): Default. 3944 (vector(vector&&, const allocator_type&, true_type)): New. 3945 (vector(vector&&, const allocator_type&, false_type)): New. 3946 (vector(vector&&, const allocator_type&)): Use latters. 3947 (vector(_InputIte, _InputIte, const allocator_type&)): Call 3948 _M_range_initialize directly. 3949 * include/debug/vector 3950 (vector(vector&&, const allocator_type&)): Add noexcept qualification. 3951 * testsuite/23_containers/vector/allocator/default_init.cc: New. 3952 * testsuite/23_containers/vector/cons/noexcept_move_construct.cc: Add 3953 static assertions. 3954 39552018-06-27 Jonathan Wakely <jwakely@redhat.com> 3956 3957 * include/bits/cpp_type_traits.h [__cplusplus >= 201703] 3958 (__is_byte<byte>): Define specialization for std::byte. 3959 3960 PR libstdc++/86138 3961 * include/bits/basic_string.tcc: [_GLIBCXX_EXTERN_TEMPLATE < 0] 3962 Declare explicit instantiations of COW empty reps and I/O functions. 3963 39642018-06-26 David Edelsohn <dje.gcc@gmail.com> 3965 3966 * testsuite/experimental/algorithm/sample-2.cc: Add TLS DejaGNU 3967 directives. 3968 * testsuite/experimental/algorithm/shuffle.cc: Likewise. 3969 39702018-06-26 Jonathan Wakely <jwakely@redhat.com> 3971 3972 * include/bits/regex.tcc (regex_iterator::operator==): Add missing 3973 noexcept. 3974 39752018-06-25 Jonathan Wakely <jwakely@redhat.com> 3976 3977 PR libstdc++/86112 3978 * python/libstdcxx/v6/printers.py (add_one_template_type_printer): 3979 Replace dict comprehension. 3980 3981 PR libstdc++/81092 3982 * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: Update. 3983 3984 PR libstdc++/86292 3985 * include/bits/stl_vector.h (vector::_M_range_initialize<InputIter>): 3986 Add try-catch block. 3987 * testsuite/23_containers/vector/cons/86292.cc: New. 3988 3989 * doc/xml/manual/status_cxx2017.xml: Document N4531 status. 3990 3991 * include/experimental/algorithm (sample, shuffle): Add new overloads 3992 using per-thread random number engine. 3993 * testsuite/experimental/algorithm/sample.cc: Simpify and reduce 3994 dependencies by using __gnu_test::test_container. 3995 * testsuite/experimental/algorithm/sample-2.cc: New. 3996 * testsuite/experimental/algorithm/shuffle.cc: New. 3997 39982018-06-22 Jonathan Wakely <jwakely@redhat.com> 3999 4000 * config/abi/pre/gnu.ver: Fix __cxx11::basic_string patterns for 4001 different size_t mangling on 32-bit targets. 4002 4003 PR libstdc++/86280 4004 * include/experimental/memory_resource 4005 (__resource_adaptor_common::_AlignMgr::_M_token_size): Use type large 4006 enough for result of left shift. 4007 4008 PR libstdc++/86138 4009 * include/bits/basic_string.tcc: 4010 [__cplusplus > 201402 && !_GLIBCXX_USE_CXX11_ABI] 4011 (basic_string<char>::_Rep::_S_empty_rep_storage) 4012 (basic_string<wchar_t>::_Rep::_S_empty_rep_storage): Add explicit 4013 instantiation declarations. 4014 [__cplusplus > 201402] (operator>>, operator<<, getline): Re-enable 4015 explicit instantiation declarations. 4016 * testsuite/21_strings/basic_string/cons/char/86138.cc: New. 4017 * testsuite/21_strings/basic_string/cons/wchar_t/86138.cc: New. 4018 40192018-06-21 Jonathan Wakely <jwakely@redhat.com> 4020 4021 PR libstdc++/83328 4022 * acinclude.m4 (libtool_VERSION): Bump to 6:26:0. 4023 * config/abi/pre/gnu.ver: Add GLIBCXX_3.4.26 and export new symbol. 4024 * configure: Regenerate. 4025 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI] 4026 (basic_string::insert(const_iterator, initializer_list<C>)): Add. 4027 [_GLIBCXX_USE_CXX11_ABI && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS] 4028 (basic_string::insert(iterator, initializer_list<C>)): Suppress 4029 definition. 4030 * include/debug/string (basic_string::insert(iterator, C)): Change 4031 first parameter to const_iterator. 4032 (basic_string::insert(iterator, size_type, C)): Likewise. Change 4033 return type to iterator. 4034 (basic_string::insert(iterator, InputIterator, InputIterator)): 4035 Likewise. 4036 (basic_string::insert(iterator, initializer_list<C>)): Change first 4037 parameter to const_iterator and return type to iterator. 4038 * src/c++11/string-inst.cc: Extend comment. 4039 * testsuite/21_strings/basic_string/modifiers/insert/char/83328.cc: 4040 New. 4041 * testsuite/21_strings/basic_string/modifiers/insert/wchar_t/83328.cc: 4042 New. 4043 * testsuite/util/testsuite_abi.cc: Add new symbol version. 4044 4045 * config/abi/post/x86_64-linux-gnu/baseline_symbols.txt: Update. 4046 4047 PR libstdc++/70940 4048 * include/experimental/memory_resource 4049 (__resource_adaptor_imp::do_deallocate): Add missing return. 4050 * testsuite/experimental/memory_resource/new_delete_resource.cc: New. 4051 * testsuite/experimental/memory_resource/resource_adaptor.cc: Test 4052 resource_adaptor with std::allocator, __gnu_cxx::new_allocator and 4053 __gnu_cxx::malloc_allocator. 4054 4055 PR libstdc++/70940 4056 * include/experimental/memory_resource (__resource_adaptor_common): 4057 New base class. 4058 (__resource_adaptor_common::_AlignMgr): Helper for obtaining aligned 4059 pointer from unaligned, and vice versa. 4060 (__resource_adaptor_imp::do_allocate): Use _AlignMgr to adjust 4061 allocated pointer to meet alignment request. 4062 (__resource_adaptor_imp::do_deallocate): Use _AlignMgr to retrieve 4063 original pointer for deallocation. 4064 (__resource_adaptor_imp::do_is_equal): Reformat. 4065 (__resource_adaptor_imp::_S_aligned_size): Remove. 4066 (__resource_adaptor_imp::_S_supported): Remove. 4067 (new_delete_resource): Use __gnu_cxx::new_allocator. 4068 * testsuite/experimental/memory_resource/resource_adaptor.cc: Test 4069 extended alignments and use debug_allocator to check for matching 4070 allocate/deallocate pairs. 4071 40722018-06-21 François Dumont <fdumont@gcc.gnu.org> 4073 4074 * include/debug/safe_iterator.h 4075 (_Safe_iterator<>(const _Safe_iterator<_MutableIterator,>& __x)): 4076 Compare __x base iterator with a value-initialized iterator of the 4077 same type. 4078 40792018-06-20 Jonathan Wakely <jwakely@redhat.com> 4080 4081 PR libstdc++/70966 4082 * include/experimental/memory_resource (__resource_adaptor_imp): Add 4083 static assertions to enforce requirements on pointer types. 4084 (__resource_adaptor_imp::get_allocator()): Add noexcept. 4085 (new_delete_resource, null_memory_resource): Return address of an 4086 object with dynamic storage duration. 4087 (__null_memory_resource): Remove. 4088 * testsuite/experimental/memory_resource/70966.cc: New. 4089 4090 * testsuite/20_util/duration/arithmetic/dr3050.cc: Add new test 4091 missed from recent commit. 4092 40932018-06-19 Jonathan Wakely <jwakely@redhat.com> 4094 4095 * include/std/utility: Remove unused <exception> header. 4096 40972018-06-18 Jonathan Wakely <jwakely@redhat.com> 4098 4099 LWG 2975 ensure construct(pair<T,U>*, ...) used to construct pairs 4100 * include/std/scoped_allocator (__not_pair): Define SFINAE helper. 4101 (construct(_Tp*, _Args&&...)): Remove from overload set when _Tp is 4102 a specialization of std::pair. 4103 * testsuite/20_util/scoped_allocator/construct_pair.cc: Ensure 4104 pair elements are constructed correctly. 4105 4106 LWG 2989 hide path iostream operators from normal lookup 4107 * include/bits/fs_path.h (operator<<, operator>>): Define inline as 4108 friends. 4109 * testsuite/27_io/filesystem/path/io/dr2989.cc: New. 4110 4111 LWG 3050 Fix cv-qualification of convertibility constraints 4112 * include/std/chrono (duration, operator*, operator/, operator%): Use 4113 const-qualified type as source type in is_convertible constraints. 4114 * testsuite/20_util/duration/arithmetic/dr3050.cc: New. 4115 * testsuite/20_util/duration/cons/dr3050.cc: New. 4116 * testsuite/20_util/duration/literals/range.cc: Rename to... 4117 * testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust 4118 dg-error lineno. 4119 41202018-06-18 Maya Rashish <coypu@sdf.org> 4121 4122 * crossconfig.m4: Handle OpenBSD just like NetBSD. 4123 * configure: Rebuilt. 4124 41252018-06-18 Jonathan Wakely <jwakely@redhat.com> 4126 4127 P0754R2 <version> header 4128 * include/Makefile.am: Add new header. 4129 * include/Makefile.in: Regenerate. 4130 * include/bits/c++config: Change doxygen comment to suggest <version> 4131 instead of <iosfwd>. 4132 * include/precompiled/stdc++.h: Include <cwchar> and <cwctype> 4133 unconditionally. Add C++17 and C++20 headers. 4134 * include/std/version: New header. 4135 * testsuite/17_intro/headers/c++2017/all_attributes.cc: New. 4136 * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: New. 4137 * testsuite/17_intro/headers/c++2017/all_no_rtti.cc: New. 4138 * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: New. 4139 * testsuite/17_intro/headers/c++2017/operator_names.cc: New. 4140 * testsuite/17_intro/headers/c++2017/stdc++.cc: New. 4141 * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc: 4142 New. 4143 * testsuite/17_intro/headers/c++2020/all_attributes.cc: New. 4144 * testsuite/17_intro/headers/c++2020/all_no_exceptions.cc: New. 4145 * testsuite/17_intro/headers/c++2020/all_no_rtti.cc: New. 4146 * testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc: New. 4147 * testsuite/17_intro/headers/c++2020/operator_names.cc: New. 4148 * testsuite/17_intro/headers/c++2020/stdc++.cc: New. 4149 * testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc: 4150 New. 4151 * testsuite/18_support/headers/version/macros.cc: New. 4152 * testsuite/18_support/headers/version/macros.cc: New. 4153 4154 * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Only check when 4155 enable_libstdcxx_filesystem_ts = yes. Check for link, readlink and 4156 symlink. 4157 * config.h.in: Regenerate. 4158 * configure: Regenerate. 4159 * configure.ac: Remove AC_CHECK_FUNCS for link, readlink and symlink. 4160 4161 LWG 3035. std::allocator's constructors should be constexpr 4162 * include/bits/allocator.h (allocator): Add constexpr to constructors 4163 for C++2a. Replace dynamic exception specifications with NOTHROW 4164 macro. 4165 (allocator, operator==, operator!=): Replace USE_NOEXCEPT macro with 4166 NOTHROW. 4167 * include/bits/c++config (_GLIBCXX20_CONSTEXPR): Define. 4168 * include/ext/malloc_allocator.h (malloc_allocator): Add constexpr 4169 to constructors for C++2a. 4170 * include/ext/new_allocator.h (new_allocator): Likewise. 4171 41722018-06-16 Jonathan Wakely <jwakely@redhat.com> 4173 4174 LWG 3076 basic_string CTAD ambiguity 4175 * doc/xml/manual/intro.xml: Document LWG 3076 change. 4176 * include/bits/basic_string.h 4177 [__cpp_deduction_guides && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS] 4178 (basic_string(const _CharT*, const _Alloc&)): Turn into a function 4179 template constrained by _RequireAllocator. 4180 (basic_string(size_type, _CharT, const _Alloc&)): Likewise. 4181 * src/c++11/string-inst.cc (_GLIBCXX_DEFINING_STRING_INSTANTIATIONS): 4182 Define. 4183 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test 4184 deduction 4185 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: 4186 Likewise. 4187 41882018-06-15 Jonathan Wakely <jwakely@redhat.com> 4189 4190 PR libstdc++/86169 4191 * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI] 4192 (basic_string::data()): Unshare string. 4193 * testsuite/21_strings/basic_string/operations/data/char/86169.cc: 4194 New. 4195 4196 * include/std/string_view (basic_string_view(const CharT*)): Remove 4197 check for null pointer and add nonnull attribute. 4198 (compare(const CharT*), compare(size_type, size_type, const CharT*)) 4199 (find(const CharT*, size_type), rfind(const CharT*, size_type)) 4200 (find_first_of(const CharT*, size_type)) 4201 (find_last_of(const CharT*, size_type)) 4202 (find_first_not_of(const CharT*, size_type)) 4203 (find_last_not_of(const CharT*, size_type)): Add nonnull attribute. 4204 * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: New. 4205 * testsuite/21_strings/basic_string_view/operations/compare/char/ 4206 nonnull.cc: New. 4207 * testsuite/21_strings/basic_string_view/operations/find/char/ 4208 nonnull.cc: New. 4209 * testsuite/21_strings/basic_string_view/operations/rfind/char/ 4210 nonnull.cc: New. 4211 4212 PR libstdc++/86168 4213 * include/bits/random.h (random_device(const string&)): Remove 4214 default argument. 4215 4216 * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only 4217 define for C++17 and above. 4218 4219 LWG 2993 reference_wrapper<T> conversion from T&& 4220 * doc/xml/manual/intro.xml: Document LWG 2993 change. 4221 * include/bits/refwrap.h (reference_wrapper(_Tp&)): Remove. 4222 (reference_wrapper(_Tp&&)): Remove. 4223 (reference_wrapper<_Up>(_Up&&)): Define new constructor as constrained 4224 template. 4225 (reference_wrapper): Add deduction guide. 4226 * testsuite/20_util/reference_wrapper/deduction.cc: New. 4227 * testsuite/20_util/reference_wrapper/lwg2993.cc: New. 4228 4229 LWG 3039 Unnecessary decay in thread and packaged_task 4230 * include/std/future (__constrain_pkgdtask): Replace with ... 4231 (packaged_task::__not_same): New alias template, using 4232 __remove_cvref_t instead of decay. 4233 * include/std/thread (thread::__not_same): Add comment. 4234 42352018-06-14 Jonathan Wakely <jwakely@redhat.com> 4236 4237 LWG 3075 basic_string needs deduction guides from basic_string_view 4238 * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test 4239 deduction from string views. 4240 * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc: 4241 Likewise. 4242 4243 LWG 3074 make scalar types non-deduced in valarray non-member functions 4244 * include/bits/valarray_after.h (_DEFINE_EXPR_BINARY_FUNCTION): Change 4245 scalar parameters to be a non-deduced context. 4246 * include/std/valarray (_DEFINE_BINARY_OPERATOR): Likewise. Adjust 4247 whitespace. 4248 * testsuite/26_numerics/valarray/operators.cc: Test scalar operands. 4249 * testsuite/26_numerics/valarray/transcend.cc: New. 4250 4251 * include/std/tuple (__cpp_lib_tuple_element_t, tuple_element_t): 4252 Move back to <utility>. 4253 * include/std/utility (__cpp_lib_tuple_element_t. tuple_element_t): 4254 Restore to here. 4255 4256 P0935R0 Eradicating unnecessarily explicit default constructors 4257 * include/backward/strstream (strstreambuf): Add non-explicit default 4258 constructor. 4259 * include/bits/locale_conv.h (wbuffer_convert, wstring_convert): 4260 Likewise. 4261 * include/bits/regex.h (match_results): Likewise. 4262 * testsuite/22_locale/conversions/buffer/1.cc: Test for non-explicit 4263 default constructor. 4264 * testsuite/22_locale/conversions/string/1.cc: Likewise. 4265 * testsuite/28_regex/match_results/ctors/char/default.cc: Likewise. 4266 * testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise. 4267 4268 * include/std/tuple (__cpp_lib_tuple_element_t): Move feature test 4269 macro from <utility> and change type to long. 4270 * include/std/utility (__cpp_lib_tuple_element_t): Remove. 4271 * testsuite/20_util/tuple/tuple_element_t.cc: Check for feature test 4272 macro. 4273 4274 P0935R0 Eradicating unnecessarily explicit default constructors 4275 * include/bits/random.h (uniform_real_distribution::param_type) 4276 (normal_distribution::param_type, lognormal_distribution::param_type) 4277 (gamma_distribution::param_type, chi_squared_distribution::param_type) 4278 (cauchy_distribution::param_type, fisher_f_distribution::param_type) 4279 (student_t_distribution::param_type) 4280 (bernoulli_distribution::param_type) 4281 (binomial_distribution::param_type) 4282 (geometric_distribution::param_type) 4283 (negative_binomial_distribution::param_type) 4284 (poisson_distribution::param_type) 4285 (exponential_distribution::param_type) 4286 (weibull_distribution::param_type) 4287 (extreme_value_distribution::param_type): Add non-explicit default 4288 constructors. Remove default argument for first parameter of explicit 4289 constructors. 4290 * include/bits/uniform_int_dist.h 4291 (uniform_int_distribution::param_type): Likewise. 4292 * include/ext/random 4293 (beta_distribution::param_type, rice_distribution::param_type) 4294 (nakagami_distribution::param_type, pareto_distribution::param_type) 4295 (k_distribution::param_type, arcsine_distribution::param_type) 4296 (hoyt_distribution::param_type, triangular_distribution::param_type) 4297 (von_mises_distribution::param_type) 4298 (hypergeometric_distribution::param_type) 4299 (logistic_distribution::param_type) 4300 (uniform_inside_sphere_distribution::param_type): Likewise. 4301 (uniform_on_sphere_distribution::param_type): Make default constructor 4302 non-explicit. 4303 * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc: 4304 Test param_type for non-explicit default constructor. 4305 * testsuite/26_numerics/random/binomial_distribution/cons/default.cc: 4306 Likewise. 4307 * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc: 4308 Likewise. 4309 * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc: 4310 Likewise. 4311 * testsuite/26_numerics/random/discrete_distribution/cons/default.cc: 4312 Likewise. 4313 * testsuite/26_numerics/random/exponential_distribution/cons/default.cc: 4314 Likewise. 4315 * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc: 4316 Likewise. 4317 * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc: 4318 Likewise. 4319 * testsuite/26_numerics/random/gamma_distribution/cons/default.cc: 4320 Likewise. 4321 * testsuite/26_numerics/random/geometric_distribution/cons/default.cc: 4322 Likewise. 4323 * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc: 4324 Likewise. 4325 * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc: 4326 Likewise. 4327 * testsuite/26_numerics/random/normal_distribution/cons/default.cc: 4328 Likewise. 4329 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc: 4330 Likewise. 4331 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc: 4332 Likewise. 4333 * testsuite/26_numerics/random/poisson_distribution/cons/default.cc: 4334 Likewise. 4335 * testsuite/26_numerics/random/student_t_distribution/cons/default.cc: 4336 Likewise. 4337 * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc: 4338 Likewise. 4339 * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc: 4340 Likewise. 4341 * testsuite/26_numerics/random/weibull_distribution/cons/default.cc: 4342 Likewise. 4343 * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise. 4344 * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise. 4345 * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise. 4346 * testsuite/ext/random/hypergeometric_distribution/cons/default.cc: 4347 Likewise. 4348 * testsuite/ext/random/k_distribution/cons/default.cc: Likewise. 4349 * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise. 4350 * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise. 4351 * testsuite/ext/random/normal_mv_distribution/cons/default.cc: 4352 Likewise. 4353 * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise. 4354 * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise. 4355 * testsuite/ext/random/triangular_distribution/cons/default.cc: 4356 Likewise. 4357 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc: 4358 Likewise. 4359 * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc: 4360 Likewise. 4361 * testsuite/ext/random/von_mises_distribution/cons/default.cc: 4362 Likewise. 4363 43642018-06-14 Daniel Trebbien <dtrebbien@gmail.com> 4365 Jonathan Wakely <jwakely@redhat.com> 4366 4367 PR libstdc++/83982 4368 * include/bits/vector.tcc (vector::_M_default_append(size_type)): 4369 Default-construct new elements before moving existing ones. 4370 * testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc: 4371 New. 4372 43732018-06-13 Jonathan Wakely <jwakely@redhat.com> 4374 4375 PR libstdc++/86127 4376 * include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove 4377 unused typedef. 4378 (_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after): 4379 Use node allocator to create and destroy elements. 4380 (forward_list::_Tp_alloc_type): Remove unused typedef. 4381 (forward_list::_Alloc_traits): Use allocator_traits instead of 4382 __gnu_cxx::__alloc_traits. 4383 43842018-06-13 François Dumont <fdumont@gcc.gnu.org> 4385 4386 * include/debug/helper_functions.h 4387 (__gnu_debug::_Safe_iterator<>): Add declaration. 4388 (__can_advance(_Ite, _Size)): New. 4389 (__can_advance(const _Safe_iterator<>&, _Size)): Overload declaration. 4390 * include/debug/functions.h 4391 (__gnu_debug::_Safe_iterator<>): Remove declaration. 4392 * include/debug/stl_iterator.h 4393 (__can_advance(const _Safe_iterator<>&)): New definition. 4394 * include/debug/stl_iterator.h 4395 (__can_advance(const std::reverse_iterator<>&, _Size)): New. 4396 (__can_advance(const std::move_iterator<>&, _Size)): New. 4397 * include/debug/macros.h (__glibcxx_check_can_increment): New. 4398 * include/debug/debug.h (__glibcxx_requires_can_increment): New. 4399 * include/bits/stl_algobase.h (fill_n): Use latter. 4400 * testsuite/25_algorithms/fill_n/2.cc: New. 4401 * testsuite/25_algorithms/fill_n/debug/1_neg.cc: New. 4402 * testsuite/25_algorithms/fill_n/debug/2_neg.cc: New. 4403 * testsuite/25_algorithms/fill_n/debug/3_neg.cc: New. 4404 * testsuite/25_algorithms/fill_n/debug/4_neg.cc: New. 4405 4406 * include/debug/debug.h (__glibcxx_requires_can_increment_range): New. 4407 (__glibcxx_requires_can_decrement_range): New. 4408 44092018-06-12 François Dumont <fdumont@gcc.gnu.org> 4410 4411 * include/debug/macros.h (__glibcxx_check_can_increment_range): New. 4412 (__glibcxx_check_can_decrement_range): New. 4413 * include/bits/stl_algobase.h (std::copy(_II, _II, _OI)): Use 4414 __glibcxx_requires_can_increment_range. 4415 (std::move(_II, _II, _OI)): Likewise. 4416 (std::copy_backward(_BI, _BI, _BI2)): Use 4417 __glibcxx_requires_can_decrement_range. 4418 (std::move_backward(_BI, _BI, _BI2)): Likewise. 4419 * testsuite/25_algorithms/copy_backward/debug/1_neg.cc: New. 4420 * testsuite/25_algorithms/copy_backward/debug/2_neg.cc: New. 4421 * testsuite/25_algorithms/copy_backward/debug/3_neg.cc: New. 4422 * testsuite/25_algorithms/equal/debug/1_neg.cc: New. 4423 * testsuite/25_algorithms/equal/debug/2_neg.cc: New. 4424 * testsuite/25_algorithms/equal/debug/3_neg.cc: New. 4425 44262018-06-12 Jonathan Wakely <jwakely@redhat.com> 4427 4428 P0935R0 Eradicating unnecessarily explicit default constructors 4429 * include/bits/random.h (linear_congruential_engine) 4430 (mersenne_twister_engine, subtract_with_carry_engine, random_device) 4431 (uniform_real_distribution, normal_distribution) 4432 (lognormal_distribution, gamma_distribution, chi_squared_distribution) 4433 (cauchy_distribution, fisher_f_distribution, student_t_distribution) 4434 (bernoulli_distribution, binomial_distribution,geometric_distribution) 4435 (negative_binomial_distribution, exponential_distribution) 4436 (weibull_distribution, extreme_value_distribution): Add non-explicit 4437 default constructors. Remove default argument for first parameter of 4438 explicit constructors. 4439 (piecewise_constant_distribution, piecewise_linear_distribution): 4440 Make default constructor non-explicit. 4441 * include/bits/uniform_int_dist.h (uniform_int_distribution): Add 4442 non-explicit default constructors. Remove default argument for first 4443 parameter of explicit constructor. 4444 * include/ext/random 4445 (simd_fast_mersenne_twister_engine, beta_distribution) 4446 (rice_distribution, nakagami_distribution, pareto_distribution) 4447 (k_distribution, arcsine_distribution, hoyt_distribution) 4448 (triangular_distribution, von_mises_distribution) 4449 (hypergeometric_distribution, logistic_distribution) 4450 (uniform_inside_sphere_distribution): Likewise. 4451 (uniform_on_sphere_distribution): Make default constructor 4452 non-explicit. 4453 * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc: 4454 Test for non-explicit default constructor. Fix references to standard. 4455 * testsuite/26_numerics/random/binomial_distribution/cons/default.cc: 4456 Likewise. 4457 * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc: 4458 Likewise. 4459 * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc: 4460 Likewise. 4461 * testsuite/26_numerics/random/discrete_distribution/cons/default.cc: 4462 Likewise. 4463 * testsuite/26_numerics/random/exponential_distribution/cons/default.cc: 4464 Likewise. 4465 * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc: 4466 Likewise. 4467 * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc: 4468 Likewise. 4469 * testsuite/26_numerics/random/gamma_distribution/cons/default.cc: 4470 Likewise. 4471 * testsuite/26_numerics/random/geometric_distribution/cons/default.cc: 4472 Likewise. 4473 * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc: 4474 Likewise. 4475 * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc: 4476 Likewise. 4477 * testsuite/26_numerics/random/normal_distribution/cons/default.cc: 4478 Likewise. 4479 * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc: 4480 Likewise. 4481 * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc: 4482 Likewise. 4483 * testsuite/26_numerics/random/poisson_distribution/cons/default.cc: 4484 Likewise. 4485 * testsuite/26_numerics/random/student_t_distribution/cons/default.cc: 4486 Likewise. 4487 * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc: 4488 Likewise. 4489 * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc: 4490 Likewise. 4491 * testsuite/26_numerics/random/weibull_distribution/cons/default.cc: 4492 Likewise. 4493 * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise. 4494 * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise. 4495 * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise. 4496 * testsuite/ext/random/hypergeometric_distribution/cons/default.cc: 4497 Likewise. 4498 * testsuite/ext/random/k_distribution/cons/default.cc: Likewise. 4499 * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise. 4500 * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise. 4501 * testsuite/ext/random/normal_mv_distribution/cons/default.cc: 4502 Likewise. 4503 * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise. 4504 * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise. 4505 * testsuite/ext/random/triangular_distribution/cons/default.cc: 4506 Likewise. 4507 * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc: 4508 Likewise. 4509 * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc: 4510 Likewise. 4511 * testsuite/ext/random/von_mises_distribution/cons/default.cc: 4512 Likewise. 4513 * testsuite/util/testsuite_common_types.h 4514 (implicitly_default_constructible): New helper. 4515 45162018-06-08 Jonathan Wakely <jwakely@redhat.com> 4517 4518 * include/bits/ios_base.h (ios::Init::Init(const Init&)) 4519 (ios::Init::operator=): Define as defaulted. 4520 * include/bits/stl_bvector.h (_Bit_reference(const _Bit_reference&)): 4521 Likewise. 4522 * include/bits/stream_iterator.h (istream_iterator::operator=) 4523 (ostream_iterator::operator=): Likewise. 4524 * include/bits/streambuf_iterator.h (istreambuf_iterator::operator=) 4525 Likewise. 4526 * include/std/bitset (bitset::reference::reference(const reference&)): 4527 Likewise. 4528 * include/std/complex (complex<float>::complex(const complex&)) 4529 (complex<double>::complex(const complex&)) 4530 (complex<long double>::complex(const complex&)): Likewise. 4531 45322018-06-07 Jonathan Wakely <jwakely@redhat.com> 4533 4534 * include/bits/regex.h (sub_match): Add noexcept to default 4535 constructor and length observer. 4536 (match_results): Add noexcept to default constructor and observers 4537 with no preconditions. Define destructor as defaulted. 4538 (operator==, operator!=, swap): Add noexcept. 4539 (regex_iterator): Add default member initializers and define default 4540 constructor and destructor as defaulted. Add noexcept to equality 4541 and dereference operators. 4542 45432018-06-07 François Dumont <fdumont@gcc.gnu.org> 4544 4545 * src/c++11/debug.cc 4546 (_Safe_iterator_base::_M_detach()): Reset state only if needed. 4547 (_Safe_iterator_base::_M_detach_single()): Likewise. 4548 (_Safe_local_iterator_base::_M_detach()): Reset state only if needed. 4549 (_Safe_local_iterator_base::_M_detach_single()): Likewise. 4550 45512018-06-06 Jonathan Wakely <jwakely@redhat.com> 4552 4553 * include/bits/shared_ptr_base.h (__shared_count): Remove redundant 4554 move of const value. 4555 45562018-06-06 Jakub Jelinek <jakub@redhat.com> 4557 4558 PR c++/86068 4559 * include/bits/c++config: Check __cpp_transactional_memory >= 201500L 4560 rather than __cpp_transactional_memory >= 201505L. 4561 45622018-06-06 Jonathan Wakely <jwakely@redhat.com> 4563 4564 PR libstdc++/86008 4565 * include/bits/quoted_string.h (_Quoted_string<basic_string_view, C>): 4566 Define new partial specialization. 4567 * include/std/iomanip (quoted(basic_string_view<C,T>, C, C)): Define 4568 new overload. 4569 (operator<<(basic_ostream<C,T>&, const _Quoted_string<S,C>&)): Use 4570 value not reference for iteration. 4571 * testsuite/27_io/manipulators/standard/char/quoted.cc: Adjust 4572 comment. 4573 * testsuite/27_io/manipulators/standard/char/quoted_sv.cc: New test. 4574 * testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: Adjust 4575 comment. 4576 45772018-06-05 Jonathan Wakely <jwakely@redhat.com> 4578 4579 * include/std/type_traits: Fix comment typos. 4580 4581 * testsuite/27_io/filesystem/operations/read_symlink.cc: XFAIL for 4582 mingw* targets. 4583 * testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise. 4584 * testsuite/experimental/filesystem/operations/read_symlink.cc: 4585 Likewise. 4586 45872018-06-05 François Dumont <fdumont@gcc.gnu.org> 4588 4589 * include/bits/stl_tempbuf.h 4590 (_Temporary_buffer(_FwdIte, _FwdIte)): Delete, replaced by... 4591 (_Temporary_buffer(_FwdIte, size_type)): ...this, new. 4592 * include/ext/memory (temporary_buffer<>(_FwdIte, _FwdIte)): Adapt. 4593 * include/bits/stl_algo.h (__stable_partition): Adapt. 4594 (__inplace_merge): Adapt. 4595 (__stable_sort): Adapt. 4596 45972018-06-04 Jonathan Wakely <jwakely@redhat.com> 4598 4599 PR libstdc++/85930 4600 * include/bits/shared_ptr_base.h [!__cpp_rtti]: Include <typeinfo> 4601 unconditionally. Remove redundant declaration. 4602 [!__cpp_rtti] (_Sp_make_shared_tag::_S_ti): Fix location of 4603 alignment-specifier. 4604 4605 * include/bits/postypes.h (fpos): Define special members as defaulted. 4606 4607 PR libstdc++/85930 4608 * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Align 4609 the static variable correctly. 4610 46112018-05-24 Jonathan Wakely <jwakely@redhat.com> 4612 4613 PR libstdc++/78870 support std::filesystem on Windows 4614 * config.h.in: Regenerate. 4615 * configure: Regenerate. 4616 * configure.ac: Check for link, readlink and symlink. 4617 * include/bits/fs_path.h (path::operator/=(const path&)): Move 4618 definition out of class body. 4619 (path::is_absolute(), path::_M_append(path)): Likewise. 4620 (operator<<(basic_ostream, const path&)): Use std::quoted directly. 4621 (operator>>(basic_istream, path&)): Likewise. 4622 (u8path): Reorder definitions and fix Windows implementation. 4623 (path::is_absolute()): Define inline and fix for Windows. 4624 [!_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)): 4625 Define POSIX version inline. 4626 (path::_M_append(path)): Define inline. 4627 * include/experimental/bits/fs_path.h (path::is_absolute()): Move 4628 definition out of class body. 4629 (operator<<(basic_ostream, const path&)): Fix type of delimiter and 4630 escape characters. 4631 (operator>>(basic_istream, path&)): Likewise. 4632 (path::is_absolute()): Define inline and fix for Windows. 4633 * src/filesystem/dir-common.h (__gnu_posix): New namespace. 4634 (__gnu_posix::char_type, __gnu_posix::DIR, __gnu_posix::dirent) 4635 (__gnu_posix::opendir, __gnu_posix::readdir, __gnu_posix::closedir): 4636 Define as adaptors for Windows functions/types or as 4637 using-declarations for POSIX functions/types. 4638 (_Dir_base, get_file_type): Qualify names to use declarations from 4639 __gnu_posix namespace. 4640 (_Dir_base::is_dor_or_dotdot): New helper functions. 4641 * src/filesystem/dir.cc (_Dir, recursive_directory_iterator): Qualify 4642 names to use declarations from __gnu_posix namespace. 4643 * src/filesystem/ops-common.h (__gnu_posix): New nested namespace. 4644 (__gnu_posix::open, __gnu_posix::close, __gnu_posix::stat_type) 4645 (__gnu_posix::stat, __gnu_posix::lstat, __gnu_posix::mode_t) 4646 (__gnu_posix::chmod, __gnu_posix::mkdir, __gnu_posix::getcwd) 4647 (__gnu_posix::chdir, __gnu_posix::utimbuf, __gnu_posix::utime) 4648 (__gnu_posix::rename, __gnu_posix::truncate, __gnu_posix::char_type): 4649 Define as adaptors for Windows functions/types or as 4650 using-declarations for POSIX functions/types. 4651 (stat_type, do_copy_file): Qualify names to use declarations from 4652 __gnu_posix namespace. 4653 (do_space): Declare new function. 4654 (make_file_type): Only use S_ISLNK if defined. 4655 * src/filesystem/ops.cc (char_ptr, filesystem::canonical): Use 4656 path::value_type not char. 4657 (filesystem::copy, create_dir, filesystem::create_directory): Qualify 4658 names to use declarations from __gnu_posix namespace. 4659 (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and 4660 add implementation for Windows. 4661 (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro. 4662 (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd. 4663 [!_PC_PATH_MAX]: Don't use pathconf. 4664 [PATH_MAX]: Use if defined. 4665 (filesystem::current_path(const path&, error_code&)) 4666 (filesystem::equivalent, do_stat, filesystem::hard_link_count) 4667 (filesystem::last_write_time, filesystem::permissions): Use names 4668 from __gnu_posix. 4669 (filesystem::read_symlink): Check HAVE_READLINK autoconf macro. 4670 (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add 4671 implementation for Windows. 4672 (filesystem::rename, filesystem::resize_file): Use names from 4673 __gnu_posix. 4674 (filesystem::space): Use do_space. 4675 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Get absolute path to directory. 4676 (filesystem::status, filesystem::symlink_status): Use names from 4677 __gnu_posix. 4678 (filesystem::temp_directory_path): Add implementation for Windows. 4679 * src/filesystem/path.cc (dot): Define constant. 4680 (path::replace_extension): Use dot. 4681 (path::_M_find_extension): Likewise. Use path::string_type not 4682 std::string. 4683 (path::_M_split_cmpts): Use dot. 4684 (filesystem_error::_M_get_what): Use u8string() not native(). 4685 * src/filesystem/std-dir.cc (_Dir, recursive_directory_iterator): 4686 Qualify names to use declarations from __gnu_posix namespace. 4687 * src/filesystem/std-ops.cc (filesystem::absolute(const path&)): Use 4688 correct error_code. 4689 (filesystem::absolute(const path&, error_code&)): Add implementation 4690 for Windows. 4691 (char_ptr, filesystem::canonical): Use path::value_type not char. 4692 (do_copy_file): Use names from __gnu_posix. 4693 [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Do not use fchmod, fchmodat or 4694 sendfile. 4695 (filesystem::copy, create_dir, filesystem::create_directory): Qualify 4696 names to use declarations from __gnu_posix namespace. 4697 (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and 4698 add implementation for Windows. 4699 (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro. 4700 (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd. 4701 [!_PC_PATH_MAX]: Don't use pathconf. 4702 [PATH_MAX]: Use if defined. 4703 (filesystem::current_path(const path&, error_code&)) 4704 (filesystem::equivalent, do_stat, filesystem::hard_link_count) 4705 (filesystem::last_write_time, filesystem::permissions): Use names 4706 from __gnu_posix. 4707 (filesystem::read_symlink): Check HAVE_READLINK autoconf macro. 4708 (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add 4709 implementation for Windows. 4710 (filesystem::rename, filesystem::resize_file): Use names from 4711 __gnu_posix. 4712 (do_space): Define. 4713 (filesystem::space): Use do_space. 4714 (filesystem::status, filesystem::symlink_status): Use names from 4715 __gnu_posix. 4716 (filesystem::temp_directory_path): Add implementation for Windows. 4717 * src/filesystem/std-path.cc 4718 [_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)): 4719 Define for Windows. 4720 (dot): Define constant. 4721 (path::replace_extension, is_dot): Use dot. 4722 (path::lexically_normal): Check _M_type instead of calling 4723 non-existent function. 4724 (path::_M_find_extension): Use dot. Use path::string_type not 4725 std::string. 4726 (path::_M_split_cmpts): Use dot. 4727 (filesystem_error::_M_get_what): Use u8string() not native(). 4728 * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Do not 4729 use symlinks. 4730 * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc: 4731 Likewise. 4732 * testsuite/27_io/filesystem/operations/absolute.cc: Use 4733 __gnu_test::root_path() instead of "/" and add Windows-specific tests. 4734 * testsuite/27_io/filesystem/operations/canonical.cc: Use 4735 path::string() to get narrow string, not path::native(). 4736 * testsuite/27_io/filesystem/operations/copy.cc: Construct fstreams 4737 with std::filesystem::path not std::basic_string. 4738 * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise. 4739 * testsuite/27_io/filesystem/operations/exists.cc: Use 4740 __gnu_test::root_path() instead of "/". 4741 * testsuite/27_io/filesystem/operations/is_empty.cc: Construct 4742 fstreams with std::filesystem::path not std::basic_string. 4743 * testsuite/27_io/filesystem/operations/last_write_time.cc: Use 4744 path::string() to get narrow string. 4745 * testsuite/27_io/filesystem/operations/space.cc: Check results for 4746 errors, expect sensible values otherwise. 4747 * testsuite/27_io/filesystem/operations/temp_directory_path.cc: Add 4748 helpers for adjusting the environment on Windows. 4749 * testsuite/27_io/filesystem/path/append/path.cc: Test 4750 Windows-specific behaviour. 4751 * testsuite/27_io/filesystem/path/construct/format.cc: Fix creation 4752 of path::string_type objects. 4753 * testsuite/27_io/filesystem/path/construct/locale.cc: Compare native 4754 string to wide string on Windows. 4755 * testsuite/27_io/filesystem/path/decompose/root_directory.cc: Allow 4756 for backslash as root-directory. 4757 * testsuite/27_io/filesystem/path/decompose/stem.cc: Use 4758 path::string() to get narrow string. 4759 * testsuite/27_io/filesystem/path/itr/traversal.cc: Test Windows-style 4760 paths. 4761 * testsuite/27_io/filesystem/path/native/string.cc: Use string_type 4762 not std::string. 4763 * testsuite/27_io/filesystem/path/query/is_absolute.cc: Adjust for 4764 different definintion of absolute paths on Windows. 4765 * testsuite/experimental/filesystem/iterators/directory_iterator.cc: 4766 Do not use symlinks. 4767 * testsuite/experimental/filesystem/operations/absolute.cc: Test 4768 Windows behaviour. 4769 * testsuite/experimental/filesystem/operations/copy.cc: Construct 4770 fstreams with NTCTS not std::basic_string. 4771 * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise. 4772 * testsuite/experimental/filesystem/operations/exists.cc: Use 4773 __gnu_test::root_path() instead of "/". 4774 * testsuite/experimental/filesystem/operations/is_empty.cc: Construct 4775 fstreams with NTCTS not std::basic_string. 4776 * testsuite/experimental/filesystem/operations/last_write_time.cc: 4777 Use path::string() to get narrow string. 4778 * testsuite/experimental/filesystem/operations/space.cc: Use 4779 __gnu_test::root_path() instead of "/". 4780 * testsuite/experimental/filesystem/operations/temp_directory_path.cc: 4781 Add helpers for adjusting the environment on Windows. 4782 * testsuite/experimental/filesystem/path/append/path.cc: Use 4783 path::string() to get narrow strings for comparisons. 4784 * testsuite/experimental/filesystem/path/concat/path.cc: Likewise. 4785 * testsuite/experimental/filesystem/path/decompose/root_directory.cc: 4786 Likewise. 4787 * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise. 4788 * testsuite/experimental/filesystem/path/native/string.cc: Use 4789 string_type not std::string. 4790 * testsuite/experimental/filesystem/path/query/is_absolute.cc: 4791 Adjust for different definintion of absolute paths on Windows. 4792 * testsuite/util/testsuite_fs.h (__gnu_test::root_path()): New 4793 function. 4794 (__gnu_test::scoped_file): Construct fstreams with NTCTS not 4795 std::basic_string. 4796 47972018-05-31 Jonathan Wakely <jwakely@redhat.com> 4798 4799 PR libstdc++/85951 4800 * include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define 4801 uint_least16_t and uint_least32_t. 4802 (__make_unsigned<wchar_t>): Define unconditionally. 4803 (__make_unsigned_selector<_Tp, true, false>): Remove intermediate 4804 typedefs. 4805 (__make_unsigned_selector_base): New type to provide helper templates. 4806 (__make_unsigned_selector<_Tp, false, true>): Reimplement using 4807 __make_unsigned_selector_base helpers. 4808 (__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define. 4809 (__make_signed_selector<_Tp, true, false>): Remove intermediate 4810 typedefs. 4811 (__make_signed<wchar_t>, __make_signed<char16_t>) 4812 (__make_signed<char32_t>)): Define unconditionally. 4813 * testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check 4814 wchar_t, char16_t and char32_t are transformed correctly. 4815 * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust 4816 dg-error lineno. 4817 * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check 4818 wchar_t, char16_t and char32_t are transformed correctly. 4819 * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust 4820 dg-error lineno. 4821 48222018-05-29 Jonathan Wakely <jwakely@redhat.com> 4823 4824 * include/std/variant (__erased_dtor): Qualify call to __get. 4825 48262018-05-27 François Dumont <fdumont@gcc.gnu.org> 4827 4828 * include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New. 4829 (_Rb_tree(const allocator_type&)): Use latter. 4830 * include/bits/stl_map.h (map(const allocator_type&)): Likewise. 4831 (map(initializer_list<value_type>, const allocator_type&)): Likewise. 4832 (map(_InputIterator, _InputIterator, const allocator_type&)): Likewise. 4833 * include/bits/stl_multimap.h 4834 (multimap(const allocator_type&)): Likewise. 4835 (multimap(initializer_list<value_type>, const allocator_type&)): 4836 Likewise. 4837 (multimap(_InputIterator, _InputIterator, const allocator_type&)): 4838 Likewise. 4839 * include/bits/stl_set.h (set(const allocator_type&)): Likewise. 4840 (set(initializer_list<value_type>, const allocator_type&)): Likewise. 4841 (set(_InputIterator, _InputIterator, const allocator_type&)): Likewise. 4842 * include/bits/stl_multiset.h 4843 (multiset(const allocator_type&)): Likewise. 4844 (multiset(initializer_list<value_type>, const allocator_type&)): 4845 Likewise. 4846 (multiset(_InputIterator, _InputIterator, const allocator_type&)): 4847 Likewise. 4848 48492018-05-25 François Dumont <fdumont@gcc.gnu.org> 4850 4851 PR libstdc++/85768 4852 * src/c++11/debug.cc: Remove backtrace usage. 4853 48542018-05-24 Maya Rashish <coypu@sdf.org> 4855 4856 PR target/85904 4857 * crossconfig.m4: Test for aligned_alloc on netbsd. 4858 * configure: Regenerate. 4859 48602018-05-24 Jonathan Wakely <jwakely@redhat.com> 4861 4862 PR libstdc++/69769 4863 PR libstdc++/85886 4864 * include/bits/atomic_base.h (__atomic_base::value_type) 4865 (__atomic_base::difference_type): Add new typedefs. 4866 * include/std/atomic (atomic<bool>::value_type, atomic<T>::value_type) 4867 (atomic<T*>::value_type, atomic<T*>::difference_type): Likewise. 4868 (atomic<T*>::operator++, atomic<T*>::operator--) 4869 (atomic<T*>::operator+=, atomic<T*>::operator-=) 4870 (atomic<T*>::fetch_add, atomic<T*>::fetch_sub): Add static assertion 4871 to enforce C++17 requirement on pointer arithmetic. 4872 (__atomic_val_t, __atomic_diff_t): New alias templates. 4873 (atomic_init, atomic_store_explicit, atomic_exchange_explicit) 4874 (atomic_compare_exchange_weak_explicit) 4875 (atomic_compare_exchange_strong_explicit, atomic_store) 4876 (atomic_exchange, atomic_compare_exchange_weak) 4877 (atomic_compare_exchange_strong): Use __atomic_val_t to make 4878 scalar parameters be non-deduced contexts. 4879 (atomic_fetch_add_explicit, atomic_fetch_sub_explicit) 4880 (atomic_fetch_add, atomic_fetch_sub): Change first parameter to be 4881 atomic instead of __atomic_base, and use __atomic_diff_t for scalar 4882 parameters. 4883 (atomic_fetch_and_explicit, atomic_fetch_or_explicit) 4884 (atomic_fetch_xor_explicit, atomic_fetch_and, atomic_fetch_or) 4885 (atomic_fetch_xor): Use __atomic_val_t for scalar parameters. 4886 (atomic_fetch_add_explicit, atomic_fetch_sub_explicit) 4887 (atomic_fetch_add, atomic_fetch_sub): Remove overloads for atomic 4888 address types. 4889 * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno. 4890 * testsuite/29_atomics/atomic/69769.cc: New test. 4891 * testsuite/29_atomics/atomic/nonmembers.cc: New test. 4892 * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc: 4893 Disable test for C++17 and later. 4894 * testsuite/29_atomics/atomic/requirements/typedefs.cc: New test. 4895 * testsuite/29_atomics/atomic_integral/nonmembers.cc: New test. 4896 * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc: New 4897 test. 4898 48992018-05-23 Jonathan Wakely <jwakely@redhat.com> 4900 4901 * include/bits/fs_path.h (path::__is_encoded_char): Change from class 4902 template to alias template. 4903 (path::__value_type_is_char): Use remove_const_t. 4904 (path:_S_string_from_iter): New helper function. 4905 (path::_S_convert(InputIter, __null_terminated)) 4906 (path::_S_convert_loc(InputIter, __null_terminated, const locale&)): 4907 Use _S_string_from_iter. 4908 (path::string<_CharT, _Allocator>(const _Allocator&)): Allow sharing 4909 rep for COW strings. 4910 * include/experimental/bits/fs_path.h (path::__is_encoded_char): 4911 Change from class template to alias template. 4912 (path::__value_type_is_char): Use remove_const. 4913 (path:_S_string_from_iter): New helper function. 4914 (path::_S_convert(InputIter, __null_terminated)) 4915 (path::_S_convert_loc(InputIter, __null_terminated, const locale&)): 4916 Use _S_string_from_iter. 4917 * testsuite/27_io/filesystem/path/append/source.cc: Test appending 4918 wide strings. 4919 * testsuite/27_io/filesystem/path/concat/strings.cc: Check for exact 4920 string equality, not path equivalence. 4921 * testsuite/27_io/filesystem/path/construct/format.cc: Check 4922 construction from std::string and std::wstring and input iterators. 4923 * testsuite/27_io/filesystem/path/construct/locale.cc: Check 4924 construction from iterators. 4925 * testsuite/experimental/filesystem/path/concat/strings.cc: Check for 4926 exact string equality, not path equivalence. 4927 * testsuite/experimental/filesystem/path/construct/locale.cc: Check 4928 construction from iterators. 4929 4930 * include/bits/fs_path.h (path::_M_type): Change default member 4931 initializer to _Filename. 4932 (path::begin): Create past-the-end iterator for empty path. 4933 * src/filesystem/std-path.cc (path::remove_filename()): Remove 4934 debugging check. 4935 (path::has_relative_path()): Return false for empty filenames. 4936 (path::_M_split_cmpts): Set _M_type to _Filename for empty paths. 4937 Fix offset of empty final component. 4938 * testsuite/27_io/filesystem/path/itr/components.cc: New. 4939 * testsuite/27_io/filesystem/path/itr/traversal.cc: Add new inputs. 4940 49412018-05-21 Jonathan Wakely <jwakely@redhat.com> 4942 4943 Add support for opening file streams from wide character strings. 4944 * config/io/basic_file_stdio.cc [_GLIBCXX_HAVE__WFOPEN] 4945 (__basic_file<char>::open(const wchar_t*, ios_base::openmode)): 4946 Define new overload. 4947 * config/io/basic_file_stdio.h [_GLIBCXX_HAVE__WFOPEN] 4948 (__basic_file<char>::open(const wchar_t*, ios_base::openmode)): 4949 Declare new overload. 4950 * configure.ac: Check for _wfopen. 4951 * crossconfig.m4: Likewise. 4952 * configure: Regenerate. 4953 * config.h.in: Regenerate. 4954 * include/bits/fstream.tcc [_GLIBCXX_HAVE__WFOPEN] 4955 (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)): 4956 Define new overload. 4957 * include/std/fstream [_GLIBCXX_HAVE__WFOPEN] 4958 (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)): 4959 Declare new overload. 4960 [_GLIBCXX_HAVE__WFOPEN] 4961 (basic_ifstream<C,T>::basic_ifstream(const wchar_t*, openmode)) 4962 (basic_ifstream<C,T>::basic_open(const wchar_t*, openmode)) 4963 (basic_ofstream<C,T>::basic_ifstream(const wchar_t*, openmode)) 4964 (basic_ofstream<C,T>::basic_open(const wchar_t*, openmode)) 4965 (basic_fstream<C,T>::basic_ifstream(const wchar_t*, openmode)) 4966 (basic_fstream<C,T>::basic_open(const wchar_t*, openmode)): Define 4967 new overloads. 4968 * testsuite/27_io/basic_filebuf/open/wchar_t/1.cc: New. 4969 * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: New. 4970 * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: New. 4971 * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: New. 4972 * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: New. 4973 * testsuite/27_io/basic_fstream/cons/wchar_t/1.cc: New. 4974 * testsuite/27_io/basic_fstream/open/wchar_t/1.cc: New. 4975 49762018-05-21 François Dumont <fdumont@gcc.gnu.org> 4977 4978 PR libstdc++/85845 4979 * include/bits/stl_tree.h 4980 (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): Fix noexcept 4981 qualification. 4982 49832018-05-21 Jonathan Wakely <jwakely@redhat.com> 4984 4985 * src/filesystem/std-ops.cc (absolute): Report an error for empty 4986 paths. 4987 (weakly_canonical(const path&)): Do not call canonical on empty path. 4988 (weakly_canonical(const path&, error_code&)): Likewise. 4989 * testsuite/27_io/filesystem/operations/absolute.cc: Check for errors. 4990 4991 PR libstdc++/85818 4992 * testsuite/experimental/filesystem/path/preferred_separator.cc: Add 4993 dg-require-filesystem-ts. 4994 4995 PR libstdc++/85843 4996 * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Explicitly 4997 initialize base class to avoid warnings. 4998 49992018-05-19 Jonathan Wakely <jwakely@redhat.com> 5000 5001 * src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in) 5002 [__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set 5003 little_endian element in bitmask. 5004 * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests. 5005 * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New. 5006 50072018-05-18 François Dumont <fdumont@gcc.gnu.org> 5008 5009 * include/bits/stl_tree.h 5010 (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): New. 5011 (_Rb_tree(_Rb_tree&&, _Node_allocator&&, true_type)): New, use latter. 5012 (_Rb_tree(_Rb_tree&&, _Node_allocator&&, false_type)): New. 5013 (_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Adapt, use latters. 5014 * include/debug/map.h 5015 (map(map&&, const_allocator_type&)): Add noexcept qualitication. 5016 * include/debug/multimap.h 5017 (multimap(multimap&&, const_allocator_type&)): Likewise. 5018 * include/debug/set.h 5019 (set(set&&, const_allocator_type&)): Likewise. 5020 * include/debug/multiset.h 5021 (multiset(multiset&&, const_allocator_type&)): Likewise. 5022 * testsuite/23_containers/map/cons/noexcept_default_construct.cc: 5023 Add checks. 5024 * testsuite/23_containers/map/cons/noexcept_move_construct.cc: 5025 Add checks. 5026 * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc: 5027 Add checks. 5028 * testsuite/23_containers/multimap/cons/noexcept_move_construct.cc: 5029 Add checks. 5030 * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc: 5031 Add checks. 5032 * testsuite/23_containers/multiset/cons/noexcept_move_construct.cc: 5033 Add checks. 5034 * testsuite/23_containers/set/cons/noexcept_default_construct.cc: 5035 Add checks. 5036 * testsuite/23_containers/set/cons/noexcept_move_construct.cc: 5037 Add checks. 5038 50392018-05-18 Jason Merrill <jason@redhat.com> 5040 5041 * include/bits/stl_deque.h (_Deque_iterator): Constrain constructor 5042 for conversion to const_iterator. Add defaulted copy ops. 5043 * libsupc++/new (bad_alloc): Add defaulted copy ops. 5044 * libsupc++/exception.h (exception): Add defaulted copy ops. 5045 * include/std/system_error (system_error): Add defaulted copy ops. 5046 * include/std/stdexcept (domain_error, invalid_argument) 5047 (length_error, out_of_range, range_error, overflow_error) 5048 (underflow_error): Add defaulted copy ops. 5049 * include/bits/stl_iterator.h (reverse_iterator): Add defaulted 5050 copy assignment. 5051 * include/bits/allocator.h (allocator): Add defaulted copy assignment. 5052 * include/ext/throw_allocator.h (condition_base): Add defaulted 5053 default and copy ctor and copy assignment. 5054 50552018-05-18 Jonathan Wakely <jwakely@redhat.com> 5056 5057 PR libstdc++/85098 5058 * include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase) 5059 (basic_regex::nosubs, basic_regex::optimize, basic_regex::collate) 5060 (basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended) 5061 (basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add 5062 definitions. 5063 * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust 5064 whitespace. 5065 * include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add 5066 braces around body of do-while. 5067 * testsuite/28_regex/basic_regex/85098.cc: New 5068 50692018-05-17 Jonathan Wakely <jwakely@redhat.com> 5070 5071 PR libstdc++/85818 5072 * src/filesystem/path.cc (path::preferred_separator): Add used 5073 attribute. 5074 * testsuite/experimental/filesystem/path/preferred_separator.cc: New. 5075 5076 PR libstdc++/85812 5077 * libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare. 5078 * libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]: 5079 Refactor to separate non-throwing and throwing implementations. 5080 [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory 5081 if constructing the object throws. 5082 50832018-05-15 Jonathan Wakely <jwakely@redhat.com> 5084 5085 PR libstdc++/85749 5086 * include/bits/random.h (__detail::__is_seed_seq): New SFINAE helper. 5087 (linear_congruential_engine, mersenne_twister_engine) 5088 (subtract_with_carry_engine, discard_block_engine) 5089 (independent_bits_engine, shuffle_order_engine): Use __is_seed_seq to 5090 constrain function templates taking seed sequences. 5091 * include/bits/random.tcc (linear_congruential_engine::seed(_Sseq&)) 5092 (mersenne_twister_engine::seed(_Sseq&)) 5093 (subtract_with_carry_engine::seed(_Sseq&)): Change return types to 5094 match declarations. 5095 * include/ext/random (simd_fast_mersenne_twister_engine): Use 5096 __is_seed_seq to constrain function templates taking seed sequences. 5097 * include/ext/random.tcc (simd_fast_mersenne_twister_engine::seed): 5098 Change return type to match declaration. 5099 * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc: 5100 New. 5101 * testsuite/26_numerics/random/independent_bits_engine/cons/ 5102 seed_seq2.cc: New. 5103 * testsuite/26_numerics/random/linear_congruential_engine/cons/ 5104 seed_seq2.cc: New. 5105 * testsuite/26_numerics/random/mersenne_twister_engine/cons/ 5106 seed_seq2.cc: New. 5107 * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno. 5108 * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc: 5109 New. 5110 * testsuite/26_numerics/random/subtract_with_carry_engine/cons/ 5111 seed_seq2.cc: New. 5112 * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/ 5113 seed_seq2.cc: New. 5114 5115 PR libstdc++/83891 5116 * include/bits/fs_path.h (path::is_absolute()): Use same definition 5117 for all operating systems. 5118 * include/experimental/bits/fs_path.h (path::is_absolute()): Likewise. 5119 * testsuite/27_io/filesystem/path/query/is_absolute.cc: New. 5120 * testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment. 5121 * testsuite/experimental/filesystem/path/query/is_absolute.cc: New. 5122 5123 * testsuite/27_io/filesystem/path/decompose/extension.cc: Remove 5124 unused <vector> header. 5125 * testsuite/27_io/filesystem/path/query/empty.cc: Likewise. 5126 * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise. 5127 * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise. 5128 * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise. 5129 * testsuite/27_io/filesystem/path/query/has_relative_path.cc: 5130 Likewise. 5131 * testsuite/27_io/filesystem/path/query/has_root_directory.cc: 5132 Likewise. 5133 * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise. 5134 * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise. 5135 * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise. 5136 * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise. 5137 * testsuite/experimental/filesystem/path/decompose/extension.cc: 5138 Likewise. 5139 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise. 5140 * testsuite/experimental/filesystem/path/query/has_extension.cc: 5141 Likewise. 5142 * testsuite/experimental/filesystem/path/query/has_filename.cc: 5143 Likewise. 5144 * testsuite/experimental/filesystem/path/query/has_parent_path.cc: 5145 Likewise. 5146 * testsuite/experimental/filesystem/path/query/has_relative_path.cc: 5147 Likewise. 5148 * testsuite/experimental/filesystem/path/query/has_root_directory.cc: 5149 Likewise. 5150 * testsuite/experimental/filesystem/path/query/has_root_name.cc: 5151 Likewise. 5152 * testsuite/experimental/filesystem/path/query/has_root_path.cc: 5153 Likewise. 5154 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise. 5155 * testsuite/experimental/filesystem/path/query/is_relative.cc: 5156 Likewise. 5157 5158 PR libstdc++/84159 5159 * include/bits/fs_path.h (path::operator/=, path::append): Construct 5160 temporary path before calling _M_append. 5161 (path::_M_append): Change parameter to path and implement C++17 5162 semantics. 5163 * testsuite/27_io/filesystem/path/append/path.cc: Add helper function 5164 and more examples from the standard. 5165 * testsuite/27_io/filesystem/path/append/source.cc: New. 5166 * testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment. 5167 * testsuite/27_io/filesystem/path/nonmember/append.cc: New. 5168 5169 * include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify 5170 __invoke to prevent ADL. 5171 51722018-05-14 Jonathan Wakely <jwakely@redhat.com> 5173 5174 PR libstdc++/81256 5175 * include/bits/fstream.tcc (basic_filebuf::close): Do not swallow 5176 exceptions from _M_terminate_output(). 5177 * include/std/fstream (basic_filebuf::~basic_filebuf): Swallow any 5178 exceptions from close(). 5179 * testsuite/27_io/basic_filebuf/close/81256.cc: New. 5180 5181 * include/bits/valarray_array.h (__valarray_get_memory): Remove. 5182 (__valarray_get_storage): Call operator new directly. Remove ignored 5183 top-level restrict qualifier and add malloc attribute instead. 5184 (_Array<_Tp>::_Array(size_t)): Remove unused constructor. 5185 5186 PR libstdc++/67554 5187 * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>) 5188 (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy. 5189 5190 PR libstdc++/82966 5191 * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value 5192 instead of type. 5193 * testsuite/23_containers/set/modifiers/node_swap.cc: New. 5194 51952018-05-13 Ville Voutilainen <ville.voutilainen@gmail.com> 5196 5197 PR libstdc++/80165 5198 * testsuite/20_util/variant/80165.cc: New. 5199 52002018-05-10 Jonathan Wakely <jwakely@redhat.com> 5201 5202 * doc/xml/faq.xml: Link to C++17 status. Add note to outdated answer. 5203 * doc/xml/manual/debug_mode.xml: Add array and forward_list to list 5204 of C++11 containers with Debug Mode support. 5205 * doc/xml/manual/using.xml: Document Dual ABI for ios_base::failure. 5206 * doc/html/*: Regenerate. 5207 52082018-05-10 Jason Merrill <jason@redhat.com> 5209 5210 * include/bits/regex_compiler.h (_S_cache_size): Change from 5211 function to variable. 5212 52132018-05-10 Edward Smith-Rowland <3dw4rd@verizon.net> 5214 5215 PR libstdc++/83140 - assoc_legendre returns negated value when m is odd 5216 * include/tr1/legendre_function.tcc (__assoc_legendre_p): Add __phase 5217 argument defaulted to +1. Doxy comments on same. 5218 * testsuite/special_functions/02_assoc_legendre/ 5219 check_value.cc: Regen. 5220 * testsuite/tr1/5_numerical_facilities/special_functions/ 5221 02_assoc_legendre/check_value.cc: Regen. 5222 52232018-05-10 Jonathan Wakely <jwakely@redhat.com> 5224 5225 PR libstdc++/85729 5226 * include/bits/c++config.h (__replacement_assert): Add linkage 5227 specification. 5228 * include/bits/std_abs.h: Add comment to closing brace of block. 5229 * include/c_global/cstddef: Add linkage specification. 5230 * include/c_global/cstring: Likewise. 5231 * include/c_global/cwchar: Likewise. 5232 52332018-05-09 François Dumont <fdumont@gcc.gnu.org> 5234 5235 * include/debug/safe_iterator.h (_Safe_iterator<>::_M_constant()): 5236 Rename in... 5237 (_Safe_iterator<>::_S_constant()): ...that. 5238 * include/debug/safe_local_iterator.h 5239 (_Safe_local_iterator<>::_M_constant()): Rename in... 5240 (_Safe_local_iterator<>::_S_constant()): ...that. 5241 * include/debug/formatter.h: Remove bits/cpp_type_traits.h include. 5242 (_Iterator_state::__rbegin): New. 5243 (_Iterator_state::__rmiddle): New. 5244 (_Iterator_state::__rend): New. 5245 (_Parameter::_Parameter(const _Safe_iterator<>&, const char*, 5246 _Is_iterator)): Use _Safe_iterator<>::_S_constant. Grab normal underlying 5247 iterator type. 5248 (_Parameter::_Parameter(const _Safe_local_iterator<>&, const char*, 5249 _Is_iterator)): Likewise. 5250 (_Parameter::_S_reverse_state(_Iterator_state)): New. 5251 (_Parameter(__gnu_cxx::__normal_iterator<> const&, const char*, 5252 _Is_iterator)): New. 5253 (_Parameter(std::reverse_iterator<> const&, const char*, 5254 _Is_iterator)): New. 5255 (_Parameter(std::reverse_iterator<_Safe_iterator<>> const&, 5256 const char*, _Is_iterator)): New. 5257 (_Parameter(std::move_iterator<> const&, const char*, _Is_iterator): 5258 New. 5259 (_Parameter(std::move_iterator<_Safe_iterator<>> const&, const char*, 5260 _Is_iterator)): New. 5261 * testsuite/24_iterators/move_iterator/debug_neg.cc: New. 5262 * testsuite/24_iterators/normal_iterator/debug_neg.cc: New. 5263 * testsuite/24_iterators/reverse_iterator/debug_neg.cc: New. 5264 52652018-05-09 Jonathan Wakely <jwakely@redhat.com> 5266 5267 * include/bits/std_function.h (_Base_manager::_M_get_pointer): 5268 Use constexpr if in C++17 mode. 5269 (_Base_manager::_M_clone(_Any_data&, const _Any_data&, true_type)): 5270 Copy from const object. 5271 * testsuite/20_util/function/cons/non_copyconstructible.cc: New. 5272 52732018-05-08 François Dumont <fdumont@gcc.gnu.org> 5274 5275 * src/c++11/debug.cc [_GLIBCXX_HAVE_EXECINFO_H]: Include execinfo.h. 5276 [_GLIBCXX_HAVE_EXECINFO_H](_Error_formatter::_M_error): Render 5277 backtrace. 5278 5279 * include/debug/macros.h (__glibcxx_check_valid_range_at): New. 5280 * include/debug/functions.h (__check_valid_range): Use latter. 5281 * include/debug/macros.h (__glibcxx_check_valid_constructor_range): New, 5282 use latter. 5283 * include/debug/deque 5284 (deque::deque<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter. 5285 * include/debug/forward_list 5286 (forward_list::forward_list<_Iter>(_Iter, _Iter, const _Alloc&)): 5287 Likewise. 5288 * include/debug/list 5289 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise. 5290 * include/debug/list 5291 (list::list<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise. 5292 * include/debug/map.h 5293 (map::map<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise. 5294 (map::map<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)): 5295 Likewise. 5296 * include/debug/multimap.h 5297 (multimap::multimap<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise. 5298 (multimap::multimap<_Iter>(_Iter, _Iter, const _Compare&, 5299 const _Alloc&)): Likewise. 5300 * include/debug/set.h 5301 (set::set<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise. 5302 (set::set<_Iter>(_Iter, _Iter, const _Compare&, const _Alloc&)): 5303 Likewise. 5304 * include/debug/multiset.h 5305 (multiset::multiset<_Iter>(_Iter, _Iter, const _Alloc&)): Likewise. 5306 (multiset::multiset<_Iter>(_Iter, _Iter, const _Compare&, 5307 const _Alloc&)): Likewise. 5308 * include/debug/string 5309 (basic_string::basic_string<_Iter>(_Iter, _Iter, const _Alloc&)): 5310 Likewise. 5311 * include/debug/unordered_map 5312 (unordered_map::unordered_map<_Iter>(_Iter, _Iter, const _Alloc&)): 5313 Likewise. 5314 (unordered_multimap::unordered_multimap<_Iter>(_Iter, _Iter, 5315 const _Alloc&)): Likewise. 5316 * include/debug/unordered_set 5317 (unordered_set::unordered_set<_Iter>(_Iter, _Iter, const _Alloc&)): 5318 Likewise. 5319 (unordered_multiset::unordered_multiset<_Iter>(_Iter, _Iter, 5320 const _Alloc&)): Likewise. 5321 * include/debug/vector 5322 (vector::vector<_Iter>(_Iter, _Iter, const _Alloc&)): Use latter. 5323 5324 * include/debug/formatter.h (_Error_formatter::_M_function): New. 5325 (_Error_formatter(const char*, unsigned int)): Adapt. 5326 (_Error_formatter::_M_at): Rename in... 5327 (_Error_formatter::_S_at): ...that and adapt. 5328 * include/debug/macros.h (_GLIBCXX_DEBUG_VERIFY_AT_F): New. 5329 (_GLIBCXX_DEBUG_VERIFY_AT, _GLIBCXX_DEBUG_VERIFY): Adapt. 5330 * src/c++11/debug.cc (_Error_formatter::_M_error): Render _M_function 5331 when available. 5332 53332018-05-08 Jonathan Wakely <jwakely@redhat.com> 5334 5335 * include/bits/regex_automaton.h (_NFA_base::_M_paren_stack, _NFA): 5336 Use normal std::vector even in Debug Mode. 5337 5338 PR libstdc++/85672 5339 * include/Makefile.am [!ENABLE_FLOAT128]: Change c++config.h entry 5340 to #undef _GLIBCXX_USE_FLOAT128 instead of defining it to zero. 5341 * include/Makefile.in: Regenerate. 5342 * include/bits/c++config (_GLIBCXX_USE_FLOAT128): Move definition 5343 within conditional block. 5344 53452018-05-07 Jonathan Wakely <jwakely@redhat.com> 5346 5347 * doc/xml/manual/using.xml (table.cmd_options): Document that the 5348 C++17 Filesystem implementation also needs -lstdc++fs. 5349 5350 PR libstdc++/85671 5351 * include/bits/fs_path.h (operator/): Permit copy elision. 5352 * include/experimental/bits/fs_path.h (operator/): Likewise. 5353 53542018-05-07 Edward Smith-Rowland <3dw4rd@verizon.net> 5355 5356 Moar PR libstdc++/80506 5357 * include/bits/random.tcc (gamma_distribution::__generate_impl()): 5358 Fix magic number used in loop condition. 5359 53602018-05-04 Jonathan Wakely <jwakely@redhat.com> 5361 5362 PR libstdc++/85642 fix is_nothrow_default_constructible<optional<T>> 5363 * include/std/optional (_Optional_payload): Add noexcept to default 5364 constructor. Re-indent. 5365 (_Optional_payload<_Tp, true, true, true>): Likewise. Add noexcept to 5366 constructor for copying disengaged payloads. 5367 (_Optional_payload<_Tp, true, false, true>): Likewise. 5368 (_Optional_payload<_Tp, true, true, false>): Likewise. 5369 (_Optional_payload<_Tp, true, false, false>): Likewise. 5370 * testsuite/20_util/optional/cons/85642.cc: New. 5371 * testsuite/20_util/optional/cons/value_neg.cc: Adjust dg-error lines. 5372 53732018-05-03 Jonathan Wakely <jwakely@redhat.com> 5374 5375 PR libstdc++/82644 5376 * include/tr1/cmath [__STRICT_ANSI__] (hypergf, hypergl, hyperg): Use 5377 inline definitions instead of using-declarations. 5378 [__STRICT_ANSI__] (conf_hypergf, conf_hypergl, conf_hyperg): Likewise. 5379 * testsuite/tr1/5_numerical_facilities/special_functions/ 5380 07_conf_hyperg/compile_cxx17.cc: New. 5381 * testsuite/tr1/5_numerical_facilities/special_functions/ 5382 17_hyperg/compile_cxx17.cc: New. 5383 5384 PR libstdc++/84769 5385 * include/std/variant (visit): Qualify std::get call. 5386 5387 PR libstdc++/85632 use uintmax_t for arithmetic 5388 * src/filesystem/ops.cc (experimental::filesystem::space): Perform 5389 arithmetic in result type. 5390 * src/filesystem/std-ops.cc (filesystem::space): Likewise. 5391 * testsuite/27_io/filesystem/operations/space.cc: Check total capacity 5392 is greater than free space. 5393 * testsuite/experimental/filesystem/operations/space.cc: New. 5394 5395 * testsuite/20_util/remove_cvref/requirements/alias_decl.cc: New. 5396 * testsuite/20_util/remove_cvref/requirements/explicit_instantiation.cc: 5397 New. 5398 * testsuite/20_util/remove_cvref/value.cc: New. 5399 * testsuite/20_util/remove_cvref/value_ext.cc: New. 5400 5401 PR libstdc++/84087 LWG DR 2268 basic_string default arguments 5402 * include/bits/basic_string.h [_GLIBCXX_USE_CXX11_ABI=1] 5403 (append(const basic_string&, size_type, size_type) 5404 (assign(const basic_string&, size_type, size_type) 5405 (insert(size_type, const basic_string&, size_type, size_type) 5406 (replace(size_type,size_type,const basic_string&,size_type,size_type) 5407 (compare(size_type,size_type,constbasic_string&,size_type,size_type)): 5408 Add default arguments (LWG 2268). 5409 [_GLIBCXX_USE_CXX11_ABI=0] 5410 (append(const basic_string&, size_type, size_type) 5411 (assign(const basic_string&, size_type, size_type) 5412 (insert(size_type, const basic_string&, size_type, size_type) 5413 (replace(size_type,size_type,const basic_string&,size_type,size_type) 5414 (compare(size_type,size_type,constbasic_string&,size_type,size_type)): 5415 Likewise. 5416 * testsuite/21_strings/basic_string/dr2268.cc: New test. 5417 5418 PR libstdc++/84535 5419 * include/std/thread (thread::__not_same): New SFINAE helper. 5420 (thread::thread(_Callable&&, _Args&&...)): Add SFINAE constraint that 5421 first argument is not a std::thread. Add static assertion to check 5422 INVOKE expression is valid. 5423 (thread::thread(thread&), thread::thread(const thread&&)): Remove. 5424 (thread::_Invoke::_M_invoke, thread::_Invoke::operator()): Use 5425 __invoke_result for return types and remove exception specifications. 5426 * testsuite/30_threads/thread/cons/84535.cc: New. 5427 5428 * include/std/future (__async_result_of): Use __invoke_result instead 5429 of result_of. 5430 5431 * include/std/any (any_cast): Use __remove_cvref_t. 5432 * include/std/tuple (__make_tuple): Likewise. 5433 * include/std/type_traits (__remove_cvref_t): Define. 5434 (__result_of_memobj, __result_of_memfun): Use __remove_cvref_t. 5435 [__cplusplus > 201703L] (remove_cvref, remove_cvref_t): Define. 5436 * include/std/variant (__erased_hash): Use __remove_cvref_t. 5437 54382018-05-02 François Dumont <fdumont@gcc.gnu.org> 5439 5440 * include/bits/deque.tcc (deque<>::_M_assign_aux): Cast to void to 5441 ensure overloaded comma not used. 5442 * include/bits/list.tcc (list<>::_M_assign_dispatch): Likewise. 5443 * include/bits/vector.tcc (vector<>::_M_assign_aux): Likewise. 5444 * include/bits/stl_bvector.h (vector<bool>::_M_assign_aux): Likewise. 5445 * testsuite/23_containers/deque/modifiers/assign/1.cc: New. 5446 * testsuite/23_containers/list/modifiers/assign/1.cc: New. 5447 * testsuite/23_containers/vector/bool/modifiers/assign/1.cc: New. 5448 * testsuite/23_containers/vector/modifiers/assign/1.cc: New. 5449 54502018-05-02 Jonathan Wakely <jwakely@redhat.com> 5451 5452 PR libstdc++/68197 5453 * include/bits/ios_base.h (ios_base::iword, ios_base::pword): Cast 5454 indices to unsigned. 5455 * src/c++11/ios.cc (ios_base::_M_grow_words): Treat negative indices 5456 as failure. Refactor error handling. 5457 * testsuite/27_io/ios_base/storage/68197.cc: New. 5458 5459 PR libstdc++/57997 5460 PR libstdc++/83860 5461 * include/bits/gslice_array.h (gslice_array): Define default 5462 constructor as deleted, as per C++11 standard. 5463 * include/bits/mask_array.h (mask_array): Likewise. 5464 * include/bits/slice_array.h (slice_array): Likewise. 5465 * include/bits/valarray_after.h (_GBase, _GClos, _IBase, _IClos): Move 5466 to namespace __detail. 5467 (_GBase::_M_expr, _IBase::_M_expr): Use _ValArrayRef for type of data 5468 members. 5469 * include/bits/valarray_before.h (_ValArrayRef): New helper for type 5470 of data members in closure objects. 5471 (_FunBase, _ValFunClos, _RefFunClos, _UnBase, _UnClos, _BinBase) 5472 (_BinBase2, _BinBase1, _BinClos, _SBase, _SClos): Move to namespace 5473 __detail. 5474 (_FunBase::_M_expr, _UnBase::_M_expr, _BinBase::_M_expr1) 5475 (_BinBase::_M_expr2, _BinBase2::_M_expr1, _BinBase1::_M_expr2) 5476 (_SBase::_M_expr): Use _ValArrayRef for type of data members. 5477 * include/std/valarray (_UnClos, _BinClos, _SClos, _GClos, _IClos) 5478 (_ValFunClos, _RefFunClos): Move to namespace __detail and add 5479 using-declarations to namespace std. 5480 * testsuite/26_numerics/valarray/83860.cc: New. 5481 5482 * testsuite/backward/strstream_move.cc: Remove duplicate function 5483 call. 5484 5485 PR libstdc++/69608 5486 * include/backward/strstream (strstreambuf): Define move constructor 5487 and move assignment operator. 5488 (istrstream, ostrstream, strstream): Likewise. 5489 * testsuite/backward/strstream_move.cc: New. 5490 54912018-05-01 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com> 5492 5493 PR libstdc++/84654 5494 * acinclude.m4: Set ENABLE_FLOAT128 instead of _GLIBCXX_USE_FLOAT128. 5495 * config.h.in: Remove references to _GLIBCXX_USE_FLOAT128. 5496 * configure: Regenerate. 5497 * include/Makefile.am: Replace the value of _GLIBCXX_USE_FLOAT128 5498 based on ENABLE_FLOAT128. 5499 * include/Makefile.in: Regenerate. 5500 * include/bits/c++config: Define _GLIBCXX_USE_FLOAT128. 5501 [!defined(__FLOAT128__) && !defined(__SIZEOF_FLOAT128__)]: Undefine 5502 _GLIBCXX_USE_FLOAT128. 5503 55042018-04-24 H.J. Lu <hongjiu.lu@intel.com> 5505 5506 * configure: Regenerated. 5507 55082018-04-19 Jakub Jelinek <jakub@redhat.com> 5509 5510 * configure: Regenerated. 5511 55122018-04-18 Jonathan Wakely <jwakely@redhat.com> 5513 Jakub Jelinek <jakub@redhat.com> 5514 5515 PR libstdc++/85442 5516 * src/c++11/Makefile.am: Don't generate debuginfo again for 5517 cxx11-ios_failure-lt.s and cxx11-ios_failure.s files. 5518 * src/c++11/Makefile.in: Regenerate. 5519 55202018-04-18 Jonathan Wakely <jwakely@redhat.com> 5521 5522 PR libstdc++/84442 5523 * testsuite/30_threads/thread/cons/terminate.cc 5524 [!_GLIBCXX_USE_C99_STDLIB] : Use _exit or std::exit instead of _Exit. 5525 55262018-04-18 David Malcolm <dmalcolm@redhat.com> 5527 5528 PR jit/85384 5529 * configure: Regenerate. 5530 55312018-04-16 Jonathan Wakely <jwakely@redhat.com> 5532 5533 * testsuite/experimental/filesystem/file_status/1.cc: Add 5534 -DUSE_FILESYSTEM_TS to dg-options. 5535 * testsuite/experimental/filesystem/iterators/directory_iterator.cc: 5536 Likewise. 5537 * testsuite/experimental/filesystem/iterators/pop.cc: Likewise. 5538 * testsuite/experimental/filesystem/iterators/ 5539 recursive_directory_iterator.cc: Likewise. 5540 * testsuite/experimental/filesystem/operations/absolute.cc: Likewise. 5541 * testsuite/experimental/filesystem/operations/canonical.cc: Likewise. 5542 * testsuite/experimental/filesystem/operations/copy.cc: Likewise. 5543 * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise. 5544 * testsuite/experimental/filesystem/operations/create_directories.cc: 5545 Likewise. 5546 * testsuite/experimental/filesystem/operations/create_directory.cc: 5547 Likewise. 5548 * testsuite/experimental/filesystem/operations/create_symlink.cc: 5549 Likewise. 5550 * testsuite/experimental/filesystem/operations/current_path.cc: 5551 Likewise. 5552 * testsuite/experimental/filesystem/operations/equivalent.cc: Likewise. 5553 * testsuite/experimental/filesystem/operations/exists.cc: Likewise. 5554 * testsuite/experimental/filesystem/operations/file_size.cc: Likewise. 5555 * testsuite/experimental/filesystem/operations/is_empty.cc: Likewise. 5556 * testsuite/experimental/filesystem/operations/last_write_time.cc: 5557 Likewise. 5558 * testsuite/experimental/filesystem/operations/permissions.cc: 5559 Likewise. 5560 * testsuite/experimental/filesystem/operations/read_symlink.cc: 5561 Likewise. 5562 * testsuite/experimental/filesystem/operations/remove.cc: Likewise. 5563 * testsuite/experimental/filesystem/operations/remove_all.cc: Likewise. 5564 * testsuite/experimental/filesystem/operations/status.cc: Likewise. 5565 * testsuite/experimental/filesystem/operations/temp_directory_path.cc: 5566 Likewise. 5567 * testsuite/experimental/filesystem/path/append/path.cc: Likewise. 5568 * testsuite/experimental/filesystem/path/assign/assign.cc: Likewise. 5569 * testsuite/experimental/filesystem/path/assign/copy.cc: Likewise. 5570 * testsuite/experimental/filesystem/path/compare/compare.cc: Likewise. 5571 * testsuite/experimental/filesystem/path/compare/path.cc: Likewise. 5572 * testsuite/experimental/filesystem/path/compare/strings.cc: Likewise. 5573 * testsuite/experimental/filesystem/path/concat/path.cc: Likewise. 5574 * testsuite/experimental/filesystem/path/concat/strings.cc: Likewise. 5575 * testsuite/experimental/filesystem/path/construct/copy.cc: Likewise. 5576 * testsuite/experimental/filesystem/path/construct/default.cc: 5577 Likewise. 5578 * testsuite/experimental/filesystem/path/construct/locale.cc: Likewise. 5579 * testsuite/experimental/filesystem/path/construct/range.cc: Likewise. 5580 * testsuite/experimental/filesystem/path/construct/string_view.cc: 5581 Likewise. 5582 * testsuite/experimental/filesystem/path/decompose/extension.cc: 5583 Likewise. 5584 * testsuite/experimental/filesystem/path/decompose/filename.cc: 5585 Likewise. 5586 * testsuite/experimental/filesystem/path/decompose/parent_path.cc: 5587 Likewise. 5588 * testsuite/experimental/filesystem/path/decompose/relative_path.cc: 5589 Likewise. 5590 * testsuite/experimental/filesystem/path/decompose/root_directory.cc: 5591 Likewise. 5592 * testsuite/experimental/filesystem/path/decompose/root_name.cc: 5593 Likewise. 5594 * testsuite/experimental/filesystem/path/decompose/root_path.cc: 5595 Likewise. 5596 * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise. 5597 * testsuite/experimental/filesystem/path/generic/generic_string.cc: 5598 Likewise. 5599 * testsuite/experimental/filesystem/path/itr/traversal.cc: Likewise. 5600 * testsuite/experimental/filesystem/path/modifiers/clear.cc: Likewise. 5601 * testsuite/experimental/filesystem/path/modifiers/make_preferred.cc: 5602 Likewise. 5603 * testsuite/experimental/filesystem/path/modifiers/remove_filename.cc: 5604 Likewise. 5605 * testsuite/experimental/filesystem/path/modifiers/replace_extension.cc: 5606 Likewise. 5607 * testsuite/experimental/filesystem/path/modifiers/replace_filename.cc: 5608 Likewise. 5609 * testsuite/experimental/filesystem/path/modifiers/swap.cc: Likewise. 5610 * testsuite/experimental/filesystem/path/native/string.cc: Likewise. 5611 * testsuite/experimental/filesystem/path/nonmember/hash_value.cc: 5612 Likewise. 5613 * testsuite/experimental/filesystem/path/query/empty.cc: Likewise. 5614 * testsuite/experimental/filesystem/path/query/has_extension.cc: 5615 Likewise. 5616 * testsuite/experimental/filesystem/path/query/has_filename.cc: 5617 Likewise. 5618 * testsuite/experimental/filesystem/path/query/has_parent_path.cc: 5619 Likewise. 5620 * testsuite/experimental/filesystem/path/query/has_relative_path.cc: 5621 Likewise. 5622 * testsuite/experimental/filesystem/path/query/has_root_directory.cc: 5623 Likewise. 5624 * testsuite/experimental/filesystem/path/query/has_root_name.cc: 5625 Likewise. 5626 * testsuite/experimental/filesystem/path/query/has_root_path.cc: 5627 Likewise. 5628 * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise. 5629 * testsuite/experimental/filesystem/path/query/is_relative.cc: 5630 Likewise. 5631 56322018-04-13 Jonathan Wakely <jwakely@redhat.com> 5633 5634 * src/c++11/Makefile.am: Fix sed command. 5635 * src/c++11/Makefile.in: Regenerate. 5636 5637 * src/c++11/Makefile.am: Rewrite sed rule to be less fragile and to 5638 handle mangled names starting with double underscores on darwin. 5639 * src/c++11/Makefile.in: Regenerate. 5640 56412018-04-12 Jonathan Wakely <jwakely@redhat.com> 5642 5643 * src/c++11/Makefile.am: Fix comment. 5644 * src/c++11/Makefile.in: Regenerate. 5645 * src/c++11/cxx11-ios_failure.cc: Fix comment. 5646 * src/c++98/ios_failure.cc: Likewise. 5647 5648 * src/c++11/ios.cc: Remove redundant macro definition. 5649 56502018-04-11 Jonathan Wakely <jwakely@redhat.com> 5651 5652 * doc/xml/manual/abi.xml: Document header locations in recent 5653 releases. 5654 * doc/xml/manual/evolution.xml: Add API changes since GCC 5. 5655 * doc/xml/manual/spine.xml: Update copyright years. 5656 * doc/xml/manual/strings.xml: Adjust tolower example to avoid 5657 undefined behaviour. 5658 * doc/xml/manual/test.xml: Update outdated notes on VERIFY in tests. 5659 * doc/html/*: Regenerate. 5660 56612018-04-10 Jonathan Wakely <jwakely@redhat.com> 5662 5663 * doc/xml/faq.xml: Update links to archived copy of SGI STL docs. 5664 * doc/xml/manual/backwards_compatibility.xml: Likewise. 5665 * doc/xml/manual/containers.xml: Likewise. 5666 * doc/xml/manual/debug_mode.xml: Likewise. 5667 * doc/xml/manual/extensions.xml: Likewise. 5668 * doc/xml/manual/policy_data_structures_biblio.xml: Likewise. 5669 * doc/xml/manual/using.xml: Likewise. 5670 * doc/xml/manual/utilities.xml: Likewise. 5671 5672 PR libstdc++/85222 5673 * src/c++11/Makefile.am [ENABLE_DUAL_ABI]: Add special rules for 5674 cxx11-ios_failure.cc to rewrite type info for __ios_failure. 5675 * src/c++11/Makefile.in: Regenerate. 5676 * src/c++11/cxx11-ios_failure.cc (__ios_failure, __iosfail_type_info): 5677 New types. 5678 [_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here. 5679 * src/c++11/ios.cc (__throw_ios_failure): Remove definition. 5680 * src/c++98/ios_failure.cc (__construct_ios_failure) 5681 (__destroy_ios_failure, is_ios_failure_handler): New functions. 5682 [!_GLIBCXX_USE_DUAL_ABI] (__throw_ios_failure): Define here. 5683 * testsuite/27_io/ios_base/failure/dual_abi.cc: New. 5684 * testsuite/27_io/basic_ios/copyfmt/char/1.cc: Revert changes to 5685 handler types, to always catch std::ios_base::failure. 5686 * testsuite/27_io/basic_ios/exceptions/char/1.cc: Likewise. 5687 * testsuite/27_io/basic_istream/extractors_arithmetic/char/ 5688 exceptions_failbit.cc: Likewise. 5689 * testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/ 5690 exceptions_failbit.cc: Likewise. 5691 * testsuite/27_io/basic_istream/extractors_other/char/ 5692 exceptions_null.cc: Likewise. 5693 * testsuite/27_io/basic_istream/extractors_other/wchar_t/ 5694 exceptions_null.cc: Likewise. 5695 * testsuite/27_io/basic_istream/sentry/char/12297.cc: Likewise. 5696 * testsuite/27_io/basic_istream/sentry/wchar_t/12297.cc: Likewise. 5697 * testsuite/27_io/basic_ostream/inserters_other/char/ 5698 exceptions_null.cc: Likewise. 5699 * testsuite/27_io/basic_ostream/inserters_other/wchar_t/ 5700 exceptions_null.cc: Likewise. 5701 * testsuite/27_io/ios_base/storage/2.cc: Likewise. 5702 57032018-04-05 Jonathan Wakely <jwakely@redhat.com> 5704 5705 * include/std/variant (_VARIANT_RELATION_FUNCTION_TEMPLATE): Qualify 5706 __get calls to avoid ADL and avoid ambiguity due to Clang bug. 5707 57082018-04-03 Jonathan Wakely <jwakely@redhat.com> 5709 5710 PR libstdc++/85183 5711 * include/std/variant (_Move_assign_base::operator=): Fix incorrect 5712 value categories. 5713 * testsuite/20_util/variant/85183.cc: New. 5714 57152018-03-26 Jonathan Wakely <jwakely@redhat.com> 5716 5717 * include/std/variant (__get): Qualify calls to avoid ADL. 5718 (__select_index): Adjust whitespace. 5719 (variant): Add using-declaration to workaround Clang bug. 5720 57212018-03-22 Jonathan Wakely <jwakely@redhat.com> 5722 5723 PR libstdc++/85040 5724 * include/bits/stl_function.h (greater::__not_overloaded) 5725 (less::__not_overloaded, greater_equal::__not_overloaded) 5726 (less_equal::__not_overloaded): Fix ambiguous specializations. 5727 * testsuite/20_util/function_objects/comparisons_pointer.cc: Add 5728 tests for type with overloaded operators. 5729 57302018-03-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 5731 5732 PR libstdc++/77691 5733 * testsuite/experimental/memory_resource/resource_adaptor.cc: 5734 xfail execution on 32-bit Solaris/x86. 5735 57362018-03-21 Jonathan Wakely <jwakely@redhat.com> 5737 5738 * testsuite/20_util/function_objects/comparisons_pointer.cc: Use 5739 VERIFY instead of assert. 5740 * testsuite/20_util/hash/84998.cc: New test. 5741 * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: New 5742 copy of test adjusted for Debug Mode. 5743 * testsuite/23_containers/vector/cons/destructible_neg.cc: Do not run 5744 test in Debug Mode. 5745 57462018-03-20 François Dumont <fdumont@gcc.gnu.org> 5747 5748 PR libstdc++/84998 5749 * include/bits/stl_bvector.h: Fix std::hash friend declaration. 5750 * include/std/bitset: Likewise. 5751 * include/bits/stl_map.h (std::map<>): Fix _Rb_tree_merge_helper friend 5752 declaration. 5753 * include/bits/stl_multimap.h (std::multimap<>): Likewise. 5754 * include/bits/stl_multiset.h (std::multiset<>): Likewise. 5755 * include/bits/stl_set.h (std::set<>): Likewise. 5756 * include/bits/unordered_map.h (std::unordered_map<>): Fix 5757 _Hash_merge_helper friend declaration. 5758 (std::unordered_multimap<>): Likewise. 5759 * include/bits/unordered_set.h (std::unordered_set<>): Likewise. 5760 (std::unordered_multiset<>): Likewise. 5761 57622018-03-19 Gerald Pfeifer <gerald@pfeifer.com> 5763 5764 * doc/xml/api.xml: www.fsf.org has moved to https. Also omit 5765 trailing slash for domain level link. 5766 * doc/xml/faq.xml: Ditto. 5767 * doc/xml/manual/appendix_free.xml (software): Ditto. 5768 * doc/xml/manual/intro.xml: Ditto. 5769 * doc/xml/manual/spine.xml: Ditto. 5770 * doc/xml/spine.xml: Ditto. 5771 57722018-03-19 Gerald Pfeifer <gerald@pfeifer.com> 5773 5774 * doc/xml/manual/documentation_hacking.xml: Adjust link to 5775 docbook.org. 5776 57772018-03-17 Jonathan Wakely <jwakely@redhat.com> 5778 5779 * testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust 5780 to compile as C++98. 5781 57822018-03-14 Jonathan Wakely <jwakely@redhat.com> 5783 5784 PR libstdc++/78420 5785 * include/bits/stl_function.h (greater<_Tp*>, less<_Tp*>) 5786 (greater_equal<_Tp*>, less_equal<_Tp>*): Add partial specializations 5787 to ensure total order for pointers. 5788 (greater<void>, less<void>, greater_equal<void>, less_equal<void>): 5789 Add operator() overloads for pointer arguments and make generic 5790 overloads dispatch to new _S_cmp functions when comparisons would 5791 use built-in operators for pointers. 5792 * testsuite/20_util/function_objects/comparisons_pointer.cc: New. 5793 57942018-03-12 Jonathan Wakely <jwakely@redhat.com> 5795 5796 PR libstdc++/84773 5797 PR libstdc++/83662 5798 * crossconfig.m4: Check for aligned_alloc etc. on freebsd and mingw32. 5799 * configure: Regenerate. 5800 * include/c_global/cstdlib [_GLIBCXX_HAVE_ALIGNED_ALLOC] 5801 (aligned_alloc): Add using-declaration. 5802 * testsuite/18_support/aligned_alloc/aligned_alloc.cc: New test. 5803 58042018-03-09 François Dumont <fdumont@gcc.gnu.org> 5805 5806 * python/libstdcxx/v6/printers.py (build_libstdcxx_dictionary): 5807 Fix std::_Fwd_list_iterator and std::_Fwd_list_const_iterator printers 5808 registration. 5809 58102018-03-09 Jonathan Wakely <jwakely@redhat.com> 5811 5812 PR libstdc++/84769 5813 * include/std/variant (get<_Tp, _Types...>, get_if<_Tp, _Types...>): 5814 Qualify calls to get<_Np, Types...> and get_if<_Np, _Types...>. 5815 5816 src/filesystem/ops.cc (create_dir): Pass error_code to is_directory. 5817 src/filesystem/std-ops.cc (create_dir): Likewise. 5818 58192018-03-08 François Dumont <fdumont@gcc.gnu.org> 5820 5821 * python/libstdcxx/v6/printers.py (NodeIteratorPrinter): New. 5822 (StdListIteratorPrinter): Inherit from latter. 5823 (StdFwdListIteratorPrinter): New, inherit from latter. 5824 (StdDebugIteratorPrinter.to_string): Use non-debug iterator printer 5825 when iterator has no associated container. 5826 (build_libstdcxx_dictionary): Add __gnu_cxx::_Fwd_list_iterator and 5827 __gnu_cxx::_Fwd_list_const_iterator printers. Remove __norm namespace 5828 registrations. 5829 * testsuite/libstdc++-prettyprinters/debug.cc: Adapt. 5830 * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Adapt. 5831 58322018-03-06 Ville Voutilainen <ville.voutilainen@gmail.com> 5833 5834 PR libstdc++/84601 5835 * include/std/optional (_Optional_payload): Split into multiple 5836 specializations that can handle different cases of trivial or 5837 non-trivial assignment operators. 5838 * testsuite/20_util/optional/84601.cc: New. 5839 * testsuite/20_util/optional/cons/value_neg.cc: Adjust. 5840 58412018-03-02 Jonathan Wakely <jwakely@redhat.com> 5842 5843 PR libstdc++/84671 5844 * include/bits/parse_numbers.h (_Number_help): Add partial 5845 specialization to handle digit separators. Adjust partial 5846 specialization for recursion temrination to require _Pow == 1ULL. 5847 * testsuite/20_util/duration/literals/84671.cc: New 5848 58492018-02-27 Ville Voutilainen <ville.voutilainen@gmail.com> 5850 5851 Implement the missing bits of LWG 2769 5852 * include/std/any (any_cast(const any&)): Add static_assert. 5853 (any_cast(any&)): Likewise. 5854 (any_cast(any&&)): Likewise, and remove the handling 5855 for copyable-but-not-movable type. 5856 * testsuite/20_util/any/misc/any_cast.cc: Adjust. 5857 * testsuite/20_util/any/misc/any_cast_neg.cc: Likewise, and 5858 add new tests. 5859 58602018-02-23 Jonathan Wakely <jwakely@redhat.com> 5861 5862 PR libstdc++/84532 5863 * include/std/thread (thread::__make_invoker): Construct tuple 5864 directly instead of using make_tuple. 5865 * testsuite/30_threads/async/84532.cc: New. 5866 * testsuite/30_threads/thread/84532.cc: New. 5867 58682018-02-20 François Dumont <fdumont@gcc.gnu.org> 5869 5870 * include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION] 5871 (template<> __aligned_buffer): Define as __aligned_membuf alias. 5872 58732018-02-19 Igor Tsimbalist <igor.v.tsimbalist@intel.com> 5874 5875 PR target/84148 5876 * configure: Regenerate. 5877 58782018-02-15 Jonathan Wakely <jwakely@redhat.com> 5879 5880 PR libstdc++/81797 5881 * configure.ac (INCLUDE_DIR_NOTPARALLEL): Define. 5882 * configure: Regenerate. 5883 * include/Makefile.am (INCLUDE_DIR_NOTPARALLEL): Add .NOTPARALLEL when 5884 defined. 5885 * include/Makefile.in: Regenerate. 5886 58872018-01-29 Jonathan Wakely <jwakely@redhat.com> 5888 5889 PR libstdc++/83833 5890 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: 5891 Add -ffloat-store to options for m68k and ia32. 5892 5893 * doc/xml/faq.xml: Update copyright years. 5894 * doc/html/*: Regenerate. 5895 5896 PR libstdc++/83658 5897 * include/std/any (any::__do_emplace): Only set _M_manager after 5898 constructing the contained object. 5899 * testsuite/20_util/any/misc/any_cast_neg.cc: Adjust dg-error line. 5900 * testsuite/20_util/any/modifiers/83658.cc: New test. 5901 59022018-01-25 Jonathan Wakely <jwakely@redhat.com> 5903 5904 PR libstdc++/81076 5905 * include/c_global/cstddef (__byte_operand): Define primary template. 5906 * testsuite/18_support/byte/81076.cc: New test. 5907 59082018-01-19 Christophe Lyon <christophe.lyon@linaro.org> 5909 5910 * testsuite/ext/special_functions/airy_ai/check_nan.cc: Fix 5911 dg-options and dg-add-options order. 5912 * testsuite/ext/special_functions/airy_bi/check_nan.cc: Likewise. 5913 * testsuite/ext/special_functions/conf_hyperg/check_nan.cc: 5914 Likewise. 5915 * testsuite/ext/special_functions/hyperg/check_nan.cc: Likewise. 5916 * testsuite/special_functions/01_assoc_laguerre/check_nan.cc: 5917 Likewise. 5918 * testsuite/special_functions/02_assoc_legendre/check_nan.cc: 5919 Likewise. 5920 * testsuite/special_functions/03_beta/check_nan.cc: Likewise. 5921 * testsuite/special_functions/04_comp_ellint_1/check_nan.cc: 5922 Likewise. 5923 * testsuite/special_functions/05_comp_ellint_2/check_nan.cc: 5924 Likewise. 5925 * testsuite/special_functions/06_comp_ellint_3/check_nan.cc: 5926 Likewise. 5927 * testsuite/special_functions/06_comp_ellint_3/pr66689.cc: 5928 Likewise. 5929 * testsuite/special_functions/07_cyl_bessel_i/check_nan.cc: 5930 Likewise. 5931 * testsuite/special_functions/08_cyl_bessel_j/check_nan.cc: 5932 Likewise. 5933 * testsuite/special_functions/09_cyl_bessel_k/check_nan.cc: 5934 Likewise. 5935 * testsuite/special_functions/10_cyl_neumann/check_nan.cc: 5936 Likewise. 5937 * testsuite/special_functions/11_ellint_1/check_nan.cc: Likewise. 5938 * testsuite/special_functions/12_ellint_2/check_nan.cc: Likewise. 5939 * testsuite/special_functions/13_ellint_3/check_nan.cc: Likewise. 5940 * testsuite/special_functions/13_ellint_3/pr66689.cc: Likewise. 5941 * testsuite/special_functions/14_expint/check_nan.cc: Likewise. 5942 * testsuite/special_functions/15_hermite/check_nan.cc: Likewise. 5943 * testsuite/special_functions/16_laguerre/check_nan.cc: Likewise. 5944 * testsuite/special_functions/17_legendre/check_nan.cc: Likewise. 5945 * testsuite/special_functions/18_riemann_zeta/check_nan.cc: 5946 Likewise. 5947 * testsuite/special_functions/19_sph_bessel/check_nan.cc: 5948 Likewise. 5949 * testsuite/special_functions/20_sph_legendre/check_nan.cc: 5950 Likewise. 5951 * testsuite/special_functions/21_sph_neumann/check_nan.cc: 5952 Likewise. 5953 59542018-01-18 Uros Bizjak <ubizjak@gmail.com> 5955 5956 * configure.ac (AC_CHECK_HEADERS): Add linux/types.h. Conditionally 5957 include linux/types.h when checking linux/random.h header. 5958 * config.h.in: Regenerate. 5959 * configure: Ditto. 5960 * src/c++11/random.cc: Conditionally include linux/types.h. 5961 59622018-01-16 Eric Botcazou <ebotcazou@adacore.com> 5963 5964 * testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux. 5965 59662018-01-16 Jonathan Wakely <jwakely@redhat.com> 5967 5968 PR libstdc++/83834 5969 * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace std::c[a-g]* wildcard 5970 pattern with exact match for std::cerr. 5971 59722018-01-15 Jonathan Wakely <jwakely@redhat.com> 5973 5974 PR libstdc++/83833 5975 * include/bits/random.h (chi_squared_distribution::param): Update 5976 gamma distribution parameter. 5977 * testsuite/26_numerics/random/chi_squared_distribution/83833.cc: New 5978 test. 5979 5980 PR libstdc++/83830 5981 * include/std/type_traits (has_unique_object_representations_v): Add 5982 variable template. 5983 * testsuite/20_util/has_unique_object_representations/value.cc: Check 5984 variable template. 5985 59862018-01-15 Ville Voutilainen <ville.voutilainen@gmail.com> 5987 5988 Make optional conditionally 5989 trivially_{copy,move}_{constructible,assignable} 5990 * include/std/optional (_Optional_payload): Fix the comment in 5991 the class head and turn into a primary and one specialization. 5992 (_Optional_payload::_M_engaged): Strike the NSDMI. 5993 (_Optional_payload<_Tp, false>::operator=(const _Optional_payload&)): 5994 New. 5995 (_Optional_payload<_Tp, false>::operator=(_Optional_payload&&)): 5996 Likewise. 5997 (_Optional_payload<_Tp, false>::_M_get): Likewise. 5998 (_Optional_payload<_Tp, false>::_M_reset): Likewise. 5999 (_Optional_base_impl): Likewise. 6000 (_Optional_base): Turn into a primary and three specializations. 6001 (optional(nullopt)): Change the base init. 6002 * testsuite/20_util/optional/assignment/8.cc: New. 6003 * testsuite/20_util/optional/cons/trivial.cc: Likewise. 6004 * testsuite/20_util/optional/cons/value_neg.cc: Adjust. 6005 60062018-01-15 Jonathan Wakely <jwakely@redhat.com> 6007 6008 PR libstdc++/80276 6009 * python/libstdcxx/v6/printers.py (strip_inline_namespaces): New. 6010 (get_template_arg_list): New. 6011 (StdVariantPrinter._template_args): Remove, use get_template_arg_list 6012 instead. 6013 (TemplateTypePrinter): Rewrite to work with gdb.Type objects instead 6014 of strings and regular expressions. 6015 (add_one_template_type_printer): Adapt to new TemplateTypePrinter. 6016 (FilteringTypePrinter): Add docstring. Match using startswith. Use 6017 strip_inline_namespaces instead of strip_versioned_namespace. 6018 (add_one_type_printer): Prepend namespace to match argument. 6019 (register_type_printers): Add type printers for char16_t and char32_t 6020 string types and for types using cxx11 ABI. Update calls to 6021 add_one_template_type_printer to provide default argument dicts. 6022 * testsuite/libstdc++-prettyprinters/80276.cc: New test. 6023 * testsuite/libstdc++-prettyprinters/whatis.cc: Remove tests for 6024 basic_string<unsigned char> and basic_string<signed char>. 6025 * testsuite/libstdc++-prettyprinters/whatis2.cc: Duplicate whatis.cc 6026 to test local variables, without overriding _GLIBCXX_USE_CXX11_ABI. 6027 60282018-01-14 Andreas Schwab <schwab@linux-m68k.org> 6029 6030 PR libstdc++/81092 6031 * config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update. 6032 60332018-01-13 Tim Shen <timshen@google.com> 6034 6035 PR libstdc++/83601 6036 * include/bits/regex.tcc (regex_replace): Fix escaping in sed. 6037 * testsuite/28_regex/algorithms/regex_replace/char/pr83601.cc: Tests. 6038 * testsuite/28_regex/algorithms/regex_replace/wchar_t/pr83601.cc: Tests. 6039 60402018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 6041 6042 PR libstdc++/64054 6043 * testsuite/27_io/basic_ostream/inserters_arithmetic/char/hexfloat.cc: 6044 Remove dg-xfail-run-if. 6045 60462018-01-10 François Dumont <fdumont@gcc.gnu.org> 6047 6048 * include/bits/forward_list.h 6049 (_Fwd_list_node_base(_Fwd_list_node_base&&)): New. 6050 (_Fwd_list_node_base& operator=(_Fwd_list_node_base&&)): New. 6051 (_Fwd_list_node_base(const _Fwd_list_node_base&)): Explicit delete. 6052 (_Fwd_list_node_base& operator=(const _Fwd_list_node_base&)): Likewise. 6053 (_Fwd_list_impl()): Add noexcept qualification. 6054 (_Fwd_list_impl(const _Node_alloc_type&)): Delete. 6055 (_Fwd_list_impl(_Fwd_list_impl&&)): New, default. 6056 (_Fwd_list_impl(_Fwd_list_impl&&, _Node_alloc_type&&)): New. 6057 (_Fwd_list_base()): Default. 6058 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&, true_type)): New. 6059 (_Fwd_list_base(_Fwd_list_base&&)): Default. 6060 (forward_list<>()): Default. 6061 (forward_list<>(forward_list&&)): Default. 6062 (forward_list(forward_list&&, _Node_alloc_type&&, false_type)): New. 6063 (forward_list(forward_list&&, _Node_alloc_type&&, true_type)): New. 6064 (forward_list(forward_list&&, const _Alloc&)): Adapt to use latters. 6065 * include/bits/forward_list.tcc 6066 (_Fwd_list_base(_Fwd_list_base&&, _Node_alloc_type&&)): Adapt to use 6067 _M_impl._M_head move assignment. 6068 (forward_list<>::merge(forward_list<>&&, _Comp)): Likewise. 6069 * testsuite/23_containers/forward_list/allocator/default_init.cc: New. 6070 60712018-01-09 Jonathan Wakely <jwakely@redhat.com> 6072 6073 PR libstdc++/80276 6074 * python/libstdcxx/v6/printers.py (SharedPointerPrinter) 6075 (UniquePointerPrinter): Print correct template argument, not type of 6076 the pointer. 6077 (TemplateTypePrinter._recognizer.recognize): Handle failure to lookup 6078 a type. 6079 * testsuite/libstdc++-prettyprinters/cxx11.cc: Test unique_ptr of 6080 array type. 6081 * testsuite/libstdc++-prettyprinters/cxx17.cc: Test shared_ptr and 6082 weak_ptr of array types. 6083 60842018-01-09 François Dumont <fdumont@gcc.gnu.org> 6085 6086 PR libstdc++/83709 6087 * include/bits/hashtable_policy.h 6088 (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if 6089 __first != __last. 6090 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New. 6091 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)): 6092 Add false_type parameter. 6093 (_Insert_base::insert): Adapt. 6094 * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)): 6095 Adapt. 6096 (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)): 6097 Add __n_elt parameter, defaulted to 1. 6098 (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash 6099 policy _M_need_rehash. 6100 (_Hashtable::_M_merge_unique): Pass target number of elements to add to 6101 produce only 1 rehash if necessary. 6102 * testsuite/23_containers/unordered_map/insert/83709.cc: New. 6103 * testsuite/23_containers/unordered_set/insert/83709.cc: New. 6104 61052018-01-09 Juraj Oršulić <juraj.orsulic@fer.hr> 6106 Jonathan Wakely <jwakely@redhat.com> 6107 6108 PR libstdc++/59253 (partial) 6109 * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator 6110 type for pointer stored by shared_ptr, weak_ptr and unique_ptr. 6111 (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as 6112 children. 6113 * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output 6114 of unique_ptr printer. 6115 * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected 6116 output of shared_ptr printer. 6117 61182018-01-05 Jonathan Wakely <jwakely@redhat.com> 6119 6120 PR libstdc++/83626 6121 * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove 6122 unnecessary symlink_status call. 6123 (remove_all(const path&, error_code&)): Use filesystem::remove. 6124 * src/filesystem/std-ops.cc: Likewise. 6125 6126 PR libstdc++/83279 6127 * src/filesystem/std-ops.cc (do_copy_file): Use non-null offset with 6128 sendfile. 6129 6130 PR libstdc++/83626 6131 * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not 6132 report an error for ENOENT. 6133 (remove_all(const path&)): Fix type of result variable. 6134 (remove_all(const path&, error_code&)): Use non-throwing increment 6135 for directory iterator. Call POSIX remove directly to avoid redundant 6136 calls to symlink_status. Do not report errors for ENOENT. 6137 * src/filesystem/std-ops.cc: Likewise. 6138 * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing 6139 overload. 6140 * testsuite/experimental/filesystem/operations/remove_all.cc: 6141 Likewise. 6142 61432018-01-04 Jonathan Wakely <jwakely@redhat.com> 6144 6145 PR libstdc++/83626 6146 * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove 6147 redundant call to ec.clear(). 6148 (remove_all(const path&, error_code&))): Do not return an error for 6149 non-existent paths. 6150 * src/filesystem/std-ops.cc: Likewise. 6151 * testsuite/27_io/filesystem/operations/remove.cc: New test. 6152 * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected 6153 results for non-existent paths. 6154 * testsuite/experimental/filesystem/operations/remove.cc: New test. 6155 * testsuite/experimental/filesystem/operations/remove_all.cc: Fix 6156 expected results for non-existent paths. 6157 6158 * include/bits/fs_ops.h (exists(const path&, error_code&))): Only 6159 check status_known once. 6160 * include/experimental/bits/fs_ops.h: Likewise. 6161 6162 PR libstdc++/83607 6163 * include/std/functional (__is_byte_like): New trait. 6164 (__is_std_equal_to): Remove. 6165 (__boyer_moore_base_t): Use __is_byte_like instead of 6166 __is_std_equal_to. 6167 * include/experimental/functional (__is_std_equal_to): Remove. 6168 (__boyer_moore_base_t): Use __is_byte_like instead of 6169 __is_std_equal_to. 6170 * testsuite/20_util/function_objects/83607.cc: New test. 6171 61722018-01-03 Ville Voutilainen <ville.voutilainen@gmail.com> 6173 6174 Protect optional's deduction guide with the feature macro 6175 * include/std/optional: Use the feature macro. 6176 61772018-01-03 Jakub Jelinek <jakub@redhat.com> 6178 6179 Update copyright years. 6180 6181Copyright (C) 2018 Free Software Foundation, Inc. 6182 6183Copying and distribution of this file, with or without modification, 6184are permitted in any medium without royalty provided the copyright 6185notice and this notice are preserved. 6186