summaryrefslogtreecommitdiffstats
path: root/src/test/ui/structs-enums/enum-discrim-manual-sizing.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-discrim-manual-sizing.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-discrim-manual-sizing.rs')
-rw-r--r--src/test/ui/structs-enums/enum-discrim-manual-sizing.rs111
1 files changed, 0 insertions, 111 deletions
diff --git a/src/test/ui/structs-enums/enum-discrim-manual-sizing.rs b/src/test/ui/structs-enums/enum-discrim-manual-sizing.rs
deleted file mode 100644
index c8b362c99..000000000
--- a/src/test/ui/structs-enums/enum-discrim-manual-sizing.rs
+++ /dev/null
@@ -1,111 +0,0 @@
-// run-pass
-#![allow(dead_code)]
-
-use std::mem::{size_of, align_of};
-
-#[repr(i8)]
-enum Ei8 {
- Ai8 = 0,
- Bi8 = 1
-}
-
-#[repr(u8)]
-enum Eu8 {
- Au8 = 0,
- Bu8 = 1
-}
-
-#[repr(i16)]
-enum Ei16 {
- Ai16 = 0,
- Bi16 = 1
-}
-
-#[repr(u16)]
-enum Eu16 {
- Au16 = 0,
- Bu16 = 1
-}
-
-#[repr(i32)]
-enum Ei32 {
- Ai32 = 0,
- Bi32 = 1
-}
-
-#[repr(u32)]
-enum Eu32 {
- Au32 = 0,
- Bu32 = 1
-}
-
-#[repr(i64)]
-enum Ei64 {
- Ai64 = 0,
- Bi64 = 1
-}
-
-#[repr(u64)]
-enum Eu64 {
- Au64 = 0,
- Bu64 = 1
-}
-
-#[repr(isize)]
-enum Eint {
- Aint = 0,
- Bint = 1
-}
-
-#[repr(usize)]
-enum Euint {
- Auint = 0,
- Buint = 1
-}
-
-#[repr(u8)]
-enum Eu8NonCLike<T> {
- _None,
- _Some(T),
-}
-
-#[repr(i64)]
-enum Ei64NonCLike<T> {
- _None,
- _Some(T),
-}
-
-#[repr(u64)]
-enum Eu64NonCLike<T> {
- _None,
- _Some(T),
-}
-
-pub fn main() {
- assert_eq!(size_of::<Ei8>(), 1);
- assert_eq!(size_of::<Eu8>(), 1);
- assert_eq!(size_of::<Ei16>(), 2);
- assert_eq!(size_of::<Eu16>(), 2);
- assert_eq!(size_of::<Ei32>(), 4);
- assert_eq!(size_of::<Eu32>(), 4);
- assert_eq!(size_of::<Ei64>(), 8);
- assert_eq!(size_of::<Eu64>(), 8);
- assert_eq!(size_of::<Eint>(), size_of::<isize>());
- assert_eq!(size_of::<Euint>(), size_of::<usize>());
- assert_eq!(size_of::<Eu8NonCLike<()>>(), 1);
- assert_eq!(size_of::<Ei64NonCLike<()>>(), 8);
- assert_eq!(size_of::<Eu64NonCLike<()>>(), 8);
- let u8_expected_size = round_up(9, align_of::<Eu64NonCLike<u8>>());
- assert_eq!(size_of::<Eu64NonCLike<u8>>(), u8_expected_size);
- let array_expected_size = round_up(28, align_of::<Eu64NonCLike<[u32; 5]>>());
- assert_eq!(size_of::<Eu64NonCLike<[u32; 5]>>(), array_expected_size);
- assert_eq!(size_of::<Eu64NonCLike<[u32; 6]>>(), 32);
-
- assert_eq!(align_of::<Eu32>(), align_of::<u32>());
- assert_eq!(align_of::<Eu64NonCLike<u8>>(), align_of::<u64>());
-}
-
-// Rounds x up to the next multiple of a
-fn round_up(x: usize, a: usize) -> usize {
- ((x + (a - 1)) / a) * a
-}