19 #include "llvm/ADT/StringRef.h"
20 #include "llvm/Support/ErrorHandling.h"
27 : Name(R->Name), USR(R->USR),
Record(R) {}
31 #define RECORD_CONTEXT(CLASS, KIND) \
33 return static_cast<CLASS *>(const_cast<RecordContext *>(Ctx));
45 switch (
Record->getKind()) {
46 #define RECORD_CONTEXT(CLASS, KIND) \
48 return static_cast<CLASS *>(const_cast<APIRecord *>(Record));
57 bool RecordContext::IsWellFormed()
const {
59 return (First ==
nullptr) == (Last ==
nullptr);
63 assert(IsWellFormed());
66 Last->NextInContext =
Other.First;
73 Other.First =
nullptr;
78 assert(IsWellFormed());
85 Last->NextInContext =
Record;
93 auto FindIt = USRBasedLookupTable.find(USR);
94 if (FindIt != USRBasedLookupTable.end())
95 return FindIt->getSecond().get();
105 if (Allocator.identifyObject(String.data()))
108 void *Ptr = Allocator.Allocate(String.size(), 1);
109 memcpy(Ptr, String.data(), String.size());
110 return StringRef(
reinterpret_cast<const char *
>(Ptr), String.size());
127 void GlobalFunctionRecord::anchor() {}
128 void GlobalVariableRecord::anchor() {}
129 void EnumConstantRecord::anchor() {}
130 void EnumRecord::anchor() {}
131 void StructFieldRecord::anchor() {}
132 void StructRecord::anchor() {}
133 void UnionFieldRecord::anchor() {}
134 void UnionRecord::anchor() {}
135 void CXXFieldRecord::anchor() {}
136 void CXXClassRecord::anchor() {}
137 void CXXConstructorRecord::anchor() {}
138 void CXXDestructorRecord::anchor() {}
139 void CXXInstanceMethodRecord::anchor() {}
140 void CXXStaticMethodRecord::anchor() {}
141 void ObjCInstancePropertyRecord::anchor() {}
142 void ObjCClassPropertyRecord::anchor() {}
143 void ObjCInstanceVariableRecord::anchor() {}
144 void ObjCInstanceMethodRecord::anchor() {}
145 void ObjCClassMethodRecord::anchor() {}
146 void ObjCCategoryRecord::anchor() {}
147 void ObjCInterfaceRecord::anchor() {}
148 void ObjCProtocolRecord::anchor() {}
149 void MacroDefinitionRecord::anchor() {}
150 void TypedefRecord::anchor() {}
This file defines the APIRecord-based structs and the APISet class.
llvm::MachO::Record Record
Defines the clang::Module class, which describes a module in the source code.
__DEVICE__ void * memcpy(void *__a, const void *__b, size_t __c)
@ Other
Other implicit parameter.
Diagnostic wrappers for TextAPI types for error reporting.