]> git.lizzy.rs Git - rust.git/blob - src/test/mir-opt/unreachable.rs
Add regression test for #64319 back in.
[rust.git] / src / test / mir-opt / unreachable.rs
1 enum Empty {}
2
3 fn empty() -> Option<Empty> {
4     None
5 }
6
7 fn main() {
8     if let Some(_x) = empty() {
9         let mut _y;
10
11         if true {
12             _y = 21;
13         } else {
14             _y = 42;
15         }
16
17         match _x { }
18     }
19 }
20
21 // END RUST SOURCE
22 // START rustc.main.UnreachablePropagation.before.mir
23 //      bb0: {
24 //          StorageLive(_1);
25 //          _1 = const empty() -> bb1;
26 //      }
27 //      bb1: {
28 //          _2 = discriminant(_1);
29 //          switchInt(move _2) -> [1isize: bb3, otherwise: bb2];
30 //      }
31 //      bb2: {
32 //          _0 = ();
33 //          StorageDead(_1);
34 //          return;
35 //      }
36 //      bb3: {
37 //          StorageLive(_3);
38 //          _3 = move ((_1 as Some).0: Empty);
39 //          StorageLive(_4);
40 //          StorageLive(_5);
41 //          StorageLive(_6);
42 //          _6 = const true;
43 //          switchInt(_6) -> [false: bb4, otherwise: bb5];
44 //      }
45 //      bb4: {
46 //          _4 = const 42i32;
47 //          _5 = ();
48 //          goto -> bb6;
49 //      }
50 //      bb5: {
51 //          _4 = const 21i32;
52 //          _5 = ();
53 //          goto -> bb6;
54 //      }
55 //      bb6: {
56 //          StorageDead(_6);
57 //          StorageDead(_5);
58 //          StorageLive(_7);
59 //          unreachable;
60 //      }
61 //  }
62 // END rustc.main.UnreachablePropagation.before.mir
63 // START rustc.main.UnreachablePropagation.after.mir
64 //      bb0: {
65 //          StorageLive(_1);
66 //          _1 = const empty() -> bb1;
67 //      }
68 //      bb1: {
69 //          _2 = discriminant(_1);
70 //          goto -> bb2;
71 //      }
72 //      bb2: {
73 //          _0 = ();
74 //          StorageDead(_1);
75 //          return;
76 //      }
77 //  }
78 // END rustc.main.UnreachablePropagation.after.mir