| 1| |#![allow(unused_assignments, unused_variables)] | |
| 2| | | |
| 3| 1|fn main() { | |
| 4| 1| // Initialize test constants in a way that cannot be determined at compile time, to ensure | |
| 5| 1| // rustc and LLVM cannot optimize out statements (or coverage counters) downstream from | |
| 6| 1| // dependent conditions. | |
| 7| 1| let is_true = std::env::args().len() == 1; | |
| 8| 1| | |
| 9| 1| let mut countdown = 0; | |
| 10| 1| if | |
| 11| 1| is_true | |
| 12| 1| { | |
| 13| 1| countdown | |
| 14| 1| = | |
| 15| 1| 10 | |
| 16| 1| ; | |
| 17| 1| } | |
| 18| | else // Note coverage region difference without semicolon | |
| 19| | { | |
| 20| 0| countdown | |
| 21| 0| = | |
| 22| 0| 100 | |
| 23| | } | |
| 24| | | |
| 25| | if | |
| 26| 1| is_true | |
| 27| 1| { | |
| 28| 1| countdown | |
| 29| 1| = | |
| 30| 1| 10 | |
| 31| 1| ; | |
| 32| 1| } | |
| 33| | else | |
| 34| 0| { | |
| 35| 0| countdown | |
| 36| 0| = | |
| 37| 0| 100 | |
| 38| 0| ; | |
| 39| 0| } | |
| 40| 1|} | |