diff --git a/tests/ui/consts/const-float-bits-conv.rs b/tests/ui/consts/const-float-bits-conv.rs index e9933032079da..1a93a95212221 100644 --- a/tests/ui/consts/const-float-bits-conv.rs +++ b/tests/ui/consts/const-float-bits-conv.rs @@ -23,6 +23,11 @@ macro_rules! const_assert { }; } +fn has_broken_floats() -> bool { + // i586 targets are broken due to . + std::env::var("TARGET").is_ok_and(|v| v.contains("i586")) +} + fn f32() { const_assert!((1f32).to_bits(), 0x3f800000); const_assert!(u32::from_be_bytes(1f32.to_be_bytes()), 0x3f800000); @@ -48,7 +53,9 @@ fn f32() { const_assert!(f32::from_bits(MASKED_NAN1).is_nan()); const_assert!(f32::from_bits(MASKED_NAN2).is_nan()); const_assert!(f32::from_bits(MASKED_NAN1).to_bits(), MASKED_NAN1); - const_assert!(f32::from_bits(MASKED_NAN2).to_bits(), MASKED_NAN2); + if !has_broken_floats() { + const_assert!(f32::from_bits(MASKED_NAN2).to_bits(), MASKED_NAN2); + } } fn f64() { @@ -76,7 +83,9 @@ fn f64() { const_assert!(f64::from_bits(MASKED_NAN1).is_nan()); const_assert!(f64::from_bits(MASKED_NAN2).is_nan()); const_assert!(f64::from_bits(MASKED_NAN1).to_bits(), MASKED_NAN1); - const_assert!(f64::from_bits(MASKED_NAN2).to_bits(), MASKED_NAN2); + if !has_broken_floats() { + const_assert!(f64::from_bits(MASKED_NAN2).to_bits(), MASKED_NAN2); + } } fn main() {