summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/DeclarationName.cpp
diff options
context:
space:
mode:
authorNuno Lopes <nunoplopes@sapo.pt>2008-12-14 21:53:25 +0000
committerNuno Lopes <nunoplopes@sapo.pt>2008-12-14 21:53:25 +0000
commit3167976f77dcd3543de46dbeed666355608ce426 (patch)
tree2695692bf148cb34f19a33af6d3ef71ffec02f67 /clang/lib/AST/DeclarationName.cpp
parenta66e9f4218305314b3fd60e0dd8ecd54c92e3c88 (diff)
downloadbcm5719-llvm-3167976f77dcd3543de46dbeed666355608ce426.tar.gz
bcm5719-llvm-3167976f77dcd3543de46dbeed666355608ce426.zip
dont call iterator::end() on every cycle and dont read already-deleted memory
llvm-svn: 61015
Diffstat (limited to 'clang/lib/AST/DeclarationName.cpp')
-rw-r--r--clang/lib/AST/DeclarationName.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/clang/lib/AST/DeclarationName.cpp b/clang/lib/AST/DeclarationName.cpp
index 9535965ecf7..044acd71d48 100644
--- a/clang/lib/AST/DeclarationName.cpp
+++ b/clang/lib/AST/DeclarationName.cpp
@@ -261,10 +261,11 @@ DeclarationNameTable::DeclarationNameTable() {
DeclarationNameTable::~DeclarationNameTable() {
llvm::FoldingSet<CXXSpecialName> *set =
static_cast<llvm::FoldingSet<CXXSpecialName>*>(CXXSpecialNamesImpl);
- llvm::FoldingSetIterator<CXXSpecialName> it = set->begin();
+ llvm::FoldingSetIterator<CXXSpecialName> I = set->begin(), E = set->end();
- while (it != set->end()) {
- delete &*it++;
+ while (I != E) {
+ CXXSpecialName *n = &*I++;
+ delete n;
}
delete set;
OpenPOWER on IntegriCloud