| // Test that `-C instrument-coverage` injects Coverage statements. | |
| // The Coverage::CounterIncrement statements are later converted into LLVM | |
| // instrprof.increment intrinsics, during codegen. | |
| //@ test-mir-pass: InstrumentCoverage | |
| //@ compile-flags: -Cinstrument-coverage -Zno-profiler-runtime | |
| // EMIT_MIR instrument_coverage.main.InstrumentCoverage.diff | |
| // CHECK-LABEL: fn main() | |
| // CHECK: coverage Code { bcb: bcb{{[0-9]+}} } => | |
| // CHECK: bb0: | |
| // CHECK: Coverage::VirtualCounter | |
| fn main() { | |
| loop { | |
| if bar() { | |
| break; | |
| } | |
| } | |
| } | |
| // EMIT_MIR instrument_coverage.bar.InstrumentCoverage.diff | |
| // CHECK-LABEL: fn bar() | |
| // CHECK: coverage Code { bcb: bcb{{[0-9]+}} } => | |
| // CHECK: bb0: | |
| // CHECK: Coverage::VirtualCounter | |
| #[inline(never)] | |
| fn bar() -> bool { | |
| true | |
| } |