Remove memory corruption bug. string.c_str() was returning a temporary that was

dead before we used it.

llvm-svn: 77304
This commit is contained in:
Nick Lewycky 2009-07-28 06:53:50 +00:00
parent 8945266f3d
commit 1b329eb2bf
1 changed files with 2 additions and 2 deletions

View File

@ -409,7 +409,7 @@ void LTOModule::addPotentialUndefinedSymbol(GlobalValue* decl, Mangler &mangler)
if (isa<GlobalAlias>(decl))
return;
const char* name = mangler.getMangledName(decl).c_str();
std::string name = mangler.getMangledName(decl);
// we already have the symbol
if (_undefines.find(name) != _undefines.end())
@ -417,7 +417,7 @@ void LTOModule::addPotentialUndefinedSymbol(GlobalValue* decl, Mangler &mangler)
NameAndAttributes info;
// string is owned by _undefines
info.name = ::strdup(name);
info.name = ::strdup(name.c_str());
if (decl->hasExternalWeakLinkage())
info.attributes = LTO_SYMBOL_DEFINITION_WEAKUNDEF;
else