[Analyzer] Handle pointer implemented as iterators in iterator checkers
authorAdam Balogh <adam.balogh@ericsson.com>
Tue, 16 Jun 2020 18:00:47 +0000 (20:00 +0200)
committerAdam Balogh <adam.balogh@ericsson.com>
Wed, 1 Jul 2020 07:04:28 +0000 (09:04 +0200)
commit9e63b190af76c798b06b1e3b75216abfdeb1bce3
tree12488fa1b2d8932110e9d2bb6c0e2c17a60a951a
parentea563daae5232a03e08e43e68da813f76548f36a
[Analyzer] Handle pointer implemented as iterators in iterator checkers

Iterators are an abstraction of pointers and in some data structures
iterators may be implemented by pointers. This patch adds support for
iterators implemented as pointers in all the iterator checkers
(including iterator modeling).

Differential Revision: https://reviews.llvm.org/D82185
clang/lib/StaticAnalyzer/Checkers/InvalidatedIteratorChecker.cpp
clang/lib/StaticAnalyzer/Checkers/Iterator.cpp
clang/lib/StaticAnalyzer/Checkers/Iterator.h
clang/lib/StaticAnalyzer/Checkers/IteratorModeling.cpp
clang/lib/StaticAnalyzer/Checkers/IteratorRangeChecker.cpp
clang/lib/StaticAnalyzer/Checkers/MismatchedIteratorChecker.cpp
clang/test/Analysis/invalidated-iterator.cpp
clang/test/Analysis/iterator-modeling.cpp
clang/test/Analysis/iterator-range.cpp
clang/test/Analysis/mismatched-iterator.cpp