+2019-05-17 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/bits/stl_deque.h
+ (_Deque_iterator<>::__ptr_to): Remove, use std::__ptr_rebind.
+ (_Deque_base(_Deque_base&&, const allocator_type&)): New.
+ (_Deque_base::_Deque_impl_data): New.
+ (_Deque_base::_Deque_impl): Inherit latter.
+ (_Deque_base::_Deque_impl::_M_swap_data): Move...
+ (_Deque_base::_Deque_impl_data::_M_swap_data): ... here.
+ (_Deque_base::_Deque_impl()): Add noexcept qualification.
+ (_Deque_base::_Deque_impl(_Deque_impl&&, _Tp_alloc_type&&)): New.
+ (_Deque_base::_Deque_impl::_M_get_Tp_allocator()): Remove static_cast.
+ (deque<>::deque()): Default.
+ (deque<>::deque(deque&&)): Default.
+ (deque<>::deque(deque&&, const allocator_type&, false_type)): New.
+ (deque<>::deque(deque&&, const allocator_type&, true_type)): New.
+ (deque<>::deque(deque&&, const allocator_type&)): Delegate to latters.
+ (deque<>::deque<_It>(_It, _It, const allocator_type&)): Use
+ _M_range_initialize.
+ (deque<>::assign<_It>(_It, _It)): Use _M_assign_aux.
+ (deque<>::resize(size_type, const value_type&)): Share a single
+ implementation.
+ (deque<>::insert<_It>(const_iterator, _It, _It)): Use
+ _M_range_insert_aux.
+ [__cplusplus >= 201103L](_M_initialize_dispatch): Remove.
+ [__cplusplus >= 201103L](_M_assign_dispatch): Remove.
+ [__cplusplus >= 201103L](_M_insert_dispatch): Remove.
+ * testsuite/23_containers/deque/allocator/default_init.cc: New.
+
+2019-05-17 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/90246
+ * include/std/variant (holds_alternative, get, get_if): Improve
+ static assertion messages.
+ (bad_variant_access::bad_variant_access()): Change default message.
+ (__throw_bad_variant_access(bool)): New overload.
+ (get): Use new overload.
+ (visit, visit<R>): Improve exception message.
+
+ * testsuite/20_util/variant/compile.cc: Fix narrowing test for ILP32
+ targets. Add more cases from P0608R3.
+ * testsuite/20_util/variant/run.cc: Add more cases from P0608R3.
+
+ * include/bits/random.h (seed_seq::param): Fix non-reserved name.
+ * include/experimental/type_traits (is_detected_exact)
+ (is_detected_exact_v): Likewise.
+ * include/pstl/execution_defs.h (is_execution_policy)
+ (is_execution_policy_v, __enable_if_execution_policy): Likewise.
+ * include/pstl/execution_impl.h (__policy_traits): Likewise.
+ * testsuite/17_intro/names.cc: Check for more non-reserved names.
+ * testsuite/experimental/names.cc: New test.
+
+ PR libstdc++/85965
+ * include/bits/hashtable.h (_Hashtable::~_Hashtable()): Remove static
+ assertions from the destructor.
+ * include/bits/hashtable_policy.h (_Hash_code_base::_M_hash_code):
+ Move static_assert for hash function to here.
+ (_Hash_table_base::_M_equals): Move static_assert for equality
+ predicate to here.
+ * include/bits/stl_tree.h (_Rb_tree::_S_value(_Const_Link_type)):
+ Remove.
+ (_Rb_tree::_S_key(_Const_Link_type)): Move assertions here. Access
+ the value directly instead of calling _S_value.
+ (_Rb_tree::_S_value(_Const_Base_ptr)): Remove.
+ (_Rb_tree::_S_key(_Const_Base_ptr)): Do downcast and forward to
+ _S_key(_Const_Link_type).
+ * testsuite/23_containers/set/85965.cc: Check construction,
+ destruction, assignment and size() do not trigger the assertions.
+ * testsuite/23_containers/unordered_set/85965.cc: Likewise.
+ * testsuite/23_containers/map/48101_neg.cc: Call find and adjust
+ expected errors.
+ * testsuite/23_containers/multimap/48101_neg.cc: Likewise.
+ * testsuite/23_containers/multiset/48101_neg.cc: Likewise.
+ * testsuite/23_containers/set/48101_neg.cc: Likewise.
+ * testsuite/23_containers/unordered_map/48101_neg.cc: Likewise.
+ * testsuite/23_containers/unordered_multimap/48101_neg.cc: Likewise.
+ * testsuite/23_containers/unordered_multiset/48101_neg.cc: Likewise.
+ * testsuite/23_containers/unordered_set/48101_neg.cc: Likewise.
+
+ * include/bits/invoke.h [__cplusplus < 201703L] (__invoke_r<void>):
+ Use _GLIBCXX14_CONSTEXPR because void functions cannot be constexpr
+ in C++11.
+
+ * doc/xml/manual/status_cxx2020.xml: Update P0608R3, P0777R1, and
+ P1165R1 entries.
+ * doc/html/*: Regenerate.
+ * include/std/tuple (make_from_tuple): Use remove_reference_t instead
+ of decay_t (P0777R1).
+
+2019-05-17 François Dumont <fdumont@gcc.gnu.org>
+
+ Move from state of allocators (LWG2593)
+ * include/bits/stl_deque.h
+ (_Deque_base(_Deque_base&&, false_type)): Remove.
+ (_Deque_base(_Deque_base&&, true_type)): Remove.
+ (_Deque_base(_Deque_base&&)): Adapt.
+ (_Deque_base::_M_move_impl()): Remove.
+ * testsuite/util/testsuite_allocator.h
+ (propagating_allocator(propagating_allocator&&)): Preserve move from
+ state.
+ * testsuite/23_containers/deque/allocator/move_assign.cc (test02):
+ Adapt.
+ * testsuite/23_containers/forward_list/allocator/move_assign.cc (test02):
+ Adapt.
+ * testsuite/23_containers/list/allocator/move_assign.cc (test02): Adapt.
+ * testsuite/23_containers/map/allocator/move_assign.cc (test02): Adapt.
+ * testsuite/23_containers/multimap/allocator/move_assign.cc (test02):
+ Adapt.
+ * testsuite/23_containers/multiset/allocator/move_assign.cc (test02):
+ Adapt.
+ * testsuite/23_containers/set/allocator/move_assign.cc (test02): Adapt.
+ * testsuite/23_containers/unordered_map/allocator/move_assign.cc
+ (test02): Adapt.
+ * testsuite/23_containers/unordered_multimap/allocator/move_assign.cc
+ (test02): Adapt.
+ * testsuite/23_containers/unordered_multiset/allocator/move_assign.cc
+ (test02): Adapt.
+ * testsuite/23_containers/unordered_set/allocator/move_assign.cc
+ (test02): Adapt.
+ * testsuite/23_containers/vector/allocator/move_assign.cc (test02):
+ Adapt.
+ * testsuite/23_containers/vector/bool/allocator/move_assign.cc (test02):
+ Adapt.
+ * testsuite/21_strings/basic_string/allocator/char/move_assign.cc
+ (test02): Adapt.
+ * testsuite/21_strings/basic_string/allocator/wchar_t/move_assign.cc
+ (test02): Adapt.
+
+2019-05-16 Jonathan Wakely <jwakely@redhat.com>
+
+ * src/c++17/fs_ops.cc (absolute(const path&, error_code&))
+ [_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Remove bogus assertion.
+
+ * include/std/variant (__overload_set): Remove.
+ (_Arr): New helper.
+ (_Build_FUN): New class template to define a single FUN overload,
+ with specializations to prevent unwanted conversions, as per P0608R3.
+ (_Build_FUNs): New class template to build an overload set of FUN.
+ (_FUN_type): New alias template to perform overload resolution.
+ (__accepted_type): Use integer_constant base for failure case. Use
+ _FUN_type for successful case.
+ (variant::__accepted_index): Use _Tp instead of _Tp&&.
+ (variant::variant(_Tp&&)): Likewise.
+ (variant::operator=(_Tp&&)): Likewise.
+
+ * include/std/variant (_Variant_storage<false, _Types...>::_M_reset):
+ Replace raw visitation with a runtime check for the valueless state
+ and a non-raw visitor.
+ (_Variant_storage<false, _Types...>::_M_reset_impl): Remove.
+ (variant::index()): Remove branch.
+ (variant::swap(variant&)): Use valueless_by_exception() instead of
+ comparing the index to variant_npos, and add likelihood attribute.
+
+ * include/bits/hashtable_policy.h (_Equal_helper): Remove.
+ (_Hashtable_base::_Equal_hash_code): Define new class template.
+ (_Hashtable_base::_M_equals): Use _Equal_hash_code instead of
+ _Equal_helper.
+
+ * include/bits/hashtable_policy.h (_Hashtable_ebo_helper::_S_get):
+ Replace with _M_get non-static member function.
+ (_Hashtable_ebo_helper::_S_cget): Replace with _M_cget non-static
+ member function.
+ (_Hash_code_base, _Local_iterator_base, _Hashtable_base):
+ (_Hashtable_alloc): Adjust to use non-static members of EBO helper.
+
+ * include/bits/hashtable_policy.h (_Hash_code_base::_M_swap): Use
+ _S_get accessors for members in EBO helpers.
+ (_Hash_code_base::_M_extract(), _Hash_code_base::_M_ranged_hash())
+ (_Hash_code_base::_M_h1(), _Hash_code_base::_M_h2()): Remove non-const
+ overloads.
+ (_Hashtable_base::_M_swap): Use _S_get accessors for members in EBO
+ helpers.
+ (_Hashtable_base::_M_eq()): Remove non-const overload.
+
+2019-05-15 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/variant (visit, visit<R>): Qualify calls to __do_visit.
+
+2019-05-14 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/util/testsuite_allocator.h (NullablePointer::operator bool):
+ Fix return value.
+
+2019-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/os/solaris/solaris2.10: Move to ...
+ * config/os/solaris: ... this.
+ * configure.host (os_include_dir): Adapt.
+ (abi_baseline_pair): Remove Solaris 10 handling.
+ * config/abi/post/i386-solaris2.10: Remove.
+ * config/abi/post/sparc-solaris2.10: Remove.
+ * config/abi/post/i386-solaris2.11: Rename to ...
+ * config/abi/post/i386-solaris: ... this.
+ * config/abi/post/sparc-solaris2.11: Rename to ...
+ * config/abi/post/sparc-solaris: ... this.
+
+ * libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] [__sun]: Remove
+ workaround.
+
+ * testsuite/ext/enc_filebuf/char/13598.cc: Remove *-*-solaris2.10
+ xfail.
+
+2019-05-14 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/variant (__visit_with_index): Remove typedef.
+ (__deduce_visit_result): New tag type.
+ (__raw_visit, __raw_idx_visit): New helper functions for "raw"
+ visitation of possibly-valueless variants, forwarding to __do_visit
+ with the relevant tag type.
+ (_Variant_storage<false, _Types...>::_M_reset_impl): Use __raw_visit
+ and make lambda return void.
+ (__variant_construct): Likewise.
+ (_Copy_assign_base::operator=, _Move_assign_base::operator=): Use
+ __raw_idx_visit and make lambda return void.
+ (_Multi_array::__untag_result): Add metafunction to check the function
+ pointer type for a tag type that dictates the kind of visitation.
+ (_Multi_array<_Ret(*)(_Visitor, _Variants...), __first, __rest...>):
+ Use decltype(auto) instead of tagged function pointer type.
+ (__gen_vtable_impl): Remove bool non-type parameter and unused
+ _Variant_tuple parameter.
+ (__gen_vtable_impl::__visit_invoke_impl): Remove.
+ (__gen_vtable_impl::__do_visit_invoke): Remove.
+ (__gen_vtable_impl::__do_visit_invoke_r): Remove.
+ (__gen_vtable_impl::__visit_invoke): Use if-constexpr and __invoke_r
+ for the visit<R> case, rather than dispatching to separate functions.
+ (_VARIANT_RELATION_FUNCTION_TEMPLATE): Use __raw_idx_visit and make
+ lambda return void.
+ (variant::swap): Likewise.
+ (__do_visit): Replace two non-type template parameters with a single
+ type parameter, so that the caller must specify the visitor's return
+ type (or one of the tag types).
+ (visit): Deduce a return type from the visitor and use the
+ __deduce_visit_result tag to enforce that all overloads return the
+ same type.
+ (visit<R>): Call __do_visit<R> with explicit result type.
+ (__variant_hash_call_base_impl::operator()): Use __raw_visit and make
+ lambda return void.
+
+2019-05-14 Nina Dinka Ranns <dinka.ranns@gmail.com>
+
+ nonesuch is insufficiently useless (lwg2996)
+ * include/std/type_traits (struct __nonesuch): Added private base
+ class to make __nonesuch not an aggregate and removed deleted default
+ constructor.
+ * include/bits/stl_pair.h (struct __nonesuch_no_braces): Removed.
+ (operator=(const pair&)): Use __nonesuch instead of
+ __nonesuch_no_braces.
+ (operator=(pair&&)): Likewise
+ * include/std/tuple (operator=(const tuple&)): Use __nonesuch instead
+ of __nonesuch_no_braces.
+ (operator=(tuple&&)): Likewise
+ * include/experimental/type_traits (struct nonesuch): Added private
+ base class to make nonesuch not an aggregate and removed deleted
+ default constructor.
+ * testsuite/20_util/nonesuch/nonesuch.cc: New.
+ * testsuite/experimental/type_traits/nonesuch.cc: New.
+
+2019-05-14 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/std_function.h (_Simple_type_wrapper): Remove.
+ (_Function_handler): Remove partial specializations for void return
+ types and pointers to member.
+ (_Function_handler::_M_manager): Adapt to removal of
+ _Simple_type_wrapper.
+ (_Function_handler::_M_invoke): Use __invoke_r instead of __invoke.
+ * include/std/functional (_Bind_result::__enable_if_void)
+ (_Bind_result::__disable_if_void): Remove sfinae helpers.
+ (_Bind_result::__call): Use __invoke_r and remove overloads for void
+ return types.
+ * include/std/future (__future_base::_Task_state::_M_run)
+ (__future_base::_Task_state::_M_run_delayed): Use __invoke_r and
+ change return type of lambda expressions.
+
+ * include/bits/invoke.h (__invoke_r): Define new function implementing
+ the INVOKE<R> pseudo-function.
+ * testsuite/20_util/function_objects/invoke/1.cc: Add more tests.
+ * testsuite/20_util/function_objects/invoke/2.cc: New test.
+
+ * include/std/type_traits (__is_nt_convertible_helper): Define it
+ unconditionally, not only for C++20.
+ (__is_nothrow_convertible): Define internal trait for use in C++11.
+ (__is_nt_invocable_impl: Fix by using __is_nothrow_convertible.
+ (is_invocable_r_v, is_nothrow_invocable_r_v): Add missing parameter.
+ * testsuite/20_util/is_nothrow_convertible/value_ext.cc: New test.
+ * testsuite/20_util/is_nothrow_convertible/value.cc: Check with type
+ that has nothrow explicit conversion but potentially-throwing implicit
+ conversion.
+ * testsuite/20_util/is_nothrow_invocable/value.cc: Likewise.
+ * testsuite/20_util/is_nothrow_invocable/value_ext.cc: Fix helper
+ function to only consider implicit conversions.
+ * testsuite/20_util/tuple/cons/noexcept_specs.cc: Add comment.
+
+ * include/std/iterator: Include <iosfwd> instead of <istream> and
+ <ostream>.
+
+ * include/bits/stl_tree.h (_Rb_tree::erase(const Key*, const Key*)):
+ Remove unused, non-standard function.
+
+ * include/bits/regex.h (match_results::max_size()): Adjust return
+ value to account for prefix/suffix/unmatched subs.
+ (match_results::_M_resize(unsigned int)): Use _Base_type::assign to
+ reset the contained sub matches.
+ (match_results::_M_establish_failed_match(_Bi_iter)): Add new member
+ function to set result state following a failed match.
+ * include/bits/regex.tcc (__regex_algo_impl): Remove loop to set
+ sub_match states after _M_resize. Use _M_establish_failed_match.
+
+ PR libstdc++/69724
+ * include/std/thread (thread::_State_impl, thread::_S_make_state):
+ Replace single _Callable parameter with variadic _Args pack, to
+ forward them directly to the tuple of decayed copies.
+ * testsuite/30_threads/thread/cons/69724.cc: New test.
+
+2019-05-14 Nina Dinka Ranns <dinka.ranns@gmail.com>
+
+ Inconsistency wrt Allocators in basic_string assignment (LWG2579)
+ * include/bits/basic_string.h: (operator=(const basic_string&):
+ Move allocator decision to assign.
+ (assign(const basic_string&)): Move allocator decision here.
+ * testsuite/21_strings/basic_string/allocator/char/copy_assign.cc:
+ Add tests.
+ * testsuite/21_strings/basic_string/allocator/wchar_t/copy_assign.cc:
+ Add tests.
+
+2019-05-14 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/util/testsuite_allocator.h (memory_resource)
+ (default_resource_mgr): Fix indentation.
+
+ * testsuite/20_util/allocator_traits/members/allocate_hint_nonpod.cc:
+ Use operator-> to access raw pointer member.
+ * testsuite/23_containers/vector/59829.cc: Likewise.
+ * testsuite/23_containers/vector/bool/80893.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/cxx11.cc: Use NullablePointer.
+ * testsuite/util/testsuite_allocator.h (NullablePointer): New utility
+ for tests.
+ (PointerBase, PointerBase_void): Derive from NullablePointer and use
+ its constructors and equality operators. Change converting
+ constructors to use operator-> to access private member of the other
+ pointer type.
+ (PointerBase_void::operator->()): Add, for access to private member.
+ (operator-(PointerBase, PointerBase)): Change to hidden friend.
+ (operator==(PointerBase, PointerBase)): Remove.
+ (operator!=(PointerBase, PointerBase)): Remove.
+
+ * python/libstdcxx/v6/printers.py (UniquePointerPrinter.__init__): Do
+ not assume field called _M_head_impl is the first tuple element.
+ * testsuite/libstdc++-prettyprinters/compat.cc: Make tuple
+ implementation more accurate.
+ * testsuite/libstdc++-prettyprinters/cxx11.cc: Check unique_ptr with
+ empty pointer type and non-empty deleter.
+
+ LWG 2899 - Make is_move_constructible correct for unique_ptr
+ * include/bits/unique_ptr.h (__uniq_ptr_impl): Add move constructor,
+ move assignment operator.
+ (__uniq_ptr_impl::release(), __uniq_ptr_impl::reset(pointer)): Add.
+ (__uniq_ptr_data): New class template with conditionally deleted
+ special members.
+ (unique_ptr, unique_ptr<T[], D>): Change type of data member from
+ __uniq_ptr_impl<T, D> to __uniq_ptr_data<T, D>. Define move
+ constructor and move assignment operator as defaulted.
+ (unique_ptr::release(), unique_ptr<T[], D>::release()): Forward to
+ __uniq_ptr_impl::release().
+ (unique_ptr::reset(pointer), unique_ptr<T[], D>::reset<U>(U)): Forward
+ to __uniq_ptr_impl::reset(pointer).
+ * python/libstdcxx/v6/printers.py (UniquePointerPrinter.__init__):
+ Check for new __uniq_ptr_data type.
+ * testsuite/20_util/unique_ptr/dr2899.cc: New test.
+
+2019-05-13 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/90454.cc path construction from void*
+ * include/bits/fs_path.h (path::_Path): Use remove_pointer so that
+ pointers to void are rejected as well as void.
+ * include/experimental/bits/fs_path.h (path::_Path): Likewise.
+ * testsuite/27_io/filesystem/path/construct/80762.cc: Also check
+ pointers to void.
+ * testsuite/experimental/filesystem/path/construct/80762.cc: Likewise.
+
+ * doc/xml/manual/policy_data_structures.xml: Comment out stray
+ <remark> elements. Fix formatting of bibliography references.
+
+2019-05-13 Edward Smith-Rowland <3dw4rd@verizon.net>
+
+ * doc/xml/manual/status_cxx2020.xml: Document P0811R3 status.
+
+2019-05-13 Jonathan Wakely <jwakely@redhat.com>
+
+ Remove Profile Mode, deprecated since 7.1.0
+ * doc/Makefile.am: Remove XML file for profile mode docs.
+ * doc/Makefile.in: Regenerate.
+ * doc/xml/authors.xml: Remove authors of profile mode docs.
+ * doc/xml/manual/appendix_contributing.xml: Remove mention of profile
+ mode.
+ * doc/xml/manual/debug.xml: Likewise.
+ * doc/xml/manual/evolution.xml: Document removal of profile mode.
+ * doc/xml/manual/profile_mode.xml: Remove profile mode docs.
+ * doc/xml/manual/spine.xml: Remove profile mode author credit.
+ * doc/xml/manual/test.xml: Remove docs for dg-require-profile-mode
+ directive.
+ * doc/xml/manual/using.xml: Remove docs for profile mode headers and
+ macro.
+ * doc/html/*: Regenerate.
+ * include/Makefile.am: Remove profile mode headers.
+ * include/Makefile.in: Regenerate.
+ * include/bits/c++config (std::__profile): Remove namespace.
+ [_GLIBCXX_PROFILE]: Remove checks for macro.
+ * include/profile/array: Remove.
+ * include/profile/base.h: Remove.
+ * include/profile/bitset: Remove.
+ * include/profile/deque: Remove.
+ * include/profile/forward_list: Remove.
+ * include/profile/impl/profiler.h: Remove.
+ * include/profile/impl/profiler_algos.h: Remove.
+ * include/profile/impl/profiler_container_size.h: Remove.
+ * include/profile/impl/profiler_hash_func.h: Remove.
+ * include/profile/impl/profiler_hashtable_size.h: Remove.
+ * include/profile/impl/profiler_list_to_slist.h: Remove.
+ * include/profile/impl/profiler_list_to_vector.h: Remove.
+ * include/profile/impl/profiler_map_to_unordered_map.h: Remove.
+ * include/profile/impl/profiler_node.h: Remove.
+ * include/profile/impl/profiler_state.h: Remove.
+ * include/profile/impl/profiler_trace.h: Remove.
+ * include/profile/impl/profiler_vector_size.h: Remove.
+ * include/profile/impl/profiler_vector_to_list.h: Remove.
+ * include/profile/iterator_tracker.h: Remove.
+ * include/profile/list: Remove.
+ * include/profile/map: Remove.
+ * include/profile/map.h: Remove.
+ * include/profile/multimap.h: Remove.
+ * include/profile/multiset.h: Remove.
+ * include/profile/ordered_base.h: Remove.
+ * include/profile/set: Remove.
+ * include/profile/set.h: Remove.
+ * include/profile/unordered_base.h: Remove.
+ * include/profile/unordered_map: Remove.
+ * include/profile/unordered_set: Remove.
+ * include/profile/vector: Remove.
+ * scripts/run_doxygen: Do not process profile mode headers.
+ * testsuite/23_containers/array/element_access/60497.cc: Don't use
+ profile mode type.
+ * testsuite/23_containers/array/specialized_algorithms/swap_cxx17.cc:
+ Remove dg-skip-if for profile mode.
+ * testsuite/23_containers/forward_list/capacity/1.cc: Remove
+ preprocessor check for profile mode.
+ * testsuite/23_containers/list/capacity/29134.cc: Likewise.
+ * testsuite/23_containers/map/modifiers/extract.cc: Remove dg-skip-if
+ for profile mode.
+ * testsuite/23_containers/map/modifiers/insert_or_assign/1.cc:
+ Likewise.
+ * testsuite/23_containers/map/modifiers/try_emplace/1.cc: Likewise.
+ * testsuite/23_containers/multimap/modifiers/extract.cc: Likewise.
+ * testsuite/23_containers/multiset/modifiers/extract.cc: Likewise.
+ * testsuite/23_containers/set/modifiers/extract.cc: Likewise.
+ * testsuite/23_containers/unordered_map/modifiers/extract.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_multimap/modifiers/extract.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_multiset/modifiers/extract.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_set/modifiers/extract.cc:
+ Likewise.
+ * testsuite/23_containers/vector/bool/capacity/29134.cc: Remove
+ preprocessor check for profile mode.
+ * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc:
+ Likewise.
+ * testsuite/23_containers/vector/modifiers/insert_vs_emplace.cc:
+ Remove dg-skip-if for profile mode.
+ * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
+ * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
+ * testsuite/25_algorithms/lexicographical_compare/71545.cc: Likewise.
+ * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
+ * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
+ * testsuite/Makefile.am: Remove profile_flags variable and
+ * testsuite/Makefile.am: Remove profile_flags variable and
+ check-profile target.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/ext/profile/all.cc: Remove.
+ * testsuite/ext/profile/mutex_extensions_neg.cc: Remove.
+ * testsuite/ext/profile/profiler_algos.cc: Remove.
+ * testsuite/ext/profile/replace_new.cc: Remove.
+ * testsuite/ext/throw_allocator/deallocate_global.cc: Remove
+ preprocessor check for profile mode.
+ * testsuite/ext/throw_allocator/deallocate_local.cc: Likewise.
+ * testsuite/lib/libstdc++.exp (check_v3_target_profile_mode): Remove.
+ (check_v3_target_normal_mode): Do not check for profile mode macro.
+ * testsuite/libstdc++-prettyprinters/80276.cc: Remove dg-skip-if for
+ profile mode.
+ * testsuite/libstdc++-prettyprinters/compat.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/debug.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/debug_cxx11.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/whatis2.cc: Likewise.
+
+ Remove array_allocator extension, deprecated since 4.9.0
+ * doc/xml/manual/allocator.xml: Remove documentation for
+ array_allocator.
+ * doc/xml/manual/evolution.xml: Document array_allocator removal.
+ * doc/xml/manual/using.xml: Remove header from documentation.
+ * include/Makefile.am: Remove <ext/array_allocator.h> header.
+ * include/Makefile.in: Regenerate.
+ * include/ext/array_allocator.h: Remove.
+ * include/precompiled/extc++.h: Do not include removed header.
+ * testsuite/ext/array_allocator/1.cc: Remove.
+ * testsuite/ext/array_allocator/2.cc: Remove.
+ * testsuite/ext/array_allocator/26875.cc: Remove.
+ * testsuite/ext/array_allocator/3.cc: Remove.
+ * testsuite/ext/array_allocator/check_deallocate_null.cc: Remove.
+ * testsuite/ext/array_allocator/check_delete.cc: Remove.
+ * testsuite/ext/array_allocator/check_new.cc: Remove.
+ * testsuite/ext/array_allocator/variadic_construct.cc: Remove.
+ * testsuite/ext/headers.cc: Do not include removed header.
+
+2019-05-11 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/bits/stl_bvector.h
+ (operator==(const _Bit_iterator_base&, const _Bit_iterator_base&)):
+ Make hidden friend.
+ (operator<(const _Bit_iterator_base&, const _Bit_iterator_base&)):
+ Likewise.
+ (operator!=(const _Bit_iterator_base&, const _Bit_iterator_base&)):
+ Likewise.
+ (operator>(const _Bit_iterator_base&, const _Bit_iterator_base&)):
+ Likewise.
+ (operator<=(const _Bit_iterator_base&, const _Bit_iterator_base&)):
+ Likewise.
+ (operator>=(const _Bit_iterator_base&, const _Bit_iterator_base&)):
+ Likewise.
+ (operator-(const _Bit_iterator_base&, const _Bit_iterator_base&)):
+ Likewise.
+ (_Bit_iterator::operator+(difference_type)): Likewise and allow NRVO
+ copy elision.
+ (_Bit_iterator::operator-(difference_type)): Likewise.
+ (operator+(ptrdiff_t, const _Bit_iterator&)): Make hidden friend.
+ (_Bit_const_iterator::operator+(difference_type)): Likewise and allow
+ NRVO copy elision.
+ (_Bit_const_iterator::operator-(difference_type)): Likewise.
+ (operator+(ptrdiff_t, const _Bit_const_iterator&)): Make hidden friend.
+
+2019-05-10 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/81266
+ * testsuite/util/thread/all.h: Do not use remove_pointer for
+ std::thread::native_handle_type.
+
+ PR libstdc++/90397
+ * include/std/variant (_Variant_storage<false, Types...>::_M_storage())
+ (_Variant_storage<true, Types...>::_M_reset()))
+ (_Variant_storage<true, Types...>::_M_storage())): Add noexcept.
+ (__get_storage): Likewise.
+ (variant): Add noexcept to friend declarations for __get and
+ __get_storage.
+
+ PR libstdc++/90388
+ * include/bits/unique_ptr.h (default_delete, default_delete<T[]>):
+ Use _Require for constraints.
+ (operator>(nullptr_t, const unique_ptr<T,D>&)): Implement exactly as
+ per the standard.
+ (__uniq_ptr_hash): New base class with conditionally-disabled call
+ operator.
+ (hash<unique_ptr<T,D>>): Derive from __uniq_ptr_hash.
+ * testsuite/20_util/default_delete/48631_neg.cc: Adjust dg-error line.
+ * testsuite/20_util/unique_ptr/hash/90388.cc: New test.
+
+ * include/bits/shared_ptr.h: Improve docs.
+ * include/bits/shared_ptr_base.h: Likewise.
+ * include/bits/stl_uninitialized.h: Likewise.
+ * include/bits/unique_ptr.h: Likewise.
+ * libsupc++/new: Likewise.
+
+2019-05-09 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/bits/stl_deque.h
+ (operator==(const _Deque_iterator<>&, const _Deque_iterator<>&)):
+ Make hidden friend.
+ (operator!=(const _Deque_iterator<>&, const _Deque_iterator<>&)):
+ Likewise.
+ (operator<(const _Deque_iterator<>&, const _Deque_iterator<>&)):
+ Likewise.
+ (operator<=(const _Deque_iterator<>&, const _Deque_iterator<>&)):
+ Likewise.
+ (operator>(const _Deque_iterator<>&, const _Deque_iterator<>&)):
+ Likewise.
+ (operator>=(const _Deque_iterator<>&, const _Deque_iterator<>&)):
+ Likewise.
+ (_Deque_iterator<>::operator+(difference_type)): Likewise and allow NRVO
+ copy elision.
+ (_Deque_iterator<>::operator-(difference_type)): Likewise.
+
+2019-05-08 François Dumont <fdumont@gcc.gnu.org>
+
+ PR libstdc++/90277
+ * testsuite/23_containers/unordered_multiset/insert/24061-multiset.cc
+ (test01): Reserve for number of insertions to avoid rehash during test.
+ * testsuite/23_containers/unordered_multimap/insert/24061-multimap.cc
+ (test01): Likewise.
+ * testsuite/23_containers/unordered_multimap/insert/24061-multimap.cc
+ (test01): Likewise.
+ (test02): Likewise.
+ (test03): Likewise.
+
+2019-05-08 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/experimental/bits/fs_path.h: Improve docs.
+ * include/experimental/bits/net.h: Fix wrong header name in comment.
+ Do not document implementation details.
+ * include/experimental/netfwd: Fix doxygen grouping.
+
+2019-05-07 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/stl_pair.h: Improve docs.
+ * include/std/tuple: Likewise.
+
+ * doc/doxygen/doxygroups.cc (std::literals): Add documentation for
+ inline namespace.
+ * include/std/chrono: Improve docs.
+ * include/std/ratio: Do not document implementation details.
+ * testsuite/20_util/ratio/cons/cons_overflow_neg.cc: Adjust dg-error
+ line numbers.
+ * testsuite/20_util/ratio/operations/ops_overflow_neg.cc: Likewise.
+
+ PR libstdc++/89102
+ * doc/xml/manual/intro.xml: Document DR 2408 and 2465 changes.
+ * include/std/chrono (__duration_common_type_wrapper): Replace with ...
+ (__duration_common_type): New helper.
+ (common_type<chrono::duration<R1, P2>, chrono::duration<R2, P2>>): Use
+ __duration_common_type.
+ (__timepoint_common_type_wrapper): Replace with ...
+ (__timepoint_common_type): New helper.
+ (common_type<chrono::time_point<C, D2>, chrono::time_point<C, D2>>):
+ Use __time_point_common_type.
+ * include/std/type_traits (common_type<>): Define, as per LWG 2408.
+ (__common_type_impl): If either argument is transformed by decay,
+ use the common_type of the decayed types.
+ (__common_type_impl<_Tp, _Up, _Tp, _Up>): If the types are already
+ decayed, use __do_common_type_impl to get the common_type.
+ (common_type<_Tp>): Use common_type<_Tp, _Tp>.
+ (__do_member_type_wrapper, __member_type_wrapper)
+ (__expanded_common_type_wrapper): Remove.
+ (__common_type_pack, __common_type_fold): New helpers.
+ (common_type<_Tp, _Up, _Vp...>): Use new helpers instead of
+ __member_type_wrapper and __expanded_common_type_wrapper.
+ * testsuite/20_util/common_type/requirements/explicit_instantiation.cc:
+ Test zero-length template argument list.
+ * testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc:
+ Test single argument cases and argument types that should decay.
+ * testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc:
+ Adjust expected error.
+ * testsuite/20_util/duration/literals/range_neg.cc: Use zero for
+ dg-error lineno.
+ * testsuite/20_util/duration/requirements/typedefs_neg1.cc: Likewise.
+ * testsuite/20_util/duration/requirements/typedefs_neg2.cc: Likewise.
+ * testsuite/20_util/duration/requirements/typedefs_neg3.cc: Likewise.
+
+ * doc/xml/manual/intro.xml: Fix DR 2537 and DR 2566 confusion.
+
+2019-05-01 Nina Dinka Ranns <dinka.ranns@gmail.com>
+
+ Make allocator propagation more consistent for
+ operator+(basic_string) (P1165R1)
+ * include/bits/basic_string.h
+ (operator+(basic_string&&, basic_string&&): Changed resulting
+ allocator to always be the one from the first parameter.
+ * include/bits/basic_string.tcc
+ (operator+(const _CharT*, const basic_string&)): Changed
+ resulting allocator to be SOCCC on the second parameter's allocator.
+ (operator+(_CharT, const basic_string&)): Likewise.
+ * testsuite/21_strings/basic_string/allocator/char/operator_plus.cc:
+ New.
+ * testsuite/21_strings/basic_string/allocator/wchar_t/operator_plus.cc:
+ New.
+
+2019-05-07 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/regex.h: Improve docs.
+ * include/bits/regex.tcc: Do not document implementation details.
+
+ * testsuite/19_diagnostics/error_code/hash.cc: New test.
+
+2019-05-06 François Dumont <fdumont@gcc.gnu.org>
+
+ * python/libstdcxx/v6/printers.py (add_one_template_type_printer):
+ Add type printer for container types in std::__debug namespace.
+ * testsuite/lib/gdb-test.exp (whatis-regexp-test): New.
+ (gdb-tests): Use distinct parameters for the type of test and use of
+ regex.
+ (gdb-test): Check for regex test even if 'whatis' test.
+ * testsuite/libstdc++-prettyprinters/80276.cc: Adapt for _GLIBCXX_DEBUG
+ mode.
+ * testsuite/libstdc++-prettyprinters/cxx11.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/cxx17.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/libfundts.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/simple.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/simple11.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/whatis.cc: Likewise.
+ * testsuite/libstdc++-prettyprinters/whatis2.cc: Likewise.
+
+2019-05-04 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/std/system_error (error_category): Fix comment.
+
+ PR libstdc++/90299
+ * src/c++17/fs_ops.cc (absolute(const path&)): Report an error if the
+ argument is an empty path.
+ (absolute(const path&, error_code&)): Use invalid_argument as error
+ code instead of no_such_file_or_directory.
+ * testsuite/27_io/filesystem/operations/absolute.cc: Check handling
+ of non-existent paths and empty paths with both overloads of absolute.
+
+ * include/std/system_error (error_category, error_code)
+ (error_condition): Improve docs.
+ * libsupc++/exception: Add missing @addtogroup Doxygen command.
+ * libsupc++/exception_ptr.h (exception_ptr): Link equality operators
+ to class documentation. Suppress documentation for implementation
+ details.
+ * libsupc++/nested_exception.h (throw_with_nested, rethrow_if_nested):
+ Suppress documentation for implementation details.
+
+ * include/std/system_error (error_code): Remove friend declaration
+ for hash<error_code>.
+ (hash<error_code>::operator()): Use public member functions to access
+ value and category.
+ (hash<error_condition>::operator()): Use address of category, not
+ its object representation.
+ * src/c++11/compatibility-c++0x.cc (hash<error_code>::operator()):
+ Use public member functions to access value and category.
+ * testsuite/19_diagnostics/error_condition/hash.cc: New test.
+
+2019-05-04 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/bits/hashtable.h (_Hashtable<>::rehash): Review comment.
+ * include/bits/hashtable_policy.h
+ (_Prime_rehash_policy::_M_bkt_for_elements): Use __builtin_ceill.
+ (_Power2_rehash_policy::_M_bkt_for_elements): Likewise.
+ (_Power2_rehash_policy::_M_next_bkt): Enforce returning a result not
+ smaller than input value rather than always greater. Preserve
+ _M_next_resize if called with 0 input. Use __builtin_floorl.
+ (_Power2_rehash_policy::_M_need_rehash): Rehash only if number of
+ elements + number of insertions is greater than _M_next_resize. Start
+ with 11 buckets if not told otherwise. Use __builtin_floorl.
+ (_Rehash_base<>::reserve): Use rehash policy _M_bkt_for_elements.
+ * src/c++11/hashtable_c++0x.cc (_Prime_rehash_policy::_M_next_bkt):
+ Preserve _M_next_resize if called with 0 input. Use __builtin_floorl.
+ (_Prime_rehash_policy::_M_need_rehash): Start with 11 buckets if not
+ told otherwise. Use __builtin_floorl.
+ * testsuite/23_containers/unordered_set/hash_policy/71181.cc: Adapt test
+ to also validate _Power2_rehash_policy.
+ * testsuite/23_containers/unordered_set/hash_policy/power2_rehash.cc:
+ Adapt.
+
+2019-05-03 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/61761
+ * testsuite/26_numerics/complex/proj.cc: Don't assume <cmath> defines
+ std::copysign.
+
+ PR libstdc++/52119
+ * include/ext/numeric_traits.h (__glibcxx_min): Avoid integer
+ overflow warning with -Wpedantic -Wsystem-headers.
+
+2019-05-02 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/90314
+ * include/bits/c++config (_GLIBCXX_NOEXCEPT_IF): Use variadic macro.
+ * include/bits/move.h (swap): Remove extra parentheses.
+
+ * include/experimental/bits/lfts_config.h: Improve doc markup.
+ * include/experimental/optional: Improve docs.
+ (_Has_addressof_mem, _Has_addressof_free, _Has_addressof)
+ (__constexpr_addressof): Remove.
+ (optional::operator->()): Use std::__addressof().
+ * include/std/optional (optional::operator->()): Adjust whitespace.
+ * testsuite/experimental/optional/constexpr/observers/2.cc: Check
+ that operator-> is still constexpr with overloaded operator&. Change
+ to compile-only test.
+ * testsuite/experimental/optional/constexpr/observers/3.cc: Change to
+ compile-only test.
+
+ * include/bits/shared_ptr.h: Improve docs.
+ * include/bits/shared_ptr_atomic.h: Likewise.
+ * include/bits/unique_ptr.h: Likewise. Adjust whitespace.
+
+ * include/bits/basic_string.h: Fix iterator/index confusion in
+ Doxygen comments.
+ * include/bits/range_access.h: Fix Doxygen warnings.
+ * include/bits/refwrap.h: Do not document implementation details.
+ (ref, cref): Group docs with reference_wrapper.
+ * include/std/fstream: Fix Doxygen markup.
+ * libsupc++/initializer_list (begin, end): Group docs with
+ initializer_list.
+
+ * doc/doxygen/user.cfg.in: Set MARKDOWN_SUPPORT=YES.
+
+ * include/bits/unique_lock.h: Fix/improve doxygen markup.
+ * include/std/mutex: Likewise.
+ * include/std/shared_mutex: Likewise.
+
+ * include/bits/fs_dir.h: Fix/improve doxygen markup.
+ * include/bits/fs_fwd.h: Likewise.
+ * include/bits/fs_ops.h: Likewise.
+ * include/bits/fs_path.h: Likewise.
+ * include/std/filesystem: Likewise.
+
+ * include/experimental/bits/net.h: Fix/improve doxygen markup.
+ * include/experimental/buffer: Likewise.
+ * include/experimental/executor: Likewise.
+ * include/experimental/internet: Likewise.
+ * include/experimental/io_context: Likewise.
+ * include/experimental/net: Likewise.
+ * include/experimental/netfwd: Likewise.
+ * include/experimental/socket: Likewise.
+ * include/experimental/timer: Likewise.
+
+ * doc/doxygen/doxygroups.cc: Move description of experimental group
+ here.
+ * include/experimental/algorithm: Add to libfund-ts doc group.
+ * include/experimental/any: Likewise. Do not document implementation
+ details.
+ * include/experimental/array: Add to libfund-ts doc group.
+ * include/experimental/bits/lfts_config.h: Define libfund-ts doc group
+ for Library Fundamentals.
+ * include/experimental/chrono: Add to libfund-ts doc group.
+ * include/experimental/deque: Likewise.
+ * include/experimental/forward_list: Likewise.
+ * include/experimental/functional: Likewise.
+ * include/experimental/iterator: Likewise.
+ * include/experimental/list: Likewise.
+ * include/experimental/map: Likewise.
+ * include/experimental/memory: Likewise.
+ * include/experimental/memory_resource: Likewise. Improve docs.
+ details.
+ * include/experimental/numeric: Add to libfund-ts doc group.
+ * include/experimental/optional: Likewise.
+ * include/experimental/propagate_const: Likewise.
+ * include/experimental/random: Likewise.
+ * include/experimental/ratio: Likewise.
+ * include/experimental/regex: Likewise.
+ * include/experimental/set: Likewise.
+ * include/experimental/source_location: Likewise.
+ * include/experimental/string: Likewise.
+ * include/experimental/string_view: Likewise.
+ * include/experimental/system_error: Likewise.
+ * include/experimental/tuple: Likewise.
+ * include/experimental/type_traits: Likewise.
+ * include/experimental/unordered_map: Likewise.
+ * include/experimental/unordered_set: Likewise.
+ * include/experimental/utility: Likewise.
+ * include/experimental/vector: Likewise.
+ * testsuite/experimental/any/misc/any_cast_neg.cc: Adjust dg-error.
+ * testsuite/experimental/array/neg.cc: Adjust dg-error.
+ * testsuite/experimental/propagate_const/assignment/move_neg.cc:
+ Likewise.
+ * testsuite/experimental/propagate_const/cons/move_neg.cc: Likewise.
+ * testsuite/experimental/propagate_const/requirements2.cc: Likewise.
+ * testsuite/experimental/propagate_const/requirements3.cc: Likewise.
+ * testsuite/experimental/propagate_const/requirements4.cc: Likewise.
+ * testsuite/experimental/propagate_const/requirements5.cc: Likewise.
+
+ * include/experimental/bits/fs_dir.h: Fix Doxygen markup.
+ * include/experimental/bits/fs_fwd.h: Improve docs.
+ * include/experimental/bits/fs_ops.h: fix Doxygen markup.
+ * include/experimental/bits/fs_path.h: Likewise.
+ (path, filesystem_error, u8path): Improve docs.
+ * include/experimental/filesystem: Link to docs for TS.
+
+ * config/allocator/new_allocator_base.h (__allocator_base): Add
+ workaround for Doxygen bug #6945.
+ * include/std/memory: Improve docs. Define group for pointer safety.
+ * include/std/scoped_allocator: Improve docs. Use "undocumented"
+ conditional to suppress documentation for implementation details.
+
+ * include/bits/specfun.h: Improve docs.
+ * include/tr1/cmath: Likewise. Fix nesting of preprocessor conditions
+ and namespaces.
+
+ * doc/doxygen/doxygroups.cc (std::tr2, std::__gnu_cxx): Improve docs.
+ (std::experimental): Add docs.
+ * doc/doxygen/user.cfg.in (PREDEFINED): Expand macros for __cxx11
+ namespace to nothing when generating docs.
+ * include/bits/regex_constants.h (std::regex_constants): Improve docs.
+ * include/std/chrono (std::chrono): Likewise.
+ * include/std/functional (std::placeholders): Likewise.
+ * include/std/thread (std::this_thread): Likewise.
+
+ * include/parallel/settings.h: Fix Doxygen markup.
+
+ * include/ext/pb_ds/detail/bin_search_tree_/*_imps.hpp: Do not define
+ anything unless PB_DS_CLASS_C_DEC is defined.
+ * include/ext/pb_ds/detail/binary_heap_/*_imps.hpp: Likewise.
+ * include/ext/pb_ds/detail/binomial_heap_/*_imps.hpp: Likewise.
+ * include/ext/pb_ds/detail/binomial_heap_base_/*_imps.hpp: Likewise.
+ * include/ext/pb_ds/detail/cc_hash_table_map_/*_imps.hpp: Likewise.
+ * include/ext/pb_ds/detail/gp_hash_table_map_/*_imps.hpp: Likewise.
+ * include/ext/pb_ds/detail/hash_fn/*_imp.hpp: Likewise.
+ * include/ext/pb_ds/detail/left_child_next_sibling_heap_/*_imps.hpp:
+ Likewise.
+ * include/ext/pb_ds/detail/list_update_map_/*_imps.hpp: Likewise.
+ * include/ext/pb_ds/detail/ov_tree_map_/*_imps.hpp: Likewise.
+ * include/ext/pb_ds/detail/pairing_heap_/*_imps.hpp: Likewise.
+ * include/ext/pb_ds/detail/pat_trie_/*_imps.hpp: Likewise.
+ * include/ext/pb_ds/detail/rb_tree_map_/*_imps.hpp: Likewise.
+ * include/ext/pb_ds/detail/rc_binomial_heap_/*_imps.hpp: Likewise.
+ * include/ext/pb_ds/detail/resize_policy*_imp.hpp: Likewise.
+ * include/ext/pb_ds/detail/splay_tree_/*_imps.hpp: Likewise.
+ * include/ext/pb_ds/detail/thin_heap_/*_imps.hpp: Likewise.
+ * include/ext/pb_ds/detail/trie_policy*_imp.hpp: Likewise.
+ * include/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp:
+ Likewise.
+ * include/ext/pb_ds/detail/unordered_iterator/iterator.hpp: Likewise.
+ * include/ext/pb_ds/detail/unordered_iterator/point_const_iterator.hpp:
+ Likewise.
+ * include/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp:
+ Likewise.
+
+ * doc/doxygen/user.cfg.in: Regenerate with Doxygen 1.8.14 and set
+ GROUP_NESTED_COMPOUNDS=YES and SORT_BY_SCOPE_NAME=NO. Add various
+ _GLIBCXX_xxx macros and __attribute__(X) to PREDEFINED macros that
+ Doxygen expands.
+
+2019-05-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * config/abi/post/i386-solaris2.10/baseline_symbols.txt: Regenerate.
+ * config/abi/post/i386-solaris2.10/amd64/baseline_symbols.txt: Likewise.
+ * config/abi/post/i386-solaris2.11/baseline_symbols.txt: Likewise.
+ * config/abi/post/i386-solaris2.11/amd64/baseline_symbols.txt: Likewise.
+ * config/abi/post/sparc-solaris2.10/baseline_symbols.txt: Likewise.
+ * config/abi/post/sparc-solaris2.10/sparcv9/baseline_symbols.txt:
+ Likewise.
+ * config/abi/post/sparc-solaris2.11/baseline_symbols.txt: Likewise.
+ * config/abi/post/sparc-solaris2.11/sparcv9/baseline_symbols.txt:
+ Likewise.
+
+2019-05-01 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/61761
+ * include/std/complex (__complex_proj): Return parameter unchanged.
+ [_GLIBCXX_USE_C99_COMPLEX] (__complex_proj): Change overloads for
+ floating-point types to take std::complex arguments.
+ [_GLIBCXX_USE_C99_MATH_TR1] (__complex_proj): Add overloads for
+ floating-point types.
+ * testsuite/26_numerics/complex/proj.cc: New test.
+
+2019-04-30 Jakub Jelinek <jakub@redhat.com>
+
+ * config/abi/pre/gnu.ver (GLIBCXX_3.4.26): Change _Lock_policyE2 exports
+ to _Lock_policyE[012].
+ * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
+
+2019-04-30 Jonathan Wakely <jwakely@redhat.com>
+
+ * testsuite/27_io/filesystem/path/decompose/root_path.cc: Remove
+ macros accidentally left in.
+ * testsuite/27_io/filesystem/path/native/string-char8_t.cc: Remove
+ unnecessary -lstdc++fs option. Fix test for mingw.
+ * testsuite/experimental/filesystem/path/native/string-char8_t.cc:
+ Fix test for mingw.
+
+2019-04-30 Jakub Jelinek <jakub@redhat.com>
+
+ * config/abi/post/riscv64-linux-gnu/baseline_symbols.txt: Update.
+
+2019-04-29 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/stl_algo.h (generate_n): Adjust doxygen comment.
+
+ * include/bits/move.h (swap(T&, T&), swap(T (&)[N], T (&)[N])): Use
+ _GLIBCXX_NOEXCEPT_IF to simplify declarations.
+
+ PR libstdc++/71312
+ * src/c++11/shared_ptr.cc (get_mutex): Align pool mutexes to 64 bytes.
+
+ * include/bits/stl_bvector.h (vector<bool>::empty()): Add nodiscard
+ attribute.
+
+ * include/bits/stl_iterator_base_types.h (_Iter_base): Remove unused
+ class template and partial specialization.
+
+ PR libstdc++/87982
+ * include/bits/stl_algo.h (generate_n): Convert _Size parameter to
+ an integral type.
+ * include/bits/stl_algobase.h (__size_to_integer): New overloaded
+ functions to convert a value to an integral type.
+ (__fill_n_a, __fill_n_a): Assert that __n is already an integral type.
+ (fill_n): Convert _Size parameter to an integral type.
+ * testsuite/25_algorithms/fill_n/87982.cc: New test.
+ * testsuite/25_algorithms/fill_n/87982_neg.cc: New test.
+ * testsuite/25_algorithms/fill_n/dr426.cc: New test.
+ * testsuite/25_algorithms/generate_n/87982.cc: New test.
+ * testsuite/25_algorithms/generate_n/87982_neg.cc: New test.
+ * testsuite/25_algorithms/generate_n/dr426.cc: New test.
+
+2019-04-28 Nina Dinka Ranns <dinka.ranns@gmail.com>
+
+ Adding noexcept-specification on tuple constructors (LWG 2899)
+ * libstdc++-v3/include/std/tuple:
+ (tuple()): Add noexcept-specification.
+ (tuple(const _Elements&...)): Likewise
+ (tuple(_UElements&&...)): Likewise
+ (tuple(const tuple<_UElements...>&)): Likewise
+ (tuple(tuple<_UElements...>&&)): Likewise
+ (tuple(const _T1&, const _T2&)): Likewise
+ (tuple(_U1&&, _U2&&)): Likewise
+ (tuple(const tuple<_U1, _U2>&): Likewise
+ (tuple(tuple<_U1, _U2>&&): Likewise
+ (tuple(const pair<_U1, _U2>&): Likewise
+ (tuple(pair<_U1, _U2>&&): Likewise
+ * libstdc++-v3/testsuite/20_util/tuple/cons/noexcept_specs.cc: New
+
+2019-04-27 Marc Glisse <marc.glisse@inria.fr>
+
+ PR libstdc++/87106
+ * include/bits/stl_uninitialized.h (__relocate_object_a): Mark the
+ arguments with __restrict.
+
+2019-04-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ * config/abi/post/x86_64-linux-gnu/x32/baseline_symbols.txt: Updated.
+
+2019-04-26 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/experimental/bits/fs_path.h
+ (path::_S_convert_loc<_InputIterator>): Create const std::string to
+ avoid redundant call to _S_convert_loc with non-const pointers.
+
+ * testsuite/20_util/variant/run.cc: Use a new Hashable type to test
+ hashing, because pmr::string depends on _GLIBCXX_USE_CXX11_ABI==1.
+ * testsuite/21_strings/basic_string/hash/hash.cc
+ [!_GLIBCXX_USE_CXX11_ABI]: Don't test pmr strings.
+ * testsuite/21_strings/basic_string/hash/hash_char8_t.cc
+ [!_GLIBCXX_USE_CXX11_ABI]: Likewise.
+
+ * config/abi/pre/gnu.ver (GLIBCXX_3.4): Replace wildcard that matches
+ wstring::_M_replace_dispatch with more specific patterns.
+ * include/bits/fs_path.h (path::_S_convert_loc<_InputIterator>):
+ Create const std::string to avoid redundant call to _S_convert_loc
+ with non-const pointers.
+ * include/bits/locale_conv.h (__do_str_codecvt): Use if-constexpr to
+ avoid unnecessary basic_string::assign instantiations.
+
+ * include/std/memory (__uses_alloc_args): Add string-literal to
+ static_assert, to match the one in __uses_alloc.
+ [__cpp_concepts] (_Std_pair): Use C++2a syntax for concept.
+ * testsuite/20_util/polymorphic_allocator/construct_c++2a.cc: Check
+ for recursive uses-allocator construction of nested pairs.
+ * testsuite/20_util/scoped_allocator/construct_pair_c++2a.cc:: Add
+ comment.
+
2019-04-26 Jakub Jelinek <jakub@redhat.com>
* config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt: Update.