]> git.proxmox.com Git - rustc.git/blame - src/test/mir-opt/packed-struct-drop-aligned.rs
New upstream version 1.41.1+dfsg1
[rustc.git] / src / test / mir-opt / packed-struct-drop-aligned.rs
CommitLineData
ff7c6d11
XL
1// ignore-wasm32-bare compiled with panic=abort by default
2
3fn main() {
4 let mut x = Packed(Aligned(Droppy(0)));
5 x.0 = Aligned(Droppy(0));
6}
7
8struct Aligned(Droppy);
9#[repr(packed)]
10struct Packed(Aligned);
11
12struct Droppy(usize);
13impl 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