-
Notifications
You must be signed in to change notification settings - Fork 77
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
Remove duplicate ctx-derived arguments in base analysis #1308
Conversation
…v_fallbask signatures
This reverts commit 77c6f20.
Although the regression tests did pass with the I have still removed the |
src/analyses/base.ml
Outdated
let immediately_reachable = reachable_from_value ~ctx (eval_rv ~ctx st e) (Cilfacade.typeOf e) (CilType.Exp.show e) in | ||
reachable_vars ~ctx [immediately_reachable] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure I quite get why this is guaranteed to be the same? To me, it looks like we are evaluating some things on st
(eval_rv
) and others on ctx.local
(reachable_vars
)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR currently leaves st
as separate from ctx.local
because of this, but there's a broader conceptual problem with it even before this PR.
Namely, even if a different st
is passed and used for some local lookups, ask
isn't (and cannot be) modified, so EvalInt
query would still run on the original local state. So having a separate local state is overall questionable and should maybe be addressed separately in the future somehow.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Verdicts and performance on sv-benchmarks are essentially unchanged, which is good.
Solves #1266
TODO
reachable_from_value
reachable_from_address
reachable_vars