1 // MIR for `move_out_from_end` 0 mir_map
3 fn move_out_from_end() -> () {
4 let mut _0: (); // return place in scope 0 at $DIR/uniform_array_move_out.rs:4:24: 4:24
5 let _1: [std::boxed::Box<i32>; 2]; // in scope 0 at $DIR/uniform_array_move_out.rs:5:9: 5:10
6 let mut _2: std::boxed::Box<i32>; // in scope 0 at $DIR/uniform_array_move_out.rs:5:14: 5:19
7 let mut _3: usize; // in scope 0 at $DIR/uniform_array_move_out.rs:5:14: 5:19
8 let mut _4: usize; // in scope 0 at $DIR/uniform_array_move_out.rs:5:14: 5:19
9 let mut _5: *mut u8; // in scope 0 at $DIR/uniform_array_move_out.rs:5:14: 5:19
10 let mut _6: std::boxed::Box<i32>; // in scope 0 at $DIR/uniform_array_move_out.rs:5:14: 5:19
11 let mut _7: std::boxed::Box<i32>; // in scope 0 at $DIR/uniform_array_move_out.rs:5:21: 5:26
12 let mut _8: usize; // in scope 0 at $DIR/uniform_array_move_out.rs:5:21: 5:26
13 let mut _9: usize; // in scope 0 at $DIR/uniform_array_move_out.rs:5:21: 5:26
14 let mut _10: *mut u8; // in scope 0 at $DIR/uniform_array_move_out.rs:5:21: 5:26
15 let mut _11: std::boxed::Box<i32>; // in scope 0 at $DIR/uniform_array_move_out.rs:5:21: 5:26
17 debug a => _1; // in scope 1 at $DIR/uniform_array_move_out.rs:5:9: 5:10
18 let _12: std::boxed::Box<i32>; // in scope 1 at $DIR/uniform_array_move_out.rs:6:14: 6:16
20 debug _y => _12; // in scope 4 at $DIR/uniform_array_move_out.rs:6:14: 6:16
29 StorageLive(_1); // scope 0 at $DIR/uniform_array_move_out.rs:5:9: 5:10
30 StorageLive(_2); // scope 0 at $DIR/uniform_array_move_out.rs:5:14: 5:19
31 _3 = SizeOf(i32); // scope 2 at $DIR/uniform_array_move_out.rs:5:14: 5:19
32 _4 = AlignOf(i32); // scope 2 at $DIR/uniform_array_move_out.rs:5:14: 5:19
33 _5 = alloc::alloc::exchange_malloc(move _3, move _4) -> [return: bb1, unwind: bb12]; // scope 2 at $DIR/uniform_array_move_out.rs:5:14: 5:19
35 // + span: $DIR/uniform_array_move_out.rs:5:14: 5:19
36 // + literal: Const { ty: unsafe fn(usize, usize) -> *mut u8 {alloc::alloc::exchange_malloc}, val: Value(Scalar(<ZST>)) }
40 StorageLive(_6); // scope 0 at $DIR/uniform_array_move_out.rs:5:14: 5:19
41 _6 = ShallowInitBox(move _5, i32); // scope 0 at $DIR/uniform_array_move_out.rs:5:14: 5:19
42 (*_6) = const 1_i32; // scope 0 at $DIR/uniform_array_move_out.rs:5:18: 5:19
43 _2 = move _6; // scope 0 at $DIR/uniform_array_move_out.rs:5:14: 5:19
44 drop(_6) -> [return: bb2, unwind: bb11]; // scope 0 at $DIR/uniform_array_move_out.rs:5:18: 5:19
48 StorageDead(_6); // scope 0 at $DIR/uniform_array_move_out.rs:5:18: 5:19
49 StorageLive(_7); // scope 0 at $DIR/uniform_array_move_out.rs:5:21: 5:26
50 _8 = SizeOf(i32); // scope 3 at $DIR/uniform_array_move_out.rs:5:21: 5:26
51 _9 = AlignOf(i32); // scope 3 at $DIR/uniform_array_move_out.rs:5:21: 5:26
52 _10 = alloc::alloc::exchange_malloc(move _8, move _9) -> [return: bb3, unwind: bb11]; // scope 3 at $DIR/uniform_array_move_out.rs:5:21: 5:26
54 // + span: $DIR/uniform_array_move_out.rs:5:21: 5:26
55 // + literal: Const { ty: unsafe fn(usize, usize) -> *mut u8 {alloc::alloc::exchange_malloc}, val: Value(Scalar(<ZST>)) }
59 StorageLive(_11); // scope 0 at $DIR/uniform_array_move_out.rs:5:21: 5:26
60 _11 = ShallowInitBox(move _10, i32); // scope 0 at $DIR/uniform_array_move_out.rs:5:21: 5:26
61 (*_11) = const 2_i32; // scope 0 at $DIR/uniform_array_move_out.rs:5:25: 5:26
62 _7 = move _11; // scope 0 at $DIR/uniform_array_move_out.rs:5:21: 5:26
63 drop(_11) -> [return: bb4, unwind: bb10]; // scope 0 at $DIR/uniform_array_move_out.rs:5:25: 5:26
67 StorageDead(_11); // scope 0 at $DIR/uniform_array_move_out.rs:5:25: 5:26
68 _1 = [move _2, move _7]; // scope 0 at $DIR/uniform_array_move_out.rs:5:13: 5:27
69 drop(_7) -> [return: bb5, unwind: bb11]; // scope 0 at $DIR/uniform_array_move_out.rs:5:26: 5:27
73 StorageDead(_7); // scope 0 at $DIR/uniform_array_move_out.rs:5:26: 5:27
74 drop(_2) -> [return: bb6, unwind: bb12]; // scope 0 at $DIR/uniform_array_move_out.rs:5:26: 5:27
78 StorageDead(_2); // scope 0 at $DIR/uniform_array_move_out.rs:5:26: 5:27
79 FakeRead(ForLet(None), _1); // scope 0 at $DIR/uniform_array_move_out.rs:5:9: 5:10
80 StorageLive(_12); // scope 1 at $DIR/uniform_array_move_out.rs:6:14: 6:16
81 _12 = move _1[1 of 2]; // scope 1 at $DIR/uniform_array_move_out.rs:6:14: 6:16
82 _0 = const (); // scope 0 at $DIR/uniform_array_move_out.rs:4:24: 7:2
83 drop(_12) -> [return: bb7, unwind: bb9]; // scope 1 at $DIR/uniform_array_move_out.rs:7:1: 7:2
87 StorageDead(_12); // scope 1 at $DIR/uniform_array_move_out.rs:7:1: 7:2
88 drop(_1) -> [return: bb8, unwind: bb12]; // scope 0 at $DIR/uniform_array_move_out.rs:7:1: 7:2
92 StorageDead(_1); // scope 0 at $DIR/uniform_array_move_out.rs:7:1: 7:2
93 return; // scope 0 at $DIR/uniform_array_move_out.rs:7:2: 7:2
97 drop(_1) -> bb12; // scope 0 at $DIR/uniform_array_move_out.rs:7:1: 7:2
101 drop(_7) -> bb11; // scope 0 at $DIR/uniform_array_move_out.rs:5:26: 5:27
105 drop(_2) -> bb12; // scope 0 at $DIR/uniform_array_move_out.rs:5:26: 5:27
109 resume; // scope 0 at $DIR/uniform_array_move_out.rs:4:1: 7:2