]> granicus.if.org Git - clang/commit
[analyzer] Initial commit for the upcoming refactoring of the IteratorChecker.
authorArtem Dergachev <artem.dergachev@gmail.com>
Mon, 29 May 2017 15:03:20 +0000 (15:03 +0000)
committerArtem Dergachev <artem.dergachev@gmail.com>
Mon, 29 May 2017 15:03:20 +0000 (15:03 +0000)
commitab4ea4570190c32f1e5c00d851680ebd14e94b53
tree480f4c0bb67d5e6641cb67e467cc64210f7d686c
parent1e698dbb9d9d9334f426b44dde2e35abc1807061
[analyzer] Initial commit for the upcoming refactoring of the IteratorChecker.

The new checker currently contains the very core infrastructure for tracking
the state of iterator-type objects in the analyzer: relating iterators to
their containers, tracking symbolic begin and end iterator values for
containers, and solving simple equality-type constraints over iterators.
A single specific check over this infrastructure is capable of finding usage of
out-of-range iterators in some simple cases.

Patch by Ádám Balogh!

Differential revision: https://reviews.llvm.org/D32592

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@304160 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/StaticAnalyzer/Checkers/Checkers.td
lib/StaticAnalyzer/Checkers/CMakeLists.txt
lib/StaticAnalyzer/Checkers/IteratorChecker.cpp [new file with mode: 0644]
lib/StaticAnalyzer/Checkers/IteratorPastEndChecker.cpp [deleted file]
test/Analysis/Inputs/system-header-simulator-cxx.h
test/Analysis/diagnostics/explicit-suppression.cpp
test/Analysis/iterator-past-end.cpp [deleted file]
test/Analysis/iterator-range.cpp [new file with mode: 0644]