| #![deny(safe_packed_borrows)] |
| |
| // check that derive on a packed struct with non-Copy fields |
| // correctly. This can't be made to work perfectly because |
| // we can't just use the field from the struct as it might |
| // not be aligned. |
| |
| #[derive(Copy, Clone, PartialEq, Eq)] |
| //~^ ERROR `#[derive]` can't be used |
| //~| hard error |
| //~^^^ ERROR `#[derive]` can't be used |
| //~| hard error |
| #[repr(packed)] |
| pub struct Foo<T>(T, T, T); |
| |
| #[derive(PartialEq, Eq)] |
| //~^ ERROR `#[derive]` can't be used |
| //~| hard error |
| #[repr(packed)] |
| pub struct Bar(u32, u32, u32); |
| |
| #[derive(PartialEq)] |
| struct Y(usize); |
| |
| #[derive(PartialEq)] |
| //~^ ERROR `#[derive]` can't be used |
| //~| hard error |
| #[repr(packed)] |
| struct X(Y); |
| |
| fn main() {} |