aboutsummaryrefslogtreecommitdiff
path: root/test/behavior/align.zig
diff options
context:
space:
mode:
authorCody Tapscott <topolarity@tapscott.me>2022-03-19 11:59:41 -0700
committerAndrew Kelley <andrew@ziglang.org>2022-03-19 19:41:23 -0400
commit19331b323d15b0fa0bae7add37a03528256a119f (patch)
treefcd72015345f8524892a32102d59f966eceebb7b /test/behavior/align.zig
parent5c3325588ef4e85e85cb201ad9328fe26bbb8dca (diff)
downloadzig-19331b323d15b0fa0bae7add37a03528256a119f.tar.gz
zig-19331b323d15b0fa0bae7add37a03528256a119f.zip
stage2: Correctly align decls for comptime allocs
This updates WipAnonDecl to require an alignment provided by the caller, which is needed for explicitly aligned comptime allocs.
Diffstat (limited to 'test/behavior/align.zig')
-rw-r--r--test/behavior/align.zig15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/behavior/align.zig b/test/behavior/align.zig
index ef5a790ead..3a35d1fcca 100644
--- a/test/behavior/align.zig
+++ b/test/behavior/align.zig
@@ -416,3 +416,18 @@ test "align(N) on functions" {
fn overaligned_fn() align(0x1000) i32 {
return 42;
}
+
+test "comptime alloc alignment" {
+ if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
+ if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO
+
+ comptime var bytes1 = [_]u8{0};
+ _ = bytes1;
+
+ comptime var bytes2 align(256) = [_]u8{0};
+ var bytes2_addr = @ptrToInt(&bytes2);
+ try std.testing.expect(bytes2_addr & 0xff == 0);
+}