[PATCH] D61136: [Analyzer] IteratorChecker - Ensure end()>=begin() and refactor begin and end symbol creation

Balogh, Ádám via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Apr 26 00:39:07 PDT 2019

baloghadamsoftware added a comment.

In D61136#1479454 <https://reviews.llvm.org/D61136#1479454>, @NoQ wrote:

> Aha, yup, thx!
> Do you plan to centralize other code paths on which you conjure symbols?

Only in a small rework of `handleAssign()` because that is a place where we conjure a symbol for a new `end()`. I only plan to centralize conjuration of `begin()` and `end()` symbols of containers.

> 'Cause i still believe that given that we now support C++ (our prvalues are now properly materialized) (most of the time), you should be able to remove support for symbol-like iterators, and then replace your position symbols with `SymbolMetadata`.

Abstract iterator positions are represented by symbolic expressions because we must be able to do simple calculations with them. This has nothing to do with iterator objects represented as symbols. Or what do you mean exactly by "replacing position symbols with `SymbolMetadata`"?

  rC Clang



More information about the cfe-commits mailing list