aboutsummaryrefslogtreecommitdiff
path: root/libcpp/include
diff options
context:
space:
mode:
authorPatrick Palka <ppalka@redhat.com>2021-04-12 22:54:55 -0400
committerPatrick Palka <ppalka@redhat.com>2021-04-12 22:54:55 -0400
commit59d9aa6d2efe7c52b6a986eb3e1977c1fb3c5753 (patch)
tree1d4c31e21078391baa8efb51ede1013c6034918c /libcpp/include
parent07b27384de56ce2f6a93007d018743ef9d5c8cc4 (diff)
downloadgcc-59d9aa6d2efe7c52b6a986eb3e1977c1fb3c5753.zip
gcc-59d9aa6d2efe7c52b6a986eb3e1977c1fb3c5753.tar.gz
gcc-59d9aa6d2efe7c52b6a986eb3e1977c1fb3c5753.tar.bz2
c++: constraints are unevaluated operands [PR99961]
According to [temp.concept]/6 and [temp.pre]/9, a concept definition and a requires clause are both unevaluated contexts, and hence satisfaction deals only with unevaluated operands, so we should set cp_unevaluated in these three situations. gcc/cp/ChangeLog: PR c++/99961 PR c++/99994 * constraint.cc (satisfy_normalized_constraints): Set cp_unevaluated. * parser.c (cp_parser_concept_definition): Likewise. (cp_parser_requires_clause_opt): Likewise. gcc/testsuite/ChangeLog: PR c++/99961 PR c++/99994 * g++.dg/cpp2a/concepts-uneval1.C: New test. * g++.dg/cpp2a/concepts-uneval2.C: New test.
Diffstat (limited to 'libcpp/include')
0 files changed, 0 insertions, 0 deletions