From: Nuno Lopes Date: Sun, 14 Dec 2008 17:27:25 +0000 (+0000) Subject: fix leakage of CXXSpecialName objects in DeclarationNameTable X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6d34ae5370a41268cc7c39b05e287cab1786fa8e;p=clang fix leakage of CXXSpecialName objects in DeclarationNameTable git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61007 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/AST/DeclarationName.cpp b/lib/AST/DeclarationName.cpp index af983feed1..9ef938c06c 100644 --- a/lib/AST/DeclarationName.cpp +++ b/lib/AST/DeclarationName.cpp @@ -259,7 +259,16 @@ DeclarationNameTable::DeclarationNameTable() { } DeclarationNameTable::~DeclarationNameTable() { - delete static_cast*>(CXXSpecialNamesImpl); + llvm::FoldingSet *set = + static_cast*>(CXXSpecialNamesImpl); + llvm::FoldingSetIterator it = set->begin(); + + while (it != set->end()) { + CXXSpecialName *n = &*it++; + delete n; + } + + delete set; delete [] CXXOperatorNames; }