rust/src/test/ui/derives/deriving-with-repr-packed.rs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

32 lines
704 B
Rust
Raw Normal View History

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