mirror of
https://github.com/ziglang/zig.git
synced 2026-01-20 14:25:16 +00:00
spirv: generate *void as pointer to opaque
This commit is contained in:
parent
fe51ff9fc1
commit
ae3efab226
@ -1187,7 +1187,17 @@ const DeclGen = struct {
|
||||
log.debug("resolveType: ty = {}", .{ty.fmt(mod)});
|
||||
const target = self.getTarget();
|
||||
switch (ty.zigTypeTag(mod)) {
|
||||
.Void, .NoReturn => return try self.spv.resolve(.void_type),
|
||||
.NoReturn => {
|
||||
assert(repr == .direct);
|
||||
return try self.spv.resolve(.void_type);
|
||||
},
|
||||
.Void => switch (repr) {
|
||||
.direct => return try self.spv.resolve(.void_type),
|
||||
// Pointers to void
|
||||
.indirect => return try self.spv.resolve(.{ .opaque_type = .{
|
||||
.name = try self.spv.resolveString("void"),
|
||||
} }),
|
||||
},
|
||||
.Bool => switch (repr) {
|
||||
.direct => return try self.spv.resolve(.bool_type),
|
||||
.indirect => return try self.intType(.unsigned, 1),
|
||||
@ -1439,11 +1449,9 @@ const DeclGen = struct {
|
||||
return ty_ref;
|
||||
},
|
||||
.Opaque => {
|
||||
return try self.spv.resolve(.{
|
||||
.opaque_type = .{
|
||||
.name = .none, // TODO
|
||||
},
|
||||
});
|
||||
return try self.spv.resolve(.{ .opaque_type = .{
|
||||
.name = .none, // TODO
|
||||
} });
|
||||
},
|
||||
|
||||
.Null,
|
||||
|
||||
@ -270,8 +270,6 @@ test "implicit cast from *[N]T to [*c]T" {
|
||||
}
|
||||
|
||||
test "*usize to *void" {
|
||||
if (builtin.zig_backend == .stage2_spirv64) return error.SkipZigTest;
|
||||
|
||||
var i = @as(usize, 0);
|
||||
var v = @as(*void, @ptrCast(&i));
|
||||
v.* = {};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user