From ed872865d0316ec754d93f703dd39f21745e45ca Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Wed, 6 Sep 2006 00:45:52 +0000 Subject: [PATCH] Instead of demangling symbol name by hand, use original name, which was used to mangle symbol name, directly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30124 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/lto/lto.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/lto/lto.cpp b/tools/lto/lto.cpp index df9634e5a2a..e49364e6320 100644 --- a/tools/lto/lto.cpp +++ b/tools/lto/lto.cpp @@ -147,6 +147,7 @@ LinkTimeOptimizer::readLLVMObjectFile(const std::string &InputFilename, LLVMSymbol *newSymbol = new LLVMSymbol(lt, v, v->getName(), mangler.getValueName(v)); symbols[newSymbol->getMangledName()] = newSymbol; + allSymbols[newSymbol->getMangledName()] = newSymbol; for (unsigned count = 0, total = v->getNumOperands(); count != total; ++count) @@ -291,8 +292,9 @@ LinkTimeOptimizer::optimizeModules(const std::string &OutputFilename, // seen by linker. for (unsigned i = 0, e = exportList.size(); i != e; ++i) { const char *name = exportList[i]; - if (strlen(name) > 2 && name[0] == '_') - exportList[i] = &name[1]; + NameToSymbolMap::iterator itr = allSymbols.find(name); + if (itr != allSymbols.end()) + exportList[i] = allSymbols[name]->getName(); } sys::Path tmpAsmFilePath("/tmp/");