+2021-06-10 Patrick Palka <ppalka@redhat.com>
+
+ Backported from master:
+ 2021-06-03 Patrick Palka <ppalka@redhat.com>
+
+ PR libstdc++/100577
+ * include/std/ranges (_RangeAdaptorClosure): Document
+ _S_has_simple_call_op mechanism.
+ (_RangeAdaptor): Document _S_has_simple_extra_args mechanism.
+ (__closure_has_simple_call_op): New concept.
+ (__adaptor_has_simple_extra_args): Likewise.
+ (_Partial<_Adaptor, _Args...>): New partial specialization.
+ (_Partial<_Adaptor, _Arg>): Likewise.
+ (_Pipe<_Lhs, _Rhs>): Likewise.
+ (views::_All::_S_has_simple_call_op): Define to true.
+ (views::_Filter::_S_has_simple_extra_args): Likewise.
+ (views::_Transform::_S_has_simple_extra_args): Likewise.
+ (views::_Take::_S_has_simple_extra_args): Likewise.
+ (views::_TakeWhile::_S_has_simple_extra_args): Likewise.
+ (views::_Drop::_S_has_simple_extra_args): Likewise.
+ (views::_DropWhile::_S_has_simple_extra_args): Likewise.
+ (views::_Join::_S_has_simple_call_op): Likewise.
+ (views::_Split): Document why we don't define
+ _S_has_simple_extra_args to true for this adaptor.
+ (views::_Common::_S_has_simple_call_op): Define to true.
+ (views::_Reverse::_S_has_simple_call_op): Likewise.
+ (views::_Elements::_S_has_simple_call_op): Likewise.
+ * testsuite/std/ranges/adaptors/100577.cc: New test.
+
+2021-06-10 Patrick Palka <ppalka@redhat.com>
+
+ Backported from master:
+ 2021-06-03 Patrick Palka <ppalka@redhat.com>
+
+ PR libstdc++/100770
+ * include/bits/ranges_algo.h (__detail::__can_reread_output):
+ Factor out this concept from ...
+ (__unique_copy_fn::operator()): ... here. Use the concept
+ throughout.
+ * testsuite/std/ranges/range.cc: Remove now ill-formed use
+ of range_value_t on an output_range.
+ * testsuite/util/testsuite_iterators.h (output_iterator_wrapper):
+ Define value_type, pointer and reference member types to void.
+
+2021-06-10 Patrick Palka <ppalka@redhat.com>
+
+ Backported from master:
+ 2021-05-21 Patrick Palka <ppalka@redhat.com>
+
+ PR libstdc++/100690
+ * include/std/ranges (iota_view::_Sentinel::_M_distance_from):
+ Split out this member function from ...
+ (iota_view::_Sentinel::operator-): ... here, for sake of access
+ control.
+ * testsuite/std/ranges/iota/iota_view.cc (test05): New test.
+
+2021-06-10 Patrick Palka <ppalka@redhat.com>
+
+ Backported from master:
+ 2021-05-06 Patrick Palka <ppalka@redhat.com>
+
+ * include/std/ranges (filter_view::_Iterator::base): Make the
+ const& overload unconstrained and return a const reference as
+ per LWG 3533. Make unconditionally noexcept.
+ (transform_view::_Iterator::base): Likewise.
+ (elements_view::_Iterator::base): Likewise.
+
+2021-06-10 Patrick Palka <ppalka@redhat.com>
+
+ Backported from master:
+ 2021-05-06 Patrick Palka <ppalka@redhat.com>
+
+ * include/bits/stl_iterator.h (move_iterator::base): Make the
+ const& overload unconstrained and return a const reference as
+ per LWG 3391. Make unconditionally noexcept.
+ (counted_iterator::base): Likewise.
+ * testsuite/24_iterators/move_iterator/lwg3391.cc: New test.
+ * testsuite/24_iterators/move_iterator/move_only.cc: Adjust
+ has_member_base concept to decay-copy the result of base().
+
+2021-06-10 Patrick Palka <ppalka@redhat.com>
+
+ Backported from master:
+ 2021-05-18 Patrick Palka <ppalka@redhat.com>
+
+ PR libstdc++/100631
+ * include/std/ranges (elements_view::_Sentinel::operator-): Use
+ _M_distance_from in the other operator- overload too.
+ * testsuite/std/ranges/adaptors/elements.cc (test06): Augment test.
+
+2021-06-10 Patrick Palka <ppalka@redhat.com>
+
+ Backported from master:
+ 2021-05-18 Patrick Palka <ppalka@redhat.com>
+
+ PR libstdc++/100631
+ * include/std/ranges (elements_view::_Iterator): Also befriend
+ _Sentinel<!_Const>.
+ (elements_view::_Sentinel::_M_equal): Templatize.
+ (elements_view::_Sentinel::_M_distance_from): Split out from ...
+ (elements_view::_Sentinel::operator-): ... here. Depend on
+ _Base2 instead of _Base in the return type.
+ * testsuite/std/ranges/adaptors/elements.cc (test06, test07):
+ New tests.
+
+2021-06-10 Patrick Palka <ppalka@redhat.com>
+
+ Backported from master:
+ 2021-05-20 Patrick Palka <ppalka@redhat.com>
+
+ PR libstdc++/100639
+ * include/bits/stl_iterator.h (reverse_iterator::difference_type):
+ In C++20 mode, define in terms of iter_difference_t as per P0896R4.
+ (reverse_iterator::reference): Likewise, but with iter_reference_t.
+ (reverse_iterator::value_type): Likewise, but with iter_value_t.
+ * testsuite/std/ranges/adaptors/reverse.cc (test08): New test.
+ * testsuite/24_iterators/reverse_iterator/100639.cc: New test.
+
2021-06-09 Thomas Rodgers <rodgert@appliantology.com>
Backported from master: