vsavchenko added inline comments.
================ Comment at: clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountDiagnostics.cpp:953-957 + // Let's traverse... + for (const ExplodedNode *N = ExprNode; + // ...all the nodes corresponding to the given expression... + N != nullptr && N->getStmtForDiagnostics() == E; + N = N->getFirstPred()) { ---------------- NoQ wrote: > I guess this part should ultimately be written in one place, eg. > `ExplodedNode::findTag()` or something like that. > > I'd also really like to explore the possibility to further limit the variety > of nodes traversed here. What nodes are typically traversed here? Is it > checker-tagged nodes or is it purge dead symbol nodes or something else? Yes, `ExplodedNode::findTag()` sounds like a great idea! I mean it is hard to tell without calculating statistics right here and running it on a bunch of projects. However, it is always possible to write the code that will have it the other way. My take on it is that it is probably a mix of things. I'd also prefer to traverse less, do you have any specific ideas here? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D104136/new/ https://reviews.llvm.org/D104136 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits