[PATCH] D53754: [Analyzer] Skip symbolic regions based on conjured symbols in comparison of the containers of iterators

Balogh, Ádám via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Feb 18 06:46:35 PST 2019


baloghadamsoftware added a comment.
Herald added a subscriber: jdoerfert.

In D53754#1315247 <https://reviews.llvm.org/D53754#1315247>, @NoQ wrote:

> What makes you think that conjured symbols are special?
>
> Doesn't the same problem appear in the following example?:
>
>   void foo(std::vector<int> &v1, std::vector<int> &v2) {
>     v2.erase(v1.cbegin());
>   }
>
>
> In this example if `foo()` is analyzed as a top level function, the respective symbols would be of `SymbolRegionValue` kind. It is also easy to come up with a test case that involves `SymbolDerived`.


I think that here the main difference is that if we analyze this function as top level, then we find a true positive: the regions for `v1` and `v2` //may be// the same but generally they are difference (hence the different parameters). However, we do not know anything about the sameness of the regions of different `SymbolDerived`s, thus those findings may be false or true positives as well.


Repository:
  rC Clang

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D53754/new/

https://reviews.llvm.org/D53754





More information about the cfe-commits mailing list