]> git.lizzy.rs Git - rust.git/blob - src/test/mir-opt/issue_73223.main.SimplifyArmIdentity.diff
Auto merge of #105436 - nnethercote:inline-place_contents_drop_state_cannot_differ...
[rust.git] / src / test / mir-opt / issue_73223.main.SimplifyArmIdentity.diff
1 - // MIR for `main` before SimplifyArmIdentity
2 + // MIR for `main` after SimplifyArmIdentity
3   
4   fn main() -> () {
5       let mut _0: ();                      // return place in scope 0 at $DIR/issue_73223.rs:+0:11: +0:11
6       let _1: i32;                         // in scope 0 at $DIR/issue_73223.rs:+1:9: +1:14
7       let mut _2: std::option::Option<i32>; // in scope 0 at $DIR/issue_73223.rs:+1:23: +1:30
8       let mut _3: isize;                   // in scope 0 at $DIR/issue_73223.rs:+2:9: +2:16
9       let _4: i32;                         // in scope 0 at $DIR/issue_73223.rs:+2:14: +2:15
10       let mut _5: !;                       // in scope 0 at $DIR/issue_73223.rs:+3:17: +3:23
11       let mut _7: i32;                     // in scope 0 at $DIR/issue_73223.rs:+6:22: +6:27
12       let _8: ();                          // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
13       let mut _9: (&i32, &i32);            // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
14       let mut _10: &i32;                   // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
15       let mut _11: &i32;                   // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
16       let _12: i32;                        // in scope 0 at $DIR/issue_73223.rs:+7:23: +7:24
17       let mut _15: bool;                   // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
18       let mut _16: bool;                   // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
19       let mut _17: i32;                    // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
20       let mut _18: i32;                    // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
21       let mut _19: !;                      // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
22       let _21: !;                          // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
23       let mut _22: core::panicking::AssertKind; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
24       let mut _23: &i32;                   // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
25       let _24: &i32;                       // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
26       let mut _25: &i32;                   // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
27       let _26: &i32;                       // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
28       let mut _27: std::option::Option<std::fmt::Arguments<'_>>; // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
29       let mut _29: &i32;                   // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
30       let mut _30: &i32;                   // in scope 0 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
31       scope 1 {
32           debug split => _1;               // in scope 1 at $DIR/issue_73223.rs:+1:9: +1:14
33           let _6: std::option::Option<i32>; // in scope 1 at $DIR/issue_73223.rs:+6:9: +6:14
34           scope 3 {
35               debug _prev => _6;           // in scope 3 at $DIR/issue_73223.rs:+6:9: +6:14
36               let _13: &i32;               // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
37               let _14: &i32;               // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
38               let mut _28: &i32;           // in scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
39               scope 4 {
40                   debug left_val => _13;   // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
41                   debug right_val => _14;  // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
42                   let _20: core::panicking::AssertKind; // in scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
43                   scope 5 {
44                       debug kind => _20;   // in scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
45                   }
46               }
47           }
48       }
49       scope 2 {
50           debug v => _4;                   // in scope 2 at $DIR/issue_73223.rs:+2:14: +2:15
51       }
52   
53       bb0: {
54           StorageLive(_1);                 // scope 0 at $DIR/issue_73223.rs:+1:9: +1:14
55           StorageLive(_2);                 // scope 0 at $DIR/issue_73223.rs:+1:23: +1:30
56           Deinit(_2);                      // scope 0 at $DIR/issue_73223.rs:+1:23: +1:30
57           ((_2 as Some).0: i32) = const 1_i32; // scope 0 at $DIR/issue_73223.rs:+1:23: +1:30
58           discriminant(_2) = 1;            // scope 0 at $DIR/issue_73223.rs:+1:23: +1:30
59           _3 = const 1_isize;              // scope 0 at $DIR/issue_73223.rs:+1:23: +1:30
60           goto -> bb3;                     // scope 0 at $DIR/issue_73223.rs:+1:17: +1:30
61       }
62   
63       bb1: {
64           nop;                             // scope 0 at $DIR/issue_73223.rs:+3:17: +3:23
65           StorageDead(_2);                 // scope 0 at $DIR/issue_73223.rs:+4:6: +4:7
66           StorageDead(_1);                 // scope 0 at $DIR/issue_73223.rs:+8:1: +8:2
67           return;                          // scope 0 at $DIR/issue_73223.rs:+8:2: +8:2
68       }
69   
70       bb2: {
71           unreachable;                     // scope 0 at $DIR/issue_73223.rs:+1:23: +1:30
72       }
73   
74       bb3: {
75           StorageLive(_4);                 // scope 0 at $DIR/issue_73223.rs:+2:14: +2:15
76           _4 = ((_2 as Some).0: i32);      // scope 0 at $DIR/issue_73223.rs:+2:14: +2:15
77           _1 = _4;                         // scope 2 at $DIR/issue_73223.rs:+2:20: +2:21
78           StorageDead(_4);                 // scope 0 at $DIR/issue_73223.rs:+2:20: +2:21
79           StorageDead(_2);                 // scope 0 at $DIR/issue_73223.rs:+4:6: +4:7
80           StorageLive(_6);                 // scope 1 at $DIR/issue_73223.rs:+6:9: +6:14
81           StorageLive(_7);                 // scope 1 at $DIR/issue_73223.rs:+6:22: +6:27
82           _7 = _1;                         // scope 1 at $DIR/issue_73223.rs:+6:22: +6:27
83           Deinit(_6);                      // scope 1 at $DIR/issue_73223.rs:+6:17: +6:28
84           ((_6 as Some).0: i32) = move _7; // scope 1 at $DIR/issue_73223.rs:+6:17: +6:28
85           discriminant(_6) = 1;            // scope 1 at $DIR/issue_73223.rs:+6:17: +6:28
86           StorageDead(_7);                 // scope 1 at $DIR/issue_73223.rs:+6:27: +6:28
87           StorageLive(_8);                 // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
88           StorageLive(_29);                // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
89           StorageLive(_30);                // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
90           StorageLive(_10);                // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
91           _10 = &_1;                       // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
92           StorageLive(_11);                // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
93           _28 = const _;                   // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
94                                            // mir::Constant
95                                            // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
96                                            // + literal: Const { ty: &i32, val: Unevaluated(main, [], Some(promoted[0])) }
97           _11 = _28;                       // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
98           Deinit(_29);                     // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
99           Deinit(_30);                     // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
100           _29 = move _10;                  // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
101           _30 = move _11;                  // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
102           StorageDead(_11);                // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
103           StorageDead(_10);                // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
104           StorageLive(_13);                // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
105           _13 = _29;                       // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
106           StorageLive(_14);                // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
107           _14 = _30;                       // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
108           StorageLive(_15);                // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
109           StorageLive(_16);                // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
110           StorageLive(_17);                // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
111           _17 = (*_13);                    // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
112           StorageLive(_18);                // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
113           _18 = const 1_i32;               // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
114           _16 = Eq(move _17, const 1_i32); // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
115           StorageDead(_18);                // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
116           StorageDead(_17);                // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
117           _15 = Not(move _16);             // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
118           StorageDead(_16);                // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
119           switchInt(move _15) -> [0: bb5, otherwise: bb4]; // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
120       }
121   
122       bb4: {
123           StorageLive(_20);                // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
124           Deinit(_20);                     // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
125           discriminant(_20) = 0;           // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
126           StorageLive(_21);                // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
127           StorageLive(_22);                // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
128           _22 = const core::panicking::AssertKind::Eq; // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
129                                            // mir::Constant
130                                            // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
131                                            // + literal: Const { ty: core::panicking::AssertKind, val: Value(Scalar(0x00)) }
132           StorageLive(_23);                // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
133           StorageLive(_24);                // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
134           _24 = _13;                       // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
135           _23 = _24;                       // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
136           StorageLive(_25);                // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
137           StorageLive(_26);                // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
138           _26 = _14;                       // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
139           _25 = _26;                       // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
140           StorageLive(_27);                // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
141           Deinit(_27);                     // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
142           discriminant(_27) = 0;           // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
143           _21 = core::panicking::assert_failed::<i32, i32>(const core::panicking::AssertKind::Eq, move _23, move _25, move _27); // scope 5 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
144                                            // mir::Constant
145                                            // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
146                                            // + literal: Const { ty: for<'a, 'b, 'c> fn(core::panicking::AssertKind, &'a i32, &'b i32, Option<Arguments<'c>>) -> ! {core::panicking::assert_failed::<i32, i32>}, val: Value(<ZST>) }
147                                            // mir::Constant
148                                            // + span: $SRC_DIR/core/src/macros/mod.rs:LL:COL
149                                            // + literal: Const { ty: core::panicking::AssertKind, val: Value(Scalar(0x00)) }
150       }
151   
152       bb5: {
153           nop;                             // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
154           StorageDead(_15);                // scope 4 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
155           StorageDead(_14);                // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
156           StorageDead(_13);                // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
157           StorageDead(_29);                // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
158           StorageDead(_30);                // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
159           StorageDead(_8);                 // scope 3 at $SRC_DIR/core/src/macros/mod.rs:LL:COL
160           nop;                             // scope 0 at $DIR/issue_73223.rs:+0:11: +8:2
161           StorageDead(_6);                 // scope 1 at $DIR/issue_73223.rs:+8:1: +8:2
162           StorageDead(_1);                 // scope 0 at $DIR/issue_73223.rs:+8:1: +8:2
163           return;                          // scope 0 at $DIR/issue_73223.rs:+8:2: +8:2
164       }
165   }
166