Commit 83a2c41cd5
Changed files (1)
test
behavior
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
-
- // 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;
+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
- 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" {