+2019-03-08 Jonathan Wakely <jwakely@redhat.com>
+
+ * doc/xml/manual/using.xml: Use link element instead of xref.
+ * doc/html/*: Regenerate.
+
+ * include/bits/fs_path.h (path::format): Add fixed underlying type.
+
+2019-03-08 François Dumont <fdumont@gcc.gnu.org>
+
+ PR libstdc++/89477
+ * include/debug/map.h (map): Use _RequireNotAllocator to constrain
+ parameters in deduction guides.
+ * include/debug/multimap.h (multimap): Likewise.
+ * include/debug/set.h (multimap): Likewise.
+ * include/debug/multiset.h (multimap): Likewise.
+ * include/debug/unordered_map (unordered_map): Likewise.
+ (unordered_multimap): Likewise.
+ * include/debug/unordered_set (unordered_set): Likewise.
+ (unordered_multiset): Likewise.
+
+ PR libstdc++/89608
+ * include/debug/unordered_map (unordered_map<>::_M_check_rehashed):
+ Invalidate all iterators in case of rehash.
+ (unordered_multimap<>::_M_check_rehashed): Likewise.
+ * include/debug/unordered_set
+ (unordered_set<>::_M_check_rehashed): Likewise.
+ (unordered_multiset<>::_M_check_rehashed): Likewise.
+ * testsuite/23_containers/unordered_set/debug/89608_neg.cc: New.
+
+2019-03-07 Andreas Schwab <schwab@suse.de>
+
+ * config/abi/post/riscv64-linux-gnu: New directory.
+ * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: New file.
+
+2019-03-07 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/20_util/function_objects/bind_front/1.cc: Change from
+ compile test to run. Fix typo.
+
+ * doc/xml/manual/status_cxx2020.xml: Update C++20 status.
+ * doc/html/*: Regenerate.
+
+ P0356R5 Simplified partial function application
+ * include/std/functional [C++20] (_Bind_front, _Bind_front_t): Define
+ helpers for bind_front.
+ (bind_front, __cpp_lib_bind_front): Define.
+ * testsuite/20_util/function_objects/bind_front/1.cc: New test.
+
+2019-03-06 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/type_traits (__cpp_lib_bounded_array_traits): Define.
+ * include/std/version (__cpp_lib_bounded_array_traits): Likewise.
+ * testsuite/20_util/is_bounded_array/value.cc: Check for macro.
+ * testsuite/20_util/is_unbounded_array/value.cc: Likewise.
+
+2019-03-06 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ PR libstdc++/86655 - std::assoc_legendre should not constrain
+ the value of m (or x).
+ * include/tr1/legendre_function.tcc (__assoc_legendre_p,
+ __sph_legendre): If degree > order Don't throw, return 0.
+ (__legendre_p, __assoc_legendre_p): Don't constrain x either.
+ * testsuite/special_functions/02_assoc_legendre/pr86655.cc: New test.
+ * testsuite/special_functions/20_sph_legendre/pr86655.cc: New test.
+ * testsuite/tr1/5_numerical_facilities/special_functions/
+ 02_assoc_legendre/pr86655.cc: New test.
+ * testsuite/tr1/5_numerical_facilities/special_functions/
+ 22_sph_legendre/pr86655.cc: New test.
+
+2019-03-06 Ville Voutilainen <ville.voutilainen@gmail.com>
+
+ Rewrite variant.
+ Also PR libstdc++/85517
+ * include/std/variant (__do_visit): New.
+ (__variant_cast): Likewise.
+ (__variant_cookie): Likewise.
+ (__erased_*): Remove.
+ (_Variant_storage::_S_vtable): Likewise.
+ (_Variant_storage::__M_reset_impl): Adjust to use __do_visit.
+ (_Variant_storage::__M_reset): Adjust.
+ (__variant_construct): New.
+ (_Copy_ctor_base(const _Copy_ctor_base&)): Adjust to use
+ __variant_construct.
+ (_Move_ctor_base(_Move_ctor_base&&)): Likewise.
+ (_Move_ctor_base::__M_destructive_copy): New.
+ (_Move_ctor_base::__M_destructive_move): Adjust to use
+ __variant_construct.
+ (_Copy_assign_base::operator=): Adjust to use __do_visit.
+ (_Copy_assign_alias): Adjust to check both copy assignment
+ and copy construction for triviality.
+ (_Move_assign_base::operator=): Adjust to use __do_visit.
+ (_Multi_array): Add support for visitors that accept and return
+ a __variant_cookie.
+ (__gen_vtable_impl::_S_apply_all_alts): Likewise.
+ (__gen_vtable_impl::_S_apply_single_alt): Likewise.
+ (__gen_vtable_impl::__element_by_index_or_cookie): New. Generate
+ a __variant_cookie temporary for a variant that is valueless and..
+ (__gen_vtable_impl::__visit_invoke): ..adjust here.
+ (__gen_vtable::_Array_type): Conditionally make space for
+ the __variant_cookie visitor case.
+ (__variant_construct_by_index): New.
+ (get_if): Adjust to use std::addressof.
+ (relops): Adjust to use __do_visit.
+ (variant): Add __variant_cast and __variant_construct_by_index
+ as friends.
+ (variant::emplace): Use _M_reset() and __variant_construct_by_index
+ instead of self-destruction.
+ (variant::swap): Adjust to use __do_visit.
+ (visit): Reimplement in terms of __do_visit.
+ (__variant_hash_call_base_impl::operator()): Adjust to use __do_visit.
+ * testsuite/20_util/variant/compile.cc: Adjust.
+ * testsuite/20_util/variant/run.cc: Likewise.
+
+2019-03-06 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/c++config.h (_cpp_lib_char8_t): Add L suffix to
+ constant.
+ * testsuite/experimental/feat-char8_t.cc: Likewise.
+
+ * include/std/type_traits [C++20] (is_bounded_array)
+ (is_unbounded_array, is_bounded_array_v, is_unbounded_array_v):
+ Define.
+ * testsuite/20_util/is_bounded_array/requirements/
+ explicit_instantiation.cc: New test.
+ * testsuite/20_util/is_bounded_array/requirements/typedefs.cc: New
+ test.
+ * testsuite/20_util/is_bounded_array/value.cc: New test.
+ * testsuite/20_util/is_unbounded_array/requirements/
+ explicit_instantiation.cc: New test.
+ * testsuite/20_util/is_unbounded_array/requirements/typedefs.cc: New
+ * test.
+ * testsuite/20_util/is_unbounded_array/value.cc: New test.
+
+ * include/bits/ptr_traits.h [C++20] (pointer_traits<T*>::pointer_to):
+ Add constexpr.
+ * testsuite/20_util/pointer_traits/pointer_to_constexpr.cc: New test.
+
+2019-03-05 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/c_compatibility/math.h [C++20] (lerp): Add using
+ declaration.
+ * include/c_global/cmath [C++20] (__cpp_lib_interpolate): Define.
+ (__lerp): Define function template to implement lerp.
+ (lerp(float, float, float), lerp(double, double, double))
+ (lerp(long double, long double, long double)): Define for C++20.
+ * include/std/numeric [C++20] (__cpp_lib_interpolate): Define.
+ (midpoint(T, T), midpoint(T*, T*)): Define.
+ * include/std::version [C++20] (__cpp_lib_interpolate): Define.
+ * testsuite/26_numerics/lerp.cc: New test.
+ * testsuite/26_numerics/midpoint/floating.cc: New test.
+ * testsuite/26_numerics/midpoint/integral.cc: New test.
+ * testsuite/26_numerics/midpoint/pointer.cc: New test.
+
+2019-03-04 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ PR libstdc++/88996 Implement P0439R0
+ Make std::memory_order a scoped enumeration.
+ * include/bits/atomic_base.h: For C++20 make memory_order a scoped enum,
+ add variables for the old enumerators. Adjust calls.
+ * testsuite/29_atomics/headers/atomic/types_std_c++2a.cc: New test.
+ * testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc: New test.
+
+2019-03-04 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/26_numerics/bit/bitops.rot/rotl.cc: Remove bogus dg-do
+ directive.
+
+ * include/std/memory_resource (polymorphic_allocator): Add default
+ template argument for C++20.
+ (polymorphic_allocator::allocate_bytes)
+ (polymorphic_allocator::deallocate_bytes)
+ (polymorphic_allocator::allocate_object)
+ (polymorphic_allocator::deallocate_object)
+ (polymorphic_allocator::new_object)
+ (polymorphic_allocator::delete_object): New member functions for
+ C++20.
+ * testsuite/20_util/polymorphic_allocator/allocate_object.cc: New
+ test.
+
+2019-03-03 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/89562
+ * src/filesystem/ops-common.h (do_copy_file): Open files in binary
+ mode for mingw.
+
+2019-03-01 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource)
+ [!__cpp_sized_deallocation]: Do not pass size to operator delete.
+
+ * include/std/memory (uses_allocator_construction_args): New set of
+ overloaded functions.
+ (make_obj_using_allocator, uninitialized_construct_using_allocator):
+ New functions.
+ * include/std/memory_resource (polymorphic_allocator::construct)
+ [__cplusplus > 201703l]: Replace all overloads with a single function
+ using uses_allocator_construction_args.
+ * testsuite/20_util/polymorphic_allocator/construct_c++2a.cc: New
+ test.
+ * testsuite/20_util/uses_allocator/make_obj.cc: New test.
+
+2019-02-27 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/89466
+ * acinclude.m4 (GLIBCXX_CONFIGURE_DOCBOOK): Reorder check for local
+ stylesheet directories before check for xsltproc. Try to use
+ xmlcatalog to find local stylesheet directory before trying hardcoded
+ paths. Add path used by suse to hardcoded paths. Adjust xsltproc
+ check to look for the same stylesheet as doc/Makefile.am uses. Don't
+ use xsltproc if xmlcatalog fails to find a local stylesheet.
+ * configure.ac: Check for xmlcatalog.
+ * Makefile.in: Regenerate.
+ * configure: Likewise.
+ * doc/Makefile.in: Likewise.
+ * include/Makefile.in: Likewise.
+ * libsupc++/Makefile.in: Likewise.
+ * po/Makefile.in: Likewise.
+ * python/Makefile.in: Likewise.
+ * src/Makefile.in: Likewise.
+ * src/c++11/Makefile.in: Likewise.
+ * src/c++17/Makefile.in: Likewise.
+ * src/c++98/Makefile.in: Likewise.
+ * src/filesystem/Makefile.in: Likewise.
+ * testsuite/Makefile.in: Likewise.
+
+2019-02-26 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/89477
+ * include/bits/alloc_traits.h (_RequireNotAllocator): New helper for
+ container deduction guides.
+ * include/bits/hashtable.h (_RequireNotAllocatorOrIntegral): Likewise.
+ * include/bits/stl_map.h (map): Use _RequireNotAllocator to constrain
+ parameters in deduction guides.
+ * include/bits/stl_multimap.h (multimap): Likewise.
+ * include/bits/stl_multiset.h (multiset): Likewise.
+ * include/bits/stl_queue.h (queue, priority_queue): Likewise.
+ * include/bits/stl_set.h (set): Likewise.
+ * include/bits/stl_stack.h (stack): Likewise.
+ * include/bits/unordered_map.h (unordered_map, unordered_multimap):
+ use _RequireNotAllocator and _RequireNotAllocatorOrIntegral to
+ constrain parameters in deduction guides.
+ * include/bits/unordered_set.h (unordered_set, unordered_multiset):
+ Likewise.
+ * testsuite/23_containers/map/cons/deduction.cc: Test additional
+ deduction cases.
+ * testsuite/23_containers/multiset/cons/deduction.cc: Likewise.
+ * testsuite/23_containers/set/cons/deduction.cc: Likewise.
+ * testsuite/23_containers/unordered_map/cons/deduction.cc: Likewise.
+ * testsuite/23_containers/unordered_multimap/cons/deduction.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_multiset/cons/deduction.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_set/cons/deduction.cc: Likewise.
+
+ PR libstdc++/89416
+ * include/bits/alloc_traits.h (__is_alloc_insertable_impl): Change
+ to class template and partial specialization using void_t.
+ (__is_copy_insertable, __is_move_insertable): Adjust base class.
+
+2019-02-24 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/89416
+ * include/bits/alloc_traits.h (__is_alloc_insertable_impl): Make
+ copy and move members public.
+
+2019-02-23 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/type_traits (__underlying_type_impl): New helper to
+ make underlying_type SFINAE-friendly.
+ (underlying_type): Derive from __underlying_type_impl.
+ * testsuite/20_util/underlying_type/requirements/typedefs-3.cc: New
+ test.
+
+ PR libstdc++/89446
+ * include/bits/char_traits.h (__constant_char_array): Check index is
+ in range before dereferencing.
+ (char_traits<char>::compare, char_traits<char>::find)
+ (char_traits<char8_t>::compare, char_traits<char8_t>::find): Return
+ immediately if n is zero.
+ (char_traits<wchar_t>::compare, char_traits<wchar_t>::find): Likewise.
+ Remove workarounds for PR 67026.
+ * testsuite/21_strings/basic_string_view/operators/char/89446.cc:
+ New test.
+ * testsuite/21_strings/basic_string_view/operators/wchar_t/89446.cc:
+ New test.
+
+2019-02-22 Eric Botcazou <ebotcazou@adacore.com>
+
+ * config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: Adjust.
+ * config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: Likewise.
+
+2019-02-22 Jakub Jelinek <jakub@redhat.com>
+
+ PR libstdc++/89402
+ * src/c++98/compatibility-ldbl.cc (_ZNKSt4hashIeEclEe): Change return
+ type to std::size_t and argument to type to long double.
+
+2019-02-22 Eric Botcazou <ebotcazou@adacore.com>
+
+ * configure.host (abi_baseline_pair): Adjust for SPARC64/Linux.
+ * config/abi/post/sparc64-linux-gnu: New directory.
+ * config/abi/post/sparc64-linux-gnu/baseline_symbols.txt: New file.
+ * config/abi/post/sparc64-linux-gnu/32: New directory.
+ * config/abi/post/sparc64-linux-gnu/32/baseline_symbols.txt: New file.
+
2019-02-21 Jonathan Wakely <jwakely@redhat.com>
* testsuite/29_atomics/headers/atomic/types_std_c++20.cc: New test.