| ... | @@ -1187,7 +1187,17 @@ const DeclGen = struct { | ... | @@ -1187,7 +1187,17 @@ const DeclGen = struct { |
| 1187 | log.debug("resolveType: ty = {}", .{ty.fmt(mod)}); | 1187 | log.debug("resolveType: ty = {}", .{ty.fmt(mod)}); |
| 1188 | const target = self.getTarget(); | 1188 | const target = self.getTarget(); |
| 1189 | switch (ty.zigTypeTag(mod)) { | 1189 | switch (ty.zigTypeTag(mod)) { |
| 1190 | .Void, .NoReturn => return try self.spv.resolve(.void_type), | 1190 | .NoReturn => { |
| | 1191 | assert(repr == .direct); |
| | 1192 | return try self.spv.resolve(.void_type); |
| | 1193 | }, |
| | 1194 | .Void => switch (repr) { |
| | 1195 | .direct => return try self.spv.resolve(.void_type), |
| | 1196 | // Pointers to void |
| | 1197 | .indirect => return try self.spv.resolve(.{ .opaque_type = .{ |
| | 1198 | .name = try self.spv.resolveString("void"), |
| | 1199 | } }), |
| | 1200 | }, |
| 1191 | .Bool => switch (repr) { | 1201 | .Bool => switch (repr) { |
| 1192 | .direct => return try self.spv.resolve(.bool_type), | 1202 | .direct => return try self.spv.resolve(.bool_type), |
| 1193 | .indirect => return try self.intType(.unsigned, 1), | 1203 | .indirect => return try self.intType(.unsigned, 1), |
| ... | @@ -1439,11 +1449,9 @@ const DeclGen = struct { | ... | @@ -1439,11 +1449,9 @@ const DeclGen = struct { |
| 1439 | return ty_ref; | 1449 | return ty_ref; |
| 1440 | }, | 1450 | }, |
| 1441 | .Opaque => { | 1451 | .Opaque => { |
| 1442 | return try self.spv.resolve(.{ | 1452 | return try self.spv.resolve(.{ .opaque_type = .{ |
| 1443 | .opaque_type = .{ | 1453 | .name = .none, // TODO |
| 1444 | .name = .none, // TODO | 1454 | } }); |
| 1445 | }, | | |
| 1446 | }); | | |
| 1447 | }, | 1455 | }, |
| 1448 | | 1456 | |
| 1449 | .Null, | 1457 | .Null, |