diff options
Diffstat (limited to 'src/test/ui/structs-enums/align-enum.rs')
-rw-r--r-- | src/test/ui/structs-enums/align-enum.rs | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/src/test/ui/structs-enums/align-enum.rs b/src/test/ui/structs-enums/align-enum.rs deleted file mode 100644 index fa872caa3..000000000 --- a/src/test/ui/structs-enums/align-enum.rs +++ /dev/null @@ -1,54 +0,0 @@ -// run-pass -#![allow(dead_code)] - -use std::mem; - -// Raising alignment -#[repr(align(16))] -enum Align16 { - Foo { foo: u32 }, - Bar { bar: u32 }, -} - -// Raise alignment by maximum -#[repr(align(1), align(16))] -#[repr(align(32))] -#[repr(align(4))] -enum Align32 { - Foo, - Bar, -} - -// Not reducing alignment -#[repr(align(4))] -enum AlsoAlign16 { - Foo { limb_with_align16: Align16 }, - Bar, -} - -// No niche for discriminant when used as limb -#[repr(align(16))] -struct NoNiche16(u64, u64); - -// Discriminant will require extra space, but enum needs to stay compatible -// with alignment 16 -#[repr(align(1))] -enum AnotherAlign16 { - Foo { limb_with_noniche16: NoNiche16 }, - Bar, - Baz, -} - -fn main() { - assert_eq!(mem::align_of::<Align16>(), 16); - assert_eq!(mem::size_of::<Align16>(), 16); - - assert_eq!(mem::align_of::<Align32>(), 32); - assert_eq!(mem::size_of::<Align32>(), 32); - - assert_eq!(mem::align_of::<AlsoAlign16>(), 16); - assert_eq!(mem::size_of::<AlsoAlign16>(), 16); - - assert_eq!(mem::align_of::<AnotherAlign16>(), 16); - assert_eq!(mem::size_of::<AnotherAlign16>(), 32); -} |