spirv: deny global OpVariable in inline asm

This feature requires to be integrated with the mechanism that orders the
global variables, and that is not yet in place.
This commit is contained in:
Robin Voetter 2023-04-08 15:05:29 +02:00
parent 1de2d2ee1c
commit fe0fb93fa0
No known key found for this signature in database
GPG key ID: E755662F227CB468

View file

@ -444,8 +444,12 @@ fn processGenericInstruction(self: *Assembler) !?AsmValue {
.OpExecutionMode, .OpExecutionModeId => &self.spv.sections.execution_modes,
.OpVariable => switch (@intToEnum(spec.StorageClass, operands[2].value)) {
.Function => &self.func.prologue,
// TODO: Emit a decl dependency
else => &self.spv.sections.types_globals_constants,
else => {
// This is currently disabled because global variables are required to be
// emitted in the proper order, and this should be honored in inline assembly
// as well.
return self.todo("global variables", .{});
},
},
// Default case - to be worked out further.
else => &self.func.body,