From 798acd932e8a6aaad452f038e8c5b68efc79a8f5 Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Thu, 18 Sep 2025 16:19:56 +0200 Subject: [PATCH] aarch64/zonCast: don't return a pointer to a stack element Elements are computed at comptime, so don't declare them as "var". --- src/codegen/aarch64/Assemble.zig | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/codegen/aarch64/Assemble.zig b/src/codegen/aarch64/Assemble.zig index 4b5aa8e04f..5cf9c2da3c 100644 --- a/src/codegen/aarch64/Assemble.zig +++ b/src/codegen/aarch64/Assemble.zig @@ -42,8 +42,11 @@ fn zonCast(comptime Result: type, zon_value: anytype, symbols: anytype) Result { .@"struct" => |zon_struct| switch (@typeInfo(Result)) { .pointer => |result_pointer| { comptime assert(result_pointer.size == .slice and result_pointer.is_const); - var elems: [zon_value.len]result_pointer.child = undefined; - inline for (&elems, zon_value) |*elem, zon_elem| elem.* = zonCast(result_pointer.child, zon_elem, symbols); + const elems = comptime blk: { + var temp_elems: [zon_value.len]result_pointer.child = undefined; + for (&temp_elems, zon_value) |*elem, zon_elem| elem.* = zonCast(result_pointer.child, zon_elem, symbols); + break :blk temp_elems; + }; return &elems; }, .@"struct" => |result_struct| {