23 using namespace object;
46 memcpy(&Res, Ptr,
sizeof(
T));
55 : Parent(Parent), Index(Index) {
63 Header = getUniversalBinaryStruct<MachO::fat_arch>(HeaderPos);
75 StringRef ObjectName = Parent->getFileName();
89 StringRef ObjectName = Parent->getFileName();
94 void MachOUniversalBinary::anchor() { }
99 std::unique_ptr<MachOUniversalBinary>
Ret(
103 return std::move(Ret);
123 ec = std::error_code();
128 if (
Triple(ArchName).getArch() == Triple::ArchType::UnknownArch)
132 if (
I->getArchTypeName() == ArchName)
133 return I->getAsObjectFile();
static ErrorOr< std::unique_ptr< MachOObjectFile > > createMachOObjectFile(MemoryBufferRef Object)
ErrorOr< std::unique_ptr< Archive > > getAsArchive() const
Represents either an error or a value T.
static T getUniversalBinaryStruct(const char *Ptr)
void swapByteOrder(T &Value)
size_t size() const
size - Get the string size.
static void SwapStruct(T &Value)
StringRef substr(size_t Start, size_t N=npos) const
Return a reference to the substring from [Start, Start + N).
ObjectForArch(const MachOUniversalBinary *Parent, uint32_t Index)
StringRef getData() const
static const bool IsLittleEndianHost
ErrorOr< std::unique_ptr< MachOObjectFile > > getAsObjectFile() const
ErrorOr< std::unique_ptr< MachOObjectFile > > getObjectForArch(StringRef ArchName) const
static ErrorOr< std::unique_ptr< MachOUniversalBinary > > create(MemoryBufferRef Source)
Triple - Helper class for working with autoconf configuration names.
size_t getBufferSize() const
object_iterator end_objects() const
static ErrorOr< std::unique_ptr< Archive > > create(MemoryBufferRef Source)
MachOUniversalBinary(MemoryBufferRef Souce, std::error_code &EC)
object_iterator begin_objects() const
LLVM Value Representation.
StringRef - Represent a constant reference to a string, i.e.
uint32_t getNumberOfObjects() const