1
0
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:
Jake Ehrlich 2018-01-26 02:01:37 +00:00
parent dc00796119
commit 106aa3e46d
2 changed files with 11 additions and 11 deletions

View File

@ -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;

View File

@ -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: