]> git.lizzy.rs Git - rust.git/blob - src/test/mir-opt/packed-struct-drop-aligned.rs
Auto merge of #63803 - GuillaumeGomez:stabilize-doctest, r=ollie27,QuietMisdreavus...
[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 //     }
29 //
30 //     bb0: {
31 //         StorageLive(_1);
32 //         ...
33 //         _1 = Packed(move _2,);
34 //         ...
35 //         StorageLive(_6);
36 //         _6 = move (_1.0: Aligned);
37 //         drop(_6) -> [return: bb4, unwind: bb3];
38 //     }
39 //     bb1 (cleanup): {
40 //         resume;
41 //     }
42 //     bb2: {
43 //         StorageDead(_1);
44 //         return;
45 //     }
46 //     bb3 (cleanup): {
47 //         (_1.0: Aligned) = move _4;
48 //         drop(_1) -> bb1;
49 //     }
50 //     bb4: {
51 //         StorageDead(_6);
52 //         (_1.0: Aligned) = move _4;
53 //         StorageDead(_4);
54 //         _0 = ();
55 //         drop(_1) -> [return: bb2, unwind: bb1];
56 //     }
57 // }
58 // END rustc.main.EraseRegions.before.mir