|
static bool | IsHeaderFile (const std::string &Filename) |
|
static void | WriteInternalIvarName (const ObjCInterfaceDecl *IDecl, ObjCIvarDecl *IvarDecl, std::string &Result) |
|
static bool | mustSynthesizeSetterGetterMethod (ObjCImplementationDecl *IMP, ObjCPropertyDecl *PD, bool getter) |
| mustSynthesizeSetterGetterMethod - returns true if setter or getter has not been found in the class implementation. More...
|
|
static void | RewriteOneForwardClassDecl (ObjCInterfaceDecl *ForwardDecl, std::string &typedefString) |
|
static void | Write_RethrowObject (std::string &buf) |
|
static bool | scanForProtocolRefs (const char *startBuf, const char *endBuf, const char *&startRef, const char *&endRef) |
|
static void | scanToNextArgument (const char *&argRef) |
|
static SourceLocation | getFunctionSourceLocation (RewriteModernObjC &R, FunctionDecl *FD) |
| getFunctionSourceLocation - returns start location of a function definition. More...
|
|
static bool | HasLocalVariableExternalStorage (ValueDecl *VD) |
|
static void | BuildUniqueMethodName (std::string &Name, ObjCMethodDecl *MD) |
|
static void | Write_ProtocolExprReferencedMetadata (ASTContext *Context, ObjCProtocolDecl *PDecl, std::string &Result) |
| Write_ProtocolExprReferencedMetadata - This routine writer out the protocol reference symbols in the for of: struct _protocol_t *PROTOCOL_REF = &PROTOCOL_METADATA. More...
|
|
static void | WriteModernMetadataDeclarations (ASTContext *Context, std::string &Result) |
| WriteModernMetadataDeclarations - Writes out metadata declarations for modern ABI. More...
|
|
static void | Write_protocol_list_t_TypeDecl (std::string &Result, long super_protocol_count) |
|
static void | Write_method_list_t_TypeDecl (std::string &Result, unsigned int method_count) |
|
static void | Write__prop_list_t_TypeDecl (std::string &Result, unsigned int property_count) |
|
static void | Write__ivar_list_t_TypeDecl (std::string &Result, unsigned int ivar_count) |
|
static void | Write_protocol_list_initializer (ASTContext *Context, std::string &Result, ArrayRef< ObjCProtocolDecl * > SuperProtocols, StringRef VarName, StringRef ProtocolName) |
|
static void | Write_method_list_t_initializer (RewriteModernObjC &RewriteObj, ASTContext *Context, std::string &Result, ArrayRef< ObjCMethodDecl * > Methods, StringRef VarName, StringRef TopLevelDeclName, bool MethodImpl) |
|
static void | Write_prop_list_t_initializer (RewriteModernObjC &RewriteObj, ASTContext *Context, std::string &Result, ArrayRef< ObjCPropertyDecl * > Properties, const Decl *Container, StringRef VarName, StringRef ProtocolName) |
|
static void | Write__class_ro_t_initializer (ASTContext *Context, std::string &Result, unsigned int flags, const std::string &InstanceStart, const std::string &InstanceSize, ArrayRef< ObjCMethodDecl * >baseMethods, ArrayRef< ObjCProtocolDecl * >baseProtocols, ArrayRef< ObjCIvarDecl * >ivars, ArrayRef< ObjCPropertyDecl * >Properties, StringRef VarName, StringRef ClassName) |
|
static void | Write_class_t (ASTContext *Context, std::string &Result, StringRef VarName, const ObjCInterfaceDecl *CDecl, bool metaclass) |
|
static void | Write_category_t (RewriteModernObjC &RewriteObj, ASTContext *Context, std::string &Result, ObjCCategoryDecl *CatDecl, ObjCInterfaceDecl *ClassDecl, ArrayRef< ObjCMethodDecl * > InstanceMethods, ArrayRef< ObjCMethodDecl * > ClassMethods, ArrayRef< ObjCProtocolDecl * > RefedProtocols, ArrayRef< ObjCPropertyDecl * > ClassProperties) |
|
static void | Write__extendedMethodTypes_initializer (RewriteModernObjC &RewriteObj, ASTContext *Context, std::string &Result, ArrayRef< ObjCMethodDecl * > Methods, StringRef VarName, StringRef ProtocolName) |
|
static void | Write_IvarOffsetVar (RewriteModernObjC &RewriteObj, ASTContext *Context, std::string &Result, ArrayRef< ObjCIvarDecl * > Ivars, ObjCInterfaceDecl *CDecl) |
|
static void | Write__ivar_list_t_initializer (RewriteModernObjC &RewriteObj, ASTContext *Context, std::string &Result, ArrayRef< ObjCIvarDecl * > OriginalIvars, StringRef VarName, ObjCInterfaceDecl *CDecl) |
|
static bool | hasObjCExceptionAttribute (ASTContext &Context, const ObjCInterfaceDecl *OID) |
| hasObjCExceptionAttribute - Return true if this class or any super class has the objc_exception attribute. More...
|
|
WriteModernMetadataDeclarations - Writes out metadata declarations for modern ABI.
struct _prop_t { const char *name; char *attributes; } struct _prop_list_t { uint32_t entsize; // sizeof(struct _prop_t) uint32_t count_of_properties; struct _prop_t prop_list[count_of_properties]; } struct _protocol_t; struct _protocol_list_t { long protocol_count; // Note, this is 32/64 bit struct _protocol_t * protocol_list[protocol_count]; } struct _objc_method { SEL _cmd; const char *method_type; char *_imp; } struct _method_list_t { uint32_t entsize; // sizeof(struct _objc_method) uint32_t method_count; struct _objc_method method_list[method_count]; } struct _protocol_t { id isa; // NULL const char *protocol_name; const struct _protocol_list_t * protocol_list; // super protocols const struct method_list_t *instance_methods; const struct method_list_t *class_methods; const struct method_list_t *optionalInstanceMethods; const struct method_list_t *optionalClassMethods; const struct _prop_list_t * properties; const uint32_t size; // sizeof(struct _protocol_t) const uint32_t flags; // = 0 const char ** extendedMethodTypes; } struct _ivar_t { unsigned long int *offset; // pointer to ivar offset location const char *name; const char *type; uint32_t alignment; uint32_t size; } struct _ivar_list_t { uint32 entsize; // sizeof(struct _ivar_t) uint32 count; struct _ivar_t list[count]; } struct _class_ro_t { uint32_t flags; uint32_t instanceStart; uint32_t instanceSize; uint32_t reserved; // only when building for 64bit targets const uint8_t *ivarLayout; const char *name; const struct _method_list_t *baseMethods; const struct _protocol_list_t *baseProtocols; const struct _ivar_list_t *ivars; const uint8_t *weakIvarLayout; const struct _prop_list_t *properties; } struct _class_t { struct _class_t *isa; struct _class_t *superclass; void *cache; IMP *vtable; struct _class_ro_t *ro; } struct _category_t { const char *name; struct _class_t *cls; const struct _method_list_t *instance_methods; const struct _method_list_t *class_methods; const struct _protocol_list_t *protocols; const struct _prop_list_t *properties; } MessageRefTy - LLVM for: struct _message_ref_t { IMP messenger; SEL name; }; SuperMessageRefTy - LLVM for: struct _super_message_ref_t { SUPER_IMP messenger; SEL name; };
Definition at line 6176 of file RewriteModernObjC.cpp.