Author: Yitzhak Mandelbaum
Date: 2025-08-20T13:36:42-04:00
New Revision: 2be52f309e729cb315b9b60efbdb8e5c3f579905

URL: 
https://github.com/llvm/llvm-project/commit/2be52f309e729cb315b9b60efbdb8e5c3f579905
DIFF: 
https://github.com/llvm/llvm-project/commit/2be52f309e729cb315b9b60efbdb8e5c3f579905.diff

LOG: [clang][dataflow] Fix uninitialized memory bug. (#154575)

Commit #3ecfc03 introduced a bug involving an uninitialized field in
`exportLogicalContext`. This patch initializes the field properly.

Added: 
    

Modified: 
    clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp

Removed: 
    


################################################################################
diff  --git a/clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp 
b/clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
index 06a88784a6f94..4196d6821c184 100644
--- a/clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
+++ b/clang/lib/Analysis/FlowSensitive/DataflowAnalysisContext.cpp
@@ -285,10 +285,10 @@ SimpleLogicalContext 
DataflowAnalysisContext::exportLogicalContext(
     llvm::DenseSet<dataflow::Atom> TargetTokens) const {
   SimpleLogicalContext LC;
 
-  if (Invariant != nullptr) {
-    LC.Invariant = Invariant;
+  // Copy `Invariant` even if it is null, to initialize the field.
+  LC.Invariant = Invariant;
+  if (Invariant != nullptr)
     getReferencedAtoms(*Invariant, TargetTokens);
-  }
 
   llvm::DenseSet<dataflow::Atom> Dependencies =
       collectDependencies(std::move(TargetTokens));


        
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to