-
Notifications
You must be signed in to change notification settings - Fork 63
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
JVM overrides that don't specify final values can lead to unsoundness #900
Comments
The plan is to have an explicit declaration to say that a location could be modified in an unspecified way, much like the |
My latest thoughts about A simpler API would be to just add a new To summarize, we want to just add one new saw-script primitive
Even if we do decide to offer 3 varieties of |
I think I remember talking about this in person, but not what conclusion we came to: how is |
They are different. In the post-state section, a declaration of a field or array element as On the other hand, if you want to have a value that can be subsequently read, but just with an unconstrained value, that's when you would use By the way, I have some of this implemented already in the |
Currently these tests are configured as known failures; the tests will need to be updated when the bugs are fixed.
Currently these tests are configured as known failures; the tests will need to be updated when the bugs are fixed.
This ensures that executing an incomplete override, which omits some field modifications that are not mentioned in the override spec, will not lead to unsoundness. Fixes #900.
Currently these tests are configured as known failures; the tests will need to be updated when the bugs are fixed.
This ensures that executing an incomplete override, which omits some field modifications that are not mentioned in the override spec, will not lead to unsoundness. Fixes #900.
Currently these tests are configured as known failures; the tests will need to be updated when the bugs are fixed.
Currently these tests are configured as known failures; the tests will need to be updated when the bugs are fixed.
Currently these tests are configured as known failures; the tests will need to be updated when the bugs are fixed.
Currently these tests are configured as known failures; the tests will need to be updated when the bugs are fixed.
Currently these tests are configured as known failures; the tests will need to be updated when the bugs are fixed.
Fixed in #1290. |
Currently we can prove an override for a JVM method with
crucible_jvm_verify
that specifies no final value for a field of an allocated object. The verification will still succeed if the method modifies such a field, but then executing the override will leave that field unmodified. This can lead to unsoundness.To fix the problem, we should perform an invalidation pass and invalidate any allocated fields that do not have final values specified, as was implemented for LLVM in #549.
The text was updated successfully, but these errors were encountered: