Fix a bug where calling materializeModule could corrupt the module, reading

multiple copies of the function into the Function*.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35831 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2007-04-09 20:28:40 +00:00
parent 5464b96073
commit 24e90d3c5b

View File

@ -1672,15 +1672,14 @@ bool BytecodeReader::ParseAllFunctionBodies(std::string* ErrMsg) {
return true;
}
LazyFunctionMap::iterator Fi = LazyFunctionLoadMap.begin();
LazyFunctionMap::iterator Fe = LazyFunctionLoadMap.end();
while (Fi != Fe) {
Function* Func = Fi->first;
BlockStart = At = Fi->second.Buf;
BlockEnd = Fi->second.EndBuf;
ParseFunctionBody(Func);
++Fi;
for (LazyFunctionMap::iterator I = LazyFunctionLoadMap.begin(),
E = LazyFunctionLoadMap.end(); I != E; ++I) {
Function *Func = I->first;
if (Func->hasNotBeenReadFromBytecode()) {
BlockStart = At = I->second.Buf;
BlockEnd = I->second.EndBuf;
ParseFunctionBody(Func);
}
}
return false;
}