| ... | ... | @@ -223,3 +223,18 @@ test "align(N) on functions" { |
| 223 | 223 | fn overaligned_fn() align(0x1000) i32 { |
| 224 | 224 | return 42; |
| 225 | 225 | } |
| 226 | |
| 227 | test "page aligned array on stack" { |
| 228 | // Large alignment value to make it hard to accidentally pass. |
| 229 | var array align(0x1000) = [_]u8{ 1, 2, 3, 4, 5, 6, 7, 8 }; |
| 230 | var number1: u8 align(16) = 42; |
| 231 | var number2: u8 align(16) = 43; |
| 232 | |
| 233 | try expect(@ptrToInt(&array[0]) & 0xFFF == 0); |
| 234 | try expect(array[3] == 4); |
| 235 | |
| 236 | try expect(@truncate(u4, @ptrToInt(&number1)) == 0); |
| 237 | try expect(@truncate(u4, @ptrToInt(&number2)) == 0); |
| 238 | try expect(number1 == 42); |
| 239 | try expect(number2 == 43); |
| 240 | } |