[all-commits] [llvm/llvm-project] 4bcb85: Stop evaluating trailing requires clause after ove...

Erich Keane via All-commits all-commits at lists.llvm.org
Tue Oct 18 06:09:17 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 4bcb85c638c1c1719c5c01a70ee2e376e4032d2a
      https://github.com/llvm/llvm-project/commit/4bcb85c638c1c1719c5c01a70ee2e376e4032d2a
  Author: Erich Keane <erich.keane at intel.com>
  Date:   2022-10-18 (Tue, 18 Oct 2022)

  Changed paths:
    M clang/include/clang/Sema/Sema.h
    M clang/lib/Sema/SemaDeclCXX.cpp
    M clang/lib/Sema/SemaExpr.cpp
    M clang/lib/Sema/SemaOverload.cpp
    M clang/test/SemaTemplate/concepts.cpp

  Log Message:
  -----------
  Stop evaluating trailing requires clause after overload resolution

Reported as it showed up as a constriants failure after the deferred
instantiation patch, we were checking constraints TWICE after overload
resolution.  The first is during overload resolution, the second is when
diagnosing a use.

This patch modifies DiagnoseUseOfDecl to skip the trailing requires
clause check in some cases. First, of course, after choosing a candidate
after overload resolution.

The second is when evaluating a shadow using constructor, which had its
constraints checked when picking a constructor (as this is ALWAYS an
overload situation!).

Differential Revision: https://reviews.llvm.org/D135772




More information about the All-commits mailing list