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

Artem Dergachev via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Mar 6 17:54:48 PST 2019


NoQ accepted this revision.
NoQ added a comment.
This revision is now accepted and ready to land.
Herald added a subscriber: Charusso.

In D53754#1401162 <https://reviews.llvm.org/D53754#1401162>, @baloghadamsoftware wrote:

> 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).


Aha, right, that's an interesting heuristic. I guess that the developer may also add a specific check (eg., `if (&v1 == &v2) ...`, but that's a separate story of aliasing and renaming, and i do admit that i don't see this sort of code being written sensibly.

Well, you can't really rely on my imagination, because i can still say the same about the `SymbolConjured` examples. I'm really curious how did this originally look, i.e. even if the user knows that a certain function always returns the same container, why would they call it twice? Was this happening in some sort of loop? Is there a more realistic test case that we can add?

Anyway, let's add a huge comment that explains why `SymbolConjured`s are special and commit. I mean, this definitely deserves a comment :)


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