summaryrefslogtreecommitdiffstats
path: root/src/test/ui/structs-enums/enum-layout-optimization.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
commit218caa410aa38c29984be31a5229b9fa717560ee (patch)
treec54bd55eeb6e4c508940a30e94c0032fbd45d677 /src/test/ui/structs-enums/enum-layout-optimization.rs
parentReleasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz
rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
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>>());
-}