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/Symbols.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/Symbols.cpp')
| -rw-r--r-- | lld/ELF/Symbols.cpp | 31 | 
1 files changed, 0 insertions, 31 deletions
| diff --git a/lld/ELF/Symbols.cpp b/lld/ELF/Symbols.cpp index 78786980db6..3e96b917719 100644 --- a/lld/ELF/Symbols.cpp +++ b/lld/ELF/Symbols.cpp @@ -15,11 +15,6 @@  #include "Target.h"  #include "llvm/ADT/STLExtras.h" -#include "llvm/Config/config.h" - -#ifdef HAVE_CXXABI_H -#include <cxxabi.h> -#endif  using namespace llvm;  using namespace llvm::object; @@ -249,32 +244,6 @@ std::unique_ptr<InputFile> LazyObject::getFile() {    return createObjectFile(MBRef);  } -// Returns the demangled C++ symbol name for Name. -std::string elf::demangle(StringRef Name) { -#if !defined(HAVE_CXXABI_H) -  return Name; -#else -  if (!Config->Demangle) -    return Name; - -  // __cxa_demangle can be used to demangle strings other than symbol -  // names which do not necessarily start with "_Z". Name can be -  // either a C or C++ symbol. Don't call __cxa_demangle if the name -  // does not look like a C++ symbol name to avoid getting unexpected -  // result for a C symbol that happens to match a mangled type name. -  if (!Name.startswith("_Z")) -    return Name; - -  char *Buf = -      abi::__cxa_demangle(Name.str().c_str(), nullptr, nullptr, nullptr); -  if (!Buf) -    return Name; -  std::string S(Buf); -  free(Buf); -  return S; -#endif -} -  bool Symbol::includeInDynsym() const {    if (Visibility != STV_DEFAULT && Visibility != STV_PROTECTED)      return false; | 

