From 709fe755dfa810d77e2ac386292b29648b536864 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Tue, 22 Sep 2026 22:45:33 +0300 Subject: [PATCH] jinja : fix dangling reference warning in for_statement (#29279) Avoid returning references through lambdas that hold a local cast pointer, which triggers -Werror=dangling-reference in some CI compilers. Reuse the precomputed select_expr pointer directly. Assisted-by: pi:llama.cpp/DeepSeek-V4-Flash-Vision-Exp --- common/jinja/runtime.cpp | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/common/jinja/runtime.cpp b/common/jinja/runtime.cpp index 227f6c094a..8b012ebdc5 100644 --- a/common/jinja/runtime.cpp +++ b/common/jinja/runtime.cpp @@ -482,14 +482,8 @@ value for_statement::execute_impl(context & ctx) const { const jinja::select_expression * select_expr = cast_stmt(iterable); statement_ptr test_expr_nullptr; - const statement_ptr & iter_expr = [&]() -> const statement_ptr & { - auto tmp = cast_stmt(iterable); - return tmp ? tmp->lhs : iterable; - }(); - const statement_ptr & test_expr = [&]() -> const statement_ptr & { - auto tmp = cast_stmt(iterable); - return tmp ? tmp->test : test_expr_nullptr; - }(); + const statement_ptr & iter_expr = select_expr ? select_expr->lhs : iterable; + const statement_ptr & test_expr = select_expr ? select_expr->test : test_expr_nullptr; JJ_DEBUG("Executing for statement, iterable type: %s", iter_expr->type().c_str());