Miri: handling of SNaN inputs in f*::pow operations#142514
Merged
bors merged 2 commits intorust-lang:masterfrom Jun 30, 2025
Merged
Miri: handling of SNaN inputs in f*::pow operations#142514bors merged 2 commits intorust-lang:masterfrom
f*::pow operations#142514bors merged 2 commits intorust-lang:masterfrom
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
fixes miri/#4286 and related to #138062 and miri/#4208.
For the following cases of the powf or powi operations, Miri returns either
1.0or an arbitraryNaN:powf(SNaN, 0.0)powf(1.0, SNaN)powi(SNaN, 0)Also added a macro in
miri/tests/pass/float.rswhich conveniently checks if both are indeed returned from such an operation.Made these changes in the rust repo so I could test against stdlib, since these were impacted some time ago and were fixed in #138062. Tested with:
This was successful. This does take a while, so I recommend using
--no-docand separate use off32orf64The pr is somewhat split up into 3 main commits, which implement the cases described above. The first commit also introduces the macro, and the last commit is just a global refactor of some things.
r? @RalfJung