]> git.lizzy.rs Git - rust.git/blob - src/test/mir-opt/receiver_ptr_mutability.main.mir_map.0.mir
Auto merge of #99174 - scottmcm:reoptimize-layout-array, r=joshtriplett
[rust.git] / src / test / mir-opt / receiver_ptr_mutability.main.mir_map.0.mir
1 // MIR for `main` 0 mir_map
2
3 | User Type Annotations
4 | 0: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*mut Test) }, span: $DIR/receiver-ptr-mutability.rs:14:14: 14:23, inferred_ty: *mut Test
5 | 1: user_ty: Canonical { max_universe: U0, variables: [], value: Ty(*mut Test) }, span: $DIR/receiver-ptr-mutability.rs:14:14: 14:23, inferred_ty: *mut Test
6 | 2: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }], value: Ty(&&&&*mut Test) }, span: $DIR/receiver-ptr-mutability.rs:18:18: 18:31, inferred_ty: &&&&*mut Test
7 | 3: user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }], value: Ty(&&&&*mut Test) }, span: $DIR/receiver-ptr-mutability.rs:18:18: 18:31, inferred_ty: &&&&*mut Test
8 |
9 fn main() -> () {
10     let mut _0: ();                      // return place in scope 0 at $DIR/receiver-ptr-mutability.rs:+0:11: +0:11
11     let _1: *mut Test as UserTypeProjection { base: UserType(0), projs: [] }; // in scope 0 at $DIR/receiver-ptr-mutability.rs:+1:9: +1:12
12     let _2: ();                          // in scope 0 at $DIR/receiver-ptr-mutability.rs:+2:5: +2:12
13     let mut _3: *const Test;             // in scope 0 at $DIR/receiver-ptr-mutability.rs:+2:5: +2:12
14     let mut _4: *mut Test;               // in scope 0 at $DIR/receiver-ptr-mutability.rs:+2:5: +2:8
15     let _6: &&&&*mut Test;               // in scope 0 at $DIR/receiver-ptr-mutability.rs:+5:34: +5:41
16     let _7: &&&*mut Test;                // in scope 0 at $DIR/receiver-ptr-mutability.rs:+5:35: +5:41
17     let _8: &&*mut Test;                 // in scope 0 at $DIR/receiver-ptr-mutability.rs:+5:36: +5:41
18     let _9: &*mut Test;                  // in scope 0 at $DIR/receiver-ptr-mutability.rs:+5:37: +5:41
19     let _10: ();                         // in scope 0 at $DIR/receiver-ptr-mutability.rs:+6:5: +6:16
20     let mut _11: *const Test;            // in scope 0 at $DIR/receiver-ptr-mutability.rs:+6:5: +6:16
21     let mut _12: *mut Test;              // in scope 0 at $DIR/receiver-ptr-mutability.rs:+6:5: +6:16
22     scope 1 {
23         debug ptr => _1;                 // in scope 1 at $DIR/receiver-ptr-mutability.rs:+1:9: +1:12
24         let _5: &&&&*mut Test as UserTypeProjection { base: UserType(2), projs: [] }; // in scope 1 at $DIR/receiver-ptr-mutability.rs:+5:9: +5:16
25         scope 2 {
26             debug ptr_ref => _5;         // in scope 2 at $DIR/receiver-ptr-mutability.rs:+5:9: +5:16
27         }
28     }
29
30     bb0: {
31         StorageLive(_1);                 // scope 0 at $DIR/receiver-ptr-mutability.rs:+1:9: +1:12
32         _1 = null_mut::<Test>() -> [return: bb1, unwind: bb4]; // scope 0 at $DIR/receiver-ptr-mutability.rs:+1:26: +1:46
33                                          // mir::Constant
34                                          // + span: $DIR/receiver-ptr-mutability.rs:14:26: 14:44
35                                          // + literal: Const { ty: fn() -> *mut Test {null_mut::<Test>}, val: Value(<ZST>) }
36     }
37
38     bb1: {
39         FakeRead(ForLet(None), _1);      // scope 0 at $DIR/receiver-ptr-mutability.rs:+1:9: +1:12
40         AscribeUserType(_1, o, UserTypeProjection { base: UserType(1), projs: [] }); // scope 0 at $DIR/receiver-ptr-mutability.rs:+1:14: +1:23
41         StorageLive(_2);                 // scope 1 at $DIR/receiver-ptr-mutability.rs:+2:5: +2:12
42         StorageLive(_3);                 // scope 1 at $DIR/receiver-ptr-mutability.rs:+2:5: +2:12
43         StorageLive(_4);                 // scope 1 at $DIR/receiver-ptr-mutability.rs:+2:5: +2:8
44         _4 = _1;                         // scope 1 at $DIR/receiver-ptr-mutability.rs:+2:5: +2:8
45         _3 = move _4 as *const Test (Pointer(MutToConstPointer)); // scope 1 at $DIR/receiver-ptr-mutability.rs:+2:5: +2:12
46         StorageDead(_4);                 // scope 1 at $DIR/receiver-ptr-mutability.rs:+2:7: +2:8
47         _2 = Test::x(move _3) -> [return: bb2, unwind: bb4]; // scope 1 at $DIR/receiver-ptr-mutability.rs:+2:5: +2:12
48                                          // mir::Constant
49                                          // + span: $DIR/receiver-ptr-mutability.rs:15:9: 15:10
50                                          // + literal: Const { ty: fn(*const Test) {Test::x}, val: Value(<ZST>) }
51     }
52
53     bb2: {
54         StorageDead(_3);                 // scope 1 at $DIR/receiver-ptr-mutability.rs:+2:11: +2:12
55         StorageDead(_2);                 // scope 1 at $DIR/receiver-ptr-mutability.rs:+2:12: +2:13
56         StorageLive(_5);                 // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:9: +5:16
57         StorageLive(_6);                 // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:34: +5:41
58         StorageLive(_7);                 // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:35: +5:41
59         StorageLive(_8);                 // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:36: +5:41
60         StorageLive(_9);                 // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:37: +5:41
61         _9 = &_1;                        // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:37: +5:41
62         _8 = &_9;                        // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:36: +5:41
63         _7 = &_8;                        // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:35: +5:41
64         _6 = &_7;                        // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:34: +5:41
65         _5 = &(*_6);                     // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:34: +5:41
66         FakeRead(ForLet(None), _5);      // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:9: +5:16
67         AscribeUserType(_5, o, UserTypeProjection { base: UserType(3), projs: [] }); // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:18: +5:31
68         StorageDead(_6);                 // scope 1 at $DIR/receiver-ptr-mutability.rs:+5:41: +5:42
69         StorageLive(_10);                // scope 2 at $DIR/receiver-ptr-mutability.rs:+6:5: +6:16
70         StorageLive(_11);                // scope 2 at $DIR/receiver-ptr-mutability.rs:+6:5: +6:16
71         StorageLive(_12);                // scope 2 at $DIR/receiver-ptr-mutability.rs:+6:5: +6:16
72         _12 = (*(*(*(*_5))));            // scope 2 at $DIR/receiver-ptr-mutability.rs:+6:5: +6:16
73         _11 = move _12 as *const Test (Pointer(MutToConstPointer)); // scope 2 at $DIR/receiver-ptr-mutability.rs:+6:5: +6:16
74         StorageDead(_12);                // scope 2 at $DIR/receiver-ptr-mutability.rs:+6:11: +6:12
75         _10 = Test::x(move _11) -> [return: bb3, unwind: bb4]; // scope 2 at $DIR/receiver-ptr-mutability.rs:+6:5: +6:16
76                                          // mir::Constant
77                                          // + span: $DIR/receiver-ptr-mutability.rs:19:13: 19:14
78                                          // + literal: Const { ty: fn(*const Test) {Test::x}, val: Value(<ZST>) }
79     }
80
81     bb3: {
82         StorageDead(_11);                // scope 2 at $DIR/receiver-ptr-mutability.rs:+6:15: +6:16
83         StorageDead(_10);                // scope 2 at $DIR/receiver-ptr-mutability.rs:+6:16: +6:17
84         _0 = const ();                   // scope 0 at $DIR/receiver-ptr-mutability.rs:+0:11: +7:2
85         StorageDead(_9);                 // scope 1 at $DIR/receiver-ptr-mutability.rs:+7:1: +7:2
86         StorageDead(_8);                 // scope 1 at $DIR/receiver-ptr-mutability.rs:+7:1: +7:2
87         StorageDead(_7);                 // scope 1 at $DIR/receiver-ptr-mutability.rs:+7:1: +7:2
88         StorageDead(_5);                 // scope 1 at $DIR/receiver-ptr-mutability.rs:+7:1: +7:2
89         StorageDead(_1);                 // scope 0 at $DIR/receiver-ptr-mutability.rs:+7:1: +7:2
90         return;                          // scope 0 at $DIR/receiver-ptr-mutability.rs:+7:2: +7:2
91     }
92
93     bb4 (cleanup): {
94         resume;                          // scope 0 at $DIR/receiver-ptr-mutability.rs:+0:1: +7:2
95     }
96 }