| #![feature(coverage_attribute)] | |
| //@ edition: 2021 | |
| //@ compile-flags: -Zcoverage-options=branch | |
| //@ llvm-cov-flags: --show-branches=count | |
| macro_rules! no_merge { | |
| () => { | |
| for _ in 0..1 {} | |
| }; | |
| } | |
| fn while_cond() { | |
| no_merge!(); | |
| let mut a = 8; | |
| while a > 0 { | |
| a -= 1; | |
| } | |
| } | |
| fn while_cond_not() { | |
| no_merge!(); | |
| let mut a = 8; | |
| while !(a == 0) { | |
| a -= 1; | |
| } | |
| } | |
| fn while_op_and() { | |
| no_merge!(); | |
| let mut a = 8; | |
| let mut b = 4; | |
| while a > 0 && b > 0 { | |
| a -= 1; | |
| b -= 1; | |
| } | |
| } | |
| fn while_op_or() { | |
| no_merge!(); | |
| let mut a = 4; | |
| let mut b = 8; | |
| while a > 0 || b > 0 { | |
| a -= 1; | |
| b -= 1; | |
| } | |
| } | |
| #[coverage(off)] | |
| fn main() { | |
| while_cond(); | |
| while_cond_not(); | |
| while_op_and(); | |
| while_op_or(); | |
| } |