RedDocMD added a comment. > Does the following test work?
@NoQ, it seems to be working. > So you're saying that simply by always tracking the (final) raw pointer value > and checking whether the raw value is interesting upon .get() you dodge the > communication problem entirely I would not say it has been dodged, but rather that problem had already been solved by `trackExpressionValue`. At line 1949 of BugReporterVisitors.cpp (inside the `trackExpressionValue` function) is: if (LVState->getAnalysisManager().getAnalyzerOptions().ShouldTrackConditions) report.addVisitor(std::make_unique<TrackControlDependencyCondBRVisitor>( InputNode)); Approximately, `TrackControlDependencyCondBRVisitor` is a visitor that looks into condition statements and via mutual recursion with `trackExpressionValue` marks SVal's as interesting if they are used in a condition and that condition constrains the `Expr` on which the visitor was originally called on. This gave me the idea that calling `trackExpressionValue` is all that we really need to do, since it already contains a visitor to discover the interestingness we need. Looking into this function made me feel that `trackExpressionValue` is actually a very powerful function which solves a lot of these communication problems. > Do i understand correctly that this doesn't happen anymore when you stopped > creating a new node? Yes, and I found out my blunder after staring at the exploded graph dump. Creating a new node was un-necessary since `trackExpressionValue` needs a node corresponding to the expression where we find the bug, and that was already being created above. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D97183/new/ https://reviews.llvm.org/D97183 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits