]> git.lizzy.rs Git - rust.git/blob - src/test/ui/packed/issue-27060.rs
Pin panic-in-drop=abort test to old pass manager
[rust.git] / src / test / ui / packed / issue-27060.rs
1 #[repr(packed)]
2 pub struct Good {
3     data: &'static u32,
4     data2: [&'static u32; 2],
5     aligned: [u8; 32],
6 }
7
8 #[deny(unaligned_references)]
9 fn main() {
10     let good = Good {
11         data: &0,
12         data2: [&0, &0],
13         aligned: [0; 32]
14     };
15
16     let _ = &good.data; //~ ERROR reference to packed field
17     //~| hard error
18     let _ = &good.data2[0]; //~ ERROR reference to packed field
19     //~| hard error
20
21     let _ = &good.data; //~ ERROR reference to packed field
22                         //~| hard error
23     let _ = &good.data2[0]; //~ ERROR reference to packed field
24                             //~| hard error
25     let _ = &*good.data; // ok, behind a pointer
26     let _ = &good.aligned; // ok, has align 1
27     let _ = &good.aligned[2]; // ok, has align 1
28 }