about summary refs log tree commit diff
path: root/tests/ui/layout/enum.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-08-31 06:20:39 +0000
committerbors <bors@rust-lang.org>2023-08-31 06:20:39 +0000
commit2518c0ffeb112b5ecf409c5ea7825b46bb3db8ec (patch)
treec5f0f668af52a644dad21229e18c952893832fb1 /tests/ui/layout/enum.rs
parentd9c11c65ee93b6dfd0c71f17812c68d316fce183 (diff)
parentf57b41519dc3bd863650114c344e8e7db7a1cc2d (diff)
Auto merge of #3044 - rust-lang:rustup-2023-08-31, r=RalfJung
Automatic sync from rustc
Diffstat (limited to 'tests/ui/layout/enum.rs')
-rw-r--r--tests/ui/layout/enum.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/ui/layout/enum.rs b/tests/ui/layout/enum.rs
new file mode 100644
index 00000000000..7ac2eaa8600
--- /dev/null
+++ b/tests/ui/layout/enum.rs
@@ -0,0 +1,18 @@
+// normalize-stderr-test "pref: Align\([1-8] bytes\)" -> "pref: $$PREF_ALIGN"
+//! Various enum layout tests.
+
+#![feature(rustc_attrs)]
+#![feature(never_type)]
+#![crate_type = "lib"]
+
+#[rustc_layout(align)]
+enum UninhabitedVariantAlign { //~ERROR: abi: Align(2 bytes)
+    A([u8; 32]),
+    B([u16; 0], !), // make sure alignment in uninhabited fields is respected
+}
+
+#[rustc_layout(size)]
+enum UninhabitedVariantSpace { //~ERROR: size: Size(16 bytes)
+    A,
+    B([u8; 15], !), // make sure there is space being reserved for this field.
+}