Uh oh!
There was an error while loading. Please reload this page.
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.
tautschnig
commented
Apr 26, 2024
@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 |
tautschnig
commented
Apr 26, 2024
Ah, thank you for explaining why looking at |
remi-delmas-3000
commented
Apr 29, 2024
|
tautschnig
commented
Apr 29, 2024
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.