From 4a5d0d8704aa2860c0459a63adfdd415a451c4f1 Mon Sep 17 00:00:00 2001 From: Johannes Doerfert Date: Tue, 13 Dec 2022 22:57:55 -0800 Subject: [PATCH] [Attributor][FIX] Avoid memory leakage through InstExclusionSet --- llvm/include/llvm/Transforms/IPO/Attributor.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/llvm/include/llvm/Transforms/IPO/Attributor.h b/llvm/include/llvm/Transforms/IPO/Attributor.h index 3d622fd..f7c4300 100644 --- a/llvm/include/llvm/Transforms/IPO/Attributor.h +++ b/llvm/include/llvm/Transforms/IPO/Attributor.h @@ -1142,6 +1142,10 @@ struct InformationCache { // the destructor manually. for (auto &It : FuncInfoMap) It.getSecond()->~FunctionInfo(); + // Same is true for the instruction exclusions sets. + using AA::InstExclusionSetTy; + for (auto *BES : BESets) + BES->~InstExclusionSetTy(); } /// Apply \p CB to all uses of \p F. If \p LookThroughConstantExprUses is @@ -1338,7 +1342,7 @@ private: SetVector AssumeOnlyValues; /// Cache for block sets to allow reuse. - DenseSet BESets; + DenseSet BESets; /// Getters for analysis. AnalysisGetter &AG; -- 2.7.4