Charusso marked an inline comment as done. Charusso added inline comments.
================ Comment at: clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp:835-842 // First, find when we processed the statement. do { if (auto CEE = Node->getLocationAs<CallExitEnd>()) if (CEE->getCalleeContext()->getCallSite() == S) break; - if (auto SP = Node->getLocationAs<StmtPoint>()) - if (SP->getStmt() == S) - break; Node = Node->getFirstPred(); ---------------- Charusso wrote: > NoQ wrote: > > This iteration may now take us straight to the root of the graph. I don't > > think it's supposed to be that slow; i think it's supposed to only skip > > within maybe a full-expression at most. > > > > Which statements in the AST are getting peeled off here that weren't > > before? Which statements are supposed to get peeled off? > > > > Might it be that we should simply add one more case to `peelOffOuterExpr()` > > or something like that? > We have the following sequence in the loop: > > ``` > "stmt_kind": "DeclStmt", "stmt_point_kind": "PostStmt" > "stmt_kind": "DeclStmt", "stmt_point_kind": "PostStore" > "stmt_kind": "DeclStmt", "stmt_point_kind": "PreStmtPurgeDeadSymbols" > "pretty": "S *s = new S [10];" > > "stmt_kind": "CXXNewExpr", "stmt_point_kind": "PostStmt" > "stmt_kind": "CXXNewExpr", "stmt_point_kind": "PreStmtPurgeDeadSymbols" > "pretty": "new S [10]" > > "stmt_kind": "CXXConstructExpr", "stmt_point_kind": "PostStmt" > "stmt_kind": "CXXConstructExpr", "stmt_point_kind": "PreStmt" > "stmt_kind": "CXXConstructExpr", "stmt_point_kind": "PreStmtPurgeDeadSymbols" > "pretty": null > > "kind": "CallExitEnd" - found the ReturnStmt, all good. > ``` > > This ReturnVisitor is totally ProgramPoint-based and I wanted to be super > generic. Do you know about more problematic constructing-object? Btw: this cool dump based on D62946 CHANGES SINCE LAST ACTION https://reviews.llvm.org/D62926/new/ https://reviews.llvm.org/D62926 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits