LWG 2989 hide path iostream operators from normal lookup
[gcc.git] / libstdc++-v3 / ChangeLog
index f95630e8c5e0e98f13ca57a9725a63c40c53a437..0b81f047a178cb8d25a78557bc011300938fc247 100644 (file)
+2018-06-18  Jonathan Wakely  <jwakely@redhat.com>
+
+       LWG 2989 hide path iostream operators from normal lookup
+       * include/bits/fs_path.h (operator<<, operator>>): Define inline as
+       friends.
+       * testsuite/27_io/filesystem/path/io/dr2989.cc: New.
+
+       LWG 3050 Fix cv-qualification of convertibility constraints
+       * include/std/chrono (duration, operator*, operator/, operator%): Use
+       const-qualified type as source type in is_convertible constraints.
+       * testsuite/20_util/duration/arithmetic/dr3050.cc: New.
+       * testsuite/20_util/duration/cons/dr3050.cc: New.
+       * testsuite/20_util/duration/literals/range.cc: Rename to...
+       * testsuite/20_util/duration/literals/range_neg.cc: Here. Adjust
+       dg-error lineno.
+
+2018-06-18  Maya Rashish  <coypu@sdf.org>
+
+       * crossconfig.m4: Handle OpenBSD just like NetBSD.
+       * configure: Rebuilt.
+
+2018-06-18  Jonathan Wakely  <jwakely@redhat.com>
+
+       P0754R2 <version> header
+       * include/Makefile.am: Add new header.
+       * include/Makefile.in: Regenerate.
+       * include/bits/c++config: Change doxygen comment to suggest <version>
+       instead of <iosfwd>.
+       * include/precompiled/stdc++.h: Include <cwchar> and <cwctype>
+       unconditionally.  Add C++17 and C++20 headers.
+       * include/std/version: New header.
+       * testsuite/17_intro/headers/c++2017/all_attributes.cc: New.
+       * testsuite/17_intro/headers/c++2017/all_no_exceptions.cc: New.
+       * testsuite/17_intro/headers/c++2017/all_no_rtti.cc: New.
+       * testsuite/17_intro/headers/c++2017/all_pedantic_errors.cc: New.
+       * testsuite/17_intro/headers/c++2017/operator_names.cc: New.
+       * testsuite/17_intro/headers/c++2017/stdc++.cc: New.
+       * testsuite/17_intro/headers/c++2017/stdc++_multiple_inclusion.cc:
+       New.
+       * testsuite/17_intro/headers/c++2020/all_attributes.cc: New.
+       * testsuite/17_intro/headers/c++2020/all_no_exceptions.cc: New.
+       * testsuite/17_intro/headers/c++2020/all_no_rtti.cc: New.
+       * testsuite/17_intro/headers/c++2020/all_pedantic_errors.cc: New.
+       * testsuite/17_intro/headers/c++2020/operator_names.cc: New.
+       * testsuite/17_intro/headers/c++2020/stdc++.cc: New.
+       * testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc:
+       New.
+       * testsuite/18_support/headers/version/macros.cc: New.
+       * testsuite/18_support/headers/version/macros.cc: New.
+
+       * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Only check when
+       enable_libstdcxx_filesystem_ts = yes. Check for link, readlink and
+       symlink.
+       * config.h.in: Regenerate.
+       * configure: Regenerate.
+       * configure.ac: Remove AC_CHECK_FUNCS for link, readlink and symlink.
+
+       LWG 3035. std::allocator's constructors should be constexpr
+       * include/bits/allocator.h (allocator): Add constexpr to constructors
+       for C++2a. Replace dynamic exception specifications with NOTHROW
+       macro.
+       (allocator, operator==, operator!=): Replace USE_NOEXCEPT macro with
+       NOTHROW.
+       * include/bits/c++config (_GLIBCXX20_CONSTEXPR): Define.
+       * include/ext/malloc_allocator.h (malloc_allocator): Add constexpr
+       to constructors for C++2a.
+       * include/ext/new_allocator.h (new_allocator): Likewise.
+
+2018-06-16  Jonathan Wakely  <jwakely@redhat.com>
+
+       LWG 3076 basic_string CTAD ambiguity
+       * doc/xml/manual/intro.xml: Document LWG 3076 change.
+       * include/bits/basic_string.h
+       [__cpp_deduction_guides && !_GLIBCXX_DEFINING_STRING_INSTANTIATIONS]
+       (basic_string(const _CharT*, const _Alloc&)): Turn into a function
+       template constrained by _RequireAllocator.
+       (basic_string(size_type, _CharT, const _Alloc&)): Likewise.
+       * src/c++11/string-inst.cc (_GLIBCXX_DEFINING_STRING_INSTANTIATIONS):
+       Define.
+       * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
+       deduction
+       * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
+       Likewise.
+
+2018-06-15  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/86169
+       * include/bits/basic_string.h [!_GLIBCXX_USE_CXX11_ABI]
+       (basic_string::data()): Unshare string.
+       * testsuite/21_strings/basic_string/operations/data/char/86169.cc:
+       New.
+
+       * include/std/string_view (basic_string_view(const CharT*)): Remove
+       check for null pointer and add nonnull attribute.
+       (compare(const CharT*), compare(size_type, size_type, const CharT*))
+       (find(const CharT*, size_type), rfind(const CharT*, size_type))
+       (find_first_of(const CharT*, size_type))
+       (find_last_of(const CharT*, size_type))
+       (find_first_not_of(const CharT*, size_type))
+       (find_last_not_of(const CharT*, size_type)): Add nonnull attribute.
+       * testsuite/21_strings/basic_string_view/cons/char/nonnull.cc: New.
+       * testsuite/21_strings/basic_string_view/operations/compare/char/
+       nonnull.cc: New.
+       * testsuite/21_strings/basic_string_view/operations/find/char/
+       nonnull.cc: New.
+       * testsuite/21_strings/basic_string_view/operations/rfind/char/
+       nonnull.cc: New.
+
+       PR libstdc++/86168
+       * include/bits/random.h (random_device(const string&)): Remove
+       default argument.
+
+       * include/bits/char_traits.h (__cpp_lib_constexpr_char_traits): Only
+       define for C++17 and above.
+
+       LWG 2993 reference_wrapper<T> conversion from T&&
+       * doc/xml/manual/intro.xml: Document LWG 2993 change.
+       * include/bits/refwrap.h (reference_wrapper(_Tp&)): Remove.
+       (reference_wrapper(_Tp&&)): Remove.
+       (reference_wrapper<_Up>(_Up&&)): Define new constructor as constrained
+       template.
+       (reference_wrapper): Add deduction guide.
+       * testsuite/20_util/reference_wrapper/deduction.cc: New.
+       * testsuite/20_util/reference_wrapper/lwg2993.cc: New.
+
+       LWG 3039 Unnecessary decay in thread and packaged_task
+       * include/std/future (__constrain_pkgdtask): Replace with ...
+       (packaged_task::__not_same): New alias template, using
+       __remove_cvref_t instead of decay.
+       * include/std/thread (thread::__not_same): Add comment.
+
+2018-06-14  Jonathan Wakely  <jwakely@redhat.com>
+
+       LWG 3075 basic_string needs deduction guides from basic_string_view
+       * testsuite/21_strings/basic_string/cons/char/deduction.cc: Test
+       deduction from string views.
+       * testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc:
+       Likewise.
+
+       LWG 3074 make scalar types non-deduced in valarray non-member functions
+       * include/bits/valarray_after.h (_DEFINE_EXPR_BINARY_FUNCTION): Change
+       scalar parameters to be a non-deduced context.
+       * include/std/valarray (_DEFINE_BINARY_OPERATOR): Likewise. Adjust
+       whitespace.
+       * testsuite/26_numerics/valarray/operators.cc: Test scalar operands.
+       * testsuite/26_numerics/valarray/transcend.cc: New.
+
+       * include/std/tuple (__cpp_lib_tuple_element_t, tuple_element_t):
+       Move back to <utility>.
+       * include/std/utility (__cpp_lib_tuple_element_t. tuple_element_t):
+       Restore to here.
+
+       P0935R0 Eradicating unnecessarily explicit default constructors
+       * include/backward/strstream (strstreambuf): Add non-explicit default
+       constructor.
+       * include/bits/locale_conv.h (wbuffer_convert, wstring_convert):
+       Likewise.
+       * include/bits/regex.h (match_results): Likewise.
+       * testsuite/22_locale/conversions/buffer/1.cc: Test for non-explicit
+       default constructor.
+       * testsuite/22_locale/conversions/string/1.cc: Likewise.
+       * testsuite/28_regex/match_results/ctors/char/default.cc: Likewise.
+       * testsuite/28_regex/match_results/ctors/wchar_t/default.cc: Likewise.
+
+       * include/std/tuple (__cpp_lib_tuple_element_t): Move feature test
+       macro from <utility> and change type to long.
+       * include/std/utility (__cpp_lib_tuple_element_t): Remove.
+       * testsuite/20_util/tuple/tuple_element_t.cc: Check for feature test
+       macro.
+
+       P0935R0 Eradicating unnecessarily explicit default constructors
+       * include/bits/random.h (uniform_real_distribution::param_type)
+       (normal_distribution::param_type, lognormal_distribution::param_type)
+       (gamma_distribution::param_type, chi_squared_distribution::param_type)
+       (cauchy_distribution::param_type, fisher_f_distribution::param_type)
+       (student_t_distribution::param_type)
+       (bernoulli_distribution::param_type)
+       (binomial_distribution::param_type)
+       (geometric_distribution::param_type)
+       (negative_binomial_distribution::param_type)
+       (poisson_distribution::param_type)
+       (exponential_distribution::param_type)
+       (weibull_distribution::param_type)
+       (extreme_value_distribution::param_type): Add non-explicit default
+       constructors. Remove default argument for first parameter of explicit
+       constructors.
+       * include/bits/uniform_int_dist.h
+       (uniform_int_distribution::param_type): Likewise.
+       * include/ext/random
+       (beta_distribution::param_type, rice_distribution::param_type)
+       (nakagami_distribution::param_type, pareto_distribution::param_type)
+       (k_distribution::param_type, arcsine_distribution::param_type)
+       (hoyt_distribution::param_type, triangular_distribution::param_type)
+       (von_mises_distribution::param_type)
+       (hypergeometric_distribution::param_type)
+       (logistic_distribution::param_type)
+       (uniform_inside_sphere_distribution::param_type): Likewise.
+       (uniform_on_sphere_distribution::param_type): Make default constructor
+       non-explicit.
+       * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
+       Test param_type for non-explicit default constructor.
+       * testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
+       * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
+       * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
+       * testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
+       * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
+       * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
+       * testsuite/ext/random/normal_mv_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
+       * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
+       * testsuite/ext/random/triangular_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/ext/random/von_mises_distribution/cons/default.cc:
+       Likewise.
+
+2018-06-14  Daniel Trebbien <dtrebbien@gmail.com>
+           Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/83982
+       * include/bits/vector.tcc (vector::_M_default_append(size_type)):
+       Default-construct new elements before moving existing ones.
+       * testsuite/23_containers/vector/capacity/resize/strong_guarantee.cc:
+       New.
+
+2018-06-13  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/86127
+       * include/bits/forward_list.h (_Fwd_list_base::_Tp_alloc_type): Remove
+       unused typedef.
+       (_Fwd_list_base::_M_create_node, _Fwd_list_base::_M_erase_after):
+       Use node allocator to create and destroy elements.
+       (forward_list::_Tp_alloc_type): Remove unused typedef.
+       (forward_list::_Alloc_traits): Use allocator_traits instead of
+       __gnu_cxx::__alloc_traits.
+
+2018-06-13  François Dumont  <fdumont@gcc.gnu.org>
+
+       * include/debug/helper_functions.h
+       (__gnu_debug::_Safe_iterator<>): Add declaration.
+       (__can_advance(_Ite, _Size)): New.
+       (__can_advance(const _Safe_iterator<>&, _Size)): Overload declaration.
+       * include/debug/functions.h
+       (__gnu_debug::_Safe_iterator<>): Remove declaration.
+       * include/debug/stl_iterator.h
+       (__can_advance(const _Safe_iterator<>&)): New definition.
+       * include/debug/stl_iterator.h
+       (__can_advance(const std::reverse_iterator<>&, _Size)): New.
+       (__can_advance(const std::move_iterator<>&, _Size)): New.
+       * include/debug/macros.h (__glibcxx_check_can_increment): New.
+       * include/debug/debug.h (__glibcxx_requires_can_increment): New.
+       * include/bits/stl_algobase.h (fill_n): Use latter.
+       * testsuite/25_algorithms/fill_n/2.cc: New.
+       * testsuite/25_algorithms/fill_n/debug/1_neg.cc: New.
+       * testsuite/25_algorithms/fill_n/debug/2_neg.cc: New.
+       * testsuite/25_algorithms/fill_n/debug/3_neg.cc: New.
+       * testsuite/25_algorithms/fill_n/debug/4_neg.cc: New.
+
+       * include/debug/debug.h (__glibcxx_requires_can_increment_range): New.
+       (__glibcxx_requires_can_decrement_range): New.
+
+2018-06-12  François Dumont  <fdumont@gcc.gnu.org>
+
+       * include/debug/macros.h (__glibcxx_check_can_increment_range): New.
+       (__glibcxx_check_can_decrement_range): New.
+       * include/bits/stl_algobase.h (std::copy(_II, _II, _OI)): Use
+       __glibcxx_requires_can_increment_range.
+       (std::move(_II, _II, _OI)): Likewise.
+       (std::copy_backward(_BI, _BI, _BI2)): Use
+       __glibcxx_requires_can_decrement_range.
+       (std::move_backward(_BI, _BI, _BI2)): Likewise.
+       * testsuite/25_algorithms/copy_backward/debug/1_neg.cc: New.
+       * testsuite/25_algorithms/copy_backward/debug/2_neg.cc: New.
+       * testsuite/25_algorithms/copy_backward/debug/3_neg.cc: New.
+       * testsuite/25_algorithms/equal/debug/1_neg.cc: New.
+       * testsuite/25_algorithms/equal/debug/2_neg.cc: New.
+       * testsuite/25_algorithms/equal/debug/3_neg.cc: New.
+
+2018-06-12  Jonathan Wakely  <jwakely@redhat.com>
+
+       P0935R0 Eradicating unnecessarily explicit default constructors
+       * include/bits/random.h (linear_congruential_engine)
+       (mersenne_twister_engine, subtract_with_carry_engine, random_device)
+       (uniform_real_distribution, normal_distribution)
+       (lognormal_distribution, gamma_distribution, chi_squared_distribution)
+       (cauchy_distribution, fisher_f_distribution, student_t_distribution)
+       (bernoulli_distribution, binomial_distribution,geometric_distribution)
+       (negative_binomial_distribution, exponential_distribution)
+       (weibull_distribution, extreme_value_distribution): Add non-explicit
+       default constructors. Remove default argument for first parameter of
+       explicit constructors.
+       (piecewise_constant_distribution, piecewise_linear_distribution):
+       Make default constructor non-explicit.
+       * include/bits/uniform_int_dist.h (uniform_int_distribution): Add
+       non-explicit default constructors. Remove default argument for first
+       parameter of explicit constructor.
+       * include/ext/random
+       (simd_fast_mersenne_twister_engine, beta_distribution)
+       (rice_distribution, nakagami_distribution, pareto_distribution)
+       (k_distribution, arcsine_distribution, hoyt_distribution)
+       (triangular_distribution, von_mises_distribution)
+       (hypergeometric_distribution, logistic_distribution)
+       (uniform_inside_sphere_distribution): Likewise.
+       (uniform_on_sphere_distribution): Make default constructor
+       non-explicit.
+       * testsuite/26_numerics/random/bernoulli_distribution/cons/default.cc:
+       Test for non-explicit default constructor. Fix references to standard.
+       * testsuite/26_numerics/random/binomial_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/chi_squared_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/discrete_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/extreme_value_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/fisher_f_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/gamma_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/geometric_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/lognormal_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/negative_binomial_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/normal_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/piecewise_linear_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/poisson_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/uniform_int_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/uniform_real_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/26_numerics/random/weibull_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/ext/random/arcsine_distribution/cons/default.cc: Likewise.
+       * testsuite/ext/random/beta_distribution/cons/default.cc: Likewise.
+       * testsuite/ext/random/hoyt_distribution/cons/default.cc: Likewise.
+       * testsuite/ext/random/hypergeometric_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/ext/random/k_distribution/cons/default.cc: Likewise.
+       * testsuite/ext/random/logistic_distribution/cons/default.cc: Likewise.
+       * testsuite/ext/random/nakagami_distribution/cons/default.cc: Likewise.
+       * testsuite/ext/random/normal_mv_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/ext/random/pareto_distribution/cons/default.cc: Likewise.
+       * testsuite/ext/random/rice_distribution/cons/default.cc: Likewise.
+       * testsuite/ext/random/triangular_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/ext/random/uniform_inside_sphere_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/ext/random/uniform_on_sphere_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/ext/random/von_mises_distribution/cons/default.cc:
+       Likewise.
+       * testsuite/util/testsuite_common_types.h
+       (implicitly_default_constructible): New helper.
+
+2018-06-08  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/bits/ios_base.h (ios::Init::Init(const Init&))
+       (ios::Init::operator=): Define as defaulted.
+       * include/bits/stl_bvector.h (_Bit_reference(const _Bit_reference&)):
+       Likewise.
+       * include/bits/stream_iterator.h (istream_iterator::operator=)
+       (ostream_iterator::operator=): Likewise.
+       * include/bits/streambuf_iterator.h (istreambuf_iterator::operator=)
+       Likewise.
+       * include/std/bitset (bitset::reference::reference(const reference&)):
+       Likewise.
+       * include/std/complex (complex<float>::complex(const complex&))
+       (complex<double>::complex(const complex&))
+       (complex<long double>::complex(const complex&)): Likewise.
+
+2018-06-07  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/bits/regex.h (sub_match): Add noexcept to default
+       constructor and length observer.
+       (match_results): Add noexcept to default constructor and observers
+       with no preconditions. Define destructor as defaulted.
+       (operator==, operator!=, swap): Add noexcept.
+       (regex_iterator): Add default member initializers and define default
+       constructor and destructor as defaulted. Add noexcept to equality
+       and dereference operators.
+
+2018-06-07  François Dumont  <fdumont@gcc.gnu.org>
+
+       * src/c++11/debug.cc
+       (_Safe_iterator_base::_M_detach()): Reset state only if needed.
+       (_Safe_iterator_base::_M_detach_single()): Likewise.
+       (_Safe_local_iterator_base::_M_detach()): Reset state only if needed.
+       (_Safe_local_iterator_base::_M_detach_single()): Likewise.
+
+2018-06-06  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/bits/shared_ptr_base.h (__shared_count): Remove redundant
+       move of const value.
+
+2018-06-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c++/86068
+       * include/bits/c++config: Check __cpp_transactional_memory >= 201500L
+       rather than __cpp_transactional_memory >= 201505L.
+
+2018-06-06  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/86008
+       * include/bits/quoted_string.h (_Quoted_string<basic_string_view, C>):
+       Define new partial specialization.
+       * include/std/iomanip (quoted(basic_string_view<C,T>, C, C)): Define
+       new overload.
+       (operator<<(basic_ostream<C,T>&, const _Quoted_string<S,C>&)): Use
+       value not reference for iteration.
+       * testsuite/27_io/manipulators/standard/char/quoted.cc: Adjust
+       comment.
+       * testsuite/27_io/manipulators/standard/char/quoted_sv.cc: New test.
+       * testsuite/27_io/manipulators/standard/wchar_t/quoted.cc: Adjust
+       comment.
+
+2018-06-05  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/std/type_traits: Fix comment typos.
+
+       * testsuite/27_io/filesystem/operations/read_symlink.cc: XFAIL for
+       mingw* targets.
+       * testsuite/27_io/filesystem/operations/symlink_status.cc: Likewise.
+       * testsuite/experimental/filesystem/operations/read_symlink.cc:
+       Likewise.
+
+2018-06-05  François Dumont  <fdumont@gcc.gnu.org>
+
+       * include/bits/stl_tempbuf.h
+       (_Temporary_buffer(_FwdIte, _FwdIte)): Delete, replaced by...
+       (_Temporary_buffer(_FwdIte, size_type)): ...this, new.
+       * include/ext/memory (temporary_buffer<>(_FwdIte, _FwdIte)): Adapt.
+       * include/bits/stl_algo.h (__stable_partition): Adapt.
+       (__inplace_merge): Adapt.
+       (__stable_sort): Adapt.
+
+2018-06-04  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/85930
+       * include/bits/shared_ptr_base.h [!__cpp_rtti]: Include <typeinfo>
+       unconditionally. Remove redundant declaration.
+       [!__cpp_rtti] (_Sp_make_shared_tag::_S_ti): Fix location of
+       alignment-specifier.
+
+       * include/bits/postypes.h (fpos): Define special members as defaulted.
+
+       PR libstdc++/85930
+       * include/bits/shared_ptr_base.h (_Sp_make_shared_tag::_S_ti): Align
+       the static variable correctly.
+
+2018-05-24  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/78870 support std::filesystem on Windows
+       * config.h.in: Regenerate.
+       * configure: Regenerate.
+       * configure.ac: Check for link, readlink and symlink.
+       * include/bits/fs_path.h (path::operator/=(const path&)): Move
+       definition out of class body.
+       (path::is_absolute(), path::_M_append(path)): Likewise.
+       (operator<<(basic_ostream, const path&)): Use std::quoted directly.
+       (operator>>(basic_istream, path&)): Likewise.
+       (u8path): Reorder definitions and fix Windows implementation.
+       (path::is_absolute()): Define inline and fix for Windows.
+       [!_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
+       Define POSIX version inline.
+       (path::_M_append(path)): Define inline.
+       * include/experimental/bits/fs_path.h (path::is_absolute()): Move
+       definition out of class body.
+       (operator<<(basic_ostream, const path&)): Fix type of delimiter and
+       escape characters.
+       (operator>>(basic_istream, path&)): Likewise.
+       (path::is_absolute()): Define inline and fix for Windows.
+       * src/filesystem/dir-common.h (__gnu_posix): New namespace.
+       (__gnu_posix::char_type, __gnu_posix::DIR, __gnu_posix::dirent)
+       (__gnu_posix::opendir, __gnu_posix::readdir, __gnu_posix::closedir):
+       Define as adaptors for Windows functions/types or as
+       using-declarations for POSIX functions/types.
+       (_Dir_base, get_file_type): Qualify names to use declarations from
+       __gnu_posix namespace.
+       (_Dir_base::is_dor_or_dotdot): New helper functions.
+       * src/filesystem/dir.cc (_Dir, recursive_directory_iterator): Qualify
+       names to use declarations from __gnu_posix namespace.
+       * src/filesystem/ops-common.h (__gnu_posix): New nested namespace.
+       (__gnu_posix::open, __gnu_posix::close, __gnu_posix::stat_type)
+       (__gnu_posix::stat, __gnu_posix::lstat, __gnu_posix::mode_t)
+       (__gnu_posix::chmod, __gnu_posix::mkdir, __gnu_posix::getcwd)
+       (__gnu_posix::chdir, __gnu_posix::utimbuf, __gnu_posix::utime)
+       (__gnu_posix::rename, __gnu_posix::truncate, __gnu_posix::char_type):
+       Define as adaptors for Windows functions/types or as
+       using-declarations for POSIX functions/types.
+       (stat_type, do_copy_file): Qualify names to use declarations from
+       __gnu_posix namespace.
+       (do_space): Declare new function.
+       (make_file_type): Only use S_ISLNK if defined.
+       * src/filesystem/ops.cc (char_ptr, filesystem::canonical): Use
+       path::value_type not char.
+       (filesystem::copy, create_dir, filesystem::create_directory): Qualify
+       names to use declarations from __gnu_posix namespace.
+       (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
+       add implementation for Windows.
+       (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
+       (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
+       [!_PC_PATH_MAX]: Don't use pathconf.
+       [PATH_MAX]: Use if defined.
+       (filesystem::current_path(const path&, error_code&))
+       (filesystem::equivalent, do_stat, filesystem::hard_link_count)
+       (filesystem::last_write_time, filesystem::permissions): Use names
+       from __gnu_posix.
+       (filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
+       (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
+       implementation for Windows.
+       (filesystem::rename, filesystem::resize_file): Use names from
+       __gnu_posix.
+       (filesystem::space): Use do_space.
+       [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Get absolute path to directory.
+       (filesystem::status, filesystem::symlink_status): Use names from
+       __gnu_posix.
+       (filesystem::temp_directory_path): Add implementation for Windows.
+       * src/filesystem/path.cc (dot): Define constant.
+       (path::replace_extension): Use dot.
+       (path::_M_find_extension): Likewise. Use path::string_type not
+       std::string.
+       (path::_M_split_cmpts): Use dot.
+       (filesystem_error::_M_get_what): Use u8string() not native().
+       * src/filesystem/std-dir.cc (_Dir, recursive_directory_iterator):
+       Qualify names to use declarations from __gnu_posix namespace.
+       * src/filesystem/std-ops.cc (filesystem::absolute(const path&)): Use
+       correct error_code.
+       (filesystem::absolute(const path&, error_code&)): Add implementation
+       for Windows.
+       (char_ptr, filesystem::canonical): Use path::value_type not char.
+       (do_copy_file): Use names from __gnu_posix.
+       [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Do not use fchmod, fchmodat or
+       sendfile.
+       (filesystem::copy, create_dir, filesystem::create_directory): Qualify
+       names to use declarations from __gnu_posix namespace.
+       (filesystem::create_hard_link): Check HAVE_LINK autoconf macro and
+       add implementation for Windows.
+       (filesystem::create_symlink): Check HAVE_SYMLINK autoconf macro.
+       (filesystem::current_path(error_code&)): Use __gnu_posix::getcwd.
+       [!_PC_PATH_MAX]: Don't use pathconf.
+       [PATH_MAX]: Use if defined.
+       (filesystem::current_path(const path&, error_code&))
+       (filesystem::equivalent, do_stat, filesystem::hard_link_count)
+       (filesystem::last_write_time, filesystem::permissions): Use names
+       from __gnu_posix.
+       (filesystem::read_symlink): Check HAVE_READLINK autoconf macro.
+       (filesystem::remove) [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Add
+       implementation for Windows.
+       (filesystem::rename, filesystem::resize_file): Use names from
+       __gnu_posix.
+       (do_space): Define.
+       (filesystem::space): Use do_space.
+       (filesystem::status, filesystem::symlink_status): Use names from
+       __gnu_posix.
+       (filesystem::temp_directory_path): Add implementation for Windows.
+       * src/filesystem/std-path.cc
+       [_GLIBCXX_FILESYSTEM_IS_WINDOWS] (path::operator/=(const path&)):
+       Define for Windows.
+       (dot): Define constant.
+       (path::replace_extension, is_dot): Use dot.
+       (path::lexically_normal): Check _M_type instead of calling
+       non-existent function.
+       (path::_M_find_extension): Use dot. Use path::string_type not
+       std::string.
+       (path::_M_split_cmpts): Use dot.
+       (filesystem_error::_M_get_what): Use u8string() not native().
+       * testsuite/27_io/filesystem/iterators/directory_iterator.cc: Do not
+       use symlinks.
+       * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc:
+       Likewise.
+       * testsuite/27_io/filesystem/operations/absolute.cc: Use
+       __gnu_test::root_path() instead of "/" and add Windows-specific tests.
+       * testsuite/27_io/filesystem/operations/canonical.cc: Use
+       path::string() to get narrow string, not path::native().
+       * testsuite/27_io/filesystem/operations/copy.cc: Construct fstreams
+       with std::filesystem::path not std::basic_string.
+       * testsuite/27_io/filesystem/operations/copy_file.cc: Likewise.
+       * testsuite/27_io/filesystem/operations/exists.cc: Use
+       __gnu_test::root_path() instead of "/".
+       * testsuite/27_io/filesystem/operations/is_empty.cc: Construct
+       fstreams with std::filesystem::path not std::basic_string.
+       * testsuite/27_io/filesystem/operations/last_write_time.cc: Use
+       path::string() to get narrow string.
+       * testsuite/27_io/filesystem/operations/space.cc: Check results for
+       errors, expect sensible values otherwise.
+       * testsuite/27_io/filesystem/operations/temp_directory_path.cc: Add
+       helpers for adjusting the environment on Windows.
+       * testsuite/27_io/filesystem/path/append/path.cc: Test
+       Windows-specific behaviour.
+       * testsuite/27_io/filesystem/path/construct/format.cc: Fix creation
+       of path::string_type objects.
+       * testsuite/27_io/filesystem/path/construct/locale.cc: Compare native
+       string to wide string on Windows.
+       * testsuite/27_io/filesystem/path/decompose/root_directory.cc: Allow
+       for backslash as root-directory.
+       * testsuite/27_io/filesystem/path/decompose/stem.cc: Use
+       path::string() to get narrow string.
+       * testsuite/27_io/filesystem/path/itr/traversal.cc: Test Windows-style
+       paths.
+       * testsuite/27_io/filesystem/path/native/string.cc: Use string_type
+       not std::string.
+       * testsuite/27_io/filesystem/path/query/is_absolute.cc: Adjust for
+       different definintion of absolute paths on Windows.
+       * testsuite/experimental/filesystem/iterators/directory_iterator.cc:
+       Do not use symlinks.
+       * testsuite/experimental/filesystem/operations/absolute.cc: Test
+       Windows behaviour.
+       * testsuite/experimental/filesystem/operations/copy.cc: Construct
+       fstreams with NTCTS not std::basic_string.
+       * testsuite/experimental/filesystem/operations/copy_file.cc: Likewise.
+       * testsuite/experimental/filesystem/operations/exists.cc: Use
+       __gnu_test::root_path() instead of "/".
+       * testsuite/experimental/filesystem/operations/is_empty.cc: Construct
+       fstreams with NTCTS not std::basic_string.
+       * testsuite/experimental/filesystem/operations/last_write_time.cc:
+       Use path::string() to get narrow string.
+       * testsuite/experimental/filesystem/operations/space.cc: Use
+       __gnu_test::root_path() instead of "/".
+       * testsuite/experimental/filesystem/operations/temp_directory_path.cc:
+       Add helpers for adjusting the environment on Windows.
+       * testsuite/experimental/filesystem/path/append/path.cc: Use
+       path::string() to get narrow strings for comparisons.
+       * testsuite/experimental/filesystem/path/concat/path.cc: Likewise.
+       * testsuite/experimental/filesystem/path/decompose/root_directory.cc:
+       Likewise.
+       * testsuite/experimental/filesystem/path/decompose/stem.cc: Likewise.
+       * testsuite/experimental/filesystem/path/native/string.cc: Use
+       string_type not std::string.
+       * testsuite/experimental/filesystem/path/query/is_absolute.cc:
+       Adjust for different definintion of absolute paths on Windows.
+       * testsuite/util/testsuite_fs.h (__gnu_test::root_path()): New
+       function.
+       (__gnu_test::scoped_file): Construct fstreams with NTCTS not
+       std::basic_string.
+
+2018-05-31  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/85951
+       * include/std/type_traits [_GLIBCXX_USE_C99_STDINT_TR1]: Do not define
+       uint_least16_t and uint_least32_t.
+       (__make_unsigned<wchar_t>): Define unconditionally.
+       (__make_unsigned_selector<_Tp, true, false>): Remove intermediate
+       typedefs.
+       (__make_unsigned_selector_base): New type to provide helper templates.
+       (__make_unsigned_selector<_Tp, false, true>): Reimplement using
+       __make_unsigned_selector_base helpers.
+       (__make_unsigned<char16_t>, __make_unsigned<char32_t>): Define.
+       (__make_signed_selector<_Tp, true, false>): Remove intermediate
+       typedefs.
+       (__make_signed<wchar_t>, __make_signed<char16_t>)
+       (__make_signed<char32_t>)): Define unconditionally.
+       * testsuite/20_util/make_signed/requirements/typedefs-3.cc: Check
+       wchar_t, char16_t and char32_t are transformed correctly.
+       * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Adjust
+       dg-error lineno.
+       * testsuite/20_util/make_unsigned/requirements/typedefs-3.cc: Check
+       wchar_t, char16_t and char32_t are transformed correctly.
+       * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Adjust
+       dg-error lineno.
+
+2018-05-29  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/std/variant (__erased_dtor): Qualify call to __get.
+
+2018-05-27  François Dumont  <fdumont@gcc.gnu.org>
+
+       * include/bits/stl_tree.h (_Rb_tree_impl(_Node_allocator&&)): New.
+       (_Rb_tree(const allocator_type&)): Use latter.
+       * include/bits/stl_map.h (map(const allocator_type&)): Likewise.
+       (map(initializer_list<value_type>, const allocator_type&)): Likewise.
+       (map(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
+       * include/bits/stl_multimap.h
+       (multimap(const allocator_type&)): Likewise.
+       (multimap(initializer_list<value_type>, const allocator_type&)):
+       Likewise.
+       (multimap(_InputIterator, _InputIterator, const allocator_type&)):
+       Likewise.
+       * include/bits/stl_set.h (set(const allocator_type&)): Likewise.
+       (set(initializer_list<value_type>, const allocator_type&)): Likewise.
+       (set(_InputIterator, _InputIterator, const allocator_type&)): Likewise.
+       * include/bits/stl_multiset.h
+       (multiset(const allocator_type&)): Likewise.
+       (multiset(initializer_list<value_type>, const allocator_type&)):
+       Likewise.
+       (multiset(_InputIterator, _InputIterator, const allocator_type&)):
+       Likewise.
+
+2018-05-25  François Dumont  <fdumont@gcc.gnu.org>
+
+       PR libstdc++/85768
+       * src/c++11/debug.cc: Remove backtrace usage.
+
+2018-05-24  Maya Rashish  <coypu@sdf.org>
+
+       PR target/85904
+       * crossconfig.m4: Test for aligned_alloc on netbsd.
+       * configure: Regenerate.
+
+2018-05-24  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/69769
+       PR libstdc++/85886
+       * include/bits/atomic_base.h (__atomic_base::value_type)
+       (__atomic_base::difference_type): Add new typedefs.
+       * include/std/atomic (atomic<bool>::value_type, atomic<T>::value_type)
+       (atomic<T*>::value_type, atomic<T*>::difference_type): Likewise.
+       (atomic<T*>::operator++, atomic<T*>::operator--)
+       (atomic<T*>::operator+=, atomic<T*>::operator-=)
+       (atomic<T*>::fetch_add, atomic<T*>::fetch_sub): Add static assertion
+       to enforce C++17 requirement on pointer arithmetic.
+       (__atomic_val_t, __atomic_diff_t): New alias templates.
+       (atomic_init, atomic_store_explicit, atomic_exchange_explicit)
+       (atomic_compare_exchange_weak_explicit)
+       (atomic_compare_exchange_strong_explicit, atomic_store)
+       (atomic_exchange, atomic_compare_exchange_weak)
+       (atomic_compare_exchange_strong): Use __atomic_val_t to make
+       scalar parameters be non-deduced contexts.
+       (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
+       (atomic_fetch_add, atomic_fetch_sub): Change first parameter to be
+       atomic instead of __atomic_base, and use __atomic_diff_t for scalar
+       parameters.
+       (atomic_fetch_and_explicit, atomic_fetch_or_explicit)
+       (atomic_fetch_xor_explicit, atomic_fetch_and, atomic_fetch_or)
+       (atomic_fetch_xor): Use __atomic_val_t for scalar parameters.
+       (atomic_fetch_add_explicit, atomic_fetch_sub_explicit)
+       (atomic_fetch_add, atomic_fetch_sub): Remove overloads for atomic
+       address types.
+       * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error lineno.
+       * testsuite/29_atomics/atomic/69769.cc: New test.
+       * testsuite/29_atomics/atomic/nonmembers.cc: New test.
+       * testsuite/29_atomics/atomic/operators/pointer_partial_void.cc:
+       Disable test for C++17 and later.
+       * testsuite/29_atomics/atomic/requirements/typedefs.cc: New test.
+       * testsuite/29_atomics/atomic_integral/nonmembers.cc: New test.
+       * testsuite/29_atomics/atomic_integral/requirements/typedefs.cc: New
+       test.
+
+2018-05-23  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/bits/fs_path.h (path::__is_encoded_char): Change from class
+       template to alias template.
+       (path::__value_type_is_char): Use remove_const_t.
+       (path:_S_string_from_iter): New helper function.
+       (path::_S_convert(InputIter, __null_terminated))
+       (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
+       Use _S_string_from_iter.
+       (path::string<_CharT, _Allocator>(const _Allocator&)): Allow sharing
+       rep for COW strings.
+       * include/experimental/bits/fs_path.h (path::__is_encoded_char):
+       Change from class template to alias template.
+       (path::__value_type_is_char): Use remove_const.
+       (path:_S_string_from_iter): New helper function.
+       (path::_S_convert(InputIter, __null_terminated))
+       (path::_S_convert_loc(InputIter, __null_terminated, const locale&)):
+       Use _S_string_from_iter.
+       * testsuite/27_io/filesystem/path/append/source.cc: Test appending
+       wide strings.
+       * testsuite/27_io/filesystem/path/concat/strings.cc: Check for exact
+       string equality, not path equivalence.
+       * testsuite/27_io/filesystem/path/construct/format.cc: Check
+       construction from std::string and std::wstring and input iterators.
+       * testsuite/27_io/filesystem/path/construct/locale.cc: Check
+       construction from iterators.
+       * testsuite/experimental/filesystem/path/concat/strings.cc: Check for
+       exact string equality, not path equivalence.
+       * testsuite/experimental/filesystem/path/construct/locale.cc: Check
+       construction from iterators.
+
+       * include/bits/fs_path.h (path::_M_type): Change default member
+       initializer to _Filename.
+       (path::begin): Create past-the-end iterator for empty path.
+       * src/filesystem/std-path.cc (path::remove_filename()): Remove
+       debugging check.
+       (path::has_relative_path()): Return false for empty filenames.
+       (path::_M_split_cmpts): Set _M_type to _Filename for empty paths.
+       Fix offset of empty final component.
+       * testsuite/27_io/filesystem/path/itr/components.cc: New.
+       * testsuite/27_io/filesystem/path/itr/traversal.cc: Add new inputs.
+
+2018-05-21  Jonathan Wakely  <jwakely@redhat.com>
+
+       Add support for opening file streams from wide character strings.
+       * config/io/basic_file_stdio.cc [_GLIBCXX_HAVE__WFOPEN]
+       (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
+       Define new overload.
+       * config/io/basic_file_stdio.h [_GLIBCXX_HAVE__WFOPEN]
+       (__basic_file<char>::open(const wchar_t*, ios_base::openmode)):
+       Declare new overload.
+       * configure.ac: Check for _wfopen.
+       * crossconfig.m4: Likewise.
+       * configure: Regenerate.
+       * config.h.in: Regenerate.
+       * include/bits/fstream.tcc [_GLIBCXX_HAVE__WFOPEN]
+       (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
+       Define new overload.
+       * include/std/fstream [_GLIBCXX_HAVE__WFOPEN]
+       (basic_filebuf<C,T>::open(const wchar_t*, ios_base::openmode)):
+       Declare new overload.
+       [_GLIBCXX_HAVE__WFOPEN]
+       (basic_ifstream<C,T>::basic_ifstream(const wchar_t*, openmode))
+       (basic_ifstream<C,T>::basic_open(const wchar_t*, openmode))
+       (basic_ofstream<C,T>::basic_ifstream(const wchar_t*, openmode))
+       (basic_ofstream<C,T>::basic_open(const wchar_t*, openmode))
+       (basic_fstream<C,T>::basic_ifstream(const wchar_t*, openmode))
+       (basic_fstream<C,T>::basic_open(const wchar_t*, openmode)): Define
+       new overloads.
+       * testsuite/27_io/basic_filebuf/open/wchar_t/1.cc: New.
+       * testsuite/27_io/basic_ifstream/cons/wchar_t/1.cc: New.
+       * testsuite/27_io/basic_ifstream/open/wchar_t/1.cc: New.
+       * testsuite/27_io/basic_ofstream/cons/wchar_t/1.cc: New.
+       * testsuite/27_io/basic_ofstream/open/wchar_t/1.cc: New.
+       * testsuite/27_io/basic_fstream/cons/wchar_t/1.cc: New.
+       * testsuite/27_io/basic_fstream/open/wchar_t/1.cc: New.
+
+2018-05-21  François Dumont  <fdumont@gcc.gnu.org>
+
+       PR libstdc++/85845
+       * include/bits/stl_tree.h
+       (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): Fix noexcept
+       qualification.
+
+2018-05-21  Jonathan Wakely  <jwakely@redhat.com>
+
+       * src/filesystem/std-ops.cc (absolute): Report an error for empty
+       paths.
+       (weakly_canonical(const path&)): Do not call canonical on empty path.
+       (weakly_canonical(const path&, error_code&)): Likewise.
+       * testsuite/27_io/filesystem/operations/absolute.cc: Check for errors.
+
+       PR libstdc++/85818
+       * testsuite/experimental/filesystem/path/preferred_separator.cc: Add
+       dg-require-filesystem-ts.
+
+       PR libstdc++/85843
+       * src/c++11/cow-stdexcept.cc (logic_error, runtime_error): Explicitly
+       initialize base class to avoid warnings.
+
+2018-05-19  Jonathan Wakely  <jwakely@redhat.com>
+
+       * src/c++11/codecvt.cc (__codecvt_utf8_base<wchar_t>::do_in)
+       [__SIZEOF_WCHAR_T__==2 && __BYTE_ORDER__!=__ORDER_BIG_ENDIAN__]: Set
+       little_endian element in bitmask.
+       * testsuite/22_locale/codecvt/codecvt_utf8/69703.cc: Run all tests.
+       * testsuite/22_locale/codecvt/codecvt_utf8/wchar_t/1.cc: New.
+
+2018-05-18  François Dumont  <fdumont@gcc.gnu.org>
+
+       * include/bits/stl_tree.h
+       (_Rb_tree_impl(_Rb_tree_impl&&, _Node_allocator&&)): New.
+       (_Rb_tree(_Rb_tree&&, _Node_allocator&&, true_type)): New, use latter.
+       (_Rb_tree(_Rb_tree&&, _Node_allocator&&, false_type)): New.
+       (_Rb_tree(_Rb_tree&&, _Node_allocator&&)): Adapt, use latters.
+       * include/debug/map.h
+       (map(map&&, const_allocator_type&)): Add noexcept qualitication.
+       * include/debug/multimap.h
+       (multimap(multimap&&, const_allocator_type&)): Likewise.
+       * include/debug/set.h
+       (set(set&&, const_allocator_type&)): Likewise.
+       * include/debug/multiset.h
+       (multiset(multiset&&, const_allocator_type&)): Likewise.
+       * testsuite/23_containers/map/cons/noexcept_default_construct.cc:
+       Add checks.
+       * testsuite/23_containers/map/cons/noexcept_move_construct.cc:
+       Add checks.
+       * testsuite/23_containers/multimap/cons/noexcept_default_construct.cc:
+       Add checks.
+       * testsuite/23_containers/multimap/cons/noexcept_move_construct.cc:
+       Add checks.
+       * testsuite/23_containers/multiset/cons/noexcept_default_construct.cc:
+       Add checks.
+       * testsuite/23_containers/multiset/cons/noexcept_move_construct.cc:
+       Add checks.
+       * testsuite/23_containers/set/cons/noexcept_default_construct.cc:
+       Add checks.
+       * testsuite/23_containers/set/cons/noexcept_move_construct.cc:
+       Add checks.
+
+2018-05-18  Jason Merrill  <jason@redhat.com>
+
+       * include/bits/stl_deque.h (_Deque_iterator): Constrain constructor
+       for conversion to const_iterator.  Add defaulted copy ops.
+       * libsupc++/new (bad_alloc): Add defaulted copy ops.
+       * libsupc++/exception.h (exception): Add defaulted copy ops.
+       * include/std/system_error (system_error): Add defaulted copy ops.
+       * include/std/stdexcept (domain_error, invalid_argument)
+       (length_error, out_of_range, range_error, overflow_error)
+       (underflow_error): Add defaulted copy ops.
+       * include/bits/stl_iterator.h (reverse_iterator): Add defaulted
+       copy assignment.
+       * include/bits/allocator.h (allocator): Add defaulted copy assignment.
+       * include/ext/throw_allocator.h (condition_base): Add defaulted
+       default and copy ctor and copy assignment.
+
+2018-05-18  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/85098
+       * include/bits/regex.h [__cplusplus < 201703L] (basic_regex::icase)
+       (basic_regex::nosubs, basic_regex::optimize, basic_regex::collate)
+       (basic_regex::ECMAScript, basic_regex::basic, basic_regex::extended)
+       (basic_regex::awk, basic_regex::grep, basic_regex::egrep): Add
+       definitions.
+       * include/bits/regex_automaton.h (_NFA::_M_insert_state): Adjust
+       whitespace.
+       * include/bits/regex_compiler.tcc (__INSERT_REGEX_MATCHER): Add
+       braces around body of do-while.
+       * testsuite/28_regex/basic_regex/85098.cc: New
+
+2018-05-17  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/85818
+       * src/filesystem/path.cc (path::preferred_separator): Add used
+       attribute.
+       * testsuite/experimental/filesystem/path/preferred_separator.cc: New.
+
+       PR libstdc++/85812
+       * libsupc++/cxxabi_init_exception.h (__cxa_free_exception): Declare.
+       * libsupc++/exception_ptr.h (make_exception_ptr) [__cpp_exceptions]:
+       Refactor to separate non-throwing and throwing implementations.
+       [__cpp_rtti && !_GLIBCXX_HAVE_CDTOR_CALLABI]: Deallocate the memory
+       if constructing the object throws.
+
+2018-05-15  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/85749
+       * include/bits/random.h (__detail::__is_seed_seq): New SFINAE helper.
+       (linear_congruential_engine, mersenne_twister_engine)
+       (subtract_with_carry_engine, discard_block_engine)
+       (independent_bits_engine, shuffle_order_engine): Use __is_seed_seq to
+       constrain function templates taking seed sequences.
+       * include/bits/random.tcc (linear_congruential_engine::seed(_Sseq&))
+       (mersenne_twister_engine::seed(_Sseq&))
+       (subtract_with_carry_engine::seed(_Sseq&)): Change return types to
+       match declarations.
+       * include/ext/random (simd_fast_mersenne_twister_engine): Use
+       __is_seed_seq to constrain function templates taking seed sequences.
+       * include/ext/random.tcc (simd_fast_mersenne_twister_engine::seed):
+       Change return type to match declaration.
+       * testsuite/26_numerics/random/discard_block_engine/cons/seed_seq2.cc:
+       New.
+       * testsuite/26_numerics/random/independent_bits_engine/cons/
+       seed_seq2.cc: New.
+       * testsuite/26_numerics/random/linear_congruential_engine/cons/
+       seed_seq2.cc: New.
+       * testsuite/26_numerics/random/mersenne_twister_engine/cons/
+       seed_seq2.cc: New.
+       * testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error lineno.
+       * testsuite/26_numerics/random/shuffle_order_engine/cons/seed_seq2.cc:
+       New.
+       * testsuite/26_numerics/random/subtract_with_carry_engine/cons/
+       seed_seq2.cc: New.
+       * testsuite/ext/random/simd_fast_mersenne_twister_engine/cons/
+       seed_seq2.cc: New.
+
+       PR libstdc++/83891
+       * include/bits/fs_path.h (path::is_absolute()): Use same definition
+       for all operating systems.
+       * include/experimental/bits/fs_path.h (path::is_absolute()): Likewise.
+       * testsuite/27_io/filesystem/path/query/is_absolute.cc: New.
+       * testsuite/27_io/filesystem/path/query/is_relative.cc: Fix comment.
+       * testsuite/experimental/filesystem/path/query/is_absolute.cc: New.
+
+       * testsuite/27_io/filesystem/path/decompose/extension.cc: Remove
+       unused <vector> header.
+       * testsuite/27_io/filesystem/path/query/empty.cc: Likewise.
+       * testsuite/27_io/filesystem/path/query/has_extension.cc: Likewise.
+       * testsuite/27_io/filesystem/path/query/has_filename.cc: Likewise.
+       * testsuite/27_io/filesystem/path/query/has_parent_path.cc: Likewise.
+       * testsuite/27_io/filesystem/path/query/has_relative_path.cc:
+       Likewise.
+       * testsuite/27_io/filesystem/path/query/has_root_directory.cc:
+       Likewise.
+       * testsuite/27_io/filesystem/path/query/has_root_name.cc: Likewise.
+       * testsuite/27_io/filesystem/path/query/has_root_path.cc: Likewise.
+       * testsuite/27_io/filesystem/path/query/has_stem.cc: Likewise.
+       * testsuite/27_io/filesystem/path/query/is_relative.cc: Likewise.
+       * testsuite/experimental/filesystem/path/decompose/extension.cc:
+       Likewise.
+       * testsuite/experimental/filesystem/path/query/empty.cc: Likewise.
+       * testsuite/experimental/filesystem/path/query/has_extension.cc:
+       Likewise.
+       * testsuite/experimental/filesystem/path/query/has_filename.cc:
+       Likewise.
+       * testsuite/experimental/filesystem/path/query/has_parent_path.cc:
+       Likewise.
+       * testsuite/experimental/filesystem/path/query/has_relative_path.cc:
+       Likewise.
+       * testsuite/experimental/filesystem/path/query/has_root_directory.cc:
+       Likewise.
+       * testsuite/experimental/filesystem/path/query/has_root_name.cc:
+       Likewise.
+       * testsuite/experimental/filesystem/path/query/has_root_path.cc:
+       Likewise.
+       * testsuite/experimental/filesystem/path/query/has_stem.cc: Likewise.
+       * testsuite/experimental/filesystem/path/query/is_relative.cc:
+       Likewise.
+
+       PR libstdc++/84159
+       * include/bits/fs_path.h (path::operator/=, path::append): Construct
+       temporary path before calling _M_append.
+       (path::_M_append): Change parameter to path and implement C++17
+       semantics.
+       * testsuite/27_io/filesystem/path/append/path.cc: Add helper function
+       and more examples from the standard.
+       * testsuite/27_io/filesystem/path/append/source.cc: New.
+       * testsuite/27_io/filesystem/path/decompose/filename.cc: Add comment.
+       * testsuite/27_io/filesystem/path/nonmember/append.cc: New.
+
+       * include/std/variant (__gen_vtable_impl::__visit_invoke): Qualify
+       __invoke to prevent ADL.
+
+2018-05-14  Jonathan Wakely  <jwakely@redhat.com>
+
+       PR libstdc++/81256
+       * include/bits/fstream.tcc (basic_filebuf::close): Do not swallow
+       exceptions from _M_terminate_output().
+       * include/std/fstream (basic_filebuf::~basic_filebuf): Swallow any
+       exceptions from close().
+       * testsuite/27_io/basic_filebuf/close/81256.cc: New.
+
+       * include/bits/valarray_array.h (__valarray_get_memory): Remove.
+       (__valarray_get_storage): Call operator new directly. Remove ignored
+       top-level restrict qualifier and add malloc attribute instead.
+       (_Array<_Tp>::_Array(size_t)): Remove unused constructor.
+
+       PR libstdc++/67554
+       * include/bits/valarray_array.h (_Array_copy_ctor<_Tp, true>)
+       (_Array_copier<_Tp, true>): Do not pass null pointers to memcpy.
+
+       PR libstdc++/82966
+       * include/bits/node_handle.h (_Node_handle_common::_M_swap): Use value
+       instead of type.
+       * testsuite/23_containers/set/modifiers/node_swap.cc: New.
+
 2018-05-13  Ville Voutilainen  <ville.voutilainen@gmail.com>
 
        PR libstdc++/80165