Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit f5541e0

Browse files
committedDec 6, 2024·
coverage: Prefer to visit nodes whose predecessors have been visited
1 parent 706141b commit f5541e0

25 files changed

+908
-1222
lines changed
 

‎compiler/rustc_mir_transform/src/coverage/counters.rs

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use rustc_index::bit_set::BitSet;
99
use rustc_middle::mir::coverage::{CounterId, CovTerm, Expression, ExpressionId, Op};
1010
use tracing::{debug, debug_span, instrument};
1111

12-
use crate::coverage::graph::{BasicCoverageBlock, CoverageGraph, TraverseCoverageGraphWithLoops};
12+
use crate::coverage::graph::{BasicCoverageBlock, CoverageGraph, ReadyFirstTraversal};
1313

1414
#[cfg(test)]
1515
mod tests;
@@ -236,23 +236,12 @@ impl<'a> CountersBuilder<'a> {
236236

237237
// Traverse the coverage graph, ensuring that every node that needs a
238238
// coverage counter has one.
239-
//
240-
// The traversal tries to ensure that, when a loop is encountered, all
241-
// nodes within the loop are visited before visiting any nodes outside
242-
// the loop.
243-
let mut traversal = TraverseCoverageGraphWithLoops::new(self.graph);
244-
while let Some(bcb) = traversal.next() {
239+
for bcb in ReadyFirstTraversal::new(self.graph) {
245240
let _span = debug_span!("traversal", ?bcb).entered();
246241
if self.bcb_needs_counter.contains(bcb) {
247242
self.make_node_counter_and_out_edge_counters(bcb);
248243
}
249244
}
250-
251-
assert!(
252-
traversal.is_complete(),
253-
"`TraverseCoverageGraphWithLoops` missed some `BasicCoverageBlock`s: {:?}",
254-
traversal.unvisited(),
255-
);
256245
}
257246

258247
/// Make sure the given node has a node counter, and then make sure each of

‎compiler/rustc_mir_transform/src/coverage/graph.rs

Lines changed: 123 additions & 133 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ use rustc_data_structures::graph::dominators::Dominators;
99
use rustc_data_structures::graph::{self, DirectedGraph, StartNode};
1010
use rustc_index::IndexVec;
1111
use rustc_index::bit_set::BitSet;
12-
use rustc_middle::bug;
1312
use rustc_middle::mir::{self, BasicBlock, Terminator, TerminatorKind};
1413
use tracing::debug;
1514

@@ -462,138 +461,6 @@ fn bcb_filtered_successors<'a, 'tcx>(terminator: &'a Terminator<'tcx>) -> Covera
462461
CoverageSuccessors { targets, is_yield }
463462
}
464463

465-
/// Maintains separate worklists for each loop in the BasicCoverageBlock CFG, plus one for the
466-
/// CoverageGraph outside all loops. This supports traversing the BCB CFG in a way that
467-
/// ensures a loop is completely traversed before processing Blocks after the end of the loop.
468-
#[derive(Debug)]
469-
struct TraversalContext {
470-
/// BCB with one or more incoming loop backedges, indicating which loop
471-
/// this context is for.
472-
///
473-
/// If `None`, this is the non-loop context for the function as a whole.
474-
loop_header: Option<BasicCoverageBlock>,
475-
476-
/// Worklist of BCBs to be processed in this context.
477-
worklist: VecDeque<BasicCoverageBlock>,
478-
}
479-
480-
pub(crate) struct TraverseCoverageGraphWithLoops<'a> {
481-
basic_coverage_blocks: &'a CoverageGraph,
482-
483-
context_stack: Vec<TraversalContext>,
484-
visited: BitSet<BasicCoverageBlock>,
485-
}
486-
487-
impl<'a> TraverseCoverageGraphWithLoops<'a> {
488-
pub(crate) fn new(basic_coverage_blocks: &'a CoverageGraph) -> Self {
489-
let worklist = VecDeque::from([basic_coverage_blocks.start_node()]);
490-
let context_stack = vec![TraversalContext { loop_header: None, worklist }];
491-
492-
// `context_stack` starts with a `TraversalContext` for the main function context (beginning
493-
// with the `start` BasicCoverageBlock of the function). New worklists are pushed to the top
494-
// of the stack as loops are entered, and popped off of the stack when a loop's worklist is
495-
// exhausted.
496-
let visited = BitSet::new_empty(basic_coverage_blocks.num_nodes());
497-
Self { basic_coverage_blocks, context_stack, visited }
498-
}
499-
500-
pub(crate) fn next(&mut self) -> Option<BasicCoverageBlock> {
501-
debug!(
502-
"TraverseCoverageGraphWithLoops::next - context_stack: {:?}",
503-
self.context_stack.iter().rev().collect::<Vec<_>>()
504-
);
505-
506-
while let Some(context) = self.context_stack.last_mut() {
507-
let Some(bcb) = context.worklist.pop_front() else {
508-
// This stack level is exhausted; pop it and try the next one.
509-
self.context_stack.pop();
510-
continue;
511-
};
512-
513-
if !self.visited.insert(bcb) {
514-
debug!("Already visited: {bcb:?}");
515-
continue;
516-
}
517-
debug!("Visiting {bcb:?}");
518-
519-
if self.basic_coverage_blocks.is_loop_header.contains(bcb) {
520-
debug!("{bcb:?} is a loop header! Start a new TraversalContext...");
521-
self.context_stack
522-
.push(TraversalContext { loop_header: Some(bcb), worklist: VecDeque::new() });
523-
}
524-
self.add_successors_to_worklists(bcb);
525-
return Some(bcb);
526-
}
527-
528-
None
529-
}
530-
531-
fn add_successors_to_worklists(&mut self, bcb: BasicCoverageBlock) {
532-
let successors = &self.basic_coverage_blocks.successors[bcb];
533-
debug!("{:?} has {} successors:", bcb, successors.len());
534-
535-
for &successor in successors {
536-
if successor == bcb {
537-
debug!(
538-
"{:?} has itself as its own successor. (Note, the compiled code will \
539-
generate an infinite loop.)",
540-
bcb
541-
);
542-
// Don't re-add this successor to the worklist. We are already processing it.
543-
// FIXME: This claims to skip just the self-successor, but it actually skips
544-
// all other successors as well. Does that matter?
545-
break;
546-
}
547-
548-
// Add successors of the current BCB to the appropriate context. Successors that
549-
// stay within a loop are added to the BCBs context worklist. Successors that
550-
// exit the loop (they are not dominated by the loop header) must be reachable
551-
// from other BCBs outside the loop, and they will be added to a different
552-
// worklist.
553-
//
554-
// Branching blocks (with more than one successor) must be processed before
555-
// blocks with only one successor, to prevent unnecessarily complicating
556-
// `Expression`s by creating a Counter in a `BasicCoverageBlock` that the
557-
// branching block would have given an `Expression` (or vice versa).
558-
559-
let context = self
560-
.context_stack
561-
.iter_mut()
562-
.rev()
563-
.find(|context| match context.loop_header {
564-
Some(loop_header) => {
565-
self.basic_coverage_blocks.dominates(loop_header, successor)
566-
}
567-
None => true,
568-
})
569-
.unwrap_or_else(|| bug!("should always fall back to the root non-loop context"));
570-
debug!("adding to worklist for {:?}", context.loop_header);
571-
572-
// FIXME: The code below had debug messages claiming to add items to a
573-
// particular end of the worklist, but was confused about which end was
574-
// which. The existing behaviour has been preserved for now, but it's
575-
// unclear what the intended behaviour was.
576-
577-
if self.basic_coverage_blocks.successors[successor].len() > 1 {
578-
context.worklist.push_back(successor);
579-
} else {
580-
context.worklist.push_front(successor);
581-
}
582-
}
583-
}
584-
585-
pub(crate) fn is_complete(&self) -> bool {
586-
self.visited.count() == self.visited.domain_size()
587-
}
588-
589-
pub(crate) fn unvisited(&self) -> Vec<BasicCoverageBlock> {
590-
let mut unvisited_set: BitSet<BasicCoverageBlock> =
591-
BitSet::new_filled(self.visited.domain_size());
592-
unvisited_set.subtract(&self.visited);
593-
unvisited_set.iter().collect::<Vec<_>>()
594-
}
595-
}
596-
597464
/// Wrapper around a [`mir::BasicBlocks`] graph that restricts each node's
598465
/// successors to only the ones considered "relevant" when building a coverage
599466
/// graph.
@@ -622,3 +489,126 @@ impl<'a, 'tcx> graph::Successors for CoverageRelevantSubgraph<'a, 'tcx> {
622489
self.coverage_successors(bb).into_iter()
623490
}
624491
}
492+
493+
/// State of a node in the coverage graph during ready-first traversal.
494+
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord)]
495+
enum ReadyState {
496+
/// This node has not yet been added to the fallback queue or ready queue.
497+
Unqueued,
498+
/// This node is currently in the fallback queue.
499+
InFallbackQueue,
500+
/// This node's predecessors have all been visited, so it is in the ready queue.
501+
/// (It might also have a stale entry in the fallback queue.)
502+
InReadyQueue,
503+
/// This node has been visited.
504+
/// (It might also have a stale entry in the fallback queue.)
505+
Visited,
506+
}
507+
508+
/// Iterator that visits nodes in the coverage graph, in an order that always
509+
/// prefers "ready" nodes whose predecessors have already been visited.
510+
pub(crate) struct ReadyFirstTraversal<'a> {
511+
graph: &'a CoverageGraph,
512+
513+
/// For each node, the number of its predecessor nodes that haven't been visited yet.
514+
n_unvisited_preds: IndexVec<BasicCoverageBlock, u32>,
515+
/// Indicates whether a node has been visited, or which queue it is in.
516+
state: IndexVec<BasicCoverageBlock, ReadyState>,
517+
518+
/// Holds unvisited nodes whose predecessors have all been visited.
519+
ready_queue: VecDeque<BasicCoverageBlock>,
520+
/// Holds unvisited nodes with some unvisited predecessors.
521+
/// Also contains stale entries for nodes that were upgraded to ready.
522+
fallback_queue: VecDeque<BasicCoverageBlock>,
523+
}
524+
525+
impl<'a> ReadyFirstTraversal<'a> {
526+
pub(crate) fn new(graph: &'a CoverageGraph) -> Self {
527+
let num_nodes = graph.num_nodes();
528+
529+
let n_unvisited_preds =
530+
IndexVec::from_fn_n(|node| graph.predecessors[node].len() as u32, num_nodes);
531+
let mut state = IndexVec::from_elem_n(ReadyState::Unqueued, num_nodes);
532+
533+
// We know from coverage graph construction that the start node is the
534+
// only node with no predecessors.
535+
debug_assert!(
536+
n_unvisited_preds.iter_enumerated().all(|(node, &n)| (node == START_BCB) == (n == 0))
537+
);
538+
let ready_queue = VecDeque::from(vec![START_BCB]);
539+
state[START_BCB] = ReadyState::InReadyQueue;
540+
541+
Self { graph, state, n_unvisited_preds, ready_queue, fallback_queue: VecDeque::new() }
542+
}
543+
544+
/// Returns the next node from the ready queue, or else the next unvisited
545+
/// node from the fallback queue.
546+
fn next_inner(&mut self) -> Option<BasicCoverageBlock> {
547+
// Always prefer to yield a ready node if possible.
548+
if let Some(node) = self.ready_queue.pop_front() {
549+
assert_eq!(self.state[node], ReadyState::InReadyQueue);
550+
return Some(node);
551+
}
552+
553+
while let Some(node) = self.fallback_queue.pop_front() {
554+
match self.state[node] {
555+
// This entry in the fallback queue is not stale, so yield it.
556+
ReadyState::InFallbackQueue => return Some(node),
557+
// This node was added to the fallback queue, but later became
558+
// ready and was visited via the ready queue. Ignore it here.
559+
ReadyState::Visited => {}
560+
// Unqueued nodes can't be in the fallback queue, by definition.
561+
// We know that the ready queue is empty at this point.
562+
ReadyState::Unqueued | ReadyState::InReadyQueue => unreachable!(
563+
"unexpected state for {node:?} in the fallback queue: {:?}",
564+
self.state[node]
565+
),
566+
}
567+
}
568+
569+
None
570+
}
571+
572+
fn mark_visited_and_enqueue_successors(&mut self, node: BasicCoverageBlock) {
573+
assert!(self.state[node] < ReadyState::Visited);
574+
self.state[node] = ReadyState::Visited;
575+
576+
// For each of this node's successors, decrease the successor's
577+
// "unvisited predecessors" count, and enqueue it if appropriate.
578+
for &succ in &self.graph.successors[node] {
579+
let is_unqueued = match self.state[succ] {
580+
ReadyState::Unqueued => true,
581+
ReadyState::InFallbackQueue => false,
582+
ReadyState::InReadyQueue => {
583+
unreachable!("nodes in the ready queue have no unvisited predecessors")
584+
}
585+
// The successor was already visited via one of its other predecessors.
586+
ReadyState::Visited => continue,
587+
};
588+
589+
self.n_unvisited_preds[succ] -= 1;
590+
if self.n_unvisited_preds[succ] == 0 {
591+
// This node's predecessors have all been visited, so add it to
592+
// the ready queue. If it's already in the fallback queue, that
593+
// fallback entry will be ignored later.
594+
self.state[succ] = ReadyState::InReadyQueue;
595+
self.ready_queue.push_back(succ);
596+
} else if is_unqueued {
597+
// This node has unvisited predecessors, so add it to the
598+
// fallback queue in case we run out of ready nodes later.
599+
self.state[succ] = ReadyState::InFallbackQueue;
600+
self.fallback_queue.push_back(succ);
601+
}
602+
}
603+
}
604+
}
605+
606+
impl<'a> Iterator for ReadyFirstTraversal<'a> {
607+
type Item = BasicCoverageBlock;
608+
609+
fn next(&mut self) -> Option<Self::Item> {
610+
let node = self.next_inner()?;
611+
self.mark_visited_and_enqueue_successors(node);
612+
Some(node)
613+
}
614+
}

‎tests/coverage/branch/guard.cov-map

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,37 @@
11
Function name: guard::branch_match_guard
2-
Raw bytes (85): 0x[01, 01, 06, 19, 0d, 05, 09, 0f, 15, 13, 11, 17, 0d, 05, 09, 0d, 01, 0c, 01, 01, 10, 02, 03, 0b, 00, 0c, 15, 01, 14, 02, 0a, 0d, 03, 0e, 00, 0f, 19, 00, 14, 00, 19, 20, 0d, 02, 00, 14, 00, 1e, 0d, 00, 1d, 02, 0a, 11, 03, 0e, 00, 0f, 02, 00, 14, 00, 19, 20, 11, 05, 00, 14, 00, 1e, 11, 00, 1d, 02, 0a, 17, 03, 0e, 02, 0a, 0b, 04, 01, 00, 02]
2+
Raw bytes (89): 0x[01, 01, 08, 05, 0d, 05, 17, 0d, 11, 1f, 17, 05, 09, 0d, 11, 1f, 15, 05, 09, 0d, 01, 0c, 01, 01, 10, 02, 03, 0b, 00, 0c, 15, 01, 14, 02, 0a, 0d, 03, 0e, 00, 0f, 05, 00, 14, 00, 19, 20, 0d, 02, 00, 14, 00, 1e, 0d, 00, 1d, 02, 0a, 11, 03, 0e, 00, 0f, 02, 00, 14, 00, 19, 20, 11, 06, 00, 14, 00, 1e, 11, 00, 1d, 02, 0a, 0e, 03, 0e, 02, 0a, 1b, 04, 01, 00, 02]
33
Number of files: 1
44
- file 0 => global file 1
5-
Number of expressions: 6
6-
- expression 0 operands: lhs = Counter(6), rhs = Counter(3)
7-
- expression 1 operands: lhs = Counter(1), rhs = Counter(2)
8-
- expression 2 operands: lhs = Expression(3, Add), rhs = Counter(5)
9-
- expression 3 operands: lhs = Expression(4, Add), rhs = Counter(4)
10-
- expression 4 operands: lhs = Expression(5, Add), rhs = Counter(3)
11-
- expression 5 operands: lhs = Counter(1), rhs = Counter(2)
5+
Number of expressions: 8
6+
- expression 0 operands: lhs = Counter(1), rhs = Counter(3)
7+
- expression 1 operands: lhs = Counter(1), rhs = Expression(5, Add)
8+
- expression 2 operands: lhs = Counter(3), rhs = Counter(4)
9+
- expression 3 operands: lhs = Expression(7, Add), rhs = Expression(5, Add)
10+
- expression 4 operands: lhs = Counter(1), rhs = Counter(2)
11+
- expression 5 operands: lhs = Counter(3), rhs = Counter(4)
12+
- expression 6 operands: lhs = Expression(7, Add), rhs = Counter(5)
13+
- expression 7 operands: lhs = Counter(1), rhs = Counter(2)
1214
Number of file 0 mappings: 13
1315
- Code(Counter(0)) at (prev + 12, 1) to (start + 1, 16)
1416
- Code(Expression(0, Sub)) at (prev + 3, 11) to (start + 0, 12)
15-
= (c6 - c3)
17+
= (c1 - c3)
1618
- Code(Counter(5)) at (prev + 1, 20) to (start + 2, 10)
1719
- Code(Counter(3)) at (prev + 3, 14) to (start + 0, 15)
18-
- Code(Counter(6)) at (prev + 0, 20) to (start + 0, 25)
20+
- Code(Counter(1)) at (prev + 0, 20) to (start + 0, 25)
1921
- Branch { true: Counter(3), false: Expression(0, Sub) } at (prev + 0, 20) to (start + 0, 30)
2022
true = c3
21-
false = (c6 - c3)
23+
false = (c1 - c3)
2224
- Code(Counter(3)) at (prev + 0, 29) to (start + 2, 10)
2325
- Code(Counter(4)) at (prev + 3, 14) to (start + 0, 15)
2426
- Code(Expression(0, Sub)) at (prev + 0, 20) to (start + 0, 25)
25-
= (c6 - c3)
26-
- Branch { true: Counter(4), false: Counter(1) } at (prev + 0, 20) to (start + 0, 30)
27+
= (c1 - c3)
28+
- Branch { true: Counter(4), false: Expression(1, Sub) } at (prev + 0, 20) to (start + 0, 30)
2729
true = c4
28-
false = c1
30+
false = (c1 - (c3 + c4))
2931
- Code(Counter(4)) at (prev + 0, 29) to (start + 2, 10)
30-
- Code(Expression(5, Add)) at (prev + 3, 14) to (start + 2, 10)
31-
= (c1 + c2)
32-
- Code(Expression(2, Add)) at (prev + 4, 1) to (start + 0, 2)
33-
= ((((c1 + c2) + c3) + c4) + c5)
34-
Highest counter ID seen: c6
32+
- Code(Expression(3, Sub)) at (prev + 3, 14) to (start + 2, 10)
33+
= ((c1 + c2) - (c3 + c4))
34+
- Code(Expression(6, Add)) at (prev + 4, 1) to (start + 0, 2)
35+
= ((c1 + c2) + c5)
36+
Highest counter ID seen: c5
3537

‎tests/coverage/branch/if-let.cov-map

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,18 @@ Number of file 0 mappings: 7
1919
Highest counter ID seen: c2
2020

2121
Function name: if_let::if_let_chain
22-
Raw bytes (66): 0x[01, 01, 04, 01, 05, 05, 09, 0f, 0d, 05, 09, 0a, 01, 17, 01, 00, 33, 20, 02, 05, 01, 0c, 00, 13, 02, 00, 11, 00, 12, 01, 00, 16, 00, 17, 20, 0d, 09, 01, 10, 00, 17, 0d, 00, 15, 00, 16, 02, 00, 1a, 00, 1b, 0d, 01, 05, 03, 06, 0f, 03, 0c, 02, 06, 0b, 03, 05, 01, 02]
22+
Raw bytes (74): 0x[01, 01, 08, 01, 05, 01, 1f, 05, 09, 01, 1f, 05, 09, 01, 1f, 05, 09, 05, 09, 0a, 01, 17, 01, 00, 33, 20, 02, 05, 01, 0c, 00, 13, 02, 00, 11, 00, 12, 01, 00, 16, 00, 17, 20, 16, 09, 01, 10, 00, 17, 16, 00, 15, 00, 16, 02, 00, 1a, 00, 1b, 16, 01, 05, 03, 06, 1f, 03, 0c, 02, 06, 01, 03, 05, 01, 02]
2323
Number of files: 1
2424
- file 0 => global file 1
25-
Number of expressions: 4
25+
Number of expressions: 8
2626
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
27-
- expression 1 operands: lhs = Counter(1), rhs = Counter(2)
28-
- expression 2 operands: lhs = Expression(3, Add), rhs = Counter(3)
29-
- expression 3 operands: lhs = Counter(1), rhs = Counter(2)
27+
- expression 1 operands: lhs = Counter(0), rhs = Expression(7, Add)
28+
- expression 2 operands: lhs = Counter(1), rhs = Counter(2)
29+
- expression 3 operands: lhs = Counter(0), rhs = Expression(7, Add)
30+
- expression 4 operands: lhs = Counter(1), rhs = Counter(2)
31+
- expression 5 operands: lhs = Counter(0), rhs = Expression(7, Add)
32+
- expression 6 operands: lhs = Counter(1), rhs = Counter(2)
33+
- expression 7 operands: lhs = Counter(1), rhs = Counter(2)
3034
Number of file 0 mappings: 10
3135
- Code(Counter(0)) at (prev + 23, 1) to (start + 0, 51)
3236
- Branch { true: Expression(0, Sub), false: Counter(1) } at (prev + 1, 12) to (start + 0, 19)
@@ -35,16 +39,17 @@ Number of file 0 mappings: 10
3539
- Code(Expression(0, Sub)) at (prev + 0, 17) to (start + 0, 18)
3640
= (c0 - c1)
3741
- Code(Counter(0)) at (prev + 0, 22) to (start + 0, 23)
38-
- Branch { true: Counter(3), false: Counter(2) } at (prev + 1, 16) to (start + 0, 23)
39-
true = c3
42+
- Branch { true: Expression(5, Sub), false: Counter(2) } at (prev + 1, 16) to (start + 0, 23)
43+
true = (c0 - (c1 + c2))
4044
false = c2
41-
- Code(Counter(3)) at (prev + 0, 21) to (start + 0, 22)
45+
- Code(Expression(5, Sub)) at (prev + 0, 21) to (start + 0, 22)
46+
= (c0 - (c1 + c2))
4247
- Code(Expression(0, Sub)) at (prev + 0, 26) to (start + 0, 27)
4348
= (c0 - c1)
44-
- Code(Counter(3)) at (prev + 1, 5) to (start + 3, 6)
45-
- Code(Expression(3, Add)) at (prev + 3, 12) to (start + 2, 6)
49+
- Code(Expression(5, Sub)) at (prev + 1, 5) to (start + 3, 6)
50+
= (c0 - (c1 + c2))
51+
- Code(Expression(7, Add)) at (prev + 3, 12) to (start + 2, 6)
4652
= (c1 + c2)
47-
- Code(Expression(2, Add)) at (prev + 3, 5) to (start + 1, 2)
48-
= ((c1 + c2) + c3)
49-
Highest counter ID seen: c3
53+
- Code(Counter(0)) at (prev + 3, 5) to (start + 1, 2)
54+
Highest counter ID seen: c2
5055

‎tests/coverage/branch/if.cov-map

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,26 @@
11
Function name: if::branch_and
2-
Raw bytes (60): 0x[01, 01, 06, 05, 09, 0b, 09, 05, 11, 13, 09, 17, 11, 05, 0d, 08, 01, 2b, 01, 01, 10, 05, 03, 08, 00, 09, 20, 09, 02, 00, 08, 00, 09, 09, 00, 0d, 00, 0e, 20, 0d, 11, 00, 0d, 00, 0e, 0d, 00, 0f, 02, 06, 06, 02, 0c, 02, 06, 0e, 03, 01, 00, 02]
2+
Raw bytes (54): 0x[01, 01, 03, 05, 09, 09, 0d, 05, 0d, 08, 01, 2b, 01, 01, 10, 05, 03, 08, 00, 09, 20, 09, 02, 00, 08, 00, 09, 09, 00, 0d, 00, 0e, 20, 0d, 06, 00, 0d, 00, 0e, 0d, 00, 0f, 02, 06, 0a, 02, 0c, 02, 06, 05, 03, 01, 00, 02]
33
Number of files: 1
44
- file 0 => global file 1
5-
Number of expressions: 6
5+
Number of expressions: 3
66
- expression 0 operands: lhs = Counter(1), rhs = Counter(2)
7-
- expression 1 operands: lhs = Expression(2, Add), rhs = Counter(2)
8-
- expression 2 operands: lhs = Counter(1), rhs = Counter(4)
9-
- expression 3 operands: lhs = Expression(4, Add), rhs = Counter(2)
10-
- expression 4 operands: lhs = Expression(5, Add), rhs = Counter(4)
11-
- expression 5 operands: lhs = Counter(1), rhs = Counter(3)
7+
- expression 1 operands: lhs = Counter(2), rhs = Counter(3)
8+
- expression 2 operands: lhs = Counter(1), rhs = Counter(3)
129
Number of file 0 mappings: 8
1310
- Code(Counter(0)) at (prev + 43, 1) to (start + 1, 16)
1411
- Code(Counter(1)) at (prev + 3, 8) to (start + 0, 9)
1512
- Branch { true: Counter(2), false: Expression(0, Sub) } at (prev + 0, 8) to (start + 0, 9)
1613
true = c2
1714
false = (c1 - c2)
1815
- Code(Counter(2)) at (prev + 0, 13) to (start + 0, 14)
19-
- Branch { true: Counter(3), false: Counter(4) } at (prev + 0, 13) to (start + 0, 14)
16+
- Branch { true: Counter(3), false: Expression(1, Sub) } at (prev + 0, 13) to (start + 0, 14)
2017
true = c3
21-
false = c4
18+
false = (c2 - c3)
2219
- Code(Counter(3)) at (prev + 0, 15) to (start + 2, 6)
23-
- Code(Expression(1, Sub)) at (prev + 2, 12) to (start + 2, 6)
24-
= ((c1 + c4) - c2)
25-
- Code(Expression(3, Sub)) at (prev + 3, 1) to (start + 0, 2)
26-
= (((c1 + c3) + c4) - c2)
27-
Highest counter ID seen: c4
20+
- Code(Expression(2, Sub)) at (prev + 2, 12) to (start + 2, 6)
21+
= (c1 - c3)
22+
- Code(Counter(1)) at (prev + 3, 1) to (start + 0, 2)
23+
Highest counter ID seen: c3
2824

2925
Function name: if::branch_not
3026
Raw bytes (116): 0x[01, 01, 07, 05, 09, 05, 0d, 05, 0d, 05, 11, 05, 11, 05, 15, 05, 15, 12, 01, 0c, 01, 01, 10, 05, 03, 08, 00, 09, 20, 09, 02, 00, 08, 00, 09, 09, 01, 09, 00, 11, 02, 01, 05, 00, 06, 05, 01, 08, 00, 0a, 20, 0a, 0d, 00, 08, 00, 0a, 0a, 00, 0b, 02, 06, 0d, 02, 05, 00, 06, 05, 01, 08, 00, 0b, 20, 11, 12, 00, 08, 00, 0b, 11, 00, 0c, 02, 06, 12, 02, 05, 00, 06, 05, 01, 08, 00, 0c, 20, 1a, 15, 00, 08, 00, 0c, 1a, 00, 0d, 02, 06, 15, 02, 05, 00, 06, 05, 01, 01, 00, 02]
@@ -108,14 +104,16 @@ Number of file 0 mappings: 14
108104
Highest counter ID seen: c4
109105

110106
Function name: if::branch_or
111-
Raw bytes (56): 0x[01, 01, 04, 05, 09, 09, 0d, 0f, 11, 09, 0d, 08, 01, 35, 01, 01, 10, 05, 03, 08, 00, 09, 20, 09, 02, 00, 08, 00, 09, 02, 00, 0d, 00, 0e, 20, 0d, 11, 00, 0d, 00, 0e, 0f, 00, 0f, 02, 06, 11, 02, 0c, 02, 06, 0b, 03, 01, 00, 02]
107+
Raw bytes (60): 0x[01, 01, 06, 05, 09, 05, 17, 09, 0d, 09, 0d, 05, 17, 09, 0d, 08, 01, 35, 01, 01, 10, 05, 03, 08, 00, 09, 20, 09, 02, 00, 08, 00, 09, 02, 00, 0d, 00, 0e, 20, 0d, 12, 00, 0d, 00, 0e, 17, 00, 0f, 02, 06, 12, 02, 0c, 02, 06, 05, 03, 01, 00, 02]
112108
Number of files: 1
113109
- file 0 => global file 1
114-
Number of expressions: 4
110+
Number of expressions: 6
115111
- expression 0 operands: lhs = Counter(1), rhs = Counter(2)
116-
- expression 1 operands: lhs = Counter(2), rhs = Counter(3)
117-
- expression 2 operands: lhs = Expression(3, Add), rhs = Counter(4)
112+
- expression 1 operands: lhs = Counter(1), rhs = Expression(5, Add)
113+
- expression 2 operands: lhs = Counter(2), rhs = Counter(3)
118114
- expression 3 operands: lhs = Counter(2), rhs = Counter(3)
115+
- expression 4 operands: lhs = Counter(1), rhs = Expression(5, Add)
116+
- expression 5 operands: lhs = Counter(2), rhs = Counter(3)
119117
Number of file 0 mappings: 8
120118
- Code(Counter(0)) at (prev + 53, 1) to (start + 1, 16)
121119
- Code(Counter(1)) at (prev + 3, 8) to (start + 0, 9)
@@ -124,13 +122,13 @@ Number of file 0 mappings: 8
124122
false = (c1 - c2)
125123
- Code(Expression(0, Sub)) at (prev + 0, 13) to (start + 0, 14)
126124
= (c1 - c2)
127-
- Branch { true: Counter(3), false: Counter(4) } at (prev + 0, 13) to (start + 0, 14)
125+
- Branch { true: Counter(3), false: Expression(4, Sub) } at (prev + 0, 13) to (start + 0, 14)
128126
true = c3
129-
false = c4
130-
- Code(Expression(3, Add)) at (prev + 0, 15) to (start + 2, 6)
127+
false = (c1 - (c2 + c3))
128+
- Code(Expression(5, Add)) at (prev + 0, 15) to (start + 2, 6)
131129
= (c2 + c3)
132-
- Code(Counter(4)) at (prev + 2, 12) to (start + 2, 6)
133-
- Code(Expression(2, Add)) at (prev + 3, 1) to (start + 0, 2)
134-
= ((c2 + c3) + c4)
135-
Highest counter ID seen: c4
130+
- Code(Expression(4, Sub)) at (prev + 2, 12) to (start + 2, 6)
131+
= (c1 - (c2 + c3))
132+
- Code(Counter(1)) at (prev + 3, 1) to (start + 0, 2)
133+
Highest counter ID seen: c3
136134

‎tests/coverage/branch/lazy-boolean.cov-map

Lines changed: 55 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -34,85 +34,67 @@ Number of file 0 mappings: 6
3434
Highest counter ID seen: c2
3535

3636
Function name: lazy_boolean::chain
37-
Raw bytes (169): 0x[01, 01, 1d, 5b, 0d, 5f, 15, 05, 11, 05, 09, 09, 0d, 6f, 25, 73, 21, 19, 1d, 5b, 67, 5f, 15, 05, 11, 0d, 19, 5b, 67, 5f, 15, 05, 11, 0d, 19, 5b, 63, 5f, 15, 05, 11, 67, 1d, 0d, 19, 5b, 63, 5f, 15, 05, 11, 67, 1d, 0d, 19, 6f, 25, 73, 21, 19, 1d, 13, 01, 24, 01, 01, 10, 02, 04, 09, 00, 0a, 05, 00, 0d, 00, 12, 20, 09, 0e, 00, 0d, 00, 12, 09, 00, 16, 00, 1b, 20, 0d, 12, 00, 16, 00, 1b, 0d, 00, 1f, 00, 24, 20, 11, 15, 00, 1f, 00, 24, 11, 00, 28, 00, 2d, 02, 01, 05, 00, 11, 6b, 03, 09, 00, 0a, 02, 00, 0d, 00, 12, 20, 19, 32, 00, 0d, 00, 12, 32, 00, 16, 00, 1b, 20, 1d, 56, 00, 16, 00, 1b, 56, 00, 1f, 00, 24, 20, 21, 25, 00, 1f, 00, 24, 25, 00, 28, 00, 2d, 6b, 01, 05, 01, 02]
37+
Raw bytes (141): 0x[01, 01, 0f, 05, 09, 09, 0d, 0d, 11, 05, 15, 05, 15, 05, 3b, 15, 19, 05, 3b, 15, 19, 05, 37, 3b, 1d, 15, 19, 05, 37, 3b, 1d, 15, 19, 13, 01, 24, 01, 01, 10, 05, 04, 09, 00, 0a, 05, 00, 0d, 00, 12, 20, 09, 02, 00, 0d, 00, 12, 09, 00, 16, 00, 1b, 20, 0d, 06, 00, 16, 00, 1b, 0d, 00, 1f, 00, 24, 20, 11, 0a, 00, 1f, 00, 24, 11, 00, 28, 00, 2d, 05, 01, 05, 00, 11, 05, 03, 09, 00, 0a, 05, 00, 0d, 00, 12, 20, 15, 12, 00, 0d, 00, 12, 12, 00, 16, 00, 1b, 20, 19, 1e, 00, 16, 00, 1b, 1e, 00, 1f, 00, 24, 20, 1d, 32, 00, 1f, 00, 24, 32, 00, 28, 00, 2d, 05, 01, 05, 01, 02]
3838
Number of files: 1
3939
- file 0 => global file 1
40-
Number of expressions: 29
41-
- expression 0 operands: lhs = Expression(22, Add), rhs = Counter(3)
42-
- expression 1 operands: lhs = Expression(23, Add), rhs = Counter(5)
43-
- expression 2 operands: lhs = Counter(1), rhs = Counter(4)
44-
- expression 3 operands: lhs = Counter(1), rhs = Counter(2)
45-
- expression 4 operands: lhs = Counter(2), rhs = Counter(3)
46-
- expression 5 operands: lhs = Expression(27, Add), rhs = Counter(9)
47-
- expression 6 operands: lhs = Expression(28, Add), rhs = Counter(8)
48-
- expression 7 operands: lhs = Counter(6), rhs = Counter(7)
49-
- expression 8 operands: lhs = Expression(22, Add), rhs = Expression(25, Add)
50-
- expression 9 operands: lhs = Expression(23, Add), rhs = Counter(5)
51-
- expression 10 operands: lhs = Counter(1), rhs = Counter(4)
52-
- expression 11 operands: lhs = Counter(3), rhs = Counter(6)
53-
- expression 12 operands: lhs = Expression(22, Add), rhs = Expression(25, Add)
54-
- expression 13 operands: lhs = Expression(23, Add), rhs = Counter(5)
55-
- expression 14 operands: lhs = Counter(1), rhs = Counter(4)
56-
- expression 15 operands: lhs = Counter(3), rhs = Counter(6)
57-
- expression 16 operands: lhs = Expression(22, Add), rhs = Expression(24, Add)
58-
- expression 17 operands: lhs = Expression(23, Add), rhs = Counter(5)
59-
- expression 18 operands: lhs = Counter(1), rhs = Counter(4)
60-
- expression 19 operands: lhs = Expression(25, Add), rhs = Counter(7)
61-
- expression 20 operands: lhs = Counter(3), rhs = Counter(6)
62-
- expression 21 operands: lhs = Expression(22, Add), rhs = Expression(24, Add)
63-
- expression 22 operands: lhs = Expression(23, Add), rhs = Counter(5)
64-
- expression 23 operands: lhs = Counter(1), rhs = Counter(4)
65-
- expression 24 operands: lhs = Expression(25, Add), rhs = Counter(7)
66-
- expression 25 operands: lhs = Counter(3), rhs = Counter(6)
67-
- expression 26 operands: lhs = Expression(27, Add), rhs = Counter(9)
68-
- expression 27 operands: lhs = Expression(28, Add), rhs = Counter(8)
69-
- expression 28 operands: lhs = Counter(6), rhs = Counter(7)
40+
Number of expressions: 15
41+
- expression 0 operands: lhs = Counter(1), rhs = Counter(2)
42+
- expression 1 operands: lhs = Counter(2), rhs = Counter(3)
43+
- expression 2 operands: lhs = Counter(3), rhs = Counter(4)
44+
- expression 3 operands: lhs = Counter(1), rhs = Counter(5)
45+
- expression 4 operands: lhs = Counter(1), rhs = Counter(5)
46+
- expression 5 operands: lhs = Counter(1), rhs = Expression(14, Add)
47+
- expression 6 operands: lhs = Counter(5), rhs = Counter(6)
48+
- expression 7 operands: lhs = Counter(1), rhs = Expression(14, Add)
49+
- expression 8 operands: lhs = Counter(5), rhs = Counter(6)
50+
- expression 9 operands: lhs = Counter(1), rhs = Expression(13, Add)
51+
- expression 10 operands: lhs = Expression(14, Add), rhs = Counter(7)
52+
- expression 11 operands: lhs = Counter(5), rhs = Counter(6)
53+
- expression 12 operands: lhs = Counter(1), rhs = Expression(13, Add)
54+
- expression 13 operands: lhs = Expression(14, Add), rhs = Counter(7)
55+
- expression 14 operands: lhs = Counter(5), rhs = Counter(6)
7056
Number of file 0 mappings: 19
7157
- Code(Counter(0)) at (prev + 36, 1) to (start + 1, 16)
72-
- Code(Expression(0, Sub)) at (prev + 4, 9) to (start + 0, 10)
73-
= (((c1 + c4) + c5) - c3)
58+
- Code(Counter(1)) at (prev + 4, 9) to (start + 0, 10)
7459
- Code(Counter(1)) at (prev + 0, 13) to (start + 0, 18)
75-
- Branch { true: Counter(2), false: Expression(3, Sub) } at (prev + 0, 13) to (start + 0, 18)
60+
- Branch { true: Counter(2), false: Expression(0, Sub) } at (prev + 0, 13) to (start + 0, 18)
7661
true = c2
7762
false = (c1 - c2)
7863
- Code(Counter(2)) at (prev + 0, 22) to (start + 0, 27)
79-
- Branch { true: Counter(3), false: Expression(4, Sub) } at (prev + 0, 22) to (start + 0, 27)
64+
- Branch { true: Counter(3), false: Expression(1, Sub) } at (prev + 0, 22) to (start + 0, 27)
8065
true = c3
8166
false = (c2 - c3)
8267
- Code(Counter(3)) at (prev + 0, 31) to (start + 0, 36)
83-
- Branch { true: Counter(4), false: Counter(5) } at (prev + 0, 31) to (start + 0, 36)
68+
- Branch { true: Counter(4), false: Expression(2, Sub) } at (prev + 0, 31) to (start + 0, 36)
8469
true = c4
85-
false = c5
70+
false = (c3 - c4)
8671
- Code(Counter(4)) at (prev + 0, 40) to (start + 0, 45)
87-
- Code(Expression(0, Sub)) at (prev + 1, 5) to (start + 0, 17)
88-
= (((c1 + c4) + c5) - c3)
89-
- Code(Expression(26, Add)) at (prev + 3, 9) to (start + 0, 10)
90-
= (((c6 + c7) + c8) + c9)
91-
- Code(Expression(0, Sub)) at (prev + 0, 13) to (start + 0, 18)
92-
= (((c1 + c4) + c5) - c3)
93-
- Branch { true: Counter(6), false: Expression(12, Sub) } at (prev + 0, 13) to (start + 0, 18)
72+
- Code(Counter(1)) at (prev + 1, 5) to (start + 0, 17)
73+
- Code(Counter(1)) at (prev + 3, 9) to (start + 0, 10)
74+
- Code(Counter(1)) at (prev + 0, 13) to (start + 0, 18)
75+
- Branch { true: Counter(5), false: Expression(4, Sub) } at (prev + 0, 13) to (start + 0, 18)
76+
true = c5
77+
false = (c1 - c5)
78+
- Code(Expression(4, Sub)) at (prev + 0, 22) to (start + 0, 27)
79+
= (c1 - c5)
80+
- Branch { true: Counter(6), false: Expression(7, Sub) } at (prev + 0, 22) to (start + 0, 27)
9481
true = c6
95-
false = (((c1 + c4) + c5) - (c3 + c6))
96-
- Code(Expression(12, Sub)) at (prev + 0, 22) to (start + 0, 27)
97-
= (((c1 + c4) + c5) - (c3 + c6))
98-
- Branch { true: Counter(7), false: Expression(21, Sub) } at (prev + 0, 22) to (start + 0, 27)
82+
false = (c1 - (c5 + c6))
83+
- Code(Expression(7, Sub)) at (prev + 0, 31) to (start + 0, 36)
84+
= (c1 - (c5 + c6))
85+
- Branch { true: Counter(7), false: Expression(12, Sub) } at (prev + 0, 31) to (start + 0, 36)
9986
true = c7
100-
false = (((c1 + c4) + c5) - ((c3 + c6) + c7))
101-
- Code(Expression(21, Sub)) at (prev + 0, 31) to (start + 0, 36)
102-
= (((c1 + c4) + c5) - ((c3 + c6) + c7))
103-
- Branch { true: Counter(8), false: Counter(9) } at (prev + 0, 31) to (start + 0, 36)
104-
true = c8
105-
false = c9
106-
- Code(Counter(9)) at (prev + 0, 40) to (start + 0, 45)
107-
- Code(Expression(26, Add)) at (prev + 1, 5) to (start + 1, 2)
108-
= (((c6 + c7) + c8) + c9)
109-
Highest counter ID seen: c9
87+
false = (c1 - ((c5 + c6) + c7))
88+
- Code(Expression(12, Sub)) at (prev + 0, 40) to (start + 0, 45)
89+
= (c1 - ((c5 + c6) + c7))
90+
- Code(Counter(1)) at (prev + 1, 5) to (start + 1, 2)
91+
Highest counter ID seen: c7
11092

11193
Function name: lazy_boolean::nested_mixed
112-
Raw bytes (141): 0x[01, 01, 0f, 05, 09, 05, 1f, 09, 0d, 09, 0d, 1f, 11, 09, 0d, 1f, 11, 09, 0d, 3b, 21, 19, 1d, 05, 15, 15, 19, 05, 19, 3b, 21, 19, 1d, 13, 01, 31, 01, 01, 10, 05, 04, 09, 00, 0a, 05, 00, 0e, 00, 13, 20, 09, 02, 00, 0e, 00, 13, 02, 00, 17, 00, 1d, 20, 0d, 06, 00, 17, 00, 1d, 1f, 00, 23, 00, 28, 20, 11, 1a, 00, 23, 00, 28, 1a, 00, 2c, 00, 33, 05, 01, 05, 00, 11, 37, 03, 09, 00, 0a, 05, 00, 0e, 00, 13, 20, 15, 2a, 00, 0e, 00, 13, 15, 00, 17, 00, 1c, 20, 19, 2e, 00, 17, 00, 1c, 32, 00, 22, 00, 28, 20, 1d, 21, 00, 22, 00, 28, 1d, 00, 2c, 00, 33, 37, 01, 05, 01, 02]
94+
Raw bytes (137): 0x[01, 01, 0d, 05, 09, 05, 1f, 09, 0d, 09, 0d, 1f, 11, 09, 0d, 1f, 11, 09, 0d, 05, 15, 15, 19, 05, 19, 05, 33, 19, 1d, 13, 01, 31, 01, 01, 10, 05, 04, 09, 00, 0a, 05, 00, 0e, 00, 13, 20, 09, 02, 00, 0e, 00, 13, 02, 00, 17, 00, 1d, 20, 0d, 06, 00, 17, 00, 1d, 1f, 00, 23, 00, 28, 20, 11, 1a, 00, 23, 00, 28, 1a, 00, 2c, 00, 33, 05, 01, 05, 00, 11, 05, 03, 09, 00, 0a, 05, 00, 0e, 00, 13, 20, 15, 22, 00, 0e, 00, 13, 15, 00, 17, 00, 1c, 20, 19, 26, 00, 17, 00, 1c, 2a, 00, 22, 00, 28, 20, 1d, 2e, 00, 22, 00, 28, 1d, 00, 2c, 00, 33, 05, 01, 05, 01, 02]
11395
Number of files: 1
11496
- file 0 => global file 1
115-
Number of expressions: 15
97+
Number of expressions: 13
11698
- expression 0 operands: lhs = Counter(1), rhs = Counter(2)
11799
- expression 1 operands: lhs = Counter(1), rhs = Expression(7, Add)
118100
- expression 2 operands: lhs = Counter(2), rhs = Counter(3)
@@ -121,13 +103,11 @@ Number of expressions: 15
121103
- expression 5 operands: lhs = Counter(2), rhs = Counter(3)
122104
- expression 6 operands: lhs = Expression(7, Add), rhs = Counter(4)
123105
- expression 7 operands: lhs = Counter(2), rhs = Counter(3)
124-
- expression 8 operands: lhs = Expression(14, Add), rhs = Counter(8)
125-
- expression 9 operands: lhs = Counter(6), rhs = Counter(7)
126-
- expression 10 operands: lhs = Counter(1), rhs = Counter(5)
127-
- expression 11 operands: lhs = Counter(5), rhs = Counter(6)
128-
- expression 12 operands: lhs = Counter(1), rhs = Counter(6)
129-
- expression 13 operands: lhs = Expression(14, Add), rhs = Counter(8)
130-
- expression 14 operands: lhs = Counter(6), rhs = Counter(7)
106+
- expression 8 operands: lhs = Counter(1), rhs = Counter(5)
107+
- expression 9 operands: lhs = Counter(5), rhs = Counter(6)
108+
- expression 10 operands: lhs = Counter(1), rhs = Counter(6)
109+
- expression 11 operands: lhs = Counter(1), rhs = Expression(12, Add)
110+
- expression 12 operands: lhs = Counter(6), rhs = Counter(7)
131111
Number of file 0 mappings: 19
132112
- Code(Counter(0)) at (prev + 49, 1) to (start + 1, 16)
133113
- Code(Counter(1)) at (prev + 4, 9) to (start + 0, 10)
@@ -148,23 +128,21 @@ Number of file 0 mappings: 19
148128
- Code(Expression(6, Sub)) at (prev + 0, 44) to (start + 0, 51)
149129
= ((c2 + c3) - c4)
150130
- Code(Counter(1)) at (prev + 1, 5) to (start + 0, 17)
151-
- Code(Expression(13, Add)) at (prev + 3, 9) to (start + 0, 10)
152-
= ((c6 + c7) + c8)
131+
- Code(Counter(1)) at (prev + 3, 9) to (start + 0, 10)
153132
- Code(Counter(1)) at (prev + 0, 14) to (start + 0, 19)
154-
- Branch { true: Counter(5), false: Expression(10, Sub) } at (prev + 0, 14) to (start + 0, 19)
133+
- Branch { true: Counter(5), false: Expression(8, Sub) } at (prev + 0, 14) to (start + 0, 19)
155134
true = c5
156135
false = (c1 - c5)
157136
- Code(Counter(5)) at (prev + 0, 23) to (start + 0, 28)
158-
- Branch { true: Counter(6), false: Expression(11, Sub) } at (prev + 0, 23) to (start + 0, 28)
137+
- Branch { true: Counter(6), false: Expression(9, Sub) } at (prev + 0, 23) to (start + 0, 28)
159138
true = c6
160139
false = (c5 - c6)
161-
- Code(Expression(12, Sub)) at (prev + 0, 34) to (start + 0, 40)
140+
- Code(Expression(10, Sub)) at (prev + 0, 34) to (start + 0, 40)
162141
= (c1 - c6)
163-
- Branch { true: Counter(7), false: Counter(8) } at (prev + 0, 34) to (start + 0, 40)
142+
- Branch { true: Counter(7), false: Expression(11, Sub) } at (prev + 0, 34) to (start + 0, 40)
164143
true = c7
165-
false = c8
144+
false = (c1 - (c6 + c7))
166145
- Code(Counter(7)) at (prev + 0, 44) to (start + 0, 51)
167-
- Code(Expression(13, Add)) at (prev + 1, 5) to (start + 1, 2)
168-
= ((c6 + c7) + c8)
169-
Highest counter ID seen: c8
146+
- Code(Counter(1)) at (prev + 1, 5) to (start + 1, 2)
147+
Highest counter ID seen: c7
170148

‎tests/coverage/branch/match-arms.cov-map

Lines changed: 31 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,45 @@
11
Function name: match_arms::guards
2-
Raw bytes (88): 0x[01, 01, 08, 07, 00, 0b, 11, 0f, 0d, 05, 09, 17, 25, 1b, 21, 1f, 1d, 03, 19, 0c, 01, 30, 01, 01, 10, 29, 03, 0b, 00, 10, 19, 01, 11, 00, 29, 20, 19, 05, 00, 17, 00, 1b, 1d, 01, 11, 00, 29, 20, 1d, 09, 00, 17, 00, 1b, 21, 01, 11, 00, 29, 20, 21, 0d, 00, 17, 00, 1b, 25, 01, 11, 00, 29, 20, 25, 11, 00, 17, 00, 1b, 03, 01, 0e, 00, 18, 13, 03, 05, 01, 02]
2+
Raw bytes (98): 0x[01, 01, 0d, 11, 19, 27, 19, 2b, 00, 2f, 11, 33, 0d, 05, 09, 1f, 25, 23, 21, 27, 1d, 2b, 00, 2f, 11, 33, 0d, 05, 09, 0c, 01, 30, 01, 01, 10, 11, 03, 0b, 00, 10, 1d, 01, 11, 00, 29, 20, 1d, 05, 00, 17, 00, 1b, 21, 01, 11, 00, 29, 20, 21, 09, 00, 17, 00, 1b, 25, 01, 11, 00, 29, 20, 25, 0d, 00, 17, 00, 1b, 19, 01, 11, 00, 29, 20, 19, 02, 00, 17, 00, 1b, 06, 01, 0e, 00, 18, 1b, 03, 05, 01, 02]
33
Number of files: 1
44
- file 0 => global file 1
5-
Number of expressions: 8
6-
- expression 0 operands: lhs = Expression(1, Add), rhs = Zero
7-
- expression 1 operands: lhs = Expression(2, Add), rhs = Counter(4)
8-
- expression 2 operands: lhs = Expression(3, Add), rhs = Counter(3)
9-
- expression 3 operands: lhs = Counter(1), rhs = Counter(2)
10-
- expression 4 operands: lhs = Expression(5, Add), rhs = Counter(9)
11-
- expression 5 operands: lhs = Expression(6, Add), rhs = Counter(8)
12-
- expression 6 operands: lhs = Expression(7, Add), rhs = Counter(7)
13-
- expression 7 operands: lhs = Expression(0, Add), rhs = Counter(6)
5+
Number of expressions: 13
6+
- expression 0 operands: lhs = Counter(4), rhs = Counter(6)
7+
- expression 1 operands: lhs = Expression(9, Add), rhs = Counter(6)
8+
- expression 2 operands: lhs = Expression(10, Add), rhs = Zero
9+
- expression 3 operands: lhs = Expression(11, Add), rhs = Counter(4)
10+
- expression 4 operands: lhs = Expression(12, Add), rhs = Counter(3)
11+
- expression 5 operands: lhs = Counter(1), rhs = Counter(2)
12+
- expression 6 operands: lhs = Expression(7, Add), rhs = Counter(9)
13+
- expression 7 operands: lhs = Expression(8, Add), rhs = Counter(8)
14+
- expression 8 operands: lhs = Expression(9, Add), rhs = Counter(7)
15+
- expression 9 operands: lhs = Expression(10, Add), rhs = Zero
16+
- expression 10 operands: lhs = Expression(11, Add), rhs = Counter(4)
17+
- expression 11 operands: lhs = Expression(12, Add), rhs = Counter(3)
18+
- expression 12 operands: lhs = Counter(1), rhs = Counter(2)
1419
Number of file 0 mappings: 12
1520
- Code(Counter(0)) at (prev + 48, 1) to (start + 1, 16)
16-
- Code(Counter(10)) at (prev + 3, 11) to (start + 0, 16)
17-
- Code(Counter(6)) at (prev + 1, 17) to (start + 0, 41)
18-
- Branch { true: Counter(6), false: Counter(1) } at (prev + 0, 23) to (start + 0, 27)
19-
true = c6
20-
false = c1
21+
- Code(Counter(4)) at (prev + 3, 11) to (start + 0, 16)
2122
- Code(Counter(7)) at (prev + 1, 17) to (start + 0, 41)
22-
- Branch { true: Counter(7), false: Counter(2) } at (prev + 0, 23) to (start + 0, 27)
23+
- Branch { true: Counter(7), false: Counter(1) } at (prev + 0, 23) to (start + 0, 27)
2324
true = c7
24-
false = c2
25+
false = c1
2526
- Code(Counter(8)) at (prev + 1, 17) to (start + 0, 41)
26-
- Branch { true: Counter(8), false: Counter(3) } at (prev + 0, 23) to (start + 0, 27)
27+
- Branch { true: Counter(8), false: Counter(2) } at (prev + 0, 23) to (start + 0, 27)
2728
true = c8
28-
false = c3
29+
false = c2
2930
- Code(Counter(9)) at (prev + 1, 17) to (start + 0, 41)
30-
- Branch { true: Counter(9), false: Counter(4) } at (prev + 0, 23) to (start + 0, 27)
31+
- Branch { true: Counter(9), false: Counter(3) } at (prev + 0, 23) to (start + 0, 27)
3132
true = c9
32-
false = c4
33-
- Code(Expression(0, Add)) at (prev + 1, 14) to (start + 0, 24)
34-
= ((((c1 + c2) + c3) + c4) + Zero)
35-
- Code(Expression(4, Add)) at (prev + 3, 5) to (start + 1, 2)
36-
= ((((((((c1 + c2) + c3) + c4) + Zero) + c6) + c7) + c8) + c9)
37-
Highest counter ID seen: c10
33+
false = c3
34+
- Code(Counter(6)) at (prev + 1, 17) to (start + 0, 41)
35+
- Branch { true: Counter(6), false: Expression(0, Sub) } at (prev + 0, 23) to (start + 0, 27)
36+
true = c6
37+
false = (c4 - c6)
38+
- Code(Expression(1, Sub)) at (prev + 1, 14) to (start + 0, 24)
39+
= (((((c1 + c2) + c3) + c4) + Zero) - c6)
40+
- Code(Expression(6, Add)) at (prev + 3, 5) to (start + 1, 2)
41+
= (((((((c1 + c2) + c3) + c4) + Zero) + c7) + c8) + c9)
42+
Highest counter ID seen: c9
3843

3944
Function name: match_arms::match_arms
4045
Raw bytes (45): 0x[01, 01, 03, 05, 07, 0b, 11, 09, 0d, 07, 01, 18, 01, 01, 10, 05, 03, 0b, 00, 10, 09, 01, 11, 00, 21, 0d, 01, 11, 00, 21, 11, 01, 11, 00, 21, 02, 01, 11, 00, 21, 05, 03, 05, 01, 02]

‎tests/coverage/branch/while.cov-map

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,14 @@ Number of file 0 mappings: 6
3535
Highest counter ID seen: c2
3636

3737
Function name: while::while_op_and
38-
Raw bytes (56): 0x[01, 01, 04, 05, 09, 03, 0d, 03, 0d, 0d, 11, 08, 01, 1e, 01, 01, 10, 05, 03, 09, 01, 12, 03, 02, 0b, 00, 10, 20, 0a, 0d, 00, 0b, 00, 10, 0a, 00, 14, 00, 19, 20, 09, 11, 00, 14, 00, 19, 09, 00, 1a, 03, 06, 0f, 04, 01, 00, 02]
38+
Raw bytes (56): 0x[01, 01, 04, 05, 09, 03, 0d, 03, 0d, 05, 0d, 08, 01, 1e, 01, 01, 10, 05, 03, 09, 01, 12, 03, 02, 0b, 00, 10, 20, 0a, 0d, 00, 0b, 00, 10, 0a, 00, 14, 00, 19, 20, 09, 0e, 00, 14, 00, 19, 09, 00, 1a, 03, 06, 05, 04, 01, 00, 02]
3939
Number of files: 1
4040
- file 0 => global file 1
4141
Number of expressions: 4
4242
- expression 0 operands: lhs = Counter(1), rhs = Counter(2)
4343
- expression 1 operands: lhs = Expression(0, Add), rhs = Counter(3)
4444
- expression 2 operands: lhs = Expression(0, Add), rhs = Counter(3)
45-
- expression 3 operands: lhs = Counter(3), rhs = Counter(4)
45+
- expression 3 operands: lhs = Counter(1), rhs = Counter(3)
4646
Number of file 0 mappings: 8
4747
- Code(Counter(0)) at (prev + 30, 1) to (start + 1, 16)
4848
- Code(Counter(1)) at (prev + 3, 9) to (start + 1, 18)
@@ -53,13 +53,12 @@ Number of file 0 mappings: 8
5353
false = c3
5454
- Code(Expression(2, Sub)) at (prev + 0, 20) to (start + 0, 25)
5555
= ((c1 + c2) - c3)
56-
- Branch { true: Counter(2), false: Counter(4) } at (prev + 0, 20) to (start + 0, 25)
56+
- Branch { true: Counter(2), false: Expression(3, Sub) } at (prev + 0, 20) to (start + 0, 25)
5757
true = c2
58-
false = c4
58+
false = (c1 - c3)
5959
- Code(Counter(2)) at (prev + 0, 26) to (start + 3, 6)
60-
- Code(Expression(3, Add)) at (prev + 4, 1) to (start + 0, 2)
61-
= (c3 + c4)
62-
Highest counter ID seen: c4
60+
- Code(Counter(1)) at (prev + 4, 1) to (start + 0, 2)
61+
Highest counter ID seen: c3
6362

6463
Function name: while::while_op_or
6564
Raw bytes (58): 0x[01, 01, 05, 07, 0d, 05, 09, 05, 0d, 05, 0d, 09, 0d, 08, 01, 29, 01, 01, 10, 05, 03, 09, 01, 12, 03, 02, 0b, 00, 10, 20, 09, 0f, 00, 0b, 00, 10, 0f, 00, 14, 00, 19, 20, 0d, 05, 00, 14, 00, 19, 13, 00, 1a, 03, 06, 05, 04, 01, 00, 02]

‎tests/coverage/closure_macro.cov-map

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,20 @@ Number of file 0 mappings: 6
2525
Highest counter ID seen: c1
2626

2727
Function name: closure_macro::main::{closure#0}
28-
Raw bytes (35): 0x[01, 01, 03, 01, 05, 0b, 0d, 05, 09, 05, 01, 10, 1c, 03, 21, 05, 04, 11, 01, 27, 02, 03, 11, 00, 16, 0d, 00, 17, 00, 1e, 07, 02, 09, 00, 0a]
28+
Raw bytes (35): 0x[01, 01, 03, 01, 05, 01, 0b, 05, 09, 05, 01, 10, 1c, 03, 21, 05, 04, 11, 01, 27, 02, 03, 11, 00, 16, 06, 00, 17, 00, 1e, 01, 02, 09, 00, 0a]
2929
Number of files: 1
3030
- file 0 => global file 1
3131
Number of expressions: 3
3232
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
33-
- expression 1 operands: lhs = Expression(2, Add), rhs = Counter(3)
33+
- expression 1 operands: lhs = Counter(0), rhs = Expression(2, Add)
3434
- expression 2 operands: lhs = Counter(1), rhs = Counter(2)
3535
Number of file 0 mappings: 5
3636
- Code(Counter(0)) at (prev + 16, 28) to (start + 3, 33)
3737
- Code(Counter(1)) at (prev + 4, 17) to (start + 1, 39)
3838
- Code(Expression(0, Sub)) at (prev + 3, 17) to (start + 0, 22)
3939
= (c0 - c1)
40-
- Code(Counter(3)) at (prev + 0, 23) to (start + 0, 30)
41-
- Code(Expression(1, Add)) at (prev + 2, 9) to (start + 0, 10)
42-
= ((c1 + c2) + c3)
43-
Highest counter ID seen: c3
40+
- Code(Expression(1, Sub)) at (prev + 0, 23) to (start + 0, 30)
41+
= (c0 - (c1 + c2))
42+
- Code(Counter(0)) at (prev + 2, 9) to (start + 0, 10)
43+
Highest counter ID seen: c1
4444

‎tests/coverage/closure_macro_async.cov-map

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,20 +34,20 @@ Number of file 0 mappings: 6
3434
Highest counter ID seen: c1
3535

3636
Function name: closure_macro_async::test::{closure#0}::{closure#0}
37-
Raw bytes (35): 0x[01, 01, 03, 01, 05, 0b, 0d, 05, 09, 05, 01, 15, 1c, 03, 21, 05, 04, 11, 01, 27, 02, 03, 11, 00, 16, 0d, 00, 17, 00, 1e, 07, 02, 09, 00, 0a]
37+
Raw bytes (35): 0x[01, 01, 03, 01, 05, 01, 0b, 05, 09, 05, 01, 15, 1c, 03, 21, 05, 04, 11, 01, 27, 02, 03, 11, 00, 16, 06, 00, 17, 00, 1e, 01, 02, 09, 00, 0a]
3838
Number of files: 1
3939
- file 0 => global file 1
4040
Number of expressions: 3
4141
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
42-
- expression 1 operands: lhs = Expression(2, Add), rhs = Counter(3)
42+
- expression 1 operands: lhs = Counter(0), rhs = Expression(2, Add)
4343
- expression 2 operands: lhs = Counter(1), rhs = Counter(2)
4444
Number of file 0 mappings: 5
4545
- Code(Counter(0)) at (prev + 21, 28) to (start + 3, 33)
4646
- Code(Counter(1)) at (prev + 4, 17) to (start + 1, 39)
4747
- Code(Expression(0, Sub)) at (prev + 3, 17) to (start + 0, 22)
4848
= (c0 - c1)
49-
- Code(Counter(3)) at (prev + 0, 23) to (start + 0, 30)
50-
- Code(Expression(1, Add)) at (prev + 2, 9) to (start + 0, 10)
51-
= ((c1 + c2) + c3)
52-
Highest counter ID seen: c3
49+
- Code(Expression(1, Sub)) at (prev + 0, 23) to (start + 0, 30)
50+
= (c0 - (c1 + c2))
51+
- Code(Counter(0)) at (prev + 2, 9) to (start + 0, 10)
52+
Highest counter ID seen: c1
5353

‎tests/coverage/condition/conditions.cov-map

Lines changed: 59 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,120 +1,103 @@
11
Function name: conditions::assign_3_and_or
2-
Raw bytes (65): 0x[01, 01, 05, 07, 11, 09, 0d, 01, 05, 05, 09, 01, 09, 09, 01, 1c, 01, 00, 2f, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 20, 05, 0a, 00, 0d, 00, 0e, 05, 00, 12, 00, 13, 20, 09, 0e, 00, 12, 00, 13, 12, 00, 17, 00, 18, 20, 0d, 11, 00, 17, 00, 18, 03, 01, 05, 01, 02]
2+
Raw bytes (65): 0x[01, 01, 05, 01, 05, 05, 09, 01, 09, 01, 13, 09, 0d, 09, 01, 1c, 01, 00, 2f, 01, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 20, 05, 02, 00, 0d, 00, 0e, 05, 00, 12, 00, 13, 20, 09, 06, 00, 12, 00, 13, 0a, 00, 17, 00, 18, 20, 0d, 0e, 00, 17, 00, 18, 01, 01, 05, 01, 02]
33
Number of files: 1
44
- file 0 => global file 1
55
Number of expressions: 5
6-
- expression 0 operands: lhs = Expression(1, Add), rhs = Counter(4)
7-
- expression 1 operands: lhs = Counter(2), rhs = Counter(3)
8-
- expression 2 operands: lhs = Counter(0), rhs = Counter(1)
9-
- expression 3 operands: lhs = Counter(1), rhs = Counter(2)
10-
- expression 4 operands: lhs = Counter(0), rhs = Counter(2)
6+
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
7+
- expression 1 operands: lhs = Counter(1), rhs = Counter(2)
8+
- expression 2 operands: lhs = Counter(0), rhs = Counter(2)
9+
- expression 3 operands: lhs = Counter(0), rhs = Expression(4, Add)
10+
- expression 4 operands: lhs = Counter(2), rhs = Counter(3)
1111
Number of file 0 mappings: 9
1212
- Code(Counter(0)) at (prev + 28, 1) to (start + 0, 47)
13-
- Code(Expression(0, Add)) at (prev + 1, 9) to (start + 0, 10)
14-
= ((c2 + c3) + c4)
13+
- Code(Counter(0)) at (prev + 1, 9) to (start + 0, 10)
1514
- Code(Counter(0)) at (prev + 0, 13) to (start + 0, 14)
16-
- Branch { true: Counter(1), false: Expression(2, Sub) } at (prev + 0, 13) to (start + 0, 14)
15+
- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 0, 13) to (start + 0, 14)
1716
true = c1
1817
false = (c0 - c1)
1918
- Code(Counter(1)) at (prev + 0, 18) to (start + 0, 19)
20-
- Branch { true: Counter(2), false: Expression(3, Sub) } at (prev + 0, 18) to (start + 0, 19)
19+
- Branch { true: Counter(2), false: Expression(1, Sub) } at (prev + 0, 18) to (start + 0, 19)
2120
true = c2
2221
false = (c1 - c2)
23-
- Code(Expression(4, Sub)) at (prev + 0, 23) to (start + 0, 24)
22+
- Code(Expression(2, Sub)) at (prev + 0, 23) to (start + 0, 24)
2423
= (c0 - c2)
25-
- Branch { true: Counter(3), false: Counter(4) } at (prev + 0, 23) to (start + 0, 24)
24+
- Branch { true: Counter(3), false: Expression(3, Sub) } at (prev + 0, 23) to (start + 0, 24)
2625
true = c3
27-
false = c4
28-
- Code(Expression(0, Add)) at (prev + 1, 5) to (start + 1, 2)
29-
= ((c2 + c3) + c4)
30-
Highest counter ID seen: c4
26+
false = (c0 - (c2 + c3))
27+
- Code(Counter(0)) at (prev + 1, 5) to (start + 1, 2)
28+
Highest counter ID seen: c3
3129

3230
Function name: conditions::assign_3_or_and
33-
Raw bytes (73): 0x[01, 01, 09, 07, 11, 0b, 0d, 05, 09, 01, 05, 01, 05, 01, 23, 05, 11, 01, 23, 05, 11, 09, 01, 17, 01, 00, 2f, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 20, 05, 12, 00, 0d, 00, 0e, 12, 00, 12, 00, 13, 20, 1e, 11, 00, 12, 00, 13, 1e, 00, 17, 00, 18, 20, 09, 0d, 00, 17, 00, 18, 03, 01, 05, 01, 02]
31+
Raw bytes (63): 0x[01, 01, 04, 01, 05, 01, 0b, 05, 09, 09, 0d, 09, 01, 17, 01, 00, 2f, 01, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 20, 05, 02, 00, 0d, 00, 0e, 02, 00, 12, 00, 13, 20, 09, 06, 00, 12, 00, 13, 09, 00, 17, 00, 18, 20, 0d, 0e, 00, 17, 00, 18, 01, 01, 05, 01, 02]
3432
Number of files: 1
3533
- file 0 => global file 1
36-
Number of expressions: 9
37-
- expression 0 operands: lhs = Expression(1, Add), rhs = Counter(4)
38-
- expression 1 operands: lhs = Expression(2, Add), rhs = Counter(3)
34+
Number of expressions: 4
35+
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
36+
- expression 1 operands: lhs = Counter(0), rhs = Expression(2, Add)
3937
- expression 2 operands: lhs = Counter(1), rhs = Counter(2)
40-
- expression 3 operands: lhs = Counter(0), rhs = Counter(1)
41-
- expression 4 operands: lhs = Counter(0), rhs = Counter(1)
42-
- expression 5 operands: lhs = Counter(0), rhs = Expression(8, Add)
43-
- expression 6 operands: lhs = Counter(1), rhs = Counter(4)
44-
- expression 7 operands: lhs = Counter(0), rhs = Expression(8, Add)
45-
- expression 8 operands: lhs = Counter(1), rhs = Counter(4)
38+
- expression 3 operands: lhs = Counter(2), rhs = Counter(3)
4639
Number of file 0 mappings: 9
4740
- Code(Counter(0)) at (prev + 23, 1) to (start + 0, 47)
48-
- Code(Expression(0, Add)) at (prev + 1, 9) to (start + 0, 10)
49-
= (((c1 + c2) + c3) + c4)
41+
- Code(Counter(0)) at (prev + 1, 9) to (start + 0, 10)
5042
- Code(Counter(0)) at (prev + 0, 13) to (start + 0, 14)
51-
- Branch { true: Counter(1), false: Expression(4, Sub) } at (prev + 0, 13) to (start + 0, 14)
43+
- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 0, 13) to (start + 0, 14)
5244
true = c1
5345
false = (c0 - c1)
54-
- Code(Expression(4, Sub)) at (prev + 0, 18) to (start + 0, 19)
46+
- Code(Expression(0, Sub)) at (prev + 0, 18) to (start + 0, 19)
5547
= (c0 - c1)
56-
- Branch { true: Expression(7, Sub), false: Counter(4) } at (prev + 0, 18) to (start + 0, 19)
57-
true = (c0 - (c1 + c4))
58-
false = c4
59-
- Code(Expression(7, Sub)) at (prev + 0, 23) to (start + 0, 24)
60-
= (c0 - (c1 + c4))
61-
- Branch { true: Counter(2), false: Counter(3) } at (prev + 0, 23) to (start + 0, 24)
48+
- Branch { true: Counter(2), false: Expression(1, Sub) } at (prev + 0, 18) to (start + 0, 19)
6249
true = c2
63-
false = c3
64-
- Code(Expression(0, Add)) at (prev + 1, 5) to (start + 1, 2)
65-
= (((c1 + c2) + c3) + c4)
66-
Highest counter ID seen: c4
50+
false = (c0 - (c1 + c2))
51+
- Code(Counter(2)) at (prev + 0, 23) to (start + 0, 24)
52+
- Branch { true: Counter(3), false: Expression(3, Sub) } at (prev + 0, 23) to (start + 0, 24)
53+
true = c3
54+
false = (c2 - c3)
55+
- Code(Counter(0)) at (prev + 1, 5) to (start + 1, 2)
56+
Highest counter ID seen: c3
6757

6858
Function name: conditions::assign_and
69-
Raw bytes (51): 0x[01, 01, 04, 07, 05, 0b, 0d, 01, 09, 01, 05, 07, 01, 0d, 01, 00, 21, 02, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 20, 05, 0e, 00, 0d, 00, 0e, 05, 00, 12, 00, 13, 20, 09, 0d, 00, 12, 00, 13, 02, 01, 05, 01, 02]
59+
Raw bytes (47): 0x[01, 01, 02, 01, 05, 05, 09, 07, 01, 0d, 01, 00, 21, 01, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 20, 05, 02, 00, 0d, 00, 0e, 05, 00, 12, 00, 13, 20, 09, 06, 00, 12, 00, 13, 01, 01, 05, 01, 02]
7060
Number of files: 1
7161
- file 0 => global file 1
72-
Number of expressions: 4
73-
- expression 0 operands: lhs = Expression(1, Add), rhs = Counter(1)
74-
- expression 1 operands: lhs = Expression(2, Add), rhs = Counter(3)
75-
- expression 2 operands: lhs = Counter(0), rhs = Counter(2)
76-
- expression 3 operands: lhs = Counter(0), rhs = Counter(1)
62+
Number of expressions: 2
63+
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
64+
- expression 1 operands: lhs = Counter(1), rhs = Counter(2)
7765
Number of file 0 mappings: 7
7866
- Code(Counter(0)) at (prev + 13, 1) to (start + 0, 33)
79-
- Code(Expression(0, Sub)) at (prev + 1, 9) to (start + 0, 10)
80-
= (((c0 + c2) + c3) - c1)
67+
- Code(Counter(0)) at (prev + 1, 9) to (start + 0, 10)
8168
- Code(Counter(0)) at (prev + 0, 13) to (start + 0, 14)
82-
- Branch { true: Counter(1), false: Expression(3, Sub) } at (prev + 0, 13) to (start + 0, 14)
69+
- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 0, 13) to (start + 0, 14)
8370
true = c1
8471
false = (c0 - c1)
8572
- Code(Counter(1)) at (prev + 0, 18) to (start + 0, 19)
86-
- Branch { true: Counter(2), false: Counter(3) } at (prev + 0, 18) to (start + 0, 19)
73+
- Branch { true: Counter(2), false: Expression(1, Sub) } at (prev + 0, 18) to (start + 0, 19)
8774
true = c2
88-
false = c3
89-
- Code(Expression(0, Sub)) at (prev + 1, 5) to (start + 1, 2)
90-
= (((c0 + c2) + c3) - c1)
91-
Highest counter ID seen: c3
75+
false = (c1 - c2)
76+
- Code(Counter(0)) at (prev + 1, 5) to (start + 1, 2)
77+
Highest counter ID seen: c2
9278

9379
Function name: conditions::assign_or
94-
Raw bytes (51): 0x[01, 01, 04, 07, 0d, 05, 09, 01, 05, 01, 05, 07, 01, 12, 01, 00, 20, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 20, 05, 0e, 00, 0d, 00, 0e, 0e, 00, 12, 00, 13, 20, 09, 0d, 00, 12, 00, 13, 03, 01, 05, 01, 02]
80+
Raw bytes (49): 0x[01, 01, 03, 01, 05, 01, 0b, 05, 09, 07, 01, 12, 01, 00, 20, 01, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 20, 05, 02, 00, 0d, 00, 0e, 02, 00, 12, 00, 13, 20, 09, 06, 00, 12, 00, 13, 01, 01, 05, 01, 02]
9581
Number of files: 1
9682
- file 0 => global file 1
97-
Number of expressions: 4
98-
- expression 0 operands: lhs = Expression(1, Add), rhs = Counter(3)
99-
- expression 1 operands: lhs = Counter(1), rhs = Counter(2)
100-
- expression 2 operands: lhs = Counter(0), rhs = Counter(1)
101-
- expression 3 operands: lhs = Counter(0), rhs = Counter(1)
83+
Number of expressions: 3
84+
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
85+
- expression 1 operands: lhs = Counter(0), rhs = Expression(2, Add)
86+
- expression 2 operands: lhs = Counter(1), rhs = Counter(2)
10287
Number of file 0 mappings: 7
10388
- Code(Counter(0)) at (prev + 18, 1) to (start + 0, 32)
104-
- Code(Expression(0, Add)) at (prev + 1, 9) to (start + 0, 10)
105-
= ((c1 + c2) + c3)
89+
- Code(Counter(0)) at (prev + 1, 9) to (start + 0, 10)
10690
- Code(Counter(0)) at (prev + 0, 13) to (start + 0, 14)
107-
- Branch { true: Counter(1), false: Expression(3, Sub) } at (prev + 0, 13) to (start + 0, 14)
91+
- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 0, 13) to (start + 0, 14)
10892
true = c1
10993
false = (c0 - c1)
110-
- Code(Expression(3, Sub)) at (prev + 0, 18) to (start + 0, 19)
94+
- Code(Expression(0, Sub)) at (prev + 0, 18) to (start + 0, 19)
11195
= (c0 - c1)
112-
- Branch { true: Counter(2), false: Counter(3) } at (prev + 0, 18) to (start + 0, 19)
96+
- Branch { true: Counter(2), false: Expression(1, Sub) } at (prev + 0, 18) to (start + 0, 19)
11397
true = c2
114-
false = c3
115-
- Code(Expression(0, Add)) at (prev + 1, 5) to (start + 1, 2)
116-
= ((c1 + c2) + c3)
117-
Highest counter ID seen: c3
98+
false = (c0 - (c1 + c2))
99+
- Code(Counter(0)) at (prev + 1, 5) to (start + 1, 2)
100+
Highest counter ID seen: c2
118101

119102
Function name: conditions::foo
120103
Raw bytes (9): 0x[01, 01, 00, 01, 01, 21, 01, 02, 02]
@@ -126,26 +109,23 @@ Number of file 0 mappings: 1
126109
Highest counter ID seen: c0
127110

128111
Function name: conditions::func_call
129-
Raw bytes (41): 0x[01, 01, 04, 01, 05, 0b, 05, 0f, 0d, 01, 09, 05, 01, 25, 01, 01, 0a, 20, 05, 02, 01, 09, 00, 0a, 05, 00, 0e, 00, 0f, 20, 09, 0d, 00, 0e, 00, 0f, 06, 01, 01, 00, 02]
112+
Raw bytes (37): 0x[01, 01, 02, 01, 05, 05, 09, 05, 01, 25, 01, 01, 0a, 20, 05, 02, 01, 09, 00, 0a, 05, 00, 0e, 00, 0f, 20, 09, 06, 00, 0e, 00, 0f, 01, 01, 01, 00, 02]
130113
Number of files: 1
131114
- file 0 => global file 1
132-
Number of expressions: 4
115+
Number of expressions: 2
133116
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
134-
- expression 1 operands: lhs = Expression(2, Add), rhs = Counter(1)
135-
- expression 2 operands: lhs = Expression(3, Add), rhs = Counter(3)
136-
- expression 3 operands: lhs = Counter(0), rhs = Counter(2)
117+
- expression 1 operands: lhs = Counter(1), rhs = Counter(2)
137118
Number of file 0 mappings: 5
138119
- Code(Counter(0)) at (prev + 37, 1) to (start + 1, 10)
139120
- Branch { true: Counter(1), false: Expression(0, Sub) } at (prev + 1, 9) to (start + 0, 10)
140121
true = c1
141122
false = (c0 - c1)
142123
- Code(Counter(1)) at (prev + 0, 14) to (start + 0, 15)
143-
- Branch { true: Counter(2), false: Counter(3) } at (prev + 0, 14) to (start + 0, 15)
124+
- Branch { true: Counter(2), false: Expression(1, Sub) } at (prev + 0, 14) to (start + 0, 15)
144125
true = c2
145-
false = c3
146-
- Code(Expression(1, Sub)) at (prev + 1, 1) to (start + 0, 2)
147-
= (((c0 + c2) + c3) - c1)
148-
Highest counter ID seen: c3
126+
false = (c1 - c2)
127+
- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
128+
Highest counter ID seen: c2
149129

150130
Function name: conditions::simple_assign
151131
Raw bytes (9): 0x[01, 01, 00, 01, 01, 08, 01, 03, 02]

‎tests/coverage/conditions.cov-map

Lines changed: 174 additions & 276 deletions
Large diffs are not rendered by default.

‎tests/coverage/continue.cov-map

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Function name: continue::main
2-
Raw bytes (210): 0x[01, 01, 1c, 07, 09, 01, 05, 03, 0d, 1f, 15, 0d, 11, 1b, 19, 1f, 15, 0d, 11, 33, 21, 19, 1d, 2f, 25, 33, 21, 19, 1d, 47, 2d, 25, 29, 43, 31, 47, 2d, 25, 29, 5b, 39, 31, 35, 57, 3d, 5b, 39, 31, 35, 35, 39, 3d, 41, 6b, 45, 3d, 41, 45, 49, 1e, 01, 03, 01, 03, 12, 03, 04, 0e, 00, 13, 0a, 01, 0f, 00, 16, 05, 02, 11, 00, 19, 09, 02, 12, 04, 0e, 1b, 06, 0e, 00, 13, 16, 01, 0f, 00, 16, 15, 01, 16, 02, 0e, 11, 04, 11, 00, 19, 15, 03, 09, 00, 0e, 2f, 02, 0e, 00, 13, 2a, 01, 0f, 00, 16, 1d, 01, 15, 02, 0e, 21, 04, 11, 00, 19, 1d, 03, 09, 00, 0e, 43, 02, 0e, 00, 13, 3e, 01, 0c, 00, 13, 29, 01, 0d, 00, 15, 2d, 01, 0a, 01, 0e, 57, 03, 0e, 00, 13, 52, 01, 0f, 00, 16, 39, 01, 16, 02, 0e, 35, 03, 12, 02, 0e, 5f, 04, 09, 00, 0e, 6b, 02, 0e, 00, 13, 66, 01, 0f, 00, 16, 41, 01, 16, 02, 0e, 49, 04, 11, 00, 16, 41, 03, 09, 00, 0e, 6f, 02, 0d, 01, 02]
2+
Raw bytes (210): 0x[01, 01, 1c, 07, 09, 01, 05, 03, 0d, 1f, 15, 0d, 11, 1b, 19, 1f, 15, 0d, 11, 33, 21, 19, 1d, 2f, 25, 33, 21, 19, 1d, 47, 2d, 25, 29, 43, 31, 47, 2d, 25, 29, 5b, 39, 31, 35, 57, 3d, 5b, 39, 31, 35, 35, 39, 3d, 41, 6b, 45, 3d, 41, 3d, 45, 1e, 01, 03, 01, 03, 12, 03, 04, 0e, 00, 13, 0a, 01, 0f, 00, 16, 05, 02, 11, 00, 19, 09, 02, 12, 04, 0e, 1b, 06, 0e, 00, 13, 16, 01, 0f, 00, 16, 15, 01, 16, 02, 0e, 11, 04, 11, 00, 19, 15, 03, 09, 00, 0e, 2f, 02, 0e, 00, 13, 2a, 01, 0f, 00, 16, 1d, 01, 15, 02, 0e, 21, 04, 11, 00, 19, 1d, 03, 09, 00, 0e, 43, 02, 0e, 00, 13, 3e, 01, 0c, 00, 13, 29, 01, 0d, 00, 15, 2d, 01, 0a, 01, 0e, 57, 03, 0e, 00, 13, 52, 01, 0f, 00, 16, 39, 01, 16, 02, 0e, 35, 03, 12, 02, 0e, 5f, 04, 09, 00, 0e, 6b, 02, 0e, 00, 13, 66, 01, 0f, 00, 16, 41, 01, 16, 02, 0e, 6e, 04, 11, 00, 16, 41, 03, 09, 00, 0e, 3d, 02, 0d, 01, 02]
33
Number of files: 1
44
- file 0 => global file 1
55
Number of expressions: 28
@@ -30,7 +30,7 @@ Number of expressions: 28
3030
- expression 24 operands: lhs = Counter(15), rhs = Counter(16)
3131
- expression 25 operands: lhs = Expression(26, Add), rhs = Counter(17)
3232
- expression 26 operands: lhs = Counter(15), rhs = Counter(16)
33-
- expression 27 operands: lhs = Counter(17), rhs = Counter(18)
33+
- expression 27 operands: lhs = Counter(15), rhs = Counter(17)
3434
Number of file 0 mappings: 30
3535
- Code(Counter(0)) at (prev + 3, 1) to (start + 3, 18)
3636
- Code(Expression(0, Add)) at (prev + 4, 14) to (start + 0, 19)
@@ -72,9 +72,9 @@ Number of file 0 mappings: 30
7272
- Code(Expression(25, Sub)) at (prev + 1, 15) to (start + 0, 22)
7373
= ((c15 + c16) - c17)
7474
- Code(Counter(16)) at (prev + 1, 22) to (start + 2, 14)
75-
- Code(Counter(18)) at (prev + 4, 17) to (start + 0, 22)
75+
- Code(Expression(27, Sub)) at (prev + 4, 17) to (start + 0, 22)
76+
= (c15 - c17)
7677
- Code(Counter(16)) at (prev + 3, 9) to (start + 0, 14)
77-
- Code(Expression(27, Add)) at (prev + 2, 13) to (start + 1, 2)
78-
= (c17 + c18)
79-
Highest counter ID seen: c18
78+
- Code(Counter(15)) at (prev + 2, 13) to (start + 1, 2)
79+
Highest counter ID seen: c16
8080

‎tests/coverage/coroutine.cov-map

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,14 @@ Number of file 0 mappings: 4
1313
Highest counter ID seen: c1
1414

1515
Function name: coroutine::main
16-
Raw bytes (65): 0x[01, 01, 08, 07, 0d, 05, 09, 11, 15, 11, 1f, 15, 19, 15, 19, 11, 1f, 15, 19, 09, 01, 13, 01, 02, 16, 01, 08, 0b, 00, 2e, 11, 01, 2b, 00, 2d, 03, 01, 0e, 00, 35, 11, 02, 0b, 00, 2e, 0a, 01, 22, 00, 27, 1a, 00, 2c, 00, 2e, 1f, 01, 0e, 00, 35, 1a, 02, 01, 00, 02]
16+
Raw bytes (57): 0x[01, 01, 04, 07, 0d, 05, 09, 11, 19, 11, 15, 09, 01, 13, 01, 02, 16, 01, 08, 0b, 00, 2e, 11, 01, 2b, 00, 2d, 03, 01, 0e, 00, 35, 11, 02, 0b, 00, 2e, 0a, 01, 22, 00, 27, 15, 00, 2c, 00, 2e, 0e, 01, 0e, 00, 35, 15, 02, 01, 00, 02]
1717
Number of files: 1
1818
- file 0 => global file 1
19-
Number of expressions: 8
19+
Number of expressions: 4
2020
- expression 0 operands: lhs = Expression(1, Add), rhs = Counter(3)
2121
- expression 1 operands: lhs = Counter(1), rhs = Counter(2)
22-
- expression 2 operands: lhs = Counter(4), rhs = Counter(5)
23-
- expression 3 operands: lhs = Counter(4), rhs = Expression(7, Add)
24-
- expression 4 operands: lhs = Counter(5), rhs = Counter(6)
25-
- expression 5 operands: lhs = Counter(5), rhs = Counter(6)
26-
- expression 6 operands: lhs = Counter(4), rhs = Expression(7, Add)
27-
- expression 7 operands: lhs = Counter(5), rhs = Counter(6)
22+
- expression 2 operands: lhs = Counter(4), rhs = Counter(6)
23+
- expression 3 operands: lhs = Counter(4), rhs = Counter(5)
2824
Number of file 0 mappings: 9
2925
- Code(Counter(0)) at (prev + 19, 1) to (start + 2, 22)
3026
- Code(Counter(0)) at (prev + 8, 11) to (start + 0, 46)
@@ -33,14 +29,12 @@ Number of file 0 mappings: 9
3329
= ((c1 + c2) + c3)
3430
- Code(Counter(4)) at (prev + 2, 11) to (start + 0, 46)
3531
- Code(Expression(2, Sub)) at (prev + 1, 34) to (start + 0, 39)
32+
= (c4 - c6)
33+
- Code(Counter(5)) at (prev + 0, 44) to (start + 0, 46)
34+
- Code(Expression(3, Sub)) at (prev + 1, 14) to (start + 0, 53)
3635
= (c4 - c5)
37-
- Code(Expression(6, Sub)) at (prev + 0, 44) to (start + 0, 46)
38-
= (c4 - (c5 + c6))
39-
- Code(Expression(7, Add)) at (prev + 1, 14) to (start + 0, 53)
40-
= (c5 + c6)
41-
- Code(Expression(6, Sub)) at (prev + 2, 1) to (start + 0, 2)
42-
= (c4 - (c5 + c6))
43-
Highest counter ID seen: c4
36+
- Code(Counter(5)) at (prev + 2, 1) to (start + 0, 2)
37+
Highest counter ID seen: c5
4438

4539
Function name: coroutine::main::{closure#0}
4640
Raw bytes (14): 0x[01, 01, 00, 02, 01, 16, 08, 01, 1f, 05, 02, 10, 01, 06]

‎tests/coverage/inline.cov-map

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,27 +41,27 @@ Number of file 0 mappings: 1
4141
Highest counter ID seen: c0
4242

4343
Function name: inline::permutate::<char>
44-
Raw bytes (54): 0x[01, 01, 05, 01, 05, 01, 0b, 05, 0d, 13, 0d, 05, 09, 08, 01, 0f, 01, 02, 0e, 05, 02, 0f, 02, 06, 02, 02, 0f, 00, 14, 11, 01, 0d, 00, 0e, 06, 00, 12, 00, 16, 11, 00, 17, 04, 0a, 0d, 05, 0c, 02, 06, 0f, 03, 01, 00, 02]
44+
Raw bytes (54): 0x[01, 01, 05, 01, 05, 01, 0b, 05, 0d, 13, 0d, 01, 09, 08, 01, 0f, 01, 02, 0e, 05, 02, 0f, 02, 06, 02, 02, 0f, 00, 14, 11, 01, 0d, 00, 0e, 0d, 00, 12, 00, 16, 11, 00, 17, 04, 0a, 06, 05, 0c, 02, 06, 0e, 03, 01, 00, 02]
4545
Number of files: 1
4646
- file 0 => global file 1
4747
Number of expressions: 5
4848
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
4949
- expression 1 operands: lhs = Counter(0), rhs = Expression(2, Add)
5050
- expression 2 operands: lhs = Counter(1), rhs = Counter(3)
5151
- expression 3 operands: lhs = Expression(4, Add), rhs = Counter(3)
52-
- expression 4 operands: lhs = Counter(1), rhs = Counter(2)
52+
- expression 4 operands: lhs = Counter(0), rhs = Counter(2)
5353
Number of file 0 mappings: 8
5454
- Code(Counter(0)) at (prev + 15, 1) to (start + 2, 14)
5555
- Code(Counter(1)) at (prev + 2, 15) to (start + 2, 6)
5656
- Code(Expression(0, Sub)) at (prev + 2, 15) to (start + 0, 20)
5757
= (c0 - c1)
5858
- Code(Counter(4)) at (prev + 1, 13) to (start + 0, 14)
59-
- Code(Expression(1, Sub)) at (prev + 0, 18) to (start + 0, 22)
60-
= (c0 - (c1 + c3))
59+
- Code(Counter(3)) at (prev + 0, 18) to (start + 0, 22)
6160
- Code(Counter(4)) at (prev + 0, 23) to (start + 4, 10)
62-
- Code(Counter(3)) at (prev + 5, 12) to (start + 2, 6)
63-
- Code(Expression(3, Add)) at (prev + 3, 1) to (start + 0, 2)
64-
= ((c1 + c2) + c3)
61+
- Code(Expression(1, Sub)) at (prev + 5, 12) to (start + 2, 6)
62+
= (c0 - (c1 + c3))
63+
- Code(Expression(3, Sub)) at (prev + 3, 1) to (start + 0, 2)
64+
= ((c0 + c2) - c3)
6565
Highest counter ID seen: c4
6666

6767
Function name: inline::permutations::<char>

‎tests/coverage/loops_branches.cov-map

Lines changed: 83 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,32 @@
11
Function name: <loops_branches::DebugTest as core::fmt::Debug>::fmt
2-
Raw bytes (174): 0x[01, 01, 22, 05, 00, 2f, 7b, 67, 00, 77, 19, 01, 15, 05, 21, 2f, 05, 67, 00, 77, 19, 01, 15, 2f, 7b, 67, 00, 77, 19, 01, 15, 05, 21, 67, 7b, 77, 19, 01, 15, 05, 21, 67, 5b, 77, 19, 01, 15, 7b, 00, 05, 21, 67, 7b, 77, 19, 01, 15, 05, 21, 77, 7b, 01, 15, 05, 21, 83, 01, 05, 87, 01, 15, 01, 11, 14, 01, 09, 05, 01, 10, 05, 02, 10, 00, 15, 00, 01, 17, 00, 1b, 00, 00, 1c, 00, 1e, 02, 01, 0d, 00, 0e, 05, 01, 0d, 00, 1e, 11, 00, 1e, 00, 1f, 00, 01, 10, 01, 0a, 2a, 03, 0d, 00, 0e, 1a, 00, 12, 00, 17, 2a, 01, 10, 00, 14, 62, 01, 14, 00, 19, 00, 01, 1b, 00, 1f, 00, 00, 20, 00, 22, 4e, 01, 11, 00, 12, 62, 01, 11, 00, 22, 72, 00, 22, 00, 23, 00, 01, 14, 01, 0e, 21, 03, 09, 00, 0f, 7e, 01, 05, 00, 06]
2+
Raw bytes (152): 0x[01, 01, 18, 05, 00, 27, 57, 53, 00, 01, 1d, 11, 19, 27, 11, 53, 00, 01, 1d, 27, 57, 53, 00, 01, 1d, 11, 19, 53, 57, 01, 1d, 11, 19, 53, 47, 01, 1d, 57, 00, 11, 19, 53, 57, 01, 1d, 11, 19, 5f, 19, 11, 15, 14, 01, 09, 05, 01, 10, 05, 02, 10, 00, 15, 00, 01, 17, 00, 1b, 00, 00, 1c, 00, 1e, 02, 01, 0d, 00, 0e, 05, 01, 0d, 00, 1e, 11, 00, 1e, 00, 1f, 00, 01, 10, 01, 0a, 22, 03, 0d, 00, 0e, 16, 00, 12, 00, 17, 22, 01, 10, 00, 14, 4e, 01, 14, 00, 19, 00, 01, 1b, 00, 1f, 00, 00, 20, 00, 22, 3e, 01, 11, 00, 12, 4e, 01, 11, 00, 22, 15, 00, 22, 00, 23, 00, 01, 14, 01, 0e, 19, 03, 09, 00, 0f, 5b, 01, 05, 00, 06]
33
Number of files: 1
44
- file 0 => global file 1
5-
Number of expressions: 34
5+
Number of expressions: 24
66
- expression 0 operands: lhs = Counter(1), rhs = Zero
7-
- expression 1 operands: lhs = Expression(11, Add), rhs = Expression(30, Add)
8-
- expression 2 operands: lhs = Expression(25, Add), rhs = Zero
9-
- expression 3 operands: lhs = Expression(29, Add), rhs = Counter(6)
10-
- expression 4 operands: lhs = Counter(0), rhs = Counter(5)
11-
- expression 5 operands: lhs = Counter(1), rhs = Counter(8)
12-
- expression 6 operands: lhs = Expression(11, Add), rhs = Counter(1)
13-
- expression 7 operands: lhs = Expression(25, Add), rhs = Zero
14-
- expression 8 operands: lhs = Expression(29, Add), rhs = Counter(6)
15-
- expression 9 operands: lhs = Counter(0), rhs = Counter(5)
16-
- expression 10 operands: lhs = Expression(11, Add), rhs = Expression(30, Add)
17-
- expression 11 operands: lhs = Expression(25, Add), rhs = Zero
18-
- expression 12 operands: lhs = Expression(29, Add), rhs = Counter(6)
19-
- expression 13 operands: lhs = Counter(0), rhs = Counter(5)
20-
- expression 14 operands: lhs = Counter(1), rhs = Counter(8)
21-
- expression 15 operands: lhs = Expression(25, Add), rhs = Expression(30, Add)
22-
- expression 16 operands: lhs = Expression(29, Add), rhs = Counter(6)
23-
- expression 17 operands: lhs = Counter(0), rhs = Counter(5)
24-
- expression 18 operands: lhs = Counter(1), rhs = Counter(8)
25-
- expression 19 operands: lhs = Expression(25, Add), rhs = Expression(22, Add)
26-
- expression 20 operands: lhs = Expression(29, Add), rhs = Counter(6)
27-
- expression 21 operands: lhs = Counter(0), rhs = Counter(5)
28-
- expression 22 operands: lhs = Expression(30, Add), rhs = Zero
29-
- expression 23 operands: lhs = Counter(1), rhs = Counter(8)
30-
- expression 24 operands: lhs = Expression(25, Add), rhs = Expression(30, Add)
31-
- expression 25 operands: lhs = Expression(29, Add), rhs = Counter(6)
32-
- expression 26 operands: lhs = Counter(0), rhs = Counter(5)
33-
- expression 27 operands: lhs = Counter(1), rhs = Counter(8)
34-
- expression 28 operands: lhs = Expression(29, Add), rhs = Expression(30, Add)
35-
- expression 29 operands: lhs = Counter(0), rhs = Counter(5)
36-
- expression 30 operands: lhs = Counter(1), rhs = Counter(8)
37-
- expression 31 operands: lhs = Expression(32, Add), rhs = Counter(1)
38-
- expression 32 operands: lhs = Expression(33, Add), rhs = Counter(5)
39-
- expression 33 operands: lhs = Counter(0), rhs = Counter(4)
7+
- expression 1 operands: lhs = Expression(9, Add), rhs = Expression(21, Add)
8+
- expression 2 operands: lhs = Expression(20, Add), rhs = Zero
9+
- expression 3 operands: lhs = Counter(0), rhs = Counter(7)
10+
- expression 4 operands: lhs = Counter(4), rhs = Counter(6)
11+
- expression 5 operands: lhs = Expression(9, Add), rhs = Counter(4)
12+
- expression 6 operands: lhs = Expression(20, Add), rhs = Zero
13+
- expression 7 operands: lhs = Counter(0), rhs = Counter(7)
14+
- expression 8 operands: lhs = Expression(9, Add), rhs = Expression(21, Add)
15+
- expression 9 operands: lhs = Expression(20, Add), rhs = Zero
16+
- expression 10 operands: lhs = Counter(0), rhs = Counter(7)
17+
- expression 11 operands: lhs = Counter(4), rhs = Counter(6)
18+
- expression 12 operands: lhs = Expression(20, Add), rhs = Expression(21, Add)
19+
- expression 13 operands: lhs = Counter(0), rhs = Counter(7)
20+
- expression 14 operands: lhs = Counter(4), rhs = Counter(6)
21+
- expression 15 operands: lhs = Expression(20, Add), rhs = Expression(17, Add)
22+
- expression 16 operands: lhs = Counter(0), rhs = Counter(7)
23+
- expression 17 operands: lhs = Expression(21, Add), rhs = Zero
24+
- expression 18 operands: lhs = Counter(4), rhs = Counter(6)
25+
- expression 19 operands: lhs = Expression(20, Add), rhs = Expression(21, Add)
26+
- expression 20 operands: lhs = Counter(0), rhs = Counter(7)
27+
- expression 21 operands: lhs = Counter(4), rhs = Counter(6)
28+
- expression 22 operands: lhs = Expression(23, Add), rhs = Counter(6)
29+
- expression 23 operands: lhs = Counter(4), rhs = Counter(5)
4030
Number of file 0 mappings: 20
4131
- Code(Counter(0)) at (prev + 9, 5) to (start + 1, 16)
4232
- Code(Counter(1)) at (prev + 2, 16) to (start + 0, 21)
@@ -47,57 +37,57 @@ Number of file 0 mappings: 20
4737
- Code(Counter(1)) at (prev + 1, 13) to (start + 0, 30)
4838
- Code(Counter(4)) at (prev + 0, 30) to (start + 0, 31)
4939
- Code(Zero) at (prev + 1, 16) to (start + 1, 10)
50-
- Code(Expression(10, Sub)) at (prev + 3, 13) to (start + 0, 14)
51-
= ((((c0 + c5) + c6) + Zero) - (c1 + c8))
52-
- Code(Expression(6, Sub)) at (prev + 0, 18) to (start + 0, 23)
53-
= ((((c0 + c5) + c6) + Zero) - c1)
54-
- Code(Expression(10, Sub)) at (prev + 1, 16) to (start + 0, 20)
55-
= ((((c0 + c5) + c6) + Zero) - (c1 + c8))
56-
- Code(Expression(24, Sub)) at (prev + 1, 20) to (start + 0, 25)
57-
= (((c0 + c5) + c6) - (c1 + c8))
40+
- Code(Expression(8, Sub)) at (prev + 3, 13) to (start + 0, 14)
41+
= (((c0 + c7) + Zero) - (c4 + c6))
42+
- Code(Expression(5, Sub)) at (prev + 0, 18) to (start + 0, 23)
43+
= (((c0 + c7) + Zero) - c4)
44+
- Code(Expression(8, Sub)) at (prev + 1, 16) to (start + 0, 20)
45+
= (((c0 + c7) + Zero) - (c4 + c6))
46+
- Code(Expression(19, Sub)) at (prev + 1, 20) to (start + 0, 25)
47+
= ((c0 + c7) - (c4 + c6))
5848
- Code(Zero) at (prev + 1, 27) to (start + 0, 31)
5949
- Code(Zero) at (prev + 0, 32) to (start + 0, 34)
60-
- Code(Expression(19, Sub)) at (prev + 1, 17) to (start + 0, 18)
61-
= (((c0 + c5) + c6) - ((c1 + c8) + Zero))
62-
- Code(Expression(24, Sub)) at (prev + 1, 17) to (start + 0, 34)
63-
= (((c0 + c5) + c6) - (c1 + c8))
64-
- Code(Expression(28, Sub)) at (prev + 0, 34) to (start + 0, 35)
65-
= ((c0 + c5) - (c1 + c8))
50+
- Code(Expression(15, Sub)) at (prev + 1, 17) to (start + 0, 18)
51+
= ((c0 + c7) - ((c4 + c6) + Zero))
52+
- Code(Expression(19, Sub)) at (prev + 1, 17) to (start + 0, 34)
53+
= ((c0 + c7) - (c4 + c6))
54+
- Code(Counter(5)) at (prev + 0, 34) to (start + 0, 35)
6655
- Code(Zero) at (prev + 1, 20) to (start + 1, 14)
67-
- Code(Counter(8)) at (prev + 3, 9) to (start + 0, 15)
68-
- Code(Expression(31, Sub)) at (prev + 1, 5) to (start + 0, 6)
69-
= (((c0 + c4) + c5) - c1)
70-
Highest counter ID seen: c8
56+
- Code(Counter(6)) at (prev + 3, 9) to (start + 0, 15)
57+
- Code(Expression(22, Add)) at (prev + 1, 5) to (start + 0, 6)
58+
= ((c4 + c5) + c6)
59+
Highest counter ID seen: c6
7160

7261
Function name: <loops_branches::DisplayTest as core::fmt::Display>::fmt
73-
Raw bytes (152): 0x[01, 01, 18, 01, 00, 01, 00, 23, 15, 27, 11, 00, 0d, 27, 11, 00, 0d, 23, 15, 27, 11, 00, 0d, 4b, 15, 4f, 11, 00, 0d, 4b, 43, 4f, 11, 00, 0d, 15, 00, 4b, 15, 4f, 11, 00, 0d, 5f, 15, 00, 11, 5f, 21, 00, 11, 14, 01, 22, 05, 01, 11, 00, 01, 12, 01, 0a, 02, 02, 10, 00, 15, 00, 01, 17, 00, 1b, 00, 00, 1c, 00, 1e, 06, 01, 0d, 00, 0e, 02, 01, 0d, 00, 1e, 21, 00, 1e, 00, 1f, 1e, 02, 0d, 00, 0e, 23, 00, 12, 00, 17, 1e, 01, 10, 00, 15, 00, 00, 16, 01, 0e, 46, 02, 14, 00, 19, 00, 01, 1b, 00, 1f, 00, 00, 20, 00, 22, 36, 01, 11, 00, 12, 46, 01, 11, 00, 22, 52, 00, 22, 00, 23, 15, 03, 09, 00, 0f, 5b, 01, 05, 00, 06]
62+
Raw bytes (154): 0x[01, 01, 19, 01, 00, 01, 00, 2b, 63, 2f, 0d, 01, 00, 11, 15, 2b, 11, 2f, 0d, 01, 00, 2b, 63, 2f, 0d, 01, 00, 11, 15, 57, 63, 01, 0d, 11, 15, 57, 4b, 01, 0d, 63, 00, 11, 15, 57, 63, 01, 0d, 11, 15, 63, 21, 11, 15, 14, 01, 22, 05, 01, 11, 00, 01, 12, 01, 0a, 02, 02, 10, 00, 15, 00, 01, 17, 00, 1b, 00, 00, 1c, 00, 1e, 06, 01, 0d, 00, 0e, 02, 01, 0d, 00, 1e, 11, 00, 1e, 00, 1f, 26, 02, 0d, 00, 0e, 1a, 00, 12, 00, 17, 26, 01, 10, 00, 15, 00, 00, 16, 01, 0e, 52, 02, 14, 00, 19, 00, 01, 1b, 00, 1f, 00, 00, 20, 00, 22, 42, 01, 11, 00, 12, 52, 01, 11, 00, 22, 21, 00, 22, 00, 23, 15, 03, 09, 00, 0f, 5f, 01, 05, 00, 06]
7463
Number of files: 1
7564
- file 0 => global file 1
76-
Number of expressions: 24
65+
Number of expressions: 25
7766
- expression 0 operands: lhs = Counter(0), rhs = Zero
7867
- expression 1 operands: lhs = Counter(0), rhs = Zero
79-
- expression 2 operands: lhs = Expression(8, Add), rhs = Counter(5)
80-
- expression 3 operands: lhs = Expression(9, Add), rhs = Counter(4)
81-
- expression 4 operands: lhs = Zero, rhs = Counter(3)
82-
- expression 5 operands: lhs = Expression(9, Add), rhs = Counter(4)
83-
- expression 6 operands: lhs = Zero, rhs = Counter(3)
84-
- expression 7 operands: lhs = Expression(8, Add), rhs = Counter(5)
85-
- expression 8 operands: lhs = Expression(9, Add), rhs = Counter(4)
86-
- expression 9 operands: lhs = Zero, rhs = Counter(3)
87-
- expression 10 operands: lhs = Expression(18, Add), rhs = Counter(5)
88-
- expression 11 operands: lhs = Expression(19, Add), rhs = Counter(4)
89-
- expression 12 operands: lhs = Zero, rhs = Counter(3)
90-
- expression 13 operands: lhs = Expression(18, Add), rhs = Expression(16, Add)
91-
- expression 14 operands: lhs = Expression(19, Add), rhs = Counter(4)
92-
- expression 15 operands: lhs = Zero, rhs = Counter(3)
93-
- expression 16 operands: lhs = Counter(5), rhs = Zero
94-
- expression 17 operands: lhs = Expression(18, Add), rhs = Counter(5)
95-
- expression 18 operands: lhs = Expression(19, Add), rhs = Counter(4)
96-
- expression 19 operands: lhs = Zero, rhs = Counter(3)
97-
- expression 20 operands: lhs = Expression(23, Add), rhs = Counter(5)
98-
- expression 21 operands: lhs = Zero, rhs = Counter(4)
99-
- expression 22 operands: lhs = Expression(23, Add), rhs = Counter(8)
100-
- expression 23 operands: lhs = Zero, rhs = Counter(4)
68+
- expression 2 operands: lhs = Expression(10, Add), rhs = Expression(24, Add)
69+
- expression 3 operands: lhs = Expression(11, Add), rhs = Counter(3)
70+
- expression 4 operands: lhs = Counter(0), rhs = Zero
71+
- expression 5 operands: lhs = Counter(4), rhs = Counter(5)
72+
- expression 6 operands: lhs = Expression(10, Add), rhs = Counter(4)
73+
- expression 7 operands: lhs = Expression(11, Add), rhs = Counter(3)
74+
- expression 8 operands: lhs = Counter(0), rhs = Zero
75+
- expression 9 operands: lhs = Expression(10, Add), rhs = Expression(24, Add)
76+
- expression 10 operands: lhs = Expression(11, Add), rhs = Counter(3)
77+
- expression 11 operands: lhs = Counter(0), rhs = Zero
78+
- expression 12 operands: lhs = Counter(4), rhs = Counter(5)
79+
- expression 13 operands: lhs = Expression(21, Add), rhs = Expression(24, Add)
80+
- expression 14 operands: lhs = Counter(0), rhs = Counter(3)
81+
- expression 15 operands: lhs = Counter(4), rhs = Counter(5)
82+
- expression 16 operands: lhs = Expression(21, Add), rhs = Expression(18, Add)
83+
- expression 17 operands: lhs = Counter(0), rhs = Counter(3)
84+
- expression 18 operands: lhs = Expression(24, Add), rhs = Zero
85+
- expression 19 operands: lhs = Counter(4), rhs = Counter(5)
86+
- expression 20 operands: lhs = Expression(21, Add), rhs = Expression(24, Add)
87+
- expression 21 operands: lhs = Counter(0), rhs = Counter(3)
88+
- expression 22 operands: lhs = Counter(4), rhs = Counter(5)
89+
- expression 23 operands: lhs = Expression(24, Add), rhs = Counter(8)
90+
- expression 24 operands: lhs = Counter(4), rhs = Counter(5)
10191
Number of file 0 mappings: 20
10292
- Code(Counter(0)) at (prev + 34, 5) to (start + 1, 17)
10393
- Code(Zero) at (prev + 1, 18) to (start + 1, 10)
@@ -109,27 +99,26 @@ Number of file 0 mappings: 20
10999
= (c0 - Zero)
110100
- Code(Expression(0, Sub)) at (prev + 1, 13) to (start + 0, 30)
111101
= (c0 - Zero)
112-
- Code(Counter(8)) at (prev + 0, 30) to (start + 0, 31)
113-
- Code(Expression(7, Sub)) at (prev + 2, 13) to (start + 0, 14)
114-
= (((Zero + c3) + c4) - c5)
115-
- Code(Expression(8, Add)) at (prev + 0, 18) to (start + 0, 23)
116-
= ((Zero + c3) + c4)
117-
- Code(Expression(7, Sub)) at (prev + 1, 16) to (start + 0, 21)
118-
= (((Zero + c3) + c4) - c5)
102+
- Code(Counter(4)) at (prev + 0, 30) to (start + 0, 31)
103+
- Code(Expression(9, Sub)) at (prev + 2, 13) to (start + 0, 14)
104+
= (((c0 + Zero) + c3) - (c4 + c5))
105+
- Code(Expression(6, Sub)) at (prev + 0, 18) to (start + 0, 23)
106+
= (((c0 + Zero) + c3) - c4)
107+
- Code(Expression(9, Sub)) at (prev + 1, 16) to (start + 0, 21)
108+
= (((c0 + Zero) + c3) - (c4 + c5))
119109
- Code(Zero) at (prev + 0, 22) to (start + 1, 14)
120-
- Code(Expression(17, Sub)) at (prev + 2, 20) to (start + 0, 25)
121-
= (((Zero + c3) + c4) - c5)
110+
- Code(Expression(20, Sub)) at (prev + 2, 20) to (start + 0, 25)
111+
= ((c0 + c3) - (c4 + c5))
122112
- Code(Zero) at (prev + 1, 27) to (start + 0, 31)
123113
- Code(Zero) at (prev + 0, 32) to (start + 0, 34)
124-
- Code(Expression(13, Sub)) at (prev + 1, 17) to (start + 0, 18)
125-
= (((Zero + c3) + c4) - (c5 + Zero))
126-
- Code(Expression(17, Sub)) at (prev + 1, 17) to (start + 0, 34)
127-
= (((Zero + c3) + c4) - c5)
128-
- Code(Expression(20, Sub)) at (prev + 0, 34) to (start + 0, 35)
129-
= ((Zero + c4) - c5)
114+
- Code(Expression(16, Sub)) at (prev + 1, 17) to (start + 0, 18)
115+
= ((c0 + c3) - ((c4 + c5) + Zero))
116+
- Code(Expression(20, Sub)) at (prev + 1, 17) to (start + 0, 34)
117+
= ((c0 + c3) - (c4 + c5))
118+
- Code(Counter(8)) at (prev + 0, 34) to (start + 0, 35)
130119
- Code(Counter(5)) at (prev + 3, 9) to (start + 0, 15)
131-
- Code(Expression(22, Add)) at (prev + 1, 5) to (start + 0, 6)
132-
= ((Zero + c4) + c8)
120+
- Code(Expression(23, Add)) at (prev + 1, 5) to (start + 0, 6)
121+
= ((c4 + c5) + c8)
133122
Highest counter ID seen: c8
134123

135124
Function name: loops_branches::main
Lines changed: 34 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,93 +1,49 @@
11
Function name: condition_limit::accept_7_conditions
2-
Raw bytes (237): 0x[01, 01, 2e, 01, 05, 05, 09, 05, 09, 05, 7b, 09, 0d, 05, 7b, 09, 0d, 05, 77, 7b, 11, 09, 0d, 05, 77, 7b, 11, 09, 0d, 05, 73, 77, 15, 7b, 11, 09, 0d, 05, 73, 77, 15, 7b, 11, 09, 0d, 05, 6f, 73, 19, 77, 15, 7b, 11, 09, 0d, 05, 6f, 73, 19, 77, 15, 7b, 11, 09, 0d, 83, 01, 05, a7, 01, 21, ab, 01, 19, af, 01, 15, b3, 01, 11, b7, 01, 0d, 01, 09, 9f, 01, 05, a3, 01, 21, a7, 01, 1d, ab, 01, 19, af, 01, 15, b3, 01, 11, b7, 01, 0d, 01, 09, 12, 01, 07, 01, 02, 09, 28, 08, 07, 02, 08, 00, 27, 30, 05, 02, 01, 07, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 0a, 09, 07, 06, 00, 00, 0d, 00, 0e, 0a, 00, 12, 00, 13, 30, 16, 0d, 06, 05, 00, 00, 12, 00, 13, 16, 00, 17, 00, 18, 30, 2a, 11, 05, 04, 00, 00, 17, 00, 18, 2a, 00, 1c, 00, 1d, 30, 46, 15, 04, 03, 00, 00, 1c, 00, 1d, 46, 00, 21, 00, 22, 30, 6a, 19, 03, 02, 00, 00, 21, 00, 22, 6a, 00, 26, 00, 27, 30, 1d, 21, 02, 00, 00, 00, 26, 00, 27, 1d, 00, 28, 02, 06, 7e, 02, 05, 00, 06, 9a, 01, 01, 01, 00, 02]
2+
Raw bytes (147): 0x[01, 01, 08, 01, 05, 05, 09, 09, 0d, 0d, 11, 11, 15, 15, 19, 19, 1d, 01, 1d, 12, 01, 07, 01, 02, 09, 28, 08, 07, 02, 08, 00, 27, 30, 05, 02, 01, 07, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 09, 06, 07, 06, 00, 00, 0d, 00, 0e, 09, 00, 12, 00, 13, 30, 0d, 0a, 06, 05, 00, 00, 12, 00, 13, 0d, 00, 17, 00, 18, 30, 11, 0e, 05, 04, 00, 00, 17, 00, 18, 11, 00, 1c, 00, 1d, 30, 15, 12, 04, 03, 00, 00, 1c, 00, 1d, 15, 00, 21, 00, 22, 30, 19, 16, 03, 02, 00, 00, 21, 00, 22, 19, 00, 26, 00, 27, 30, 1d, 1a, 02, 00, 00, 00, 26, 00, 27, 1d, 00, 28, 02, 06, 1e, 02, 05, 00, 06, 01, 01, 01, 00, 02]
33
Number of files: 1
44
- file 0 => global file 1
5-
Number of expressions: 46
5+
Number of expressions: 8
66
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
77
- expression 1 operands: lhs = Counter(1), rhs = Counter(2)
8-
- expression 2 operands: lhs = Counter(1), rhs = Counter(2)
9-
- expression 3 operands: lhs = Counter(1), rhs = Expression(30, Add)
10-
- expression 4 operands: lhs = Counter(2), rhs = Counter(3)
11-
- expression 5 operands: lhs = Counter(1), rhs = Expression(30, Add)
12-
- expression 6 operands: lhs = Counter(2), rhs = Counter(3)
13-
- expression 7 operands: lhs = Counter(1), rhs = Expression(29, Add)
14-
- expression 8 operands: lhs = Expression(30, Add), rhs = Counter(4)
15-
- expression 9 operands: lhs = Counter(2), rhs = Counter(3)
16-
- expression 10 operands: lhs = Counter(1), rhs = Expression(29, Add)
17-
- expression 11 operands: lhs = Expression(30, Add), rhs = Counter(4)
18-
- expression 12 operands: lhs = Counter(2), rhs = Counter(3)
19-
- expression 13 operands: lhs = Counter(1), rhs = Expression(28, Add)
20-
- expression 14 operands: lhs = Expression(29, Add), rhs = Counter(5)
21-
- expression 15 operands: lhs = Expression(30, Add), rhs = Counter(4)
22-
- expression 16 operands: lhs = Counter(2), rhs = Counter(3)
23-
- expression 17 operands: lhs = Counter(1), rhs = Expression(28, Add)
24-
- expression 18 operands: lhs = Expression(29, Add), rhs = Counter(5)
25-
- expression 19 operands: lhs = Expression(30, Add), rhs = Counter(4)
26-
- expression 20 operands: lhs = Counter(2), rhs = Counter(3)
27-
- expression 21 operands: lhs = Counter(1), rhs = Expression(27, Add)
28-
- expression 22 operands: lhs = Expression(28, Add), rhs = Counter(6)
29-
- expression 23 operands: lhs = Expression(29, Add), rhs = Counter(5)
30-
- expression 24 operands: lhs = Expression(30, Add), rhs = Counter(4)
31-
- expression 25 operands: lhs = Counter(2), rhs = Counter(3)
32-
- expression 26 operands: lhs = Counter(1), rhs = Expression(27, Add)
33-
- expression 27 operands: lhs = Expression(28, Add), rhs = Counter(6)
34-
- expression 28 operands: lhs = Expression(29, Add), rhs = Counter(5)
35-
- expression 29 operands: lhs = Expression(30, Add), rhs = Counter(4)
36-
- expression 30 operands: lhs = Counter(2), rhs = Counter(3)
37-
- expression 31 operands: lhs = Expression(32, Add), rhs = Counter(1)
38-
- expression 32 operands: lhs = Expression(41, Add), rhs = Counter(8)
39-
- expression 33 operands: lhs = Expression(42, Add), rhs = Counter(6)
40-
- expression 34 operands: lhs = Expression(43, Add), rhs = Counter(5)
41-
- expression 35 operands: lhs = Expression(44, Add), rhs = Counter(4)
42-
- expression 36 operands: lhs = Expression(45, Add), rhs = Counter(3)
43-
- expression 37 operands: lhs = Counter(0), rhs = Counter(2)
44-
- expression 38 operands: lhs = Expression(39, Add), rhs = Counter(1)
45-
- expression 39 operands: lhs = Expression(40, Add), rhs = Counter(8)
46-
- expression 40 operands: lhs = Expression(41, Add), rhs = Counter(7)
47-
- expression 41 operands: lhs = Expression(42, Add), rhs = Counter(6)
48-
- expression 42 operands: lhs = Expression(43, Add), rhs = Counter(5)
49-
- expression 43 operands: lhs = Expression(44, Add), rhs = Counter(4)
50-
- expression 44 operands: lhs = Expression(45, Add), rhs = Counter(3)
51-
- expression 45 operands: lhs = Counter(0), rhs = Counter(2)
8+
- expression 2 operands: lhs = Counter(2), rhs = Counter(3)
9+
- expression 3 operands: lhs = Counter(3), rhs = Counter(4)
10+
- expression 4 operands: lhs = Counter(4), rhs = Counter(5)
11+
- expression 5 operands: lhs = Counter(5), rhs = Counter(6)
12+
- expression 6 operands: lhs = Counter(6), rhs = Counter(7)
13+
- expression 7 operands: lhs = Counter(0), rhs = Counter(7)
5214
Number of file 0 mappings: 18
5315
- Code(Counter(0)) at (prev + 7, 1) to (start + 2, 9)
5416
- MCDCDecision { bitmap_idx: 8, conditions_num: 7 } at (prev + 2, 8) to (start + 0, 39)
5517
- MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 7, false_next_id: 0 } at (prev + 0, 8) to (start + 0, 9)
5618
true = c1
5719
false = (c0 - c1)
5820
- Code(Counter(1)) at (prev + 0, 13) to (start + 0, 14)
59-
- MCDCBranch { true: Expression(2, Sub), false: Counter(2), condition_id: 7, true_next_id: 6, false_next_id: 0 } at (prev + 0, 13) to (start + 0, 14)
60-
true = (c1 - c2)
61-
false = c2
62-
- Code(Expression(2, Sub)) at (prev + 0, 18) to (start + 0, 19)
63-
= (c1 - c2)
64-
- MCDCBranch { true: Expression(5, Sub), false: Counter(3), condition_id: 6, true_next_id: 5, false_next_id: 0 } at (prev + 0, 18) to (start + 0, 19)
65-
true = (c1 - (c2 + c3))
66-
false = c3
67-
- Code(Expression(5, Sub)) at (prev + 0, 23) to (start + 0, 24)
68-
= (c1 - (c2 + c3))
69-
- MCDCBranch { true: Expression(10, Sub), false: Counter(4), condition_id: 5, true_next_id: 4, false_next_id: 0 } at (prev + 0, 23) to (start + 0, 24)
70-
true = (c1 - ((c2 + c3) + c4))
71-
false = c4
72-
- Code(Expression(10, Sub)) at (prev + 0, 28) to (start + 0, 29)
73-
= (c1 - ((c2 + c3) + c4))
74-
- MCDCBranch { true: Expression(17, Sub), false: Counter(5), condition_id: 4, true_next_id: 3, false_next_id: 0 } at (prev + 0, 28) to (start + 0, 29)
75-
true = (c1 - (((c2 + c3) + c4) + c5))
76-
false = c5
77-
- Code(Expression(17, Sub)) at (prev + 0, 33) to (start + 0, 34)
78-
= (c1 - (((c2 + c3) + c4) + c5))
79-
- MCDCBranch { true: Expression(26, Sub), false: Counter(6), condition_id: 3, true_next_id: 2, false_next_id: 0 } at (prev + 0, 33) to (start + 0, 34)
80-
true = (c1 - ((((c2 + c3) + c4) + c5) + c6))
81-
false = c6
82-
- Code(Expression(26, Sub)) at (prev + 0, 38) to (start + 0, 39)
83-
= (c1 - ((((c2 + c3) + c4) + c5) + c6))
84-
- MCDCBranch { true: Counter(7), false: Counter(8), condition_id: 2, true_next_id: 0, false_next_id: 0 } at (prev + 0, 38) to (start + 0, 39)
21+
- MCDCBranch { true: Counter(2), false: Expression(1, Sub), condition_id: 7, true_next_id: 6, false_next_id: 0 } at (prev + 0, 13) to (start + 0, 14)
22+
true = c2
23+
false = (c1 - c2)
24+
- Code(Counter(2)) at (prev + 0, 18) to (start + 0, 19)
25+
- MCDCBranch { true: Counter(3), false: Expression(2, Sub), condition_id: 6, true_next_id: 5, false_next_id: 0 } at (prev + 0, 18) to (start + 0, 19)
26+
true = c3
27+
false = (c2 - c3)
28+
- Code(Counter(3)) at (prev + 0, 23) to (start + 0, 24)
29+
- MCDCBranch { true: Counter(4), false: Expression(3, Sub), condition_id: 5, true_next_id: 4, false_next_id: 0 } at (prev + 0, 23) to (start + 0, 24)
30+
true = c4
31+
false = (c3 - c4)
32+
- Code(Counter(4)) at (prev + 0, 28) to (start + 0, 29)
33+
- MCDCBranch { true: Counter(5), false: Expression(4, Sub), condition_id: 4, true_next_id: 3, false_next_id: 0 } at (prev + 0, 28) to (start + 0, 29)
34+
true = c5
35+
false = (c4 - c5)
36+
- Code(Counter(5)) at (prev + 0, 33) to (start + 0, 34)
37+
- MCDCBranch { true: Counter(6), false: Expression(5, Sub), condition_id: 3, true_next_id: 2, false_next_id: 0 } at (prev + 0, 33) to (start + 0, 34)
38+
true = c6
39+
false = (c5 - c6)
40+
- Code(Counter(6)) at (prev + 0, 38) to (start + 0, 39)
41+
- MCDCBranch { true: Counter(7), false: Expression(6, Sub), condition_id: 2, true_next_id: 0, false_next_id: 0 } at (prev + 0, 38) to (start + 0, 39)
8542
true = c7
86-
false = c8
43+
false = (c6 - c7)
8744
- Code(Counter(7)) at (prev + 0, 40) to (start + 2, 6)
88-
- Code(Expression(31, Sub)) at (prev + 2, 5) to (start + 0, 6)
89-
= (((((((c0 + c2) + c3) + c4) + c5) + c6) + c8) - c1)
90-
- Code(Expression(38, Sub)) at (prev + 1, 1) to (start + 0, 2)
91-
= ((((((((c0 + c2) + c3) + c4) + c5) + c6) + c7) + c8) - c1)
92-
Highest counter ID seen: c8
45+
- Code(Expression(7, Sub)) at (prev + 2, 5) to (start + 0, 6)
46+
= (c0 - c7)
47+
- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
48+
Highest counter ID seen: c7
9349

‎tests/coverage/mcdc/if.cov-map

Lines changed: 86 additions & 117 deletions
Large diffs are not rendered by default.
Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,20 @@
11
Function name: inlined_expressions::inlined_instance
2-
Raw bytes (54): 0x[01, 01, 04, 01, 05, 0b, 05, 0f, 0d, 01, 09, 06, 01, 08, 01, 01, 06, 28, 03, 02, 01, 05, 00, 0b, 30, 05, 02, 01, 02, 00, 00, 05, 00, 06, 05, 00, 0a, 00, 0b, 30, 09, 0d, 02, 00, 00, 00, 0a, 00, 0b, 06, 01, 01, 00, 02]
2+
Raw bytes (50): 0x[01, 01, 02, 01, 05, 05, 09, 06, 01, 08, 01, 01, 06, 28, 03, 02, 01, 05, 00, 0b, 30, 05, 02, 01, 02, 00, 00, 05, 00, 06, 05, 00, 0a, 00, 0b, 30, 09, 06, 02, 00, 00, 00, 0a, 00, 0b, 01, 01, 01, 00, 02]
33
Number of files: 1
44
- file 0 => global file 1
5-
Number of expressions: 4
5+
Number of expressions: 2
66
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
7-
- expression 1 operands: lhs = Expression(2, Add), rhs = Counter(1)
8-
- expression 2 operands: lhs = Expression(3, Add), rhs = Counter(3)
9-
- expression 3 operands: lhs = Counter(0), rhs = Counter(2)
7+
- expression 1 operands: lhs = Counter(1), rhs = Counter(2)
108
Number of file 0 mappings: 6
119
- Code(Counter(0)) at (prev + 8, 1) to (start + 1, 6)
1210
- MCDCDecision { bitmap_idx: 3, conditions_num: 2 } at (prev + 1, 5) to (start + 0, 11)
1311
- MCDCBranch { true: Counter(1), false: Expression(0, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 5) to (start + 0, 6)
1412
true = c1
1513
false = (c0 - c1)
1614
- Code(Counter(1)) at (prev + 0, 10) to (start + 0, 11)
17-
- MCDCBranch { true: Counter(2), false: Counter(3), condition_id: 2, true_next_id: 0, false_next_id: 0 } at (prev + 0, 10) to (start + 0, 11)
15+
- MCDCBranch { true: Counter(2), false: Expression(1, Sub), condition_id: 2, true_next_id: 0, false_next_id: 0 } at (prev + 0, 10) to (start + 0, 11)
1816
true = c2
19-
false = c3
20-
- Code(Expression(1, Sub)) at (prev + 1, 1) to (start + 0, 2)
21-
= (((c0 + c2) + c3) - c1)
22-
Highest counter ID seen: c3
17+
false = (c1 - c2)
18+
- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
19+
Highest counter ID seen: c2
2320

‎tests/coverage/mcdc/nested_if.cov-map

Lines changed: 41 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,22 @@
11
Function name: nested_if::doubly_nested_if_in_condition
2-
Raw bytes (172): 0x[01, 01, 10, 01, 05, 05, 09, 05, 09, 05, 27, 09, 19, 19, 1d, 19, 1d, 23, 27, 05, 1d, 09, 19, 09, 0d, 33, 05, 01, 15, 3b, 05, 3f, 15, 01, 11, 14, 01, 0f, 01, 01, 09, 28, 09, 02, 01, 08, 00, 4e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 11, 15, 02, 00, 00, 00, 0d, 00, 4e, 05, 00, 10, 00, 11, 28, 06, 02, 00, 10, 00, 36, 30, 09, 0a, 01, 00, 02, 00, 10, 00, 11, 30, 0d, 21, 02, 00, 00, 00, 15, 00, 36, 0a, 00, 18, 00, 19, 28, 03, 02, 00, 18, 00, 1e, 30, 19, 0e, 01, 02, 00, 00, 18, 00, 19, 19, 00, 1d, 00, 1e, 30, 1a, 1d, 02, 00, 00, 00, 1d, 00, 1e, 1a, 00, 21, 00, 25, 1e, 00, 2f, 00, 34, 2b, 00, 39, 00, 3e, 21, 00, 48, 00, 4c, 11, 00, 4f, 02, 06, 2e, 02, 0c, 02, 06, 36, 03, 01, 00, 02]
2+
Raw bytes (168): 0x[01, 01, 0e, 01, 05, 05, 09, 05, 09, 05, 13, 09, 19, 19, 1d, 05, 1f, 09, 1d, 09, 0d, 2b, 05, 01, 15, 33, 05, 37, 15, 01, 11, 14, 01, 0f, 01, 01, 09, 28, 09, 02, 01, 08, 00, 4e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 11, 15, 02, 00, 00, 00, 0d, 00, 4e, 05, 00, 10, 00, 11, 28, 06, 02, 00, 10, 00, 36, 30, 09, 0a, 01, 00, 02, 00, 10, 00, 11, 30, 0d, 21, 02, 00, 00, 00, 15, 00, 36, 0a, 00, 18, 00, 19, 28, 03, 02, 00, 18, 00, 1e, 30, 19, 0e, 01, 02, 00, 00, 18, 00, 19, 19, 00, 1d, 00, 1e, 30, 1d, 16, 02, 00, 00, 00, 1d, 00, 1e, 1d, 00, 21, 00, 25, 1a, 00, 2f, 00, 34, 23, 00, 39, 00, 3e, 21, 00, 48, 00, 4c, 11, 00, 4f, 02, 06, 26, 02, 0c, 02, 06, 2e, 03, 01, 00, 02]
33
Number of files: 1
44
- file 0 => global file 1
5-
Number of expressions: 16
5+
Number of expressions: 14
66
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
77
- expression 1 operands: lhs = Counter(1), rhs = Counter(2)
88
- expression 2 operands: lhs = Counter(1), rhs = Counter(2)
9-
- expression 3 operands: lhs = Counter(1), rhs = Expression(9, Add)
9+
- expression 3 operands: lhs = Counter(1), rhs = Expression(4, Add)
1010
- expression 4 operands: lhs = Counter(2), rhs = Counter(6)
1111
- expression 5 operands: lhs = Counter(6), rhs = Counter(7)
12-
- expression 6 operands: lhs = Counter(6), rhs = Counter(7)
13-
- expression 7 operands: lhs = Expression(8, Add), rhs = Expression(9, Add)
14-
- expression 8 operands: lhs = Counter(1), rhs = Counter(7)
15-
- expression 9 operands: lhs = Counter(2), rhs = Counter(6)
16-
- expression 10 operands: lhs = Counter(2), rhs = Counter(3)
12+
- expression 6 operands: lhs = Counter(1), rhs = Expression(7, Add)
13+
- expression 7 operands: lhs = Counter(2), rhs = Counter(7)
14+
- expression 8 operands: lhs = Counter(2), rhs = Counter(3)
15+
- expression 9 operands: lhs = Expression(10, Add), rhs = Counter(1)
16+
- expression 10 operands: lhs = Counter(0), rhs = Counter(5)
1717
- expression 11 operands: lhs = Expression(12, Add), rhs = Counter(1)
18-
- expression 12 operands: lhs = Counter(0), rhs = Counter(5)
19-
- expression 13 operands: lhs = Expression(14, Add), rhs = Counter(1)
20-
- expression 14 operands: lhs = Expression(15, Add), rhs = Counter(5)
21-
- expression 15 operands: lhs = Counter(0), rhs = Counter(4)
18+
- expression 12 operands: lhs = Expression(13, Add), rhs = Counter(5)
19+
- expression 13 operands: lhs = Counter(0), rhs = Counter(4)
2220
Number of file 0 mappings: 20
2321
- Code(Counter(0)) at (prev + 15, 1) to (start + 1, 9)
2422
- MCDCDecision { bitmap_idx: 9, conditions_num: 2 } at (prev + 1, 8) to (start + 0, 78)
@@ -43,20 +41,19 @@ Number of file 0 mappings: 20
4341
true = c6
4442
false = (c1 - (c2 + c6))
4543
- Code(Counter(6)) at (prev + 0, 29) to (start + 0, 30)
46-
- MCDCBranch { true: Expression(6, Sub), false: Counter(7), condition_id: 2, true_next_id: 0, false_next_id: 0 } at (prev + 0, 29) to (start + 0, 30)
47-
true = (c6 - c7)
48-
false = c7
49-
- Code(Expression(6, Sub)) at (prev + 0, 33) to (start + 0, 37)
50-
= (c6 - c7)
51-
- Code(Expression(7, Sub)) at (prev + 0, 47) to (start + 0, 52)
52-
= ((c1 + c7) - (c2 + c6))
53-
- Code(Expression(10, Add)) at (prev + 0, 57) to (start + 0, 62)
44+
- MCDCBranch { true: Counter(7), false: Expression(5, Sub), condition_id: 2, true_next_id: 0, false_next_id: 0 } at (prev + 0, 29) to (start + 0, 30)
45+
true = c7
46+
false = (c6 - c7)
47+
- Code(Counter(7)) at (prev + 0, 33) to (start + 0, 37)
48+
- Code(Expression(6, Sub)) at (prev + 0, 47) to (start + 0, 52)
49+
= (c1 - (c2 + c7))
50+
- Code(Expression(8, Add)) at (prev + 0, 57) to (start + 0, 62)
5451
= (c2 + c3)
5552
- Code(Counter(8)) at (prev + 0, 72) to (start + 0, 76)
5653
- Code(Counter(4)) at (prev + 0, 79) to (start + 2, 6)
57-
- Code(Expression(11, Sub)) at (prev + 2, 12) to (start + 2, 6)
54+
- Code(Expression(9, Sub)) at (prev + 2, 12) to (start + 2, 6)
5855
= ((c0 + c5) - c1)
59-
- Code(Expression(13, Sub)) at (prev + 3, 1) to (start + 0, 2)
56+
- Code(Expression(11, Sub)) at (prev + 3, 1) to (start + 0, 2)
6057
= (((c0 + c4) + c5) - c1)
6158
Highest counter ID seen: c8
6259

@@ -109,30 +106,28 @@ Number of file 0 mappings: 14
109106
Highest counter ID seen: c5
110107

111108
Function name: nested_if::nested_in_then_block_in_condition
112-
Raw bytes (180): 0x[01, 01, 14, 01, 05, 05, 09, 05, 09, 05, 3b, 09, 0d, 09, 0d, 3b, 11, 09, 0d, 11, 15, 11, 15, 2f, 11, 3b, 15, 09, 0d, 05, 3b, 09, 0d, 43, 05, 01, 1d, 4b, 05, 4f, 1d, 01, 19, 14, 01, 22, 01, 01, 09, 28, 09, 02, 01, 08, 00, 4b, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 19, 1d, 02, 00, 00, 00, 0d, 00, 4b, 05, 00, 10, 00, 11, 28, 03, 02, 00, 10, 00, 16, 30, 09, 0a, 01, 00, 02, 00, 10, 00, 11, 0a, 00, 15, 00, 16, 30, 0d, 36, 02, 00, 00, 00, 15, 00, 16, 3b, 00, 1c, 00, 1d, 28, 06, 02, 00, 1c, 00, 22, 30, 11, 1a, 01, 02, 00, 00, 1c, 00, 1d, 11, 00, 21, 00, 22, 30, 26, 15, 02, 00, 00, 00, 21, 00, 22, 26, 00, 25, 00, 29, 2a, 00, 33, 00, 38, 36, 00, 44, 00, 49, 19, 00, 4c, 02, 06, 3e, 02, 0c, 02, 06, 46, 03, 01, 00, 02]
109+
Raw bytes (176): 0x[01, 01, 12, 01, 05, 05, 09, 05, 09, 05, 33, 09, 0d, 09, 0d, 33, 11, 09, 0d, 11, 15, 33, 15, 09, 0d, 05, 33, 09, 0d, 3b, 05, 01, 1d, 43, 05, 47, 1d, 01, 19, 14, 01, 22, 01, 01, 09, 28, 09, 02, 01, 08, 00, 4b, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 19, 1d, 02, 00, 00, 00, 0d, 00, 4b, 05, 00, 10, 00, 11, 28, 03, 02, 00, 10, 00, 16, 30, 09, 0a, 01, 00, 02, 00, 10, 00, 11, 0a, 00, 15, 00, 16, 30, 0d, 2e, 02, 00, 00, 00, 15, 00, 16, 33, 00, 1c, 00, 1d, 28, 06, 02, 00, 1c, 00, 22, 30, 11, 1a, 01, 02, 00, 00, 1c, 00, 1d, 11, 00, 21, 00, 22, 30, 15, 22, 02, 00, 00, 00, 21, 00, 22, 15, 00, 25, 00, 29, 26, 00, 33, 00, 38, 2e, 00, 44, 00, 49, 19, 00, 4c, 02, 06, 36, 02, 0c, 02, 06, 3e, 03, 01, 00, 02]
113110
Number of files: 1
114111
- file 0 => global file 1
115-
Number of expressions: 20
112+
Number of expressions: 18
116113
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
117114
- expression 1 operands: lhs = Counter(1), rhs = Counter(2)
118115
- expression 2 operands: lhs = Counter(1), rhs = Counter(2)
119-
- expression 3 operands: lhs = Counter(1), rhs = Expression(14, Add)
116+
- expression 3 operands: lhs = Counter(1), rhs = Expression(12, Add)
120117
- expression 4 operands: lhs = Counter(2), rhs = Counter(3)
121118
- expression 5 operands: lhs = Counter(2), rhs = Counter(3)
122-
- expression 6 operands: lhs = Expression(14, Add), rhs = Counter(4)
119+
- expression 6 operands: lhs = Expression(12, Add), rhs = Counter(4)
123120
- expression 7 operands: lhs = Counter(2), rhs = Counter(3)
124121
- expression 8 operands: lhs = Counter(4), rhs = Counter(5)
125-
- expression 9 operands: lhs = Counter(4), rhs = Counter(5)
126-
- expression 10 operands: lhs = Expression(11, Add), rhs = Counter(4)
127-
- expression 11 operands: lhs = Expression(14, Add), rhs = Counter(5)
122+
- expression 9 operands: lhs = Expression(12, Add), rhs = Counter(5)
123+
- expression 10 operands: lhs = Counter(2), rhs = Counter(3)
124+
- expression 11 operands: lhs = Counter(1), rhs = Expression(12, Add)
128125
- expression 12 operands: lhs = Counter(2), rhs = Counter(3)
129-
- expression 13 operands: lhs = Counter(1), rhs = Expression(14, Add)
130-
- expression 14 operands: lhs = Counter(2), rhs = Counter(3)
126+
- expression 13 operands: lhs = Expression(14, Add), rhs = Counter(1)
127+
- expression 14 operands: lhs = Counter(0), rhs = Counter(7)
131128
- expression 15 operands: lhs = Expression(16, Add), rhs = Counter(1)
132-
- expression 16 operands: lhs = Counter(0), rhs = Counter(7)
133-
- expression 17 operands: lhs = Expression(18, Add), rhs = Counter(1)
134-
- expression 18 operands: lhs = Expression(19, Add), rhs = Counter(7)
135-
- expression 19 operands: lhs = Counter(0), rhs = Counter(6)
129+
- expression 16 operands: lhs = Expression(17, Add), rhs = Counter(7)
130+
- expression 17 operands: lhs = Counter(0), rhs = Counter(6)
136131
Number of file 0 mappings: 20
137132
- Code(Counter(0)) at (prev + 34, 1) to (start + 1, 9)
138133
- MCDCDecision { bitmap_idx: 9, conditions_num: 2 } at (prev + 1, 8) to (start + 0, 75)
@@ -149,29 +144,28 @@ Number of file 0 mappings: 20
149144
false = (c1 - c2)
150145
- Code(Expression(2, Sub)) at (prev + 0, 21) to (start + 0, 22)
151146
= (c1 - c2)
152-
- MCDCBranch { true: Counter(3), false: Expression(13, Sub), condition_id: 2, true_next_id: 0, false_next_id: 0 } at (prev + 0, 21) to (start + 0, 22)
147+
- MCDCBranch { true: Counter(3), false: Expression(11, Sub), condition_id: 2, true_next_id: 0, false_next_id: 0 } at (prev + 0, 21) to (start + 0, 22)
153148
true = c3
154149
false = (c1 - (c2 + c3))
155-
- Code(Expression(14, Add)) at (prev + 0, 28) to (start + 0, 29)
150+
- Code(Expression(12, Add)) at (prev + 0, 28) to (start + 0, 29)
156151
= (c2 + c3)
157152
- MCDCDecision { bitmap_idx: 6, conditions_num: 2 } at (prev + 0, 28) to (start + 0, 34)
158153
- MCDCBranch { true: Counter(4), false: Expression(6, Sub), condition_id: 1, true_next_id: 2, false_next_id: 0 } at (prev + 0, 28) to (start + 0, 29)
159154
true = c4
160155
false = ((c2 + c3) - c4)
161156
- Code(Counter(4)) at (prev + 0, 33) to (start + 0, 34)
162-
- MCDCBranch { true: Expression(9, Sub), false: Counter(5), condition_id: 2, true_next_id: 0, false_next_id: 0 } at (prev + 0, 33) to (start + 0, 34)
163-
true = (c4 - c5)
164-
false = c5
165-
- Code(Expression(9, Sub)) at (prev + 0, 37) to (start + 0, 41)
166-
= (c4 - c5)
167-
- Code(Expression(10, Sub)) at (prev + 0, 51) to (start + 0, 56)
168-
= (((c2 + c3) + c5) - c4)
169-
- Code(Expression(13, Sub)) at (prev + 0, 68) to (start + 0, 73)
157+
- MCDCBranch { true: Counter(5), false: Expression(8, Sub), condition_id: 2, true_next_id: 0, false_next_id: 0 } at (prev + 0, 33) to (start + 0, 34)
158+
true = c5
159+
false = (c4 - c5)
160+
- Code(Counter(5)) at (prev + 0, 37) to (start + 0, 41)
161+
- Code(Expression(9, Sub)) at (prev + 0, 51) to (start + 0, 56)
162+
= ((c2 + c3) - c5)
163+
- Code(Expression(11, Sub)) at (prev + 0, 68) to (start + 0, 73)
170164
= (c1 - (c2 + c3))
171165
- Code(Counter(6)) at (prev + 0, 76) to (start + 2, 6)
172-
- Code(Expression(15, Sub)) at (prev + 2, 12) to (start + 2, 6)
166+
- Code(Expression(13, Sub)) at (prev + 2, 12) to (start + 2, 6)
173167
= ((c0 + c7) - c1)
174-
- Code(Expression(17, Sub)) at (prev + 3, 1) to (start + 0, 2)
168+
- Code(Expression(15, Sub)) at (prev + 3, 1) to (start + 0, 2)
175169
= (((c0 + c6) + c7) - c1)
176170
Highest counter ID seen: c7
177171

‎tests/coverage/mcdc/non_control_flow.cov-map

Lines changed: 84 additions & 123 deletions
Large diffs are not rendered by default.

‎tests/coverage/try_error_result.cov-map

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,18 +55,15 @@ Number of file 0 mappings: 4
5555
Highest counter ID seen: c1
5656

5757
Function name: try_error_result::test1
58-
Raw bytes (75): 0x[01, 01, 08, 07, 09, 01, 00, 03, 0d, 03, 13, 0d, 11, 1b, 00, 1f, 00, 0d, 15, 0b, 01, 0d, 01, 02, 17, 03, 07, 09, 00, 0e, 0a, 02, 09, 04, 1a, 11, 06, 0d, 00, 29, 15, 00, 29, 00, 2a, 00, 01, 0d, 00, 2a, 00, 00, 2a, 00, 2b, 0e, 04, 0d, 00, 2a, 00, 00, 2a, 00, 2b, 0d, 03, 05, 00, 0b, 17, 01, 01, 00, 02]
58+
Raw bytes (69): 0x[01, 01, 05, 07, 09, 01, 00, 03, 0d, 03, 13, 0d, 11, 0b, 01, 0d, 01, 02, 17, 03, 07, 09, 00, 0e, 0a, 02, 09, 04, 1a, 11, 06, 0d, 00, 29, 15, 00, 29, 00, 2a, 00, 01, 0d, 00, 2a, 00, 00, 2a, 00, 2b, 0e, 04, 0d, 00, 2a, 00, 00, 2a, 00, 2b, 0d, 03, 05, 00, 0b, 01, 01, 01, 00, 02]
5959
Number of files: 1
6060
- file 0 => global file 1
61-
Number of expressions: 8
61+
Number of expressions: 5
6262
- expression 0 operands: lhs = Expression(1, Add), rhs = Counter(2)
6363
- expression 1 operands: lhs = Counter(0), rhs = Zero
6464
- expression 2 operands: lhs = Expression(0, Add), rhs = Counter(3)
6565
- expression 3 operands: lhs = Expression(0, Add), rhs = Expression(4, Add)
6666
- expression 4 operands: lhs = Counter(3), rhs = Counter(4)
67-
- expression 5 operands: lhs = Expression(6, Add), rhs = Zero
68-
- expression 6 operands: lhs = Expression(7, Add), rhs = Zero
69-
- expression 7 operands: lhs = Counter(3), rhs = Counter(5)
7067
Number of file 0 mappings: 11
7168
- Code(Counter(0)) at (prev + 13, 1) to (start + 2, 23)
7269
- Code(Expression(0, Add)) at (prev + 7, 9) to (start + 0, 14)
@@ -81,8 +78,7 @@ Number of file 0 mappings: 11
8178
= (((c0 + Zero) + c2) - (c3 + c4))
8279
- Code(Zero) at (prev + 0, 42) to (start + 0, 43)
8380
- Code(Counter(3)) at (prev + 3, 5) to (start + 0, 11)
84-
- Code(Expression(5, Add)) at (prev + 1, 1) to (start + 0, 2)
85-
= (((c3 + c5) + Zero) + Zero)
81+
- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
8682
Highest counter ID seen: c5
8783

8884
Function name: try_error_result::test2

‎tests/coverage/unicode.cov-map

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
Function name: unicode::main
2-
Raw bytes (61): 0x[01, 01, 06, 01, 05, 0b, 09, 01, 11, 13, 09, 17, 11, 01, 0d, 09, 01, 0e, 01, 00, 0b, 05, 01, 09, 00, 0c, 03, 00, 10, 00, 1b, 05, 00, 1c, 00, 28, 01, 02, 08, 00, 25, 09, 00, 29, 00, 46, 0d, 00, 47, 02, 06, 06, 02, 05, 00, 06, 0e, 02, 05, 01, 02]
2+
Raw bytes (53): 0x[01, 01, 02, 01, 05, 01, 0d, 09, 01, 0e, 01, 00, 0b, 05, 01, 09, 00, 0c, 03, 00, 10, 00, 1b, 05, 00, 1c, 00, 28, 01, 02, 08, 00, 25, 09, 00, 29, 00, 46, 0d, 00, 47, 02, 06, 06, 02, 05, 00, 06, 01, 02, 05, 01, 02]
33
Number of files: 1
44
- file 0 => global file 1
5-
Number of expressions: 6
5+
Number of expressions: 2
66
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
7-
- expression 1 operands: lhs = Expression(2, Add), rhs = Counter(2)
8-
- expression 2 operands: lhs = Counter(0), rhs = Counter(4)
9-
- expression 3 operands: lhs = Expression(4, Add), rhs = Counter(2)
10-
- expression 4 operands: lhs = Expression(5, Add), rhs = Counter(4)
11-
- expression 5 operands: lhs = Counter(0), rhs = Counter(3)
7+
- expression 1 operands: lhs = Counter(0), rhs = Counter(3)
128
Number of file 0 mappings: 9
139
- Code(Counter(0)) at (prev + 14, 1) to (start + 0, 11)
1410
- Code(Counter(1)) at (prev + 1, 9) to (start + 0, 12)
@@ -19,9 +15,8 @@ Number of file 0 mappings: 9
1915
- Code(Counter(2)) at (prev + 0, 41) to (start + 0, 70)
2016
- Code(Counter(3)) at (prev + 0, 71) to (start + 2, 6)
2117
- Code(Expression(1, Sub)) at (prev + 2, 5) to (start + 0, 6)
22-
= ((c0 + c4) - c2)
23-
- Code(Expression(3, Sub)) at (prev + 2, 5) to (start + 1, 2)
24-
= (((c0 + c3) + c4) - c2)
18+
= (c0 - c3)
19+
- Code(Counter(0)) at (prev + 2, 5) to (start + 1, 2)
2520
Highest counter ID seen: c3
2621

2722
Function name: unicode::他 (unused)
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
Function name: while_early_ret::main
2-
Raw bytes (59): 0x[01, 01, 05, 01, 05, 03, 09, 01, 09, 13, 11, 09, 0d, 09, 01, 05, 01, 01, 1b, 03, 03, 09, 02, 0a, 06, 05, 0d, 02, 0e, 0a, 06, 15, 02, 16, 0d, 04, 15, 00, 1b, 11, 04, 15, 00, 1b, 05, 03, 0a, 03, 0a, 09, 06, 05, 00, 0b, 0f, 01, 01, 00, 02]
2+
Raw bytes (59): 0x[01, 01, 05, 01, 05, 03, 09, 01, 09, 01, 13, 09, 0d, 09, 01, 05, 01, 01, 1b, 03, 03, 09, 02, 0a, 06, 05, 0d, 02, 0e, 0a, 06, 15, 02, 16, 0d, 04, 15, 00, 1b, 0e, 04, 15, 00, 1b, 05, 03, 0a, 03, 0a, 09, 06, 05, 00, 0b, 01, 01, 01, 00, 02]
33
Number of files: 1
44
- file 0 => global file 1
55
Number of expressions: 5
66
- expression 0 operands: lhs = Counter(0), rhs = Counter(1)
77
- expression 1 operands: lhs = Expression(0, Add), rhs = Counter(2)
88
- expression 2 operands: lhs = Counter(0), rhs = Counter(2)
9-
- expression 3 operands: lhs = Expression(4, Add), rhs = Counter(4)
9+
- expression 3 operands: lhs = Counter(0), rhs = Expression(4, Add)
1010
- expression 4 operands: lhs = Counter(2), rhs = Counter(3)
1111
Number of file 0 mappings: 9
1212
- Code(Counter(0)) at (prev + 5, 1) to (start + 1, 27)
@@ -17,10 +17,10 @@ Number of file 0 mappings: 9
1717
- Code(Expression(2, Sub)) at (prev + 6, 21) to (start + 2, 22)
1818
= (c0 - c2)
1919
- Code(Counter(3)) at (prev + 4, 21) to (start + 0, 27)
20-
- Code(Counter(4)) at (prev + 4, 21) to (start + 0, 27)
20+
- Code(Expression(3, Sub)) at (prev + 4, 21) to (start + 0, 27)
21+
= (c0 - (c2 + c3))
2122
- Code(Counter(1)) at (prev + 3, 10) to (start + 3, 10)
2223
- Code(Counter(2)) at (prev + 6, 5) to (start + 0, 11)
23-
- Code(Expression(3, Add)) at (prev + 1, 1) to (start + 0, 2)
24-
= ((c2 + c3) + c4)
25-
Highest counter ID seen: c4
24+
- Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
25+
Highest counter ID seen: c3
2626

‎tests/coverage/yield.cov-map

Lines changed: 13 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,13 @@
11
Function name: yield::main
2-
Raw bytes (106): 0x[01, 01, 0b, 05, 00, 0d, 11, 0d, 23, 11, 15, 11, 15, 0d, 23, 11, 15, 0d, 23, 11, 15, 19, 1d, 25, 29, 10, 01, 07, 01, 01, 16, 01, 07, 0b, 00, 2e, 0d, 01, 27, 00, 29, 03, 01, 0e, 00, 34, 0d, 02, 0b, 00, 2e, 06, 01, 22, 00, 27, 1e, 00, 2c, 00, 2e, 23, 01, 0e, 00, 34, 1e, 03, 09, 00, 16, 1e, 08, 0b, 00, 2e, 21, 01, 27, 00, 29, 27, 01, 0e, 00, 34, 21, 02, 0b, 00, 2e, 2d, 01, 27, 00, 29, 2b, 01, 0e, 00, 34, 2d, 02, 01, 00, 02]
2+
Raw bytes (94): 0x[01, 01, 05, 05, 00, 0d, 15, 0d, 11, 19, 1d, 25, 29, 10, 01, 07, 01, 01, 16, 01, 07, 0b, 00, 2e, 0d, 01, 27, 00, 29, 03, 01, 0e, 00, 34, 0d, 02, 0b, 00, 2e, 06, 01, 22, 00, 27, 11, 00, 2c, 00, 2e, 0a, 01, 0e, 00, 34, 11, 03, 09, 00, 16, 11, 08, 0b, 00, 2e, 21, 01, 27, 00, 29, 0f, 01, 0e, 00, 34, 21, 02, 0b, 00, 2e, 2d, 01, 27, 00, 29, 13, 01, 0e, 00, 34, 2d, 02, 01, 00, 02]
33
Number of files: 1
44
- file 0 => global file 1
5-
Number of expressions: 11
5+
Number of expressions: 5
66
- expression 0 operands: lhs = Counter(1), rhs = Zero
7-
- expression 1 operands: lhs = Counter(3), rhs = Counter(4)
8-
- expression 2 operands: lhs = Counter(3), rhs = Expression(8, Add)
9-
- expression 3 operands: lhs = Counter(4), rhs = Counter(5)
10-
- expression 4 operands: lhs = Counter(4), rhs = Counter(5)
11-
- expression 5 operands: lhs = Counter(3), rhs = Expression(8, Add)
12-
- expression 6 operands: lhs = Counter(4), rhs = Counter(5)
13-
- expression 7 operands: lhs = Counter(3), rhs = Expression(8, Add)
14-
- expression 8 operands: lhs = Counter(4), rhs = Counter(5)
15-
- expression 9 operands: lhs = Counter(6), rhs = Counter(7)
16-
- expression 10 operands: lhs = Counter(9), rhs = Counter(10)
7+
- expression 1 operands: lhs = Counter(3), rhs = Counter(5)
8+
- expression 2 operands: lhs = Counter(3), rhs = Counter(4)
9+
- expression 3 operands: lhs = Counter(6), rhs = Counter(7)
10+
- expression 4 operands: lhs = Counter(9), rhs = Counter(10)
1711
Number of file 0 mappings: 16
1812
- Code(Counter(0)) at (prev + 7, 1) to (start + 1, 22)
1913
- Code(Counter(0)) at (prev + 7, 11) to (start + 0, 46)
@@ -22,21 +16,18 @@ Number of file 0 mappings: 16
2216
= (c1 + Zero)
2317
- Code(Counter(3)) at (prev + 2, 11) to (start + 0, 46)
2418
- Code(Expression(1, Sub)) at (prev + 1, 34) to (start + 0, 39)
19+
= (c3 - c5)
20+
- Code(Counter(4)) at (prev + 0, 44) to (start + 0, 46)
21+
- Code(Expression(2, Sub)) at (prev + 1, 14) to (start + 0, 52)
2522
= (c3 - c4)
26-
- Code(Expression(7, Sub)) at (prev + 0, 44) to (start + 0, 46)
27-
= (c3 - (c4 + c5))
28-
- Code(Expression(8, Add)) at (prev + 1, 14) to (start + 0, 52)
29-
= (c4 + c5)
30-
- Code(Expression(7, Sub)) at (prev + 3, 9) to (start + 0, 22)
31-
= (c3 - (c4 + c5))
32-
- Code(Expression(7, Sub)) at (prev + 8, 11) to (start + 0, 46)
33-
= (c3 - (c4 + c5))
23+
- Code(Counter(4)) at (prev + 3, 9) to (start + 0, 22)
24+
- Code(Counter(4)) at (prev + 8, 11) to (start + 0, 46)
3425
- Code(Counter(8)) at (prev + 1, 39) to (start + 0, 41)
35-
- Code(Expression(9, Add)) at (prev + 1, 14) to (start + 0, 52)
26+
- Code(Expression(3, Add)) at (prev + 1, 14) to (start + 0, 52)
3627
= (c6 + c7)
3728
- Code(Counter(8)) at (prev + 2, 11) to (start + 0, 46)
3829
- Code(Counter(11)) at (prev + 1, 39) to (start + 0, 41)
39-
- Code(Expression(10, Add)) at (prev + 1, 14) to (start + 0, 52)
30+
- Code(Expression(4, Add)) at (prev + 1, 14) to (start + 0, 52)
4031
= (c9 + c10)
4132
- Code(Counter(11)) at (prev + 2, 1) to (start + 0, 2)
4233
Highest counter ID seen: c11

0 commit comments

Comments
 (0)
Please sign in to comment.