diff options
| author | Rui Ueyama <ruiu@google.com> | 2016-07-07 23:04:15 +0000 | 
|---|---|---|
| committer | Rui Ueyama <ruiu@google.com> | 2016-07-07 23:04:15 +0000 | 
| commit | f4d9338dfb60f7eb4c59b85409bcd3cc69b0becc (patch) | |
| tree | 3f1b163758c2d2df53aff6c2781bddd48c24f173 /lld/ELF/SymbolTable.cpp | |
| parent | 580d7a1b1ea827fc9b2f170855e0b830659aa456 (diff) | |
| download | bcm5719-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.cpp | 8 | 
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) { | 

