[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