]> git.lizzy.rs Git - rust.git/blob - src/test/mir-opt/packed-struct-drop-aligned.rs
Rollup merge of #62514 - stephaneyfx:box-ffi, r=nikomatsakis
[rust.git] / src / test / mir-opt / packed-struct-drop-aligned.rs
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: ();
21 //     let mut _1: Packed;
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;
27 //     scope 1 {
28 //         debug x => _1;
29 //     }
30 //
31 //     bb0: {
32 //         StorageLive(_1);
33 //         ...
34 //         _1 = Packed(move _2,);
35 //         ...
36 //         StorageLive(_6);
37 //         _6 = move (_1.0: Aligned);
38 //         drop(_6) -> [return: bb4, unwind: bb3];
39 //     }
40 //     bb1 (cleanup): {
41 //         resume;
42 //     }
43 //     bb2: {
44 //         StorageDead(_1);
45 //         return;
46 //     }
47 //     bb3 (cleanup): {
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