Reland "[llvm-objcopy] Refactor llvm-objcopy to use reader and writer objects"

I named a varible the same as a type which caused a warning. I also had unamed varibles.

llvm-svn: 323484
This commit is contained in:
Jake Ehrlich 2018-01-26 00:19:30 +00:00
parent d8fd16b08f
commit 6d88ffd256
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 TmpBin = std::move(BinaryOrErr.get());
std::tie(Bin, Data) = TmpBin.takeBinary();
}
ElfType ELFReader::getElfType() const {
if (auto *o = dyn_cast<ELFObjectFile<ELF32LE>>(Binary.get()))
if (isa<ELFObjectFile<ELF32LE>>(Bin.get()))
return ELFT_ELF32LE;
if (auto *o = dyn_cast<ELFObjectFile<ELF64LE>>(Binary.get()))
if (isa<ELFObjectFile<ELF64LE>>(Bin.get()))
return ELFT_ELF64LE;
if (auto *o = dyn_cast<ELFObjectFile<ELF32BE>>(Binary.get()))
if (isa<ELFObjectFile<ELF32BE>>(Bin.get()))
return ELFT_ELF32BE;
if (auto *o = dyn_cast<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: