[PATCH] D86874: [analyzer] Fix ArrayBoundCheckerV2 false positive regarding size_t indexer
Gabor Marton via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Sep 1 01:17:24 PDT 2020
martong added a comment.
> Note that we don't deal with wrapping here.
Wrapping? Please elaborate.
================
Comment at: clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp:226
+ // No unsigned symbolic value can be less then a negative constant.
+ if (const auto SymbolicRoot = RootNonLoc.getAs<SymbolVal>())
+ if (SymbolicRoot->getSymbol()->getType()->isUnsignedIntegerType() &&
----------------
I really feel that this check would have a better place in the implementation of `eval`. This seems really counter-intuitive to do this stuff at the Checker's level. Is there any reason why we can't do this in `eval`?
`evalBinOpNN` could return with Unknown, and the state should remain unchanged. Am I missing something?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D86874/new/
https://reviews.llvm.org/D86874
More information about the cfe-commits
mailing list