#pragma once // // This file is distributed under the MIT License. See LICENSE.md for details. // #include #include "llvm/Support/Error.h" #include "revng/Model/Binary.h" namespace llvm { namespace object { class ELFObjectFileBase; class COFFObjectFile; class MachOObjectFile; } // namespace object } // namespace llvm llvm::Error importELF(TupleTree &Model, const llvm::object::ELFObjectFileBase &TheBinary, uint64_t PreferredBaseAddress); llvm::Error importPECOFF(TupleTree &Model, const llvm::object::COFFObjectFile &TheBinary, uint64_t PreferredBaseAddress); llvm::Error importMachO(TupleTree &Model, llvm::object::MachOObjectFile &TheBinary, uint64_t PreferredBaseAddress); template llvm::Error createError(char const *Fmt, const Ts &...Vals) { return llvm::createStringError(llvm::inconvertibleErrorCode(), Fmt, Vals...); }