From cb6d70c6e0886756e74cac859c4fa4f3c3c6ae01 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 6 May 2002 02:59:34 +0000 Subject: [PATCH] Implement two iterator remove method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2467 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/VMCore/ValueHolderImpl.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lib/VMCore/ValueHolderImpl.h b/lib/VMCore/ValueHolderImpl.h index 3eb7e754569..3f20a173e91 100644 --- a/lib/VMCore/ValueHolderImpl.h +++ b/lib/VMCore/ValueHolderImpl.h @@ -96,6 +96,23 @@ ValueSubclass *ValueHolder return i; } + +template +void ValueHolder +::remove(iterator S, iterator E) { + for (iterator I = S; I != E; ++I) { + ValueSubclass *i = *I; + i->setParent(0); // I don't own you anymore... byebye... + + // You don't get to be in the symbol table anymore... byebye + if (i->hasName() && Parent) + Parent->getSymbolTable()->remove(i); + } + + ValueList.erase(S, E); +} + + template ValueSubclass *ValueHolder ::replaceWith(iterator &DI, ValueSubclass *NewVal) {