This change makes widening act the same as equivalence checking. When the
analysis does not provide an answer regarding the equivalence of two distinct
values, the framework treats them as equivalent. This is an unsound choice that
enables convergence.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
clang/lib/Analysis/FlowSensitive/DataflowEnvironment.cpp | ||
---|---|---|
53 | yes, "hack". Good catch. :) |
Comment Actions
Gabor -- do you want a chance to review (given that it's a non-trivial change to the infrastructure)?
Comment Actions
Sorry for the late review. This looks good to me, but I hope we will be able to undo it soon :)
Comment Actions
Thanks! Np, and agreed. I think we have a clear path towards dropping the unsoundness altogether. Up next. :)
Did you mean "hack"?
If you did indeed mean "hook" -- I think it's not strictly speaking a hook, as there's no way to change the behavior here (i.e. install a different handler). Maybe just "this function enables unsoundness..."?