Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Equip float domain to handle definite NaN, +Inf, -Inf, and some missing float stubs #869

Merged
merged 32 commits into from
Oct 31, 2022

Conversation

michael-schwarz
Copy link
Member

In the course of #868 I came across a few tests for sv-comp that are low-hanging fruit that require handling the information that some variable is definitely NaN, +Inf or -Inf. This adds these possibilities.
The resulting lattice is a flat lattice with NaN, +Inf, -Inf, and intervals of actual floats values.

In the course of this PR, I will also add the float stubs sv-comp uses that I identified in #868.

@michael-schwarz michael-schwarz marked this pull request as ready for review October 30, 2022 14:07
@michael-schwarz michael-schwarz linked an issue Oct 31, 2022 that may be closed by this pull request
@michael-schwarz michael-schwarz mentioned this pull request Oct 31, 2022
2 tasks
Copy link
Member

@sim642 sim642 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suppose the definite NaN/+inf/-inf domain could be extracted out to a separate float domain and be another component of FloatDomTuple, which could decouple things somewhat. But since it's already done, there's no point in redoing it right now.

src/analyses/libraryFunctions.ml Show resolved Hide resolved
tests/regression/57-floats/15-more-library.c Outdated Show resolved Hide resolved
@michael-schwarz michael-schwarz merged commit 2587de2 into master Oct 31, 2022
@michael-schwarz michael-schwarz deleted the float_nan_and_stubs branch October 31, 2022 12:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Refinement for floats on branching unsound for Div
2 participants