diff options
Diffstat (limited to 'src/test/ui/deriving/deriving-with-repr-packed.rs')
-rw-r--r-- | src/test/ui/deriving/deriving-with-repr-packed.rs | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/src/test/ui/deriving/deriving-with-repr-packed.rs b/src/test/ui/deriving/deriving-with-repr-packed.rs deleted file mode 100644 index 8ce444be1..000000000 --- a/src/test/ui/deriving/deriving-with-repr-packed.rs +++ /dev/null @@ -1,36 +0,0 @@ -// run-pass -// check that derive on a packed struct does not call field -// methods with a misaligned field. - -use std::mem; - -#[derive(Copy, Clone)] -struct Aligned(usize); - -#[inline(never)] -fn check_align(ptr: *const Aligned) { - assert_eq!(ptr as usize % mem::align_of::<Aligned>(), - 0); -} - -impl PartialEq for Aligned { - fn eq(&self, other: &Self) -> bool { - check_align(self); - check_align(other); - self.0 == other.0 - } -} - -#[repr(packed)] -#[derive(Copy, Clone, PartialEq)] -struct Packed(Aligned, Aligned); - -#[derive(PartialEq)] -#[repr(C)] -struct Dealigned<T>(u8, T); - -fn main() { - let d1 = Dealigned(0, Packed(Aligned(1), Aligned(2))); - let ck = d1 == d1; - assert!(ck); -} |