about summary refs log tree commit diff
diff options
context:
space:
mode:
authorZalathar <Zalathar@users.noreply.github.com>2024-10-08 13:13:05 +1100
committerZalathar <Zalathar@users.noreply.github.com>2024-10-11 21:04:37 +1100
commit599f95ecc26fb68cccbf79780dd1825a4cf73eb0 (patch)
treece4a2c66912ac798355db676724e3bb8957726f7
parentce697f919d88b143d70312c0e7f3952fcb9869db (diff)
downloadrust-599f95ecc26fb68cccbf79780dd1825a4cf73eb0.tar.gz
rust-599f95ecc26fb68cccbf79780dd1825a4cf73eb0.zip
coverage: Include the highest counter ID seen in `.cov-map` dumps
When making changes that have a large impact on coverage counter creation, this
makes it easier to see whether the number of physical counters has changed.

(The highest counter ID seen in coverage maps is not necessarily the same as
the number of physical counters actually used by the instrumented code, but
it's the best approximation we can get from looking only at the coverage maps,
and it should be reasonably accurate in most cases.)
-rw-r--r--src/tools/coverage-dump/src/covfun.rs42
-rw-r--r--tests/coverage/abort.cov-map2
-rw-r--r--tests/coverage/assert-ne.cov-map1
-rw-r--r--tests/coverage/assert.cov-map2
-rw-r--r--tests/coverage/assert_not.cov-map1
-rw-r--r--tests/coverage/async.cov-map25
-rw-r--r--tests/coverage/async2.cov-map6
-rw-r--r--tests/coverage/async_block.cov-map2
-rw-r--r--tests/coverage/attr/impl.cov-map3
-rw-r--r--tests/coverage/attr/module.cov-map3
-rw-r--r--tests/coverage/attr/nested.cov-map2
-rw-r--r--tests/coverage/attr/off-on-sandwich.cov-map3
-rw-r--r--tests/coverage/await_ready.cov-map2
-rw-r--r--tests/coverage/bad_counter_ids.cov-map8
-rw-r--r--tests/coverage/bench.cov-map1
-rw-r--r--tests/coverage/branch/generics.cov-map3
-rw-r--r--tests/coverage/branch/guard.cov-map1
-rw-r--r--tests/coverage/branch/if-let.cov-map2
-rw-r--r--tests/coverage/branch/if.cov-map4
-rw-r--r--tests/coverage/branch/lazy-boolean.cov-map4
-rw-r--r--tests/coverage/branch/let-else.cov-map1
-rw-r--r--tests/coverage/branch/match-arms.cov-map3
-rw-r--r--tests/coverage/branch/match-trivial.cov-map2
-rw-r--r--tests/coverage/branch/no-mir-spans.cov-map4
-rw-r--r--tests/coverage/branch/while.cov-map4
-rw-r--r--tests/coverage/closure.cov-map21
-rw-r--r--tests/coverage/closure_bug.cov-map5
-rw-r--r--tests/coverage/closure_macro.cov-map3
-rw-r--r--tests/coverage/closure_macro_async.cov-map4
-rw-r--r--tests/coverage/closure_unit_return.cov-map4
-rw-r--r--tests/coverage/condition/conditions.cov-map7
-rw-r--r--tests/coverage/conditions.cov-map1
-rw-r--r--tests/coverage/continue.cov-map1
-rw-r--r--tests/coverage/coroutine.cov-map3
-rw-r--r--tests/coverage/coverage_attr_closure.cov-map4
-rw-r--r--tests/coverage/dead_code.cov-map3
-rw-r--r--tests/coverage/drop_trait.cov-map2
-rw-r--r--tests/coverage/fn_sig_into_try.cov-map4
-rw-r--r--tests/coverage/generics.cov-map5
-rw-r--r--tests/coverage/holes.cov-map5
-rw-r--r--tests/coverage/if.cov-map1
-rw-r--r--tests/coverage/if_else.cov-map1
-rw-r--r--tests/coverage/if_not.cov-map1
-rw-r--r--tests/coverage/ignore_run.cov-map1
-rw-r--r--tests/coverage/inline-dead.cov-map4
-rw-r--r--tests/coverage/inline.cov-map7
-rw-r--r--tests/coverage/inner_items.cov-map4
-rw-r--r--tests/coverage/issue-83601.cov-map1
-rw-r--r--tests/coverage/issue-84561.cov-map6
-rw-r--r--tests/coverage/issue-85461.cov-map1
-rw-r--r--tests/coverage/issue-93054.cov-map3
-rw-r--r--tests/coverage/lazy_boolean.cov-map1
-rw-r--r--tests/coverage/let_else_loop.cov-map3
-rw-r--r--tests/coverage/long_and_wide.cov-map4
-rw-r--r--tests/coverage/loop-break.cov-map1
-rw-r--r--tests/coverage/loop_break_value.cov-map1
-rw-r--r--tests/coverage/loops_branches.cov-map3
-rw-r--r--tests/coverage/macro_in_closure.cov-map2
-rw-r--r--tests/coverage/macro_name_span.cov-map2
-rw-r--r--tests/coverage/match_or_pattern.cov-map1
-rw-r--r--tests/coverage/mcdc/condition-limit.cov-map1
-rw-r--r--tests/coverage/mcdc/if.cov-map7
-rw-r--r--tests/coverage/mcdc/inlined_expressions.cov-map1
-rw-r--r--tests/coverage/mcdc/nested_if.cov-map4
-rw-r--r--tests/coverage/mcdc/non_control_flow.cov-map7
-rw-r--r--tests/coverage/nested_loops.cov-map1
-rw-r--r--tests/coverage/no_cov_crate.cov-map7
-rw-r--r--tests/coverage/no_spans.cov-map2
-rw-r--r--tests/coverage/no_spans_if_not.cov-map2
-rw-r--r--tests/coverage/overflow.cov-map2
-rw-r--r--tests/coverage/panic_unwind.cov-map2
-rw-r--r--tests/coverage/partial_eq.cov-map2
-rw-r--r--tests/coverage/simple_loop.cov-map1
-rw-r--r--tests/coverage/simple_match.cov-map1
-rw-r--r--tests/coverage/sort_groups.cov-map6
-rw-r--r--tests/coverage/test_harness.cov-map2
-rw-r--r--tests/coverage/tight_inf_loop.cov-map1
-rw-r--r--tests/coverage/trivial.cov-map1
-rw-r--r--tests/coverage/try_error_result.cov-map6
-rw-r--r--tests/coverage/unicode.cov-map3
-rw-r--r--tests/coverage/unreachable.cov-map3
-rw-r--r--tests/coverage/unused.cov-map7
-rw-r--r--tests/coverage/unused_mod.cov-map2
-rw-r--r--tests/coverage/uses_crate.cov-map5
-rw-r--r--tests/coverage/uses_inline_crate.cov-map6
-rw-r--r--tests/coverage/while.cov-map1
-rw-r--r--tests/coverage/while_early_ret.cov-map1
-rw-r--r--tests/coverage/yield.cov-map3
88 files changed, 338 insertions, 0 deletions
diff --git a/src/tools/coverage-dump/src/covfun.rs b/src/tools/coverage-dump/src/covfun.rs
index c779dd0583c..33fac3edccd 100644
--- a/src/tools/coverage-dump/src/covfun.rs
+++ b/src/tools/coverage-dump/src/covfun.rs
@@ -56,6 +56,7 @@ pub(crate) fn dump_covfun_mappings(
             expression_resolver.push_operands(lhs, rhs);
         }
 
+        let mut max_counter = None;
         for i in 0..num_files {
             let num_mappings = parser.read_uleb128_u32()?;
             println!("Number of file {i} mappings: {num_mappings}");
@@ -63,6 +64,11 @@ pub(crate) fn dump_covfun_mappings(
             for _ in 0..num_mappings {
                 let (kind, region) = parser.read_mapping_kind_and_region()?;
                 println!("- {kind:?} at {region:?}");
+                kind.for_each_term(|term| {
+                    if let CovTerm::Counter(n) = term {
+                        max_counter = max_counter.max(Some(n));
+                    }
+                });
 
                 match kind {
                     // Also print expression mappings in resolved form.
@@ -83,6 +89,16 @@ pub(crate) fn dump_covfun_mappings(
         }
 
         parser.ensure_empty()?;
+
+        // Printing the highest counter ID seen in the functions mappings makes
+        // it easier to determine whether a change to coverage instrumentation
+        // has increased or decreased the number of physical counters needed.
+        // (It's possible for the generated code to have more counters that
+        // aren't used by any mappings, but that should hopefully be rare.)
+        println!("Highest counter ID seen: {}", match max_counter {
+            Some(id) => format!("c{id}"),
+            None => "(none)".to_owned(),
+        });
         println!();
     }
     Ok(())
@@ -271,6 +287,32 @@ enum MappingKind {
     },
 }
 
+impl MappingKind {
+    fn for_each_term(&self, mut callback: impl FnMut(CovTerm)) {
+        match *self {
+            Self::Code(term) => callback(term),
+            Self::Gap(term) => callback(term),
+            Self::Expansion(_id) => {}
+            Self::Skip => {}
+            Self::Branch { r#true, r#false } => {
+                callback(r#true);
+                callback(r#false);
+            }
+            Self::MCDCBranch {
+                r#true,
+                r#false,
+                condition_id: _,
+                true_next_id: _,
+                false_next_id: _,
+            } => {
+                callback(r#true);
+                callback(r#false);
+            }
+            Self::MCDCDecision { bitmap_idx: _, conditions_num: _ } => {}
+        }
+    }
+}
+
 struct MappingRegion {
     /// Offset of this region's start line, relative to the *start line* of
     /// the *previous mapping* (or 0). Line numbers are 1-based.
diff --git a/tests/coverage/abort.cov-map b/tests/coverage/abort.cov-map
index 15156ec9811..06dce43c3ca 100644
--- a/tests/coverage/abort.cov-map
+++ b/tests/coverage/abort.cov-map
@@ -34,6 +34,7 @@ Number of file 0 mappings: 13
 - Code(Expression(9, Add)) at (prev + 1, 9) to (start + 0, 23)
     = (c1 + c2)
 - Code(Counter(3)) at (prev + 2, 5) to (start + 1, 2)
+Highest counter ID seen: c5
 
 Function name: abort::might_abort
 Raw bytes (21): 0x[01, 01, 01, 01, 05, 03, 01, 03, 01, 01, 14, 05, 02, 09, 01, 24, 02, 02, 0c, 03, 02]
@@ -46,4 +47,5 @@ Number of file 0 mappings: 3
 - Code(Counter(1)) at (prev + 2, 9) to (start + 1, 36)
 - Code(Expression(0, Sub)) at (prev + 2, 12) to (start + 3, 2)
     = (c0 - c1)
+Highest counter ID seen: c1
 
diff --git a/tests/coverage/assert-ne.cov-map b/tests/coverage/assert-ne.cov-map
index 6d9906fd7f5..906abcd3c2e 100644
--- a/tests/coverage/assert-ne.cov-map
+++ b/tests/coverage/assert-ne.cov-map
@@ -10,4 +10,5 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 13) to (start + 0, 19)
     = (c0 - c1)
 - Code(Counter(2)) at (prev + 3, 5) to (start + 1, 2)
+Highest counter ID seen: c2
 
diff --git a/tests/coverage/assert.cov-map b/tests/coverage/assert.cov-map
index dd413123de7..018fcc2c3db 100644
--- a/tests/coverage/assert.cov-map
+++ b/tests/coverage/assert.cov-map
@@ -25,6 +25,7 @@ Number of file 0 mappings: 9
 - Code(Expression(6, Add)) at (prev + 1, 9) to (start + 0, 23)
     = (c1 + (c2 + c3))
 - Code(Counter(4)) at (prev + 2, 5) to (start + 1, 2)
+Highest counter ID seen: c4
 
 Function name: assert::might_fail_assert
 Raw bytes (21): 0x[01, 01, 01, 01, 05, 03, 01, 04, 01, 02, 0f, 02, 02, 25, 00, 3d, 05, 01, 01, 00, 02]
@@ -37,4 +38,5 @@ Number of file 0 mappings: 3
 - Code(Expression(0, Sub)) at (prev + 2, 37) to (start + 0, 61)
     = (c0 - c1)
 - Code(Counter(1)) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
diff --git a/tests/coverage/assert_not.cov-map b/tests/coverage/assert_not.cov-map
index 788bc5dbf58..401dd6450e9 100644
--- a/tests/coverage/assert_not.cov-map
+++ b/tests/coverage/assert_not.cov-map
@@ -13,4 +13,5 @@ Number of file 0 mappings: 5
 - Code(Counter(3)) at (prev + 1, 5) to (start + 0, 22)
 - Code(Expression(1, Sub)) at (prev + 1, 1) to (start + 0, 2)
     = (c3 - Zero)
+Highest counter ID seen: c3
 
diff --git a/tests/coverage/async.cov-map b/tests/coverage/async.cov-map
index 43b497a1d3f..9a67cefcf98 100644
--- a/tests/coverage/async.cov-map
+++ b/tests/coverage/async.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 12, 1) to (start + 0, 25)
+Highest counter ID seen: c0
 
 Function name: async::c::{closure#0}
 Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 0c, 19, 01, 0e, 05, 02, 09, 00, 0a, 02, 02, 09, 00, 0a, 01, 02, 01, 00, 02]
@@ -18,6 +19,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 9) to (start + 0, 10)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 2, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
 Function name: async::d
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 14, 01, 00, 14]
@@ -26,6 +28,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 20, 1) to (start + 0, 20)
+Highest counter ID seen: c0
 
 Function name: async::d::{closure#0}
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 14, 14, 00, 19]
@@ -34,6 +37,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 20, 20) to (start + 0, 25)
+Highest counter ID seen: c0
 
 Function name: async::e (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 16, 01, 00, 14]
@@ -42,6 +46,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 22, 1) to (start + 0, 20)
+Highest counter ID seen: (none)
 
 Function name: async::e::{closure#0} (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 16, 14, 00, 19]
@@ -50,6 +55,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 22, 20) to (start + 0, 25)
+Highest counter ID seen: (none)
 
 Function name: async::f
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 18, 01, 00, 14]
@@ -58,6 +64,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 24, 1) to (start + 0, 20)
+Highest counter ID seen: c0
 
 Function name: async::f::{closure#0}
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 18, 14, 00, 19]
@@ -66,6 +73,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 24, 20) to (start + 0, 25)
+Highest counter ID seen: c0
 
 Function name: async::foo (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 1a, 01, 00, 1e]
@@ -74,6 +82,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 26, 1) to (start + 0, 30)
+Highest counter ID seen: (none)
 
 Function name: async::foo::{closure#0} (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 1a, 1e, 00, 2d]
@@ -82,6 +91,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 26, 30) to (start + 0, 45)
+Highest counter ID seen: (none)
 
 Function name: async::g
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 1c, 01, 00, 17]
@@ -90,6 +100,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 28, 1) to (start + 0, 23)
+Highest counter ID seen: c0
 
 Function name: async::g::{closure#0} (unused)
 Raw bytes (59): 0x[01, 01, 00, 0b, 00, 1c, 17, 01, 0c, 00, 02, 09, 00, 0a, 00, 00, 0e, 00, 17, 00, 00, 1b, 00, 1c, 00, 00, 20, 00, 22, 00, 01, 09, 00, 0a, 00, 00, 0e, 00, 17, 00, 00, 1b, 00, 1c, 00, 00, 20, 00, 22, 00, 01, 0e, 00, 10, 00, 02, 01, 00, 02]
@@ -108,6 +119,7 @@ Number of file 0 mappings: 11
 - Code(Zero) at (prev + 0, 32) to (start + 0, 34)
 - Code(Zero) at (prev + 1, 14) to (start + 0, 16)
 - Code(Zero) at (prev + 2, 1) to (start + 0, 2)
+Highest counter ID seen: (none)
 
 Function name: async::h
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 24, 01, 00, 16]
@@ -116,6 +128,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 36, 1) to (start + 0, 22)
+Highest counter ID seen: c0
 
 Function name: async::h::{closure#0} (unused)
 Raw bytes (39): 0x[01, 01, 00, 07, 00, 24, 16, 03, 0c, 00, 04, 09, 00, 0a, 00, 00, 0e, 00, 19, 00, 00, 1a, 00, 1b, 00, 00, 20, 00, 22, 00, 01, 0e, 00, 10, 00, 02, 01, 00, 02]
@@ -130,6 +143,7 @@ Number of file 0 mappings: 7
 - Code(Zero) at (prev + 0, 32) to (start + 0, 34)
 - Code(Zero) at (prev + 1, 14) to (start + 0, 16)
 - Code(Zero) at (prev + 2, 1) to (start + 0, 2)
+Highest counter ID seen: (none)
 
 Function name: async::i
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 2d, 01, 00, 13]
@@ -138,6 +152,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 45, 1) to (start + 0, 19)
+Highest counter ID seen: c0
 
 Function name: async::i::{closure#0}
 Raw bytes (63): 0x[01, 01, 02, 07, 19, 11, 15, 0b, 01, 2d, 13, 04, 0c, 09, 05, 09, 00, 0a, 01, 00, 0e, 00, 18, 05, 00, 1c, 00, 21, 09, 00, 27, 00, 30, 15, 01, 09, 00, 0a, 0d, 00, 0e, 00, 17, 1d, 00, 1b, 00, 20, 15, 00, 24, 00, 26, 19, 01, 0e, 00, 10, 03, 02, 01, 00, 02]
@@ -159,6 +174,7 @@ Number of file 0 mappings: 11
 - Code(Counter(6)) at (prev + 1, 14) to (start + 0, 16)
 - Code(Expression(0, Add)) at (prev + 2, 1) to (start + 0, 2)
     = ((c4 + c5) + c6)
+Highest counter ID seen: c7
 
 Function name: async::j
 Raw bytes (58): 0x[01, 01, 02, 07, 0d, 05, 09, 0a, 01, 38, 01, 00, 0d, 01, 0b, 0b, 00, 0c, 05, 01, 09, 00, 0a, 01, 00, 0e, 00, 1b, 05, 00, 1f, 00, 27, 09, 01, 09, 00, 0a, 11, 00, 0e, 00, 1a, 09, 00, 1e, 00, 20, 0d, 01, 0e, 00, 10, 03, 02, 01, 00, 02]
@@ -179,6 +195,7 @@ Number of file 0 mappings: 10
 - Code(Counter(3)) at (prev + 1, 14) to (start + 0, 16)
 - Code(Expression(0, Add)) at (prev + 2, 1) to (start + 0, 2)
     = ((c1 + c2) + c3)
+Highest counter ID seen: c4
 
 Function name: async::j::c
 Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 3a, 05, 01, 12, 05, 02, 0d, 00, 0e, 02, 02, 0d, 00, 0e, 01, 02, 05, 00, 06]
@@ -192,6 +209,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 13) to (start + 0, 14)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 2, 5) to (start + 0, 6)
+Highest counter ID seen: c1
 
 Function name: async::j::d
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 41, 05, 00, 17]
@@ -200,6 +218,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 65, 5) to (start + 0, 23)
+Highest counter ID seen: c0
 
 Function name: async::j::f
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 42, 05, 00, 17]
@@ -208,6 +227,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 66, 5) to (start + 0, 23)
+Highest counter ID seen: c0
 
 Function name: async::k (unused)
 Raw bytes (29): 0x[01, 01, 00, 05, 00, 4a, 01, 01, 0c, 00, 02, 0e, 00, 10, 00, 01, 0e, 00, 10, 00, 01, 0e, 00, 10, 00, 02, 01, 00, 02]
@@ -220,6 +240,7 @@ Number of file 0 mappings: 5
 - Code(Zero) at (prev + 1, 14) to (start + 0, 16)
 - Code(Zero) at (prev + 1, 14) to (start + 0, 16)
 - Code(Zero) at (prev + 2, 1) to (start + 0, 2)
+Highest counter ID seen: (none)
 
 Function name: async::l
 Raw bytes (37): 0x[01, 01, 04, 01, 07, 05, 09, 0f, 02, 09, 05, 05, 01, 52, 01, 01, 0c, 02, 02, 0e, 00, 10, 05, 01, 0e, 00, 10, 09, 01, 0e, 00, 10, 0b, 02, 01, 00, 02]
@@ -238,6 +259,7 @@ Number of file 0 mappings: 5
 - Code(Counter(2)) at (prev + 1, 14) to (start + 0, 16)
 - Code(Expression(2, Add)) at (prev + 2, 1) to (start + 0, 2)
     = ((c2 + c1) + (c0 - (c1 + c2)))
+Highest counter ID seen: c2
 
 Function name: async::m
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 5a, 01, 00, 19]
@@ -246,6 +268,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 90, 1) to (start + 0, 25)
+Highest counter ID seen: c0
 
 Function name: async::m::{closure#0} (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 5a, 19, 00, 22]
@@ -254,6 +277,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 90, 25) to (start + 0, 34)
+Highest counter ID seen: (none)
 
 Function name: async::main
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 5c, 01, 08, 02]
@@ -262,4 +286,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 92, 1) to (start + 8, 2)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/async2.cov-map b/tests/coverage/async2.cov-map
index 3816401ac63..ed61e91efc2 100644
--- a/tests/coverage/async2.cov-map
+++ b/tests/coverage/async2.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 16, 1) to (start + 0, 23)
+Highest counter ID seen: c0
 
 Function name: async2::async_func::{closure#0}
 Raw bytes (24): 0x[01, 01, 00, 04, 01, 10, 17, 03, 09, 05, 03, 0a, 02, 06, 00, 02, 06, 00, 07, 01, 01, 01, 00, 02]
@@ -16,6 +17,7 @@ Number of file 0 mappings: 4
 - Code(Counter(1)) at (prev + 3, 10) to (start + 2, 6)
 - Code(Zero) at (prev + 2, 6) to (start + 0, 7)
 - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
 Function name: async2::async_func_just_println
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 18, 01, 00, 24]
@@ -24,6 +26,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 24, 1) to (start + 0, 36)
+Highest counter ID seen: c0
 
 Function name: async2::async_func_just_println::{closure#0}
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 18, 24, 02, 02]
@@ -32,6 +35,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 24, 36) to (start + 2, 2)
+Highest counter ID seen: c0
 
 Function name: async2::main
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 1c, 01, 07, 02]
@@ -40,6 +44,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 28, 1) to (start + 7, 2)
+Highest counter ID seen: c0
 
 Function name: async2::non_async_func
 Raw bytes (24): 0x[01, 01, 00, 04, 01, 08, 01, 03, 09, 05, 03, 0a, 02, 06, 00, 02, 06, 00, 07, 01, 01, 01, 00, 02]
@@ -51,4 +56,5 @@ Number of file 0 mappings: 4
 - Code(Counter(1)) at (prev + 3, 10) to (start + 2, 6)
 - Code(Zero) at (prev + 2, 6) to (start + 0, 7)
 - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
diff --git a/tests/coverage/async_block.cov-map b/tests/coverage/async_block.cov-map
index 65f3d821f6e..e3309bd51b4 100644
--- a/tests/coverage/async_block.cov-map
+++ b/tests/coverage/async_block.cov-map
@@ -12,6 +12,7 @@ Number of file 0 mappings: 6
 - Code(Counter(1)) at (prev + 0, 20) to (start + 1, 22)
 - Code(Counter(1)) at (prev + 7, 10) to (start + 2, 6)
 - Code(Counter(0)) at (prev + 3, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
 Function name: async_block::main::{closure#0}
 Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 0a, 1c, 01, 17, 05, 01, 18, 02, 0e, 02, 02, 14, 02, 0e, 01, 03, 09, 00, 0a]
@@ -25,4 +26,5 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 20) to (start + 2, 14)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 3, 9) to (start + 0, 10)
+Highest counter ID seen: c1
 
diff --git a/tests/coverage/attr/impl.cov-map b/tests/coverage/attr/impl.cov-map
index 9b0deed8b64..4d068c290f4 100644
--- a/tests/coverage/attr/impl.cov-map
+++ b/tests/coverage/attr/impl.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 14, 5) to (start + 0, 19)
+Highest counter ID seen: (none)
 
 Function name: <impl::MyStruct>::on_inherit (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 16, 05, 00, 17]
@@ -13,6 +14,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 22, 5) to (start + 0, 23)
+Highest counter ID seen: (none)
 
 Function name: <impl::MyStruct>::on_on (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 19, 05, 00, 12]
@@ -21,4 +23,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 25, 5) to (start + 0, 18)
+Highest counter ID seen: (none)
 
diff --git a/tests/coverage/attr/module.cov-map b/tests/coverage/attr/module.cov-map
index 34898eb4ca8..b318ac85a6c 100644
--- a/tests/coverage/attr/module.cov-map
+++ b/tests/coverage/attr/module.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 12, 5) to (start + 0, 15)
+Highest counter ID seen: (none)
 
 Function name: module::on::inherit (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 14, 05, 00, 14]
@@ -13,6 +14,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 20, 5) to (start + 0, 20)
+Highest counter ID seen: (none)
 
 Function name: module::on::on (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 17, 05, 00, 0f]
@@ -21,4 +23,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 23, 5) to (start + 0, 15)
+Highest counter ID seen: (none)
 
diff --git a/tests/coverage/attr/nested.cov-map b/tests/coverage/attr/nested.cov-map
index 466aec8956e..2bd95325373 100644
--- a/tests/coverage/attr/nested.cov-map
+++ b/tests/coverage/attr/nested.cov-map
@@ -6,6 +6,7 @@ Number of expressions: 0
 Number of file 0 mappings: 2
 - Code(Counter(0)) at (prev + 63, 1) to (start + 1, 15)
 - Code(Counter(0)) at (prev + 11, 5) to (start + 1, 2)
+Highest counter ID seen: c0
 
 Function name: nested::closure_tail
 Raw bytes (14): 0x[01, 01, 00, 02, 01, 4e, 01, 01, 0f, 01, 11, 05, 01, 02]
@@ -15,4 +16,5 @@ Number of expressions: 0
 Number of file 0 mappings: 2
 - Code(Counter(0)) at (prev + 78, 1) to (start + 1, 15)
 - Code(Counter(0)) at (prev + 17, 5) to (start + 1, 2)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/attr/off-on-sandwich.cov-map b/tests/coverage/attr/off-on-sandwich.cov-map
index d5fbac6ebf7..ae5c9bd19a2 100644
--- a/tests/coverage/attr/off-on-sandwich.cov-map
+++ b/tests/coverage/attr/off-on-sandwich.cov-map
@@ -6,6 +6,7 @@ Number of expressions: 0
 Number of file 0 mappings: 2
 - Code(Counter(0)) at (prev + 15, 5) to (start + 2, 18)
 - Code(Counter(0)) at (prev + 7, 5) to (start + 0, 6)
+Highest counter ID seen: c0
 
 Function name: off_on_sandwich::sparse_a::sparse_b::sparse_c
 Raw bytes (14): 0x[01, 01, 00, 02, 01, 21, 09, 02, 17, 01, 0b, 09, 00, 0a]
@@ -15,6 +16,7 @@ Number of expressions: 0
 Number of file 0 mappings: 2
 - Code(Counter(0)) at (prev + 33, 9) to (start + 2, 23)
 - Code(Counter(0)) at (prev + 11, 9) to (start + 0, 10)
+Highest counter ID seen: c0
 
 Function name: off_on_sandwich::sparse_a::sparse_b::sparse_c::sparse_d
 Raw bytes (14): 0x[01, 01, 00, 02, 01, 24, 0d, 02, 1b, 01, 07, 0d, 00, 0e]
@@ -24,4 +26,5 @@ Number of expressions: 0
 Number of file 0 mappings: 2
 - Code(Counter(0)) at (prev + 36, 13) to (start + 2, 27)
 - Code(Counter(0)) at (prev + 7, 13) to (start + 0, 14)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/await_ready.cov-map b/tests/coverage/await_ready.cov-map
index 38c2cf7b2d3..95dbf68a191 100644
--- a/tests/coverage/await_ready.cov-map
+++ b/tests/coverage/await_ready.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 15, 1) to (start + 0, 30)
+Highest counter ID seen: c0
 
 Function name: await_ready::await_ready::{closure#0}
 Raw bytes (14): 0x[01, 01, 00, 02, 01, 0f, 1e, 03, 0f, 05, 04, 01, 00, 02]
@@ -14,4 +15,5 @@ Number of expressions: 0
 Number of file 0 mappings: 2
 - Code(Counter(0)) at (prev + 15, 30) to (start + 3, 15)
 - Code(Counter(1)) at (prev + 4, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
diff --git a/tests/coverage/bad_counter_ids.cov-map b/tests/coverage/bad_counter_ids.cov-map
index 7eff7f5f02f..2b5399f33bb 100644
--- a/tests/coverage/bad_counter_ids.cov-map
+++ b/tests/coverage/bad_counter_ids.cov-map
@@ -6,6 +6,7 @@ Number of expressions: 0
 Number of file 0 mappings: 2
 - Code(Counter(0)) at (prev + 36, 1) to (start + 2, 31)
 - Code(Zero) at (prev + 3, 1) to (start + 0, 2)
+Highest counter ID seen: c0
 
 Function name: bad_counter_ids::eq_bad_message
 Raw bytes (21): 0x[01, 01, 01, 01, 00, 03, 01, 29, 01, 02, 0f, 02, 02, 20, 00, 2b, 00, 01, 01, 00, 02]
@@ -18,6 +19,7 @@ Number of file 0 mappings: 3
 - Code(Expression(0, Sub)) at (prev + 2, 32) to (start + 0, 43)
     = (c0 - Zero)
 - Code(Zero) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c0
 
 Function name: bad_counter_ids::eq_good
 Raw bytes (14): 0x[01, 01, 00, 02, 01, 10, 01, 02, 1f, 05, 03, 01, 00, 02]
@@ -27,6 +29,7 @@ Number of expressions: 0
 Number of file 0 mappings: 2
 - Code(Counter(0)) at (prev + 16, 1) to (start + 2, 31)
 - Code(Counter(1)) at (prev + 3, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
 Function name: bad_counter_ids::eq_good_message
 Raw bytes (19): 0x[01, 01, 00, 03, 01, 15, 01, 02, 0f, 00, 02, 20, 00, 2b, 05, 01, 01, 00, 02]
@@ -37,6 +40,7 @@ Number of file 0 mappings: 3
 - Code(Counter(0)) at (prev + 21, 1) to (start + 2, 15)
 - Code(Zero) at (prev + 2, 32) to (start + 0, 43)
 - Code(Counter(1)) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
 Function name: bad_counter_ids::ne_bad
 Raw bytes (14): 0x[01, 01, 00, 02, 01, 2e, 01, 02, 1f, 00, 03, 01, 00, 02]
@@ -46,6 +50,7 @@ Number of expressions: 0
 Number of file 0 mappings: 2
 - Code(Counter(0)) at (prev + 46, 1) to (start + 2, 31)
 - Code(Zero) at (prev + 3, 1) to (start + 0, 2)
+Highest counter ID seen: c0
 
 Function name: bad_counter_ids::ne_bad_message
 Raw bytes (19): 0x[01, 01, 00, 03, 01, 33, 01, 02, 0f, 05, 02, 20, 00, 2b, 00, 01, 01, 00, 02]
@@ -56,6 +61,7 @@ Number of file 0 mappings: 3
 - Code(Counter(0)) at (prev + 51, 1) to (start + 2, 15)
 - Code(Counter(1)) at (prev + 2, 32) to (start + 0, 43)
 - Code(Zero) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
 Function name: bad_counter_ids::ne_good
 Raw bytes (16): 0x[01, 01, 01, 01, 00, 02, 01, 1a, 01, 02, 1f, 02, 03, 01, 00, 02]
@@ -67,6 +73,7 @@ Number of file 0 mappings: 2
 - Code(Counter(0)) at (prev + 26, 1) to (start + 2, 31)
 - Code(Expression(0, Sub)) at (prev + 3, 1) to (start + 0, 2)
     = (c0 - Zero)
+Highest counter ID seen: c0
 
 Function name: bad_counter_ids::ne_good_message
 Raw bytes (21): 0x[01, 01, 01, 01, 00, 03, 01, 1f, 01, 02, 0f, 00, 02, 20, 00, 2b, 02, 01, 01, 00, 02]
@@ -79,4 +86,5 @@ Number of file 0 mappings: 3
 - Code(Zero) at (prev + 2, 32) to (start + 0, 43)
 - Code(Expression(0, Sub)) at (prev + 1, 1) to (start + 0, 2)
     = (c0 - Zero)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/bench.cov-map b/tests/coverage/bench.cov-map
index aa702a48681..9ee6510f690 100644
--- a/tests/coverage/bench.cov-map
+++ b/tests/coverage/bench.cov-map
@@ -5,4 +5,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 8, 1) to (start + 0, 39)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/branch/generics.cov-map b/tests/coverage/branch/generics.cov-map
index 2e5668c8b56..656890634ff 100644
--- a/tests/coverage/branch/generics.cov-map
+++ b/tests/coverage/branch/generics.cov-map
@@ -13,6 +13,7 @@ Number of file 0 mappings: 5
 - Code(Expression(0, Sub)) at (prev + 2, 12) to (start + 2, 6)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 3, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
 Function name: generics::print_size::<u32>
 Raw bytes (33): 0x[01, 01, 01, 01, 05, 05, 01, 06, 01, 01, 24, 20, 05, 02, 01, 08, 00, 24, 05, 00, 25, 02, 06, 02, 02, 0c, 02, 06, 01, 03, 01, 00, 02]
@@ -29,6 +30,7 @@ Number of file 0 mappings: 5
 - Code(Expression(0, Sub)) at (prev + 2, 12) to (start + 2, 6)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 3, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
 Function name: generics::print_size::<u64>
 Raw bytes (33): 0x[01, 01, 01, 01, 05, 05, 01, 06, 01, 01, 24, 20, 05, 02, 01, 08, 00, 24, 05, 00, 25, 02, 06, 02, 02, 0c, 02, 06, 01, 03, 01, 00, 02]
@@ -45,4 +47,5 @@ Number of file 0 mappings: 5
 - Code(Expression(0, Sub)) at (prev + 2, 12) to (start + 2, 6)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 3, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
diff --git a/tests/coverage/branch/guard.cov-map b/tests/coverage/branch/guard.cov-map
index d67c3d349a1..0f33ed17a0a 100644
--- a/tests/coverage/branch/guard.cov-map
+++ b/tests/coverage/branch/guard.cov-map
@@ -29,4 +29,5 @@ Number of file 0 mappings: 13
     = (c1 + c2)
 - Code(Expression(2, Add)) at (prev + 4, 1) to (start + 0, 2)
     = ((((c1 + c2) + c3) + c4) + c5)
+Highest counter ID seen: c7
 
diff --git a/tests/coverage/branch/if-let.cov-map b/tests/coverage/branch/if-let.cov-map
index 0b098bc6497..380765c7af4 100644
--- a/tests/coverage/branch/if-let.cov-map
+++ b/tests/coverage/branch/if-let.cov-map
@@ -16,6 +16,7 @@ Number of file 0 mappings: 7
     = (c1 - c2)
 - Code(Counter(2)) at (prev + 2, 12) to (start + 2, 6)
 - Code(Counter(1)) at (prev + 3, 5) to (start + 1, 2)
+Highest counter ID seen: c2
 
 Function name: if_let::if_let_chain
 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]
@@ -45,4 +46,5 @@ Number of file 0 mappings: 10
     = (c1 + c2)
 - Code(Expression(2, Add)) at (prev + 3, 5) to (start + 1, 2)
     = ((c1 + c2) + c3)
+Highest counter ID seen: c3
 
diff --git a/tests/coverage/branch/if.cov-map b/tests/coverage/branch/if.cov-map
index 7f4ee980e26..4a8cb664dd8 100644
--- a/tests/coverage/branch/if.cov-map
+++ b/tests/coverage/branch/if.cov-map
@@ -22,6 +22,7 @@ Number of file 0 mappings: 8
     = (c3 + (c1 - c2))
 - Code(Expression(2, Add)) at (prev + 3, 1) to (start + 0, 2)
     = (c4 + (c3 + (c1 - c2)))
+Highest counter ID seen: c4
 
 Function name: if::branch_not
 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, 06, 00, 07, 05, 01, 08, 00, 0a, 20, 0a, 0d, 00, 08, 00, 0a, 0a, 00, 0b, 02, 06, 0d, 02, 06, 00, 07, 05, 01, 08, 00, 0b, 20, 11, 12, 00, 08, 00, 0b, 11, 00, 0c, 02, 06, 12, 02, 06, 00, 07, 05, 01, 08, 00, 0c, 20, 1a, 15, 00, 08, 00, 0c, 1a, 00, 0d, 02, 06, 15, 02, 06, 00, 07, 05, 01, 01, 00, 02]
@@ -66,6 +67,7 @@ Number of file 0 mappings: 18
     = (c1 - c5)
 - Code(Counter(5)) at (prev + 2, 6) to (start + 0, 7)
 - Code(Counter(1)) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c5
 
 Function name: if::branch_not_as
 Raw bytes (90): 0x[01, 01, 05, 05, 09, 05, 0d, 05, 0d, 05, 11, 05, 11, 0e, 01, 1d, 01, 01, 10, 05, 03, 08, 00, 14, 20, 02, 09, 00, 08, 00, 14, 02, 00, 15, 02, 06, 09, 02, 06, 00, 07, 05, 01, 08, 00, 15, 20, 0d, 0a, 00, 08, 00, 15, 0d, 00, 16, 02, 06, 0a, 02, 06, 00, 07, 05, 01, 08, 00, 16, 20, 12, 11, 00, 08, 00, 16, 12, 00, 17, 02, 06, 11, 02, 06, 00, 07, 05, 01, 01, 00, 02]
@@ -101,6 +103,7 @@ Number of file 0 mappings: 14
     = (c1 - c4)
 - Code(Counter(4)) at (prev + 2, 6) to (start + 0, 7)
 - Code(Counter(1)) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c4
 
 Function name: if::branch_or
 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]
@@ -127,4 +130,5 @@ Number of file 0 mappings: 8
 - Code(Counter(4)) at (prev + 2, 12) to (start + 2, 6)
 - Code(Expression(2, Add)) at (prev + 3, 1) to (start + 0, 2)
     = ((c2 + c3) + c4)
+Highest counter ID seen: c4
 
diff --git a/tests/coverage/branch/lazy-boolean.cov-map b/tests/coverage/branch/lazy-boolean.cov-map
index 09ce9137673..c2b6a5b8df2 100644
--- a/tests/coverage/branch/lazy-boolean.cov-map
+++ b/tests/coverage/branch/lazy-boolean.cov-map
@@ -13,6 +13,7 @@ Number of file 0 mappings: 6
     false = (c1 - c2)
 - Code(Counter(2)) at (prev + 0, 18) to (start + 0, 19)
 - Code(Counter(1)) at (prev + 1, 5) to (start + 1, 2)
+Highest counter ID seen: c2
 
 Function name: lazy_boolean::branch_or
 Raw bytes (38): 0x[01, 01, 01, 05, 09, 06, 01, 1b, 01, 01, 10, 05, 04, 09, 00, 0a, 05, 00, 0d, 00, 0e, 20, 09, 02, 00, 0d, 00, 0e, 02, 00, 12, 00, 13, 05, 01, 05, 01, 02]
@@ -30,6 +31,7 @@ Number of file 0 mappings: 6
 - Code(Expression(0, Sub)) at (prev + 0, 18) to (start + 0, 19)
     = (c1 - c2)
 - Code(Counter(1)) at (prev + 1, 5) to (start + 1, 2)
+Highest counter ID seen: c2
 
 Function name: lazy_boolean::chain
 Raw bytes (149): 0x[01, 01, 13, 11, 07, 0b, 16, 15, 1a, 09, 0d, 05, 09, 05, 09, 09, 0d, 47, 25, 4b, 21, 19, 1d, 03, 19, 03, 19, 3e, 1d, 03, 19, 3e, 1d, 03, 19, 47, 25, 4b, 21, 19, 1d, 13, 01, 24, 01, 01, 10, 03, 04, 09, 00, 0a, 05, 00, 0d, 00, 12, 20, 09, 16, 00, 0d, 00, 12, 09, 00, 16, 00, 1b, 20, 0d, 1a, 00, 16, 00, 1b, 0d, 00, 1f, 00, 24, 20, 11, 15, 00, 1f, 00, 24, 11, 00, 28, 00, 2d, 03, 01, 05, 00, 11, 43, 03, 09, 00, 0a, 03, 00, 0d, 00, 12, 20, 19, 3e, 00, 0d, 00, 12, 3e, 00, 16, 00, 1b, 20, 1d, 3a, 00, 16, 00, 1b, 3a, 00, 1f, 00, 24, 20, 21, 25, 00, 1f, 00, 24, 25, 00, 28, 00, 2d, 43, 01, 05, 01, 02]
@@ -94,6 +96,7 @@ Number of file 0 mappings: 19
 - Code(Counter(9)) at (prev + 0, 40) to (start + 0, 45)
 - Code(Expression(16, Add)) at (prev + 1, 5) to (start + 1, 2)
     = (((c6 + c7) + c8) + c9)
+Highest counter ID seen: c9
 
 Function name: lazy_boolean::nested_mixed
 Raw bytes (155): 0x[01, 01, 16, 33, 1a, 09, 0d, 1e, 0d, 05, 09, 05, 09, 05, 09, 1e, 0d, 05, 09, 09, 0d, 33, 11, 09, 0d, 33, 11, 09, 0d, 19, 57, 1d, 21, 03, 15, 15, 19, 4a, 4e, 15, 19, 03, 15, 19, 57, 1d, 21, 13, 01, 31, 01, 01, 10, 03, 04, 09, 00, 0a, 05, 00, 0e, 00, 13, 20, 09, 1e, 00, 0e, 00, 13, 1e, 00, 17, 00, 1d, 20, 0d, 1a, 00, 17, 00, 1d, 33, 00, 23, 00, 28, 20, 11, 2e, 00, 23, 00, 28, 2e, 00, 2c, 00, 33, 03, 01, 05, 00, 11, 53, 03, 09, 00, 0a, 03, 00, 0e, 00, 13, 20, 15, 4e, 00, 0e, 00, 13, 15, 00, 17, 00, 1c, 20, 19, 4a, 00, 17, 00, 1c, 47, 00, 22, 00, 28, 20, 1d, 21, 00, 22, 00, 28, 1d, 00, 2c, 00, 33, 53, 01, 05, 01, 02]
@@ -163,4 +166,5 @@ Number of file 0 mappings: 19
 - Code(Counter(7)) at (prev + 0, 44) to (start + 0, 51)
 - Code(Expression(20, Add)) at (prev + 1, 5) to (start + 1, 2)
     = (c6 + (c7 + c8))
+Highest counter ID seen: c8
 
diff --git a/tests/coverage/branch/let-else.cov-map b/tests/coverage/branch/let-else.cov-map
index 07079934464..e6bf7ed6a92 100644
--- a/tests/coverage/branch/let-else.cov-map
+++ b/tests/coverage/branch/let-else.cov-map
@@ -16,4 +16,5 @@ Number of file 0 mappings: 7
 - Code(Expression(0, Sub)) at (prev + 4, 5) to (start + 0, 11)
     = (c1 - c2)
 - Code(Counter(1)) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c2
 
diff --git a/tests/coverage/branch/match-arms.cov-map b/tests/coverage/branch/match-arms.cov-map
index 1f17f11baaa..fd0366ee818 100644
--- a/tests/coverage/branch/match-arms.cov-map
+++ b/tests/coverage/branch/match-arms.cov-map
@@ -34,6 +34,7 @@ Number of file 0 mappings: 12
     = ((((Zero + c2) + c3) + c4) + c5)
 - Code(Expression(4, Add)) at (prev + 3, 5) to (start + 1, 2)
     = ((((((((Zero + c2) + c3) + c4) + c5) + c6) + c7) + c8) + c9)
+Highest counter ID seen: c10
 
 Function name: match_arms::match_arms
 Raw bytes (51): 0x[01, 01, 06, 05, 07, 0b, 11, 09, 0d, 13, 02, 17, 09, 11, 0d, 07, 01, 18, 01, 01, 10, 05, 03, 0b, 00, 10, 11, 01, 11, 00, 21, 0d, 01, 11, 00, 21, 09, 01, 11, 00, 21, 02, 01, 11, 00, 21, 0f, 03, 05, 01, 02]
@@ -56,6 +57,7 @@ Number of file 0 mappings: 7
     = (c1 - ((c2 + c3) + c4))
 - Code(Expression(3, Add)) at (prev + 3, 5) to (start + 1, 2)
     = (((c4 + c3) + c2) + (c1 - ((c2 + c3) + c4)))
+Highest counter ID seen: c4
 
 Function name: match_arms::or_patterns
 Raw bytes (75): 0x[01, 01, 0d, 11, 0d, 05, 2f, 33, 11, 09, 0d, 09, 2a, 05, 2f, 33, 11, 09, 0d, 03, 27, 09, 2a, 05, 2f, 33, 11, 09, 0d, 09, 01, 25, 01, 01, 10, 05, 03, 0b, 00, 10, 11, 01, 11, 00, 12, 0d, 00, 1e, 00, 1f, 03, 00, 24, 00, 2e, 09, 01, 11, 00, 12, 2a, 00, 1e, 00, 1f, 27, 00, 24, 00, 2e, 23, 03, 05, 01, 02]
@@ -89,4 +91,5 @@ Number of file 0 mappings: 9
     = (c2 + (c1 - ((c2 + c3) + c4)))
 - Code(Expression(8, Add)) at (prev + 3, 5) to (start + 1, 2)
     = ((c4 + c3) + (c2 + (c1 - ((c2 + c3) + c4))))
+Highest counter ID seen: c4
 
diff --git a/tests/coverage/branch/match-trivial.cov-map b/tests/coverage/branch/match-trivial.cov-map
index 1136a529b25..6af8ce46f5f 100644
--- a/tests/coverage/branch/match-trivial.cov-map
+++ b/tests/coverage/branch/match-trivial.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 22, 1) to (start + 1, 16)
+Highest counter ID seen: (none)
 
 Function name: match_trivial::trivial
 Raw bytes (14): 0x[01, 01, 00, 02, 01, 1e, 01, 01, 10, 05, 03, 0b, 05, 02]
@@ -14,4 +15,5 @@ Number of expressions: 0
 Number of file 0 mappings: 2
 - Code(Counter(0)) at (prev + 30, 1) to (start + 1, 16)
 - Code(Counter(1)) at (prev + 3, 11) to (start + 5, 2)
+Highest counter ID seen: c1
 
diff --git a/tests/coverage/branch/no-mir-spans.cov-map b/tests/coverage/branch/no-mir-spans.cov-map
index cb19211913f..ab12732b1ed 100644
--- a/tests/coverage/branch/no-mir-spans.cov-map
+++ b/tests/coverage/branch/no-mir-spans.cov-map
@@ -8,6 +8,7 @@ Number of file 0 mappings: 2
 - Branch { true: Counter(1), false: Counter(2) } at (prev + 4, 11) to (start + 0, 16)
     true  = c1
     false = c2
+Highest counter ID seen: c2
 
 Function name: no_mir_spans::while_cond_not
 Raw bytes (16): 0x[01, 01, 00, 02, 01, 19, 01, 00, 15, 20, 09, 05, 04, 0b, 00, 14]
@@ -19,6 +20,7 @@ Number of file 0 mappings: 2
 - Branch { true: Counter(2), false: Counter(1) } at (prev + 4, 11) to (start + 0, 20)
     true  = c2
     false = c1
+Highest counter ID seen: c2
 
 Function name: no_mir_spans::while_op_and
 Raw bytes (25): 0x[01, 01, 01, 09, 0d, 03, 01, 22, 01, 00, 13, 20, 09, 05, 05, 0b, 00, 10, 20, 02, 0d, 00, 14, 00, 19]
@@ -34,6 +36,7 @@ Number of file 0 mappings: 3
 - Branch { true: Expression(0, Sub), false: Counter(3) } at (prev + 0, 20) to (start + 0, 25)
     true  = (c2 - c3)
     false = c3
+Highest counter ID seen: c3
 
 Function name: no_mir_spans::while_op_or
 Raw bytes (25): 0x[01, 01, 01, 09, 0d, 03, 01, 2d, 01, 00, 12, 20, 05, 09, 05, 0b, 00, 10, 20, 0d, 02, 00, 14, 00, 19]
@@ -49,4 +52,5 @@ Number of file 0 mappings: 3
 - Branch { true: Counter(3), false: Expression(0, Sub) } at (prev + 0, 20) to (start + 0, 25)
     true  = c3
     false = (c2 - c3)
+Highest counter ID seen: c3
 
diff --git a/tests/coverage/branch/while.cov-map b/tests/coverage/branch/while.cov-map
index fd05bbb69a5..d5840a2c320 100644
--- a/tests/coverage/branch/while.cov-map
+++ b/tests/coverage/branch/while.cov-map
@@ -14,6 +14,7 @@ Number of file 0 mappings: 6
     false = c1
 - Code(Counter(2)) at (prev + 0, 17) to (start + 2, 6)
 - Code(Counter(1)) at (prev + 3, 1) to (start + 0, 2)
+Highest counter ID seen: c2
 
 Function name: while::while_cond_not
 Raw bytes (38): 0x[01, 01, 01, 05, 09, 06, 01, 15, 01, 01, 10, 05, 03, 09, 00, 12, 03, 01, 0b, 00, 14, 20, 09, 05, 00, 0b, 00, 14, 09, 00, 15, 02, 06, 05, 03, 01, 00, 02]
@@ -31,6 +32,7 @@ Number of file 0 mappings: 6
     false = c1
 - Code(Counter(2)) at (prev + 0, 21) to (start + 2, 6)
 - Code(Counter(1)) at (prev + 3, 1) to (start + 0, 2)
+Highest counter ID seen: c2
 
 Function name: while::while_op_and
 Raw bytes (56): 0x[01, 01, 04, 05, 09, 03, 0d, 03, 0d, 11, 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, 11, 00, 14, 00, 19, 09, 00, 1a, 03, 06, 0f, 04, 01, 00, 02]
@@ -57,6 +59,7 @@ Number of file 0 mappings: 8
 - Code(Counter(2)) at (prev + 0, 26) to (start + 3, 6)
 - Code(Expression(3, Add)) at (prev + 4, 1) to (start + 0, 2)
     = (c4 + c3)
+Highest counter ID seen: c4
 
 Function name: while::while_op_or
 Raw bytes (66): 0x[01, 01, 09, 05, 1b, 09, 0d, 03, 09, 03, 09, 22, 0d, 03, 09, 09, 0d, 22, 0d, 03, 09, 08, 01, 29, 01, 01, 10, 05, 03, 09, 01, 12, 03, 02, 0b, 00, 10, 20, 09, 22, 00, 0b, 00, 10, 22, 00, 14, 00, 19, 20, 0d, 1e, 00, 14, 00, 19, 1b, 00, 1a, 03, 06, 1e, 04, 01, 00, 02]
@@ -89,4 +92,5 @@ Number of file 0 mappings: 8
     = (c2 + c3)
 - Code(Expression(7, Sub)) at (prev + 4, 1) to (start + 0, 2)
     = (((c1 + (c2 + c3)) - c2) - c3)
+Highest counter ID seen: c3
 
diff --git a/tests/coverage/closure.cov-map b/tests/coverage/closure.cov-map
index 6edd35921fe..d50f9f8e7af 100644
--- a/tests/coverage/closure.cov-map
+++ b/tests/coverage/closure.cov-map
@@ -30,6 +30,7 @@ Number of file 0 mappings: 24
 - Code(Expression(0, Sub)) at (prev + 4, 6) to (start + 0, 7)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 1, 5) to (start + 3, 2)
+Highest counter ID seen: c1
 
 Function name: closure::main::{closure#0}
 Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 28, 05, 02, 14, 05, 02, 15, 02, 0a, 02, 02, 0a, 00, 0b, 01, 01, 09, 01, 06]
@@ -43,6 +44,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 10) to (start + 0, 11)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 1, 9) to (start + 1, 6)
+Highest counter ID seen: c1
 
 Function name: closure::main::{closure#10} (unused)
 Raw bytes (10): 0x[01, 01, 00, 01, 00, 9b, 01, 07, 00, 21]
@@ -51,6 +53,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 155, 7) to (start + 0, 33)
+Highest counter ID seen: (none)
 
 Function name: closure::main::{closure#11} (unused)
 Raw bytes (10): 0x[01, 01, 00, 01, 00, 9f, 01, 07, 00, 21]
@@ -59,6 +62,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 159, 7) to (start + 0, 33)
+Highest counter ID seen: (none)
 
 Function name: closure::main::{closure#12} (unused)
 Raw bytes (10): 0x[01, 01, 00, 01, 00, a7, 01, 01, 00, 17]
@@ -67,6 +71,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 167, 1) to (start + 0, 23)
+Highest counter ID seen: (none)
 
 Function name: closure::main::{closure#13} (unused)
 Raw bytes (10): 0x[01, 01, 00, 01, 00, ac, 01, 0d, 02, 0e]
@@ -75,6 +80,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 172, 13) to (start + 2, 14)
+Highest counter ID seen: (none)
 
 Function name: closure::main::{closure#14}
 Raw bytes (27): 0x[01, 01, 01, 01, 05, 04, 01, b3, 01, 0d, 02, 1b, 05, 02, 1e, 00, 25, 02, 00, 2f, 00, 33, 01, 01, 0d, 00, 0e]
@@ -88,6 +94,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 0, 47) to (start + 0, 51)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 1, 13) to (start + 0, 14)
+Highest counter ID seen: c1
 
 Function name: closure::main::{closure#15}
 Raw bytes (37): 0x[01, 01, 01, 01, 05, 06, 01, bb, 01, 09, 00, 0a, 01, 01, 0d, 00, 15, 01, 01, 11, 01, 1b, 05, 01, 1e, 00, 25, 02, 00, 2f, 00, 33, 01, 02, 09, 00, 0a]
@@ -103,6 +110,7 @@ Number of file 0 mappings: 6
 - Code(Expression(0, Sub)) at (prev + 0, 47) to (start + 0, 51)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 2, 9) to (start + 0, 10)
+Highest counter ID seen: c1
 
 Function name: closure::main::{closure#16}
 Raw bytes (27): 0x[01, 01, 01, 01, 05, 04, 01, c5, 01, 0d, 02, 1b, 05, 02, 1e, 00, 25, 02, 00, 2f, 00, 33, 01, 01, 0d, 00, 0e]
@@ -116,6 +124,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 0, 47) to (start + 0, 51)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 1, 13) to (start + 0, 14)
+Highest counter ID seen: c1
 
 Function name: closure::main::{closure#17}
 Raw bytes (37): 0x[01, 01, 01, 01, 05, 06, 01, cd, 01, 09, 00, 0a, 01, 01, 0d, 00, 15, 01, 01, 11, 01, 1b, 05, 01, 1e, 00, 25, 02, 00, 2f, 00, 33, 01, 02, 09, 00, 0a]
@@ -131,6 +140,7 @@ Number of file 0 mappings: 6
 - Code(Expression(0, Sub)) at (prev + 0, 47) to (start + 0, 51)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 2, 9) to (start + 0, 10)
+Highest counter ID seen: c1
 
 Function name: closure::main::{closure#18} (unused)
 Raw bytes (24): 0x[01, 01, 00, 04, 00, 19, 0d, 02, 1c, 00, 02, 1d, 02, 12, 00, 02, 12, 00, 13, 00, 01, 11, 01, 0e]
@@ -142,6 +152,7 @@ Number of file 0 mappings: 4
 - Code(Zero) at (prev + 2, 29) to (start + 2, 18)
 - Code(Zero) at (prev + 2, 18) to (start + 0, 19)
 - Code(Zero) at (prev + 1, 17) to (start + 1, 14)
+Highest counter ID seen: (none)
 
 Function name: closure::main::{closure#19}
 Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 43, 0d, 02, 1c, 05, 02, 1d, 02, 12, 02, 02, 12, 00, 13, 01, 01, 11, 01, 0e]
@@ -155,6 +166,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 18) to (start + 0, 19)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 1, 17) to (start + 1, 14)
+Highest counter ID seen: c1
 
 Function name: closure::main::{closure#1}
 Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 52, 05, 02, 14, 05, 02, 15, 02, 0a, 02, 02, 0a, 00, 0b, 01, 01, 09, 01, 06]
@@ -168,6 +180,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 10) to (start + 0, 11)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 1, 9) to (start + 1, 6)
+Highest counter ID seen: c1
 
 Function name: closure::main::{closure#2}
 Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 68, 05, 02, 14, 05, 02, 15, 02, 0a, 02, 02, 0a, 00, 0b, 01, 01, 09, 01, 06]
@@ -181,6 +194,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 10) to (start + 0, 11)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 1, 9) to (start + 1, 6)
+Highest counter ID seen: c1
 
 Function name: closure::main::{closure#3} (unused)
 Raw bytes (25): 0x[01, 01, 00, 04, 00, 81, 01, 05, 01, 14, 00, 01, 15, 02, 0a, 00, 02, 0a, 00, 0b, 00, 01, 09, 01, 06]
@@ -192,6 +206,7 @@ Number of file 0 mappings: 4
 - Code(Zero) at (prev + 1, 21) to (start + 2, 10)
 - Code(Zero) at (prev + 2, 10) to (start + 0, 11)
 - Code(Zero) at (prev + 1, 9) to (start + 1, 6)
+Highest counter ID seen: (none)
 
 Function name: closure::main::{closure#4} (unused)
 Raw bytes (10): 0x[01, 01, 00, 01, 00, 89, 01, 35, 00, 43]
@@ -200,6 +215,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 137, 53) to (start + 0, 67)
+Highest counter ID seen: (none)
 
 Function name: closure::main::{closure#5}
 Raw bytes (10): 0x[01, 01, 00, 01, 01, 8c, 01, 3d, 00, 4f]
@@ -208,6 +224,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 140, 61) to (start + 0, 79)
+Highest counter ID seen: c0
 
 Function name: closure::main::{closure#6}
 Raw bytes (10): 0x[01, 01, 00, 01, 01, 8d, 01, 41, 00, 57]
@@ -216,6 +233,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 141, 65) to (start + 0, 87)
+Highest counter ID seen: c0
 
 Function name: closure::main::{closure#7} (unused)
 Raw bytes (10): 0x[01, 01, 00, 01, 00, 8e, 01, 3b, 00, 51]
@@ -224,6 +242,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 142, 59) to (start + 0, 81)
+Highest counter ID seen: (none)
 
 Function name: closure::main::{closure#8} (unused)
 Raw bytes (10): 0x[01, 01, 00, 01, 00, 93, 01, 3b, 00, 55]
@@ -232,6 +251,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 147, 59) to (start + 0, 85)
+Highest counter ID seen: (none)
 
 Function name: closure::main::{closure#9} (unused)
 Raw bytes (10): 0x[01, 01, 00, 01, 00, 95, 01, 38, 02, 06]
@@ -240,4 +260,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 149, 56) to (start + 2, 6)
+Highest counter ID seen: (none)
 
diff --git a/tests/coverage/closure_bug.cov-map b/tests/coverage/closure_bug.cov-map
index 32e8db5fb2f..96e1e339e56 100644
--- a/tests/coverage/closure_bug.cov-map
+++ b/tests/coverage/closure_bug.cov-map
@@ -29,6 +29,7 @@ Number of file 0 mappings: 17
 - Code(Expression(3, Sub)) at (prev + 0, 23) to (start + 0, 24)
     = (c0 - c4)
 - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c4
 
 Function name: closure_bug::main::{closure#0}
 Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 0e, 09, 00, 12, 05, 00, 15, 00, 19, 02, 00, 23, 00, 28, 01, 00, 29, 00, 2a]
@@ -42,6 +43,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 0, 35) to (start + 0, 40)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 0, 41) to (start + 0, 42)
+Highest counter ID seen: c1
 
 Function name: closure_bug::main::{closure#1}
 Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 17, 09, 00, 12, 05, 00, 15, 00, 19, 02, 00, 23, 00, 28, 01, 00, 29, 00, 2a]
@@ -55,6 +57,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 0, 35) to (start + 0, 40)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 0, 41) to (start + 0, 42)
+Highest counter ID seen: c1
 
 Function name: closure_bug::main::{closure#2}
 Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 20, 09, 00, 12, 05, 00, 15, 00, 19, 02, 00, 23, 00, 28, 01, 00, 29, 00, 2a]
@@ -68,6 +71,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 0, 35) to (start + 0, 40)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 0, 41) to (start + 0, 42)
+Highest counter ID seen: c1
 
 Function name: closure_bug::main::{closure#3}
 Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 29, 09, 00, 12, 05, 00, 15, 00, 19, 02, 00, 23, 00, 28, 01, 00, 29, 00, 2a]
@@ -81,4 +85,5 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 0, 35) to (start + 0, 40)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 0, 41) to (start + 0, 42)
+Highest counter ID seen: c1
 
diff --git a/tests/coverage/closure_macro.cov-map b/tests/coverage/closure_macro.cov-map
index fb4a137d4c8..7c9d3292f98 100644
--- a/tests/coverage/closure_macro.cov-map
+++ b/tests/coverage/closure_macro.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 29, 1) to (start + 2, 2)
+Highest counter ID seen: c0
 
 Function name: closure_macro::main
 Raw bytes (36): 0x[01, 01, 01, 01, 05, 06, 01, 21, 01, 01, 21, 02, 02, 09, 00, 0f, 01, 00, 12, 00, 54, 05, 00, 54, 00, 55, 02, 02, 09, 02, 0b, 01, 03, 01, 00, 02]
@@ -21,6 +22,7 @@ Number of file 0 mappings: 6
 - Code(Expression(0, Sub)) at (prev + 2, 9) to (start + 2, 11)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 3, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
 Function name: closure_macro::main::{closure#0}
 Raw bytes (35): 0x[01, 01, 03, 01, 05, 05, 0b, 09, 0d, 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]
@@ -38,4 +40,5 @@ Number of file 0 mappings: 5
 - Code(Counter(3)) at (prev + 0, 23) to (start + 0, 30)
 - Code(Expression(1, Add)) at (prev + 2, 9) to (start + 0, 10)
     = (c1 + (c2 + c3))
+Highest counter ID seen: c3
 
diff --git a/tests/coverage/closure_macro_async.cov-map b/tests/coverage/closure_macro_async.cov-map
index 091e87909f9..e2a52e57015 100644
--- a/tests/coverage/closure_macro_async.cov-map
+++ b/tests/coverage/closure_macro_async.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 34, 1) to (start + 2, 2)
+Highest counter ID seen: c0
 
 Function name: closure_macro_async::test
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 26, 01, 00, 2b]
@@ -13,6 +14,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 38, 1) to (start + 0, 43)
+Highest counter ID seen: c0
 
 Function name: closure_macro_async::test::{closure#0}
 Raw bytes (36): 0x[01, 01, 01, 01, 05, 06, 01, 26, 2b, 01, 21, 02, 02, 09, 00, 0f, 01, 00, 12, 00, 54, 05, 00, 54, 00, 55, 02, 02, 09, 02, 0b, 01, 03, 01, 00, 02]
@@ -29,6 +31,7 @@ Number of file 0 mappings: 6
 - Code(Expression(0, Sub)) at (prev + 2, 9) to (start + 2, 11)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 3, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
 Function name: closure_macro_async::test::{closure#0}::{closure#0}
 Raw bytes (35): 0x[01, 01, 03, 01, 05, 05, 0b, 09, 0d, 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]
@@ -46,4 +49,5 @@ Number of file 0 mappings: 5
 - Code(Counter(3)) at (prev + 0, 23) to (start + 0, 30)
 - Code(Expression(1, Add)) at (prev + 2, 9) to (start + 0, 10)
     = (c1 + (c2 + c3))
+Highest counter ID seen: c3
 
diff --git a/tests/coverage/closure_unit_return.cov-map b/tests/coverage/closure_unit_return.cov-map
index c97b4a44dd6..9a66e0b0e77 100644
--- a/tests/coverage/closure_unit_return.cov-map
+++ b/tests/coverage/closure_unit_return.cov-map
@@ -6,6 +6,7 @@ Number of expressions: 0
 Number of file 0 mappings: 2
 - Code(Counter(0)) at (prev + 7, 1) to (start + 1, 16)
 - Code(Counter(0)) at (prev + 5, 5) to (start + 2, 2)
+Highest counter ID seen: c0
 
 Function name: closure_unit_return::explicit_unit::{closure#0} (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 08, 16, 02, 06]
@@ -14,6 +15,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 8, 22) to (start + 2, 6)
+Highest counter ID seen: (none)
 
 Function name: closure_unit_return::implicit_unit
 Raw bytes (14): 0x[01, 01, 00, 02, 01, 10, 01, 01, 10, 01, 05, 05, 02, 02]
@@ -23,6 +25,7 @@ Number of expressions: 0
 Number of file 0 mappings: 2
 - Code(Counter(0)) at (prev + 16, 1) to (start + 1, 16)
 - Code(Counter(0)) at (prev + 5, 5) to (start + 2, 2)
+Highest counter ID seen: c0
 
 Function name: closure_unit_return::implicit_unit::{closure#0} (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 11, 16, 02, 06]
@@ -31,4 +34,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 17, 22) to (start + 2, 6)
+Highest counter ID seen: (none)
 
diff --git a/tests/coverage/condition/conditions.cov-map b/tests/coverage/condition/conditions.cov-map
index 74726e269fc..208d671919c 100644
--- a/tests/coverage/condition/conditions.cov-map
+++ b/tests/coverage/condition/conditions.cov-map
@@ -29,6 +29,7 @@ Number of file 0 mappings: 9
     false = c4
 - Code(Expression(0, Add)) at (prev + 1, 5) to (start + 1, 2)
     = ((c2 + c3) + c4)
+Highest counter ID seen: c4
 
 Function name: conditions::assign_3_or_and
 Raw bytes (73): 0x[01, 01, 09, 05, 07, 0b, 11, 09, 0d, 01, 05, 01, 05, 22, 11, 01, 05, 22, 11, 01, 05, 09, 01, 17, 01, 00, 2f, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 20, 05, 22, 00, 0d, 00, 0e, 22, 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]
@@ -64,6 +65,7 @@ Number of file 0 mappings: 9
     false = c3
 - Code(Expression(0, Add)) at (prev + 1, 5) to (start + 1, 2)
     = (c1 + ((c2 + c3) + c4))
+Highest counter ID seen: c4
 
 Function name: conditions::assign_and
 Raw bytes (51): 0x[01, 01, 04, 07, 0e, 09, 0d, 01, 05, 01, 05, 07, 01, 0d, 01, 00, 21, 03, 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, 03, 01, 05, 01, 02]
@@ -88,6 +90,7 @@ Number of file 0 mappings: 7
     false = c3
 - Code(Expression(0, Add)) at (prev + 1, 5) to (start + 1, 2)
     = ((c2 + c3) + (c0 - c1))
+Highest counter ID seen: c3
 
 Function name: conditions::assign_or
 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]
@@ -113,6 +116,7 @@ Number of file 0 mappings: 7
     false = c3
 - Code(Expression(0, Add)) at (prev + 1, 5) to (start + 1, 2)
     = ((c1 + c2) + c3)
+Highest counter ID seen: c3
 
 Function name: conditions::foo
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 21, 01, 02, 02]
@@ -121,6 +125,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 33, 1) to (start + 2, 2)
+Highest counter ID seen: c0
 
 Function name: conditions::func_call
 Raw bytes (39): 0x[01, 01, 03, 01, 05, 0b, 02, 09, 0d, 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, 07, 01, 01, 00, 02]
@@ -141,6 +146,7 @@ Number of file 0 mappings: 5
     false = c3
 - Code(Expression(1, Add)) at (prev + 1, 1) to (start + 0, 2)
     = ((c2 + c3) + (c0 - c1))
+Highest counter ID seen: c3
 
 Function name: conditions::simple_assign
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 08, 01, 03, 02]
@@ -149,4 +155,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 8, 1) to (start + 3, 2)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/conditions.cov-map b/tests/coverage/conditions.cov-map
index 17143775b7b..a392d1b7028 100644
--- a/tests/coverage/conditions.cov-map
+++ b/tests/coverage/conditions.cov-map
@@ -260,4 +260,5 @@ Number of file 0 mappings: 68
 - Code(Counter(9)) at (prev + 2, 9) to (start + 0, 15)
 - Code(Expression(137, Add)) at (prev + 2, 1) to (start + 0, 2)
     = ((c4 + (((c5 + c6) + c7) + c8)) + ((((c9 + c10) + c11) + c12) + ((c0 - c2) - c3)))
+Highest counter ID seen: c35
 
diff --git a/tests/coverage/continue.cov-map b/tests/coverage/continue.cov-map
index 810694d7f66..7781d2d2544 100644
--- a/tests/coverage/continue.cov-map
+++ b/tests/coverage/continue.cov-map
@@ -76,4 +76,5 @@ Number of file 0 mappings: 30
 - Code(Counter(16)) at (prev + 3, 9) to (start + 0, 14)
 - Code(Expression(27, Add)) at (prev + 2, 13) to (start + 1, 2)
     = (c18 + c17)
+Highest counter ID seen: c18
 
diff --git a/tests/coverage/coroutine.cov-map b/tests/coverage/coroutine.cov-map
index 6ff5ed74a96..2fdc3220c19 100644
--- a/tests/coverage/coroutine.cov-map
+++ b/tests/coverage/coroutine.cov-map
@@ -10,6 +10,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 9) to (start + 0, 40)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 2, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
 Function name: coroutine::main
 Raw bytes (65): 0x[01, 01, 08, 07, 0d, 05, 09, 11, 15, 1e, 19, 11, 15, 15, 19, 1e, 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, 1e, 01, 22, 00, 27, 1a, 00, 2c, 00, 2e, 17, 01, 0e, 00, 35, 1a, 02, 01, 00, 02]
@@ -39,6 +40,7 @@ Number of file 0 mappings: 9
     = (c5 + c6)
 - Code(Expression(6, Sub)) at (prev + 2, 1) to (start + 0, 2)
     = ((c4 - c5) - c6)
+Highest counter ID seen: c4
 
 Function name: coroutine::main::{closure#0}
 Raw bytes (14): 0x[01, 01, 00, 02, 01, 16, 08, 01, 1f, 05, 02, 10, 01, 06]
@@ -48,4 +50,5 @@ Number of expressions: 0
 Number of file 0 mappings: 2
 - Code(Counter(0)) at (prev + 22, 8) to (start + 1, 31)
 - Code(Counter(1)) at (prev + 2, 16) to (start + 1, 6)
+Highest counter ID seen: c1
 
diff --git a/tests/coverage/coverage_attr_closure.cov-map b/tests/coverage/coverage_attr_closure.cov-map
index 5d2c6b00b40..fb861996a0d 100644
--- a/tests/coverage/coverage_attr_closure.cov-map
+++ b/tests/coverage/coverage_attr_closure.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 6, 15) to (start + 2, 2)
+Highest counter ID seen: c0
 
 Function name: coverage_attr_closure::contains_closures_off::{closure#0} (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 1d, 13, 02, 06]
@@ -13,6 +14,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 29, 19) to (start + 2, 6)
+Highest counter ID seen: (none)
 
 Function name: coverage_attr_closure::contains_closures_on
 Raw bytes (19): 0x[01, 01, 00, 03, 01, 0f, 01, 01, 1a, 01, 05, 09, 00, 1b, 01, 04, 01, 00, 02]
@@ -23,6 +25,7 @@ Number of file 0 mappings: 3
 - Code(Counter(0)) at (prev + 15, 1) to (start + 1, 26)
 - Code(Counter(0)) at (prev + 5, 9) to (start + 0, 27)
 - Code(Counter(0)) at (prev + 4, 1) to (start + 0, 2)
+Highest counter ID seen: c0
 
 Function name: coverage_attr_closure::contains_closures_on::{closure#0} (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 11, 13, 02, 06]
@@ -31,4 +34,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 17, 19) to (start + 2, 6)
+Highest counter ID seen: (none)
 
diff --git a/tests/coverage/dead_code.cov-map b/tests/coverage/dead_code.cov-map
index 31599d9072c..b94c6e656ab 100644
--- a/tests/coverage/dead_code.cov-map
+++ b/tests/coverage/dead_code.cov-map
@@ -10,6 +10,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
 Function name: dead_code::unused_fn (unused)
 Raw bytes (24): 0x[01, 01, 00, 04, 00, 0f, 01, 07, 0f, 00, 07, 10, 02, 06, 00, 02, 06, 00, 07, 00, 01, 01, 00, 02]
@@ -21,6 +22,7 @@ Number of file 0 mappings: 4
 - Code(Zero) at (prev + 7, 16) to (start + 2, 6)
 - Code(Zero) at (prev + 2, 6) to (start + 0, 7)
 - Code(Zero) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: (none)
 
 Function name: dead_code::unused_pub_fn_not_in_library (unused)
 Raw bytes (24): 0x[01, 01, 00, 04, 00, 03, 01, 07, 0f, 00, 07, 10, 02, 06, 00, 02, 06, 00, 07, 00, 01, 01, 00, 02]
@@ -32,4 +34,5 @@ Number of file 0 mappings: 4
 - Code(Zero) at (prev + 7, 16) to (start + 2, 6)
 - Code(Zero) at (prev + 2, 6) to (start + 0, 7)
 - Code(Zero) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: (none)
 
diff --git a/tests/coverage/drop_trait.cov-map b/tests/coverage/drop_trait.cov-map
index eb9d7d7acfd..a97c0f8794c 100644
--- a/tests/coverage/drop_trait.cov-map
+++ b/tests/coverage/drop_trait.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 9, 5) to (start + 2, 6)
+Highest counter ID seen: c0
 
 Function name: drop_trait::main
 Raw bytes (24): 0x[01, 01, 00, 04, 01, 0e, 01, 05, 0c, 05, 06, 09, 01, 16, 00, 02, 06, 04, 0b, 01, 05, 01, 00, 02]
@@ -16,4 +17,5 @@ Number of file 0 mappings: 4
 - Code(Counter(1)) at (prev + 6, 9) to (start + 1, 22)
 - Code(Zero) at (prev + 2, 6) to (start + 4, 11)
 - Code(Counter(0)) at (prev + 5, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
diff --git a/tests/coverage/fn_sig_into_try.cov-map b/tests/coverage/fn_sig_into_try.cov-map
index 49758954831..374811dba9e 100644
--- a/tests/coverage/fn_sig_into_try.cov-map
+++ b/tests/coverage/fn_sig_into_try.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 10, 1) to (start + 5, 2)
+Highest counter ID seen: c0
 
 Function name: fn_sig_into_try::b
 Raw bytes (26): 0x[01, 01, 01, 01, 00, 04, 01, 11, 01, 03, 0f, 00, 03, 0f, 00, 10, 02, 01, 05, 00, 0c, 01, 01, 01, 00, 02]
@@ -18,6 +19,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 1, 5) to (start + 0, 12)
     = (c0 - Zero)
 - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c0
 
 Function name: fn_sig_into_try::c
 Raw bytes (26): 0x[01, 01, 01, 01, 00, 04, 01, 18, 01, 03, 17, 00, 03, 17, 00, 18, 02, 01, 05, 00, 0c, 01, 01, 01, 00, 02]
@@ -31,6 +33,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 1, 5) to (start + 0, 12)
     = (c0 - Zero)
 - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c0
 
 Function name: fn_sig_into_try::d
 Raw bytes (26): 0x[01, 01, 01, 01, 00, 04, 01, 1f, 01, 04, 0f, 00, 04, 0f, 00, 10, 02, 01, 05, 00, 0c, 01, 01, 01, 00, 02]
@@ -44,4 +47,5 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 1, 5) to (start + 0, 12)
     = (c0 - Zero)
 - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/generics.cov-map b/tests/coverage/generics.cov-map
index 48e191c1156..d082bd54493 100644
--- a/tests/coverage/generics.cov-map
+++ b/tests/coverage/generics.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 17, 5) to (start + 2, 6)
+Highest counter ID seen: c0
 
 Function name: <generics::Firework<f64>>::set_strength
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 0a, 05, 02, 06]
@@ -13,6 +14,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 10, 5) to (start + 2, 6)
+Highest counter ID seen: c0
 
 Function name: <generics::Firework<i32> as core::ops::drop::Drop>::drop
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 11, 05, 02, 06]
@@ -21,6 +23,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 17, 5) to (start + 2, 6)
+Highest counter ID seen: c0
 
 Function name: <generics::Firework<i32>>::set_strength
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 0a, 05, 02, 06]
@@ -29,6 +32,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 10, 5) to (start + 2, 6)
+Highest counter ID seen: c0
 
 Function name: generics::main
 Raw bytes (24): 0x[01, 01, 00, 04, 01, 16, 01, 08, 0c, 05, 09, 09, 01, 16, 00, 02, 06, 04, 0b, 01, 05, 01, 00, 02]
@@ -40,4 +44,5 @@ Number of file 0 mappings: 4
 - Code(Counter(1)) at (prev + 9, 9) to (start + 1, 22)
 - Code(Zero) at (prev + 2, 6) to (start + 4, 11)
 - Code(Counter(0)) at (prev + 5, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
diff --git a/tests/coverage/holes.cov-map b/tests/coverage/holes.cov-map
index 9350bd9a405..3c740d80ea0 100644
--- a/tests/coverage/holes.cov-map
+++ b/tests/coverage/holes.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 37, 9) to (start + 0, 29)
+Highest counter ID seen: (none)
 
 Function name: holes::main
 Raw bytes (44): 0x[01, 01, 00, 08, 01, 08, 01, 06, 11, 01, 0f, 05, 00, 12, 01, 04, 05, 00, 12, 01, 07, 05, 00, 12, 01, 06, 05, 00, 12, 01, 06, 05, 03, 0f, 01, 0a, 05, 03, 0f, 01, 0a, 05, 01, 02]
@@ -20,6 +21,7 @@ Number of file 0 mappings: 8
 - Code(Counter(0)) at (prev + 6, 5) to (start + 3, 15)
 - Code(Counter(0)) at (prev + 10, 5) to (start + 3, 15)
 - Code(Counter(0)) at (prev + 10, 5) to (start + 1, 2)
+Highest counter ID seen: c0
 
 Function name: holes::main::_unused_fn (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 19, 05, 00, 17]
@@ -28,6 +30,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 25, 5) to (start + 0, 23)
+Highest counter ID seen: (none)
 
 Function name: holes::main::{closure#0} (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 12, 09, 02, 0a]
@@ -36,6 +39,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 18, 9) to (start + 2, 10)
+Highest counter ID seen: (none)
 
 Function name: holes::main::{closure#1} (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 3d, 09, 02, 0a]
@@ -44,4 +48,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 61, 9) to (start + 2, 10)
+Highest counter ID seen: (none)
 
diff --git a/tests/coverage/if.cov-map b/tests/coverage/if.cov-map
index 2b5ae97b406..8f12afac027 100644
--- a/tests/coverage/if.cov-map
+++ b/tests/coverage/if.cov-map
@@ -10,4 +10,5 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 5, 6) to (start + 0, 7)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
diff --git a/tests/coverage/if_else.cov-map b/tests/coverage/if_else.cov-map
index c2111917e55..194ad6ca71f 100644
--- a/tests/coverage/if_else.cov-map
+++ b/tests/coverage/if_else.cov-map
@@ -15,4 +15,5 @@ Number of file 0 mappings: 7
 - Code(Expression(1, Sub)) at (prev + 7, 5) to (start + 5, 6)
     = (c0 - c2)
 - Code(Counter(0)) at (prev + 6, 1) to (start + 0, 2)
+Highest counter ID seen: c2
 
diff --git a/tests/coverage/if_not.cov-map b/tests/coverage/if_not.cov-map
index 9e11ed787a8..a2c276b7bb7 100644
--- a/tests/coverage/if_not.cov-map
+++ b/tests/coverage/if_not.cov-map
@@ -20,4 +20,5 @@ Number of file 0 mappings: 10
     = (c0 - c3)
 - Code(Counter(3)) at (prev + 2, 12) to (start + 2, 6)
 - Code(Counter(0)) at (prev + 3, 1) to (start + 0, 2)
+Highest counter ID seen: c3
 
diff --git a/tests/coverage/ignore_run.cov-map b/tests/coverage/ignore_run.cov-map
index 9865efae0a1..c8ad3821e16 100644
--- a/tests/coverage/ignore_run.cov-map
+++ b/tests/coverage/ignore_run.cov-map
@@ -5,4 +5,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 3, 1) to (start + 0, 13)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/inline-dead.cov-map b/tests/coverage/inline-dead.cov-map
index 96b907cbe15..411f16725bb 100644
--- a/tests/coverage/inline-dead.cov-map
+++ b/tests/coverage/inline-dead.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 23, 1) to (start + 2, 2)
+Highest counter ID seen: (none)
 
 Function name: inline_dead::live::<false>
 Raw bytes (26): 0x[01, 01, 01, 01, 00, 04, 01, 0e, 01, 01, 09, 00, 02, 09, 00, 0f, 02, 02, 09, 00, 0a, 01, 02, 01, 00, 02]
@@ -18,6 +19,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 9) to (start + 0, 10)
     = (c0 - Zero)
 - Code(Counter(0)) at (prev + 2, 1) to (start + 0, 2)
+Highest counter ID seen: c0
 
 Function name: inline_dead::main
 Raw bytes (14): 0x[01, 01, 00, 02, 01, 04, 01, 03, 0a, 01, 06, 05, 01, 02]
@@ -27,6 +29,7 @@ Number of expressions: 0
 Number of file 0 mappings: 2
 - Code(Counter(0)) at (prev + 4, 1) to (start + 3, 10)
 - Code(Counter(0)) at (prev + 6, 5) to (start + 1, 2)
+Highest counter ID seen: c0
 
 Function name: inline_dead::main::{closure#0}
 Raw bytes (23): 0x[01, 01, 02, 00, 06, 01, 00, 03, 01, 07, 17, 01, 16, 00, 01, 17, 00, 18, 03, 01, 05, 00, 06]
@@ -40,4 +43,5 @@ Number of file 0 mappings: 3
 - Code(Zero) at (prev + 1, 23) to (start + 0, 24)
 - Code(Expression(0, Add)) at (prev + 1, 5) to (start + 0, 6)
     = (Zero + (c0 - Zero))
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/inline.cov-map b/tests/coverage/inline.cov-map
index 2366a3bc534..ab3a505e925 100644
--- a/tests/coverage/inline.cov-map
+++ b/tests/coverage/inline.cov-map
@@ -11,6 +11,7 @@ Number of file 0 mappings: 5
     = (c0 + c1)
 - Code(Counter(1)) at (prev + 0, 17) to (start + 2, 6)
 - Code(Counter(0)) at (prev + 3, 5) to (start + 1, 2)
+Highest counter ID seen: c1
 
 Function name: inline::error
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 31, 01, 01, 14]
@@ -19,6 +20,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 49, 1) to (start + 1, 20)
+Highest counter ID seen: c0
 
 Function name: inline::length::<char>
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 1e, 01, 02, 02]
@@ -27,6 +29,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 30, 1) to (start + 2, 2)
+Highest counter ID seen: c0
 
 Function name: inline::main
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 05, 01, 02, 02]
@@ -35,6 +38,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 5, 1) to (start + 2, 2)
+Highest counter ID seen: c0
 
 Function name: inline::permutate::<char>
 Raw bytes (52): 0x[01, 01, 04, 01, 05, 02, 0d, 05, 0f, 09, 0d, 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, 0b, 03, 01, 00, 02]
@@ -57,6 +61,7 @@ Number of file 0 mappings: 8
 - Code(Counter(3)) at (prev + 5, 12) to (start + 2, 6)
 - Code(Expression(2, Add)) at (prev + 3, 1) to (start + 0, 2)
     = (c1 + (c2 + c3))
+Highest counter ID seen: c4
 
 Function name: inline::permutations::<char>
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 0a, 01, 03, 02]
@@ -65,6 +70,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 10, 1) to (start + 3, 2)
+Highest counter ID seen: c0
 
 Function name: inline::swap::<char>
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 23, 01, 04, 02]
@@ -73,4 +79,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 35, 1) to (start + 4, 2)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/inner_items.cov-map b/tests/coverage/inner_items.cov-map
index 6ccc3f0bafc..16e86b2cade 100644
--- a/tests/coverage/inner_items.cov-map
+++ b/tests/coverage/inner_items.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 33, 9) to (start + 3, 10)
+Highest counter ID seen: c0
 
 Function name: <inner_items::main::InStruct as inner_items::main::InTrait>::trait_func
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 28, 09, 03, 0a]
@@ -13,6 +14,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 40, 9) to (start + 3, 10)
+Highest counter ID seen: c0
 
 Function name: inner_items::main
 Raw bytes (43): 0x[01, 01, 02, 01, 05, 01, 09, 07, 01, 03, 01, 07, 0f, 05, 07, 10, 02, 06, 02, 02, 06, 00, 07, 01, 24, 08, 00, 0f, 09, 00, 10, 02, 06, 06, 02, 06, 00, 07, 01, 02, 09, 05, 02]
@@ -31,6 +33,7 @@ Number of file 0 mappings: 7
 - Code(Expression(1, Sub)) at (prev + 2, 6) to (start + 0, 7)
     = (c0 - c2)
 - Code(Counter(0)) at (prev + 2, 9) to (start + 5, 2)
+Highest counter ID seen: c2
 
 Function name: inner_items::main::in_func
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 12, 05, 04, 06]
@@ -39,4 +42,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 18, 5) to (start + 4, 6)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/issue-83601.cov-map b/tests/coverage/issue-83601.cov-map
index f2447e3c92c..c188cca1b51 100644
--- a/tests/coverage/issue-83601.cov-map
+++ b/tests/coverage/issue-83601.cov-map
@@ -9,4 +9,5 @@ Number of file 0 mappings: 3
 - Code(Counter(1)) at (prev + 3, 9) to (start + 1, 28)
 - Code(Expression(0, Sub)) at (prev + 2, 5) to (start + 3, 2)
     = (c1 - c2)
+Highest counter ID seen: c1
 
diff --git a/tests/coverage/issue-84561.cov-map b/tests/coverage/issue-84561.cov-map
index d3c4671e0ba..a8ad17574ba 100644
--- a/tests/coverage/issue-84561.cov-map
+++ b/tests/coverage/issue-84561.cov-map
@@ -10,6 +10,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 1, 9) to (start + 0, 15)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 1, 5) to (start + 0, 6)
+Highest counter ID seen: c1
 
 Function name: issue_84561::main
 Raw bytes (10): 0x[01, 01, 00, 01, 01, b4, 01, 01, 04, 02]
@@ -18,6 +19,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 180, 1) to (start + 4, 2)
+Highest counter ID seen: c0
 
 Function name: issue_84561::test1
 Raw bytes (50): 0x[01, 01, 00, 09, 01, 9a, 01, 01, 01, 0b, 05, 01, 0c, 00, 1e, 01, 01, 05, 00, 0b, 09, 00, 0c, 00, 1e, 01, 01, 0d, 01, 0b, 0d, 01, 0c, 00, 1e, 01, 01, 05, 03, 0b, 11, 03, 0c, 00, 1e, 01, 01, 01, 00, 02]
@@ -34,6 +36,7 @@ Number of file 0 mappings: 9
 - Code(Counter(0)) at (prev + 1, 5) to (start + 3, 11)
 - Code(Counter(4)) at (prev + 3, 12) to (start + 0, 30)
 - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c4
 
 Function name: issue_84561::test2
 Raw bytes (20): 0x[01, 01, 00, 03, 01, b0, 01, 01, 01, 10, 05, 01, 11, 00, 23, 01, 01, 01, 00, 02]
@@ -44,6 +47,7 @@ Number of file 0 mappings: 3
 - Code(Counter(0)) at (prev + 176, 1) to (start + 1, 16)
 - Code(Counter(1)) at (prev + 1, 17) to (start + 0, 35)
 - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
 Function name: issue_84561::test2::call_print
 Raw bytes (10): 0x[01, 01, 00, 01, 01, a7, 01, 09, 02, 0a]
@@ -52,6 +56,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 167, 9) to (start + 2, 10)
+Highest counter ID seen: c0
 
 Function name: issue_84561::test3
 Raw bytes (375): 0x[01, 01, 31, 05, 09, 0d, 00, 15, 19, 12, 00, 15, 19, 21, 00, 1e, 00, 21, 00, 31, 00, 3d, 00, 2e, 45, 3d, 00, 42, 49, 45, 00, 3f, 51, 42, 49, 45, 00, 7a, 55, 51, 00, 7a, 55, 51, 00, 77, 5d, 7a, 55, 51, 00, 77, 61, 7a, 55, 51, 00, 72, 65, 77, 61, 7a, 55, 51, 00, 75, be, 01, c2, 01, 79, 69, 6d, 69, 6d, 69, 6d, c2, 01, 00, 69, 6d, c2, 01, 79, 69, 6d, bb, 01, 7d, 75, be, 01, c2, 01, 79, 69, 6d, b6, 01, 00, bb, 01, 7d, 75, be, 01, c2, 01, 79, 69, 6d, 33, 01, 08, 01, 03, 1c, 05, 04, 09, 01, 1c, 02, 02, 05, 04, 1f, 0d, 05, 05, 00, 1f, 06, 01, 05, 00, 1f, 15, 01, 09, 01, 1c, 12, 02, 05, 00, 1f, 0e, 01, 05, 00, 0f, 00, 00, 20, 00, 30, 21, 01, 05, 03, 0f, 00, 03, 20, 00, 30, 00, 00, 33, 00, 41, 00, 00, 4b, 00, 5a, 1e, 01, 05, 00, 0f, 00, 05, 09, 03, 10, 00, 05, 0d, 00, 1b, 00, 02, 0d, 00, 1c, 1a, 04, 09, 05, 06, 31, 06, 05, 03, 06, 22, 04, 05, 03, 06, 3d, 04, 09, 04, 06, 2e, 05, 08, 00, 0f, 45, 01, 09, 03, 0a, 2a, 05, 09, 03, 0a, 3f, 05, 08, 00, 0f, 51, 01, 09, 00, 13, 00, 03, 0d, 00, 1d, 3a, 03, 09, 00, 13, 00, 03, 0d, 00, 1d, 77, 03, 05, 00, 0f, 77, 01, 0c, 00, 13, 5d, 01, 0d, 00, 13, 56, 02, 0d, 00, 13, 72, 04, 05, 02, 13, 65, 03, 0d, 00, 13, 6e, 02, 0d, 00, 13, bb, 01, 03, 05, 00, 0f, 69, 01, 0c, 00, 13, 6d, 01, 0d, 03, 0e, 75, 04, 0d, 00, 13, c2, 01, 02, 0d, 00, 17, c2, 01, 01, 14, 00, 1b, 00, 01, 15, 00, 1b, 92, 01, 02, 15, 00, 1b, be, 01, 04, 0d, 00, 13, 7d, 03, 09, 00, 19, b6, 01, 02, 05, 00, 0f, b2, 01, 03, 09, 00, 22, 00, 02, 05, 00, 0f, 00, 03, 09, 00, 2c, 00, 02, 01, 00, 02]
@@ -182,4 +187,5 @@ Number of file 0 mappings: 51
 - Code(Zero) at (prev + 2, 5) to (start + 0, 15)
 - Code(Zero) at (prev + 3, 9) to (start + 0, 44)
 - Code(Zero) at (prev + 2, 1) to (start + 0, 2)
+Highest counter ID seen: c31
 
diff --git a/tests/coverage/issue-85461.cov-map b/tests/coverage/issue-85461.cov-map
index d1c449b9a35..349bc2cab80 100644
--- a/tests/coverage/issue-85461.cov-map
+++ b/tests/coverage/issue-85461.cov-map
@@ -5,4 +5,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 8, 1) to (start + 3, 2)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/issue-93054.cov-map b/tests/coverage/issue-93054.cov-map
index 024ef519fcf..38cb70a3f97 100644
--- a/tests/coverage/issue-93054.cov-map
+++ b/tests/coverage/issue-93054.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 21, 1) to (start + 0, 29)
+Highest counter ID seen: (none)
 
 Function name: issue_93054::main
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 1d, 01, 00, 0d]
@@ -13,6 +14,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 29, 1) to (start + 0, 13)
+Highest counter ID seen: c0
 
 Function name: issue_93054::make (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 19, 01, 02, 02]
@@ -21,4 +23,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 25, 1) to (start + 2, 2)
+Highest counter ID seen: (none)
 
diff --git a/tests/coverage/lazy_boolean.cov-map b/tests/coverage/lazy_boolean.cov-map
index 8dca205d33f..fcb9d8f1ff5 100644
--- a/tests/coverage/lazy_boolean.cov-map
+++ b/tests/coverage/lazy_boolean.cov-map
@@ -46,4 +46,5 @@ Number of file 0 mappings: 28
 - Code(Expression(6, Sub)) at (prev + 2, 12) to (start + 2, 6)
     = (c0 - c9)
 - Code(Counter(0)) at (prev + 3, 1) to (start + 0, 2)
+Highest counter ID seen: c9
 
diff --git a/tests/coverage/let_else_loop.cov-map b/tests/coverage/let_else_loop.cov-map
index 13d0d08adb1..04451596eae 100644
--- a/tests/coverage/let_else_loop.cov-map
+++ b/tests/coverage/let_else_loop.cov-map
@@ -7,6 +7,7 @@ Number of file 0 mappings: 3
 - Code(Zero) at (prev + 22, 1) to (start + 1, 12)
 - Code(Zero) at (prev + 1, 15) to (start + 0, 22)
 - Code(Zero) at (prev + 0, 32) to (start + 0, 39)
+Highest counter ID seen: (none)
 
 Function name: let_else_loop::_loop_either_way (unused)
 Raw bytes (19): 0x[01, 01, 00, 03, 00, 0f, 01, 01, 14, 00, 01, 1c, 00, 23, 00, 01, 05, 00, 0c]
@@ -17,6 +18,7 @@ Number of file 0 mappings: 3
 - Code(Zero) at (prev + 15, 1) to (start + 1, 20)
 - Code(Zero) at (prev + 1, 28) to (start + 0, 35)
 - Code(Zero) at (prev + 1, 5) to (start + 0, 12)
+Highest counter ID seen: (none)
 
 Function name: let_else_loop::loopy
 Raw bytes (19): 0x[01, 01, 00, 03, 01, 09, 01, 01, 14, 00, 01, 1c, 00, 23, 05, 01, 01, 00, 02]
@@ -27,4 +29,5 @@ Number of file 0 mappings: 3
 - Code(Counter(0)) at (prev + 9, 1) to (start + 1, 20)
 - Code(Zero) at (prev + 1, 28) to (start + 0, 35)
 - Code(Counter(1)) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
diff --git a/tests/coverage/long_and_wide.cov-map b/tests/coverage/long_and_wide.cov-map
index 97aebf9b18a..032b7fe102e 100644
--- a/tests/coverage/long_and_wide.cov-map
+++ b/tests/coverage/long_and_wide.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 150, 1) to (start + 0, 21)
+Highest counter ID seen: c0
 
 Function name: long_and_wide::long_function
 Raw bytes (10): 0x[01, 01, 00, 01, 01, 10, 01, 84, 01, 02]
@@ -13,6 +14,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 16, 1) to (start + 132, 2)
+Highest counter ID seen: c0
 
 Function name: long_and_wide::main
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 07, 01, 04, 02]
@@ -21,6 +23,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 7, 1) to (start + 4, 2)
+Highest counter ID seen: c0
 
 Function name: long_and_wide::wide_function
 Raw bytes (10): 0x[01, 01, 00, 01, 01, 0e, 01, 00, 8b, 01]
@@ -29,4 +32,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 14, 1) to (start + 0, 139)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/loop-break.cov-map b/tests/coverage/loop-break.cov-map
index 890d5d84539..63280a0bf7c 100644
--- a/tests/coverage/loop-break.cov-map
+++ b/tests/coverage/loop-break.cov-map
@@ -11,4 +11,5 @@ Number of file 0 mappings: 5
 - Code(Counter(0)) at (prev + 1, 13) to (start + 0, 18)
 - Code(Counter(1)) at (prev + 1, 10) to (start + 0, 11)
 - Code(Counter(0)) at (prev + 2, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
diff --git a/tests/coverage/loop_break_value.cov-map b/tests/coverage/loop_break_value.cov-map
index d8dca8a85c3..e48d078f672 100644
--- a/tests/coverage/loop_break_value.cov-map
+++ b/tests/coverage/loop_break_value.cov-map
@@ -5,4 +5,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 4, 1) to (start + 10, 2)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/loops_branches.cov-map b/tests/coverage/loops_branches.cov-map
index 9187dcbd865..1d263611a3a 100644
--- a/tests/coverage/loops_branches.cov-map
+++ b/tests/coverage/loops_branches.cov-map
@@ -75,6 +75,7 @@ Number of file 0 mappings: 20
 - Code(Counter(6)) at (prev + 3, 9) to (start + 0, 15)
 - Code(Expression(34, Add)) at (prev + 1, 5) to (start + 0, 6)
     = ((c9 + (((((c3 + Zero) + (c4 + Zero)) - c6) - Zero) - c4)) + c6)
+Highest counter ID seen: c9
 
 Function name: <loops_branches::DisplayTest as core::fmt::Display>::fmt
 Raw bytes (230): 0x[01, 01, 2b, 01, 00, 02, 00, a3, 01, 19, a7, 01, ab, 01, 00, 0d, 00, 15, a7, 01, ab, 01, 00, 0d, 00, 15, a3, 01, 19, a7, 01, ab, 01, 00, 0d, 00, 15, 9e, 01, 00, a3, 01, 19, a7, 01, ab, 01, 00, 0d, 00, 15, 9a, 01, 00, 9e, 01, 00, a3, 01, 19, a7, 01, ab, 01, 00, 0d, 00, 15, 9e, 01, 00, a3, 01, 19, a7, 01, ab, 01, 00, 0d, 00, 15, 9a, 01, 15, 9e, 01, 00, a3, 01, 19, a7, 01, ab, 01, 00, 0d, 00, 15, 93, 01, 25, 96, 01, 19, 9a, 01, 15, 9e, 01, 00, a3, 01, 19, a7, 01, ab, 01, 00, 0d, 00, 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, 0e, 00, 0f, 02, 01, 0d, 00, 1e, 25, 00, 1e, 00, 1f, 9e, 01, 02, 0d, 00, 0e, a3, 01, 00, 12, 00, 17, 9e, 01, 01, 10, 00, 15, 00, 00, 16, 01, 0e, 9a, 01, 02, 14, 00, 19, 00, 01, 1b, 00, 1f, 00, 00, 20, 00, 22, 4a, 01, 12, 00, 13, 9a, 01, 01, 11, 00, 22, 96, 01, 00, 22, 00, 23, 19, 03, 09, 00, 0f, 8f, 01, 01, 05, 00, 06]
@@ -156,6 +157,7 @@ Number of file 0 mappings: 20
 - Code(Counter(6)) at (prev + 3, 9) to (start + 0, 15)
 - Code(Expression(35, Add)) at (prev + 1, 5) to (start + 0, 6)
     = (((((((Zero + c3) + (Zero + c5)) - c6) - Zero) - c5) + c6) + c9)
+Highest counter ID seen: c9
 
 Function name: loops_branches::main
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 37, 01, 05, 02]
@@ -164,4 +166,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 55, 1) to (start + 5, 2)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/macro_in_closure.cov-map b/tests/coverage/macro_in_closure.cov-map
index 2feaab717b5..9614154a366 100644
--- a/tests/coverage/macro_in_closure.cov-map
+++ b/tests/coverage/macro_in_closure.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 7, 28) to (start + 0, 45)
+Highest counter ID seen: c0
 
 Function name: macro_in_closure::WITH_BLOCK::{closure#0}
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 09, 1e, 02, 02]
@@ -13,4 +14,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 9, 30) to (start + 2, 2)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/macro_name_span.cov-map b/tests/coverage/macro_name_span.cov-map
index f3ee44d2a5a..58620452b2b 100644
--- a/tests/coverage/macro_name_span.cov-map
+++ b/tests/coverage/macro_name_span.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 22, 28) to (start + 1, 64)
+Highest counter ID seen: c0
 
 Function name: macro_name_span::main
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 0b, 01, 02, 02]
@@ -13,4 +14,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 11, 1) to (start + 2, 2)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/match_or_pattern.cov-map b/tests/coverage/match_or_pattern.cov-map
index 60b7024533d..f6491ea262d 100644
--- a/tests/coverage/match_or_pattern.cov-map
+++ b/tests/coverage/match_or_pattern.cov-map
@@ -72,4 +72,5 @@ Number of file 0 mappings: 25
     = (c14 + c15)
 - Code(Expression(26, Add)) at (prev + 2, 1) to (start + 0, 2)
     = ((c14 + c15) + c16)
+Highest counter ID seen: c16
 
diff --git a/tests/coverage/mcdc/condition-limit.cov-map b/tests/coverage/mcdc/condition-limit.cov-map
index 9d1e7518f9e..a3e3b1d09c4 100644
--- a/tests/coverage/mcdc/condition-limit.cov-map
+++ b/tests/coverage/mcdc/condition-limit.cov-map
@@ -87,4 +87,5 @@ Number of file 0 mappings: 18
     = ((((((c2 + c3) + c4) + c5) + c6) + c7) + (c0 - c1))
 - Code(Expression(37, Add)) at (prev + 1, 1) to (start + 0, 2)
     = (c8 + ((((((c2 + c3) + c4) + c5) + c6) + c7) + (c0 - c1)))
+Highest counter ID seen: c8
 
diff --git a/tests/coverage/mcdc/if.cov-map b/tests/coverage/mcdc/if.cov-map
index 576c9b14ed1..46960d31c01 100644
--- a/tests/coverage/mcdc/if.cov-map
+++ b/tests/coverage/mcdc/if.cov-map
@@ -22,6 +22,7 @@ Number of file 0 mappings: 8
     = (c2 + (c0 - c1))
 - Code(Expression(2, Add)) at (prev + 3, 1) to (start + 0, 2)
     = (c3 + (c2 + (c0 - c1)))
+Highest counter ID seen: c3
 
 Function name: if::mcdc_check_b
 Raw bytes (64): 0x[01, 01, 04, 01, 05, 09, 02, 0d, 0f, 09, 02, 08, 01, 17, 01, 01, 09, 28, 03, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 0e, 0d, 00, 0f, 02, 06, 0f, 02, 0c, 02, 06, 0b, 03, 01, 00, 02]
@@ -47,6 +48,7 @@ Number of file 0 mappings: 8
     = (c2 + (c0 - c1))
 - Code(Expression(2, Add)) at (prev + 3, 1) to (start + 0, 2)
     = (c3 + (c2 + (c0 - c1)))
+Highest counter ID seen: c3
 
 Function name: if::mcdc_check_both
 Raw bytes (64): 0x[01, 01, 04, 01, 05, 09, 02, 0d, 0f, 09, 02, 08, 01, 1f, 01, 01, 09, 28, 03, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 0e, 0d, 00, 0f, 02, 06, 0f, 02, 0c, 02, 06, 0b, 03, 01, 00, 02]
@@ -72,6 +74,7 @@ Number of file 0 mappings: 8
     = (c2 + (c0 - c1))
 - Code(Expression(2, Add)) at (prev + 3, 1) to (start + 0, 2)
     = (c3 + (c2 + (c0 - c1)))
+Highest counter ID seen: c3
 
 Function name: if::mcdc_check_neither
 Raw bytes (64): 0x[01, 01, 04, 01, 05, 09, 02, 0d, 0f, 09, 02, 08, 01, 07, 01, 01, 09, 28, 03, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0d, 00, 0e, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 0e, 0d, 00, 0f, 02, 06, 0f, 02, 0c, 02, 06, 0b, 03, 01, 00, 02]
@@ -97,6 +100,7 @@ Number of file 0 mappings: 8
     = (c2 + (c0 - c1))
 - Code(Expression(2, Add)) at (prev + 3, 1) to (start + 0, 2)
     = (c3 + (c2 + (c0 - c1)))
+Highest counter ID seen: c3
 
 Function name: if::mcdc_check_not_tree_decision
 Raw bytes (87): 0x[01, 01, 08, 01, 05, 02, 09, 05, 09, 0d, 1e, 02, 09, 11, 1b, 0d, 1e, 02, 09, 0a, 01, 31, 01, 03, 0a, 28, 05, 03, 03, 08, 00, 15, 30, 05, 02, 01, 02, 03, 00, 09, 00, 0a, 02, 00, 0e, 00, 0f, 30, 09, 1e, 03, 02, 00, 00, 0e, 00, 0f, 0b, 00, 14, 00, 15, 30, 11, 0d, 02, 00, 00, 00, 14, 00, 15, 11, 00, 16, 02, 06, 1b, 02, 0c, 02, 06, 17, 03, 01, 00, 02]
@@ -132,6 +136,7 @@ Number of file 0 mappings: 10
     = (c3 + ((c0 - c1) - c2))
 - Code(Expression(5, Add)) at (prev + 3, 1) to (start + 0, 2)
     = (c4 + (c3 + ((c0 - c1) - c2)))
+Highest counter ID seen: c4
 
 Function name: if::mcdc_check_tree_decision
 Raw bytes (87): 0x[01, 01, 08, 01, 05, 05, 0d, 05, 0d, 0d, 11, 09, 02, 1b, 1f, 0d, 11, 09, 02, 0a, 01, 27, 01, 03, 09, 28, 04, 03, 03, 08, 00, 15, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 05, 00, 0e, 00, 0f, 30, 0d, 0a, 02, 00, 03, 00, 0e, 00, 0f, 0a, 00, 13, 00, 14, 30, 11, 09, 03, 00, 00, 00, 13, 00, 14, 1b, 00, 16, 02, 06, 1f, 02, 0c, 02, 06, 17, 03, 01, 00, 02]
@@ -167,6 +172,7 @@ Number of file 0 mappings: 10
     = (c2 + (c0 - c1))
 - Code(Expression(5, Add)) at (prev + 3, 1) to (start + 0, 2)
     = ((c3 + c4) + (c2 + (c0 - c1)))
+Highest counter ID seen: c4
 
 Function name: if::mcdc_nested_if
 Raw bytes (124): 0x[01, 01, 0d, 01, 05, 02, 09, 05, 09, 1b, 15, 05, 09, 1b, 15, 05, 09, 11, 15, 02, 09, 2b, 32, 0d, 2f, 11, 15, 02, 09, 0e, 01, 3b, 01, 01, 09, 28, 03, 02, 01, 08, 00, 0e, 30, 05, 02, 01, 00, 02, 00, 08, 00, 09, 02, 00, 0d, 00, 0e, 30, 09, 32, 02, 00, 00, 00, 0d, 00, 0e, 1b, 01, 09, 01, 0d, 28, 06, 02, 01, 0c, 00, 12, 30, 16, 15, 01, 02, 00, 00, 0c, 00, 0d, 16, 00, 11, 00, 12, 30, 0d, 11, 02, 00, 00, 00, 11, 00, 12, 0d, 00, 13, 02, 0a, 2f, 02, 0a, 00, 0b, 32, 01, 0c, 02, 06, 27, 03, 01, 00, 02]
@@ -215,4 +221,5 @@ Number of file 0 mappings: 14
     = ((c0 - c1) - c2)
 - Code(Expression(9, Add)) at (prev + 3, 1) to (start + 0, 2)
     = ((c3 + (c4 + c5)) + ((c0 - c1) - c2))
+Highest counter ID seen: c5
 
diff --git a/tests/coverage/mcdc/inlined_expressions.cov-map b/tests/coverage/mcdc/inlined_expressions.cov-map
index bfde7d75d62..4f44e0f2b85 100644
--- a/tests/coverage/mcdc/inlined_expressions.cov-map
+++ b/tests/coverage/mcdc/inlined_expressions.cov-map
@@ -18,4 +18,5 @@ Number of file 0 mappings: 6
     false = c3
 - Code(Expression(1, Add)) at (prev + 1, 1) to (start + 0, 2)
     = ((c2 + c3) + (c0 - c1))
+Highest counter ID seen: c3
 
diff --git a/tests/coverage/mcdc/nested_if.cov-map b/tests/coverage/mcdc/nested_if.cov-map
index 3da98ff4a51..3bed49e7a12 100644
--- a/tests/coverage/mcdc/nested_if.cov-map
+++ b/tests/coverage/mcdc/nested_if.cov-map
@@ -56,6 +56,7 @@ Number of file 0 mappings: 20
     = (c2 + (c0 - c1))
 - Code(Expression(12, Add)) at (prev + 3, 1) to (start + 0, 2)
     = (c3 + (c2 + (c0 - c1)))
+Highest counter ID seen: c8
 
 Function name: nested_if::nested_if_in_condition
 Raw bytes (120): 0x[01, 01, 0b, 01, 05, 05, 11, 05, 11, 1e, 15, 05, 11, 11, 15, 1e, 15, 05, 11, 09, 02, 0d, 2b, 09, 02, 0e, 01, 07, 01, 01, 09, 28, 06, 02, 01, 08, 00, 2e, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 2e, 05, 00, 10, 00, 11, 28, 03, 02, 00, 10, 00, 16, 30, 11, 1e, 01, 00, 02, 00, 10, 00, 11, 1e, 00, 15, 00, 16, 30, 15, 1a, 02, 00, 00, 00, 15, 00, 16, 17, 00, 19, 00, 1d, 1a, 00, 27, 00, 2c, 0d, 00, 2f, 02, 06, 2b, 02, 0c, 02, 06, 27, 03, 01, 00, 02]
@@ -101,6 +102,7 @@ Number of file 0 mappings: 14
     = (c2 + (c0 - c1))
 - Code(Expression(9, Add)) at (prev + 3, 1) to (start + 0, 2)
     = (c3 + (c2 + (c0 - c1)))
+Highest counter ID seen: c5
 
 Function name: nested_if::nested_in_then_block_in_condition
 Raw bytes (176): 0x[01, 01, 12, 01, 05, 05, 11, 05, 11, 3a, 15, 05, 11, 11, 15, 33, 19, 11, 15, 19, 1d, 19, 1d, 1d, 2e, 33, 19, 11, 15, 3a, 15, 05, 11, 09, 02, 0d, 47, 09, 02, 14, 01, 22, 01, 01, 09, 28, 09, 02, 01, 08, 00, 4b, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 4b, 05, 00, 10, 00, 11, 28, 03, 02, 00, 10, 00, 16, 30, 11, 3a, 01, 00, 02, 00, 10, 00, 11, 3a, 00, 15, 00, 16, 30, 15, 36, 02, 00, 00, 00, 15, 00, 16, 33, 00, 1c, 00, 1d, 28, 06, 02, 00, 1c, 00, 22, 30, 19, 2e, 01, 02, 00, 00, 1c, 00, 1d, 19, 00, 21, 00, 22, 30, 26, 1d, 02, 00, 00, 00, 21, 00, 22, 26, 00, 25, 00, 29, 2b, 00, 33, 00, 38, 36, 00, 44, 00, 49, 0d, 00, 4c, 02, 06, 47, 02, 0c, 02, 06, 43, 03, 01, 00, 02]
@@ -165,6 +167,7 @@ Number of file 0 mappings: 20
     = (c2 + (c0 - c1))
 - Code(Expression(16, Add)) at (prev + 3, 1) to (start + 0, 2)
     = (c3 + (c2 + (c0 - c1)))
+Highest counter ID seen: c7
 
 Function name: nested_if::nested_single_condition_decision
 Raw bytes (85): 0x[01, 01, 06, 01, 05, 05, 11, 05, 11, 09, 02, 0d, 17, 09, 02, 0b, 01, 17, 01, 04, 09, 28, 03, 02, 04, 08, 00, 29, 30, 05, 02, 01, 02, 00, 00, 08, 00, 09, 30, 0d, 09, 02, 00, 00, 00, 0d, 00, 29, 05, 00, 10, 00, 11, 20, 11, 0a, 00, 10, 00, 11, 11, 00, 14, 00, 19, 0a, 00, 23, 00, 27, 0d, 00, 2a, 02, 06, 17, 02, 0c, 02, 06, 13, 03, 01, 00, 02]
@@ -198,4 +201,5 @@ Number of file 0 mappings: 11
     = (c2 + (c0 - c1))
 - Code(Expression(4, Add)) at (prev + 3, 1) to (start + 0, 2)
     = (c3 + (c2 + (c0 - c1)))
+Highest counter ID seen: c4
 
diff --git a/tests/coverage/mcdc/non_control_flow.cov-map b/tests/coverage/mcdc/non_control_flow.cov-map
index d5383a19761..677e31e404e 100644
--- a/tests/coverage/mcdc/non_control_flow.cov-map
+++ b/tests/coverage/mcdc/non_control_flow.cov-map
@@ -33,6 +33,7 @@ Number of file 0 mappings: 10
     false = c3
 - Code(Expression(0, Add)) at (prev + 1, 5) to (start + 1, 2)
     = (c1 + ((c2 + c3) + c4))
+Highest counter ID seen: c4
 
 Function name: non_control_flow::assign_3_bis
 Raw bytes (85): 0x[01, 01, 07, 07, 11, 09, 0d, 01, 05, 05, 09, 16, 1a, 05, 09, 01, 05, 0a, 01, 1b, 01, 00, 2c, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 05, 03, 00, 0d, 00, 18, 30, 05, 1a, 01, 03, 02, 00, 0d, 00, 0e, 05, 00, 12, 00, 13, 30, 09, 16, 03, 00, 02, 00, 12, 00, 13, 13, 00, 17, 00, 18, 30, 0d, 11, 02, 00, 00, 00, 17, 00, 18, 03, 01, 05, 01, 02]
@@ -66,6 +67,7 @@ Number of file 0 mappings: 10
     false = c4
 - Code(Expression(0, Add)) at (prev + 1, 5) to (start + 1, 2)
     = ((c2 + c3) + c4)
+Highest counter ID seen: c4
 
 Function name: non_control_flow::assign_and
 Raw bytes (64): 0x[01, 01, 04, 07, 0e, 09, 0d, 01, 05, 01, 05, 08, 01, 0c, 01, 00, 21, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 03, 02, 00, 0d, 00, 13, 30, 05, 0e, 01, 02, 00, 00, 0d, 00, 0e, 05, 00, 12, 00, 13, 30, 09, 0d, 02, 00, 00, 00, 12, 00, 13, 03, 01, 05, 01, 02]
@@ -91,6 +93,7 @@ Number of file 0 mappings: 8
     false = c3
 - Code(Expression(0, Add)) at (prev + 1, 5) to (start + 1, 2)
     = ((c2 + c3) + (c0 - c1))
+Highest counter ID seen: c3
 
 Function name: non_control_flow::assign_or
 Raw bytes (64): 0x[01, 01, 04, 07, 0d, 05, 09, 01, 05, 01, 05, 08, 01, 11, 01, 00, 20, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 03, 02, 00, 0d, 00, 13, 30, 05, 0e, 01, 00, 02, 00, 0d, 00, 0e, 0e, 00, 12, 00, 13, 30, 09, 0d, 02, 00, 00, 00, 12, 00, 13, 03, 01, 05, 01, 02]
@@ -117,6 +120,7 @@ Number of file 0 mappings: 8
     false = c3
 - Code(Expression(0, Add)) at (prev + 1, 5) to (start + 1, 2)
     = ((c1 + c2) + c3)
+Highest counter ID seen: c3
 
 Function name: non_control_flow::foo
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 25, 01, 02, 02]
@@ -125,6 +129,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 37, 1) to (start + 2, 2)
+Highest counter ID seen: c0
 
 Function name: non_control_flow::func_call
 Raw bytes (52): 0x[01, 01, 03, 01, 05, 0b, 02, 09, 0d, 06, 01, 29, 01, 01, 0a, 28, 03, 02, 01, 09, 00, 0f, 30, 05, 02, 01, 02, 00, 00, 09, 00, 0a, 05, 00, 0e, 00, 0f, 30, 09, 0d, 02, 00, 00, 00, 0e, 00, 0f, 07, 01, 01, 00, 02]
@@ -146,6 +151,7 @@ Number of file 0 mappings: 6
     false = c3
 - Code(Expression(1, Add)) at (prev + 1, 1) to (start + 0, 2)
     = ((c2 + c3) + (c0 - c1))
+Highest counter ID seen: c3
 
 Function name: non_control_flow::right_comb_tree
 Raw bytes (139): 0x[01, 01, 13, 07, 1a, 0b, 19, 0f, 15, 13, 11, 09, 0d, 01, 05, 01, 05, 05, 19, 05, 19, 4a, 15, 05, 19, 4a, 15, 05, 19, 46, 11, 4a, 15, 05, 19, 46, 11, 4a, 15, 05, 19, 0e, 01, 20, 01, 00, 41, 03, 01, 09, 00, 0a, 01, 00, 0d, 00, 0e, 28, 06, 05, 00, 0d, 00, 2a, 30, 05, 1a, 01, 02, 00, 00, 0d, 00, 0e, 05, 00, 13, 00, 14, 30, 4a, 19, 02, 03, 00, 00, 13, 00, 14, 4a, 00, 19, 00, 1a, 30, 46, 15, 03, 04, 00, 00, 19, 00, 1a, 46, 00, 1f, 00, 20, 30, 42, 11, 04, 05, 00, 00, 1f, 00, 20, 42, 00, 24, 00, 27, 30, 09, 0d, 05, 00, 00, 00, 24, 00, 27, 03, 01, 05, 01, 02]
@@ -201,4 +207,5 @@ Number of file 0 mappings: 14
     false = c3
 - Code(Expression(0, Add)) at (prev + 1, 5) to (start + 1, 2)
     = (((((c2 + c3) + c4) + c5) + c6) + (c0 - c1))
+Highest counter ID seen: c6
 
diff --git a/tests/coverage/nested_loops.cov-map b/tests/coverage/nested_loops.cov-map
index 35d92594e75..c145d4c5843 100644
--- a/tests/coverage/nested_loops.cov-map
+++ b/tests/coverage/nested_loops.cov-map
@@ -48,4 +48,5 @@ Number of file 0 mappings: 13
     = (c1 + c2)
 - Code(Expression(22, Add)) at (prev + 2, 1) to (start + 0, 2)
     = (c4 + c3)
+Highest counter ID seen: c6
 
diff --git a/tests/coverage/no_cov_crate.cov-map b/tests/coverage/no_cov_crate.cov-map
index 75234f6c3b7..28d0d9ff8ab 100644
--- a/tests/coverage/no_cov_crate.cov-map
+++ b/tests/coverage/no_cov_crate.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 20, 1) to (start + 2, 2)
+Highest counter ID seen: c0
 
 Function name: no_cov_crate::add_coverage_2
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 18, 01, 02, 02]
@@ -13,6 +14,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 24, 1) to (start + 2, 2)
+Highest counter ID seen: c0
 
 Function name: no_cov_crate::add_coverage_not_called (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 1d, 01, 02, 02]
@@ -21,6 +23,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 29, 1) to (start + 2, 2)
+Highest counter ID seen: (none)
 
 Function name: no_cov_crate::main
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 4d, 01, 0b, 02]
@@ -29,6 +32,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 77, 1) to (start + 11, 2)
+Highest counter ID seen: c0
 
 Function name: no_cov_crate::nested_fns::outer
 Raw bytes (14): 0x[01, 01, 00, 02, 01, 31, 05, 02, 23, 01, 0c, 05, 00, 06]
@@ -38,6 +42,7 @@ Number of expressions: 0
 Number of file 0 mappings: 2
 - Code(Counter(0)) at (prev + 49, 5) to (start + 2, 35)
 - Code(Counter(0)) at (prev + 12, 5) to (start + 0, 6)
+Highest counter ID seen: c0
 
 Function name: no_cov_crate::nested_fns::outer_both_covered
 Raw bytes (14): 0x[01, 01, 00, 02, 01, 3f, 05, 02, 17, 01, 0b, 05, 00, 06]
@@ -47,6 +52,7 @@ Number of expressions: 0
 Number of file 0 mappings: 2
 - Code(Counter(0)) at (prev + 63, 5) to (start + 2, 23)
 - Code(Counter(0)) at (prev + 11, 5) to (start + 0, 6)
+Highest counter ID seen: c0
 
 Function name: no_cov_crate::nested_fns::outer_both_covered::inner
 Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 43, 09, 01, 17, 05, 01, 18, 02, 0e, 02, 02, 14, 02, 0e, 01, 03, 09, 00, 0a]
@@ -60,4 +66,5 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 20) to (start + 2, 14)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 3, 9) to (start + 0, 10)
+Highest counter ID seen: c1
 
diff --git a/tests/coverage/no_spans.cov-map b/tests/coverage/no_spans.cov-map
index 30171c3f319..7f43b68fa90 100644
--- a/tests/coverage/no_spans.cov-map
+++ b/tests/coverage/no_spans.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 26, 28) to (start + 0, 29)
+Highest counter ID seen: c0
 
 Function name: no_spans::affected_function::{closure#0}
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 1b, 0c, 00, 0e]
@@ -13,4 +14,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 27, 12) to (start + 0, 14)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/no_spans_if_not.cov-map b/tests/coverage/no_spans_if_not.cov-map
index bc3e14eddd5..9cb7e6a6cff 100644
--- a/tests/coverage/no_spans_if_not.cov-map
+++ b/tests/coverage/no_spans_if_not.cov-map
@@ -9,6 +9,7 @@ Number of file 0 mappings: 3
 - Code(Expression(0, Sub)) at (prev + 2, 13) to (start + 0, 15)
     = (c0 - Zero)
 - Code(Zero) at (prev + 2, 13) to (start + 0, 15)
+Highest counter ID seen: c0
 
 Function name: no_spans_if_not::main
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 0b, 01, 02, 02]
@@ -17,4 +18,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 11, 1) to (start + 2, 2)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/overflow.cov-map b/tests/coverage/overflow.cov-map
index cb31f3d1f3e..f842ce3e896 100644
--- a/tests/coverage/overflow.cov-map
+++ b/tests/coverage/overflow.cov-map
@@ -25,6 +25,7 @@ Number of file 0 mappings: 9
 - Code(Expression(6, Add)) at (prev + 1, 9) to (start + 0, 23)
     = (c1 + (c2 + c3))
 - Code(Counter(4)) at (prev + 2, 5) to (start + 1, 2)
+Highest counter ID seen: c4
 
 Function name: overflow::might_overflow
 Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 05, 01, 01, 12, 05, 01, 13, 02, 06, 02, 02, 06, 00, 07, 01, 01, 09, 05, 02]
@@ -38,4 +39,5 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 1, 9) to (start + 5, 2)
+Highest counter ID seen: c1
 
diff --git a/tests/coverage/panic_unwind.cov-map b/tests/coverage/panic_unwind.cov-map
index f6089ce55ae..f4a7894cc1c 100644
--- a/tests/coverage/panic_unwind.cov-map
+++ b/tests/coverage/panic_unwind.cov-map
@@ -25,6 +25,7 @@ Number of file 0 mappings: 9
 - Code(Expression(6, Add)) at (prev + 1, 9) to (start + 0, 23)
     = (c1 + (c2 + c3))
 - Code(Counter(4)) at (prev + 2, 5) to (start + 1, 2)
+Highest counter ID seen: c4
 
 Function name: panic_unwind::might_panic
 Raw bytes (21): 0x[01, 01, 01, 01, 05, 03, 01, 04, 01, 01, 14, 05, 02, 09, 01, 19, 02, 02, 0c, 03, 02]
@@ -37,4 +38,5 @@ Number of file 0 mappings: 3
 - Code(Counter(1)) at (prev + 2, 9) to (start + 1, 25)
 - Code(Expression(0, Sub)) at (prev + 2, 12) to (start + 3, 2)
     = (c0 - c1)
+Highest counter ID seen: c1
 
diff --git a/tests/coverage/partial_eq.cov-map b/tests/coverage/partial_eq.cov-map
index 6c39ac0e378..21c8714ac99 100644
--- a/tests/coverage/partial_eq.cov-map
+++ b/tests/coverage/partial_eq.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 12, 5) to (start + 2, 6)
+Highest counter ID seen: c0
 
 Function name: partial_eq::main
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 11, 01, 0a, 02]
@@ -13,4 +14,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 17, 1) to (start + 10, 2)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/simple_loop.cov-map b/tests/coverage/simple_loop.cov-map
index 541f7bf8fbd..b6f1e8f6afe 100644
--- a/tests/coverage/simple_loop.cov-map
+++ b/tests/coverage/simple_loop.cov-map
@@ -15,4 +15,5 @@ Number of file 0 mappings: 7
 - Code(Counter(0)) at (prev + 4, 13) to (start + 0, 18)
 - Code(Counter(2)) at (prev + 2, 10) to (start + 3, 10)
 - Code(Counter(0)) at (prev + 6, 1) to (start + 0, 2)
+Highest counter ID seen: c2
 
diff --git a/tests/coverage/simple_match.cov-map b/tests/coverage/simple_match.cov-map
index 49819b23482..b62edf12650 100644
--- a/tests/coverage/simple_match.cov-map
+++ b/tests/coverage/simple_match.cov-map
@@ -27,4 +27,5 @@ Number of file 0 mappings: 10
 - Code(Counter(2)) at (prev + 4, 13) to (start + 7, 14)
 - Code(Counter(3)) at (prev + 10, 13) to (start + 0, 15)
 - Code(Counter(4)) at (prev + 3, 1) to (start + 0, 2)
+Highest counter ID seen: c4
 
diff --git a/tests/coverage/sort_groups.cov-map b/tests/coverage/sort_groups.cov-map
index 361b70fb74f..4e7ed059c87 100644
--- a/tests/coverage/sort_groups.cov-map
+++ b/tests/coverage/sort_groups.cov-map
@@ -10,6 +10,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
 Function name: sort_groups::generic_fn::<()>
 Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 11, 01, 01, 0c, 05, 01, 0d, 02, 06, 02, 02, 06, 00, 07, 01, 01, 01, 00, 02]
@@ -23,6 +24,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
 Function name: sort_groups::generic_fn::<char>
 Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 11, 01, 01, 0c, 05, 01, 0d, 02, 06, 02, 02, 06, 00, 07, 01, 01, 01, 00, 02]
@@ -36,6 +38,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
 Function name: sort_groups::generic_fn::<i32>
 Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 11, 01, 01, 0c, 05, 01, 0d, 02, 06, 02, 02, 06, 00, 07, 01, 01, 01, 00, 02]
@@ -49,6 +52,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
 Function name: sort_groups::main
 Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 06, 01, 04, 23, 05, 04, 24, 02, 06, 02, 02, 06, 00, 07, 01, 01, 05, 02, 02]
@@ -62,6 +66,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 1, 5) to (start + 2, 2)
+Highest counter ID seen: c1
 
 Function name: sort_groups::other_fn
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 17, 01, 00, 11]
@@ -70,4 +75,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 23, 1) to (start + 0, 17)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/test_harness.cov-map b/tests/coverage/test_harness.cov-map
index f75328b11c9..b513b3d0549 100644
--- a/tests/coverage/test_harness.cov-map
+++ b/tests/coverage/test_harness.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 10, 1) to (start + 0, 16)
+Highest counter ID seen: c0
 
 Function name: test_harness::unused (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 07, 01, 00, 0f]
@@ -13,4 +14,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 7, 1) to (start + 0, 15)
+Highest counter ID seen: (none)
 
diff --git a/tests/coverage/tight_inf_loop.cov-map b/tests/coverage/tight_inf_loop.cov-map
index 7fe3146b080..2d2d59bf013 100644
--- a/tests/coverage/tight_inf_loop.cov-map
+++ b/tests/coverage/tight_inf_loop.cov-map
@@ -9,4 +9,5 @@ Number of file 0 mappings: 3
 - Code(Zero) at (prev + 2, 9) to (start + 0, 16)
 - Code(Expression(0, Sub)) at (prev + 1, 6) to (start + 1, 2)
     = (c0 - Zero)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/trivial.cov-map b/tests/coverage/trivial.cov-map
index 874e294a1c4..05f64896d9e 100644
--- a/tests/coverage/trivial.cov-map
+++ b/tests/coverage/trivial.cov-map
@@ -5,4 +5,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 3, 1) to (start + 0, 13)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/try_error_result.cov-map b/tests/coverage/try_error_result.cov-map
index 11a99f5395e..246a1ba738b 100644
--- a/tests/coverage/try_error_result.cov-map
+++ b/tests/coverage/try_error_result.cov-map
@@ -10,6 +10,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 13) to (start + 0, 26)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 2, 5) to (start + 0, 6)
+Highest counter ID seen: c1
 
 Function name: <try_error_result::Thing2>::call
 Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 34, 05, 01, 18, 05, 02, 0d, 00, 14, 02, 02, 0d, 00, 13, 01, 02, 05, 00, 06]
@@ -23,6 +24,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 13) to (start + 0, 19)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 2, 5) to (start + 0, 6)
+Highest counter ID seen: c1
 
 Function name: try_error_result::call
 Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 05, 01, 01, 14, 05, 02, 09, 00, 10, 02, 02, 09, 00, 0f, 01, 02, 01, 00, 02]
@@ -36,6 +38,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 9) to (start + 0, 15)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 2, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
 Function name: try_error_result::main
 Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 71, 01, 02, 0c, 05, 03, 05, 00, 06, 02, 02, 05, 00, 0b, 01, 01, 01, 00, 02]
@@ -49,6 +52,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 5) to (start + 0, 11)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: c1
 
 Function name: try_error_result::test1
 Raw bytes (75): 0x[01, 01, 08, 01, 07, 00, 09, 03, 0d, 12, 1d, 03, 0d, 1b, 0d, 1f, 00, 11, 00, 0b, 01, 0d, 01, 02, 17, 03, 07, 09, 00, 0e, 12, 02, 09, 04, 1a, 1d, 06, 0d, 00, 29, 11, 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]
@@ -79,6 +83,7 @@ Number of file 0 mappings: 11
 - Code(Counter(3)) at (prev + 3, 5) to (start + 0, 11)
 - Code(Expression(5, Add)) at (prev + 1, 1) to (start + 0, 2)
     = (((c4 + Zero) + Zero) + c3)
+Highest counter ID seen: c7
 
 Function name: try_error_result::test2
 Raw bytes (358): 0x[01, 01, 3b, 01, 07, 05, 09, 03, 0d, 41, 11, 4a, 15, 41, 11, 42, 1d, 46, 19, 4a, 15, 41, 11, 4a, 15, 41, 11, 46, 19, 4a, 15, 41, 11, 42, 1d, 46, 19, 4a, 15, 41, 11, 5e, 25, 49, 21, 49, 21, 5e, 25, 49, 21, 8a, 01, 2d, 8e, 01, 29, 92, 01, 41, 03, 0d, 92, 01, 41, 03, 0d, 8e, 01, 29, 92, 01, 41, 03, 0d, 8a, 01, 2d, 8e, 01, 29, 92, 01, 41, 03, 0d, a6, 01, 35, 45, 31, 45, 31, a6, 01, 35, 45, 31, ba, 01, 3d, 4d, 39, 4d, 39, ba, 01, 3d, 4d, 39, c3, 01, 0d, c7, 01, db, 01, cb, 01, cf, 01, 11, 15, d3, 01, d7, 01, 19, 1d, 21, 25, df, 01, e3, 01, 29, 2d, e7, 01, eb, 01, 31, 35, 39, 3d, 28, 01, 3d, 01, 03, 17, 03, 08, 09, 00, 0e, 92, 01, 02, 09, 04, 1a, 41, 06, 0d, 00, 2f, 11, 00, 2f, 00, 30, 4a, 00, 31, 03, 35, 15, 04, 11, 00, 12, 46, 02, 11, 04, 12, 3e, 05, 11, 00, 14, 46, 00, 17, 00, 41, 19, 00, 41, 00, 42, 42, 00, 43, 00, 5f, 1d, 00, 5f, 00, 60, 3e, 01, 0d, 00, 20, 5a, 01, 11, 00, 14, 49, 00, 17, 00, 41, 21, 00, 41, 00, 42, 5e, 00, 43, 00, 60, 25, 00, 60, 00, 61, 5a, 01, 0d, 00, 20, 86, 01, 04, 11, 00, 14, 8e, 01, 00, 17, 00, 42, 29, 00, 42, 00, 43, 8a, 01, 00, 44, 00, 61, 2d, 00, 61, 00, 62, 86, 01, 01, 0d, 00, 20, a2, 01, 01, 11, 00, 14, 45, 00, 17, 01, 36, 31, 01, 36, 00, 37, a6, 01, 01, 12, 00, 2f, 35, 00, 2f, 00, 30, a2, 01, 01, 0d, 00, 20, b6, 01, 01, 11, 00, 14, 4d, 00, 17, 01, 36, 39, 02, 11, 00, 12, ba, 01, 01, 12, 00, 2f, 3d, 01, 11, 00, 12, b6, 01, 02, 0d, 00, 20, 0d, 03, 05, 00, 0b, bf, 01, 01, 01, 00, 02]
@@ -207,4 +212,5 @@ Number of file 0 mappings: 40
 - Code(Counter(3)) at (prev + 3, 5) to (start + 0, 11)
 - Code(Expression(47, Add)) at (prev + 1, 1) to (start + 0, 2)
     = ((((c4 + c5) + ((c6 + c7) + (c8 + c9))) + ((c10 + c11) + ((c12 + c13) + (c14 + c15)))) + c3)
+Highest counter ID seen: c19
 
diff --git a/tests/coverage/unicode.cov-map b/tests/coverage/unicode.cov-map
index 06a2c930498..ac4e691ea7a 100644
--- a/tests/coverage/unicode.cov-map
+++ b/tests/coverage/unicode.cov-map
@@ -22,6 +22,7 @@ Number of file 0 mappings: 9
     = ((c0 - c2) + c3)
 - Code(Expression(3, Add)) at (prev + 2, 5) to (start + 1, 2)
     = (c4 + ((c0 - c2) + c3))
+Highest counter ID seen: c4
 
 Function name: unicode::他 (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 1e, 19, 00, 25]
@@ -30,6 +31,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 30, 25) to (start + 0, 37)
+Highest counter ID seen: (none)
 
 Function name: unicode::申し訳ございません
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 18, 01, 02, 02]
@@ -38,4 +40,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 24, 1) to (start + 2, 2)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/unreachable.cov-map b/tests/coverage/unreachable.cov-map
index 09d3b234543..d4a5936a784 100644
--- a/tests/coverage/unreachable.cov-map
+++ b/tests/coverage/unreachable.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 15, 39) to (start + 0, 71)
+Highest counter ID seen: (none)
 
 Function name: unreachable::unreachable_function (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 11, 01, 01, 25]
@@ -13,6 +14,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 17, 1) to (start + 1, 37)
+Highest counter ID seen: (none)
 
 Function name: unreachable::unreachable_intrinsic (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 16, 01, 01, 2c]
@@ -21,4 +23,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 22, 1) to (start + 1, 44)
+Highest counter ID seen: (none)
 
diff --git a/tests/coverage/unused.cov-map b/tests/coverage/unused.cov-map
index 9383d1e90ac..9f1ad59ce83 100644
--- a/tests/coverage/unused.cov-map
+++ b/tests/coverage/unused.cov-map
@@ -17,6 +17,7 @@ Number of file 0 mappings: 6
 - Code(Expression(3, Add)) at (prev + 1, 9) to (start + 0, 15)
     = (c1 + c2)
 - Code(Counter(3)) at (prev + 2, 1) to (start + 0, 2)
+Highest counter ID seen: c3
 
 Function name: unused::foo::<u32>
 Raw bytes (42): 0x[01, 01, 04, 01, 0f, 05, 09, 03, 0d, 05, 09, 06, 01, 03, 01, 01, 12, 03, 02, 0b, 00, 11, 0a, 01, 09, 00, 0f, 09, 00, 13, 00, 19, 0f, 01, 09, 00, 0f, 0d, 02, 01, 00, 02]
@@ -37,6 +38,7 @@ Number of file 0 mappings: 6
 - Code(Expression(3, Add)) at (prev + 1, 9) to (start + 0, 15)
     = (c1 + c2)
 - Code(Counter(3)) at (prev + 2, 1) to (start + 0, 2)
+Highest counter ID seen: c3
 
 Function name: unused::main
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 25, 01, 04, 02]
@@ -45,6 +47,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 37, 1) to (start + 4, 2)
+Highest counter ID seen: c0
 
 Function name: unused::unused_func (unused)
 Raw bytes (24): 0x[01, 01, 00, 04, 00, 13, 01, 01, 0e, 00, 01, 0f, 02, 06, 00, 02, 06, 00, 07, 00, 01, 01, 00, 02]
@@ -56,6 +59,7 @@ Number of file 0 mappings: 4
 - Code(Zero) at (prev + 1, 15) to (start + 2, 6)
 - Code(Zero) at (prev + 2, 6) to (start + 0, 7)
 - Code(Zero) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: (none)
 
 Function name: unused::unused_func2 (unused)
 Raw bytes (24): 0x[01, 01, 00, 04, 00, 19, 01, 01, 0e, 00, 01, 0f, 02, 06, 00, 02, 06, 00, 07, 00, 01, 01, 00, 02]
@@ -67,6 +71,7 @@ Number of file 0 mappings: 4
 - Code(Zero) at (prev + 1, 15) to (start + 2, 6)
 - Code(Zero) at (prev + 2, 6) to (start + 0, 7)
 - Code(Zero) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: (none)
 
 Function name: unused::unused_func3 (unused)
 Raw bytes (24): 0x[01, 01, 00, 04, 00, 1f, 01, 01, 0e, 00, 01, 0f, 02, 06, 00, 02, 06, 00, 07, 00, 01, 01, 00, 02]
@@ -78,6 +83,7 @@ Number of file 0 mappings: 4
 - Code(Zero) at (prev + 1, 15) to (start + 2, 6)
 - Code(Zero) at (prev + 2, 6) to (start + 0, 7)
 - Code(Zero) at (prev + 1, 1) to (start + 0, 2)
+Highest counter ID seen: (none)
 
 Function name: unused::unused_template_func::<_> (unused)
 Raw bytes (34): 0x[01, 01, 00, 06, 00, 0b, 01, 01, 12, 00, 02, 0b, 00, 11, 00, 01, 09, 00, 0f, 00, 00, 13, 00, 19, 00, 01, 09, 00, 0f, 00, 02, 01, 00, 02]
@@ -91,4 +97,5 @@ Number of file 0 mappings: 6
 - Code(Zero) at (prev + 0, 19) to (start + 0, 25)
 - Code(Zero) at (prev + 1, 9) to (start + 0, 15)
 - Code(Zero) at (prev + 2, 1) to (start + 0, 2)
+Highest counter ID seen: (none)
 
diff --git a/tests/coverage/unused_mod.cov-map b/tests/coverage/unused_mod.cov-map
index 241cb2610ff..af10906fa3c 100644
--- a/tests/coverage/unused_mod.cov-map
+++ b/tests/coverage/unused_mod.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 4, 1) to (start + 2, 2)
+Highest counter ID seen: c0
 
 Function name: unused_mod::unused_module::never_called_function (unused)
 Raw bytes (9): 0x[01, 01, 00, 01, 00, 02, 01, 02, 02]
@@ -13,4 +14,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Zero) at (prev + 2, 1) to (start + 2, 2)
+Highest counter ID seen: (none)
 
diff --git a/tests/coverage/uses_crate.cov-map b/tests/coverage/uses_crate.cov-map
index 9c06eab7005..5c23f882697 100644
--- a/tests/coverage/uses_crate.cov-map
+++ b/tests/coverage/uses_crate.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 27, 1) to (start + 2, 2)
+Highest counter ID seen: c0
 
 Function name: used_crate::used_only_from_bin_crate_generic_function::<&alloc::vec::Vec<i32>>
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 13, 01, 02, 02]
@@ -13,6 +14,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 19, 1) to (start + 2, 2)
+Highest counter ID seen: c0
 
 Function name: used_crate::used_only_from_bin_crate_generic_function::<&str>
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 13, 01, 02, 02]
@@ -21,6 +23,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 19, 1) to (start + 2, 2)
+Highest counter ID seen: c0
 
 Function name: used_crate::used_with_same_type_from_bin_crate_and_lib_crate_generic_function::<&str>
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 1f, 01, 02, 02]
@@ -29,6 +32,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 31, 1) to (start + 2, 2)
+Highest counter ID seen: c0
 
 Function name: uses_crate::main
 Raw bytes (9): 0x[01, 02, 00, 01, 01, 0c, 01, 07, 02]
@@ -37,4 +41,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 12, 1) to (start + 7, 2)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/uses_inline_crate.cov-map b/tests/coverage/uses_inline_crate.cov-map
index 55ceb46b060..a6909768162 100644
--- a/tests/coverage/uses_inline_crate.cov-map
+++ b/tests/coverage/uses_inline_crate.cov-map
@@ -5,6 +5,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 44, 1) to (start + 2, 2)
+Highest counter ID seen: c0
 
 Function name: used_inline_crate::used_inline_function
 Raw bytes (26): 0x[01, 01, 01, 01, 05, 04, 01, 14, 01, 06, 0f, 05, 06, 10, 02, 06, 02, 02, 06, 00, 07, 01, 01, 05, 01, 02]
@@ -18,6 +19,7 @@ Number of file 0 mappings: 4
 - Code(Expression(0, Sub)) at (prev + 2, 6) to (start + 0, 7)
     = (c0 - c1)
 - Code(Counter(0)) at (prev + 1, 5) to (start + 1, 2)
+Highest counter ID seen: c1
 
 Function name: used_inline_crate::used_only_from_bin_crate_generic_function::<&alloc::vec::Vec<i32>>
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 21, 01, 02, 02]
@@ -26,6 +28,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 33, 1) to (start + 2, 2)
+Highest counter ID seen: c0
 
 Function name: used_inline_crate::used_only_from_bin_crate_generic_function::<&str>
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 21, 01, 02, 02]
@@ -34,6 +37,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 33, 1) to (start + 2, 2)
+Highest counter ID seen: c0
 
 Function name: used_inline_crate::used_with_same_type_from_bin_crate_and_lib_crate_generic_function::<&str>
 Raw bytes (9): 0x[01, 01, 00, 01, 01, 31, 01, 02, 02]
@@ -42,6 +46,7 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 49, 1) to (start + 2, 2)
+Highest counter ID seen: c0
 
 Function name: uses_inline_crate::main
 Raw bytes (9): 0x[01, 02, 00, 01, 01, 0c, 01, 0a, 02]
@@ -50,4 +55,5 @@ Number of files: 1
 Number of expressions: 0
 Number of file 0 mappings: 1
 - Code(Counter(0)) at (prev + 12, 1) to (start + 10, 2)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/while.cov-map b/tests/coverage/while.cov-map
index 4d813a935a0..29493a651dc 100644
--- a/tests/coverage/while.cov-map
+++ b/tests/coverage/while.cov-map
@@ -10,4 +10,5 @@ Number of file 0 mappings: 4
     = (c0 + Zero)
 - Code(Zero) at (prev + 0, 21) to (start + 2, 6)
 - Code(Counter(0)) at (prev + 3, 1) to (start + 0, 2)
+Highest counter ID seen: c0
 
diff --git a/tests/coverage/while_early_ret.cov-map b/tests/coverage/while_early_ret.cov-map
index c883eb4baf2..6254dfbcf01 100644
--- a/tests/coverage/while_early_ret.cov-map
+++ b/tests/coverage/while_early_ret.cov-map
@@ -23,4 +23,5 @@ Number of file 0 mappings: 9
 - Code(Counter(2)) at (prev + 6, 5) to (start + 0, 11)
 - Code(Expression(4, Add)) at (prev + 1, 1) to (start + 0, 2)
     = ((c3 + c4) + c2)
+Highest counter ID seen: c4
 
diff --git a/tests/coverage/yield.cov-map b/tests/coverage/yield.cov-map
index a273c688e24..578994a4530 100644
--- a/tests/coverage/yield.cov-map
+++ b/tests/coverage/yield.cov-map
@@ -39,6 +39,7 @@ Number of file 0 mappings: 16
 - Code(Expression(10, Add)) at (prev + 1, 14) to (start + 0, 52)
     = (c9 + c10)
 - Code(Counter(11)) at (prev + 2, 1) to (start + 0, 2)
+Highest counter ID seen: c11
 
 Function name: yield::main::{closure#0}
 Raw bytes (14): 0x[01, 01, 00, 02, 01, 09, 08, 01, 10, 05, 02, 10, 01, 06]
@@ -48,6 +49,7 @@ Number of expressions: 0
 Number of file 0 mappings: 2
 - Code(Counter(0)) at (prev + 9, 8) to (start + 1, 16)
 - Code(Counter(1)) at (prev + 2, 16) to (start + 1, 6)
+Highest counter ID seen: c1
 
 Function name: yield::main::{closure#1}
 Raw bytes (24): 0x[01, 01, 00, 04, 01, 18, 08, 01, 10, 05, 02, 09, 00, 10, 09, 01, 09, 00, 10, 0d, 01, 10, 01, 06]
@@ -59,4 +61,5 @@ Number of file 0 mappings: 4
 - Code(Counter(1)) at (prev + 2, 9) to (start + 0, 16)
 - Code(Counter(2)) at (prev + 1, 9) to (start + 0, 16)
 - Code(Counter(3)) at (prev + 1, 16) to (start + 1, 6)
+Highest counter ID seen: c3