summaryrefslogtreecommitdiffstats
path: root/src/test/ui/structs-enums/enum-layout-optimization.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/structs-enums/enum-layout-optimization.rs')
-rw-r--r--src/test/ui/structs-enums/enum-layout-optimization.rs50
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>>());
-}