Integrate: Fix to CATCH_CPP_ASSIGN_HRESULT and validation of named metadata

This commit is contained in:
Tex Riddell 2017-02-07 13:02:37 -08:00
Родитель 9c3fd76579
Коммит 74049c5852
2 изменённых файлов: 6 добавлений и 9 удалений

Просмотреть файл

@ -59,7 +59,7 @@ void CheckLLVMErrorCode(const std::error_code &ec);
catch (std::bad_alloc&) { hr = E_OUTOFMEMORY; } \
catch (hlsl::Exception& _hlsl_exception_) { \
_Analysis_assume_(DXC_FAILED(_hlsl_exception_.hr)); \
return hr = _hlsl_exception_.hr; \
hr = _hlsl_exception_.hr; \
} \
catch (...) { hr = E_FAIL; }
#define CATCH_CPP_RETURN_HRESULT() \

Просмотреть файл

@ -2652,16 +2652,13 @@ static void ValidateMetadata(ValidationContext &ValCtx) {
ValCtx.EmitFormatError(ValidationRule::MetaTarget, {target.c_str()});
}
// The llvm.dbg.(cu/contents/defines/mainFileName/arg) named metadata nodes
// are only available in debug modules, not in the validated ones.
// llvm.bitsets is also disallowed.
//
// These are verified in lib/IR/Verifier.cpp.
StringMap<bool> llvmNamedMeta;
// These llvm named metadata is verified in lib/IR/Verifier.cpp.
llvmNamedMeta["llvm.dbg.cu"];
llvmNamedMeta["llvm.dbg.contents"];
llvmNamedMeta["llvm.dbg.defines"];
llvmNamedMeta["llvm.dbg.mainFileName"];
llvmNamedMeta["llvm.dbg.args"];
llvmNamedMeta["llvm.ident"];
// Not for HLSL which does not have vtable.
// llvmNamedMeta["llvm.bitsets"];
llvmNamedMeta["llvm.module.flags"];
for (auto &NamedMetaNode : pModule->named_metadata()) {