[clang] Disable constexpr function body checking in more situations (PR #94347)

Erich Keane via cfe-commits cfe-commits at lists.llvm.org
Tue Jun 4 06:36:31 PDT 2024


================
@@ -2469,11 +2469,20 @@ static bool CheckConstexprFunctionBody(Sema &SemaRef, const FunctionDecl *Dcl,
   //     base class sub-objects shall be a constexpr constructor.
   //
   // Note that this rule is distinct from the "requirements for a constexpr
-  // function", so is not checked in CheckValid mode.
+  // function", so is not checked in CheckValid mode. Because the check for
+  // constexpr potential is expensive, skip the check if the diagnostic is
+  // disabled, the function is declared in a system header, or we're in C++23
+  // or later mode (see https://wg21.link/P2448).
+  auto SkipCheck = [&SemaRef, Dcl] {
----------------
erichkeane wrote:

Can this just be a boolean?

https://github.com/llvm/llvm-project/pull/94347


More information about the cfe-commits mailing list