]> git.lizzy.rs Git - rust.git/blob - tests/ui/packed/issue-27060.rs
make unaligned_reference a hard error
[rust.git] / tests / 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 fn main() {
9     let good = Good {
10         data: &0,
11         data2: [&0, &0],
12         aligned: [0; 32]
13     };
14
15     let _ = &good.data; //~ ERROR reference to packed field
16     let _ = &good.data2[0]; //~ ERROR reference to packed field
17
18     let _ = &good.data; //~ ERROR reference to packed field
19     let _ = &good.data2[0]; //~ ERROR reference to packed field
20     let _ = &*good.data; // ok, behind a pointer
21     let _ = &good.aligned; // ok, has align 1
22     let _ = &good.aligned[2]; // ok, has align 1
23 }