aboutsummaryrefslogtreecommitdiffstats
path: root/lib/VMCore
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-04-29 21:23:30 +0000
committerChris Lattner <sabre@nondot.org>2002-04-29 21:23:30 +0000
commitea1e8c70ebc6e7e5777e42aff112f7ca872295ce (patch)
tree1c4665299c3615f13dfa48fd204ee3f3e6aef3f1 /lib/VMCore
parent91b078dd541b683957a5e449d2c68284c86bbe46 (diff)
downloadexternal_llvm-ea1e8c70ebc6e7e5777e42aff112f7ca872295ce.zip
external_llvm-ea1e8c70ebc6e7e5777e42aff112f7ca872295ce.tar.gz
external_llvm-ea1e8c70ebc6e7e5777e42aff112f7ca872295ce.tar.bz2
Make the range insert operation return an iterator, even though the STL
range insert doesn't git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2413 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore')
-rw-r--r--lib/VMCore/ValueHolderImpl.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/lib/VMCore/ValueHolderImpl.h b/lib/VMCore/ValueHolderImpl.h
index cbc3e5f..3eb7e75 100644
--- a/lib/VMCore/ValueHolderImpl.h
+++ b/lib/VMCore/ValueHolderImpl.h
@@ -172,12 +172,18 @@ ValueHolder<ValueSubclass,ItemParentType,SymTabType>
// to be used... is this ok?
//
template<class ValueSubclass, class ItemParentType, class SymTabType>
-void ValueHolder<ValueSubclass,ItemParentType,SymTabType>
-::insert(iterator Pos, // Where to insert
+ValueHolder<ValueSubclass,ItemParentType,SymTabType>::iterator
+ValueHolder<ValueSubclass,ItemParentType,SymTabType>
+::insert(iterator Pos, // Where to insert
iterator First, iterator Last) { // Vector to read insts from
+ // Since the vector range insert operation doesn't return an updated iterator,
+ // we have to convert the iterator to and index and back to assure that it
+ // cannot get invalidated. Gross hack, but effective.
+ //
+ unsigned Offset = Pos-begin();
+
// Check to make sure that the values are not already in some valueholder...
-
for (iterator X = First; X != Last; ++X) {
assert((*X)->getParent() == 0 &&
"Cannot insert into valueholder, value already has a parent!");
@@ -192,6 +198,8 @@ void ValueHolder<ValueSubclass,ItemParentType,SymTabType>
for (;First != Last; ++First)
if ((*First)->hasName())
Parent->getSymbolTableSure()->insert(*First);
+
+ return begin()+Offset;
}
#endif