Some floating-point stuff broke during the z3 upgrade
See original GitHub issueI just upgraded the z3 distribution to the latest version and, as per usual, it seems to have broken a few things. The following code worked before the upgrade and no longer does:
import claripy
s = claripy.Solver()
a = claripy.FPS('a', claripy.fp.FSORT_FLOAT)
s.eval(a.raw_to_bv(), 1)
Something along these lines is currently causing our CI to fail.
I would appreciate it if someone could take this issue on.
Issue Analytics
- State:
- Created 5 years ago
- Comments:8 (4 by maintainers)
Top Results From Across the Web
Segmentation fault in floating point theory · Issue #507 - GitHub
Attached is a log that produces a segmentation fault (with Z3 commit id 62a54cf) The example stems from a test case of verifying...
Read more >John Gustafson's crusade to replace floating point with ...
He will keep failing to replace IEEE floating point as long as he insists on making NEGATIVE infinity the same as POSITIVE infinity....
Read more >Floating-point arithmetic - Wikipedia
In computing, floating-point arithmetic (FP) is arithmetic that represents real numbers approximately, using an integer with a fixed precision, called the ...
Read more >Galaxy Z Fold 3: Full S-Pen Tips, Tricks and Hidden Features ...
Buy the Fold 3 as low as $650 here: https://bit.ly/2Z3O3Ss (with trade- in )Buy the S-Pen Pro here: https://bit.ly/3nQhDocBuy the S-Pen Fold ...
Read more >On the effectiveness of mitigations against floating-point timing ...
The duration of floating-point instructions is a known timing side channel that has been used to break Same-. Origin Policy (SOP) privacy on...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
I just created a PR (#145 ) that should fix all the problem that we had with the newer version of Z3.
The problem that we had was when we wanted to perform a conversion from a symbolic FP to a BV. Under the hood, angr calls the function FPToIEEE with the FP as a parameter. In the old version of z3, there was a concept of the function FPToIEE_unspecified which was special cased to 0 while in the new version this unspecified version of the function is no longer present.
Because of this, we ended up having two different models for the same constraint in the two different versions of Z3 (old version:
[Sym_FP = NaN, fp.to_ieee_bv_unspecified = 0]
, new version:[Sym_FP = NaN]
).This issue has been marked as
stale
because it has no recent activity. Please comment or add thepinned
tag to prevent this issue from being closed.