diff options
author | Patrick Palka <ppalka@redhat.com> | 2020-12-17 22:18:07 -0500 |
---|---|---|
committer | Patrick Palka <ppalka@redhat.com> | 2020-12-17 22:18:07 -0500 |
commit | 79f57d5cb070bb02ea0a34b5f42658d6659b19a8 (patch) | |
tree | b7dba72ed8e157d1c7895c62e038be36cba7a903 /gcc/fortran/resolve.c | |
parent | 20f292863f6ed230335c443893d4db664a8140d0 (diff) | |
download | gcc-79f57d5cb070bb02ea0a34b5f42658d6659b19a8.zip gcc-79f57d5cb070bb02ea0a34b5f42658d6659b19a8.tar.gz gcc-79f57d5cb070bb02ea0a34b5f42658d6659b19a8.tar.bz2 |
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.
Diffstat (limited to 'gcc/fortran/resolve.c')
0 files changed, 0 insertions, 0 deletions