diff options
Diffstat (limited to 'src/test/ui/structs-enums/enum-layout-optimization.rs')
-rw-r--r-- | src/test/ui/structs-enums/enum-layout-optimization.rs | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/src/test/ui/structs-enums/enum-layout-optimization.rs b/src/test/ui/structs-enums/enum-layout-optimization.rs deleted file mode 100644 index 05d297906..000000000 --- a/src/test/ui/structs-enums/enum-layout-optimization.rs +++ /dev/null @@ -1,50 +0,0 @@ -// run-pass -// Test that we will do various size optimizations to enum layout, but -// *not* if `#[repr(u8)]` or `#[repr(C)]` is passed. See also #40029. - -#![allow(dead_code)] - -use std::mem; - -enum Nullable<T> { - Alive(T), - Dropped, -} - -#[repr(u8)] -enum NullableU8<T> { - Alive(T), - Dropped, -} - -#[repr(C)] -enum NullableC<T> { - Alive(T), - Dropped, -} - -struct StructNewtype<T>(T); - -#[repr(C)] -struct StructNewtypeC<T>(T); - -enum EnumNewtype<T> { Variant(T) } - -#[repr(u8)] -enum EnumNewtypeU8<T> { Variant(T) } - -#[repr(C)] -enum EnumNewtypeC<T> { Variant(T) } - -fn main() { - assert!(mem::size_of::<Box<i32>>() == mem::size_of::<Nullable<Box<i32>>>()); - assert!(mem::size_of::<Box<i32>>() < mem::size_of::<NullableU8<Box<i32>>>()); - assert!(mem::size_of::<Box<i32>>() < mem::size_of::<NullableC<Box<i32>>>()); - - assert!(mem::size_of::<i32>() == mem::size_of::<StructNewtype<i32>>()); - assert!(mem::size_of::<i32>() == mem::size_of::<StructNewtypeC<i32>>()); - - assert!(mem::size_of::<i32>() == mem::size_of::<EnumNewtype<i32>>()); - assert!(mem::size_of::<i32>() < mem::size_of::<EnumNewtypeU8<i32>>()); - assert!(mem::size_of::<i32>() < mem::size_of::<EnumNewtypeC<i32>>()); -} |