aboutsummaryrefslogtreecommitdiff
path: root/lib/VMCore/SymbolTable.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/VMCore/SymbolTable.cpp')
-rw-r--r--lib/VMCore/SymbolTable.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/lib/VMCore/SymbolTable.cpp b/lib/VMCore/SymbolTable.cpp
index db46607718..a4a0134f89 100644
--- a/lib/VMCore/SymbolTable.cpp
+++ b/lib/VMCore/SymbolTable.cpp
@@ -252,9 +252,8 @@ void SymbolTable::insertEntry(const std::string &Name, const Type *VTy,
std::string UniqueName = getUniqueName(VTy, Name);
assert(InternallyInconsistent == false &&
"Infinite loop inserting value!");
- InternallyInconsistent = true;
- V->setName(UniqueName);
- InternallyInconsistent = false;
+ V->Name = UniqueName;
+ VM->insert(VI, make_pair(UniqueName, V));
return;
}
}
@@ -382,11 +381,10 @@ void SymbolTable::refineAbstractType(const DerivedType *OldType,
//
assert(InternallyInconsistent == false &&
"Symbol table already inconsistent!");
- InternallyInconsistent = true;
- // Remove newM from the symtab
- NewGV->setName("");
- InternallyInconsistent = false;
+ // Update NewGV's name, we're about the remove it from the symbol
+ // table.
+ NewGV->Name = "";
// Now we can remove this global from the module entirely...
Module *M = NewGV->getParent();