[PATCH] D54466: [Analyzer] [WIP] Iterator Checkers - Use the base region of C++ Base Object Regions (recursively) for iterators stored in a region

Balogh, Ádám via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 13 00:11:19 PST 2018


baloghadamsoftware created this revision.
baloghadamsoftware added a reviewer: NoQ.
baloghadamsoftware added a project: clang.
Herald added subscribers: donat.nagy, mikhail.ramalho, a.sidorin, rnkovacs, szepet.
Herald added a reviewer: george.karpenkov.

Some operations, especially iterator comparisons are done on a subregion of the original region. Currently, iterator checker does not recognize these comparisons as iterator comparisons since the key for the abstract iterator position in the GDM is the base region, not the subregion. In other parts of the iterator checker we faced similar problems for containers which are always represented as regions. There the solution was to recursively retrieve the base region of `CXXBaseObjectRegion` classes. We apply the same solution now for iterators represented as regions. To avoid code repetition we moved this operation into a separate function.


Repository:
  rC Clang

https://reviews.llvm.org/D54466

Files:
  lib/StaticAnalyzer/Checkers/IteratorChecker.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D54466.173815.patch
Type: text/x-patch
Size: 6012 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20181113/9236826b/attachment-0001.bin>


More information about the cfe-commits mailing list