]>
Commit | Line | Data |
---|---|---|
ff7c6d11 XL |
1 | // ignore-wasm32-bare compiled with panic=abort by default |
2 | ||
3 | fn main() { | |
4 | let mut x = Packed(Aligned(Droppy(0))); | |
5 | x.0 = Aligned(Droppy(0)); | |
6 | } | |
7 | ||
8 | struct Aligned(Droppy); | |
9 | #[repr(packed)] | |
10 | struct Packed(Aligned); | |
11 | ||
12 | struct Droppy(usize); | |
13 | impl Drop for Droppy { | |
14 | fn drop(&mut self) {} | |
15 | } | |
16 | ||
17 | // END RUST SOURCE | |
18 | // START rustc.main.EraseRegions.before.mir | |
19 | // fn main() -> () { | |
20 | // let mut _0: (); | |
dc9dc135 | 21 | // let mut _1: Packed; |
ff7c6d11 XL |
22 | // let mut _2: Aligned; |
23 | // let mut _3: Droppy; | |
24 | // let mut _4: Aligned; | |
25 | // let mut _5: Droppy; | |
26 | // let mut _6: Aligned; | |
48663c56 | 27 | // scope 1 { |
60c5eb7d | 28 | // debug x => _1; |
48663c56 | 29 | // } |
ff7c6d11 XL |
30 | // |
31 | // bb0: { | |
32 | // StorageLive(_1); | |
33 | // ... | |
a1dfa0c6 | 34 | // _1 = Packed(move _2,); |
ff7c6d11 XL |
35 | // ... |
36 | // StorageLive(_6); | |
37 | // _6 = move (_1.0: Aligned); | |
38 | // drop(_6) -> [return: bb4, unwind: bb3]; | |
39 | // } | |
532ac7d7 | 40 | // bb1 (cleanup): { |
ff7c6d11 XL |
41 | // resume; |
42 | // } | |
43 | // bb2: { | |
44 | // StorageDead(_1); | |
45 | // return; | |
46 | // } | |
532ac7d7 | 47 | // bb3 (cleanup): { |
ff7c6d11 XL |
48 | // (_1.0: Aligned) = move _4; |
49 | // drop(_1) -> bb1; | |
50 | // } | |
51 | // bb4: { | |
52 | // StorageDead(_6); | |
53 | // (_1.0: Aligned) = move _4; | |
54 | // StorageDead(_4); | |
55 | // _0 = (); | |
56 | // drop(_1) -> [return: bb2, unwind: bb1]; | |
57 | // } | |
58 | // } | |
59 | // END rustc.main.EraseRegions.before.mir |