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

--- Comment #2 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:79f57d5cb070bb02ea0a34b5f42658d6659b19a8

commit r11-6245-g79f57d5cb070bb02ea0a34b5f42658d6659b19a8
Author: Patrick Palka <ppa...@redhat.com>
Date:   Thu Dec 17 22:18:07 2020 -0500

    c++: Diagnose self-recursive satisfaction

    This patch further extends the satisfaction_cache class to diagnose
    self-recursive satisfaction.

    gcc/cp/ChangeLog:

            * constraint.cc (sat_entry::evaluating): New member.
            (satisfaction_cache::get): If entry->evaluating, diagnose
            self-recursive satisfaction.  Otherwise, set entry->evaluating
            if we're not reusing a cached satisfaction result.
            (satisfaction_cache::save): Clear entry->evaluating.
            (satisfy_atom): Set up diagnosing_failed_constraint before the
            first call to get().

    gcc/testsuite/ChangeLog:

            PR c++/96840
            * g++.dg/cpp2a/concepts-pr88395.C: Adjust to expect the
            self-recursive satisfaction to get directly diagnosed.
            * g++.dg/cpp2a/concepts-recursive-sat2.C: Likewise.
            * g++.dg/cpp2a/concepts-recursive-sat4.C: New test.

Reply via email to