LLVM: include/llvm/Object/TapiUniversal.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13#ifndef LLVM_OBJECT_TAPIUNIVERSAL_H
14#define LLVM_OBJECT_TAPIUNIVERSAL_H
15
23
24namespace llvm {
26
28
30public:
33 int Index;
34
35 public:
37 : Parent(Parent), Index(Index) {}
38
40
42 return (Parent == Other.Parent) && (Index == Other.Index);
43 }
44
46 auto Result =
48 return Result.first;
49 }
50
52 auto Result =
54 return Result.second;
55 }
56
60
62 return std::string(Parent->Libraries[Index].InstallName);
63 }
64
66 return Parent->ParsedFile->getInstallName() == getInstallName();
67 }
68
70 };
71
74
75 public:
79
81 return Obj == Other.Obj;
82 }
84 return !(*this == Other);
85 }
86
88 Obj = Obj.getNext();
89 return *this;
90 }
91 };
92
97
102
106
108
110
111 static bool classof(const Binary *v) { return v->isTapiUniversal(); }
112
113private:
114
115 struct Library {
118 const std::optional<size_t> DocumentIdx;
119 };
120
121 std::unique_ptrMachO::InterfaceFile ParsedFile;
122 std::vector Libraries;
123};
124
125}
126}
127
128#endif
Lightweight error class with error context and mandatory checking.
Tagged union holding either a T or a Error.
Defines the interface file.
StringRef - Represent a constant reference to a string, i.e.
A range adaptor for a pair of iterators.
Binary(unsigned int Type, MemoryBufferRef Source)
Definition TapiUniversal.h:31
ObjectForArch(const TapiUniversal *Parent, int Index)
Definition TapiUniversal.h:36
bool isTopLevelLib() const
Definition TapiUniversal.h:65
uint32_t getCPUSubType() const
Definition TapiUniversal.h:51
StringRef getArchFlagName() const
Definition TapiUniversal.h:57
bool operator==(const ObjectForArch &Other) const
Definition TapiUniversal.h:41
ObjectForArch getNext() const
Definition TapiUniversal.h:39
uint32_t getCPUType() const
Definition TapiUniversal.h:45
std::string getInstallName() const
Definition TapiUniversal.h:61
Definition TapiUniversal.h:72
object_iterator(const ObjectForArch &Obj)
Definition TapiUniversal.h:76
const ObjectForArch & operator*() const
Definition TapiUniversal.h:78
bool operator==(const object_iterator &Other) const
Definition TapiUniversal.h:80
object_iterator & operator++()
Definition TapiUniversal.h:87
bool operator!=(const object_iterator &Other) const
Definition TapiUniversal.h:83
const ObjectForArch * operator->() const
Definition TapiUniversal.h:77
Definition TapiUniversal.h:29
iterator_range< object_iterator > objects() const
Definition TapiUniversal.h:103
~TapiUniversal() override
uint32_t getNumberOfObjects() const
Definition TapiUniversal.h:109
object_iterator end_objects() const
Definition TapiUniversal.h:99
TapiUniversal(MemoryBufferRef Source, Error &Err)
static bool classof(const Binary *v)
Definition TapiUniversal.h:111
const MachO::InterfaceFile & getInterfaceFile()
Definition TapiUniversal.h:107
object_iterator begin_objects() const
Definition TapiUniversal.h:98
LLVM_ABI StringRef getArchitectureName(Architecture Arch)
Convert an architecture slice to a string.
LLVM_ABI std::pair< uint32_t, uint32_t > getCPUTypeFromArchitecture(Architecture Arch)
Convert an architecture slice to a CPU Type and Subtype pair.
Architecture
Defines the architecture slices that are supported by Text-based Stub files.
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.