diff options
| author | zhuyunxing <zhuyunxing.zyx@alibaba-inc.com> | 2024-04-19 10:58:16 +0800 |
|---|---|---|
| committer | Deltalice <deltalice@outlook.com> | 2024-04-20 00:34:40 +0800 |
| commit | 439dbfa1ecb1b45db0acc728094d6e8ed3dc3080 (patch) | |
| tree | 68f3b3352a9b056c0339786116390db4afe756c1 /compiler/rustc_mir_transform/src | |
| parent | cf6b6cb2b4d6e1d4b1d7ec9daa2debf075bd7ed6 (diff) | |
coverage. Lowering MC/DC statements to llvm-ir
Diffstat (limited to 'compiler/rustc_mir_transform/src')
| -rw-r--r-- | compiler/rustc_mir_transform/src/coverage/query.rs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/compiler/rustc_mir_transform/src/coverage/query.rs b/compiler/rustc_mir_transform/src/coverage/query.rs index 65715253647..f77ee63d02c 100644 --- a/compiler/rustc_mir_transform/src/coverage/query.rs +++ b/compiler/rustc_mir_transform/src/coverage/query.rs @@ -61,7 +61,17 @@ fn coverage_ids_info<'tcx>( .max() .unwrap_or(CounterId::ZERO); - CoverageIdsInfo { max_counter_id } + let mcdc_bitmap_bytes = mir_body + .coverage_branch_info + .as_deref() + .map(|info| { + info.mcdc_decision_spans + .iter() + .fold(0, |acc, decision| acc + (1_u32 << decision.conditions_num).div_ceil(8)) + }) + .unwrap_or_default(); + + CoverageIdsInfo { max_counter_id, mcdc_bitmap_bytes } } fn all_coverage_in_mir_body<'a, 'tcx>( |
