================ @@ -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