diff options
| author | bors <bors@rust-lang.org> | 2022-01-25 05:15:21 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-01-25 05:15:21 +0000 |
| commit | df368ae457c54fb95d3e64f9986a5f171a6370f0 (patch) | |
| tree | 937d7106779ef49d1997a2178f187af99809a09a /compiler/rustc_codegen_llvm/src/coverageinfo/mapgen.rs | |
| parent | e7825f2b690c9a0d21b6f6d84c404bb53b151b38 (diff) | |
| parent | 13b87d8cc73b8ac9cab1fa99b2b61820d4d483a6 (diff) | |
| download | rust-df368ae457c54fb95d3e64f9986a5f171a6370f0.tar.gz rust-df368ae457c54fb95d3e64f9986a5f171a6370f0.zip | |
Auto merge of #93288 - matthiaskrgr:rollup-uu4uwd1, r=matthiaskrgr
Rollup of 8 pull requests Successful merges: - #88794 (Add a `try_clone()` function to `OwnedFd`.) - #93064 (Properly track `DepNode`s in trait evaluation provisional cache) - #93118 (Move param count error emission to end of `check_argument_types`) - #93144 (Work around missing code coverage data causing llvm-cov failures) - #93169 (Fix inconsistency of local blanket impls) - #93175 (Implement stable overlap check considering negative traits) - #93251 (rustdoc settings: use radio buttons for theme) - #93269 (Use error-on-mismatch policy for PAuth module flags.) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/coverageinfo/mapgen.rs')
| -rw-r--r-- | compiler/rustc_codegen_llvm/src/coverageinfo/mapgen.rs | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/compiler/rustc_codegen_llvm/src/coverageinfo/mapgen.rs b/compiler/rustc_codegen_llvm/src/coverageinfo/mapgen.rs index 32f18419753..3014d2f1930 100644 --- a/compiler/rustc_codegen_llvm/src/coverageinfo/mapgen.rs +++ b/compiler/rustc_codegen_llvm/src/coverageinfo/mapgen.rs @@ -9,6 +9,7 @@ use rustc_data_structures::fx::FxIndexSet; use rustc_hir::def::DefKind; use rustc_hir::def_id::DefIdSet; use rustc_llvm::RustString; +use rustc_middle::bug; use rustc_middle::middle::codegen_fn_attrs::CodegenFnAttrFlags; use rustc_middle::mir::coverage::CodeRegion; use rustc_middle::ty::TyCtxt; @@ -76,10 +77,18 @@ pub fn finalize<'ll, 'tcx>(cx: &CodegenCx<'ll, 'tcx>) { let coverage_mapping_buffer = llvm::build_byte_buffer(|coverage_mapping_buffer| { mapgen.write_coverage_mapping(expressions, counter_regions, coverage_mapping_buffer); }); - debug_assert!( - !coverage_mapping_buffer.is_empty(), - "Every `FunctionCoverage` should have at least one counter" - ); + + if coverage_mapping_buffer.is_empty() { + if function_coverage.is_used() { + bug!( + "A used function should have had coverage mapping data but did not: {}", + mangled_function_name + ); + } else { + debug!("unused function had no coverage mapping data: {}", mangled_function_name); + continue; + } + } function_data.push((mangled_function_name, source_hash, is_used, coverage_mapping_buffer)); } |
