| // ignore-x86 |
| |
| #![warn(clippy::enum_clike_unportable_variant)] |
| #![allow(unused, non_upper_case_globals)] |
| |
| #[repr(usize)] |
| enum NonPortable { |
| X = 0x1_0000_0000, |
| Y = 0, |
| Z = 0x7FFF_FFFF, |
| A = 0xFFFF_FFFF, |
| } |
| |
| enum NonPortableNoHint { |
| X = 0x1_0000_0000, |
| Y = 0, |
| Z = 0x7FFF_FFFF, |
| A = 0xFFFF_FFFF, |
| } |
| |
| #[repr(isize)] |
| enum NonPortableSigned { |
| X = -1, |
| Y = 0x7FFF_FFFF, |
| Z = 0xFFFF_FFFF, |
| A = 0x1_0000_0000, |
| B = std::i32::MIN as isize, |
| C = (std::i32::MIN as isize) - 1, |
| } |
| |
| enum NonPortableSignedNoHint { |
| X = -1, |
| Y = 0x7FFF_FFFF, |
| Z = 0xFFFF_FFFF, |
| A = 0x1_0000_0000, |
| } |
| |
| #[repr(usize)] |
| enum NonPortable2 { |
| X = <usize as Trait>::Number, |
| Y = 0, |
| } |
| |
| trait Trait { |
| const Number: usize = 0x1_0000_0000; |
| } |
| |
| impl Trait for usize {} |
| |
| fn main() {} |