+2019-10-18 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/92143
+ * libsupc++/new_opa.cc (operator new) [__APPLE__]: Increase alignment
+ to at least sizeof(void*).
+
+ * include/bits/range_cmp.h (ranges::less::operator()): Inline the
+ logic from std::less::operator() to remove the dependency on it.
+
+2019-10-17 Jonathan Wakely <jwakely@redhat.com>
+
+ * doc/doxygen/user.cfg.in (INPUT): Add new C++17 and C++20 headers.
+
+ * include/Makefile.am: Add new header.
+ * include/Makefile.in: Regenerate.
+ * include/bits/range_cmp.h: New header for C++20 function objects.
+ * include/std/functional: Include new header.
+ * testsuite/20_util/function_objects/identity/1.cc: New test.
+ * testsuite/20_util/function_objects/range.cmp/equal_to.cc: New test.
+ * testsuite/20_util/function_objects/range.cmp/greater.cc: New test.
+ * testsuite/20_util/function_objects/range.cmp/greater_equal.cc: New
+ test.
+ * testsuite/20_util/function_objects/range.cmp/less.cc: New test.
+ * testsuite/20_util/function_objects/range.cmp/less_equal.cc: New test.
+ * testsuite/20_util/function_objects/range.cmp/not_equal_to.cc: New
+ test.
+
+ PR libstdc++/92124
+ * include/bits/forward_list.h
+ (_M_move_assign(forward_list&&, false_type)): Do not use
+ __make_move_if_noexcept, instead move unconditionally.
+ * include/bits/stl_deque.h (_M_move_assign2(deque&&, false_type)):
+ Likewise.
+ * include/bits/stl_list.h (_M_move_assign(list&&, false_type)):
+ Likewise.
+ * include/bits/stl_vector.h (_M_move_assign(vector&&, false_type)):
+ Likewise.
+ * testsuite/23_containers/vector/92124.cc: New test.
+
+2019-10-16 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/bits/c++config (_GLIBCXX_BUILTIN_IS_SAME_AS): Define to
+ one of __is_same_as or __is_same when available.
+ * include/std/concepts (__detail::__same_as): Use std::is_same_v.
+ * include/std/type_traits (is_same) [_GLIBCXX_BUILTIN_IS_SAME_AS]:
+ Use new macro instead of __is_same_as.
+ (is_same) [!_GLIBCXX_BUILTIN_IS_SAME_AS]: Restore partial
+ specialization.
+ (is_same_v) [_GLIBCXX_BUILTIN_IS_SAME_AS]: Use new macro.
+ (is_same_v) [!_GLIBCXX_BUILTIN_IS_SAME_AS]: Use std::is_same.
+
+2019-10-16 François Dumont <fdumont@gcc.gnu.org>
+
+ * src/c++11/debug.cc (print_field): Replace constness_names <unknown>
+ entry with <unknown constness>. Replace state_names <unknown> entry with
+ <unknown state>.
+
+2019-10-11 Jonathan Wakely <jwakely@redhat.com>
+
+ * include/Makefile.am: Add new header.
+ * include/Makefile.in: Regenerate.
+ * include/precompiled/stdc++.h: Include <concepts>.
+ * include/std/concepts: New header for C++20.
+ * include/std/version (__cpp_lib_concepts): Define.
+ * scripts/create_testsuite_files: Look for test files in new std
+ directory.
+ * testsuite/libstdc++-dg/conformance.exp: Likewise.
+ * testsuite/std/concepts/concepts.callable/invocable.cc: New test.
+ * testsuite/std/concepts/concepts.callable/regular_invocable.cc: New
+ test.
+ * testsuite/std/concepts/concepts.callable/relation.cc: New test.
+ * testsuite/std/concepts/concepts.callable/strictweakorder.cc: New
+ test.
+ * testsuite/std/concepts/concepts.lang/concept.arithmetic/
+ floating_point.cc: New test.
+ * testsuite/std/concepts/concepts.lang/concept.arithmetic/integral.cc:
+ New test.
+ * testsuite/std/concepts/concepts.lang/concept.arithmetic/
+ signed_integral.cc: New test.
+ * testsuite/std/concepts/concepts.lang/concept.arithmetic/
+ unsigned_integral.cc: New test.
+ * testsuite/std/concepts/concepts.lang/concept.assignable/1.cc: New
+ test.
+ * testsuite/std/concepts/concepts.lang/concept.common/1.cc: New test.
+ * testsuite/std/concepts/concepts.lang/concept.commonref/1.cc: New
+ test.
+ * testsuite/std/concepts/concepts.lang/concept.constructible/1.cc:
+ New test.
+ * testsuite/std/concepts/concepts.lang/concept.convertible/1.cc:
+ New test.
+ * testsuite/std/concepts/concepts.lang/concept.copyconstructible/1.cc:
+ New test.
+ * testsuite/std/concepts/concepts.lang/concept.defaultconstructible/
+ 1.cc: New test.
+ * testsuite/std/concepts/concepts.lang/concept.derived/1.cc:
+ New test.
+ * testsuite/std/concepts/concepts.lang/concept.destructible/1.cc:
+ New test.
+ * testsuite/std/concepts/concepts.lang/concept.moveconstructible/1.cc:
+ New test.
+ * testsuite/std/concepts/concepts.lang/concept.same/1.cc:
+ New test.
+ * testsuite/std/concepts/concepts.lang/concept.swappable/swap.cc:
+ New test.
+ * testsuite/std/concepts/concepts.lang/concept.swappable/swappable.cc:
+ New test.
+ * testsuite/std/concepts/concepts.lang/concept.swappable/
+ swappable_with.cc: New test.
+ * testsuite/std/concepts/concepts.object/copyable.cc: New test.
+ * testsuite/std/concepts/concepts.object/movable.cc: New test.
+ * testsuite/std/concepts/concepts.object/regular.cc: New test.
+ * testsuite/std/concepts/concepts.object/semiregular.cc: New test.
+
+ * include/std/type_traits (is_same): Replace partial specialization
+ by using __is_same_as built-in in primary template.
+ (is_same_v): Use __is_same_as built-in instead of instantiating the
+ is_same trait.
+
+ PR libstdc++/92059
+ * include/tr2/dynamic_bitset (__dynamic_bitset_base): Define all
+ special member functions as defaulted. Add noexcept to most members.
+ (__dynamic_bitset_base(size_t, unsigned long long, const _Alloc&)):
+ Mask off unwanted bits in the __val parameter. Avoid undefined left
+ shifts.
+ (__dynamic_bitset_base::_M_assign): Remove.
+ (__dynamic_bitset_base::_M_do_reset): Use std::fill.
+ (__dynamic_bitset_base::_M_are_all_aux): Avoid integer promotion when
+ block_type has lower rank than int.
+ (dynamic_bitset): Add noexcept to most members. Use injected-class-name
+ in return types and parameter types.
+ (dynamic_bitset::_M_Nb): Add default member initializer.
+ (dynamic_bitset(), dynamic_bitset(const dynamic_bitset&)): Define as
+ defaulted.
+ (dynamic_bitset(dynamic_bitset&&)): Clear source object after move.
+ (dynamic_bitset::operator=(const dynamic_bitset&)): Define as
+ defaulted.
+ (dynamic_bitset::operator=(dynamic_bitset&&)): Add noexcept-specifier.
+ Define without using swap, to propagate allocator correctly.
+ (dynamic_bitset(const char*, const _Alloc&)): Use strlen.
+ (dynamic_bitset::_M_do_sanitize, dynamic_bitset::_M_do_fill): Use
+ casts to avoid unwanted integer promotions.
+ (dynamic_bitset::_M_copy_from_ptr): Rearrange template parameters and
+ add default template arguments and default argument to simplify usage.
+ (dynamic_bitset::_M_copy_from_string): Adjust call to _M_copy_from_ptr.
+ (operator==(const dynamic_bitset&, const dynamic_bitset&))
+ (operator<(const dynamic_bitset&, const dynamic_bitset&)): Use _M_Nb.
+ * include/tr2/dynamic_bitset.tcc (dynamic_bitset::_M_copy_from_ptr):
+ Adjust template parameters to match declaration.
+ * testsuite/tr2/dynamic_bitset/cmp.cc: New test.
+ * testsuite/tr2/dynamic_bitset/cons.cc: New test.
+ * testsuite/tr2/dynamic_bitset/copy.cc: New test.
+ * testsuite/tr2/dynamic_bitset/move.cc: New test.
+ * testsuite/tr2/dynamic_bitset/pr92059.cc: New test.
+
+ * include/bits/charconv.h (__to_chars_len): Avoid -Wsign-compare
+ warnings.
+
+2019-10-10 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/91057
+ * src/c++98/locale.cc [_GLIBCXX_LONG_DOUBLE_COMPAT]
+ (find_ldbl_sync_facet): Fix parameter type and missing return.
+
+2019-10-09 Marek Polacek <polacek@redhat.com>
+
+ PR c++/91364 - P0388R4: Permit conversions to arrays of unknown bound.
+ PR c++/69531 - DR 1307: Differently bounded array parameters.
+ PR c++/88128 - DR 330: Qual convs and pointers to arrays of pointers.
+ * testsuite/23_containers/span/lwg3255.cc: Adjust test to match the
+ post-P0388R4 behavior.
+
+2019-10-09 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/91057
+ * src/c++98/locale.cc (locale::id::_M_id()) [__GTHREADS]: Use atomic
+ compare-exchange or double-checked lock to ensure only one thread sets
+ the _M_index variable.
+ [_GLIBCXX_LONG_DOUBLE_COMPAT]: Call find_ldbl_sync_facet to detect
+ facets that share another facet's ID.
+ [_GLIBCXX_LONG_DOUBLE_COMPAT] (find_ldbl_sync_facet): New function.
+
+ PR libstdc++/78552
+ * src/c++98/locale_init.cc (locale::classic()): Do not construct a new
+ locale object for every call.
+ (locale::_S_initialize_once()): Construct C locale here.
+
+2019-10-08 Jonathan Wakely <jwakely@redhat.com>
+
+ * doc/Makefile.am (doc-html-docbook-regenerate): New target.
+ (${docbook_outdir}/html): Do not create unused 'html/ext' directory.
+ * doc/Makefile.in: Regenerate.
+ * doc/xml/manual/documentation_hacking.xml: Document new target.
+ * doc/html/*: Regenerate.
+
+ * doc/xml/manual/allocator.xml: Use archived copy of CUJ article.
+ * doc/html/*: Regenerate.
+
+2019-10-06 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/bits/stl_algo.h
+ (__copy_n_a(_IIte, _Size, _OIte)): New.
+ (__copy_n_a(istreambuf_iterator<>, _Size, _CharT*)): New declaration.
+ (__copy_n(_IIte, _Size, _OIte, input_iterator_tag)): Adapt to use
+ latter.
+ * include/bits/streambuf_iterator.h (istreambuf_iterator<>): Declare
+ std::__copy_n_a friend.
+ (__copy_n_a(istreambuf_iterator<>, _Size, _CharT*)): New.
+ * testsuite/25_algorithms/copy_n/istreambuf_iterator/1.cc: New.
+ * testsuite/25_algorithms/copy_n/istreambuf_iterator/1_neg.cc: New.
+ * testsuite/25_algorithms/copy_n/istreambuf_iterator/2_neg.cc: New.
+
+ * include/bits/stl_iterator_base_types.h (__iterator_category_t): Define
+ for C++11.
+ (_RequireInputIte): Likewise and use __enable_if_t.
+ * include/std/numeric
+ (__is_random_access_iter): Use __iterator_category_t.
+
+ * include/bits/stl_algo.h (copy_n): Add __glibcxx_requires_can_increment
+ debug checks.
+ * testsuite/25_algorithms/copy_n/debug/1_neg.cc: New.
+ * testsuite/25_algorithms/copy_n/debug/2_neg.cc: New.
+
+2019-10-04 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/debug/forward_list
+ (_Sequence_traits<__debug::forward_list<>>::_S_size): Returns __dp_sign
+ distance when not empty.
+ * include/debug/list (_Sequence_traits<__debug::list<>>::_S_size):
+ Likewise.
+ * include/debug/helper_functions.h (__dp_sign_max_size): New
+ _Distance_precision enum entry.
+ (__valid_range_aux(_IIte, _IIte, _Distance_traits<>::__type,
+ __false_type)): Adapt.
+ * include/debug/safe_iterator.tcc
+ (_Safe_iterator<>::_M_get_distance_to(const _Safe_iterator&)): Review
+ distance computation.
+
+2019-10-04 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/81091
+ PR libstdc++/91947
+ * configure.ac: Use AC_SYS_LARGEFILE to enable 64-bit file APIs.
+ * config.h.in: Regenerate:
+ * configure: Regenerate:
+ * include/Makefile.am (${host_builddir}/largefile-config.h): New
+ target to generate config header for filesystem library.
+ (${host_builddir}/c++config.h): Rename macros for large file support.
+ * include/Makefile.in: Regenerate.
+ * src/c++17/fs_dir.cc: Include new config header.
+ * src/c++17/fs_ops.cc: Likewise.
+ (filesystem::file_size): Use uintmax_t for size.
+ * src/filesystem/dir.cc: Include new config header.
+ * src/filesystem/ops.cc: Likewise.
+ (experimental::filesystem::file_size): Use uintmax_t for size.
+
+ * testsuite/util/testsuite_abi.h: Use std::unordered_map instead of
+ std::tr1::unordered_map.
+ * testsuite/util/testsuite_allocator.h: Likewise.
+
+ * include/tr1/hashtable.h: Add header for __gnu_cxx::__alloc_traits.
+
+ * include/tr1/hashtable.h (tr1::_Hashtable::_M_allocate_node): Use
+ __gnu_cxx::__alloc_traits for allocator construct function.
+ (tr1::_Hashtable::_M_deallocate_node): Likewise for destroy function.
+
+ * include/precompiled/stdc++.h: Include <span> for C++20.
+ * testsuite/17_intro/names.cc: Do not define 'e' for C++20.
+
+2019-10-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
+
+ * include/parallel/multiway_merge.h (_RAIter3): Replace _C by _Cp.
+
+2019-10-02 Jonathan Wakely <jwakely@redhat.com>
+
+ * config/abi/pre/gnu.ver: Tighten up greedy wildcards.
+
+ * doc/xml/manual/parallel_mode.xml: Add caveat about support for
+ recent standards.
+ * doc/html/*: Regenerate.
+
2019-10-01 Jonathan Wakely <jwakely@redhat.com>
+ * include/experimental/algorithm (experimental::sample): Qualify call
+ to __sample correctly.
+ * include/parallel/algo.h (sample, for_each_n): Add using-declarations
+ for algorithms that don't have parallel implementations.
+
+ * include/parallel/algobase.h (equal, lexicographical_compare): Add
+ _GLIBCXX20_CONSTEXPR and dispatch to sequential algorithm when being
+ constant evaluated.
+ * include/parallel/algorithmfwd.h (equal, lexicographical_compare):
+ Add _GLIBCXX20_CONSTEXPR.
+
+ * testsuite/17_intro/using_namespace_std_tr1_neg.cc: Skip test for
+ parallel mode.
+ * testsuite/20_util/hash/84998.cc: Likewise.
+ * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc: Likewise.
+ * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc: Likewise.
+ * testsuite/23_containers/list/pmr_typedefs_debug.cc: Likewise.
+ * testsuite/23_containers/map/pmr_typedefs_debug.cc: Likewise.
+ * testsuite/23_containers/multimap/pmr_typedefs_debug.cc: Likewise.
+ * testsuite/23_containers/multiset/pmr_typedefs_debug.cc: Likewise.
+ * testsuite/23_containers/set/pmr_typedefs_debug.cc: Likewise.
+ * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
+ Likewise.
+ * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc:
+ Likewise.
+ * testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
+ Likewise.
+ * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc: Likewise.
+ * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
+ * testsuite/25_algorithms/copy/86658.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.
+
* include/parallel/algo.h: Replace non-reserved names.
* include/parallel/multiway_merge.h: Likewise.
* include/parallel/multiway_mergesort.h: Likewise.