summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2015-07-20 22:41:44 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2015-07-20 22:41:44 +0000
commitaa62fc093c3e9b83040197ab36e932e8ae221c5d (patch)
tree26cb70236e39728262fa2e45d2f07bd4a899a8b7
parente536f4f6818280da0d403895314670bbbcba0fe7 (diff)
downloadbcm5719-llvm-aa62fc093c3e9b83040197ab36e932e8ae221c5d.tar.gz
bcm5719-llvm-aa62fc093c3e9b83040197ab36e932e8ae221c5d.zip
Remove duplicated code.
Both ELFObjectFile and ELFFile had an implementation of getLoadName. llvm-svn: 242725
-rw-r--r--llvm/include/llvm/Object/ELFObjectFile.h14
-rw-r--r--llvm/tools/llvm-readobj/llvm-readobj.cpp8
2 files changed, 4 insertions, 18 deletions
diff --git a/llvm/include/llvm/Object/ELFObjectFile.h b/llvm/include/llvm/Object/ELFObjectFile.h
index cd334d5e06f..2a870bdbca9 100644
--- a/llvm/include/llvm/Object/ELFObjectFile.h
+++ b/llvm/include/llvm/Object/ELFObjectFile.h
@@ -318,7 +318,6 @@ public:
uint8_t getBytesInAddress() const override;
StringRef getFileFormatName() const override;
unsigned getArch() const override;
- StringRef getLoadName() const;
std::error_code getPlatformFlags(unsigned &Result) const override {
Result = EF.getHeader()->e_flags;
@@ -780,19 +779,6 @@ section_iterator ELFObjectFile<ELFT>::section_end() const {
}
template <class ELFT>
-StringRef ELFObjectFile<ELFT>::getLoadName() const {
- const Elf_Dyn *DI = EF.dynamic_table_begin();
- const Elf_Dyn *DE = EF.dynamic_table_end();
-
- while (DI != DE && DI->getTag() != ELF::DT_SONAME)
- ++DI;
-
- if (DI != DE)
- return EF.getDynamicString(DI->getVal());
- return "";
-}
-
-template <class ELFT>
uint8_t ELFObjectFile<ELFT>::getBytesInAddress() const {
return ELFT::Is64Bits ? 8 : 4;
}
diff --git a/llvm/tools/llvm-readobj/llvm-readobj.cpp b/llvm/tools/llvm-readobj/llvm-readobj.cpp
index 3f03618bb22..28532d993f8 100644
--- a/llvm/tools/llvm-readobj/llvm-readobj.cpp
+++ b/llvm/tools/llvm-readobj/llvm-readobj.cpp
@@ -253,13 +253,13 @@ static std::error_code createDumper(const ObjectFile *Obj, StreamWriter &Writer,
static StringRef getLoadName(const ObjectFile *Obj) {
if (auto *ELF = dyn_cast<ELF32LEObjectFile>(Obj))
- return ELF->getLoadName();
+ return ELF->getELFFile()->getLoadName();
if (auto *ELF = dyn_cast<ELF64LEObjectFile>(Obj))
- return ELF->getLoadName();
+ return ELF->getELFFile()->getLoadName();
if (auto *ELF = dyn_cast<ELF32BEObjectFile>(Obj))
- return ELF->getLoadName();
+ return ELF->getELFFile()->getLoadName();
if (auto *ELF = dyn_cast<ELF64BEObjectFile>(Obj))
- return ELF->getLoadName();
+ return ELF->getELFFile()->getLoadName();
llvm_unreachable("Not ELF");
}
OpenPOWER on IntegriCloud