[clang] [analyzer] Avoid out-of-order node traversal on void return (PR #117863)

Gábor Horváth via cfe-commits cfe-commits at lists.llvm.org
Wed Nov 27 03:25:09 PST 2024


================
@@ -278,7 +278,9 @@ class ExplodedNode : public llvm::FoldingSetNode {
   /// Useful for explaining control flow that follows the current node.
   /// If the statement belongs to a body-farmed definition, retrieve the
   /// call site for that definition.
-  const Stmt *getNextStmtForDiagnostics() const;
+  /// If skipPurge is true, skip the purge-dead-symbols nodes (that are often
+  /// inserted out-of-order by the endinge).
+  const Stmt *getNextStmtForDiagnostics(bool skipPurge) const;
----------------
Xazax-hun wrote:

What would happen if we always skipped `purge-dead-symbol` nodes? I wonder if we in general want to tie diagnostics to constructs written by the users instead of artificial constructs that we inserted as implementation details of the analysis. 

https://github.com/llvm/llvm-project/pull/117863


More information about the cfe-commits mailing list