diff options
| author | Zalathar <Zalathar@users.noreply.github.com> | 2023-06-29 12:36:19 +1000 |
|---|---|---|
| committer | Zalathar <Zalathar@users.noreply.github.com> | 2023-08-01 11:29:55 +1000 |
| commit | 3920e07f0bd97d9815a037eaeea197266424cd56 (patch) | |
| tree | 097f5c579cbd053041efc198705d45467fde8c2b /compiler/rustc_mir_transform/src/coverage/counters.rs | |
| parent | f103db894fdcf94822d57cf28e30bc498c042631 (diff) | |
| download | rust-3920e07f0bd97d9815a037eaeea197266424cd56.tar.gz rust-3920e07f0bd97d9815a037eaeea197266424cd56.zip | |
Make coverage counter IDs count up from 0, not 1
Operand types are now tracked explicitly, so there is no need to reserve ID 0 for the special always-zero counter. As part of the renumbering, this change fixes an off-by-one error in the way counters were counted by the `coverageinfo` query. As a result, functions should now have exactly the number of counters they actually need, instead of always having an extra counter that is never used.
Diffstat (limited to 'compiler/rustc_mir_transform/src/coverage/counters.rs')
| -rw-r--r-- | compiler/rustc_mir_transform/src/coverage/counters.rs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/compiler/rustc_mir_transform/src/coverage/counters.rs b/compiler/rustc_mir_transform/src/coverage/counters.rs index cd2539a5e66..97bdb878ab1 100644 --- a/compiler/rustc_mir_transform/src/coverage/counters.rs +++ b/compiler/rustc_mir_transform/src/coverage/counters.rs @@ -16,7 +16,7 @@ use rustc_middle::mir::coverage::*; /// `Coverage` statements. pub(super) struct CoverageCounters { function_source_hash: u64, - next_counter_id: u32, + next_counter_id: CounterId, next_expression_id: ExpressionId, pub debug_counters: DebugCounters, } @@ -25,7 +25,7 @@ impl CoverageCounters { pub fn new(function_source_hash: u64) -> Self { Self { function_source_hash, - next_counter_id: CounterValueReference::START.as_u32(), + next_counter_id: CounterId::START, next_expression_id: ExpressionId::START, debug_counters: DebugCounters::new(), } @@ -93,10 +93,10 @@ impl CoverageCounters { } /// Counter IDs start from one and go up. - fn next_counter(&mut self) -> CounterValueReference { + fn next_counter(&mut self) -> CounterId { let next = self.next_counter_id; - self.next_counter_id += 1; - CounterValueReference::from(next) + self.next_counter_id = next.next_id(); + next } /// Expression IDs start from 0 and go up. |
