================ @@ -17257,8 +17258,11 @@ void Sema::PushExpressionEvaluationContext( ExpressionEvaluationContext NewContext, ReuseLambdaContextDecl_t, ExpressionEvaluationContextRecord::ExpressionKind ExprContext) { - Decl *ClosureContextDecl = ExprEvalContexts.back().ManglingContextDecl; - PushExpressionEvaluationContext(NewContext, ClosureContextDecl, ExprContext); + const auto &PrevRec = ExprEvalContexts.back(); + PushExpressionEvaluationContext(NewContext, PrevRec.ContextDecl, + PrevRec.ContextArgs, ExprContext); + ExprEvalContexts.back().HasReusedDeclContext = true; + ExprEvalContexts.back().LazyContextDeclPos = PrevRec.LazyContextDeclPos; ---------------- zyn0217 wrote:
FYI, `PrevRec` would be invalidated after `PushExpressionEvaluationContext()`, so you probably want to save the value before the call. This caused `clang/test/SemaTemplate/stack-exhaustion.cpp` to fail on my machine. https://github.com/llvm/llvm-project/pull/107942 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits