// run-pass // allows aligned custom discriminant enums to cast into other types // See the issue #92464 for more info #[allow(dead_code)] #[repr(align(8))] enum Aligned { Zero = 0, One = 1, } fn main() { let aligned = Aligned::Zero; let fo = aligned as u8; println!("foo {}", fo); assert_eq!(fo, 0); println!("{}", tou8(Aligned::Zero)); assert_eq!(tou8(Aligned::Zero), 0); } #[inline(never)] fn tou8(al: Aligned) -> u8 { // Cast behind a function call so ConstProp does not see it // (so that we can test codegen). al as u8 }