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 a, mut b, mut c) = (0, 0, 0); | |
10| 1| if is_true { | |
11| 1| a = 1; | |
12| 1| b = 10; | |
13| 1| c = 100; | |
14| 1| } | |
^0 | |
15| | let | |
16| 1| somebool | |
17| | = | |
18| 1| a < b | |
19| | || | |
20| 0| b < c | |
21| | ; | |
22| | let | |
23| 1| somebool | |
24| | = | |
25| 1| b < a | |
26| | || | |
27| 1| b < c | |
28| | ; | |
29| 1| let somebool = a < b && b < c; | |
30| 1| let somebool = b < a && b < c; | |
^0 | |
31| | | |
32| | if | |
33| 1| ! | |
34| 1| is_true | |
35| 0| { | |
36| 0| a = 2 | |
37| 0| ; | |
38| 1| } | |
39| | | |
40| | if | |
41| 1| is_true | |
42| 1| { | |
43| 1| b = 30 | |
44| 1| ; | |
45| 1| } | |
46| | else | |
47| 0| { | |
48| 0| c = 400 | |
49| 0| ; | |
50| 0| } | |
51| | | |
52| 1| if !is_true { | |
53| 0| a = 2; | |
54| 1| } | |
55| | | |
56| 1| if is_true { | |
57| 1| b = 30; | |
58| 1| } else { | |
59| 0| c = 400; | |
60| 0| } | |
61| 1|} | |