[clang] [clang-tools-extra] [clang] check deduction consistency when partial ordering function templates (PR #100692)

Matheus Izvekov via cfe-commits cfe-commits at lists.llvm.org
Fri Jul 26 11:49:14 PDT 2024


================
@@ -5346,7 +5346,6 @@ static EvalStmtResult EvaluateStmt(StmtResult &Result, EvalInfo &Info,
     const Expr *RetExpr = cast<ReturnStmt>(S)->getRetValue();
     FullExpressionRAII Scope(Info);
     if (RetExpr && RetExpr->isValueDependent()) {
-      EvaluateDependentExpr(RetExpr, Info);
----------------
mizvekov wrote:

This is a pure function that's supposed to be called only for its return value, which is being discarded here.

That function has an assert internally that is firing when we transform a declrefexpr referencing a lambda.
This happens on a transform with an incomplete template argument list. Empty even, all template arguments being null.

I can double check for more details, but a transform pass without any actual transformation shouldn't produce errors.

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


More information about the cfe-commits mailing list