mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-28 06:00:28 +00:00
getLoadName is only implemented for ELF, make it ELF only.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215219 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
015f57679d
commit
0bd9423c27
@ -435,7 +435,6 @@ public:
|
||||
uint8_t getBytesInAddress() const override;
|
||||
StringRef getFileFormatName() const override;
|
||||
unsigned getArch() const override;
|
||||
StringRef getLoadName() const override;
|
||||
|
||||
import_directory_iterator import_directory_begin() const;
|
||||
import_directory_iterator import_directory_end() const;
|
||||
|
@ -201,7 +201,7 @@ public:
|
||||
uint8_t getBytesInAddress() const override;
|
||||
StringRef getFileFormatName() const override;
|
||||
unsigned getArch() const override;
|
||||
StringRef getLoadName() const override;
|
||||
StringRef getLoadName() const;
|
||||
|
||||
std::error_code getPlatformFlags(unsigned &Result) const override {
|
||||
Result = EF.getHeader()->e_flags;
|
||||
|
@ -146,8 +146,6 @@ public:
|
||||
StringRef getFileFormatName() const override;
|
||||
unsigned getArch() const override;
|
||||
|
||||
StringRef getLoadName() const override;
|
||||
|
||||
relocation_iterator section_rel_begin(unsigned Index) const;
|
||||
relocation_iterator section_rel_end(unsigned Index) const;
|
||||
|
||||
|
@ -330,11 +330,6 @@ public:
|
||||
virtual StringRef getFileFormatName() const = 0;
|
||||
virtual /* Triple::ArchType */ unsigned getArch() const = 0;
|
||||
|
||||
/// For shared objects, returns the name which this object should be
|
||||
/// loaded from at runtime. This corresponds to DT_SONAME on ELF and
|
||||
/// LC_ID_DYLIB (install name) on MachO.
|
||||
virtual StringRef getLoadName() const = 0;
|
||||
|
||||
/// Returns platform-specific object flags, if any.
|
||||
virtual std::error_code getPlatformFlags(unsigned &Result) const {
|
||||
Result = 0;
|
||||
|
@ -620,11 +620,6 @@ library_iterator COFFObjectFile::needed_library_end() const {
|
||||
report_fatal_error("Libraries needed unimplemented in COFFObjectFile");
|
||||
}
|
||||
|
||||
StringRef COFFObjectFile::getLoadName() const {
|
||||
// COFF does not have this field.
|
||||
return "";
|
||||
}
|
||||
|
||||
import_directory_iterator COFFObjectFile::import_directory_begin() const {
|
||||
return import_directory_iterator(
|
||||
ImportDirectoryEntryRef(ImportDirectory, 0, this));
|
||||
|
@ -1410,11 +1410,6 @@ unsigned MachOObjectFile::getArch() const {
|
||||
return getArch(getCPUType(this));
|
||||
}
|
||||
|
||||
StringRef MachOObjectFile::getLoadName() const {
|
||||
// TODO: Implement
|
||||
report_fatal_error("get_load_name() unimplemented in MachOObjectFile");
|
||||
}
|
||||
|
||||
relocation_iterator MachOObjectFile::section_rel_begin(unsigned Index) const {
|
||||
DataRefImpl DRI;
|
||||
DRI.d.a = Index;
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include "ObjDumper.h"
|
||||
#include "StreamWriter.h"
|
||||
#include "llvm/Object/Archive.h"
|
||||
#include "llvm/Object/ELFObjectFile.h"
|
||||
#include "llvm/Object/ObjectFile.h"
|
||||
#include "llvm/Support/Casting.h"
|
||||
#include "llvm/Support/CommandLine.h"
|
||||
@ -210,6 +211,17 @@ static std::error_code createDumper(const ObjectFile *Obj, StreamWriter &Writer,
|
||||
return readobj_error::unsupported_obj_file_format;
|
||||
}
|
||||
|
||||
static StringRef getLoadName(const ObjectFile *Obj) {
|
||||
if (auto *ELF = dyn_cast<ELF32LEObjectFile>(Obj))
|
||||
return ELF->getLoadName();
|
||||
if (auto *ELF = dyn_cast<ELF64LEObjectFile>(Obj))
|
||||
return ELF->getLoadName();
|
||||
if (auto *ELF = dyn_cast<ELF32BEObjectFile>(Obj))
|
||||
return ELF->getLoadName();
|
||||
if (auto *ELF = dyn_cast<ELF64BEObjectFile>(Obj))
|
||||
return ELF->getLoadName();
|
||||
llvm_unreachable("Not ELF");
|
||||
}
|
||||
|
||||
/// @brief Dumps the specified object file.
|
||||
static void dumpObject(const ObjectFile *Obj) {
|
||||
@ -228,7 +240,7 @@ static void dumpObject(const ObjectFile *Obj) {
|
||||
<< "\n";
|
||||
outs() << "AddressSize: " << (8*Obj->getBytesInAddress()) << "bit\n";
|
||||
if (Obj->isELF())
|
||||
outs() << "LoadName: " << Obj->getLoadName() << "\n";
|
||||
outs() << "LoadName: " << getLoadName(Obj) << "\n";
|
||||
|
||||
if (opts::FileHeaders)
|
||||
Dumper->printFileHeaders();
|
||||
|
Loading…
Reference in New Issue
Block a user