[all-commits] [llvm/llvm-project] 3d7946: Implement DR2565: Invalid types in the parameter-d...
Erich Keane via All-commits
all-commits at lists.llvm.org
Tue Oct 4 10:33:06 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 3d7946c580055dade1dcf4b632738cc54e1a25a9
https://github.com/llvm/llvm-project/commit/3d7946c580055dade1dcf4b632738cc54e1a25a9
Author: Erich Keane <erich.keane at intel.com>
Date: 2022-10-04 (Tue, 04 Oct 2022)
Changed paths:
M clang/docs/ReleaseNotes.rst
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Sema/Sema.h
M clang/lib/Frontend/FrontendActions.cpp
M clang/lib/Sema/SemaTemplateInstantiate.cpp
M clang/lib/Sema/TreeTransform.h
A clang/test/CXX/drs/dr25xx.cpp
M clang/test/CXX/expr/expr.prim/expr.prim.req/simple-requirement.cpp
M clang/www/cxx_dr_status.html
Log Message:
-----------
Implement DR2565: Invalid types in the parameter-declaration-clause of a
requires-expression
As reported: https://github.com/llvm/llvm-project/issues/57487
We properly treated a failed instantiation of a concept as a
unsatisified constraint, however, we need to do this at the 'requires
clause' level as well. This ensures that the parameters on a requires
clause that fail instantiation will cause a satisfaction failure.
This patch implements this by running requires parameter clause
instantiation under a SFINAE trap, then stores any such failure as a
requirement failure, so it can be diagnosed later.
More information about the All-commits
mailing list