2021-02-25 18:38:53 +00:00
|
|
|
#![deny(unaligned_references)]
|
2017-11-19 15:04:24 +00:00
|
|
|
|
2017-11-26 17:01:19 +00:00
|
|
|
// 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.
|
|
|
|
|
2017-11-19 15:04:24 +00:00
|
|
|
#[derive(Copy, Clone, PartialEq, Eq)]
|
2019-07-06 07:48:03 +00:00
|
|
|
//~^ ERROR `#[derive]` can't be used
|
2017-11-19 15:04:24 +00:00
|
|
|
//~| hard error
|
2019-07-06 07:48:03 +00:00
|
|
|
//~^^^ ERROR `#[derive]` can't be used
|
2017-11-19 15:04:24 +00:00
|
|
|
//~| hard error
|
2017-11-26 17:01:19 +00:00
|
|
|
#[repr(packed)]
|
|
|
|
pub struct Foo<T>(T, T, T);
|
|
|
|
|
2017-11-19 15:04:24 +00:00
|
|
|
#[derive(PartialEq, Eq)]
|
2019-07-06 07:48:03 +00:00
|
|
|
//~^ ERROR `#[derive]` can't be used
|
2017-11-26 17:01:19 +00:00
|
|
|
//~| hard error
|
2017-11-19 15:04:24 +00:00
|
|
|
#[repr(packed)]
|
|
|
|
pub struct Bar(u32, u32, u32);
|
2017-11-26 17:01:19 +00:00
|
|
|
|
|
|
|
#[derive(PartialEq)]
|
|
|
|
struct Y(usize);
|
|
|
|
|
|
|
|
#[derive(PartialEq)]
|
2019-07-06 07:48:03 +00:00
|
|
|
//~^ ERROR `#[derive]` can't be used
|
2017-11-19 15:04:24 +00:00
|
|
|
//~| hard error
|
2017-11-26 17:01:19 +00:00
|
|
|
#[repr(packed)]
|
|
|
|
struct X(Y);
|
2017-11-19 15:04:24 +00:00
|
|
|
|
|
|
|
fn main() {}
|