================ @@ -18931,7 +18931,7 @@ void Sema::MarkFunctionReferenced(SourceLocation Loc, FunctionDecl *Func, // constant evaluated bool NeededForConstantEvaluation = isPotentiallyConstantEvaluatedContext(*this) && - isImplicitlyDefinableConstexprFunction(Func); + isImplicitlyDefinableConstexprFunction(Func) && !Func->isPure(); ---------------- shafik wrote:
I am not sure why moving it down silences the diagnostic, I would think doing `(OdrUse == OdrUseContext::Used || NeededForConstantEvaluation || !Func->isPure())` should work. Can you explain in more detail? https://github.com/llvm/llvm-project/pull/74510 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits