[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