diff options
| author | Frank Denis <github@pureftpd.org> | 2025-09-18 16:19:56 +0200 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2025-09-21 05:01:41 -0700 |
| commit | bdc31c95611de8611a13e3dde9e091ef3a719476 (patch) | |
| tree | 47cdb0141e8a265ba03531fb17a91bb3e2d4de5c /src/codegen | |
| parent | 594cb38fcb6c2edccee6b2fd74adec81b3be547a (diff) | |
| download | zig-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.zig | 7 |
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| { |
