================
@@ -723,17 +772,14 @@ join(llvm::ImmutableMap<K, V> A, llvm::ImmutableMap<K, V> 
B,
 // ========================================================================= //
 
 using OriginLoanMap = llvm::ImmutableMap<OriginID, LoanSet>;
+using ExpiredLoanMap = llvm::ImmutableMap<LoanID, const ExpireFact *>;
----------------
Xazax-hun wrote:

I am wondering if we could have multiple `ExpireFact`s for the same loan. E.g.:
```
{
  int a;
  int *p = &a;
  if (cond) return p;
  return q;
}
```

Here, because we have multiple returns, the loan might expire at multiple 
locations. How do we pick which one do we store in the state?

I wonder if we want some heuristics in the future. Also, if we pick randomly, 
could the analysis result be non-deterministic?

https://github.com/llvm/llvm-project/pull/149731
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to