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
This commit is contained in:
Devang Patel
2006-09-06 00:45:52 +00:00
parent 2681023488
commit ed872865d0

View File

@ -147,6 +147,7 @@ LinkTimeOptimizer::readLLVMObjectFile(const std::string &InputFilename,
LLVMSymbol *newSymbol = new LLVMSymbol(lt, v, v->getName(), LLVMSymbol *newSymbol = new LLVMSymbol(lt, v, v->getName(),
mangler.getValueName(v)); mangler.getValueName(v));
symbols[newSymbol->getMangledName()] = newSymbol; symbols[newSymbol->getMangledName()] = newSymbol;
allSymbols[newSymbol->getMangledName()] = newSymbol;
for (unsigned count = 0, total = v->getNumOperands(); for (unsigned count = 0, total = v->getNumOperands();
count != total; ++count) count != total; ++count)
@ -291,8 +292,9 @@ LinkTimeOptimizer::optimizeModules(const std::string &OutputFilename,
// seen by linker. // seen by linker.
for (unsigned i = 0, e = exportList.size(); i != e; ++i) { for (unsigned i = 0, e = exportList.size(); i != e; ++i) {
const char *name = exportList[i]; const char *name = exportList[i];
if (strlen(name) > 2 && name[0] == '_') NameToSymbolMap::iterator itr = allSymbols.find(name);
exportList[i] = &name[1]; if (itr != allSymbols.end())
exportList[i] = allSymbols[name]->getName();
} }
sys::Path tmpAsmFilePath("/tmp/"); sys::Path tmpAsmFilePath("/tmp/");