38660e87f0
* testsuite/20_util/function_objects/range.cmp/equal_to.cc: Fix comment. * testsuite/20_util/function_objects/range.cmp/less.ccL Likewise.
695 lines
30 KiB
Plaintext
695 lines
30 KiB
Plaintext
2020-02-09 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/20_util/function_objects/range.cmp/equal_to.cc: Fix
|
||
comment.
|
||
* testsuite/20_util/function_objects/range.cmp/less.ccL Likewise.
|
||
|
||
* include/std/ranges: Fix non-ASCII characters in comment.
|
||
|
||
* include/bits/range_cmp.h (__detail::__eq_builtin_ptr_cmp): Require
|
||
equality comparison to be valid and return bool.
|
||
(__detail::__less_builtin_ptr_cmp): Likewise for less-than comparison.
|
||
* testsuite/20_util/function_objects/range.cmp/equal_to.cc: Check
|
||
type with ambiguous conversion to fundamental types.
|
||
* testsuite/20_util/function_objects/range.cmp/less.cc: Likewise.
|
||
|
||
2020-02-07 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/iterator_concepts.h (iter_difference_t, iter_value_t):
|
||
Use remove_cvref_t.
|
||
(readable_traits): Rename to indirectly_readable_traits.
|
||
(readable): Rename to indirectly_readable.
|
||
(writable): Rename to indirectly_writable.
|
||
(__detail::__iter_exchange_move): Do not use remove_reference_t.
|
||
(indirectly_swappable): Adjust requires expression parameter types.
|
||
expression.
|
||
* include/bits/ranges_algo.h (ranges::transform, ranges::replace)
|
||
(ranges::replace_if, ranges::generate_n, ranges::generate)
|
||
(ranges::remove): Use new name for writable.
|
||
* include/bits/stl_iterator.h (__detail::__common_iter_has_arrow):
|
||
Use new name for readable.
|
||
* include/ext/pointer.h (readable_traits<_Pointer_adapter<P>>): Use
|
||
new name for readable_traits.
|
||
* testsuite/24_iterators/associated_types/readable.traits.cc: Likewise.
|
||
* testsuite/24_iterators/indirect_callable/projected.cc: Adjust for
|
||
new definition of indirectly_readable.
|
||
|
||
* include/bits/stl_iterator.h (__detail::__common_iter_ptr): Change
|
||
to take parameters of common_iterator, instead of the common_iterator
|
||
type itself. Fix argument for __common_iter_has_arrow constraint.
|
||
(iterator_traits<common_iterator<I, S>>::pointer): Adjust.
|
||
|
||
2020-02-07 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/ranges (iota_view): Add braces to prevent -Wempty-body
|
||
warning.
|
||
(basic_istream_view::_Iterator::operator++()): Add missing return.
|
||
|
||
2020-02-07 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* include/bits/ranges_algo.h: Remove extraneous &&.
|
||
|
||
* include/std/ranges (ranges::__detail::__stream_extractable,
|
||
ranges::basic_istream_view, ranges::istream_view): Define.
|
||
* testsuite/std/ranges/istream_view: New test.
|
||
|
||
Implement C++20 range adaptors
|
||
* include/std/ranges: Include <bits/refwrap.h> and <tuple>.
|
||
(subrange::_S_store_size): Mark as const instead of constexpr to
|
||
avoid what seems to be a bug in GCC.
|
||
(__detail::__box): Give it defaulted copy and move constructors.
|
||
(ranges::views::_Single::operator()): Mark constexpr.
|
||
(ranges::views::_Iota::operator()): Mark constexpr.
|
||
(__detail::Empty): Define.
|
||
(ranges::views::__closure::_RangeAdaptor,
|
||
ranges::views::__closure::_RangeAdaptorClosure, ref_view, all_view,
|
||
ranges::views::all, ranges::__detail::find_if,
|
||
ranges::__detail::find_if_not, ranges::__detail::mismatch,
|
||
ranges::detail::min, filter_view, ranges::views::filter, transform_view,
|
||
ranges::views::transform, take_view, ranges::views::take,
|
||
take_while_view, ranges::views::take_while, drop_view,
|
||
ranges::views::drop, join_view, ranges::views::join,
|
||
__detail::require_constant, __detail::tiny_range, split_view,
|
||
ranges::views::split, ranges::views::_Counted, ranges::views::counted,
|
||
common_view, ranges::views::common, reverse_view,
|
||
ranges::views::reverse,
|
||
ranges::views::__detail::__is_reversible_subrange,
|
||
ranges::views::__detail::__is_reverse_view, reverse_view,
|
||
ranges::views::reverse, __detail::__has_tuple_element, elements_view,
|
||
ranges::views::elements, ranges::views::keys, ranges::views::values):
|
||
Define.
|
||
(views): Alias for ranges::views.
|
||
(tuple_size<ranges::subrange<>>, tuple_element<0, ranges::subrange>,
|
||
tuple_element<1, ranges::subrange>): New partial specializations.
|
||
* testsuite/std/ranges/adaptors/all.cc: New test.
|
||
* testsuite/std/ranges/adaptors/common.cc: Likewise.
|
||
* testsuite/std/ranges/adaptors/counted.cc: Likewise.
|
||
* testsuite/std/ranges/adaptors/drop.cc: Likewise.
|
||
* testsuite/std/ranges/adaptors/drop_while.cc: Likewise.
|
||
* testsuite/std/ranges/adaptors/elements.cc: Likewise.
|
||
* testsuite/std/ranges/adaptors/filter.cc: Likewise.
|
||
* testsuite/std/ranges/adaptors/join.cc: Likewise.
|
||
* testsuite/std/ranges/adaptors/reverse.cc: Likewise.
|
||
* testsuite/std/ranges/adaptors/split.cc: Likewise.
|
||
* testsuite/std/ranges/adaptors/take.cc: Likewise.
|
||
* testsuite/std/ranges/adaptors/take_while.cc: Likewise.
|
||
* testsuite/std/ranges/adaptors/transform.cc: Likewise.
|
||
|
||
2020-02-07 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* libsupc++/compare (__cmp_cat::type): Define typedef for underlying
|
||
type of enumerations and comparison category types.
|
||
(__cmp_cat::_Ord, __cmp_cat::_Ncmp): Add underlying type.
|
||
(__cmp_cat::_Ncmp::unordered): Change value to 2.
|
||
(partial_ordering::_M_value, weak_ordering::_M_value)
|
||
(strong_ordering::_M_value): Change type to __cmp_cat::type.
|
||
(partial_ordering::_M_is_ordered): Remove data member.
|
||
(partial_ordering): Use second bit of _M_value for unordered. Adjust
|
||
comparison operators.
|
||
(weak_ordering::operator partial_ordering): Simplify to remove
|
||
branches.
|
||
(operator<=>(unspecified, weak_ordering)): Likewise.
|
||
(strong_ordering::operator partial_ordering): Likewise.
|
||
(strong_ordering::operator weak_ordering): Likewise.
|
||
(operator<=>(unspecified, strong_ordering)): Likewise.
|
||
* testsuite/18_support/comparisons/categories/partialord.cc: New test.
|
||
* testsuite/18_support/comparisons/categories/strongord.cc: New test.
|
||
* testsuite/18_support/comparisons/categories/weakord.cc: New test.
|
||
|
||
* include/std/ranges (iota_view::_Iterator): Fix typo in name of
|
||
__cpp_lib_three_way_comparison macro and use deduced return type for
|
||
operator<=>.
|
||
* testsuite/std/ranges/iota/iterator.cc: New test.
|
||
|
||
2020-02-07 Patrick Palka <ppalka@redhat.com>
|
||
Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
Implement C++20 constrained algorithms
|
||
* include/Makefile.am: Add new header.
|
||
* include/Makefile.in: Regenerate.
|
||
* include/std/algorithm: Include <bits/ranges_algo.h>.
|
||
* include/bits/ranges_algo.h: New file.
|
||
* testsuite/25_algorithms/adjacent_find/constrained.cc: New test.
|
||
* testsuite/25_algorithms/all_of/constrained.cc: New test.
|
||
* testsuite/25_algorithms/any_of/constrained.cc: New test.
|
||
* testsuite/25_algorithms/binary_search/constrained.cc: New test.
|
||
* testsuite/25_algorithms/copy/constrained.cc: New test.
|
||
* testsuite/25_algorithms/copy_backward/constrained.cc: New test.
|
||
* testsuite/25_algorithms/copy_if/constrained.cc: New test.
|
||
* testsuite/25_algorithms/copy_n/constrained.cc: New test.
|
||
* testsuite/25_algorithms/count/constrained.cc: New test.
|
||
* testsuite/25_algorithms/count_if/constrained.cc: New test.
|
||
* testsuite/25_algorithms/equal/constrained.cc: New test.
|
||
* testsuite/25_algorithms/equal_range/constrained.cc: New test.
|
||
* testsuite/25_algorithms/fill/constrained.cc: New test.
|
||
* testsuite/25_algorithms/fill_n/constrained.cc: New test.
|
||
* testsuite/25_algorithms/find/constrained.cc: New test.
|
||
* testsuite/25_algorithms/find_end/constrained.cc: New test.
|
||
* testsuite/25_algorithms/find_first_of/constrained.cc: New test.
|
||
* testsuite/25_algorithms/find_if/constrained.cc: New test.
|
||
* testsuite/25_algorithms/find_if_not/constrained.cc: New test.
|
||
* testsuite/25_algorithms/for_each/constrained.cc: New test.
|
||
* testsuite/25_algorithms/generate/constrained.cc: New test.
|
||
* testsuite/25_algorithms/generate_n/constrained.cc: New test.
|
||
* testsuite/25_algorithms/heap/constrained.cc: New test.
|
||
* testsuite/25_algorithms/includes/constrained.cc: New test.
|
||
* testsuite/25_algorithms/inplace_merge/constrained.cc: New test.
|
||
* testsuite/25_algorithms/is_partitioned/constrained.cc: New test.
|
||
* testsuite/25_algorithms/is_permutation/constrained.cc: New test.
|
||
* testsuite/25_algorithms/is_sorted/constrained.cc: New test.
|
||
* testsuite/25_algorithms/is_sorted_until/constrained.cc: New test.
|
||
* testsuite/25_algorithms/lexicographical_compare/constrained.cc: New
|
||
test.
|
||
* testsuite/25_algorithms/lower_bound/constrained.cc: New test.
|
||
* testsuite/25_algorithms/max/constrained.cc: New test.
|
||
* testsuite/25_algorithms/max_element/constrained.cc: New test.
|
||
* testsuite/25_algorithms/merge/constrained.cc: New test.
|
||
* testsuite/25_algorithms/min/constrained.cc: New test.
|
||
* testsuite/25_algorithms/min_element/constrained.cc: New test.
|
||
* testsuite/25_algorithms/minmax/constrained.cc: New test.
|
||
* testsuite/25_algorithms/minmax_element/constrained.cc: New test.
|
||
* testsuite/25_algorithms/mismatch/constrained.cc: New test.
|
||
* testsuite/25_algorithms/move/constrained.cc: New test.
|
||
* testsuite/25_algorithms/move_backward/constrained.cc: New test.
|
||
* testsuite/25_algorithms/next_permutation/constrained.cc: New test.
|
||
* testsuite/25_algorithms/none_of/constrained.cc: New test.
|
||
* testsuite/25_algorithms/nth_element/constrained.cc: New test.
|
||
* testsuite/25_algorithms/partial_sort/constrained.cc: New test.
|
||
* testsuite/25_algorithms/partial_sort_copy/constrained.cc: New test.
|
||
* testsuite/25_algorithms/partition/constrained.cc: New test.
|
||
* testsuite/25_algorithms/partition_copy/constrained.cc: New test.
|
||
* testsuite/25_algorithms/partition_point/constrained.cc: New test.
|
||
* testsuite/25_algorithms/prev_permutation/constrained.cc: New test.
|
||
* testsuite/25_algorithms/remove/constrained.cc: New test.
|
||
* testsuite/25_algorithms/remove_copy/constrained.cc: New test.
|
||
* testsuite/25_algorithms/remove_copy_if/constrained.cc: New test.
|
||
* testsuite/25_algorithms/remove_if/constrained.cc: New test.
|
||
* testsuite/25_algorithms/replace/constrained.cc: New test.
|
||
* testsuite/25_algorithms/replace_copy/constrained.cc: New test.
|
||
* testsuite/25_algorithms/replace_copy_if/constrained.cc: New test.
|
||
* testsuite/25_algorithms/replace_if/constrained.cc: New test.
|
||
* testsuite/25_algorithms/reverse/constrained.cc: New test.
|
||
* testsuite/25_algorithms/reverse_copy/constrained.cc: New test.
|
||
* testsuite/25_algorithms/rotate/constrained.cc: New test.
|
||
* testsuite/25_algorithms/rotate_copy/constrained.cc: New test.
|
||
* testsuite/25_algorithms/search/constrained.cc: New test.
|
||
* testsuite/25_algorithms/search_n/constrained.cc: New test.
|
||
* testsuite/25_algorithms/set_difference/constrained.cc: New test.
|
||
* testsuite/25_algorithms/set_intersection/constrained.cc: New test.
|
||
* testsuite/25_algorithms/set_symmetric_difference/constrained.cc: New
|
||
test.
|
||
* testsuite/25_algorithms/set_union/constrained.cc: New test.
|
||
* testsuite/25_algorithms/shuffle/constrained.cc: New test.
|
||
* testsuite/25_algorithms/sort/constrained.cc: New test.
|
||
* testsuite/25_algorithms/stable_partition/constrained.cc: New test.
|
||
* testsuite/25_algorithms/stable_sort/constrained.cc: New test.
|
||
* testsuite/25_algorithms/swap_ranges/constrained.cc: New test.
|
||
* testsuite/25_algorithms/transform/constrained.cc: New test.
|
||
* testsuite/25_algorithms/unique/constrained.cc: New test.
|
||
* testsuite/25_algorithms/unique_copy/constrained.cc: New test.
|
||
* testsuite/25_algorithms/upper_bound/constrained.cc: New test.
|
||
|
||
2020-02-06 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/stl_iterator.h (__detail::__common_iter_ptr): Fix PR
|
||
number in comment. Fix indentation.
|
||
|
||
* include/bits/stl_algobase.h (__iter_swap, __iter_swap<true>): Remove
|
||
redundant _GLIBCXX20_CONSTEXPR.
|
||
|
||
* include/std/ranges (viewable_range): Replace decay_t with
|
||
remove_cvref_t (LWG 3375).
|
||
|
||
2020-02-05 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/iterator_concepts.h (iter_reference_t)
|
||
(iter_rvalue_reference_t, iter_common_reference_t, indirect_result_t):
|
||
Remove workarounds for PR c++/67704.
|
||
* testsuite/24_iterators/aliases.cc: New test.
|
||
|
||
2020-02-05 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* include/bits/stl_iterator.h (move_iterator::move_iterator): Move __i
|
||
when initializing _M_current.
|
||
(move_iterator::base): Split into two overloads differing in
|
||
ref-qualifiers as in P1207R4 for C++20.
|
||
|
||
2020-02-04 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/functional (_GLIBCXX_NOT_FN_CALL_OP): Un-define after
|
||
use.
|
||
|
||
PR libstdc++/93562
|
||
* include/bits/unique_ptr.h (__uniq_ptr_impl::swap): Define.
|
||
(unique_ptr::swap, unique_ptr<T[], D>::swap): Call it.
|
||
* testsuite/20_util/unique_ptr/modifiers/93562.cc: New test.
|
||
|
||
2020-02-01 Andrew Burgess <andrew.burgess@embecosm.com>
|
||
|
||
* configure: Regenerate.
|
||
|
||
2020-01-31 Patrick Palka <ppalka@redhat.com>
|
||
|
||
* testsuite/24_iterators/range_operations/distance.cc: Do not assume
|
||
test_range::end() returns the same type as test_range::begin().
|
||
* testsuite/24_iterators/range_operations/next.cc: Likewise.
|
||
* testsuite/24_iterators/range_operations/prev.cc: Likewise.
|
||
* testsuite/util/testsuite_iterators.h (__gnu_test::test_range::end):
|
||
Always return a sentinel<I>.
|
||
|
||
2020-01-29 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/92895
|
||
* include/std/stop_token (stop_token::stop_possible()): Call new
|
||
_M_stop_possible() function.
|
||
(stop_token::stop_requested()): Do not use stop_possible().
|
||
(stop_token::binary_semaphore): New class, as temporary stand-in for
|
||
std::binary_semaphore.
|
||
(stop_token::_Stop_cb::_M_callback): Add noexcept to type.
|
||
(stop_token::_Stop_cb::_M_destroyed, stop_token::_Stop_cb::_M_done):
|
||
New data members for symchronization with stop_callback destruction.
|
||
(stop_token::_Stop_cb::_Stop_cb): Make non-template.
|
||
(stop_token::_Stop_cb::_M_linked, stop_token::_Stop_cb::_S_execute):
|
||
Remove.
|
||
(stop_token::_Stop_cb::_M_run): New member function.
|
||
(stop_token::_Stop_state::_M_stopped, stop_token::_Stop_state::_M_mtx):
|
||
Remove.
|
||
(stop_token::_Stop_state::_M_owners): New data member to track
|
||
reference count for ownership.
|
||
(stop_token::_Stop_state::_M_value): New data member combining a
|
||
spinlock, the stop requested flag, and the reference count for
|
||
associated stop_source objects.
|
||
(stop_token::_Stop_state::_M_requester): New data member for
|
||
synchronization with stop_callback destruction.
|
||
(stop_token::_Stop_state::_M_stop_possible()): New member function.
|
||
(stop_token::_Stop_state::_M_stop_requested()): Inspect relevant bit
|
||
of _M_value.
|
||
(stop_token::_Stop_state::_M_add_owner)
|
||
(stop_token::_Stop_state::_M_release_ownership)
|
||
(stop_token::_Stop_state::_M_add_ssrc)
|
||
(stop_token::_Stop_state::_M_sub_ssrc): New member functions for
|
||
updating reference counts.
|
||
(stop_token::_Stop_state::_M_lock, stop_token::_Stop_state::_M_unlock)
|
||
(stop_token::_Stop_state::_M_lock, stop_token::_Stop_state::_M_unlock)
|
||
(stop_token::_Stop_state::_M_try_lock)
|
||
(stop_token::_Stop_state::_M_try_lock_and_stop)
|
||
(stop_token::_Stop_state::_M_do_try_lock): New member functions for
|
||
managing spinlock.
|
||
(stop_token::_Stop_state::_M_request_stop): Use atomic operations to
|
||
read and update state. Release lock while running callbacks. Use new
|
||
data members to synchronize with callback destruction.
|
||
(stop_token::_Stop_state::_M_remove_callback): Likewise.
|
||
(stop_token::_Stop_state::_M_register_callback): Use atomic operations
|
||
to read and update state.
|
||
(stop_token::_Stop_state_ref): Handle type to manage _Stop_state,
|
||
replacing shared_ptr.
|
||
(stop_source::stop_source(const stop_source&)): Update reference count.
|
||
(stop_source::operator=(const stop_source&)): Likewise.
|
||
(stop_source::~stop_source()): Likewise.
|
||
(stop_source::stop_source(stop_source&&)): Define as defaulted.
|
||
(stop_source::operator=(stop_source&&)): Establish postcondition on
|
||
parameter.
|
||
(stop_callback): Enforce preconditions on template parameter. Replace
|
||
base class with data member of new _Cb_impl type.
|
||
(stop_callback::stop_callback(const stop_token&, Cb&&))
|
||
(stop_callback::stop_callback(stop_token&&, Cb&&)): Fix TOCTTOU race.
|
||
(stop_callback::_Cb_impl): New type wrapping _Callback member and
|
||
defining the _S_execute member function.
|
||
* testsuite/30_threads/stop_token/stop_callback/deadlock-mt.cc: New
|
||
test.
|
||
* testsuite/30_threads/stop_token/stop_callback/deadlock.cc: New test.
|
||
* testsuite/30_threads/stop_token/stop_callback/destroy.cc: New test.
|
||
* testsuite/30_threads/stop_token/stop_callback/destructible_neg.cc:
|
||
New test.
|
||
* testsuite/30_threads/stop_token/stop_callback/invocable_neg.cc: New
|
||
test.
|
||
* testsuite/30_threads/stop_token/stop_callback/invoke.cc: New test.
|
||
* testsuite/30_threads/stop_token/stop_source/assign.cc: New test.
|
||
* testsuite/30_threads/stop_token/stop_token/stop_possible.cc: New
|
||
test.
|
||
|
||
* libsupc++/compare (__detail::__3way_builtin_ptr_cmp): Use
|
||
three_way_comparable_with.
|
||
(__detail::__3way_cmp_with): Remove workaround for fixed bug.
|
||
(compare_three_way::operator()): Remove redundant constraint from
|
||
requires-clause.
|
||
(__detail::_Synth3way::operator()): Use three_way_comparable_with
|
||
instead of workaround.
|
||
* testsuite/18_support/comparisons/object/93479.cc: Prune extra
|
||
output due to simplified constraints on compare_three_way::operator().
|
||
|
||
PR libstdc++/93479
|
||
* libsupc++/compare (__3way_builtin_ptr_cmp): Require <=> to be valid.
|
||
* testsuite/18_support/comparisons/object/93479.cc: New test.
|
||
|
||
* testsuite/std/ranges/access/end.cc: Do not assume test_range::end()
|
||
returns the same type as test_range::begin(). Add comments.
|
||
* testsuite/std/ranges/access/rbegin.cc: Likewise.
|
||
* testsuite/std/ranges/access/rend.cc: Likewise.
|
||
* testsuite/std/ranges/range.cc: Do not assume the sentinel for
|
||
test_range is the same as its iterator type.
|
||
* testsuite/util/testsuite_iterators.h (test_range::sentinel): Add
|
||
operator- overloads to satisfy sized_sentinel_for when the iterator
|
||
satisfies random_access_iterator.
|
||
|
||
2020-01-28 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/93470
|
||
* include/bits/refwrap.h (reference_wrapper::operator()): Restrict
|
||
static assertion to object types.
|
||
|
||
PR libstdc++/93325
|
||
* acinclude.m4 (GLIBCXX_ENABLE_LIBSTDCXX_TIME): Use AC_SEARCH_LIBS for
|
||
clock_gettime instead of explicit glibc version check.
|
||
* configure: Regenerate.
|
||
|
||
2020-01-28 Martin Liska <mliska@suse.cz>
|
||
|
||
PR libstdc++/93478
|
||
* include/std/atomic: Fix typo.
|
||
* include/std/optional: Likewise.
|
||
|
||
2020-01-27 Andrew Burgess <andrew.burgess@embecosm.com>
|
||
|
||
* configure: Regenerate.
|
||
|
||
2020-01-27 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/93426
|
||
* include/std/span (span): Fix deduction guide.
|
||
* testsuite/23_containers/span/deduction.cc: New test.
|
||
|
||
2020-01-24 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* libsupc++/compare (__cmp_cat::_Eq): Remove enumeration type.
|
||
(__cmp_cat::_Ord::equivalent): Add enumerator.
|
||
(__cmp_cat::_Ord::_Less, __cmp_cat::_Ord::_Greater): Rename to less
|
||
and greater.
|
||
(partial_ordering, weak_ordering, strong_ordering): Remove
|
||
constructors taking __cmp_cat::_Eq parameters. Use renamed
|
||
enumerators.
|
||
|
||
2020-01-24 Maciej W. Rozycki <macro@wdc.com>
|
||
|
||
* acinclude.m4: Handle `--with-toolexeclibdir='.
|
||
* Makefile.in: Regenerate.
|
||
* aclocal.m4: Regenerate.
|
||
* configure: Regenerate.
|
||
* doc/Makefile.in: Regenerate.
|
||
* include/Makefile.in: Regenerate.
|
||
* libsupc++/Makefile.in: Regenerate.
|
||
* po/Makefile.in: Regenerate.
|
||
* python/Makefile.in: Regenerate.
|
||
* src/Makefile.in: Regenerate.
|
||
* src/c++11/Makefile.in: Regenerate.
|
||
* src/c++17/Makefile.in: Regenerate.
|
||
* src/c++98/Makefile.in: Regenerate.
|
||
* src/filesystem/Makefile.in: Regenerate.
|
||
* testsuite/Makefile.in: Regenerate.
|
||
|
||
2020-01-23 Alexandre Oliva <oliva@adacore.com>
|
||
|
||
* crossconfig.m4 (GLIBCXX_CHECK_MATH_DECL): Reject macros.
|
||
* configure: Rebuild.
|
||
|
||
* testsuite/27_io/fpos/mbstate_t/1.cc: Zero-init mbstate_t.
|
||
|
||
2020-01-23 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/91947
|
||
* include/Makefile.am (${host_builddir}/largefile-config.h): Simplify
|
||
rule.
|
||
* include/Makefile.in: Regenerate.
|
||
|
||
2020-01-20 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/xml/faq.xml: Fix grammar.
|
||
* doc/xml/manual/appendix_contributing.xml: Improve instructions.
|
||
* doc/xml/manual/spine.xml: Update copyright years.
|
||
* doc/html/*: Regenerate.
|
||
|
||
2020-01-19 Eric S. Raymond <esr@thyrsus.com>
|
||
|
||
* doc/xml/faq.xml: Update for SVN -> Git transition.
|
||
* doc/xml/manual/appendix_contributing.xml: Likewise.
|
||
* doc/xml/manual/status_cxx1998.xml: Likewise.
|
||
* doc/xml/manual/status_cxx2011.xml: Likewise.
|
||
* doc/xml/manual/status_cxx2014.xml: Likewise.
|
||
* doc/xml/manual/status_cxx2017.xml: Likewise.
|
||
* doc/xml/manual/status_cxx2020.xml: Likewise.
|
||
* doc/xml/manual/status_cxxtr1.xml: Likewise.
|
||
* doc/xml/manual/status_cxxtr24733.xml: Likewise.
|
||
|
||
2020-01-18 Iain Sandoe <iain@sandoe.co.uk>
|
||
|
||
* include/Makefile.am: Add coroutine to the std set.
|
||
* include/Makefile.in: Regenerated.
|
||
* include/std/coroutine: New file.
|
||
|
||
2020-01-17 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/92376
|
||
* include/bits/c++config: Only do PSTL config when the header is
|
||
present, to fix freestanding.
|
||
* libsupc++/new_opa.cc [!_GLIBCXX_HOSTED]: Declare allocation
|
||
functions if they were detected by configure.
|
||
|
||
2020-01-16 Kai-Uwe Eckhardt <kuehro@gmx.de>
|
||
Matthew Bauer <mjbauer95@gmail.com>
|
||
Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR bootstrap/64271 (partial)
|
||
* config/os/bsd/netbsd/ctype_base.h (ctype_base::mask): Change type
|
||
to unsigned short.
|
||
(ctype_base::alpha, ctype_base::digit, ctype_base::xdigit)
|
||
(ctype_base::print, ctype_base::graph, ctype_base::alnum): Sync
|
||
definitions with NetBSD upstream.
|
||
(ctype_base::blank): Use _CTYPE_BL.
|
||
* config/os/bsd/netbsd/ctype_configure_char.cc (_C_ctype_): Remove
|
||
Declaration.
|
||
(ctype<char>::classic_table): Use _C_ctype_tab_ instead of _C_ctype_.
|
||
(ctype<char>::do_toupper, ctype<char>::do_tolower): Cast char
|
||
parameters to unsigned char.
|
||
* config/os/bsd/netbsd/ctype_inline.h (ctype<char>::is): Likewise.
|
||
|
||
2020-01-16 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
PR libstdc++/91263
|
||
* include/bits/hashtable.h (_Hashtable<>): Make _Equality<> friend.
|
||
* include/bits/hashtable_policy.h: Include <bits/stl_algo.h>.
|
||
(_Equality_base): Remove.
|
||
(_Equality<>::_M_equal): Review implementation. Use
|
||
std::is_permutation.
|
||
* testsuite/23_containers/unordered_multiset/operators/1.cc
|
||
(Hash, Equal, test02, test03): New.
|
||
* testsuite/23_containers/unordered_set/operators/1.cc
|
||
(Hash, Equal, test02, test03): New.
|
||
|
||
2020-01-15 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/93267
|
||
* include/bits/iterator_concepts.h (__max_diff_type, __max_size_type):
|
||
Move here from <bits/range_access.h> and define using __int128 when
|
||
available.
|
||
(__is_integer_like, __is_signed_integer_like): Move here from
|
||
<bits/range_access.h>.
|
||
(weakly_incrementable): Use __is_signed_integer_like.
|
||
* include/bits/range_access.h (__max_diff_type, __max_size_type)
|
||
(__is_integer_like, __is_signed_integer_like): Move to
|
||
<bits/iterator_concepts.h>.
|
||
(__make_unsigned_like_t): Move here from <ranges>.
|
||
* include/std/ranges (__make_unsigned_like_t): Move to
|
||
<bits/range_access.h>.
|
||
(iota_view): Replace using-directive with using-declarations.
|
||
* testsuite/std/ranges/iota/93267.cc: New test.
|
||
* testsuite/std/ranges/iota_view.cc: Move to new 'iota' sub-directory.
|
||
|
||
2020-01-13 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/93244
|
||
* include/bits/fs_path.h (path::generic_string<C,A>)
|
||
[_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Convert root-dir to forward-slash.
|
||
* testsuite/27_io/filesystem/path/generic/generic_string.cc: Check
|
||
root-dir is converted to forward slash in generic pathname.
|
||
* testsuite/27_io/filesystem/path/generic/utf.cc: New test.
|
||
* testsuite/27_io/filesystem/path/generic/wchar_t.cc: New test.
|
||
|
||
PR libstdc++/58605
|
||
* include/bits/atomic_base.h (__cpp_lib_atomic_value_initialization):
|
||
Define.
|
||
(__atomic_flag_base, __atomic_base, __atomic_base<_PTp*>)
|
||
(__atomic_float): Add default member initializer for C++20.
|
||
* include/std/atomic (atomic): Likewise.
|
||
(atomic::atomic()): Remove noexcept-specifier on default constructor.
|
||
* include/std/version (__cpp_lib_atomic_value_initialization): Define.
|
||
* testsuite/29_atomics/atomic/cons/assign_neg.cc: Adjust dg-error line
|
||
number.
|
||
* testsuite/29_atomics/atomic/cons/copy_neg.cc: Likewise.
|
||
* testsuite/29_atomics/atomic/cons/value_init.cc: New test.
|
||
* testsuite/29_atomics/atomic_flag/cons/value_init.cc: New test.
|
||
* testsuite/29_atomics/atomic_flag/requirements/trivial.cc: Adjust
|
||
expected result for is_trivially_default_constructible.
|
||
* testsuite/29_atomics/atomic_float/requirements.cc: Likewise.
|
||
* testsuite/29_atomics/atomic_float/value_init.cc: New test.
|
||
* testsuite/29_atomics/atomic_integral/cons/assign_neg.cc: Likewise.
|
||
* testsuite/29_atomics/atomic_integral/cons/copy_neg.cc: Likewise.
|
||
* testsuite/29_atomics/atomic_integral/cons/value_init.cc
|
||
* testsuite/29_atomics/atomic_integral/requirements/trivial.cc: Adjust
|
||
expected results for is_trivially_default_constructible.
|
||
* testsuite/util/testsuite_common_types.h (has_trivial_dtor): Add
|
||
new test generator.
|
||
|
||
2020-01-10 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* testsuite/util/testsuite_iterators.h: Improve comment.
|
||
|
||
* testsuite/25_algorithms/equal/deque_iterators/1.cc: Don't use C++11
|
||
initialization syntax.
|
||
|
||
PR libstdc++/92285
|
||
* include/bits/streambuf_iterator.h (istreambuf_iterator): Make type
|
||
of base class independent of __cplusplus value.
|
||
[__cplusplus < 201103L] (istreambuf_iterator::reference): Override the
|
||
type defined in the base class
|
||
* testsuite/24_iterators/istreambuf_iterator/92285.cc: New test.
|
||
* testsuite/24_iterators/istreambuf_iterator/requirements/
|
||
base_classes.cc: Adjust expected base class for C++98.
|
||
|
||
2020-01-09 Olivier Hainque <hainque@adacore.com>
|
||
|
||
* doc/xml/manual/appendix_contributing.xml: Document _C2
|
||
as a reserved identifier, by VxWorks.
|
||
* include/bits/stl_map.h: Rename _C2 template typenames as _Cmp2.
|
||
* include/bits/stl_multimap.h: Likewise.
|
||
|
||
2020-01-09 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/ext/extptr_allocator.h (_ExtPtr_allocator::operator==)
|
||
(_ExtPtr_allocator::operator!=): Add missing const qualifiers.
|
||
* include/ext/pointer.h (readable_traits<_Pointer_adapter<S>>): Add
|
||
partial specialization to disambiguate the two constrained
|
||
specializations.
|
||
|
||
* include/experimental/type_traits (experimental::is_pod_v): Disable
|
||
-Wdeprecated-declarations warnings around reference to std::is_pod.
|
||
* include/std/type_traits (is_pod_v): Likewise.
|
||
* testsuite/18_support/max_align_t/requirements/2.cc: Also check
|
||
is_standard_layout and is_trivial. Do not check is_pod for C++20.
|
||
* testsuite/20_util/is_pod/requirements/explicit_instantiation.cc:
|
||
Add -Wno-deprecated for C++20.
|
||
* testsuite/20_util/is_pod/requirements/typedefs.cc: Likewise.
|
||
* testsuite/20_util/is_pod/value.cc: Likewise.
|
||
* testsuite/experimental/type_traits/value.cc: Likewise.
|
||
|
||
2020-01-09 JeanHeyd "ThePhD" Meneide <phdofthehouse@gmail.com>
|
||
|
||
* include/bits/c++config (_GLIBCXX20_DEPRECATED): Add new macro.
|
||
* include/std/type_traits (is_pod, is_pod_v): Deprecate for C++20.
|
||
* testuite/20_util/is_pod/deprecated-2a.cc: New test.
|
||
|
||
2020-01-09 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/93205
|
||
* include/bits/random.h (operator>>): Check stream operation succeeds.
|
||
* include/bits/random.tcc (operator<<): Remove redundant __ostream_type
|
||
typedefs.
|
||
(operator>>): Remove redundant __istream_type typedefs. Check stream
|
||
operations succeed.
|
||
(__extract_params): New function to fill a vector from a stream.
|
||
* testsuite/26_numerics/random/pr60037-neg.cc: Adjust dg-error line.
|
||
|
||
PR libstdc++/93208
|
||
* config/abi/pre/gnu.ver: Add new exports.
|
||
* include/std/memory_resource (memory_resource::~memory_resource()):
|
||
Do not define inline.
|
||
(monotonic_buffer_resource::~monotonic_buffer_resource()): Likewise.
|
||
* src/c++17/memory_resource.cc (memory_resource::~memory_resource()):
|
||
Define.
|
||
(monotonic_buffer_resource::~monotonic_buffer_resource()): Define.
|
||
* testsuite/20_util/monotonic_buffer_resource/93208.cc: New test.
|
||
|
||
2020-01-09 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
PR libstdc++/92124
|
||
* include/bits/hashtable.h (_Hashtable<>::__alloc_node_gen_t): New
|
||
template alias.
|
||
(_Hashtable<>::__fwd_value_for): New.
|
||
(_Hashtable<>::_M_assign_elements<>): Remove _NodeGenerator template
|
||
parameter.
|
||
(_Hashtable<>::_M_assign<>): Add _Ht template parameter.
|
||
(_Hashtable<>::operator=(const _Hashtable<>&)): Adapt.
|
||
(_Hashtable<>::_M_move_assign): Adapt. Replace std::move_if_noexcept
|
||
with std::move.
|
||
(_Hashtable<>::_Hashtable(const _Hashtable&)): Adapt.
|
||
(_Hashtable<>::_Hashtable(const _Hashtable&, const allocator_type&)):
|
||
Adapt.
|
||
(_Hashtable<>::_Hashtable(_Hashtable&&, const allocator_type&)):
|
||
Adapt.
|
||
* testsuite/23_containers/unordered_set/92124.cc: New.
|
||
|
||
2020-01-08 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
PR libstdc++/93201
|
||
* src/c++17/fs_ops.cc (do_remove_all): New function implementing more
|
||
detailed error reporting for remove_all. Check result of recursive
|
||
call before incrementing iterator.
|
||
(remove_all(const path&), remove_all(const path&, error_code&)): Use
|
||
do_remove_all.
|
||
* src/filesystem/ops.cc (remove_all(const path&, error_code&)): Check
|
||
result of recursive call before incrementing iterator.
|
||
* testsuite/27_io/filesystem/operations/remove_all.cc: Check errors
|
||
are reported correctly.
|
||
* testsuite/experimental/filesystem/operations/remove_all.cc: Likewise.
|
||
|
||
2020-01-07 Thomas Rodgers <trodgers@redhat.com>
|
||
|
||
* include/std/condition_variable
|
||
(condition_variable_any::wait_on): Rename to match current draft
|
||
standard.
|
||
(condition_variable_any::wait_on_until): Likewise.
|
||
(condition_variable_any::wait_on_for): Likewise.
|
||
* testsuite/30_threads/condition_variable_any/stop_token/wait_on.cc:
|
||
Adjust tests to account for renamed methods.
|
||
|
||
2020-01-07 François Dumont <fdumont@gcc.gnu.org>
|
||
|
||
PR libstdc++/92124
|
||
* include/bits/stl_tree.h
|
||
(_Rb_tree<>::_M_move_assign(_Rb_tree&, false_type)): Replace
|
||
std::move_if_noexcept by std::move.
|
||
* testsuite/23_containers/map/92124.cc: New.
|
||
* testsuite/23_containers/set/92124.cc: New.
|
||
|
||
2020-01-06 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/std/stop_token (stop_token): Remove operator!= (LWG 3254).
|
||
(stop_source): Likewise (LWG 3362).
|
||
* testsuite/30_threads/stop_token/stop_source.cc: Test equality
|
||
comparisons.
|
||
|
||
* include/bits/stl_algobase.h (__is_byte_iter, __min_cmp)
|
||
(lexicographical_compare_three_way): Do not depend on
|
||
__cpp_lib_concepts.
|
||
* include/std/version (__cpp_lib_three_way_comparison): Only define
|
||
when __cpp_lib_concepts is defined.
|
||
* libsupc++/compare (__cpp_lib_three_way_comparison): Likewise.
|
||
|
||
2020-01-03 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* include/bits/stl_algobase.h (lexicographical_compare_three_way):
|
||
Only define four-argument overload when __cpp_lib_concepts is defined.
|
||
|
||
2020-01-01 John David Anglin <danglin@gcc.gnu.org>
|
||
|
||
* config/abi/post/hppa-linux-gnu/baseline_symbols.txt: Update.
|
||
|
||
2020-01-01 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
Update copyright years.
|
||
|
||
Copyright (C) 2020 Free Software Foundation, Inc.
|
||
|
||
Copying and distribution of this file, with or without modification,
|
||
are permitted in any medium without royalty provided the copyright
|
||
notice and this notice are preserved.
|