[Bug c++/91073] [9 Regression] if constexpr no longer works directly with Concepts

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Jan 29 14:08:00 GMT 2020


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

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

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

commit r10-6325-gf214ffb336d582a66149068a2a96b7fcf395b5de
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Wed Jan 29 13:56:49 2020 +0000

    libstdc++: Simplify constraints on std::compare_three_way

    The __3way_builtin_ptr_cmp concept can use three_way_comparable_with to
    check whether <=> is valid. Doing that makes it obvious that the
    disjunction on compare_three_way::operator() is redundant, because
    the second constraint subsumes the first.

    The workaround for PR c++/91073 can also be removed as that bug is fixed
    now.

        * 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().


More information about the Gcc-bugs mailing list