LLVM: include/llvm/Object/MachOUniversal.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13#ifndef LLVM_OBJECT_MACHOUNIVERSAL_H
14#define LLVM_OBJECT_MACHOUNIVERSAL_H
15
22
23namespace llvm {
26
30
32 virtual void anchor();
33
36public:
38
41
43
46
47 public:
49
51 Parent = nullptr;
52 Index = 0;
53 }
54
56 return (Parent == Other.Parent) && (Index == Other.Index);
57 }
58
62 return Header.cputype;
63 else
64 return Header64.cputype;
65 }
68 return Header.cpusubtype;
69 else
70 return Header64.cpusubtype;
71 }
74 return Header.offset;
75 else
76 return Header64.offset;
77 }
80 return Header.size;
81 else
82 return Header64.size;
83 }
86 return Header.align;
87 else
88 return Header64.align;
89 }
92 return 0;
93 else
94 return Header64.reserved;
95 }
100 const char *McpuDefault, *ArchFlag;
102 &McpuDefault, &ArchFlag);
103 return ArchFlag ? ArchFlag : std::string();
104 }
105
109
111 };
112
115 public:
119
121 return Obj == Other.Obj;
122 }
124 return !(*this == Other);
125 }
126
128 Obj = Obj.getNext();
129 return *this;
130 }
131 };
132
136
143
147
150
151
153 return V->isMachOUniversalBinary();
154 }
155
157 getObjectForArch(StringRef ArchName) const;
158
160 getMachOObjectForArch(StringRef ArchName) const;
161
164
166 getArchiveForArch(StringRef ArchName) const;
167};
168}
169}
170
171#endif
static unsigned getCPUType(const MachOObjectFile &O)
static unsigned getCPUSubType(const MachOObjectFile &O)
Lightweight error class with error context and mandatory checking.
Tagged union holding either a T or a Error.
This is an important class for using LLVM in a threaded context.
StringRef - Represent a constant reference to a string, i.e.
Triple - Helper class for working with autoconf configuration names.
A range adaptor for a pair of iterators.
Binary(unsigned int Type, MemoryBufferRef Source)
Triple getArchTriple(const char **McpuDefault=nullptr) const
Definition MachOUniversal.h:39
ObjectForArch getNext() const
Definition MachOUniversal.h:59
uint64_t getSize() const
Definition MachOUniversal.h:78
uint32_t getReserved() const
Definition MachOUniversal.h:90
uint32_t getCPUType() const
Definition MachOUniversal.h:60
uint64_t getOffset() const
Definition MachOUniversal.h:72
uint32_t getAlign() const
Definition MachOUniversal.h:84
Triple getTriple() const
Definition MachOUniversal.h:96
void clear()
Definition MachOUniversal.h:50
std::string getArchFlagName() const
Definition MachOUniversal.h:99
uint32_t getCPUSubType() const
Definition MachOUniversal.h:66
LLVM_ABI ObjectForArch(const MachOUniversalBinary *Parent, uint32_t Index)
bool operator==(const ObjectForArch &Other) const
Definition MachOUniversal.h:55
Definition MachOUniversal.h:113
object_iterator(const ObjectForArch &Obj)
Definition MachOUniversal.h:116
object_iterator & operator++()
Definition MachOUniversal.h:127
const ObjectForArch * operator->() const
Definition MachOUniversal.h:117
bool operator==(const object_iterator &Other) const
Definition MachOUniversal.h:120
bool operator!=(const object_iterator &Other) const
Definition MachOUniversal.h:123
const ObjectForArch & operator*() const
Definition MachOUniversal.h:118
Definition MachOUniversal.h:31
object_iterator begin_objects() const
Definition MachOUniversal.h:137
MachOUniversalBinary(MemoryBufferRef Souce, Error &Err)
object_iterator end_objects() const
Definition MachOUniversal.h:140
uint32_t getMagic() const
Definition MachOUniversal.h:148
iterator_range< object_iterator > objects() const
Definition MachOUniversal.h:144
static bool classof(Binary const *V)
Definition MachOUniversal.h:152
uint32_t getNumberOfObjects() const
Definition MachOUniversal.h:149
static constexpr uint32_t MaxSectionAlignment
Definition MachOUniversal.h:37
This provides a very simple, boring adaptor for a begin and end iterator into a range type.
This is an optimization pass for GlobalISel generic memory operations.
iterator_range< T > make_range(T x, T y)
Convenience function for iterating over sub-ranges.