blob: a8a414fd72e401cc3886e1a173ca092cd530c4ac [file] [log] [blame]
// Use .to_le() to ensure that the bytes are in the same order on both little- and big-endian
// platforms.
#[repr(u128)]
pub enum U128Enum {
U128A = 0_u128.to_le(),
U128B = 1_u128.to_le(),
U128C = (u64::MAX as u128 + 1).to_le(),
U128D = u128::MAX.to_le(),
}
#[repr(i128)]
pub enum I128Enum {
I128A = 0_i128.to_le(),
I128B = (-1_i128).to_le(),
I128C = i128::MIN.to_le(),
I128D = i128::MAX.to_le(),
}
#[cfg(not(old_llvm))]
#[repr(u128)]
pub enum U128VariantEnum {
VariantU128A(u8) = 0_u128.to_le(),
VariantU128B = 1_u128.to_le(),
VariantU128C = (u64::MAX as u128 + 1).to_le(),
VariantU128D = u128::MAX.to_le(),
}
#[cfg(not(old_llvm))]
#[repr(i128)]
pub enum I128VariantEnum {
VariantI128A(u8) = 0_i128.to_le(),
VariantI128B = (-1_i128).to_le(),
VariantI128C = i128::MIN.to_le(),
VariantI128D = i128::MAX.to_le(),
}
pub fn f(_: U128Enum, _: I128Enum) {}
#[cfg(not(old_llvm))]
pub fn g(_: U128VariantEnum, _: I128VariantEnum) {}
fn main() {
f(U128Enum::U128A, I128Enum::I128A);
#[cfg(not(old_llvm))]
{
g(U128VariantEnum::VariantU128A(1), I128VariantEnum::VariantI128A(2));
}
}