]> git.proxmox.com Git - rustc.git/blob - src/test/mir-opt/storage_live_dead_in_statics.rs
New upstream version 1.23.0+dfsg1
[rustc.git] / src / test / mir-opt / storage_live_dead_in_statics.rs
1 // Copyright 2017 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10
11 // Check that when we compile the static `XXX` into MIR, we do not
12 // generate `StorageStart` or `StorageEnd` statements.
13
14 // ignore-tidy-linelength
15
16 static XXX: &'static Foo = &Foo {
17 tup: "hi",
18 data: &[
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 (0, 1), (0, 2), (0, 3),
24 (0, 1), (0, 2), (0, 3),
25 (0, 1), (0, 2), (0, 3),
26 (0, 1), (0, 2), (0, 3),
27 (0, 1), (0, 2), (0, 3),
28 (0, 1), (0, 2), (0, 3),
29 (0, 1), (0, 2), (0, 3),
30 (0, 1), (0, 2), (0, 3),
31 (0, 1), (0, 2), (0, 3),
32 (0, 1), (0, 2), (0, 3),
33 ]
34 };
35
36 #[derive(Debug)]
37 struct Foo {
38 tup: &'static str,
39 data: &'static [(u32, u32)]
40 }
41
42 fn main() {
43 println!("{:?}", XXX);
44 }
45
46 // END RUST SOURCE
47 // START rustc.XXX.mir_map.0.mir
48 // let mut _0: &'static Foo;
49 // let mut _1: &'static Foo;
50 // let mut _2: Foo;
51 // let mut _3: &'static [(u32, u32)];
52 // let mut _4: &'static [(u32, u32); 42];
53 // let mut _5: &'static [(u32, u32); 42];
54 // let mut _6: [(u32, u32); 42];
55 // let mut _7: (u32, u32);
56 // let mut _8: (u32, u32);
57 // let mut _9: (u32, u32);
58 // let mut _10: (u32, u32);
59 // let mut _11: (u32, u32);
60 // let mut _12: (u32, u32);
61 // let mut _13: (u32, u32);
62 // let mut _14: (u32, u32);
63 // let mut _15: (u32, u32);
64 // let mut _16: (u32, u32);
65 // let mut _17: (u32, u32);
66 // let mut _18: (u32, u32);
67 // let mut _19: (u32, u32);
68 // let mut _20: (u32, u32);
69 // let mut _21: (u32, u32);
70 // let mut _22: (u32, u32);
71 // let mut _23: (u32, u32);
72 // let mut _24: (u32, u32);
73 // let mut _25: (u32, u32);
74 // let mut _26: (u32, u32);
75 // let mut _27: (u32, u32);
76 // let mut _28: (u32, u32);
77 // let mut _29: (u32, u32);
78 // let mut _30: (u32, u32);
79 // let mut _31: (u32, u32);
80 // let mut _32: (u32, u32);
81 // let mut _33: (u32, u32);
82 // let mut _34: (u32, u32);
83 // let mut _35: (u32, u32);
84 // let mut _36: (u32, u32);
85 // let mut _37: (u32, u32);
86 // let mut _38: (u32, u32);
87 // let mut _39: (u32, u32);
88 // let mut _40: (u32, u32);
89 // let mut _41: (u32, u32);
90 // let mut _42: (u32, u32);
91 // let mut _43: (u32, u32);
92 // let mut _44: (u32, u32);
93 // let mut _45: (u32, u32);
94 // let mut _46: (u32, u32);
95 // let mut _47: (u32, u32);
96 // let mut _48: (u32, u32);
97 // bb0: {
98 // StorageLive(_1);
99 // StorageLive(_2);
100 // StorageLive(_3);
101 // StorageLive(_4);
102 // StorageLive(_5);
103 // StorageLive(_6);
104 // StorageLive(_7);
105 // _7 = (const 0u32, const 1u32);
106 // StorageLive(_8);
107 // _8 = (const 0u32, const 2u32);
108 // StorageLive(_9);
109 // _9 = (const 0u32, const 3u32);
110 // StorageLive(_10);
111 // _10 = (const 0u32, const 1u32);
112 // StorageLive(_11);
113 // _11 = (const 0u32, const 2u32);
114 // StorageLive(_12);
115 // _12 = (const 0u32, const 3u32);
116 // StorageLive(_13);
117 // _13 = (const 0u32, const 1u32);
118 // StorageLive(_14);
119 // _14 = (const 0u32, const 2u32);
120 // StorageLive(_15);
121 // _15 = (const 0u32, const 3u32);
122 // StorageLive(_16);
123 // _16 = (const 0u32, const 1u32);
124 // StorageLive(_17);
125 // _17 = (const 0u32, const 2u32);
126 // StorageLive(_18);
127 // _18 = (const 0u32, const 3u32);
128 // StorageLive(_19);
129 // _19 = (const 0u32, const 1u32);
130 // StorageLive(_20);
131 // _20 = (const 0u32, const 2u32);
132 // StorageLive(_21);
133 // _21 = (const 0u32, const 3u32);
134 // StorageLive(_22);
135 // _22 = (const 0u32, const 1u32);
136 // StorageLive(_23);
137 // _23 = (const 0u32, const 2u32);
138 // StorageLive(_24);
139 // _24 = (const 0u32, const 3u32);
140 // StorageLive(_25);
141 // _25 = (const 0u32, const 1u32);
142 // StorageLive(_26);
143 // _26 = (const 0u32, const 2u32);
144 // StorageLive(_27);
145 // _27 = (const 0u32, const 3u32);
146 // StorageLive(_28);
147 // _28 = (const 0u32, const 1u32);
148 // StorageLive(_29);
149 // _29 = (const 0u32, const 2u32);
150 // StorageLive(_30);
151 // _30 = (const 0u32, const 3u32);
152 // StorageLive(_31);
153 // _31 = (const 0u32, const 1u32);
154 // StorageLive(_32);
155 // _32 = (const 0u32, const 2u32);
156 // StorageLive(_33);
157 // _33 = (const 0u32, const 3u32);
158 // StorageLive(_34);
159 // _34 = (const 0u32, const 1u32);
160 // StorageLive(_35);
161 // _35 = (const 0u32, const 2u32);
162 // StorageLive(_36);
163 // _36 = (const 0u32, const 3u32);
164 // StorageLive(_37);
165 // _37 = (const 0u32, const 1u32);
166 // StorageLive(_38);
167 // _38 = (const 0u32, const 2u32);
168 // StorageLive(_39);
169 // _39 = (const 0u32, const 3u32);
170 // StorageLive(_40);
171 // _40 = (const 0u32, const 1u32);
172 // StorageLive(_41);
173 // _41 = (const 0u32, const 2u32);
174 // StorageLive(_42);
175 // _42 = (const 0u32, const 3u32);
176 // StorageLive(_43);
177 // _43 = (const 0u32, const 1u32);
178 // StorageLive(_44);
179 // _44 = (const 0u32, const 2u32);
180 // StorageLive(_45);
181 // _45 = (const 0u32, const 3u32);
182 // StorageLive(_46);
183 // _46 = (const 0u32, const 1u32);
184 // StorageLive(_47);
185 // _47 = (const 0u32, const 2u32);
186 // StorageLive(_48);
187 // _48 = (const 0u32, const 3u32);
188 // _6 = [_7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48];
189 // _5 = &_6;
190 // _4 = &(*_5);
191 // _3 = _4 as &'static [(u32, u32)] (Unsize);
192 // _2 = Foo { tup: const "hi", data: _3 };
193 // _1 = &_2;
194 // _0 = &(*_1);
195 // StorageDead(_1);
196 // StorageDead(_5);
197 // return;
198 // }
199 //}
200 // END rustc.XXX.mir_map.0.mir