[PATCH] D82445: [analyzer][solver] Track symbol equivalence
Artem Dergachev via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Jul 6 20:16:07 PDT 2020
NoQ accepted this revision.
NoQ added a comment.
This revision is now accepted and ready to land.
🎉!
I vaguely remember that we talked offline about a few nasty test cases that with casts and overflows, would it make sense to add them? Like, even if they don't pass yet, they may prove valuable.
================
Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:1472
+ // path compression when dealing with immutability. That means that we
+ // compress paths every time we do merges. It also means that we loose
+ // the main amortized complexity benefit from the original data structure.
----------------
"lose"!
================
Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:1487
+ // we shouldn't generate ranges incompatible with equivalence classes.
+ // However, at the moment, due to imperfections in the solver, it is
+ // possible and the merge function can also return infeasible states
----------------
"I am the solver!!!"
I guess what you're trying to say is that every time there's an infeasible state here, technically one of the `infer()` functions had a chance to prevent it (not necessarily easily).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D82445/new/
https://reviews.llvm.org/D82445
More information about the cfe-commits
mailing list