[PATCH] D27710: [analyzer] Prohibit ExplodedGraph's edges duplicating

2017-02-09 Thread Ilya Palachev via Phabricator via cfe-commits
ilya-palachev abandoned this revision. ilya-palachev added a comment. Ok, then, if you see no problem in dual edges, I'm abandoning this revision. Repository: rL LLVM https://reviews.llvm.org/D27710 ___ cfe-commits mailing list cfe-commits@lists.

[PATCH] D27710: [analyzer] Prohibit ExplodedGraph's edges duplicating

2017-01-20 Thread Artem Dergachev via Phabricator via cfe-commits
NoQ added a comment. In https://reviews.llvm.org/D27710#650396, @ilya-palachev wrote: > I don't understand why the following test passes, because each of two > checkers: `MallocChecker` and `SimpleStreamChecker` are using > `generateNonFatalErrorNode` method: That's because error nodes gene

[PATCH] D27710: [analyzer] Prohibit ExplodedGraph's edges duplicating

2017-01-19 Thread Ilya Palachev via Phabricator via cfe-commits
ilya-palachev added a comment. Thanks for review! > As Artem points out, the checkers in tree do not create a node for every bug > reported - there is no reason to do that. Yes... But why does `generateNonFatalErrorNode` return `nullptr` in case when the node already exists? Isn't it designed

[PATCH] D27710: [analyzer] Prohibit ExplodedGraph's edges duplicating

2016-12-21 Thread Anna Zaks via Phabricator via cfe-commits
zaks.anna added a comment. If this is a common mistake for checker writers, we could consider adding assertions that check for this situation. We should make sure that we do not to add any release builds overhead. Maybe we could put this check behind NDEBUG or ensure that whatever code is added

[PATCH] D27710: [analyzer] Prohibit ExplodedGraph's edges duplicating

2016-12-21 Thread Artem Dergachev via Phabricator via cfe-commits
NoQ added a comment. I think `MallocChecker` should be (or should have been) affected by the problem you describe, so we can use it as an example. In https://reviews.llvm.org/D27710#628939, @zaks.anna wrote: > Do we support attaching multiple bug reports to the same node? That's what `MallocC

[PATCH] D27710: [analyzer] Prohibit ExplodedGraph's edges duplicating

2016-12-21 Thread Anna Zaks via Phabricator via cfe-commits
zaks.anna added a comment. To deal with non-determinism, you can sort the results by non-pointer values, such as identifiers, before producing the warnings. It is not clear if you want to print all warnings or only the first one. Is it an option to list all dead symbols in one warning message?

[PATCH] D27710: [analyzer] Prohibit ExplodedGraph's edges duplicating

2016-12-21 Thread Ilya Palachev via Phabricator via cfe-commits
ilya-palachev added a comment. In https://reviews.llvm.org/D27710#628069, @zaks.anna wrote: > Are there any negative effects from having the duplicates in edges? Yes, you're right; in current implementation there seems to be no negative effects from this, since duplicate edges are quite rare,

[PATCH] D27710: [analyzer] Prohibit ExplodedGraph's edges duplicating

2016-12-20 Thread Anna Zaks via Phabricator via cfe-commits
zaks.anna added a comment. Are there any negative effects from having the duplicates in edges? When does this occur? It's a bit suspicious since we have a FromN, and a path is split at that node, resulting in successors that are the same. Is it possible that whoever split the state did not enco

[PATCH] D27710: [analyzer] Prohibit ExplodedGraph's edges duplicating

2016-12-20 Thread Gábor Horváth via Phabricator via cfe-commits
xazax.hun added inline comments. Comment at: lib/StaticAnalyzer/Core/CoreEngine.cpp:662 + bool EdgeExists = false; + for (auto I = N->pred_begin(), E = N->pred_end(); I != E; ++I) +if (*I == FromN) { I prefer having the braces written in this case, but it i

[PATCH] D27710: [analyzer] Prohibit ExplodedGraph's edges duplicating

2016-12-13 Thread Ilya Palachev via Phabricator via cfe-commits
ilya-palachev removed rL LLVM as the repository for this revision. ilya-palachev updated this revision to Diff 81221. ilya-palachev added a comment. Fixed a typo https://reviews.llvm.org/D27710 Files: lib/StaticAnalyzer/Core/CoreEngine.cpp lib/StaticAnalyzer/Core/ExplodedGraph.cpp Index:

[PATCH] D27710: [analyzer] Prohibit ExplodedGraph's edges duplicating

2016-12-13 Thread Ilya Palachev via Phabricator via cfe-commits
ilya-palachev created this revision. ilya-palachev added reviewers: NoQ, zaks.anna, dcoughlin. ilya-palachev added subscribers: cfe-commits, a.sidorin, ilya-palachev. ilya-palachev set the repository for this revision to rL LLVM. Current implementation doesn't take care about the duplicates in edg