]> git.proxmox.com Git - rustc.git/blob - src/test/mir-opt/slice-drop-shim/32bit/rustc.ptr-drop_in_place.[std__string__String].AddMovesForPackedDrops.before.mir
e79dcba13b00b78424963297f8043abf0557854f
[rustc.git] / src / test / mir-opt / slice-drop-shim / 32bit / rustc.ptr-drop_in_place.[std__string__String].AddMovesForPackedDrops.before.mir
1 // MIR for `std::intrinsics::drop_in_place` before AddMovesForPackedDrops
2
3 fn std::intrinsics::drop_in_place(_1: *mut [std::string::String]) -> () {
4 let mut _0: (); // return place in scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
5 let mut _2: usize; // in scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
6 let mut _3: usize; // in scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
7 let mut _4: usize; // in scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
8 let mut _5: *mut std::string::String; // in scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
9 let mut _6: bool; // in scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
10 let mut _7: *mut std::string::String; // in scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
11 let mut _8: bool; // in scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
12 let mut _9: *mut std::string::String; // in scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
13 let mut _10: *mut std::string::String; // in scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
14 let mut _11: *mut std::string::String; // in scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
15 let mut _12: bool; // in scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
16 let mut _13: *mut std::string::String; // in scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
17 let mut _14: bool; // in scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
18 let mut _15: *mut [std::string::String]; // in scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
19
20 bb0: {
21 goto -> bb15; // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
22 }
23
24 bb1: {
25 return; // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
26 }
27
28 bb2 (cleanup): {
29 resume; // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
30 }
31
32 bb3 (cleanup): {
33 _5 = &raw mut (*_1)[_4]; // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
34 _4 = Add(move _4, const 1usize); // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
35 // ty::Const
36 // + ty: usize
37 // + val: Value(Scalar(0x00000001))
38 // mir::Constant
39 // + span: $SRC_DIR/libcore/ptr/mod.rs:LL:COL
40 // + literal: Const { ty: usize, val: Value(Scalar(0x00000001)) }
41 drop((*_5)) -> bb4; // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
42 }
43
44 bb4 (cleanup): {
45 _6 = Eq(_4, _3); // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
46 switchInt(move _6) -> [false: bb3, otherwise: bb2]; // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
47 }
48
49 bb5: {
50 _7 = &raw mut (*_1)[_4]; // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
51 _4 = Add(move _4, const 1usize); // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
52 // ty::Const
53 // + ty: usize
54 // + val: Value(Scalar(0x00000001))
55 // mir::Constant
56 // + span: $SRC_DIR/libcore/ptr/mod.rs:LL:COL
57 // + literal: Const { ty: usize, val: Value(Scalar(0x00000001)) }
58 drop((*_7)) -> [return: bb6, unwind: bb4]; // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
59 }
60
61 bb6: {
62 _8 = Eq(_4, _3); // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
63 switchInt(move _8) -> [false: bb5, otherwise: bb1]; // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
64 }
65
66 bb7: {
67 _4 = const 0usize; // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
68 // ty::Const
69 // + ty: usize
70 // + val: Value(Scalar(0x00000000))
71 // mir::Constant
72 // + span: $SRC_DIR/libcore/ptr/mod.rs:LL:COL
73 // + literal: Const { ty: usize, val: Value(Scalar(0x00000000)) }
74 goto -> bb6; // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
75 }
76
77 bb8: {
78 goto -> bb7; // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
79 }
80
81 bb9 (cleanup): {
82 _11 = _9; // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
83 _9 = Offset(move _9, const 1usize); // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
84 // ty::Const
85 // + ty: usize
86 // + val: Value(Scalar(0x00000001))
87 // mir::Constant
88 // + span: $SRC_DIR/libcore/ptr/mod.rs:LL:COL
89 // + literal: Const { ty: usize, val: Value(Scalar(0x00000001)) }
90 drop((*_11)) -> bb10; // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
91 }
92
93 bb10 (cleanup): {
94 _12 = Eq(_9, _10); // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
95 switchInt(move _12) -> [false: bb9, otherwise: bb2]; // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
96 }
97
98 bb11: {
99 _13 = _9; // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
100 _9 = Offset(move _9, const 1usize); // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
101 // ty::Const
102 // + ty: usize
103 // + val: Value(Scalar(0x00000001))
104 // mir::Constant
105 // + span: $SRC_DIR/libcore/ptr/mod.rs:LL:COL
106 // + literal: Const { ty: usize, val: Value(Scalar(0x00000001)) }
107 drop((*_13)) -> [return: bb12, unwind: bb10]; // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
108 }
109
110 bb12: {
111 _14 = Eq(_9, _10); // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
112 switchInt(move _14) -> [false: bb11, otherwise: bb1]; // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
113 }
114
115 bb13: {
116 _15 = &raw mut (*_1); // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
117 _9 = move _15 as *mut std::string::String (Misc); // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
118 _10 = Offset(_9, move _3); // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
119 goto -> bb12; // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
120 }
121
122 bb14: {
123 goto -> bb13; // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
124 }
125
126 bb15: {
127 _2 = SizeOf(std::string::String); // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
128 _3 = Len((*_1)); // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
129 switchInt(move _2) -> [0usize: bb8, otherwise: bb14]; // scope 0 at $SRC_DIR/libcore/ptr/mod.rs:LL:COL
130 }
131 }