From db1e9981b829ba57651dd8e13c0a960fde773209 Mon Sep 17 00:00:00 2001 From: Nick Lewycky Date: Tue, 28 Jul 2009 06:53:50 +0000 Subject: [PATCH] Remove memory corruption bug. string.c_str() was returning a temporary that was dead before we used it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77304 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/lto/LTOModule.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/lto/LTOModule.cpp b/tools/lto/LTOModule.cpp index cbccfbb9b69..4a2c5ad1dc3 100644 --- a/tools/lto/LTOModule.cpp +++ b/tools/lto/LTOModule.cpp @@ -409,7 +409,7 @@ void LTOModule::addPotentialUndefinedSymbol(GlobalValue* decl, Mangler &mangler) if (isa(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