diff --git a/test/behavior/align.zig b/test/behavior/align.zig index 32b0777583..6a819b4a7d 100644 --- a/test/behavior/align.zig +++ b/test/behavior/align.zig @@ -18,20 +18,16 @@ test "global variable alignment" { } } -test "slicing array of length 1 can assume runtime index is always zero" { - if (builtin.zig_backend != .stage1) return error.SkipZigTest; // TODO +test "slicing array of length 1 can not assume runtime index is always zero" { + if (builtin.zig_backend == .stage1) return error.SkipZigTest; + if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO + if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO - // TODO reevaluate this test case, because notice that you can - // change `runtime_zero` to be `1` and the test still passes for stage1. - // Reconsider also this code: - // var array: [4]u8 = undefined; - // var runtime: usize = 4; - // var ptr = array[runtime..]; - // _ = ptr; - - var runtime_zero: usize = 0; - const slice = @as(*align(4) [1]u8, &foo)[runtime_zero..]; - comptime try expect(@TypeOf(slice) == []align(4) u8); + var runtime_index: usize = 1; + const slice = @as(*align(4) [1]u8, &foo)[runtime_index..]; + try expect(@TypeOf(slice) == []u8); + try expect(slice.len == 0); + try expect(@truncate(u2, @ptrToInt(slice.ptr) - 1) == 0); } test "default alignment allows unspecified in type syntax" {