analyzer
analyzer copied to clipboard
Invalidate variables based on annotations of asm statements
Instead of simply ignoring asm statements use their annotations to invalidate variables that are potentially modified by them.
- https://github.com/goblint/analyzer/commit/e3af268163594212468a490abf9318c10ee9a803 are the changes required to make this compile after the changes in https://github.com/goblint/cil/pull/92 that are required for this analysis. This commit will have to be replace in the future after i get to properly creating the CFG for
asm gotostatements. - https://github.com/goblint/analyzer/commit/92b89d58d9652272bb5bb99d6fda4a1b494286d4 introduces an event to invalidate variables and makes the two existing invalidates in base use it.
- https://github.com/goblint/analyzer/commit/e3af268163594212468a490abf9318c10ee9a803 the actual code to collect which variables to invalidate for an asm
TODO
- [ ] use the invalidate event outside of base
- [ ] proper handling of
asm goto - [ ] more tests
- [ ] Update goblint-cil opam pin to https://github.com/goblint/cil/pull/92
- ???
Sorry we haven't provided feedback yet, we have an upcoming paper deadline on Friday AOE and will do so after for all your PRs :smile:
Unassigning myself as I currently do not have the bandwith to invest time here.
Thank you again for this PR. One of the student teams is now working on implementing this more generally for the Goblint practical. Therefore, I am closing this PR.