]> git.proxmox.com Git - rustc.git/blame - src/test/mir-opt/retag.main.SimplifyCfg-elaborate-drops.after.mir
New upstream version 1.48.0~beta.8+dfsg1
[rustc.git] / src / test / mir-opt / retag.main.SimplifyCfg-elaborate-drops.after.mir
CommitLineData
ba9703b0
XL
1// MIR for `main` after SimplifyCfg-elaborate-drops
2
3fn main() -> () {
4 let mut _0: (); // return place in scope 0 at $DIR/retag.rs:29:11: 29:11
5 let mut _1: i32; // in scope 0 at $DIR/retag.rs:30:9: 30:14
6 let _2: (); // in scope 0 at $DIR/retag.rs:31:5: 37:6
7 let mut _4: &Test; // in scope 0 at $DIR/retag.rs:32:17: 32:24
8 let _5: Test; // in scope 0 at $DIR/retag.rs:32:17: 32:24
9 let mut _6: &mut i32; // in scope 0 at $DIR/retag.rs:32:29: 32:35
10 let mut _7: &mut i32; // in scope 0 at $DIR/retag.rs:32:29: 32:35
11 let mut _9: &mut i32; // in scope 0 at $DIR/retag.rs:33:19: 33:20
12 let mut _12: *mut i32; // in scope 0 at $DIR/retag.rs:36:18: 36:29
1b1a35ee 13 let mut _14: [closure@main::{closure#0}]; // in scope 0 at $DIR/retag.rs:40:31: 43:6
ba9703b0
XL
14 let mut _16: for<'r> fn(&'r i32) -> &'r i32; // in scope 0 at $DIR/retag.rs:44:14: 44:15
15 let mut _17: &i32; // in scope 0 at $DIR/retag.rs:44:16: 44:18
16 let _18: &i32; // in scope 0 at $DIR/retag.rs:44:16: 44:18
17 let _19: &i32; // in scope 0 at $DIR/retag.rs:47:5: 47:24
18 let mut _20: &Test; // in scope 0 at $DIR/retag.rs:47:5: 47:12
19 let _21: Test; // in scope 0 at $DIR/retag.rs:47:5: 47:12
20 let mut _22: &i32; // in scope 0 at $DIR/retag.rs:47:21: 47:23
21 let _23: &i32; // in scope 0 at $DIR/retag.rs:47:21: 47:23
22 let _24: i32; // in scope 0 at $DIR/retag.rs:47:22: 47:23
23 let mut _26: *const i32; // in scope 0 at $DIR/retag.rs:50:14: 50:28
24 scope 1 {
25 debug x => _1; // in scope 1 at $DIR/retag.rs:30:9: 30:14
26 let _3: &mut i32; // in scope 1 at $DIR/retag.rs:32:13: 32:14
f9f354fc 27 let _13: for<'r> fn(&'r i32) -> &'r i32; // in scope 1 at $DIR/retag.rs:40:9: 40:10
ba9703b0
XL
28 scope 2 {
29 debug v => _3; // in scope 2 at $DIR/retag.rs:32:13: 32:14
30 let _8: &mut i32; // in scope 2 at $DIR/retag.rs:33:13: 33:14
31 scope 3 {
32 debug w => _8; // in scope 3 at $DIR/retag.rs:33:13: 33:14
33 let _10: &mut i32; // in scope 3 at $DIR/retag.rs:34:13: 34:14
34 scope 4 {
35 debug w => _10; // in scope 4 at $DIR/retag.rs:34:13: 34:14
36 let _11: *mut i32; // in scope 4 at $DIR/retag.rs:36:13: 36:15
37 scope 5 {
38 debug _w => _11; // in scope 5 at $DIR/retag.rs:36:13: 36:15
39 }
40 }
41 }
42 }
43 scope 6 {
44 debug c => _13; // in scope 6 at $DIR/retag.rs:40:9: 40:10
45 let _15: &i32; // in scope 6 at $DIR/retag.rs:44:9: 44:11
46 scope 7 {
47 debug _w => _15; // in scope 7 at $DIR/retag.rs:44:9: 44:11
48 let _25: *const i32; // in scope 7 at $DIR/retag.rs:50:9: 50:11
49 let mut _27: &i32; // in scope 7 at $DIR/retag.rs:47:21: 47:23
50 scope 8 {
51 debug _w => _25; // in scope 8 at $DIR/retag.rs:50:9: 50:11
52 }
53 }
54 }
55 }
56
57 bb0: {
f9f354fc 58 StorageLive(_1); // scope 0 at $DIR/retag.rs:30:9: 30:14
f035d41b 59 _1 = const 0_i32; // scope 0 at $DIR/retag.rs:30:17: 30:18
f9f354fc
XL
60 StorageLive(_2); // scope 1 at $DIR/retag.rs:31:5: 37:6
61 StorageLive(_3); // scope 1 at $DIR/retag.rs:32:13: 32:14
62 StorageLive(_4); // scope 1 at $DIR/retag.rs:32:17: 32:24
63 StorageLive(_5); // scope 1 at $DIR/retag.rs:32:17: 32:24
f035d41b 64 _5 = Test(const 0_i32); // scope 1 at $DIR/retag.rs:32:17: 32:24
f9f354fc
XL
65 _4 = &_5; // scope 1 at $DIR/retag.rs:32:17: 32:24
66 Retag(_4); // scope 1 at $DIR/retag.rs:32:17: 32:24
67 StorageLive(_6); // scope 1 at $DIR/retag.rs:32:29: 32:35
68 StorageLive(_7); // scope 1 at $DIR/retag.rs:32:29: 32:35
69 _7 = &mut _1; // scope 1 at $DIR/retag.rs:32:29: 32:35
70 Retag(_7); // scope 1 at $DIR/retag.rs:32:29: 32:35
71 _6 = &mut (*_7); // scope 1 at $DIR/retag.rs:32:29: 32:35
72 Retag([2phase] _6); // scope 1 at $DIR/retag.rs:32:29: 32:35
3dfed10e 73 _3 = Test::foo(move _4, move _6) -> [return: bb2, unwind: bb3]; // scope 1 at $DIR/retag.rs:32:17: 32:36
ba9703b0
XL
74 // mir::Constant
75 // + span: $DIR/retag.rs:32:25: 32:28
76 // + literal: Const { ty: for<'r, 'x> fn(&'r Test, &'x mut i32) -> &'x mut i32 {Test::foo}, val: Value(Scalar(<ZST>)) }
77 }
78
79 bb1 (cleanup): {
f9f354fc 80 resume; // scope 0 at $DIR/retag.rs:29:1: 51:2
ba9703b0
XL
81 }
82
83 bb2: {
f9f354fc
XL
84 Retag(_3); // scope 1 at $DIR/retag.rs:32:17: 32:36
85 StorageDead(_6); // scope 1 at $DIR/retag.rs:32:35: 32:36
86 StorageDead(_4); // scope 1 at $DIR/retag.rs:32:35: 32:36
87 StorageDead(_7); // scope 1 at $DIR/retag.rs:32:36: 32:37
88 drop(_5) -> [return: bb4, unwind: bb1]; // scope 1 at $DIR/retag.rs:32:36: 32:37
ba9703b0
XL
89 }
90
91 bb3 (cleanup): {
f9f354fc 92 drop(_5) -> bb1; // scope 1 at $DIR/retag.rs:32:36: 32:37
ba9703b0
XL
93 }
94
95 bb4: {
f9f354fc
XL
96 StorageDead(_5); // scope 1 at $DIR/retag.rs:32:36: 32:37
97 StorageLive(_8); // scope 2 at $DIR/retag.rs:33:13: 33:14
98 StorageLive(_9); // scope 2 at $DIR/retag.rs:33:19: 33:20
99 _9 = move _3; // scope 2 at $DIR/retag.rs:33:19: 33:20
100 Retag(_9); // scope 2 at $DIR/retag.rs:33:19: 33:20
101 _8 = &mut (*_9); // scope 2 at $DIR/retag.rs:33:19: 33:20
102 Retag(_8); // scope 2 at $DIR/retag.rs:33:19: 33:20
103 StorageDead(_9); // scope 2 at $DIR/retag.rs:33:22: 33:23
104 StorageLive(_10); // scope 3 at $DIR/retag.rs:34:13: 34:14
105 _10 = move _8; // scope 3 at $DIR/retag.rs:34:17: 34:18
106 Retag(_10); // scope 3 at $DIR/retag.rs:34:17: 34:18
107 StorageLive(_11); // scope 4 at $DIR/retag.rs:36:13: 36:15
108 StorageLive(_12); // scope 4 at $DIR/retag.rs:36:18: 36:29
109 _12 = &raw mut (*_10); // scope 4 at $DIR/retag.rs:36:18: 36:19
110 Retag([raw] _12); // scope 4 at $DIR/retag.rs:36:18: 36:19
111 _11 = _12; // scope 4 at $DIR/retag.rs:36:18: 36:29
112 StorageDead(_12); // scope 4 at $DIR/retag.rs:36:29: 36:30
113 _2 = const (); // scope 1 at $DIR/retag.rs:31:5: 37:6
f9f354fc
XL
114 StorageDead(_11); // scope 4 at $DIR/retag.rs:37:5: 37:6
115 StorageDead(_10); // scope 3 at $DIR/retag.rs:37:5: 37:6
116 StorageDead(_8); // scope 2 at $DIR/retag.rs:37:5: 37:6
117 StorageDead(_3); // scope 1 at $DIR/retag.rs:37:5: 37:6
118 StorageDead(_2); // scope 1 at $DIR/retag.rs:37:5: 37:6
119 StorageLive(_13); // scope 1 at $DIR/retag.rs:40:9: 40:10
120 StorageLive(_14); // scope 1 at $DIR/retag.rs:40:31: 43:6
1b1a35ee 121 _14 = [closure@main::{closure#0}]; // scope 1 at $DIR/retag.rs:40:31: 43:6
ba9703b0 122 // closure
1b1a35ee 123 // + def_id: DefId(0:14 ~ retag[317d]::main::{closure#0})
ba9703b0
XL
124 // + substs: [
125 // i8,
126 // for<'r> extern "rust-call" fn((&'r i32,)) -> &'r i32,
127 // (),
128 // ]
f9f354fc
XL
129 Retag(_14); // scope 1 at $DIR/retag.rs:40:31: 43:6
130 _13 = move _14 as for<'r> fn(&'r i32) -> &'r i32 (Pointer(ClosureFnPointer(Normal))); // scope 1 at $DIR/retag.rs:40:31: 43:6
131 StorageDead(_14); // scope 1 at $DIR/retag.rs:43:5: 43:6
132 StorageLive(_15); // scope 6 at $DIR/retag.rs:44:9: 44:11
133 StorageLive(_16); // scope 6 at $DIR/retag.rs:44:14: 44:15
134 _16 = _13; // scope 6 at $DIR/retag.rs:44:14: 44:15
135 StorageLive(_17); // scope 6 at $DIR/retag.rs:44:16: 44:18
136 StorageLive(_18); // scope 6 at $DIR/retag.rs:44:16: 44:18
137 _18 = &_1; // scope 6 at $DIR/retag.rs:44:16: 44:18
138 Retag(_18); // scope 6 at $DIR/retag.rs:44:16: 44:18
139 _17 = &(*_18); // scope 6 at $DIR/retag.rs:44:16: 44:18
140 Retag(_17); // scope 6 at $DIR/retag.rs:44:16: 44:18
141 _15 = move _16(move _17) -> bb5; // scope 6 at $DIR/retag.rs:44:14: 44:19
ba9703b0
XL
142 }
143
144 bb5: {
f9f354fc
XL
145 Retag(_15); // scope 6 at $DIR/retag.rs:44:14: 44:19
146 StorageDead(_17); // scope 6 at $DIR/retag.rs:44:18: 44:19
147 StorageDead(_16); // scope 6 at $DIR/retag.rs:44:18: 44:19
148 StorageDead(_18); // scope 6 at $DIR/retag.rs:44:19: 44:20
149 StorageLive(_19); // scope 7 at $DIR/retag.rs:47:5: 47:24
150 StorageLive(_20); // scope 7 at $DIR/retag.rs:47:5: 47:12
151 StorageLive(_21); // scope 7 at $DIR/retag.rs:47:5: 47:12
f035d41b 152 _21 = Test(const 0_i32); // scope 7 at $DIR/retag.rs:47:5: 47:12
f9f354fc
XL
153 _20 = &_21; // scope 7 at $DIR/retag.rs:47:5: 47:12
154 Retag(_20); // scope 7 at $DIR/retag.rs:47:5: 47:12
155 StorageLive(_22); // scope 7 at $DIR/retag.rs:47:21: 47:23
156 StorageLive(_23); // scope 7 at $DIR/retag.rs:47:21: 47:23
157 _27 = const main::promoted[0]; // scope 7 at $DIR/retag.rs:47:21: 47:23
ba9703b0
XL
158 // ty::Const
159 // + ty: &i32
1b1a35ee 160 // + val: Unevaluated(WithOptConstParam { did: DefId(0:13 ~ retag[317d]::main), const_param_did: None }, [], Some(promoted[0]))
ba9703b0
XL
161 // mir::Constant
162 // + span: $DIR/retag.rs:47:21: 47:23
1b1a35ee 163 // + literal: Const { ty: &i32, val: Unevaluated(WithOptConstParam { did: DefId(0:13 ~ retag[317d]::main), const_param_did: None }, [], Some(promoted[0])) }
f9f354fc
XL
164 Retag(_27); // scope 7 at $DIR/retag.rs:47:21: 47:23
165 _23 = &(*_27); // scope 7 at $DIR/retag.rs:47:21: 47:23
166 Retag(_23); // scope 7 at $DIR/retag.rs:47:21: 47:23
167 _22 = &(*_23); // scope 7 at $DIR/retag.rs:47:21: 47:23
168 Retag(_22); // scope 7 at $DIR/retag.rs:47:21: 47:23
3dfed10e 169 _19 = Test::foo_shr(move _20, move _22) -> [return: bb6, unwind: bb7]; // scope 7 at $DIR/retag.rs:47:5: 47:24
ba9703b0
XL
170 // mir::Constant
171 // + span: $DIR/retag.rs:47:13: 47:20
172 // + literal: Const { ty: for<'r, 'x> fn(&'r Test, &'x i32) -> &'x i32 {Test::foo_shr}, val: Value(Scalar(<ZST>)) }
173 }
174
175 bb6: {
f9f354fc
XL
176 Retag(_19); // scope 7 at $DIR/retag.rs:47:5: 47:24
177 StorageDead(_22); // scope 7 at $DIR/retag.rs:47:23: 47:24
178 StorageDead(_20); // scope 7 at $DIR/retag.rs:47:23: 47:24
179 StorageDead(_23); // scope 7 at $DIR/retag.rs:47:24: 47:25
180 drop(_21) -> [return: bb8, unwind: bb1]; // scope 7 at $DIR/retag.rs:47:24: 47:25
ba9703b0
XL
181 }
182
183 bb7 (cleanup): {
f9f354fc 184 drop(_21) -> bb1; // scope 7 at $DIR/retag.rs:47:24: 47:25
ba9703b0
XL
185 }
186
187 bb8: {
f9f354fc
XL
188 StorageDead(_21); // scope 7 at $DIR/retag.rs:47:24: 47:25
189 StorageDead(_19); // scope 7 at $DIR/retag.rs:47:24: 47:25
190 StorageLive(_25); // scope 7 at $DIR/retag.rs:50:9: 50:11
191 StorageLive(_26); // scope 7 at $DIR/retag.rs:50:14: 50:28
192 _26 = &raw const (*_15); // scope 7 at $DIR/retag.rs:50:14: 50:16
193 Retag([raw] _26); // scope 7 at $DIR/retag.rs:50:14: 50:16
194 _25 = _26; // scope 7 at $DIR/retag.rs:50:14: 50:28
195 StorageDead(_26); // scope 7 at $DIR/retag.rs:50:28: 50:29
196 _0 = const (); // scope 0 at $DIR/retag.rs:29:11: 51:2
f9f354fc
XL
197 StorageDead(_25); // scope 7 at $DIR/retag.rs:51:1: 51:2
198 StorageDead(_15); // scope 6 at $DIR/retag.rs:51:1: 51:2
199 StorageDead(_13); // scope 1 at $DIR/retag.rs:51:1: 51:2
200 StorageDead(_1); // scope 0 at $DIR/retag.rs:51:1: 51:2
201 return; // scope 0 at $DIR/retag.rs:51:2: 51:2
ba9703b0
XL
202 }
203}