blob: 0f6d52ccc73f9325f57219dbd1b1132bd71e6d2b [file]
//@ normalize-stderr: "pref: Align\([1-8] bytes\)" -> "pref: $$PREF_ALIGN"
//! Various enum layout tests.
#![feature(rustc_attrs)]
#![crate_type = "lib"]
#[rustc_dump_layout(align)]
enum UninhabitedVariantAlign {
//~^ ERROR: align: Align(2 bytes)
A([u8; 32]),
B([u16; 0], !), // make sure alignment in uninhabited fields is respected
}
#[rustc_dump_layout(size)]
enum UninhabitedVariantSpace {
//~^ ERROR: size: Size(16 bytes)
A,
B([u8; 15], !), // make sure there is space being reserved for this field.
}
#[rustc_dump_layout(backend_repr)]
enum ScalarPairDifferingSign {
//~^ ERROR: backend_repr: ScalarPair
A(u8),
B(i8),
}
enum Never {}
// See https://github.com/rust-lang/rust/issues/146984
#[rustc_dump_layout(size)]
#[repr(u32)]
enum DefinedLayoutAllUninhabited {
//~^ ERROR: size: Size(4 bytes)
A(Never),
B(Never),
}