]> git.lizzy.rs Git - rust.git/blob - src/test/mir-opt/storage_live_dead_in_statics.rs
Schedule storage-dead of temporaries sooner
[rust.git] / src / test / mir-opt / storage_live_dead_in_statics.rs
1 // Check that when we compile the static `XXX` into MIR, we do not
2 // generate `StorageStart` or `StorageEnd` statements.
3
4 // ignore-tidy-linelength
5
6 static XXX: &'static Foo = &Foo {
7     tup: "hi",
8     data: &[
9         (0, 1), (0, 2), (0, 3),
10         (0, 1), (0, 2), (0, 3),
11         (0, 1), (0, 2), (0, 3),
12         (0, 1), (0, 2), (0, 3),
13         (0, 1), (0, 2), (0, 3),
14         (0, 1), (0, 2), (0, 3),
15         (0, 1), (0, 2), (0, 3),
16         (0, 1), (0, 2), (0, 3),
17         (0, 1), (0, 2), (0, 3),
18         (0, 1), (0, 2), (0, 3),
19         (0, 1), (0, 2), (0, 3),
20         (0, 1), (0, 2), (0, 3),
21         (0, 1), (0, 2), (0, 3),
22         (0, 1), (0, 2), (0, 3),
23     ]
24 };
25
26 #[derive(Debug)]
27 struct Foo {
28     tup: &'static str,
29     data: &'static [(u32, u32)]
30 }
31
32 fn main() {
33     println!("{:?}", XXX);
34 }
35
36 // END RUST SOURCE
37 // START rustc.XXX.mir_map.0.mir
38 //    let mut _0: &'static Foo;
39 //    let mut _1: &'static Foo;
40 //    let _2: Foo;
41 //    let mut _3: &'static [(u32, u32)];
42 //    let mut _4: &'static [(u32, u32); 42];
43 //    let mut _5: &'static [(u32, u32); 42];
44 //    let _6: [(u32, u32); 42];
45 //    let mut _7: (u32, u32);
46 //    let mut _8: (u32, u32);
47 //    let mut _9: (u32, u32);
48 //    let mut _10: (u32, u32);
49 //    let mut _11: (u32, u32);
50 //    let mut _12: (u32, u32);
51 //    let mut _13: (u32, u32);
52 //    let mut _14: (u32, u32);
53 //    let mut _15: (u32, u32);
54 //    let mut _16: (u32, u32);
55 //    let mut _17: (u32, u32);
56 //    let mut _18: (u32, u32);
57 //    let mut _19: (u32, u32);
58 //    let mut _20: (u32, u32);
59 //    let mut _21: (u32, u32);
60 //    let mut _22: (u32, u32);
61 //    let mut _23: (u32, u32);
62 //    let mut _24: (u32, u32);
63 //    let mut _25: (u32, u32);
64 //    let mut _26: (u32, u32);
65 //    let mut _27: (u32, u32);
66 //    let mut _28: (u32, u32);
67 //    let mut _29: (u32, u32);
68 //    let mut _30: (u32, u32);
69 //    let mut _31: (u32, u32);
70 //    let mut _32: (u32, u32);
71 //    let mut _33: (u32, u32);
72 //    let mut _34: (u32, u32);
73 //    let mut _35: (u32, u32);
74 //    let mut _36: (u32, u32);
75 //    let mut _37: (u32, u32);
76 //    let mut _38: (u32, u32);
77 //    let mut _39: (u32, u32);
78 //    let mut _40: (u32, u32);
79 //    let mut _41: (u32, u32);
80 //    let mut _42: (u32, u32);
81 //    let mut _43: (u32, u32);
82 //    let mut _44: (u32, u32);
83 //    let mut _45: (u32, u32);
84 //    let mut _46: (u32, u32);
85 //    let mut _47: (u32, u32);
86 //    let mut _48: (u32, u32);
87 //    bb0: {
88 //        StorageLive(_1);
89 //        StorageLive(_2);
90 //        StorageLive(_3);
91 //        StorageLive(_4);
92 //        StorageLive(_5);
93 //        StorageLive(_6);
94 //        StorageLive(_7);
95 //        _7 = (const 0u32, const 1u32);
96 //        StorageLive(_8);
97 //        _8 = (const 0u32, const 2u32);
98 //        StorageLive(_9);
99 //        _9 = (const 0u32, const 3u32);
100 //        StorageLive(_10);
101 //        _10 = (const 0u32, const 1u32);
102 //        StorageLive(_11);
103 //        _11 = (const 0u32, const 2u32);
104 //        StorageLive(_12);
105 //        _12 = (const 0u32, const 3u32);
106 //        StorageLive(_13);
107 //        _13 = (const 0u32, const 1u32);
108 //        StorageLive(_14);
109 //        _14 = (const 0u32, const 2u32);
110 //        StorageLive(_15);
111 //        _15 = (const 0u32, const 3u32);
112 //        StorageLive(_16);
113 //        _16 = (const 0u32, const 1u32);
114 //        StorageLive(_17);
115 //        _17 = (const 0u32, const 2u32);
116 //        StorageLive(_18);
117 //        _18 = (const 0u32, const 3u32);
118 //        StorageLive(_19);
119 //        _19 = (const 0u32, const 1u32);
120 //        StorageLive(_20);
121 //        _20 = (const 0u32, const 2u32);
122 //        StorageLive(_21);
123 //        _21 = (const 0u32, const 3u32);
124 //        StorageLive(_22);
125 //        _22 = (const 0u32, const 1u32);
126 //        StorageLive(_23);
127 //        _23 = (const 0u32, const 2u32);
128 //        StorageLive(_24);
129 //        _24 = (const 0u32, const 3u32);
130 //        StorageLive(_25);
131 //        _25 = (const 0u32, const 1u32);
132 //        StorageLive(_26);
133 //        _26 = (const 0u32, const 2u32);
134 //        StorageLive(_27);
135 //        _27 = (const 0u32, const 3u32);
136 //        StorageLive(_28);
137 //        _28 = (const 0u32, const 1u32);
138 //        StorageLive(_29);
139 //        _29 = (const 0u32, const 2u32);
140 //        StorageLive(_30);
141 //        _30 = (const 0u32, const 3u32);
142 //        StorageLive(_31);
143 //        _31 = (const 0u32, const 1u32);
144 //        StorageLive(_32);
145 //        _32 = (const 0u32, const 2u32);
146 //        StorageLive(_33);
147 //        _33 = (const 0u32, const 3u32);
148 //        StorageLive(_34);
149 //        _34 = (const 0u32, const 1u32);
150 //        StorageLive(_35);
151 //        _35 = (const 0u32, const 2u32);
152 //        StorageLive(_36);
153 //        _36 = (const 0u32, const 3u32);
154 //        StorageLive(_37);
155 //        _37 = (const 0u32, const 1u32);
156 //        StorageLive(_38);
157 //        _38 = (const 0u32, const 2u32);
158 //        StorageLive(_39);
159 //        _39 = (const 0u32, const 3u32);
160 //        StorageLive(_40);
161 //        _40 = (const 0u32, const 1u32);
162 //        StorageLive(_41);
163 //        _41 = (const 0u32, const 2u32);
164 //        StorageLive(_42);
165 //        _42 = (const 0u32, const 3u32);
166 //        StorageLive(_43);
167 //        _43 = (const 0u32, const 1u32);
168 //        StorageLive(_44);
169 //        _44 = (const 0u32, const 2u32);
170 //        StorageLive(_45);
171 //        _45 = (const 0u32, const 3u32);
172 //        StorageLive(_46);
173 //        _46 = (const 0u32, const 1u32);
174 //        StorageLive(_47);
175 //        _47 = (const 0u32, const 2u32);
176 //        StorageLive(_48);
177 //        _48 = (const 0u32, const 3u32);
178 //        _6 = [move _7, move _8, move _9, move _10, move _11, move _12, move _13, move _14, move _15, move _16, move _17, move _18, move _19, move _20, move _21, move _22, move _23, move _24, move _25, move _26, move _27, move _28, move _29, move _30, move _31, move _32, move _33, move _34, move _35, move _36, move _37, move _38, move _39, move _40, move _41, move _42, move _43, move _44, move _45, move _46, move _47, move _48];
179 //        _5 = &_6;
180 //        _4 = &(*_5);
181 //        _3 = move _4 as &'static [(u32, u32)] (Pointer(Unsize));
182 //        _2 = Foo { tup: const "hi", data: move _3 };
183 //        _1 = &_2;
184 //        _0 = &(*_1);
185 //        StorageDead(_5);
186 //        StorageDead(_1);
187 //        return;
188 //    }
189 //}
190 // END rustc.XXX.mir_map.0.mir