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

--- Comment #8 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:6632f2920f08f5b45ffd1ada7006d4591ef9b172

commit r10-8215-g6632f2920f08f5b45ffd1ada7006d4591ef9b172
Author: Patrick Palka <ppa...@redhat.com>
Date:   Fri May 29 13:09:20 2020 -0400

    c++: satisfaction value of type typedef to bool [PR95386]

    In the testcase below, the satisfaction value of fn1<int>'s constraint
    is INTEGER_CST '1' of type BOOLEAN_TYPE value_type, which is a typedef
    to the standard boolean_type_node.  But satisfaction_value expects to
    see exactly boolean_true_node or integer_one_node, which this value is
    neither, causing us to trip over the assert therein.

    This patch relaxes satisfaction_value to accept any INTEGER_CST which
    satisfies integer_zerop or integer_onep.

    gcc/cp/ChangeLog:

            PR c++/95386
            * constraint.cc (satisfaction_value): Relax to accept any
            INTEGER_CST that satisfies integer_zerop or integer_onep.

    gcc/testsuite/ChangeLog:

            PR c++/95386
            * g++.dg/concepts/pr95386.C: New test.

Reply via email to