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

--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jonathan Wakely <r...@gcc.gnu.org>:

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

commit r11-2773-ge6e01618e83bcd9eb3a2b27df30ed87106a748b4
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Wed Aug 19 20:36:10 2020 +0100

    libstdc++: Make make-unsigned-like-t<__int128> work [PR 96042]

    As well as ensuring that numeric_limits<__int128> is defined, we need to
    ensure that make-unsigned-like-t and to-unsigned-like work correctly for
    128-bit integers in strict mode. This ensures that a subrange created
    from an iota_view's iterator and sentinel can represent its size.

    Co-authored-by: Patrick Palka  <ppa...@redhat.com>

    libstdc++-v3/ChangeLog:

    2020-08-19  Jonathan Wakely  <jwak...@redhat.com>
                Patrick Palka  <ppa...@redhat.com>

            PR libstdc++/96042
            * include/bits/range_access.h (__detail::__to_unsigned_like):
            Do not use make_unsigned_t<T> in the return type, as it can
            result in an error before the integral<T> constraint is checked.
            [__STRICT_ANSI__]: Add overloads for 128-bit integer types.
            (__detail::__make_unsigned_like_t): Define as the return type
            of __to_unsigned_like.
            * testsuite/std/ranges/subrange/96042.cc: New test.

Reply via email to