authorgravatar for robin@voetter.nlRobin Voetter <robin@voetter.nl> 2023-10-08 11:38:43+02:00
committergravatar for robin@voetter.nlRobin Voetter <robin@voetter.nl> 2023-10-15 14:00:06+02:00
log0af16a58a0af20efa063057e90f8f448b010afd1
tree28b421682eefff69c80f1098800b6844540b137e
parentd0e7a3596ba480fdbc59644fd13859efe3024ea8
signature Signed by SSH key SHA256:CQ99aPxq+RueiL9u7z0FEki5Fm7V6T8q4PrEGmINrA4

spirv: fix air is_null optional slice field type


2 files changed, 1 insertions(+), 7 deletions(-)

src/codegen/spirv.zig+1-1
...@@ -3659,7 +3659,7 @@ const DeclGen = struct {...@@ -3659,7 +3659,7 @@ const DeclGen = struct {
3659 payload_ty;3659 payload_ty;
36603660
3661 const ptr_id = if (payload_ty.isSlice(mod))3661 const ptr_id = if (payload_ty.isSlice(mod))
3662 try self.extractField(Type.bool, operand_id, 0)3662 try self.extractField(ptr_ty, operand_id, 0)
3663 else3663 else
3664 operand_id;3664 operand_id;
36653665
test/behavior/cast.zig-6
...@@ -1208,7 +1208,6 @@ test "implicitly cast from [N]T to ?[]const T" {...@@ -1208,7 +1208,6 @@ test "implicitly cast from [N]T to ?[]const T" {
1208 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1208 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1209 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1209 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1210 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1210 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1211 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
12121211
1213 try expect(mem.eql(u8, castToOptionalSlice().?, "hi"));1212 try expect(mem.eql(u8, castToOptionalSlice().?, "hi"));
1214 try comptime expect(mem.eql(u8, castToOptionalSlice().?, "hi"));1213 try comptime expect(mem.eql(u8, castToOptionalSlice().?, "hi"));
...@@ -1293,7 +1292,6 @@ test "*const [N]null u8 to ?[]const u8" {...@@ -1293,7 +1292,6 @@ test "*const [N]null u8 to ?[]const u8" {
1293 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1292 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1294 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1293 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1295 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1294 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1296 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
12971295
1298 const S = struct {1296 const S = struct {
1299 fn doTheTest() !void {1297 fn doTheTest() !void {
...@@ -1335,8 +1333,6 @@ test "assignment to optional pointer result loc" {...@@ -1335,8 +1333,6 @@ test "assignment to optional pointer result loc" {
1335}1333}
13361334
1337test "cast between *[N]void and []void" {1335test "cast between *[N]void and []void" {
1338 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
1339
1340 var a: [4]void = undefined;1336 var a: [4]void = undefined;
1341 var b: []void = &a;1337 var b: []void = &a;
1342 try expect(b.len == 4);1338 try expect(b.len == 4);
...@@ -1398,7 +1394,6 @@ test "peer type resolution: unreachable, null, slice" {...@@ -1398,7 +1394,6 @@ test "peer type resolution: unreachable, null, slice" {
1398 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;1394 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
1399 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1395 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1400 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1396 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1401 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
14021397
1403 const S = struct {1398 const S = struct {
1404 fn doTheTest(num: usize, word: []const u8) !void {1399 fn doTheTest(num: usize, word: []const u8) !void {
...@@ -1438,7 +1433,6 @@ test "cast compatible optional types" {...@@ -1438,7 +1433,6 @@ test "cast compatible optional types" {
1438 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO1433 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
1439 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO1434 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
1440 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO1435 if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
1441 if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
14421436
1443 var a: ?[:0]const u8 = null;1437 var a: ?[:0]const u8 = null;
1444 var b: ?[]const u8 = a;1438 var b: ?[]const u8 = a;