Skip to content

Commit ec6fc95

Browse files
committed
coverage: Remove some dead code from MC/DC branch mapping conversion
1 parent 8a6e06f commit ec6fc95

File tree

1 file changed

+13
-19
lines changed
  • compiler/rustc_mir_transform/src/coverage

1 file changed

+13
-19
lines changed

compiler/rustc_mir_transform/src/coverage/mod.rs

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,12 @@ fn create_mappings(
180180
));
181181

182182
for (decision, branches) in mcdc_mappings {
183-
let num_conditions = branches.len() as u16;
183+
// FIXME(#134497): Previously it was possible for some of these branch
184+
// conversions to fail, in which case the remaining branches in the
185+
// decision would be degraded to plain `MappingKind::Branch`.
186+
// The changes in #134497 made that failure impossible, because the
187+
// fallible step was deferred to codegen. But the corresponding code
188+
// in codegen wasn't updated to detect the need for a degrade step.
184189
let conditions = branches
185190
.into_iter()
186191
.map(
@@ -206,24 +211,13 @@ fn create_mappings(
206211
)
207212
.collect::<Vec<_>>();
208213

209-
if conditions.len() == num_conditions as usize {
210-
// LLVM requires end index for counter mapping regions.
211-
let kind = MappingKind::MCDCDecision(DecisionInfo {
212-
bitmap_idx: (decision.bitmap_idx + decision.num_test_vectors) as u32,
213-
num_conditions,
214-
});
215-
let span = decision.span;
216-
mappings.extend(std::iter::once(Mapping { kind, span }).chain(conditions.into_iter()));
217-
} else {
218-
mappings.extend(conditions.into_iter().map(|mapping| {
219-
let MappingKind::MCDCBranch { true_term, false_term, mcdc_params: _ } =
220-
mapping.kind
221-
else {
222-
unreachable!("all mappings here are MCDCBranch as shown above");
223-
};
224-
Mapping { kind: MappingKind::Branch { true_term, false_term }, span: mapping.span }
225-
}))
226-
}
214+
// LLVM requires end index for counter mapping regions.
215+
let kind = MappingKind::MCDCDecision(DecisionInfo {
216+
bitmap_idx: (decision.bitmap_idx + decision.num_test_vectors) as u32,
217+
num_conditions: u16::try_from(conditions.len()).unwrap(),
218+
});
219+
let span = decision.span;
220+
mappings.extend(std::iter::once(Mapping { kind, span }).chain(conditions.into_iter()));
227221
}
228222

229223
mappings

0 commit comments

Comments
 (0)