summaryrefslogtreecommitdiffstats
path: root/lld/ELF/SymbolTable.cpp
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2016-07-07 23:04:15 +0000
committerRui Ueyama <ruiu@google.com>2016-07-07 23:04:15 +0000
commitf4d9338dfb60f7eb4c59b85409bcd3cc69b0becc (patch)
tree3f1b163758c2d2df53aff6c2781bddd48c24f173 /lld/ELF/SymbolTable.cpp
parent580d7a1b1ea827fc9b2f170855e0b830659aa456 (diff)
downloadbcm5719-llvm-f4d9338dfb60f7eb4c59b85409bcd3cc69b0becc.tar.gz
bcm5719-llvm-f4d9338dfb60f7eb4c59b85409bcd3cc69b0becc.zip
Move demangle() from Symbols.cpp to Strings.cpp.
Symbols.cpp contains functions to handle ELF symbols. demangle() function is essentially a function to work on a string rather than on an ELF symbol. So Strings.cpp is a better place to put that function. This change also make demangle to demangle symbols unconditionally. Previously, it demangled symbols only when Config->Demangle is true. llvm-svn: 274804
Diffstat (limited to 'lld/ELF/SymbolTable.cpp')
-rw-r--r--lld/ELF/SymbolTable.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/lld/ELF/SymbolTable.cpp b/lld/ELF/SymbolTable.cpp
index 2feb1a9b12f..a0ebb0257c5 100644
--- a/lld/ELF/SymbolTable.cpp
+++ b/lld/ELF/SymbolTable.cpp
@@ -242,9 +242,11 @@ SymbolTable<ELFT>::insert(StringRef Name, uint8_t Type, uint8_t Visibility,
template <typename ELFT>
std::string SymbolTable<ELFT>::conflictMsg(SymbolBody *Existing,
InputFile *NewFile) {
- StringRef Sym = Existing->getName();
- return demangle(Sym) + " in " + getFilename(Existing->getSourceFile<ELFT>()) +
- " and " + getFilename(NewFile);
+ std::string Sym = Existing->getName();
+ if (Config->Demangle)
+ Sym = demangle(Sym);
+ return Sym + " in " + getFilename(Existing->getSourceFile<ELFT>()) + " and " +
+ getFilename(NewFile);
}
template <class ELFT> Symbol *SymbolTable<ELFT>::addUndefined(StringRef Name) {
OpenPOWER on IntegriCloud