... when the are no SPIR-V env attributes.
Fixes: https://github.com/llvm/llvm-project/issues/59983
Reviewed By: antiagainst
Differential Revision: https://reviews.llvm.org/
D141695
Gbp-Pq: Name CVE-2023-29939.patch
spirv::ModuleOp module = getOperation();
MLIRContext *context = &getContext();
- spirv::TargetEnv targetEnv(spirv::lookupTargetEnv(module));
+ spirv::TargetEnvAttr targetEnvAttr = spirv::lookupTargetEnv(module);
+ if (!targetEnvAttr) {
+ module->emitOpError("missing SPIR-V target env attribute");
+ return signalPassFailure();
+ }
+ spirv::TargetEnv targetEnv(targetEnvAttr);
SPIRVTypeConverter typeConverter(targetEnv);
} // end spv.module
} // end module
+
+// -----
+
+module {
+// expected-error@+1 {{'spirv.module' op missing SPIR-V target env attribute}}
+spirv.module Logical GLSL450 {}
+} // end module