Commit 709fe755d for llama.cpp

commit 709fe755dfa810d77e2ac386292b29648b536864
Author: Georgi Gerganov <ggerganov@gmail.com>
Date:   Tue Sep 22 22:45:33 2026 +0300

    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

diff --git a/common/jinja/runtime.cpp b/common/jinja/runtime.cpp
index 227f6c094..8b012ebdc 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<select_expression>(iterable);
     statement_ptr test_expr_nullptr;

-    const statement_ptr & iter_expr = [&]() -> const statement_ptr & {
-        auto tmp = cast_stmt<select_expression>(iterable);
-        return tmp ? tmp->lhs : iterable;
-    }();
-    const statement_ptr & test_expr = [&]() -> const statement_ptr & {
-        auto tmp = cast_stmt<select_expression>(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());