diff options
| author | Eduard Burtescu <edy.burt@gmail.com> | 2016-06-01 09:00:46 +0300 |
|---|---|---|
| committer | Eduard Burtescu <edy.burt@gmail.com> | 2016-06-05 19:17:42 +0300 |
| commit | 27673610a60c4aa538a92647ec9125b04f653fe4 (patch) | |
| tree | 3d58c2f65da897efe82b745b435b4116113037e0 | |
| parent | 8cbffc5bcfbc4696173678d50d519e9e61676265 (diff) | |
| download | rust-27673610a60c4aa538a92647ec9125b04f653fe4.tar.gz rust-27673610a60c4aa538a92647ec9125b04f653fe4.zip | |
test: don't assume anything about the sign of NAN.
| -rw-r--r-- | src/libstd/num/f32.rs | 7 | ||||
| -rw-r--r-- | src/libstd/num/f64.rs | 7 |
2 files changed, 10 insertions, 4 deletions
diff --git a/src/libstd/num/f32.rs b/src/libstd/num/f32.rs index c0031aa42e6..ff80a4e3053 100644 --- a/src/libstd/num/f32.rs +++ b/src/libstd/num/f32.rs @@ -1382,7 +1382,6 @@ mod tests { } #[test] - #[rustc_no_mir] // FIXME #27840 MIR NAN ends up negative. fn test_integer_decode() { assert_eq!(3.14159265359f32.integer_decode(), (13176795, -22, 1)); assert_eq!((-8573.5918555f32).integer_decode(), (8779358, -10, -1)); @@ -1391,7 +1390,11 @@ mod tests { assert_eq!((-0f32).integer_decode(), (0, -150, -1)); assert_eq!(INFINITY.integer_decode(), (8388608, 105, 1)); assert_eq!(NEG_INFINITY.integer_decode(), (8388608, 105, -1)); - assert_eq!(NAN.integer_decode(), (12582912, 105, 1)); + + // Ignore the "sign" (quiet / signalling flag) of NAN. + // It can vary between runtime operations and LLVM folding. + let (nan_m, nan_e, _nan_s) = NAN.integer_decode(); + assert_eq!((nan_m, nan_e), (12582912, 105)); } #[test] diff --git a/src/libstd/num/f64.rs b/src/libstd/num/f64.rs index 1a46d9a3895..b7750317870 100644 --- a/src/libstd/num/f64.rs +++ b/src/libstd/num/f64.rs @@ -1277,7 +1277,6 @@ mod tests { } #[test] - #[rustc_no_mir] // FIXME #27840 MIR NAN ends up negative. fn test_integer_decode() { assert_eq!(3.14159265359f64.integer_decode(), (7074237752028906, -51, 1)); assert_eq!((-8573.5918555f64).integer_decode(), (4713381968463931, -39, -1)); @@ -1286,7 +1285,11 @@ mod tests { assert_eq!((-0f64).integer_decode(), (0, -1075, -1)); assert_eq!(INFINITY.integer_decode(), (4503599627370496, 972, 1)); assert_eq!(NEG_INFINITY.integer_decode(), (4503599627370496, 972, -1)); - assert_eq!(NAN.integer_decode(), (6755399441055744, 972, 1)); + + // Ignore the "sign" (quiet / signalling flag) of NAN. + // It can vary between runtime operations and LLVM folding. + let (nan_m, nan_e, _nan_s) = NAN.integer_decode(); + assert_eq!((nan_m, nan_e), (6755399441055744, 972)); } #[test] |
