aboutsummaryrefslogtreecommitdiff
path: root/src/codegen
diff options
context:
space:
mode:
authorFrank Denis <github@pureftpd.org>2025-09-18 16:19:56 +0200
committerAndrew Kelley <andrew@ziglang.org>2025-09-21 05:01:41 -0700
commitbdc31c95611de8611a13e3dde9e091ef3a719476 (patch)
tree47cdb0141e8a265ba03531fb17a91bb3e2d4de5c /src/codegen
parent594cb38fcb6c2edccee6b2fd74adec81b3be547a (diff)
downloadzig-bdc31c95611de8611a13e3dde9e091ef3a719476.tar.gz
zig-bdc31c95611de8611a13e3dde9e091ef3a719476.zip
aarch64/zonCast: don't return a pointer to a stack element
Elements are computed at comptime, so don't declare them as "var".
Diffstat (limited to 'src/codegen')
-rw-r--r--src/codegen/aarch64/Assemble.zig7
1 files 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| {