]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - libstdc++-v3/ChangeLog
Fix text of hyperlink in manual
[thirdparty/gcc.git] / libstdc++-v3 / ChangeLog
index eb68aba953be70e7fccda2d4fe7ae274f89749a9..7da25945a8c8adaabe4a5012968cfd3786551f51 100644 (file)
@@ -1,3 +1,308 @@
+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.