-
Notifications
You must be signed in to change notification settings - Fork 272
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Make DFCC is_dead_object_update less restrictive #8261
Make DFCC is_dead_object_update less restrictive #8261
Conversation
GOTO programs are free to use different ways to assign to `__CPROVER_dead_object`. Any such assignment that does not match the expected pattern can then safely be ignored.
@remi-delmas-3000 Why are we tracking |
The use of From the point of view of frame condition checking, not failing on an assignment to a dead object is unsound, so instead of having a soundness hole in the contracts instrumentation and defaulting to the underlying CBMC checks for such cases, I chose to error out when instrumenting any assignment to |
Ah, thank you for explaining why looking at |
|
We could indeed encapsulate this in a (library) function, but either way it will remain an implementation detail of the C front-end. Eventually Kani will create its own tracking variable for Rust checks. Either way, I think this is out of scope for this PR? |
GOTO programs are free to use different ways to assign to
__CPROVER_dead_object
. Any such assignment that does not match the expected pattern can then safely be ignored.