diff options
author | Rich Kadel <richkadel@google.com> | 2020-11-24 11:50:24 -0800 |
---|---|---|
committer | Rich Kadel <richkadel@google.com> | 2020-11-24 11:50:24 -0800 |
commit | 51268d2735ed59b4f6b6351fd75edd0f4cf19c9f (patch) | |
tree | 500074e708757effa726f9ac33514548c29dad0f /compiler/rustc_llvm/llvm-wrapper/CoverageMappingWrapper.cpp | |
parent | 5d5dc4c9d86499854a50a54a8dab73c180f7cbbc (diff) | |
download | rust-51268d2735ed59b4f6b6351fd75edd0f4cf19c9f.tar.gz |
Check for LLVM 11+ when using `-Z instrument-coverage`
* `rustc` should now compile under LLVM 9 or 10
* Compiler generates an error if `-Z instrument-coverage` is specified
but LLVM version is less than 11
* Coverage tests that require `-Z instrument-coverage` and run codegen
should be skipped if LLVM version is less than 11
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/CoverageMappingWrapper.cpp')
-rw-r--r-- | compiler/rustc_llvm/llvm-wrapper/CoverageMappingWrapper.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/compiler/rustc_llvm/llvm-wrapper/CoverageMappingWrapper.cpp b/compiler/rustc_llvm/llvm-wrapper/CoverageMappingWrapper.cpp index 6700482f2b7..2b76cd5849d 100644 --- a/compiler/rustc_llvm/llvm-wrapper/CoverageMappingWrapper.cpp +++ b/compiler/rustc_llvm/llvm-wrapper/CoverageMappingWrapper.cpp @@ -71,7 +71,11 @@ extern "C" void LLVMRustCoverageWriteMapSectionNameToString(LLVMModuleRef M, extern "C" void LLVMRustCoverageWriteFuncSectionNameToString(LLVMModuleRef M, RustStringRef Str) { +#if LLVM_VERSION_GE(11, 0) WriteSectionNameToString(M, IPSK_covfun, Str); +#else + report_fatal_error("rustc option `-Z instrument-coverage` requires LLVM 11 or higher."); +#endif } extern "C" void LLVMRustCoverageWriteMappingVarNameToString(RustStringRef Str) { @@ -81,5 +85,9 @@ extern "C" void LLVMRustCoverageWriteMappingVarNameToString(RustStringRef Str) { } extern "C" uint32_t LLVMRustCoverageMappingVersion() { +#if LLVM_VERSION_GE(11, 0) return coverage::CovMapVersion::Version4; +#else + report_fatal_error("rustc option `-Z instrument-coverage` requires LLVM 11 or higher."); +#endif } |