]> git.lizzy.rs Git - rust.git/blob - src/test/mir-opt/address_of.address_of_reborrow.SimplifyCfg-initial.after.mir
Rollup merge of #99084 - RalfJung:write_bytes, r=thomcc
[rust.git] / src / test / mir-opt / address_of.address_of_reborrow.SimplifyCfg-initial.after.mir
1 // MIR for `address_of_reborrow` after SimplifyCfg-initial
2
3 | User Type Annotations
4 | 0: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address-of.rs:7:5: 7:18, inferred_ty: *const [i32; 10]
5 | 1: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address-of.rs:9:5: 9:25, inferred_ty: *const dyn std::marker::Send
6 | 2: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address-of.rs:13:12: 13:20, inferred_ty: *const [i32; 10]
7 | 3: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address-of.rs:13:12: 13:20, inferred_ty: *const [i32; 10]
8 | 4: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32; 10]) }, span: $DIR/address-of.rs:14:12: 14:28, inferred_ty: *const [i32; 10]
9 | 5: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32; 10]) }, span: $DIR/address-of.rs:14:12: 14:28, inferred_ty: *const [i32; 10]
10 | 6: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address-of.rs:15:12: 15:27, inferred_ty: *const dyn std::marker::Send
11 | 7: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address-of.rs:15:12: 15:27, inferred_ty: *const dyn std::marker::Send
12 | 8: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32]) }, span: $DIR/address-of.rs:16:12: 16:24, inferred_ty: *const [i32]
13 | 9: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32]) }, span: $DIR/address-of.rs:16:12: 16:24, inferred_ty: *const [i32]
14 | 10: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address-of.rs:18:5: 18:18, inferred_ty: *const [i32; 10]
15 | 11: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address-of.rs:20:5: 20:25, inferred_ty: *const dyn std::marker::Send
16 | 12: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address-of.rs:23:12: 23:20, inferred_ty: *const [i32; 10]
17 | 13: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*const ^0) }, span: $DIR/address-of.rs:23:12: 23:20, inferred_ty: *const [i32; 10]
18 | 14: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32; 10]) }, span: $DIR/address-of.rs:24:12: 24:28, inferred_ty: *const [i32; 10]
19 | 15: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32; 10]) }, span: $DIR/address-of.rs:24:12: 24:28, inferred_ty: *const [i32; 10]
20 | 16: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address-of.rs:25:12: 25:27, inferred_ty: *const dyn std::marker::Send
21 | 17: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*const dyn std::marker::Send) }, span: $DIR/address-of.rs:25:12: 25:27, inferred_ty: *const dyn std::marker::Send
22 | 18: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32]) }, span: $DIR/address-of.rs:26:12: 26:24, inferred_ty: *const [i32]
23 | 19: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*const [i32]) }, span: $DIR/address-of.rs:26:12: 26:24, inferred_ty: *const [i32]
24 | 20: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*mut ^0) }, span: $DIR/address-of.rs:28:5: 28:16, inferred_ty: *mut [i32; 10]
25 | 21: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*mut dyn std::marker::Send) }, span: $DIR/address-of.rs:30:5: 30:23, inferred_ty: *mut dyn std::marker::Send
26 | 22: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*mut ^0) }, span: $DIR/address-of.rs:33:12: 33:18, inferred_ty: *mut [i32; 10]
27 | 23: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }], value: Ty(*mut ^0) }, span: $DIR/address-of.rs:33:12: 33:18, inferred_ty: *mut [i32; 10]
28 | 24: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*mut [i32; 10]) }, span: $DIR/address-of.rs:34:12: 34:26, inferred_ty: *mut [i32; 10]
29 | 25: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*mut [i32; 10]) }, span: $DIR/address-of.rs:34:12: 34:26, inferred_ty: *mut [i32; 10]
30 | 26: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*mut dyn std::marker::Send) }, span: $DIR/address-of.rs:35:12: 35:25, inferred_ty: *mut dyn std::marker::Send
31 | 27: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }], value: Ty(*mut dyn std::marker::Send) }, span: $DIR/address-of.rs:35:12: 35:25, inferred_ty: *mut dyn std::marker::Send
32 | 28: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*mut [i32]) }, span: $DIR/address-of.rs:36:12: 36:22, inferred_ty: *mut [i32]
33 | 29: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*mut [i32]) }, span: $DIR/address-of.rs:36:12: 36:22, inferred_ty: *mut [i32]
34 |
35 fn address_of_reborrow() -> () {
36     let mut _0: ();                      // return place in scope 0 at $DIR/address-of.rs:3:26: 3:26
37     let _1: &[i32; 10];                  // in scope 0 at $DIR/address-of.rs:4:9: 4:10
38     let _2: [i32; 10];                   // in scope 0 at $DIR/address-of.rs:4:14: 4:21
39     let mut _4: [i32; 10];               // in scope 0 at $DIR/address-of.rs:5:22: 5:29
40     let _5: *const [i32; 10];            // in scope 0 at $DIR/address-of.rs:7:5: 7:18
41     let mut _6: *const [i32; 10];        // in scope 0 at $DIR/address-of.rs:7:5: 7:18
42     let _7: *const [i32; 10];            // in scope 0 at $DIR/address-of.rs:8:5: 8:26
43     let _8: *const dyn std::marker::Send; // in scope 0 at $DIR/address-of.rs:9:5: 9:25
44     let mut _9: *const dyn std::marker::Send; // in scope 0 at $DIR/address-of.rs:9:5: 9:25
45     let mut _10: *const [i32; 10];       // in scope 0 at $DIR/address-of.rs:9:5: 9:6
46     let _11: *const [i32];               // in scope 0 at $DIR/address-of.rs:10:5: 10:22
47     let mut _12: *const [i32; 10];       // in scope 0 at $DIR/address-of.rs:10:5: 10:6
48     let _13: *const i32;                 // in scope 0 at $DIR/address-of.rs:11:5: 11:20
49     let mut _14: *const [i32; 10];       // in scope 0 at $DIR/address-of.rs:11:5: 11:6
50     let mut _18: *const [i32; 10];       // in scope 0 at $DIR/address-of.rs:15:30: 15:31
51     let mut _20: *const [i32; 10];       // in scope 0 at $DIR/address-of.rs:16:27: 16:28
52     let _21: *const [i32; 10];           // in scope 0 at $DIR/address-of.rs:18:5: 18:18
53     let mut _22: *const [i32; 10];       // in scope 0 at $DIR/address-of.rs:18:5: 18:18
54     let _23: *const [i32; 10];           // in scope 0 at $DIR/address-of.rs:19:5: 19:26
55     let _24: *const dyn std::marker::Send; // in scope 0 at $DIR/address-of.rs:20:5: 20:25
56     let mut _25: *const dyn std::marker::Send; // in scope 0 at $DIR/address-of.rs:20:5: 20:25
57     let mut _26: *const [i32; 10];       // in scope 0 at $DIR/address-of.rs:20:5: 20:6
58     let _27: *const [i32];               // in scope 0 at $DIR/address-of.rs:21:5: 21:22
59     let mut _28: *const [i32; 10];       // in scope 0 at $DIR/address-of.rs:21:5: 21:6
60     let mut _32: *const [i32; 10];       // in scope 0 at $DIR/address-of.rs:25:30: 25:31
61     let mut _34: *const [i32; 10];       // in scope 0 at $DIR/address-of.rs:26:27: 26:28
62     let _35: *mut [i32; 10];             // in scope 0 at $DIR/address-of.rs:28:5: 28:16
63     let mut _36: *mut [i32; 10];         // in scope 0 at $DIR/address-of.rs:28:5: 28:16
64     let _37: *mut [i32; 10];             // in scope 0 at $DIR/address-of.rs:29:5: 29:24
65     let _38: *mut dyn std::marker::Send; // in scope 0 at $DIR/address-of.rs:30:5: 30:23
66     let mut _39: *mut dyn std::marker::Send; // in scope 0 at $DIR/address-of.rs:30:5: 30:23
67     let mut _40: *mut [i32; 10];         // in scope 0 at $DIR/address-of.rs:30:5: 30:6
68     let _41: *mut [i32];                 // in scope 0 at $DIR/address-of.rs:31:5: 31:20
69     let mut _42: *mut [i32; 10];         // in scope 0 at $DIR/address-of.rs:31:5: 31:6
70     let mut _46: *mut [i32; 10];         // in scope 0 at $DIR/address-of.rs:35:28: 35:29
71     let mut _48: *mut [i32; 10];         // in scope 0 at $DIR/address-of.rs:36:25: 36:26
72     scope 1 {
73         debug y => _1;                   // in scope 1 at $DIR/address-of.rs:4:9: 4:10
74         let mut _3: &mut [i32; 10];      // in scope 1 at $DIR/address-of.rs:5:9: 5:14
75         scope 2 {
76             debug z => _3;               // in scope 2 at $DIR/address-of.rs:5:9: 5:14
77             let _15: *const [i32; 10] as UserTypeProjection { base: UserType(2), projs: [] }; // in scope 2 at $DIR/address-of.rs:13:9: 13:10
78             scope 3 {
79                 debug p => _15;          // in scope 3 at $DIR/address-of.rs:13:9: 13:10
80                 let _16: *const [i32; 10] as UserTypeProjection { base: UserType(4), projs: [] }; // in scope 3 at $DIR/address-of.rs:14:9: 14:10
81                 scope 4 {
82                     debug p => _16;      // in scope 4 at $DIR/address-of.rs:14:9: 14:10
83                     let _17: *const dyn std::marker::Send as UserTypeProjection { base: UserType(6), projs: [] }; // in scope 4 at $DIR/address-of.rs:15:9: 15:10
84                     scope 5 {
85                         debug p => _17;  // in scope 5 at $DIR/address-of.rs:15:9: 15:10
86                         let _19: *const [i32] as UserTypeProjection { base: UserType(8), projs: [] }; // in scope 5 at $DIR/address-of.rs:16:9: 16:10
87                         scope 6 {
88                             debug p => _19; // in scope 6 at $DIR/address-of.rs:16:9: 16:10
89                             let _29: *const [i32; 10] as UserTypeProjection { base: UserType(12), projs: [] }; // in scope 6 at $DIR/address-of.rs:23:9: 23:10
90                             scope 7 {
91                                 debug p => _29; // in scope 7 at $DIR/address-of.rs:23:9: 23:10
92                                 let _30: *const [i32; 10] as UserTypeProjection { base: UserType(14), projs: [] }; // in scope 7 at $DIR/address-of.rs:24:9: 24:10
93                                 scope 8 {
94                                     debug p => _30; // in scope 8 at $DIR/address-of.rs:24:9: 24:10
95                                     let _31: *const dyn std::marker::Send as UserTypeProjection { base: UserType(16), projs: [] }; // in scope 8 at $DIR/address-of.rs:25:9: 25:10
96                                     scope 9 {
97                                         debug p => _31; // in scope 9 at $DIR/address-of.rs:25:9: 25:10
98                                         let _33: *const [i32] as UserTypeProjection { base: UserType(18), projs: [] }; // in scope 9 at $DIR/address-of.rs:26:9: 26:10
99                                         scope 10 {
100                                             debug p => _33; // in scope 10 at $DIR/address-of.rs:26:9: 26:10
101                                             let _43: *mut [i32; 10] as UserTypeProjection { base: UserType(22), projs: [] }; // in scope 10 at $DIR/address-of.rs:33:9: 33:10
102                                             scope 11 {
103                                                 debug p => _43; // in scope 11 at $DIR/address-of.rs:33:9: 33:10
104                                                 let _44: *mut [i32; 10] as UserTypeProjection { base: UserType(24), projs: [] }; // in scope 11 at $DIR/address-of.rs:34:9: 34:10
105                                                 scope 12 {
106                                                     debug p => _44; // in scope 12 at $DIR/address-of.rs:34:9: 34:10
107                                                     let _45: *mut dyn std::marker::Send as UserTypeProjection { base: UserType(26), projs: [] }; // in scope 12 at $DIR/address-of.rs:35:9: 35:10
108                                                     scope 13 {
109                                                         debug p => _45; // in scope 13 at $DIR/address-of.rs:35:9: 35:10
110                                                         let _47: *mut [i32] as UserTypeProjection { base: UserType(28), projs: [] }; // in scope 13 at $DIR/address-of.rs:36:9: 36:10
111                                                         scope 14 {
112                                                             debug p => _47; // in scope 14 at $DIR/address-of.rs:36:9: 36:10
113                                                         }
114                                                     }
115                                                 }
116                                             }
117                                         }
118                                     }
119                                 }
120                             }
121                         }
122                     }
123                 }
124             }
125         }
126     }
127
128     bb0: {
129         StorageLive(_1);                 // scope 0 at $DIR/address-of.rs:4:9: 4:10
130         StorageLive(_2);                 // scope 0 at $DIR/address-of.rs:4:14: 4:21
131         _2 = [const 0_i32; 10];          // scope 0 at $DIR/address-of.rs:4:14: 4:21
132         _1 = &_2;                        // scope 0 at $DIR/address-of.rs:4:13: 4:21
133         FakeRead(ForLet(None), _1);      // scope 0 at $DIR/address-of.rs:4:9: 4:10
134         StorageLive(_3);                 // scope 1 at $DIR/address-of.rs:5:9: 5:14
135         StorageLive(_4);                 // scope 1 at $DIR/address-of.rs:5:22: 5:29
136         _4 = [const 0_i32; 10];          // scope 1 at $DIR/address-of.rs:5:22: 5:29
137         _3 = &mut _4;                    // scope 1 at $DIR/address-of.rs:5:17: 5:29
138         FakeRead(ForLet(None), _3);      // scope 1 at $DIR/address-of.rs:5:9: 5:14
139         StorageLive(_5);                 // scope 2 at $DIR/address-of.rs:7:5: 7:18
140         StorageLive(_6);                 // scope 2 at $DIR/address-of.rs:7:5: 7:18
141         _6 = &raw const (*_1);           // scope 2 at $DIR/address-of.rs:7:5: 7:6
142         AscribeUserType(_6, o, UserTypeProjection { base: UserType(0), projs: [] }); // scope 2 at $DIR/address-of.rs:7:5: 7:18
143         _5 = _6;                         // scope 2 at $DIR/address-of.rs:7:5: 7:18
144         StorageDead(_6);                 // scope 2 at $DIR/address-of.rs:7:18: 7:19
145         StorageDead(_5);                 // scope 2 at $DIR/address-of.rs:7:18: 7:19
146         StorageLive(_7);                 // scope 2 at $DIR/address-of.rs:8:5: 8:26
147         _7 = &raw const (*_1);           // scope 2 at $DIR/address-of.rs:8:5: 8:6
148         StorageDead(_7);                 // scope 2 at $DIR/address-of.rs:8:26: 8:27
149         StorageLive(_8);                 // scope 2 at $DIR/address-of.rs:9:5: 9:25
150         StorageLive(_9);                 // scope 2 at $DIR/address-of.rs:9:5: 9:25
151         StorageLive(_10);                // scope 2 at $DIR/address-of.rs:9:5: 9:6
152         _10 = &raw const (*_1);          // scope 2 at $DIR/address-of.rs:9:5: 9:6
153         _9 = move _10 as *const dyn std::marker::Send (Pointer(Unsize)); // scope 2 at $DIR/address-of.rs:9:5: 9:6
154         StorageDead(_10);                // scope 2 at $DIR/address-of.rs:9:5: 9:6
155         AscribeUserType(_9, o, UserTypeProjection { base: UserType(1), projs: [] }); // scope 2 at $DIR/address-of.rs:9:5: 9:25
156         _8 = _9;                         // scope 2 at $DIR/address-of.rs:9:5: 9:25
157         StorageDead(_9);                 // scope 2 at $DIR/address-of.rs:9:25: 9:26
158         StorageDead(_8);                 // scope 2 at $DIR/address-of.rs:9:25: 9:26
159         StorageLive(_11);                // scope 2 at $DIR/address-of.rs:10:5: 10:22
160         StorageLive(_12);                // scope 2 at $DIR/address-of.rs:10:5: 10:6
161         _12 = &raw const (*_1);          // scope 2 at $DIR/address-of.rs:10:5: 10:6
162         _11 = move _12 as *const [i32] (Pointer(Unsize)); // scope 2 at $DIR/address-of.rs:10:5: 10:6
163         StorageDead(_12);                // scope 2 at $DIR/address-of.rs:10:5: 10:6
164         StorageDead(_11);                // scope 2 at $DIR/address-of.rs:10:22: 10:23
165         StorageLive(_13);                // scope 2 at $DIR/address-of.rs:11:5: 11:20
166         StorageLive(_14);                // scope 2 at $DIR/address-of.rs:11:5: 11:6
167         _14 = &raw const (*_1);          // scope 2 at $DIR/address-of.rs:11:5: 11:6
168         _13 = move _14 as *const i32 (Pointer(ArrayToPointer)); // scope 2 at $DIR/address-of.rs:11:5: 11:20
169         StorageDead(_14);                // scope 2 at $DIR/address-of.rs:11:19: 11:20
170         StorageDead(_13);                // scope 2 at $DIR/address-of.rs:11:20: 11:21
171         StorageLive(_15);                // scope 2 at $DIR/address-of.rs:13:9: 13:10
172         _15 = &raw const (*_1);          // scope 2 at $DIR/address-of.rs:13:23: 13:24
173         FakeRead(ForLet(None), _15);     // scope 2 at $DIR/address-of.rs:13:9: 13:10
174         AscribeUserType(_15, o, UserTypeProjection { base: UserType(3), projs: [] }); // scope 2 at $DIR/address-of.rs:13:12: 13:20
175         StorageLive(_16);                // scope 3 at $DIR/address-of.rs:14:9: 14:10
176         _16 = &raw const (*_1);          // scope 3 at $DIR/address-of.rs:14:31: 14:32
177         FakeRead(ForLet(None), _16);     // scope 3 at $DIR/address-of.rs:14:9: 14:10
178         AscribeUserType(_16, o, UserTypeProjection { base: UserType(5), projs: [] }); // scope 3 at $DIR/address-of.rs:14:12: 14:28
179         StorageLive(_17);                // scope 4 at $DIR/address-of.rs:15:9: 15:10
180         StorageLive(_18);                // scope 4 at $DIR/address-of.rs:15:30: 15:31
181         _18 = &raw const (*_1);          // scope 4 at $DIR/address-of.rs:15:30: 15:31
182         _17 = move _18 as *const dyn std::marker::Send (Pointer(Unsize)); // scope 4 at $DIR/address-of.rs:15:30: 15:31
183         StorageDead(_18);                // scope 4 at $DIR/address-of.rs:15:30: 15:31
184         FakeRead(ForLet(None), _17);     // scope 4 at $DIR/address-of.rs:15:9: 15:10
185         AscribeUserType(_17, o, UserTypeProjection { base: UserType(7), projs: [] }); // scope 4 at $DIR/address-of.rs:15:12: 15:27
186         StorageLive(_19);                // scope 5 at $DIR/address-of.rs:16:9: 16:10
187         StorageLive(_20);                // scope 5 at $DIR/address-of.rs:16:27: 16:28
188         _20 = &raw const (*_1);          // scope 5 at $DIR/address-of.rs:16:27: 16:28
189         _19 = move _20 as *const [i32] (Pointer(Unsize)); // scope 5 at $DIR/address-of.rs:16:27: 16:28
190         StorageDead(_20);                // scope 5 at $DIR/address-of.rs:16:27: 16:28
191         FakeRead(ForLet(None), _19);     // scope 5 at $DIR/address-of.rs:16:9: 16:10
192         AscribeUserType(_19, o, UserTypeProjection { base: UserType(9), projs: [] }); // scope 5 at $DIR/address-of.rs:16:12: 16:24
193         StorageLive(_21);                // scope 6 at $DIR/address-of.rs:18:5: 18:18
194         StorageLive(_22);                // scope 6 at $DIR/address-of.rs:18:5: 18:18
195         _22 = &raw const (*_3);          // scope 6 at $DIR/address-of.rs:18:5: 18:6
196         AscribeUserType(_22, o, UserTypeProjection { base: UserType(10), projs: [] }); // scope 6 at $DIR/address-of.rs:18:5: 18:18
197         _21 = _22;                       // scope 6 at $DIR/address-of.rs:18:5: 18:18
198         StorageDead(_22);                // scope 6 at $DIR/address-of.rs:18:18: 18:19
199         StorageDead(_21);                // scope 6 at $DIR/address-of.rs:18:18: 18:19
200         StorageLive(_23);                // scope 6 at $DIR/address-of.rs:19:5: 19:26
201         _23 = &raw const (*_3);          // scope 6 at $DIR/address-of.rs:19:5: 19:6
202         StorageDead(_23);                // scope 6 at $DIR/address-of.rs:19:26: 19:27
203         StorageLive(_24);                // scope 6 at $DIR/address-of.rs:20:5: 20:25
204         StorageLive(_25);                // scope 6 at $DIR/address-of.rs:20:5: 20:25
205         StorageLive(_26);                // scope 6 at $DIR/address-of.rs:20:5: 20:6
206         _26 = &raw const (*_3);          // scope 6 at $DIR/address-of.rs:20:5: 20:6
207         _25 = move _26 as *const dyn std::marker::Send (Pointer(Unsize)); // scope 6 at $DIR/address-of.rs:20:5: 20:6
208         StorageDead(_26);                // scope 6 at $DIR/address-of.rs:20:5: 20:6
209         AscribeUserType(_25, o, UserTypeProjection { base: UserType(11), projs: [] }); // scope 6 at $DIR/address-of.rs:20:5: 20:25
210         _24 = _25;                       // scope 6 at $DIR/address-of.rs:20:5: 20:25
211         StorageDead(_25);                // scope 6 at $DIR/address-of.rs:20:25: 20:26
212         StorageDead(_24);                // scope 6 at $DIR/address-of.rs:20:25: 20:26
213         StorageLive(_27);                // scope 6 at $DIR/address-of.rs:21:5: 21:22
214         StorageLive(_28);                // scope 6 at $DIR/address-of.rs:21:5: 21:6
215         _28 = &raw const (*_3);          // scope 6 at $DIR/address-of.rs:21:5: 21:6
216         _27 = move _28 as *const [i32] (Pointer(Unsize)); // scope 6 at $DIR/address-of.rs:21:5: 21:6
217         StorageDead(_28);                // scope 6 at $DIR/address-of.rs:21:5: 21:6
218         StorageDead(_27);                // scope 6 at $DIR/address-of.rs:21:22: 21:23
219         StorageLive(_29);                // scope 6 at $DIR/address-of.rs:23:9: 23:10
220         _29 = &raw const (*_3);          // scope 6 at $DIR/address-of.rs:23:23: 23:24
221         FakeRead(ForLet(None), _29);     // scope 6 at $DIR/address-of.rs:23:9: 23:10
222         AscribeUserType(_29, o, UserTypeProjection { base: UserType(13), projs: [] }); // scope 6 at $DIR/address-of.rs:23:12: 23:20
223         StorageLive(_30);                // scope 7 at $DIR/address-of.rs:24:9: 24:10
224         _30 = &raw const (*_3);          // scope 7 at $DIR/address-of.rs:24:31: 24:32
225         FakeRead(ForLet(None), _30);     // scope 7 at $DIR/address-of.rs:24:9: 24:10
226         AscribeUserType(_30, o, UserTypeProjection { base: UserType(15), projs: [] }); // scope 7 at $DIR/address-of.rs:24:12: 24:28
227         StorageLive(_31);                // scope 8 at $DIR/address-of.rs:25:9: 25:10
228         StorageLive(_32);                // scope 8 at $DIR/address-of.rs:25:30: 25:31
229         _32 = &raw const (*_3);          // scope 8 at $DIR/address-of.rs:25:30: 25:31
230         _31 = move _32 as *const dyn std::marker::Send (Pointer(Unsize)); // scope 8 at $DIR/address-of.rs:25:30: 25:31
231         StorageDead(_32);                // scope 8 at $DIR/address-of.rs:25:30: 25:31
232         FakeRead(ForLet(None), _31);     // scope 8 at $DIR/address-of.rs:25:9: 25:10
233         AscribeUserType(_31, o, UserTypeProjection { base: UserType(17), projs: [] }); // scope 8 at $DIR/address-of.rs:25:12: 25:27
234         StorageLive(_33);                // scope 9 at $DIR/address-of.rs:26:9: 26:10
235         StorageLive(_34);                // scope 9 at $DIR/address-of.rs:26:27: 26:28
236         _34 = &raw const (*_3);          // scope 9 at $DIR/address-of.rs:26:27: 26:28
237         _33 = move _34 as *const [i32] (Pointer(Unsize)); // scope 9 at $DIR/address-of.rs:26:27: 26:28
238         StorageDead(_34);                // scope 9 at $DIR/address-of.rs:26:27: 26:28
239         FakeRead(ForLet(None), _33);     // scope 9 at $DIR/address-of.rs:26:9: 26:10
240         AscribeUserType(_33, o, UserTypeProjection { base: UserType(19), projs: [] }); // scope 9 at $DIR/address-of.rs:26:12: 26:24
241         StorageLive(_35);                // scope 10 at $DIR/address-of.rs:28:5: 28:16
242         StorageLive(_36);                // scope 10 at $DIR/address-of.rs:28:5: 28:16
243         _36 = &raw mut (*_3);            // scope 10 at $DIR/address-of.rs:28:5: 28:6
244         AscribeUserType(_36, o, UserTypeProjection { base: UserType(20), projs: [] }); // scope 10 at $DIR/address-of.rs:28:5: 28:16
245         _35 = _36;                       // scope 10 at $DIR/address-of.rs:28:5: 28:16
246         StorageDead(_36);                // scope 10 at $DIR/address-of.rs:28:16: 28:17
247         StorageDead(_35);                // scope 10 at $DIR/address-of.rs:28:16: 28:17
248         StorageLive(_37);                // scope 10 at $DIR/address-of.rs:29:5: 29:24
249         _37 = &raw mut (*_3);            // scope 10 at $DIR/address-of.rs:29:5: 29:6
250         StorageDead(_37);                // scope 10 at $DIR/address-of.rs:29:24: 29:25
251         StorageLive(_38);                // scope 10 at $DIR/address-of.rs:30:5: 30:23
252         StorageLive(_39);                // scope 10 at $DIR/address-of.rs:30:5: 30:23
253         StorageLive(_40);                // scope 10 at $DIR/address-of.rs:30:5: 30:6
254         _40 = &raw mut (*_3);            // scope 10 at $DIR/address-of.rs:30:5: 30:6
255         _39 = move _40 as *mut dyn std::marker::Send (Pointer(Unsize)); // scope 10 at $DIR/address-of.rs:30:5: 30:6
256         StorageDead(_40);                // scope 10 at $DIR/address-of.rs:30:5: 30:6
257         AscribeUserType(_39, o, UserTypeProjection { base: UserType(21), projs: [] }); // scope 10 at $DIR/address-of.rs:30:5: 30:23
258         _38 = _39;                       // scope 10 at $DIR/address-of.rs:30:5: 30:23
259         StorageDead(_39);                // scope 10 at $DIR/address-of.rs:30:23: 30:24
260         StorageDead(_38);                // scope 10 at $DIR/address-of.rs:30:23: 30:24
261         StorageLive(_41);                // scope 10 at $DIR/address-of.rs:31:5: 31:20
262         StorageLive(_42);                // scope 10 at $DIR/address-of.rs:31:5: 31:6
263         _42 = &raw mut (*_3);            // scope 10 at $DIR/address-of.rs:31:5: 31:6
264         _41 = move _42 as *mut [i32] (Pointer(Unsize)); // scope 10 at $DIR/address-of.rs:31:5: 31:6
265         StorageDead(_42);                // scope 10 at $DIR/address-of.rs:31:5: 31:6
266         StorageDead(_41);                // scope 10 at $DIR/address-of.rs:31:20: 31:21
267         StorageLive(_43);                // scope 10 at $DIR/address-of.rs:33:9: 33:10
268         _43 = &raw mut (*_3);            // scope 10 at $DIR/address-of.rs:33:21: 33:22
269         FakeRead(ForLet(None), _43);     // scope 10 at $DIR/address-of.rs:33:9: 33:10
270         AscribeUserType(_43, o, UserTypeProjection { base: UserType(23), projs: [] }); // scope 10 at $DIR/address-of.rs:33:12: 33:18
271         StorageLive(_44);                // scope 11 at $DIR/address-of.rs:34:9: 34:10
272         _44 = &raw mut (*_3);            // scope 11 at $DIR/address-of.rs:34:29: 34:30
273         FakeRead(ForLet(None), _44);     // scope 11 at $DIR/address-of.rs:34:9: 34:10
274         AscribeUserType(_44, o, UserTypeProjection { base: UserType(25), projs: [] }); // scope 11 at $DIR/address-of.rs:34:12: 34:26
275         StorageLive(_45);                // scope 12 at $DIR/address-of.rs:35:9: 35:10
276         StorageLive(_46);                // scope 12 at $DIR/address-of.rs:35:28: 35:29
277         _46 = &raw mut (*_3);            // scope 12 at $DIR/address-of.rs:35:28: 35:29
278         _45 = move _46 as *mut dyn std::marker::Send (Pointer(Unsize)); // scope 12 at $DIR/address-of.rs:35:28: 35:29
279         StorageDead(_46);                // scope 12 at $DIR/address-of.rs:35:28: 35:29
280         FakeRead(ForLet(None), _45);     // scope 12 at $DIR/address-of.rs:35:9: 35:10
281         AscribeUserType(_45, o, UserTypeProjection { base: UserType(27), projs: [] }); // scope 12 at $DIR/address-of.rs:35:12: 35:25
282         StorageLive(_47);                // scope 13 at $DIR/address-of.rs:36:9: 36:10
283         StorageLive(_48);                // scope 13 at $DIR/address-of.rs:36:25: 36:26
284         _48 = &raw mut (*_3);            // scope 13 at $DIR/address-of.rs:36:25: 36:26
285         _47 = move _48 as *mut [i32] (Pointer(Unsize)); // scope 13 at $DIR/address-of.rs:36:25: 36:26
286         StorageDead(_48);                // scope 13 at $DIR/address-of.rs:36:25: 36:26
287         FakeRead(ForLet(None), _47);     // scope 13 at $DIR/address-of.rs:36:9: 36:10
288         AscribeUserType(_47, o, UserTypeProjection { base: UserType(29), projs: [] }); // scope 13 at $DIR/address-of.rs:36:12: 36:22
289         _0 = const ();                   // scope 0 at $DIR/address-of.rs:3:26: 37:2
290         StorageDead(_47);                // scope 13 at $DIR/address-of.rs:37:1: 37:2
291         StorageDead(_45);                // scope 12 at $DIR/address-of.rs:37:1: 37:2
292         StorageDead(_44);                // scope 11 at $DIR/address-of.rs:37:1: 37:2
293         StorageDead(_43);                // scope 10 at $DIR/address-of.rs:37:1: 37:2
294         StorageDead(_33);                // scope 9 at $DIR/address-of.rs:37:1: 37:2
295         StorageDead(_31);                // scope 8 at $DIR/address-of.rs:37:1: 37:2
296         StorageDead(_30);                // scope 7 at $DIR/address-of.rs:37:1: 37:2
297         StorageDead(_29);                // scope 6 at $DIR/address-of.rs:37:1: 37:2
298         StorageDead(_19);                // scope 5 at $DIR/address-of.rs:37:1: 37:2
299         StorageDead(_17);                // scope 4 at $DIR/address-of.rs:37:1: 37:2
300         StorageDead(_16);                // scope 3 at $DIR/address-of.rs:37:1: 37:2
301         StorageDead(_15);                // scope 2 at $DIR/address-of.rs:37:1: 37:2
302         StorageDead(_4);                 // scope 1 at $DIR/address-of.rs:37:1: 37:2
303         StorageDead(_3);                 // scope 1 at $DIR/address-of.rs:37:1: 37:2
304         StorageDead(_2);                 // scope 0 at $DIR/address-of.rs:37:1: 37:2
305         StorageDead(_1);                 // scope 0 at $DIR/address-of.rs:37:1: 37:2
306         return;                          // scope 0 at $DIR/address-of.rs:37:2: 37:2
307     }
308 }