[PATCH] D25660: [Analyzer] Checker for iterators dereferenced beyond their range.
Artem Dergachev via cfe-commits
cfe-commits at lists.llvm.org
Tue Nov 1 14:18:06 PDT 2016
NoQ added inline comments.
================
Comment at: lib/StaticAnalyzer/Checkers/IteratorPastEndChecker.cpp:580
+ C.addTransition(stateFound);
+ C.addTransition(stateNotFound);
+}
----------------
Ouch, i have one more concern, which can be expressed with the following false-positive test which currently fails:
```
void foo() {
std::vector<int> vec;
vec.push_back(2016);
auto i = vec.find(vec.begin(), vec.end(), 2016);
*i; // no-warning
}
```
Not instantly sure what to do with this. You can avoid state splits until you are actually sure if both branches are possible, but that'd suppress a lot of useful positives. Such positives could be suppressed with assertions, of course, but i'd still hope there aren't too many of those.
https://reviews.llvm.org/D25660
More information about the cfe-commits
mailing list