| author | |
| committer | |
| log | d0e7a3596ba480fdbc59644fd13859efe3024ea8 |
| tree | 21712527555edc3a102ae9013b81e2f12ed1e5c0 |
| parent | 2d52fc762da7e7288c4caa381fb02933c205e9be |
| signature |
2 files changed, 8 insertions(+), 3 deletions(-)
src/codegen/spirv.zig+8-1| ... | ... | @@ -1219,7 +1219,14 @@ const DeclGen = struct { |
| 1219 | 1219 | }, |
| 1220 | 1220 | .Int => { |
| 1221 | 1221 | const int_info = ty.intInfo(mod); |
| 1222 | // TODO: Integers in OpenCL kernels are always unsigned. | |
| 1222 | if (int_info.bits == 0) { | |
| 1223 | // Some times, the backend will be asked to generate a pointer to i0. OpTypeInt | |
| 1224 | // with 0 bits is invalid, so return an opaque type in this case. | |
| 1225 | assert(repr == .indirect); | |
| 1226 | return try self.spv.resolve(.{ .opaque_type = .{ | |
| 1227 | .name = try self.spv.resolveString("u0"), | |
| 1228 | } }); | |
| 1229 | } | |
| 1223 | 1230 | return try self.intType(int_info.signedness, int_info.bits); |
| 1224 | 1231 | }, |
| 1225 | 1232 | .Enum => { |
test/behavior/array.zig-2| ... | ... | @@ -261,7 +261,6 @@ fn doSomeMangling(array: *[4]u8) void { |
| 261 | 261 | |
| 262 | 262 | test "implicit cast zero sized array ptr to slice" { |
| 263 | 263 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO |
| 264 | if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; | |
| 265 | 264 | |
| 266 | 265 | { |
| 267 | 266 | var b = "".*; |
| ... | ... | @@ -732,7 +731,6 @@ test "slicing array of zero-sized values" { |
| 732 | 731 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; |
| 733 | 732 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; |
| 734 | 733 | if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; |
| 735 | if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest; | |
| 736 | 734 | |
| 737 | 735 | var arr: [32]u0 = undefined; |
| 738 | 736 | for (arr[0..]) |*zero| |