Commit 437059f37c

mlugg <mlugg@mlugg.co.uk>
2025-06-05 13:15:56
tests: avoid loading 16 MiB onto the stack
Currently, Zig semantically loads an array as a temporary when indexing it. This means it cannot be guaranteed that only the requested element is loaded; in particular, our self-hosted backends do not elide the load of the full array, so this test case was crashing on self-hosted.
1 parent 0bf8617
Changed files (1)
test
link
test/link/bss/main.zig
@@ -6,8 +6,9 @@ var buffer: [0x1000000]u64 = [1]u64{0} ** 0x1000000;
 pub fn main() anyerror!void {
     buffer[0x10] = 1;
     try std.io.getStdOut().writer().print("{d}, {d}, {d}\n", .{
-        buffer[0],
-        buffer[0x10],
-        buffer[0x1000000 - 1],
+        // workaround the dreaded decl_val
+        (&buffer)[0],
+        (&buffer)[0x10],
+        (&buffer)[0x1000000 - 1],
     });
 }