https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100290

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Patrick Palka
<ppa...@gcc.gnu.org>:

https://gcc.gnu.org/g:b81834eaf85d5c4e0df8e4fc2307cbdd083dea6c

commit r10-9789-gb81834eaf85d5c4e0df8e4fc2307cbdd083dea6c
Author: Patrick Palka <ppa...@redhat.com>
Date:   Tue Apr 27 14:07:46 2021 -0400

    libstdc++: Fix up lambda in join_view::_Iterator::operator++ [PR100290]

    Currently, the return type of this lambda is decltype(auto), so the
    lambda ends up returning a copy of _M_parent->_M_inner rather than a
    reference to it when _S_ref_glvalue is false.  This means _M_inner and
    ranges::end(__inner_range) are respectively an iterator and sentinel for
    different ranges, so comparing them is undefined.

    libstdc++-v3/ChangeLog:

            PR libstdc++/100290
            * include/std/ranges (join_view::_Iterator::operator++): Correct
            the return type of the lambda to avoid returning a copy of
            _M_parent->_M_inner.
            * testsuite/std/ranges/adaptors/join.cc (test10): New test.

    (cherry picked from commit 85ef4b8d4eb3313a48b79c7e752891f9646bb246)

Reply via email to