mirror of
https://github.com/ziglang/zig.git
synced 2026-01-20 22:35:24 +00:00
spirv: allow generation of *i0
This commit is contained in:
parent
2d52fc762d
commit
d0e7a3596b
@ -1219,7 +1219,14 @@ const DeclGen = struct {
|
||||
},
|
||||
.Int => {
|
||||
const int_info = ty.intInfo(mod);
|
||||
// TODO: Integers in OpenCL kernels are always unsigned.
|
||||
if (int_info.bits == 0) {
|
||||
// Some times, the backend will be asked to generate a pointer to i0. OpTypeInt
|
||||
// with 0 bits is invalid, so return an opaque type in this case.
|
||||
assert(repr == .indirect);
|
||||
return try self.spv.resolve(.{ .opaque_type = .{
|
||||
.name = try self.spv.resolveString("u0"),
|
||||
} });
|
||||
}
|
||||
return try self.intType(int_info.signedness, int_info.bits);
|
||||
},
|
||||
.Enum => {
|
||||
|
||||
@ -261,7 +261,6 @@ fn doSomeMangling(array: *[4]u8) void {
|
||||
|
||||
test "implicit cast zero sized array ptr to slice" {
|
||||
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest; // TODO
|
||||
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
||||
|
||||
{
|
||||
var b = "".*;
|
||||
@ -732,7 +731,6 @@ test "slicing array of zero-sized values" {
|
||||
if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest;
|
||||
if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest;
|
||||
if (builtin.zig_backend == .stage2_sparc64) return error.SkipZigTest;
|
||||
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
||||
|
||||
var arr: [32]u0 = undefined;
|
||||
for (arr[0..]) |*zero|
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user