1 // normalize-stderr-test "pref: Align\([1-8] bytes\)" -> "pref: $$PREF_ALIGN"
3 #![feature(rustc_attrs)]
5 use std
::mem
::MaybeUninit
;
13 // This should result in ScalarPair(Initialized, Union),
14 // since the u8 payload will be uninit for `None`.
15 #[rustc_layout(debug)]
16 pub enum MissingPayloadField
{ //~ ERROR: layout_of
21 // This should result in ScalarPair(Initialized, Initialized),
22 // since the u8 field is present in all variants,
23 // and hence will always be initialized.
24 #[rustc_layout(debug)]
25 pub enum CommonPayloadField
{ //~ ERROR: layout_of
30 // This should result in ScalarPair(Initialized, Union),
31 // since, though a u8-sized field is present in all variants, it might be uninit.
32 #[rustc_layout(debug)]
33 pub enum CommonPayloadFieldIsMaybeUninit
{ //~ ERROR: layout_of
38 // This should result in ScalarPair(Initialized, Union),
39 // since only the niche field (used for the tag) is guaranteed to be initialized.
40 #[rustc_layout(debug)]
41 pub enum NicheFirst
{ //~ ERROR: layout_of
47 // This should result in ScalarPair(Union, Initialized),
48 // since only the niche field (used for the tag) is guaranteed to be initialized.
49 #[rustc_layout(debug)]
50 pub enum NicheSecond
{ //~ ERROR: layout_of