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

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

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

commit r14-640-gbbb6cf926f1732559b3a8aaf2796d34e8651c066
Author: Patrick Palka <ppa...@redhat.com>
Date:   Tue May 9 15:07:00 2023 -0400

    c++: error-recovery ICE with unstable satisfaction [PR109752]

    After diagnosing and recovering from unstable satisfaction, it's
    possible to evaluate an atom for the first time noisily rather than
    quietly.  The satisfaction cache tries to handle this situation
    gracefully, but apparently not gracefully enough: we inserted an empty
    slot into the cache, and left it empty, which later makes
    hash_table::check_complete_insertion unhappy.  This patch fixes this by
    removing the empty slot in this case.

            PR c++/109752

    gcc/cp/ChangeLog:

            * constraint.cc (satisfaction_cache::satisfaction_cache): In the
            unexpected case of evaluating an atom for the first time noisily,
            remove the cache slot that we inserted.

    gcc/testsuite/ChangeLog:

            * g++.dg/cpp2a/concepts-pr109752.C: New test.

Reply via email to