commit 0af16a58a0af20efa063057e90f8f448b010afd1 (tree)
parent d0e7a3596ba480fdbc59644fd13859efe3024ea8
Author: Robin Voetter <robin@voetter.nl>
Date: Sun, 8 Oct 2023 11:38:43 +0200
spirv: fix air is_null optional slice field type
Diffstat:
2 files changed, 1 insertion(+), 7 deletions(-)
diff --git a/src/codegen/spirv.zig b/src/codegen/spirv.zig
@@ -3659,7 +3659,7 @@ const DeclGen = struct {
payload_ty;
const ptr_id = if (payload_ty.isSlice(mod))
- try self.extractField(Type.bool, operand_id, 0)
+ try self.extractField(ptr_ty, operand_id, 0)
else
operand_id;
diff --git a/test/behavior/cast.zig b/test/behavior/cast.zig
@@ -1208,7 +1208,6 @@ test "implicitly cast from [N]T to ?[]const T" {
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
- if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
try expect(mem.eql(u8, castToOptionalSlice().?, "hi"));
try comptime expect(mem.eql(u8, castToOptionalSlice().?, "hi"));
@@ -1293,7 +1292,6 @@ test "*const [N]null u8 to ?[]const u8" {
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
- if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
const S = struct {
fn doTheTest() !void {
@@ -1335,8 +1333,6 @@ test "assignment to optional pointer result loc" {
}
test "cast between *[N]void and []void" {
- if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
-
var a: [4]void = undefined;
var b: []void = &a;
try expect(b.len == 4);
@@ -1398,7 +1394,6 @@ test "peer type resolution: unreachable, null, slice" {
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
- if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
const S = struct {
fn doTheTest(num: usize, word: []const u8) !void {
@@ -1438,7 +1433,6 @@ test "cast compatible optional types" {
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
- if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
var a: ?[:0]const u8 = null;
var b: ?[]const u8 = a;