Uh oh!
There was an error while loading. Please reload this page.
[MIR] Fix double-rounding of float constants and ignore NaN sign in tests. - #34006
Conversation
rust-highfive
commented
Jun 1, 2016
(rust_highfive has picked a reviewer for you, use r? to override) |
There was a problem hiding this comment.
This also needs the FInfer + F32 branches for f32 inference
There was a problem hiding this comment.
I can’t believe this test worked for so long on all of the platforms we support, because mantissa of NaN is not specified to be anything in particular. The only requirement is that the MSB of the mantissa is set to 1 to differentiate from infinity.
There was a problem hiding this comment.
@nagisa Well, LLVM was always doing the folding for us, and it always produces the same result.
nikomatsakis
commented
Jun 5, 2016
@bors r+ |
bors
commented
Jun 5, 2016
📌 Commit 29b1af5 has been approved by |
bors
commented
Jun 5, 2016
🔒 Merge conflict |
bors
commented
Jun 5, 2016
☔ The latest upstream changes (presumably #33905) made this pull request unmergeable. Please resolve the merge conflicts. |
eddyb
commented
Jun 5, 2016
@bors r=nikomatsakis |
bors
commented
Jun 5, 2016
📌 Commit c77166c has been approved by |
bors
commented
Jun 5, 2016
⌛ Testing commit c77166c with merge 6e577ca... |
bors
commented
Jun 5, 2016
💔 Test failed - auto-win-msvc-64-opt |
eddyb
commented
Jun 5, 2016
@bors r=nikomatsakis |
bors
commented
Jun 5, 2016
📌 Commit f158a2f has been approved by |
bors
commented
Jun 5, 2016
⌛ Testing commit f158a2f with merge e19ccb5... |
bors
commented
Jun 5, 2016
⛄ The build was interrupted to prioritize another pull request. |
bors
commented
Jun 5, 2016
⌛ Testing commit f158a2f with merge 323e9ca... |
bors
commented
Jun 6, 2016
💔 Test failed - auto-mac-64-opt-rustbuild |
eddyb
commented
Jun 6, 2016
@alexcrichton ^^ Spurious? |
alexcrichton
commented
Jun 6, 2016
bors
commented
Jun 6, 2016
[MIR] Fix double-rounding of float constants and ignore NaN sign in tests. Fixes#32805 by handling f32 and f64 separately in rustc_const_eval. Also removes `#[rustc_no_mir]` from a couple libstd tests by ignoring NaN sign. Turns out that runtime evaluation of `0.0 / 0.0` produces a NaN with the sign bit set, whereas LLVM constant folds it to a NaN with the sign bit unset, which we were testing for.
Fixes#32805 by handling f32 and f64 separately in rustc_const_eval.
Also removes
#[rustc_no_mir]from a couple libstd tests by ignoring NaN sign.Turns out that runtime evaluation of
0.0 / 0.0produces a NaN with the sign bit set,whereas LLVM constant folds it to a NaN with the sign bit unset, which we were testing for.