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));
57bool 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());
122ObjCContainerRecord::~ObjCContainerRecord() {}
127void GlobalFunctionRecord::anchor() {}
128void GlobalVariableRecord::anchor() {}
129void EnumConstantRecord::anchor() {}
130void EnumRecord::anchor() {}
131void StructFieldRecord::anchor() {}
132void StructRecord::anchor() {}
133void UnionFieldRecord::anchor() {}
134void UnionRecord::anchor() {}
135void CXXFieldRecord::anchor() {}
136void CXXClassRecord::anchor() {}
137void CXXConstructorRecord::anchor() {}
138void CXXDestructorRecord::anchor() {}
139void CXXInstanceMethodRecord::anchor() {}
140void CXXStaticMethodRecord::anchor() {}
141void ObjCInstancePropertyRecord::anchor() {}
142void ObjCClassPropertyRecord::anchor() {}
143void ObjCInstanceVariableRecord::anchor() {}
144void ObjCInstanceMethodRecord::anchor() {}
145void ObjCClassMethodRecord::anchor() {}
146void ObjCCategoryRecord::anchor() {}
147void ObjCInterfaceRecord::anchor() {}
148void ObjCProtocolRecord::anchor() {}
149void MacroDefinitionRecord::anchor() {}
150void 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.