From e8b99428737c401afeb118fa277da362e903b3ca Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 22 Nov 2021 20:12:19 -0700 Subject: [PATCH] add more alignment behavior test coverage --- test/behavior/align_stage1.zig | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/test/behavior/align_stage1.zig b/test/behavior/align_stage1.zig index a4af92368e..0626c702e4 100644 --- a/test/behavior/align_stage1.zig +++ b/test/behavior/align_stage1.zig @@ -223,3 +223,18 @@ test "align(N) on functions" { fn overaligned_fn() align(0x1000) i32 { return 42; } + +test "page aligned array on stack" { + // Large alignment value to make it hard to accidentally pass. + var array align(0x1000) = [_]u8{ 1, 2, 3, 4, 5, 6, 7, 8 }; + var number1: u8 align(16) = 42; + var number2: u8 align(16) = 43; + + try expect(@ptrToInt(&array[0]) & 0xFFF == 0); + try expect(array[3] == 4); + + try expect(@truncate(u4, @ptrToInt(&number1)) == 0); + try expect(@truncate(u4, @ptrToInt(&number2)) == 0); + try expect(number1 == 42); + try expect(number2 == 43); +}