#ifndef LLVM_EXECUTIONENGINE_ORC_MACHOBUILDER_H
#define LLVM_EXECUTIONENGINE_ORC_MACHOBUILDER_H
#include "llvm/BinaryFormat/MachO.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/MathExtras.h"
#include <list>
#include <map>
#include <vector>
namespace llvm {
namespace orc {
template <typename MachOStruct>
size_t writeMachOStruct(MutableArrayRef<char> Buf, size_t Offset, MachOStruct S,
bool SwapStruct) { … }
struct MachOBuilderLoadCommandBase { … };
template <MachO::LoadCommandType LCType> struct MachOBuilderLoadCommandImplBase;
#define HANDLE_LOAD_COMMAND …
#include "llvm/BinaryFormat/MachO.def"
#undef HANDLE_LOAD_COMMAND
template <MachO::LoadCommandType LCType>
struct MachOBuilderLoadCommand
: public MachOBuilderLoadCommandImplBase<LCType> { … };
template <>
struct MachOBuilderLoadCommand<MachO::LC_ID_DYLIB>
: public MachOBuilderLoadCommandImplBase<MachO::LC_ID_DYLIB> { … };
template <>
struct MachOBuilderLoadCommand<MachO::LC_LOAD_DYLIB>
: public MachOBuilderLoadCommandImplBase<MachO::LC_LOAD_DYLIB> { … };
template <>
struct MachOBuilderLoadCommand<MachO::LC_RPATH>
: public MachOBuilderLoadCommandImplBase<MachO::LC_RPATH> { … };
template <typename MachOTraits> class MachOBuilder { … };
struct MachO64LE { … };
}
}
#endif