mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
Reland "[llvm-objcopy] Refactor llvm-objcopy to use reader and writer objects"
Somehow I reverted changes I made in a previous Reland. This change re-relands unconfusing a varible name with a type name. llvm-svn: 323494
This commit is contained in:
parent
dc00796119
commit
106aa3e46d
@ -693,37 +693,37 @@ ELFReader::ELFReader(StringRef File) {
|
||||
auto BinaryOrErr = createBinary(File);
|
||||
if (!BinaryOrErr)
|
||||
reportError(File, BinaryOrErr.takeError());
|
||||
auto Bin = std::move(BinaryOrErr.get());
|
||||
std::tie(Binary, Data) = Bin.takeBinary();
|
||||
auto OwnedBin = std::move(BinaryOrErr.get());
|
||||
std::tie(Bin, Data) = OwnedBin.takeBinary();
|
||||
}
|
||||
|
||||
ElfType ELFReader::getElfType() const {
|
||||
if (isa<ELFObjectFile<ELF32LE>>(Binary.get()))
|
||||
if (isa<ELFObjectFile<ELF32LE>>(Bin.get()))
|
||||
return ELFT_ELF32LE;
|
||||
if (isa<ELFObjectFile<ELF64LE>>(Binary.get()))
|
||||
if (isa<ELFObjectFile<ELF64LE>>(Bin.get()))
|
||||
return ELFT_ELF64LE;
|
||||
if (isa<ELFObjectFile<ELF32BE>>(Binary.get()))
|
||||
if (isa<ELFObjectFile<ELF32BE>>(Bin.get()))
|
||||
return ELFT_ELF32BE;
|
||||
if (isa<ELFObjectFile<ELF64BE>>(Binary.get()))
|
||||
if (isa<ELFObjectFile<ELF64BE>>(Bin.get()))
|
||||
return ELFT_ELF64BE;
|
||||
llvm_unreachable("Invalid ELFType");
|
||||
}
|
||||
|
||||
std::unique_ptr<Object> ELFReader::create() const {
|
||||
auto Obj = llvm::make_unique<Object>(Data);
|
||||
if (auto *o = dyn_cast<ELFObjectFile<ELF32LE>>(Binary.get())) {
|
||||
if (auto *o = dyn_cast<ELFObjectFile<ELF32LE>>(Bin.get())) {
|
||||
ELFBuilder<ELF32LE> Builder(*o, *Obj);
|
||||
Builder.build();
|
||||
return Obj;
|
||||
} else if (auto *o = dyn_cast<ELFObjectFile<ELF64LE>>(Binary.get())) {
|
||||
} else if (auto *o = dyn_cast<ELFObjectFile<ELF64LE>>(Bin.get())) {
|
||||
ELFBuilder<ELF64LE> Builder(*o, *Obj);
|
||||
Builder.build();
|
||||
return Obj;
|
||||
} else if (auto *o = dyn_cast<ELFObjectFile<ELF32BE>>(Binary.get())) {
|
||||
} else if (auto *o = dyn_cast<ELFObjectFile<ELF32BE>>(Bin.get())) {
|
||||
ELFBuilder<ELF32BE> Builder(*o, *Obj);
|
||||
Builder.build();
|
||||
return Obj;
|
||||
} else if (auto *o = dyn_cast<ELFObjectFile<ELF64BE>>(Binary.get())) {
|
||||
} else if (auto *o = dyn_cast<ELFObjectFile<ELF64BE>>(Bin.get())) {
|
||||
ELFBuilder<ELF64BE> Builder(*o, *Obj);
|
||||
Builder.build();
|
||||
return Obj;
|
||||
|
@ -530,7 +530,7 @@ public:
|
||||
|
||||
class ELFReader : public Reader {
|
||||
private:
|
||||
std::unique_ptr<Binary> Binary;
|
||||
std::unique_ptr<Binary> Bin;
|
||||
std::shared_ptr<MemoryBuffer> Data;
|
||||
|
||||
public:
|
||||
|
Loading…
x
Reference in New Issue
Block a user