================ @@ -5817,7 +5817,10 @@ LValue CodeGenFunction::EmitHLSLArrayAssignLValue(const BinaryOperator *E) { LValue CodeGenFunction::EmitCallExprLValue(const CallExpr *E, llvm::CallBase **CallOrInvoke) { - RValue RV = EmitCallExpr(E, ReturnValueSlot(), CallOrInvoke); ---------------- ilya-biryukov wrote:
Would it be better to wrap a more generic function? I'm thinking about `EmitLValue` ```cpp LValue CodeGenFunction::EmitLValue(const Expr *E) { LValue R; R = runWithSufficientStackSpace([] { R = EmitLValueImpl(E); }, ...); return R; } // The current function... LValue CodeGenFunction::EmitLValueImpl(const Expr *E) { ApplyDebugLocation DL(*this, E); switch (E->getStmtClass()) { ... } ``` That way we can cover a broader class of recursive expressions. I'm not sure the coverage is complete, but should probably be quite good for a start. (We could also add a few tests for deep expressions that don't involve calls). https://github.com/llvm/llvm-project/pull/111701 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits