summaryrefslogtreecommitdiffstats
path: root/lld/ELF/Symbols.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/Symbols.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/Symbols.cpp')
-rw-r--r--lld/ELF/Symbols.cpp31
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;
OpenPOWER on IntegriCloud