analyzer icon indicating copy to clipboard operation
analyzer copied to clipboard

Invalidate variables based on annotations of asm statements

Open bottbenj opened this issue 3 years ago • 1 comments

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 goto statements.
  • 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
  • ???

bottbenj avatar May 01 '22 21:05 bottbenj

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:

michael-schwarz avatar May 03 '22 15:05 michael-schwarz

Unassigning myself as I currently do not have the bandwith to invest time here.

michael-schwarz avatar Jul 14 '23 14:07 michael-schwarz

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.

michael-schwarz avatar Nov 01 '23 16:11 michael-schwarz