@@ -149,7 +149,7 @@ fn create_mappings<'tcx>(
149149 true_term : term_for_bcb ( true_bcb) ,
150150 false_term : term_for_bcb ( false_bcb) ,
151151 } ,
152- BcbMappingKind :: MCDCBranch { true_bcb, false_bcb, condition_info } => {
152+ BcbMappingKind :: MCDCBranch { true_bcb, false_bcb, condition_info, .. } => {
153153 MappingKind :: MCDCBranch {
154154 true_term : term_for_bcb ( true_bcb) ,
155155 false_term : term_for_bcb ( false_bcb) ,
@@ -232,38 +232,42 @@ fn inject_mcdc_statements<'tcx>(
232232 }
233233
234234 // Inject test vector update first because `inject_statement` always insert new statement at head.
235- for ( end_bcbs, bitmap_idx) in
235+ for ( end_bcbs, bitmap_idx, decision_depth ) in
236236 coverage_spans. all_bcb_mappings ( ) . filter_map ( |mapping| match & mapping. kind {
237- BcbMappingKind :: MCDCDecision { end_bcbs, bitmap_idx, .. } => {
238- Some ( ( end_bcbs, * bitmap_idx) )
237+ BcbMappingKind :: MCDCDecision { end_bcbs, bitmap_idx, decision_depth , .. } => {
238+ Some ( ( end_bcbs, * bitmap_idx, * decision_depth ) )
239239 }
240240 _ => None ,
241241 } )
242242 {
243243 for end in end_bcbs {
244244 let end_bb = basic_coverage_blocks[ * end] . leader_bb ( ) ;
245- inject_statement ( mir_body, CoverageKind :: TestVectorBitmapUpdate { bitmap_idx } , end_bb) ;
245+ inject_statement (
246+ mir_body,
247+ CoverageKind :: TestVectorBitmapUpdate { bitmap_idx, decision_depth } ,
248+ end_bb,
249+ ) ;
246250 }
247251 }
248252
249- for ( true_bcb, false_bcb, condition_id) in
253+ for ( true_bcb, false_bcb, condition_id, decision_depth ) in
250254 coverage_spans. all_bcb_mappings ( ) . filter_map ( |mapping| match mapping. kind {
251- BcbMappingKind :: MCDCBranch { true_bcb, false_bcb, condition_info } => {
252- Some ( ( true_bcb, false_bcb, condition_info. condition_id ) )
255+ BcbMappingKind :: MCDCBranch { true_bcb, false_bcb, condition_info, decision_depth } => {
256+ Some ( ( true_bcb, false_bcb, condition_info. condition_id , decision_depth ) )
253257 }
254258 _ => None ,
255259 } )
256260 {
257261 let true_bb = basic_coverage_blocks[ true_bcb] . leader_bb ( ) ;
258262 inject_statement (
259263 mir_body,
260- CoverageKind :: CondBitmapUpdate { id : condition_id, value : true } ,
264+ CoverageKind :: CondBitmapUpdate { id : condition_id, value : true , decision_depth } ,
261265 true_bb,
262266 ) ;
263267 let false_bb = basic_coverage_blocks[ false_bcb] . leader_bb ( ) ;
264268 inject_statement (
265269 mir_body,
266- CoverageKind :: CondBitmapUpdate { id : condition_id, value : false } ,
270+ CoverageKind :: CondBitmapUpdate { id : condition_id, value : false , decision_depth } ,
267271 false_bb,
268272 ) ;
269273 }
0 commit comments