summaryrefslogtreecommitdiffstats
path: root/src/test/ui/structs-enums/align-enum.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:03 +0000
commit64d98f8ee037282c35007b64c2649055c56af1db (patch)
tree5492bcf97fce41ee1c0b1cc2add283f3e66cdab0 /src/test/ui/structs-enums/align-enum.rs
parentAdding debian version 1.67.1+dfsg1-1. (diff)
downloadrustc-64d98f8ee037282c35007b64c2649055c56af1db.tar.xz
rustc-64d98f8ee037282c35007b64c2649055c56af1db.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/align-enum.rs')
-rw-r--r--src/test/ui/structs-enums/align-enum.rs54
1 files changed, 0 insertions, 54 deletions
diff --git a/src/test/ui/structs-enums/align-enum.rs b/src/test/ui/structs-enums/align-enum.rs
deleted file mode 100644
index fa872caa3..000000000
--- a/src/test/ui/structs-enums/align-enum.rs
+++ /dev/null
@@ -1,54 +0,0 @@
-// run-pass
-#![allow(dead_code)]
-
-use std::mem;
-
-// Raising alignment
-#[repr(align(16))]
-enum Align16 {
- Foo { foo: u32 },
- Bar { bar: u32 },
-}
-
-// Raise alignment by maximum
-#[repr(align(1), align(16))]
-#[repr(align(32))]
-#[repr(align(4))]
-enum Align32 {
- Foo,
- Bar,
-}
-
-// Not reducing alignment
-#[repr(align(4))]
-enum AlsoAlign16 {
- Foo { limb_with_align16: Align16 },
- Bar,
-}
-
-// No niche for discriminant when used as limb
-#[repr(align(16))]
-struct NoNiche16(u64, u64);
-
-// Discriminant will require extra space, but enum needs to stay compatible
-// with alignment 16
-#[repr(align(1))]
-enum AnotherAlign16 {
- Foo { limb_with_noniche16: NoNiche16 },
- Bar,
- Baz,
-}
-
-fn main() {
- assert_eq!(mem::align_of::<Align16>(), 16);
- assert_eq!(mem::size_of::<Align16>(), 16);
-
- assert_eq!(mem::align_of::<Align32>(), 32);
- assert_eq!(mem::size_of::<Align32>(), 32);
-
- assert_eq!(mem::align_of::<AlsoAlign16>(), 16);
- assert_eq!(mem::size_of::<AlsoAlign16>(), 16);
-
- assert_eq!(mem::align_of::<AnotherAlign16>(), 16);
- assert_eq!(mem::size_of::<AnotherAlign16>(), 32);
-}