[llvm-branch-commits] [clang] [LifetimeSafety] Disable canonicalization in immutable collections (PR #159850)
Utkarsh Saxena via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Fri Sep 19 15:20:48 PDT 2025
https://github.com/usx95 updated https://github.com/llvm/llvm-project/pull/159850
>From 0775d9ec1d9dffb1b2e29f28d986384660ae77d2 Mon Sep 17 00:00:00 2001
From: Utkarsh Saxena <usx at google.com>
Date: Fri, 19 Sep 2025 21:30:46 +0000
Subject: [PATCH] no-canonicalize
---
clang/lib/Analysis/LifetimeSafety.cpp | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/clang/lib/Analysis/LifetimeSafety.cpp b/clang/lib/Analysis/LifetimeSafety.cpp
index 0dd5716d93fb6..da4af42853e55 100644
--- a/clang/lib/Analysis/LifetimeSafety.cpp
+++ b/clang/lib/Analysis/LifetimeSafety.cpp
@@ -966,9 +966,13 @@ using ExpiredLoanMap = llvm::ImmutableMap<LoanID, const ExpireFact *>;
/// An object to hold the factories for immutable collections, ensuring
/// that all created states share the same underlying memory management.
struct LifetimeFactory {
- OriginLoanMap::Factory OriginMapFactory;
- LoanSet::Factory LoanSetFactory;
- ExpiredLoanMap::Factory ExpiredLoanMapFactory;
+ llvm::BumpPtrAllocator Allocator;
+ OriginLoanMap::Factory OriginMapFactory =
+ OriginLoanMap::Factory(Allocator, /*canonicalize=*/false);
+ LoanSet::Factory LoanSetFactory =
+ LoanSet::Factory(Allocator, /*canonicalize=*/false);
+ ExpiredLoanMap::Factory ExpiredLoanMapFactory =
+ ExpiredLoanMap::Factory(Allocator, /*canonicalize=*/false);
};
/// Represents the dataflow lattice for loan propagation.
More information about the llvm-branch-commits
mailing list