From acd64fa0d9e5c17de02a5b2a592163a377e33bcc Mon Sep 17 00:00:00 2001 From: zhuyunxing Date: Tue, 9 Jul 2024 16:14:14 +0800 Subject: coverage. Warn about too many test vectors --- compiler/rustc_mir_transform/src/coverage/mappings.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'compiler/rustc_mir_transform/src/coverage') diff --git a/compiler/rustc_mir_transform/src/coverage/mappings.rs b/compiler/rustc_mir_transform/src/coverage/mappings.rs index c20f7a6f326..bc86ae22a0d 100644 --- a/compiler/rustc_mir_transform/src/coverage/mappings.rs +++ b/compiler/rustc_mir_transform/src/coverage/mappings.rs @@ -15,6 +15,7 @@ use crate::coverage::ExtractedHirInfo; use crate::coverage::graph::{BasicCoverageBlock, CoverageGraph, START_BCB}; use crate::coverage::spans::extract_refined_covspans; use crate::coverage::unexpand::unexpand_into_body_span; +use crate::errors::MCDCExceedsTestVectorLimit; /// Associates an ordinary executable code span with its corresponding BCB. #[derive(Debug)] @@ -108,6 +109,7 @@ pub(super) fn extract_all_mapping_info_from_mir<'tcx>( extract_mcdc_mappings( mir_body, + tcx, hir_info.body_span, basic_coverage_blocks, &mut mcdc_bitmap_bits, @@ -239,6 +241,7 @@ pub(super) fn extract_branch_pairs( pub(super) fn extract_mcdc_mappings( mir_body: &mir::Body<'_>, + tcx: TyCtxt<'_>, body_span: Span, basic_coverage_blocks: &CoverageGraph, mcdc_bitmap_bits: &mut usize, @@ -312,7 +315,10 @@ pub(super) fn extract_mcdc_mappings( } let num_test_vectors = calc_test_vectors_index(&mut branch_mappings); let Some(bitmap_idx) = get_bitmap_idx(num_test_vectors) else { - // TODO warn about bitmap + tcx.dcx().emit_warn(MCDCExceedsTestVectorLimit { + span: decision_span, + max_num_test_vectors: MCDC_MAX_BITMAP_SIZE, + }); mcdc_degraded_branches.extend(branch_mappings); return None; }; -- cgit 1.4.1-3-g733a5