[PATCH] D80117: [analyzer] Introduce reasoning about symbolic remainder operator
Artem Dergachev via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon May 18 09:40:06 PDT 2020
NoQ added inline comments.
================
Comment at: clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp:459
+ bool CoversTheWholeType =
+ (Origin.From().isMinSignedValue() || Origin.To().isMaxValue());
+
----------------
vsavchenko wrote:
> NoQ wrote:
> > `(Origin.From() + 1).isMinSignedValue()` is another sufficient condition(?)
> I'm sorry, I don't quite get what cases does this check cover. Can you please explain what you have in mind?
Aha, ok, nvm, a different issue then: For range `[INT_MIN + 1, INT_MAX]`, the correct answer should be ``[INT_MIN + 1, INT_MAX]` (which is `[-C, C]` for `C = INT_MAX]`) rather than `[INT_MIN, INT_MAX]`.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D80117/new/
https://reviews.llvm.org/D80117
More information about the cfe-commits
mailing list