================
@@ -175,9 +179,66 @@ class LifetimeChecker {
FinalWarningsMap[ExpiredLoan] = {/*ExpiryLoc=*/EF->getExpiryLoc(),
/*BestCausingFact=*/BestCausingFact,
/*MovedExpr=*/MovedExpr,
+ /*InvalidatedByExpr=*/nullptr,
/*ConfidenceLevel=*/CurConfidence};
}
+ // TODO: Doc.
+ void checkInvalidation(const InvalidateOriginFact *IOF) {
+ OriginID InvalidatedOrigin = IOF->getInvalidatedOrigin();
+ /// Get loans directly pointing to the invalidated container
+ LoanSet DirectlyInvalidatedLoans =
+ LoanPropagation.getLoans(InvalidatedOrigin, IOF);
+ llvm::DenseSet<LoanID> AllInvalidatedLoans;
+
+ auto GetAccessPath = [](const Loan *L) -> AccessPath {
+ if (auto *PL = dyn_cast<PathLoan>(L))
+ return PL->getAccessPath();
+ // TODO: Handle place holder loans.
----------------
Xazax-hun wrote:
Nit: todo.
https://github.com/llvm/llvm-project/pull/179093
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits