Home | History | Annotate | Line # | Download | only in libstdc++-v3
      1 2018-12-23  Franois Dumont  <fdumont (a] 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 
     15 2018-12-22  Iain Sandoe  <iain (a] sandoe.co.uk>
     16 
     17 	* /config/os/bsd/darwin/ppc-extra.ver: Append long double symbols.
     18 
     19 2018-12-20  Jonathan Wakely  <jwakely (a] 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 
     29 2018-12-19  Jonathan Wakely  <jwakely (a] redhat.com>
     30 
     31 	* doc/xml/manual/abi.xml: Add missing word.
     32 
     33 2018-12-18  Jonathan Wakely  <jwakely (a] 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 
     71 2018-12-17  Jonathan Wakely  <jwakely (a] 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 
     84 2018-12-13  Jonathan Wakely  <jwakely (a] 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 
    167 2018-12-12  Jonathan Wakely  <jwakely (a] 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 
    183 2018-12-12  Jakub Jelinek  <jakub (a] 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 
    193 2018-12-10  Gerald Pfeifer  <gerald (a] pfeifer.com>
    194 
    195 	* doc/xml/manual/documentation_hacking.xml: Update reference
    196 	to epubcheck.
    197 
    198 2018-12-10  Jonathan Wakely  <jwakely (a] redhat.com>
    199 
    200 	* testsuite/experimental/filesystem/path/query/is_absolute.cc: Fix
    201 	test to use TS, not C++17.
    202 
    203 2018-12-06  Iain Sandoe  <iain (a] sandoe.co.uk>
    204 
    205 	* scripts/make_exports.pl (check names): Dont try to export
    206 	construction vtable symbols.
    207 
    208 2018-12-06  Jonathan Wakely  <jwakely (a] redhat.com>
    209 	    Iain Sandoe  <iain (a] 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 
    219 2018-12-03  Edward Smith-Rowland  <3dw4rd (a] 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 
    225 2018-11-30  Edward Smith-Rowland  <3dw4rd (a] 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 
    247 2018-11-30  Edward Smith-Rowland  <3dw4rd (a] 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 
    270 2018-11-29  Edward Smith-Rowland  <3dw4rd (a] 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 
    277 2018-11-29  Edward Smith-Rowland  <3dw4rd (a] 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 
    297 2018-11-29  Jonathan Wakely  <jwakely (a] 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 
    319 2018-11-28  Jonathan Wakely  <jwakely (a] 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 
    339 2018-11-28  Edward Smith-Rowland  <3dw4rd (a] 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 
    369 2018-11-28  Jonathan Wakely  <jwakely (a] 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 
    389 2018-11-27  Jonathan Wakely  <jwakely (a] 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 
    419 2018-11-27  Franois Dumont  <fdumont (a] 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 
    428 2018-11-26  Jonathan Wakely  <jwakely (a] redhat.com>
    429 
    430 	* testsuite/26_numerics/complex/requirements/more_constexpr.cc: Fix
    431 	failure on targets without __float128.
    432 
    433 2018-11-23  Edward Smith-Rowland  <3dw4rd (a] 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 
    453 2018-11-23  Martin Sebor  <msebor (a] redhat.com>
    454 	    Jonathan Wakely  <jwakely (a] 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 
    461 2018-11-23  Jonathan Wakely  <jwakely (a] 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 
    469 2018-11-22  Marc Glisse  <marc.glisse (a] 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 
    483 2018-11-22  Jonathan Wakely  <jwakely (a] 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 
    496 2018-11-21  Jakub Jelinek  <jakub (a] 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 
    508 2018-11-21  Jonathan Wakely  <jwakely (a] 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 
    524 2018-11-20  Ville Voutilainen  <ville.voutilainen (a] 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 
    579 2018-11-19  Franois Dumont  <fdumont (a] 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 
    592 2018-11-19  Ville Voutilainen  <ville.voutilainen (a] 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 
    607 2018-11-19  Jonathan Wakely  <jwakely (a] 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 
    617 2018-11-18  Michele Pezzutti <mpezz (a] tiscali.it>
    618 	    Edward Smith-Rowland  <3dw4rd (a] 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 
    631 2018-11-17  Jonathan Wakely  <jwakely (a] 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 
    668 2018-11-16  Renlin Li  <renlin.li (a] arm.com>
    669 	    Tejas Belagod  <tejas.belagod (a] 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 
    674 2018-11-15  Jonathan Wakely  <jwakely (a] 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 
    687 2018-11-14  Jonathan Wakely  <jwakely (a] 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 
    694 2018-11-13  Jonathan Wakely  <jwakely (a] 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 
    746 2018-11-12  Jason Merrill  <jason (a] redhat.com>
    747 
    748 	* libsupc++/new (std::destroying_delete_t): New.
    749 
    750 2018-11-12  Jonathan Wakely  <jwakely (a] 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 
    758 2018-11-11  Hans-Peter Nilsson  <hp (a] 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 
    766 2018-11-11  Jonathan Wakely  <jwakely (a] 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 
    780 2018-11-09  Jonathan Wakely  <jwakely (a] 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 
    786 2018-11-07  Hafiz Abid Qadeer  <abidh (a] codesourcery.com>
    787 
    788 	* configure: Regenerated.
    789 
    790 2018-11-07  Jonathan Wakely  <jwakely (a] redhat.com>
    791 
    792 	* config/abi/pre/gnu.ver: Fix patterns for size_t parameters.
    793 
    794 2018-11-06  Jonathan Wakely  <jwakely (a] 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 
    826 2018-11-06  John Bytheway  <jbytheway (a] 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 
    832 2018-10-31  Joseph Myers  <joseph (a] 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 
    843 2018-10-31  Jonathan Wakely  <jwakely (a] 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 
    852 2018-10-30  Marek Polacek  <polacek (a] 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 
    859 2018-10-30  Jonathan Wakely  <jwakely (a] 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 
    881 2018-10-29  David Malcolm  <dmalcolm (a] 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 
    887 2018-10-28  Franois Dumont  <fdumont (a] 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 
    894 2018-10-25  Jonathan Wakely  <jwakely (a] 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 
    910 2018-10-25  Marc Glisse  <marc.glisse (a] 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 
    931 2018-10-24  Franois Dumont  <fdumont (a] 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 
   1064 2018-10-23  Jonathan Wakely  <jwakely (a] 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 
   1072 2018-10-20  Franois Dumont  <fdumont (a] 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 
   1079 2018-10-19  Jonathan Wakely  <jwakely (a] 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 
   1229 2018-10-18  Jonathan Wakely  <jwakely (a] 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 
   1255 2018-10-18  Franois Dumont  <fdumont (a] gcc.gnu.org>
   1256 
   1257 	Partial revert.
   1258 	2018-10-08  Franois Dumont  <fdumont (a] 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  Franois Dumont  <fdumont (a] 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 
   1279 2018-10-17  Ville Voutilainen  <ville.voutilainen (a] 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 
   1285 2018-10-16  Jonathan Wakely  <jwakely (a] 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 
   1388 2018-10-16  Rainer Orth  <ro (a] 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 
   1400 2018-10-16  Jonathan Wakely  <jwakely (a] 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 
   1414 2018-10-15  Jonathan Wakely  <jwakely (a] 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 
   1422 2018-10-15  Franois Dumont  <fdumont (a] 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 
   1435 2018-10-12  Jonathan Wakely  <jwakely (a] 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 
   1482 2018-10-11  Franois Dumont  <fdumont (a] 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 
   1516 2018-10-11  Jonathan Wakely  <jwakely (a] 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 
   1541 2018-10-10  Jonathan Wakely  <jwakely (a] 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 
   1553 2018-10-09  Franois Dumont  <fdumont (a] 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 
   1566 2018-10-09  Jonathan Wakely  <jwakely (a] 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 
   1573 2018-10-08  Jonathan Wakely  <jwakely (a] 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 
   1583 2018-10-08  Franois Dumont  <fdumont (a] 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 
   1596 2018-10-05  Franois Dumont  <fdumont (a] 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 
   1623 2018-10-03  Jonathan Wakely  <jwakely (a] 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 
   1633 2018-10-03  Franois Dumont  <fdumont (a] 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 
   1674 2018-10-02  Marc Glisse  <marc.glisse (a] 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 
   1680 2018-10-02  Jonathan Wakely  <jwakely (a] 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 
   1687 2018-10-02  Joseph Myers  <joseph (a] codesourcery.com>
   1688 
   1689 	* testsuite/lib/libstdc++.exp (libstdc++_init): Use
   1690 	-fno-show-column in default cxxflags.
   1691 
   1692 2018-10-01  Bernhard Reutner-Fischer  <aldot (a] gcc.gnu.org>
   1693 
   1694 	* config/os/uclibc/os_defines.h (__NO_STRING_INLINES): Delete.
   1695 
   1696 2018-10-01  Gerald Pfeifer  <gerald (a] pfeifer.com>
   1697 
   1698 	* doc/xml/manual/allocator.xml: Adjust link to "Reconsidering
   1699 	Custom Memory Allocation".
   1700 
   1701 2018-10-01  Jonathan Wakely  <jwakely (a] redhat.com>
   1702 
   1703 	* doc/html/*: Regenerate.
   1704 
   1705 2018-09-30  Gerald Pfeifer  <gerald (a] pfeifer.com>
   1706 
   1707 	* doc/xml/manual/messages.xml: Switch link to www.oracle.com
   1708 	to https.
   1709 
   1710 2018-09-30  Gerald Pfeifer  <gerald (a] pfeifer.com>
   1711 
   1712 	* doc/xml/manual/policy_data_structures_biblio.xml: Update
   1713 	link to Microsoft Component Model Object Technologies.
   1714 
   1715 2018-09-29  Gerald Pfeifer  <gerald (a] 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 
   1721 2018-09-28  Franois Dumont  <fdumont (a] 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 
   1728 2018-09-25  Mike Crowe  <mac (a] mcrowe.com>
   1729 
   1730 	* include/std/condition_variable (condition_variable::wait_for): Use
   1731 	steady clock in overload that uses a predicate.
   1732 
   1733 2018-09-25  Jonathan Wakely  <jwakely (a] 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 
   1740 2018-09-25  Gerald Pfeifer  <gerald (a] pfeifer.com>
   1741 
   1742 	* doc/xml/manual/codecvt.xml: Move link to "UTF-8 and Unicode FAQ"
   1743 	to https.
   1744 
   1745 2018-09-24  Gerald Pfeifer  <gerald (a] pfeifer.com>
   1746 
   1747 	* doc/xml/manual/policy_data_structures_biblio.xml: Update link
   1748 	to "Priority Queues and the STL".
   1749 
   1750 2018-09-23  Gerald Pfeifer  <gerald (a] pfeifer.com>
   1751 
   1752 	* doc/xml/manual/using_exceptions.xml: Move boost.orgs link to
   1753 	https.
   1754 
   1755 2018-09-21  Franois Dumont  <fdumont (a] 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 
   1764 2018-09-21  Jonathan Wakely  <jwakely (a] 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 
   1771 2018-09-20  Christophe Lyon  <christophe.lyon (a] linaro.org>
   1772 
   1773 	* testsuite/26_numerics/headers/cmath/hypot-long-double.cc: Skip
   1774 	on arm*.
   1775 
   1776 2018-09-19  Jonathan Wakely  <jwakely (a] 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 
   1782 2018-09-18  Franois Dumont  <fdumont (a] 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 
   1794 2018-09-18  Jonathan Wakely  <jwakely (a] 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 
   1803 2018-09-13  Jonathan Wakely  <jwakely (a] redhat.com>
   1804 
   1805 	* include/std/variant (variant) [__clang__]: Limit workaround to
   1806 	Clang 7 and older.
   1807 
   1808 2018-09-11  Jonathan Wakely  <jwakely (a] 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 
   1832 2018-09-05  Jonathan Wakely  <jwakely (a] redhat.com>
   1833 
   1834 	* libsupc++/cxxabi.h (__cxa_demangle): Clarify doxygen comment.
   1835 
   1836 2018-09-03  Jonathan Wakely  <jwakely (a] 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 
   1913 2018-09-02  Franois Dumont  <fdumont (a] 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 
   1965 2018-09-01  Gerald Pfeifer  <gerald (a] pfeifer.com>
   1966 
   1967 	* doc/xml/manual/profile_mode.xml: Update three ieeexplore.ieee.org
   1968 	references.
   1969 
   1970 2018-08-31  Sandra Loosemore  <sandra (a] 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 
   2031 2018-08-30  Sandra Loosemore  <sandra (a] codesourcery.com>
   2032 
   2033 	* testsuite/experimental/propagate_const/observers/1.cc: Make
   2034 	dependence on -fdelete-null-pointer-checks explicit.
   2035 
   2036 2018-08-30  Jonathan Wakely  <jwakely (a] 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 
   2052 2018-08-29  Jonathan Wakely  <jwakely (a] 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 
   2058 2018-08-28  Jonathan Wakely  <jwakely (a] 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 
   2071 2018-08-25  Iain Sandoe  <iain (a] sandoe.co.uk>
   2072 
   2073 	PR libstdc++/70694
   2074 	* configure.host (OPT_LDFLAGS): Don't append
   2075 	-fvisibility-inlines-hidden for newer Darwin.
   2076 
   2077 2018-08-24  Marc Glisse  <marc.glisse (a] 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 
   2084 2018-08-24  Jonathan Wakely  <jwakely (a] 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 
   2115 2018-08-23  Jonathan Wakely  <jwakely (a] 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 
   2176 2018-08-22  Jonathan Wakely  <jwakely (a] 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 
   2222 2018-08-22  Franois Dumont  <fdumont (a] 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 
   2367 2018-08-22  Jonathan Wakely  <jwakely (a] 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 
   2374 2018-08-21  Franois Dumont  <fdumont (a] 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 
   2400 2018-08-21  David Edelsohn  <dje.gcc (a] gmail.com>
   2401 
   2402 	* testsuite/18_support/new_nothrow.cc: XFAIL on AIX.
   2403 
   2404 2018-08-21  Jonathan Wakely  <jwakely (a] 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 
   2413 2018-08-20  Jonathan Wakely  <jwakely (a] 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 
   2440 2018-08-18  Franois Dumont  <fdumont (a] gcc.gnu.org>
   2441 
   2442 	* testsuite/25_algorithms/copy/86658.cc: Use dg-options to define
   2443 	_GLIBCXX_DEBUG.
   2444 
   2445 2018-08-17  Jonathan Wakely  <jwakely (a] 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 
   2478 2018-08-16  Jonathan Wakely  <jwakely (a] 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 
   2494 2018-08-15  Jonathan Wakely  <jwakely (a] 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 
   2552 2018-08-14  Jonathan Wakely  <jwakely (a] 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 
   2580 2018-08-14  Jeremy Sawicki  <jeremy-gcc (a] 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 
   2589 2018-08-13  Jonathan Wakely  <jwakely (a] 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 (a] embedded-brains.de>
   2605 
   2606 	PR target/85904
   2607 	* configure.ac: Define HAVE_ALIGNED_ALLOC if building for
   2608 	Newlib.
   2609 	* configure: Regenerate.
   2610 
   2611 2018-08-10  Jonathan Wakely  <jwakely (a] 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 
   2639 2018-08-10  Martin Liska  <mliska (a] 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 
   2646 2018-08-10  Sebastian Huber  <sebastian.huber (a] embedded-brains.de>
   2647 
   2648 	PR target/85904
   2649 	* configure.ac: Define HAVE_ALIGNED_ALLOC if building for
   2650 	Newlib.
   2651 	* configure: Regenerate.
   2652 
   2653 2018-08-10  Jonathan Wakely  <jwakely (a] 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 
   2687 2018-08-08  Franois Dumont  <fdumont (a] 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 
   2702 2018-08-08  Jonathan Wakely  <jwakely (a] 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 
   2719 2018-08-07  Jonathan Wakely  <jwakely (a] 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 
   2755 2018-08-05  Franois Dumont  <fdumont (a] gcc.gnu.org>
   2756 
   2757 	* include/bits/stl_iterator.h: Fix comment.
   2758 
   2759 2018-08-03  Jonathan Wakely  <jwakely (a] 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 
   2767 2018-08-01  Jonathan Wakely  <jwakely (a] 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 
   2774 2018-08-01  Mike Crowe  <mac (a] mcrowe.com>
   2775 
   2776 	* include/std/condition_variable (wait_for): Use steady_clock.
   2777 
   2778 2018-08-01  Mike Crowe  <mac (a] 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 
   2786 2018-08-01  Jonathan Wakely  <jwakely (a] 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 
   2796 2018-07-31  Jonathan Wakely  <jwakely (a] 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 
   2835 2018-07-30  Jonathan Wakely  <jwakely (a] 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 
   2848 2018-07-26  Marek Polacek  <polacek (a] redhat.com>
   2849 
   2850 	* testsuite/30_threads/condition_variable_any/cond.cc: New.
   2851 
   2852 2018-07-26  Marek Polacek  <polacek (a] redhat.com>
   2853 
   2854 	* src/c++98/locale_init.cc: Fix #ifdef condition.
   2855 
   2856 2018-07-26  Jonathan Wakely  <jwakely (a] 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 
   3420 2018-07-26  Rainer Orth  <ro (a] 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 
   3426 2018-07-26  Marc Glisse  <marc.glisse (a] 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 
   3432 2018-07-26  Jonathan Wakely  <jwakely (a] 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 
   3438 2018-07-25  Jonathan Wakely  <jwakely (a] 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 
   3463 2018-07-24  Jonathan Wakely  <jwakely (a] 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 
   3529 2018-07-23  Jonathan Wakely  <jwakely (a] 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 
   3542 2018-07-20  Jonathan Wakely  <jwakely (a] redhat.com>
   3543 
   3544 	PR libstdc++/86595
   3545 	* include/bits/fs_dir.h (directory_entry::refresh(error_code&)): Add
   3546 	noexcept.
   3547 
   3548 2018-07-20  Fangrui Song  <maskray (a] google.com>
   3549 
   3550 	* include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Use
   3551 	_GLIBCXX_VISIBILITY(default).
   3552 
   3553 2018-07-20  Jonathan Wakely  <jwakely (a] redhat.com>
   3554 
   3555 	PR libstdc++/86603
   3556 	* include/std/version: Move __cpp_lib_list_remove_return_type macro.
   3557 
   3558 2018-07-19  Jonathan Wakely  <jwakely (a] 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 
   3576 2018-07-19  Glen Joseph Fernandes  <glenjofe (a] 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 
   3584 2018-07-17  Jonathan Wakely  <jwakely (a] 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 
   3612 2018-07-16  Jonathan Wakely  <jwakely (a] 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 
   3623 2018-07-16  Andreas Krebbel  <krebbel (a] 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 
   3629 2018-07-06  Franois Dumont  <fdumont (a] 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 
   3643 2018-07-06  Jonathan Wakely  <jwakely (a] 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 
   3672 2018-07-05  Jonathan Wakely  <jwakely (a] 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 
   3725 2018-07-04  Jonathan Wakely  <jwakely (a] 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 
   3785 2018-07-04  Franois Dumont  <fdumont (a] 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 
   3799 2018-07-04  Jonathan Wakely  <jwakely (a] 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 
   3811 2018-07-04  Jonathan Wakely  <jwakely (a] redhat.com>
   3812 	    Jakub Jelinek  <jakub (a] redhat.com>
   3813 
   3814 	* include/std/bit (__rotl, __rotr): Fix for non-power of two sizes.
   3815 
   3816 2018-07-04  Jonathan Wakely  <jwakely (a] 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 
   3832 2018-07-03  Jonathan Wakely  <jwakely (a] 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 
   3861 2018-07-03  Franois Dumont  <fdumont (a] 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 
   3874 2018-07-02  Jonathan Wakely  <jwakely (a] 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 
   3920 2018-06-29  Jonathan Wakely  <jwakely (a] 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 
   3926 2018-06-27  Franois Dumont  <fdumont (a] 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 
   3955 2018-06-27  Jonathan Wakely  <jwakely (a] 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 
   3964 2018-06-26  David Edelsohn  <dje.gcc (a] gmail.com>
   3965 
   3966 	* testsuite/experimental/algorithm/sample-2.cc: Add TLS DejaGNU
   3967 	directives.
   3968 	* testsuite/experimental/algorithm/shuffle.cc: Likewise.
   3969 
   3970 2018-06-26  Jonathan Wakely  <jwakely (a] redhat.com>
   3971 
   3972 	* include/bits/regex.tcc (regex_iterator::operator==): Add missing
   3973 	noexcept.
   3974 
   3975 2018-06-25  Jonathan Wakely  <jwakely (a] 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 
   3998 2018-06-22  Jonathan Wakely  <jwakely (a] 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 
   4019 2018-06-21  Jonathan Wakely  <jwakely (a] 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 
   4072 2018-06-21  Franois Dumont  <fdumont (a] 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 
   4079 2018-06-20  Jonathan Wakely  <jwakely (a] 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 
   4093 2018-06-19  Jonathan Wakely  <jwakely (a] redhat.com>
   4094 
   4095 	* include/std/utility: Remove unused <exception> header.
   4096 
   4097 2018-06-18  Jonathan Wakely  <jwakely (a] 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 
   4120 2018-06-18  Maya Rashish  <coypu (a] sdf.org>
   4121 
   4122 	* crossconfig.m4: Handle OpenBSD just like NetBSD.
   4123 	* configure: Rebuilt.
   4124 
   4125 2018-06-18  Jonathan Wakely  <jwakely (a] 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 
   4172 2018-06-16  Jonathan Wakely  <jwakely (a] 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 
   4188 2018-06-15  Jonathan Wakely  <jwakely (a] 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 
   4235 2018-06-14  Jonathan Wakely  <jwakely (a] 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 
   4364 2018-06-14  Daniel Trebbien <dtrebbien (a] gmail.com>
   4365 	    Jonathan Wakely  <jwakely (a] 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 
   4373 2018-06-13  Jonathan Wakely  <jwakely (a] 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 
   4384 2018-06-13  Franois Dumont  <fdumont (a] 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 
   4409 2018-06-12  Franois Dumont  <fdumont (a] 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 
   4426 2018-06-12  Jonathan Wakely  <jwakely (a] 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 
   4516 2018-06-08  Jonathan Wakely  <jwakely (a] 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 
   4532 2018-06-07  Jonathan Wakely  <jwakely (a] 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 
   4543 2018-06-07  Franois Dumont  <fdumont (a] 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 
   4551 2018-06-06  Jonathan Wakely  <jwakely (a] redhat.com>
   4552 
   4553 	* include/bits/shared_ptr_base.h (__shared_count): Remove redundant
   4554 	move of const value.
   4555 
   4556 2018-06-06  Jakub Jelinek  <jakub (a] 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 
   4562 2018-06-06  Jonathan Wakely  <jwakely (a] 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 
   4577 2018-06-05  Jonathan Wakely  <jwakely (a] 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 
   4587 2018-06-05  Franois Dumont  <fdumont (a] 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 
   4597 2018-06-04  Jonathan Wakely  <jwakely (a] 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 
   4611 2018-05-24  Jonathan Wakely  <jwakely (a] 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 
   4797 2018-05-31  Jonathan Wakely  <jwakely (a] 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 
   4822 2018-05-29  Jonathan Wakely  <jwakely (a] redhat.com>
   4823 
   4824 	* include/std/variant (__erased_dtor): Qualify call to __get.
   4825 
   4826 2018-05-27  Franois Dumont  <fdumont (a] 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 
   4849 2018-05-25  Franois Dumont  <fdumont (a] gcc.gnu.org>
   4850 
   4851 	PR libstdc++/85768
   4852 	* src/c++11/debug.cc: Remove backtrace usage.
   4853 
   4854 2018-05-24  Maya Rashish  <coypu (a] sdf.org>
   4855 
   4856 	PR target/85904
   4857 	* crossconfig.m4: Test for aligned_alloc on netbsd.
   4858 	* configure: Regenerate.
   4859 
   4860 2018-05-24  Jonathan Wakely  <jwakely (a] 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 
   4899 2018-05-23  Jonathan Wakely  <jwakely (a] 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 
   4941 2018-05-21  Jonathan Wakely  <jwakely (a] 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 
   4976 2018-05-21  Franois Dumont  <fdumont (a] 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 
   4983 2018-05-21  Jonathan Wakely  <jwakely (a] 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 
   4999 2018-05-19  Jonathan Wakely  <jwakely (a] 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 
   5007 2018-05-18  Franois Dumont  <fdumont (a] 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 
   5039 2018-05-18  Jason Merrill  <jason (a] 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 
   5055 2018-05-18  Jonathan Wakely  <jwakely (a] 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 
   5069 2018-05-17  Jonathan Wakely  <jwakely (a] 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 
   5083 2018-05-15  Jonathan Wakely  <jwakely (a] 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 
   5172 2018-05-14  Jonathan Wakely  <jwakely (a] 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 
   5195 2018-05-13  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   5196 
   5197 	PR libstdc++/80165
   5198 	* testsuite/20_util/variant/80165.cc: New.
   5199 
   5200 2018-05-10  Jonathan Wakely  <jwakely (a] 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 
   5208 2018-05-10  Jason Merrill  <jason (a] redhat.com>
   5209 
   5210 	* include/bits/regex_compiler.h (_S_cache_size): Change from
   5211 	function to variable.
   5212 
   5213 2018-05-10  Edward Smith-Rowland  <3dw4rd (a] 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 
   5223 2018-05-10  Jonathan Wakely  <jwakely (a] 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 
   5233 2018-05-09  Franois Dumont  <fdumont (a] 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 
   5265 2018-05-09  Jonathan Wakely  <jwakely (a] 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 
   5273 2018-05-08  Franois Dumont  <fdumont (a] 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 
   5333 2018-05-08  Jonathan Wakely  <jwakely (a] 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 
   5345 2018-05-07  Jonathan Wakely  <jwakely (a] 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 
   5354 2018-05-07  Edward Smith-Rowland  <3dw4rd (a] 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 
   5360 2018-05-04  Jonathan Wakely  <jwakely (a] 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 
   5373 2018-05-03  Jonathan Wakely  <jwakely (a] 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 
   5438 2018-05-02  Franois Dumont  <fdumont (a] 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 
   5450 2018-05-02  Jonathan Wakely  <jwakely (a] 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 
   5491 2018-05-01  Tulio Magno Quites Machado Filho  <tuliom (a] 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 
   5504 2018-04-24  H.J. Lu  <hongjiu.lu (a] intel.com>
   5505 
   5506 	* configure: Regenerated.
   5507 
   5508 2018-04-19  Jakub Jelinek  <jakub (a] redhat.com>
   5509 
   5510 	* configure: Regenerated.
   5511 
   5512 2018-04-18  Jonathan Wakely  <jwakely (a] redhat.com>
   5513 	    Jakub Jelinek  <jakub (a] 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 
   5520 2018-04-18  Jonathan Wakely  <jwakely (a] 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 
   5526 2018-04-18  David Malcolm  <dmalcolm (a] redhat.com>
   5527 
   5528 	PR jit/85384
   5529 	* configure: Regenerate.
   5530 
   5531 2018-04-16  Jonathan Wakely  <jwakely (a] 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 
   5632 2018-04-13  Jonathan Wakely  <jwakely (a] 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 
   5641 2018-04-12  Jonathan Wakely  <jwakely (a] 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 
   5650 2018-04-11  Jonathan Wakely  <jwakely (a] 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 
   5661 2018-04-10  Jonathan Wakely  <jwakely (a] 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 
   5703 2018-04-05  Jonathan Wakely  <jwakely (a] 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 
   5708 2018-04-03  Jonathan Wakely  <jwakely (a] 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 
   5715 2018-03-26  Jonathan Wakely  <jwakely (a] 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 
   5721 2018-03-22  Jonathan Wakely  <jwakely (a] 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 
   5730 2018-03-22  Rainer Orth  <ro (a] 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 
   5736 2018-03-21  Jonathan Wakely  <jwakely (a] 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 
   5746 2018-03-20  Franois Dumont  <fdumont (a] 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 
   5762 2018-03-19  Gerald Pfeifer  <gerald (a] 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 
   5772 2018-03-19  Gerald Pfeifer  <gerald (a] pfeifer.com>
   5773 
   5774 	* doc/xml/manual/documentation_hacking.xml: Adjust link to
   5775 	docbook.org.
   5776 
   5777 2018-03-17  Jonathan Wakely  <jwakely (a] redhat.com>
   5778 
   5779 	* testsuite/20_util/function_objects/comparisons_pointer.cc: Adjust
   5780 	to compile as C++98.
   5781 
   5782 2018-03-14  Jonathan Wakely  <jwakely (a] 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 
   5794 2018-03-12  Jonathan Wakely  <jwakely (a] 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 
   5804 2018-03-09  Franois Dumont  <fdumont (a] 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 
   5810 2018-03-09  Jonathan Wakely  <jwakely (a] 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 
   5819 2018-03-08  Franois Dumont  <fdumont (a] 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 
   5832 2018-03-06  Ville Voutilainen  <ville.voutilainen (a] 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 
   5841 2018-03-02  Jonathan Wakely  <jwakely (a] 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 
   5849 2018-02-27  Ville Voutilainen  <ville.voutilainen (a] 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 
   5860 2018-02-23  Jonathan Wakely  <jwakely (a] 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 
   5868 2018-02-20  Franois Dumont  <fdumont (a] gcc.gnu.org>
   5869 
   5870 	* include/ext/aligned_buffer.h [_GLIBCXX_INLINE_VERSION]
   5871 	(template<> __aligned_buffer): Define as __aligned_membuf alias.
   5872 
   5873 2018-02-19  Igor Tsimbalist  <igor.v.tsimbalist (a] intel.com>
   5874 
   5875 	PR target/84148
   5876 	* configure: Regenerate.
   5877 
   5878 2018-02-15  Jonathan Wakely  <jwakely (a] 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 
   5887 2018-01-29  Jonathan Wakely  <jwakely (a] 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 
   5902 2018-01-25  Jonathan Wakely  <jwakely (a] 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 
   5908 2018-01-19  Christophe Lyon  <christophe.lyon (a] 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 
   5954 2018-01-18  Uros Bizjak  <ubizjak (a] 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 
   5962 2018-01-16  Eric Botcazou  <ebotcazou (a] adacore.com>
   5963 
   5964 	* testsuite/17_intro/names.cc: Undefine 'y' on SPARC/Linux.
   5965 
   5966 2018-01-16  Jonathan Wakely  <jwakely (a] 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 
   5972 2018-01-15  Jonathan Wakely  <jwakely (a] 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 
   5986 2018-01-15  Ville Voutilainen  <ville.voutilainen (a] 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 
   6006 2018-01-15  Jonathan Wakely  <jwakely (a] 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 
   6028 2018-01-14  Andreas Schwab  <schwab (a] linux-m68k.org>
   6029 
   6030 	PR libstdc++/81092
   6031 	* config/abi/post/ia64-linux-gnu/baseline_symbols.txt: Update.
   6032 
   6033 2018-01-13  Tim Shen  <timshen (a] 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 
   6040 2018-01-12  Rainer Orth  <ro (a] 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 
   6046 2018-01-10  Franois Dumont  <fdumont (a] 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 
   6071 2018-01-09  Jonathan Wakely  <jwakely (a] 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 
   6084 2018-01-09  Franois Dumont  <fdumont (a] 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 
   6105 2018-01-09  Juraj Oruli  <juraj.orsulic (a] fer.hr>
   6106 	    Jonathan Wakely  <jwakely (a] 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 
   6118 2018-01-05  Jonathan Wakely  <jwakely (a] 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 
   6143 2018-01-04  Jonathan Wakely  <jwakely (a] 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 
   6172 2018-01-03  Ville Voutilainen  <ville.voutilainen (a] gmail.com>
   6173 
   6174 	Protect optional's deduction guide with the feature macro
   6175 	* include/std/optional: Use the feature macro.
   6176 
   6177 2018-01-03  Jakub Jelinek  <jakub (a] redhat.com>
   6178 
   6179 	Update copyright years.
   6180 
   6182 Copyright (C) 2018 Free Software Foundation, Inc.
   6183 
   6184 Copying and distribution of this file, with or without modification,
   6185 are permitted in any medium without royalty provided the copyright
   6186 notice and this notice are preserved.
   6187