diff options
Diffstat (limited to 'lib/AST/DeclarationName.cpp')
-rw-r--r-- | lib/AST/DeclarationName.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
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<llvm::FoldingSet<CXXSpecialName>*>(CXXSpecialNamesImpl); + llvm::FoldingSet<CXXSpecialName> *set = + static_cast<llvm::FoldingSet<CXXSpecialName>*>(CXXSpecialNamesImpl); + llvm::FoldingSetIterator<CXXSpecialName> it = set->begin(); + + while (it != set->end()) { + CXXSpecialName *n = &*it++; + delete n; + } + + delete set; delete [] CXXOperatorNames; } |