spirv-val: Label VUID 04667 (#4201)
diff --git a/source/val/validate_type.cpp b/source/val/validate_type.cpp index 6a5ea3c..685064c 100644 --- a/source/val/validate_type.cpp +++ b/source/val/validate_type.cpp
@@ -427,7 +427,8 @@ if (spvIsVulkanEnv(_.context()->target_env) && !_.options()->before_hlsl_legalization && ContainsOpaqueType(_, inst)) { return _.diag(SPV_ERROR_INVALID_ID, inst) - << "In " << spvLogStringForEnv(_.context()->target_env) + << _.VkErrorID(4667) << "In " + << spvLogStringForEnv(_.context()->target_env) << ", OpTypeStruct must not contain an opaque type."; }
diff --git a/source/val/validation_state.cpp b/source/val/validation_state.cpp index b56d5e0..1d2d09b 100644 --- a/source/val/validation_state.cpp +++ b/source/val/validation_state.cpp
@@ -1718,6 +1718,8 @@ return VUID_WRAP(VUID-StandaloneSpirv-Offset-04663); case 4664: return VUID_WRAP(VUID-StandaloneSpirv-OpImageGather-04664); + case 4667: + return VUID_WRAP(VUID-StandaloneSpirv-None-04667); case 4669: return VUID_WRAP(VUID-StandaloneSpirv-GLSLShared-04669); case 4675:
diff --git a/test/val/val_id_test.cpp b/test/val/val_id_test.cpp index 25c9e54..dd4c952 100644 --- a/test/val/val_id_test.cpp +++ b/test/val/val_id_test.cpp
@@ -1056,6 +1056,8 @@ CompileSuccessfully(spirv.c_str(), SPV_ENV_VULKAN_1_0); EXPECT_EQ(SPV_ERROR_INVALID_ID, ValidateInstructions(SPV_ENV_VULKAN_1_0)); EXPECT_THAT(getDiagnosticString(), + AnyVUID("VUID-StandaloneSpirv-None-04667")); + EXPECT_THAT(getDiagnosticString(), HasSubstr("OpTypeStruct must not contain an opaque type")); }