32 lines
695 B
Rust
32 lines
695 B
Rust
#![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() {}
|