summaryrefslogtreecommitdiff
path: root/compiler/rustc_llvm/llvm-wrapper/CoverageMappingWrapper.cpp
diff options
context:
space:
mode:
authorRich Kadel <richkadel@google.com>2020-11-24 11:50:24 -0800
committerRich Kadel <richkadel@google.com>2020-11-24 11:50:24 -0800
commit51268d2735ed59b4f6b6351fd75edd0f4cf19c9f (patch)
tree500074e708757effa726f9ac33514548c29dad0f /compiler/rustc_llvm/llvm-wrapper/CoverageMappingWrapper.cpp
parent5d5dc4c9d86499854a50a54a8dab73c180f7cbbc (diff)
downloadrust-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.cpp8
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
}