diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:13 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:13 +0000 |
commit | 218caa410aa38c29984be31a5229b9fa717560ee (patch) | |
tree | c54bd55eeb6e4c508940a30e94c0032fbd45d677 /src/test/ui/structs-enums/enum-layout-optimization.rs | |
parent | Releasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff) | |
download | rustc-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.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>>()); -} |