Lines Matching refs:Result

374     void ObjCIvarBitfieldGroupDecl(ObjCIvarDecl *IV, std::string &Result);
376 void ObjCIvarBitfieldGroupType(ObjCIvarDecl *IV, std::string &Result);
378 void ObjCIvarBitfieldGroupOffset(ObjCIvarDecl *IV, std::string &Result);
396 std::string &Result);
398 void RewriteObjCFieldDecl(FieldDecl *fieldDecl, std::string &Result);
402 std::string &Result);
404 bool RewriteObjCFieldDeclType(QualType &Type, std::string &Result);
407 std::string &Result);
447 std::string &Result);
449 std::string &Result);
451 std::string &Result);
452 void RewriteClassSetupInitHook(std::string &Result);
454 void RewriteMetaDataIntoBuffer(std::string &Result);
455 void WriteImageInfo(std::string &Result);
457 std::string &Result);
458 void RewriteCategorySetupInitHook(std::string &Result);
462 std::string &Result);
833 ObjCIvarDecl *IvarDecl, std::string &Result) { in WriteInternalIvarName() argument
834 Result += "OBJC_IVAR_$_"; in WriteInternalIvarName()
835 Result += IDecl->getName(); in WriteInternalIvarName()
836 Result += "$"; in WriteInternalIvarName()
837 Result += IvarDecl->getName(); in WriteInternalIvarName()
1973 std::string Result; in RewriteObjCTryStmt() local
1974 ConvertSourceLocationToLineDirective(Catch->getBeginLoc(), Result); in RewriteObjCTryStmt()
1982 Result += "catch (_objc_exc_"; Result += IDecl->getNameAsString(); in RewriteObjCTryStmt()
1983 Result += " *_"; Result += catchDecl->getNameAsString(); in RewriteObjCTryStmt()
1984 Result += ")"; in RewriteObjCTryStmt()
1985 ReplaceText(startLoc, rParenBuf-startBuf+1, Result); in RewriteObjCTryStmt()
1987 Result.clear(); in RewriteObjCTryStmt()
1988 Result = "{ "; in RewriteObjCTryStmt()
1989 Result += IDecl->getNameAsString(); in RewriteObjCTryStmt()
1990 Result += " *"; Result += catchDecl->getNameAsString(); in RewriteObjCTryStmt()
1991 Result += " = ("; Result += IDecl->getNameAsString(); Result += "*)"; in RewriteObjCTryStmt()
1992 Result += "_"; Result += catchDecl->getNameAsString(); in RewriteObjCTryStmt()
1994 Result += "; "; in RewriteObjCTryStmt()
1996 ReplaceText(lBraceLoc, 1, Result); in RewriteObjCTryStmt()
3631 std::string &Result) { in RewriteObjCFieldDeclType() argument
3633 Result += "\t"; in RewriteObjCFieldDeclType()
3639 return RewriteObjCFieldDeclType(ElemTy, Result); in RewriteObjCFieldDeclType()
3645 Result += "\n\tstruct "; in RewriteObjCFieldDeclType()
3647 Result += "\n\tunion "; in RewriteObjCFieldDeclType()
3651 Result += RD->getName(); in RewriteObjCFieldDeclType()
3654 Result += " "; in RewriteObjCFieldDeclType()
3657 Result += " {\n"; in RewriteObjCFieldDeclType()
3659 RewriteObjCFieldDecl(FD, Result); in RewriteObjCFieldDeclType()
3660 Result += "\t} "; in RewriteObjCFieldDeclType()
3667 Result += "\n\tenum "; in RewriteObjCFieldDeclType()
3668 Result += ED->getName(); in RewriteObjCFieldDeclType()
3671 Result += " "; in RewriteObjCFieldDeclType()
3675 Result += " {\n"; in RewriteObjCFieldDeclType()
3677 Result += "\t"; Result += EC->getName(); Result += " = "; in RewriteObjCFieldDeclType()
3678 Result += toString(EC->getInitVal(), 10); in RewriteObjCFieldDeclType()
3679 Result += ",\n"; in RewriteObjCFieldDeclType()
3681 Result += "\t} "; in RewriteObjCFieldDeclType()
3686 Result += "\t"; in RewriteObjCFieldDeclType()
3695 std::string &Result) { in RewriteObjCFieldDecl() argument
3699 bool EleboratedType = RewriteObjCFieldDeclType(Type, Result); in RewriteObjCFieldDecl()
3702 Result += Name; in RewriteObjCFieldDecl()
3704 Result += " : "; Result += utostr(fieldDecl->getBitWidthValue(*Context)); in RewriteObjCFieldDecl()
3710 Result += "["; in RewriteObjCFieldDecl()
3712 Result += utostr(Dim.getZExtValue()); in RewriteObjCFieldDecl()
3713 Result += "]"; in RewriteObjCFieldDecl()
3719 Result += ";\n"; in RewriteObjCFieldDecl()
3725 std::string &Result) { in RewriteLocallyDefinedNamedAggregates() argument
3748 RewriteObjCFieldDeclType(Type, Result); in RewriteLocallyDefinedNamedAggregates()
3749 Result += ";"; in RewriteLocallyDefinedNamedAggregates()
3838 std::string &Result) { in ObjCIvarBitfieldGroupDecl() argument
3840 Result += CDecl->getName(); in ObjCIvarBitfieldGroupDecl()
3841 Result += "__GRBF_"; in ObjCIvarBitfieldGroupDecl()
3843 Result += utostr(GroupNo); in ObjCIvarBitfieldGroupDecl()
3850 std::string &Result) { in ObjCIvarBitfieldGroupType() argument
3852 Result += CDecl->getName(); in ObjCIvarBitfieldGroupType()
3853 Result += "__T_"; in ObjCIvarBitfieldGroupType()
3855 Result += utostr(GroupNo); in ObjCIvarBitfieldGroupType()
3862 std::string &Result) { in ObjCIvarBitfieldGroupOffset() argument
3863 Result += "OBJC_IVAR_$_"; in ObjCIvarBitfieldGroupOffset()
3864 ObjCIvarBitfieldGroupDecl(IV, Result); in ObjCIvarBitfieldGroupOffset()
3877 std::string &Result) { in RewriteObjCInternalStruct() argument
3898 ReplaceText(LocStart, endBuf-startBuf, Result); in RewriteObjCInternalStruct()
3906 RewriteLocallyDefinedNamedAggregates(IVars[i], Result); in RewriteObjCInternalStruct()
3914 RewriteObjCFieldDeclType(QT, Result); in RewriteObjCInternalStruct()
3915 Result += ";"; in RewriteObjCInternalStruct()
3920 Result += "\nstruct "; in RewriteObjCInternalStruct()
3921 Result += CDecl->getNameAsString(); in RewriteObjCInternalStruct()
3922 Result += "_IMPL {\n"; in RewriteObjCInternalStruct()
3925 Result += "\tstruct "; Result += RCDecl->getNameAsString(); in RewriteObjCInternalStruct()
3926 Result += "_IMPL "; Result += RCDecl->getNameAsString(); in RewriteObjCInternalStruct()
3927 Result += "_IVARS;\n"; in RewriteObjCInternalStruct()
3933 Result += "\tstruct "; in RewriteObjCInternalStruct()
3934 ObjCIvarBitfieldGroupType(IV, Result); Result += " "; in RewriteObjCInternalStruct()
3935 ObjCIvarBitfieldGroupDecl(IV, Result); Result += ";\n"; in RewriteObjCInternalStruct()
3940 RewriteObjCFieldDecl(IVars[i], Result); in RewriteObjCInternalStruct()
3943 Result += "};\n"; in RewriteObjCInternalStruct()
3945 ReplaceText(LocStart, endBuf-startBuf, Result); in RewriteObjCInternalStruct()
3954 std::string &Result) { in RewriteIvarOffsetSymbols() argument
3971 Result += "\n"; in RewriteIvarOffsetSymbols()
3973 Result += "__declspec(allocate(\".objc_ivar$B\")) "; in RewriteIvarOffsetSymbols()
3974 Result += "extern \"C\" "; in RewriteIvarOffsetSymbols()
3978 Result += "__declspec(dllimport) "; in RewriteIvarOffsetSymbols()
3980 Result += "unsigned long "; in RewriteIvarOffsetSymbols()
3982 ObjCIvarBitfieldGroupOffset(IvarDecl, Result); in RewriteIvarOffsetSymbols()
3986 WriteInternalIvarName(CDecl, IvarDecl, Result); in RewriteIvarOffsetSymbols()
3987 Result += ";"; in RewriteIvarOffsetSymbols()
5812 std::string &Result) { in Write_ProtocolExprReferencedMetadata() argument
5815 Result += "static "; in Write_ProtocolExprReferencedMetadata()
5816 Result += "struct _protocol_t *"; in Write_ProtocolExprReferencedMetadata()
5817 Result += "_OBJC_PROTOCOL_REFERENCE_$_"; in Write_ProtocolExprReferencedMetadata()
5818 Result += PDecl->getNameAsString(); in Write_ProtocolExprReferencedMetadata()
5819 Result += " = &"; in Write_ProtocolExprReferencedMetadata()
5820 Result += "_OBJC_PROTOCOL_"; Result += PDecl->getNameAsString(); in Write_ProtocolExprReferencedMetadata()
5821 Result += ";\n"; in Write_ProtocolExprReferencedMetadata()
6061 std::string &Result) { in RewriteIvarOffsetComputation() argument
6062 Result += "__OFFSETOFIVAR__(struct "; in RewriteIvarOffsetComputation()
6063 Result += ivar->getContainingInterface()->getNameAsString(); in RewriteIvarOffsetComputation()
6065 Result += "_IMPL"; in RewriteIvarOffsetComputation()
6066 Result += ", "; in RewriteIvarOffsetComputation()
6068 ObjCIvarBitfieldGroupDecl(ivar, Result); in RewriteIvarOffsetComputation()
6070 Result += ivar->getNameAsString(); in RewriteIvarOffsetComputation()
6071 Result += ")"; in RewriteIvarOffsetComputation()
6176 static void WriteModernMetadataDeclarations(ASTContext *Context, std::string &Result) { in WriteModernMetadataDeclarations() argument
6181 Result += "\nstruct _prop_t {\n"; in WriteModernMetadataDeclarations()
6182 Result += "\tconst char *name;\n"; in WriteModernMetadataDeclarations()
6183 Result += "\tconst char *attributes;\n"; in WriteModernMetadataDeclarations()
6184 Result += "};\n"; in WriteModernMetadataDeclarations()
6186 Result += "\nstruct _protocol_t;\n"; in WriteModernMetadataDeclarations()
6188 Result += "\nstruct _objc_method {\n"; in WriteModernMetadataDeclarations()
6189 Result += "\tstruct objc_selector * _cmd;\n"; in WriteModernMetadataDeclarations()
6190 Result += "\tconst char *method_type;\n"; in WriteModernMetadataDeclarations()
6191 Result += "\tvoid *_imp;\n"; in WriteModernMetadataDeclarations()
6192 Result += "};\n"; in WriteModernMetadataDeclarations()
6194 Result += "\nstruct _protocol_t {\n"; in WriteModernMetadataDeclarations()
6195 Result += "\tvoid * isa; // NULL\n"; in WriteModernMetadataDeclarations()
6196 Result += "\tconst char *protocol_name;\n"; in WriteModernMetadataDeclarations()
6197 Result += "\tconst struct _protocol_list_t * protocol_list; // super protocols\n"; in WriteModernMetadataDeclarations()
6198 Result += "\tconst struct method_list_t *instance_methods;\n"; in WriteModernMetadataDeclarations()
6199 Result += "\tconst struct method_list_t *class_methods;\n"; in WriteModernMetadataDeclarations()
6200 Result += "\tconst struct method_list_t *optionalInstanceMethods;\n"; in WriteModernMetadataDeclarations()
6201 Result += "\tconst struct method_list_t *optionalClassMethods;\n"; in WriteModernMetadataDeclarations()
6202 Result += "\tconst struct _prop_list_t * properties;\n"; in WriteModernMetadataDeclarations()
6203 Result += "\tconst unsigned int size; // sizeof(struct _protocol_t)\n"; in WriteModernMetadataDeclarations()
6204 Result += "\tconst unsigned int flags; // = 0\n"; in WriteModernMetadataDeclarations()
6205 Result += "\tconst char ** extendedMethodTypes;\n"; in WriteModernMetadataDeclarations()
6206 Result += "};\n"; in WriteModernMetadataDeclarations()
6208 Result += "\nstruct _ivar_t {\n"; in WriteModernMetadataDeclarations()
6209 Result += "\tunsigned long int *offset; // pointer to ivar offset location\n"; in WriteModernMetadataDeclarations()
6210 Result += "\tconst char *name;\n"; in WriteModernMetadataDeclarations()
6211 Result += "\tconst char *type;\n"; in WriteModernMetadataDeclarations()
6212 Result += "\tunsigned int alignment;\n"; in WriteModernMetadataDeclarations()
6213 Result += "\tunsigned int size;\n"; in WriteModernMetadataDeclarations()
6214 Result += "};\n"; in WriteModernMetadataDeclarations()
6216 Result += "\nstruct _class_ro_t {\n"; in WriteModernMetadataDeclarations()
6217 Result += "\tunsigned int flags;\n"; in WriteModernMetadataDeclarations()
6218 Result += "\tunsigned int instanceStart;\n"; in WriteModernMetadataDeclarations()
6219 Result += "\tunsigned int instanceSize;\n"; in WriteModernMetadataDeclarations()
6222 Result += "\tunsigned int reserved;\n"; in WriteModernMetadataDeclarations()
6223 Result += "\tconst unsigned char *ivarLayout;\n"; in WriteModernMetadataDeclarations()
6224 Result += "\tconst char *name;\n"; in WriteModernMetadataDeclarations()
6225 Result += "\tconst struct _method_list_t *baseMethods;\n"; in WriteModernMetadataDeclarations()
6226 Result += "\tconst struct _objc_protocol_list *baseProtocols;\n"; in WriteModernMetadataDeclarations()
6227 Result += "\tconst struct _ivar_list_t *ivars;\n"; in WriteModernMetadataDeclarations()
6228 Result += "\tconst unsigned char *weakIvarLayout;\n"; in WriteModernMetadataDeclarations()
6229 Result += "\tconst struct _prop_list_t *properties;\n"; in WriteModernMetadataDeclarations()
6230 Result += "};\n"; in WriteModernMetadataDeclarations()
6232 Result += "\nstruct _class_t {\n"; in WriteModernMetadataDeclarations()
6233 Result += "\tstruct _class_t *isa;\n"; in WriteModernMetadataDeclarations()
6234 Result += "\tstruct _class_t *superclass;\n"; in WriteModernMetadataDeclarations()
6235 Result += "\tvoid *cache;\n"; in WriteModernMetadataDeclarations()
6236 Result += "\tvoid *vtable;\n"; in WriteModernMetadataDeclarations()
6237 Result += "\tstruct _class_ro_t *ro;\n"; in WriteModernMetadataDeclarations()
6238 Result += "};\n"; in WriteModernMetadataDeclarations()
6240 Result += "\nstruct _category_t {\n"; in WriteModernMetadataDeclarations()
6241 Result += "\tconst char *name;\n"; in WriteModernMetadataDeclarations()
6242 Result += "\tstruct _class_t *cls;\n"; in WriteModernMetadataDeclarations()
6243 Result += "\tconst struct _method_list_t *instance_methods;\n"; in WriteModernMetadataDeclarations()
6244 Result += "\tconst struct _method_list_t *class_methods;\n"; in WriteModernMetadataDeclarations()
6245 Result += "\tconst struct _protocol_list_t *protocols;\n"; in WriteModernMetadataDeclarations()
6246 Result += "\tconst struct _prop_list_t *properties;\n"; in WriteModernMetadataDeclarations()
6247 Result += "};\n"; in WriteModernMetadataDeclarations()
6249 Result += "extern \"C\" __declspec(dllimport) struct objc_cache _objc_empty_cache;\n"; in WriteModernMetadataDeclarations()
6250 Result += "#pragma warning(disable:4273)\n"; in WriteModernMetadataDeclarations()
6254 static void Write_protocol_list_t_TypeDecl(std::string &Result, in Write_protocol_list_t_TypeDecl() argument
6256 Result += "struct /*_protocol_list_t*/"; Result += " {\n"; in Write_protocol_list_t_TypeDecl()
6257 Result += "\tlong protocol_count; // Note, this is 32/64 bit\n"; in Write_protocol_list_t_TypeDecl()
6258 Result += "\tstruct _protocol_t *super_protocols["; in Write_protocol_list_t_TypeDecl()
6259 Result += utostr(super_protocol_count); Result += "];\n"; in Write_protocol_list_t_TypeDecl()
6260 Result += "}"; in Write_protocol_list_t_TypeDecl()
6263 static void Write_method_list_t_TypeDecl(std::string &Result, in Write_method_list_t_TypeDecl() argument
6265 Result += "struct /*_method_list_t*/"; Result += " {\n"; in Write_method_list_t_TypeDecl()
6266 Result += "\tunsigned int entsize; // sizeof(struct _objc_method)\n"; in Write_method_list_t_TypeDecl()
6267 Result += "\tunsigned int method_count;\n"; in Write_method_list_t_TypeDecl()
6268 Result += "\tstruct _objc_method method_list["; in Write_method_list_t_TypeDecl()
6269 Result += utostr(method_count); Result += "];\n"; in Write_method_list_t_TypeDecl()
6270 Result += "}"; in Write_method_list_t_TypeDecl()
6273 static void Write__prop_list_t_TypeDecl(std::string &Result, in Write__prop_list_t_TypeDecl() argument
6275 Result += "struct /*_prop_list_t*/"; Result += " {\n"; in Write__prop_list_t_TypeDecl()
6276 Result += "\tunsigned int entsize; // sizeof(struct _prop_t)\n"; in Write__prop_list_t_TypeDecl()
6277 Result += "\tunsigned int count_of_properties;\n"; in Write__prop_list_t_TypeDecl()
6278 Result += "\tstruct _prop_t prop_list["; in Write__prop_list_t_TypeDecl()
6279 Result += utostr(property_count); Result += "];\n"; in Write__prop_list_t_TypeDecl()
6280 Result += "}"; in Write__prop_list_t_TypeDecl()
6283 static void Write__ivar_list_t_TypeDecl(std::string &Result, in Write__ivar_list_t_TypeDecl() argument
6285 Result += "struct /*_ivar_list_t*/"; Result += " {\n"; in Write__ivar_list_t_TypeDecl()
6286 Result += "\tunsigned int entsize; // sizeof(struct _prop_t)\n"; in Write__ivar_list_t_TypeDecl()
6287 Result += "\tunsigned int count;\n"; in Write__ivar_list_t_TypeDecl()
6288 Result += "\tstruct _ivar_t ivar_list["; in Write__ivar_list_t_TypeDecl()
6289 Result += utostr(ivar_count); Result += "];\n"; in Write__ivar_list_t_TypeDecl()
6290 Result += "}"; in Write__ivar_list_t_TypeDecl()
6293 static void Write_protocol_list_initializer(ASTContext *Context, std::string &Result, in Write_protocol_list_initializer() argument
6298 Result += "\nstatic "; in Write_protocol_list_initializer()
6299 Write_protocol_list_t_TypeDecl(Result, SuperProtocols.size()); in Write_protocol_list_initializer()
6300 Result += " "; Result += VarName; in Write_protocol_list_initializer()
6301 Result += ProtocolName; in Write_protocol_list_initializer()
6302 Result += " __attribute__ ((used, section (\"__DATA,__objc_const\"))) = {\n"; in Write_protocol_list_initializer()
6303 Result += "\t"; Result += utostr(SuperProtocols.size()); Result += ",\n"; in Write_protocol_list_initializer()
6306 Result += "\t&"; Result += "_OBJC_PROTOCOL_"; in Write_protocol_list_initializer()
6307 Result += SuperPD->getNameAsString(); in Write_protocol_list_initializer()
6309 Result += "\n};\n"; in Write_protocol_list_initializer()
6311 Result += ",\n"; in Write_protocol_list_initializer()
6317 ASTContext *Context, std::string &Result, in Write_method_list_t_initializer() argument
6323 Result += "\nstatic "; in Write_method_list_t_initializer()
6324 Write_method_list_t_TypeDecl(Result, Methods.size()); in Write_method_list_t_initializer()
6325 Result += " "; Result += VarName; in Write_method_list_t_initializer()
6326 Result += TopLevelDeclName; in Write_method_list_t_initializer()
6327 Result += " __attribute__ ((used, section (\"__DATA,__objc_const\"))) = {\n"; in Write_method_list_t_initializer()
6328 Result += "\t"; Result += "sizeof(_objc_method)"; Result += ",\n"; in Write_method_list_t_initializer()
6329 Result += "\t"; Result += utostr(Methods.size()); Result += ",\n"; in Write_method_list_t_initializer()
6333 Result += "\t{{(struct objc_selector *)\""; in Write_method_list_t_initializer()
6335 Result += "\t{(struct objc_selector *)\""; in Write_method_list_t_initializer()
6336 Result += (MD)->getSelector().getAsString(); Result += "\""; in Write_method_list_t_initializer()
6337 Result += ", "; in Write_method_list_t_initializer()
6339 Result += "\""; Result += MethodTypeString; Result += "\""; in Write_method_list_t_initializer()
6340 Result += ", "; in Write_method_list_t_initializer()
6342 Result += "0"; in Write_method_list_t_initializer()
6344 Result += "(void *)"; in Write_method_list_t_initializer()
6345 Result += RewriteObj.MethodInternalNames[MD]; in Write_method_list_t_initializer()
6348 Result += "}}\n"; in Write_method_list_t_initializer()
6350 Result += "},\n"; in Write_method_list_t_initializer()
6352 Result += "};\n"; in Write_method_list_t_initializer()
6357 ASTContext *Context, std::string &Result, in Write_prop_list_t_initializer() argument
6363 Result += "\nstatic "; in Write_prop_list_t_initializer()
6364 Write__prop_list_t_TypeDecl(Result, Properties.size()); in Write_prop_list_t_initializer()
6365 Result += " "; Result += VarName; in Write_prop_list_t_initializer()
6366 Result += ProtocolName; in Write_prop_list_t_initializer()
6367 Result += " __attribute__ ((used, section (\"__DATA,__objc_const\"))) = {\n"; in Write_prop_list_t_initializer()
6368 Result += "\t"; Result += "sizeof(_prop_t)"; Result += ",\n"; in Write_prop_list_t_initializer()
6369 Result += "\t"; Result += utostr(Properties.size()); Result += ",\n"; in Write_prop_list_t_initializer()
6373 Result += "\t{{\""; in Write_prop_list_t_initializer()
6375 Result += "\t{\""; in Write_prop_list_t_initializer()
6376 Result += PropDecl->getName(); Result += "\","; in Write_prop_list_t_initializer()
6381 Result += "\""; Result += QuotePropertyTypeString; Result += "\""; in Write_prop_list_t_initializer()
6383 Result += "}}\n"; in Write_prop_list_t_initializer()
6385 Result += "},\n"; in Write_prop_list_t_initializer()
6387 Result += "};\n"; in Write_prop_list_t_initializer()
6405 static void Write__class_ro_t_initializer(ASTContext *Context, std::string &Result, in Write__class_ro_t_initializer() argument
6415 Result += "\nstatic struct _class_ro_t "; in Write__class_ro_t_initializer()
6416 Result += VarName; Result += ClassName; in Write__class_ro_t_initializer()
6417 Result += " __attribute__ ((used, section (\"__DATA,__objc_const\"))) = {\n"; in Write__class_ro_t_initializer()
6418 Result += "\t"; in Write__class_ro_t_initializer()
6419 Result += llvm::utostr(flags); Result += ", "; in Write__class_ro_t_initializer()
6420 Result += InstanceStart; Result += ", "; in Write__class_ro_t_initializer()
6421 Result += InstanceSize; Result += ", \n"; in Write__class_ro_t_initializer()
6422 Result += "\t"; in Write__class_ro_t_initializer()
6426 Result += "(unsigned int)0, \n\t"; in Write__class_ro_t_initializer()
6428 Result += "0, \n\t"; in Write__class_ro_t_initializer()
6429 Result += "\""; Result += ClassName; Result += "\",\n\t"; in Write__class_ro_t_initializer()
6432 Result += "(const struct _method_list_t *)&"; in Write__class_ro_t_initializer()
6434 Result += "_OBJC_$_CLASS_METHODS_"; in Write__class_ro_t_initializer()
6436 Result += "_OBJC_$_INSTANCE_METHODS_"; in Write__class_ro_t_initializer()
6437 Result += ClassName; in Write__class_ro_t_initializer()
6438 Result += ",\n\t"; in Write__class_ro_t_initializer()
6441 Result += "0, \n\t"; in Write__class_ro_t_initializer()
6444 Result += "(const struct _objc_protocol_list *)&"; in Write__class_ro_t_initializer()
6445 Result += "_OBJC_CLASS_PROTOCOLS_$_"; Result += ClassName; in Write__class_ro_t_initializer()
6446 Result += ",\n\t"; in Write__class_ro_t_initializer()
6449 Result += "0, \n\t"; in Write__class_ro_t_initializer()
6452 Result += "(const struct _ivar_list_t *)&"; in Write__class_ro_t_initializer()
6453 Result += "_OBJC_$_INSTANCE_VARIABLES_"; Result += ClassName; in Write__class_ro_t_initializer()
6454 Result += ",\n\t"; in Write__class_ro_t_initializer()
6457 Result += "0, \n\t"; in Write__class_ro_t_initializer()
6460 Result += "0, \n\t"; in Write__class_ro_t_initializer()
6462 Result += "(const struct _prop_list_t *)&"; in Write__class_ro_t_initializer()
6463 Result += "_OBJC_$_PROP_LIST_"; Result += ClassName; in Write__class_ro_t_initializer()
6464 Result += ",\n"; in Write__class_ro_t_initializer()
6467 Result += "0, \n"; in Write__class_ro_t_initializer()
6469 Result += "};\n"; in Write__class_ro_t_initializer()
6472 static void Write_class_t(ASTContext *Context, std::string &Result, in Write_class_t() argument
6488 Result += "\n"; in Write_class_t()
6489 Result += "extern \"C\" "; in Write_class_t()
6491 Result += "__declspec(dllexport) "; in Write_class_t()
6493 Result += "__declspec(dllimport) "; in Write_class_t()
6495 Result += "struct _class_t OBJC_CLASS_$_"; in Write_class_t()
6496 Result += CDecl->getNameAsString(); in Write_class_t()
6497 Result += ";\n"; in Write_class_t()
6502 Result += "\n"; in Write_class_t()
6503 Result += "extern \"C\" "; in Write_class_t()
6505 Result += "__declspec(dllexport) "; in Write_class_t()
6507 Result += "__declspec(dllimport) "; in Write_class_t()
6509 Result += "struct _class_t "; in Write_class_t()
6510 Result += VarName; in Write_class_t()
6511 Result += SuperClass->getNameAsString(); in Write_class_t()
6512 Result += ";\n"; in Write_class_t()
6515 Result += "extern \"C\" "; in Write_class_t()
6517 Result += "__declspec(dllexport) "; in Write_class_t()
6519 Result += "__declspec(dllimport) "; in Write_class_t()
6521 Result += "struct _class_t "; in Write_class_t()
6522 Result += VarName; in Write_class_t()
6523 Result += RootClass->getNameAsString(); in Write_class_t()
6524 Result += ";\n"; in Write_class_t()
6528 Result += "\nextern \"C\" __declspec(dllexport) struct _class_t "; in Write_class_t()
6529 Result += VarName; Result += CDecl->getNameAsString(); in Write_class_t()
6530 Result += " __attribute__ ((used, section (\"__DATA,__objc_data\"))) = {\n"; in Write_class_t()
6531 Result += "\t"; in Write_class_t()
6534 Result += "0, // &"; Result += VarName; in Write_class_t()
6535 Result += RootClass->getNameAsString(); in Write_class_t()
6536 Result += ",\n\t"; in Write_class_t()
6537 Result += "0, // &"; Result += VarName; in Write_class_t()
6538 Result += CDecl->getSuperClass()->getNameAsString(); in Write_class_t()
6539 Result += ",\n\t"; in Write_class_t()
6542 Result += "0, // &"; Result += VarName; in Write_class_t()
6543 Result += CDecl->getNameAsString(); in Write_class_t()
6544 Result += ",\n\t"; in Write_class_t()
6545 Result += "0, // &OBJC_CLASS_$_"; Result += CDecl->getNameAsString(); in Write_class_t()
6546 Result += ",\n\t"; in Write_class_t()
6550 Result += "0, // &OBJC_METACLASS_$_"; in Write_class_t()
6551 Result += CDecl->getNameAsString(); in Write_class_t()
6552 Result += ",\n\t"; in Write_class_t()
6554 Result += "0, // &"; Result += VarName; in Write_class_t()
6555 Result += CDecl->getSuperClass()->getNameAsString(); in Write_class_t()
6556 Result += ",\n\t"; in Write_class_t()
6559 Result += "0,\n\t"; in Write_class_t()
6561 Result += "0, // (void *)&_objc_empty_cache,\n\t"; in Write_class_t()
6562 Result += "0, // unused, was (void *)&_objc_empty_vtable,\n\t"; in Write_class_t()
6564 Result += "&_OBJC_METACLASS_RO_$_"; in Write_class_t()
6566 Result += "&_OBJC_CLASS_RO_$_"; in Write_class_t()
6567 Result += CDecl->getNameAsString(); in Write_class_t()
6568 Result += ",\n};\n"; in Write_class_t()
6578 Result += "static void OBJC_CLASS_SETUP_$_"; in Write_class_t()
6579 Result += CDecl->getNameAsString(); in Write_class_t()
6580 Result += "(void ) {\n"; in Write_class_t()
6581 Result += "\tOBJC_METACLASS_$_"; Result += CDecl->getNameAsString(); in Write_class_t()
6582 Result += ".isa = "; Result += "&OBJC_METACLASS_$_"; in Write_class_t()
6583 Result += RootClass->getNameAsString(); Result += ";\n"; in Write_class_t()
6585 Result += "\tOBJC_METACLASS_$_"; Result += CDecl->getNameAsString(); in Write_class_t()
6586 Result += ".superclass = "; in Write_class_t()
6588 Result += "&OBJC_CLASS_$_"; in Write_class_t()
6590 Result += "&OBJC_METACLASS_$_"; in Write_class_t()
6592 Result += SuperClass->getNameAsString(); Result += ";\n"; in Write_class_t()
6594 Result += "\tOBJC_METACLASS_$_"; Result += CDecl->getNameAsString(); in Write_class_t()
6595 Result += ".cache = "; Result += "&_objc_empty_cache"; Result += ";\n"; in Write_class_t()
6597 Result += "\tOBJC_CLASS_$_"; Result += CDecl->getNameAsString(); in Write_class_t()
6598 Result += ".isa = "; Result += "&OBJC_METACLASS_$_"; in Write_class_t()
6599 Result += CDecl->getNameAsString(); Result += ";\n"; in Write_class_t()
6602 Result += "\tOBJC_CLASS_$_"; Result += CDecl->getNameAsString(); in Write_class_t()
6603 Result += ".superclass = "; Result += "&OBJC_CLASS_$_"; in Write_class_t()
6604 Result += SuperClass->getNameAsString(); Result += ";\n"; in Write_class_t()
6607 Result += "\tOBJC_CLASS_$_"; Result += CDecl->getNameAsString(); in Write_class_t()
6608 Result += ".cache = "; Result += "&_objc_empty_cache"; Result += ";\n"; in Write_class_t()
6609 Result += "}\n"; in Write_class_t()
6613 std::string &Result, in Write_category_t() argument
6624 Result += "\n"; in Write_category_t()
6625 Result += "extern \"C\" "; in Write_category_t()
6627 Result += "__declspec(dllexport) "; in Write_category_t()
6629 Result += "__declspec(dllimport) "; in Write_category_t()
6631 Result += "struct _class_t "; in Write_category_t()
6632 Result += "OBJC_CLASS_$_"; Result += ClassName; in Write_category_t()
6633 Result += ";\n"; in Write_category_t()
6635 Result += "\nstatic struct _category_t "; in Write_category_t()
6636 Result += "_OBJC_$_CATEGORY_"; in Write_category_t()
6637 Result += ClassName; Result += "_$_"; Result += CatName; in Write_category_t()
6638 Result += " __attribute__ ((used, section (\"__DATA,__objc_const\"))) = \n"; in Write_category_t()
6639 Result += "{\n"; in Write_category_t()
6640 Result += "\t\""; Result += ClassName; Result += "\",\n"; in Write_category_t()
6641 Result += "\t0, // &"; Result += "OBJC_CLASS_$_"; Result += ClassName; in Write_category_t()
6642 Result += ",\n"; in Write_category_t()
6644 Result += "\t(const struct _method_list_t *)&"; in Write_category_t()
6645 Result += "_OBJC_$_CATEGORY_INSTANCE_METHODS_"; in Write_category_t()
6646 Result += ClassName; Result += "_$_"; Result += CatName; in Write_category_t()
6647 Result += ",\n"; in Write_category_t()
6650 Result += "\t0,\n"; in Write_category_t()
6653 Result += "\t(const struct _method_list_t *)&"; in Write_category_t()
6654 Result += "_OBJC_$_CATEGORY_CLASS_METHODS_"; in Write_category_t()
6655 Result += ClassName; Result += "_$_"; Result += CatName; in Write_category_t()
6656 Result += ",\n"; in Write_category_t()
6659 Result += "\t0,\n"; in Write_category_t()
6662 Result += "\t(const struct _protocol_list_t *)&"; in Write_category_t()
6663 Result += "_OBJC_CATEGORY_PROTOCOLS_$_"; in Write_category_t()
6664 Result += ClassName; Result += "_$_"; Result += CatName; in Write_category_t()
6665 Result += ",\n"; in Write_category_t()
6668 Result += "\t0,\n"; in Write_category_t()
6671 Result += "\t(const struct _prop_list_t *)&"; Result += "_OBJC_$_PROP_LIST_"; in Write_category_t()
6672 Result += ClassName; Result += "_$_"; Result += CatName; in Write_category_t()
6673 Result += ",\n"; in Write_category_t()
6676 Result += "\t0,\n"; in Write_category_t()
6678 Result += "};\n"; in Write_category_t()
6681 Result += "static void OBJC_CATEGORY_SETUP_$_"; in Write_category_t()
6682 Result += ClassDecl->getNameAsString(); in Write_category_t()
6683 Result += "_$_"; in Write_category_t()
6684 Result += CatName; in Write_category_t()
6685 Result += "(void ) {\n"; in Write_category_t()
6686 Result += "\t_OBJC_$_CATEGORY_"; in Write_category_t()
6687 Result += ClassDecl->getNameAsString(); in Write_category_t()
6688 Result += "_$_"; in Write_category_t()
6689 Result += CatName; in Write_category_t()
6690 Result += ".cls = "; Result += "&OBJC_CLASS_$_"; Result += ClassName; in Write_category_t()
6691 Result += ";\n}\n"; in Write_category_t()
6695 ASTContext *Context, std::string &Result, in Write__extendedMethodTypes_initializer() argument
6702 Result += "\nstatic const char *"; in Write__extendedMethodTypes_initializer()
6703 Result += VarName; Result += ProtocolName; in Write__extendedMethodTypes_initializer()
6704 Result += " [] __attribute__ ((used, section (\"__DATA,__objc_const\"))) = \n"; in Write__extendedMethodTypes_initializer()
6705 Result += "{\n"; in Write__extendedMethodTypes_initializer()
6712 Result += "\t\""; Result += QuoteMethodTypeString; Result += "\""; in Write__extendedMethodTypes_initializer()
6714 Result += "\n};\n"; in Write__extendedMethodTypes_initializer()
6716 Result += ",\n"; in Write__extendedMethodTypes_initializer()
6723 std::string &Result, in Write_IvarOffsetVar() argument
6737 Result += "\n"; in Write_IvarOffsetVar()
6741 Result += "__declspec(allocate(\".objc_ivar$B\")) "; in Write_IvarOffsetVar()
6746 Result += "extern \"C\" unsigned long int "; in Write_IvarOffsetVar()
6748 Result += "extern \"C\" __declspec(dllexport) unsigned long int "; in Write_IvarOffsetVar()
6750 RewriteObj.ObjCIvarBitfieldGroupOffset(IvarDecl, Result); in Write_IvarOffsetVar()
6752 WriteInternalIvarName(CDecl, IvarDecl, Result); in Write_IvarOffsetVar()
6753 Result += " __attribute__ ((used, section (\"__DATA,__objc_ivar\")))"; in Write_IvarOffsetVar()
6754 Result += " = "; in Write_IvarOffsetVar()
6755 RewriteObj.RewriteIvarOffsetComputation(IvarDecl, Result); in Write_IvarOffsetVar()
6756 Result += ";\n"; in Write_IvarOffsetVar()
6765 ASTContext *Context, std::string &Result, in Write__ivar_list_t_initializer() argument
6770 Write_IvarOffsetVar(RewriteObj, Context, Result, OriginalIvars, CDecl); in Write__ivar_list_t_initializer()
6785 Result += "\nstatic "; in Write__ivar_list_t_initializer()
6786 Write__ivar_list_t_TypeDecl(Result, Ivars.size()); in Write__ivar_list_t_initializer()
6787 Result += " "; Result += VarName; in Write__ivar_list_t_initializer()
6788 Result += CDecl->getNameAsString(); in Write__ivar_list_t_initializer()
6789 Result += " __attribute__ ((used, section (\"__DATA,__objc_const\"))) = {\n"; in Write__ivar_list_t_initializer()
6790 Result += "\t"; Result += "sizeof(_ivar_t)"; Result += ",\n"; in Write__ivar_list_t_initializer()
6791 Result += "\t"; Result += utostr(Ivars.size()); Result += ",\n"; in Write__ivar_list_t_initializer()
6795 Result += "\t{{"; in Write__ivar_list_t_initializer()
6797 Result += "\t {"; in Write__ivar_list_t_initializer()
6798 Result += "(unsigned long int *)&"; in Write__ivar_list_t_initializer()
6800 RewriteObj.ObjCIvarBitfieldGroupOffset(IvarDecl, Result); in Write__ivar_list_t_initializer()
6802 WriteInternalIvarName(CDecl, IvarDecl, Result); in Write__ivar_list_t_initializer()
6803 Result += ", "; in Write__ivar_list_t_initializer()
6805 Result += "\""; in Write__ivar_list_t_initializer()
6807 RewriteObj.ObjCIvarBitfieldGroupDecl(Ivars[i], Result); in Write__ivar_list_t_initializer()
6809 Result += IvarDecl->getName(); in Write__ivar_list_t_initializer()
6810 Result += "\", "; in Write__ivar_list_t_initializer()
6820 Result += "\""; Result += QuoteIvarTypeString; Result += "\", "; in Write__ivar_list_t_initializer()
6826 Result += llvm::utostr(Align); Result += ", "; in Write__ivar_list_t_initializer()
6828 Result += llvm::utostr(Size.getQuantity()); in Write__ivar_list_t_initializer()
6830 Result += "}}\n"; in Write__ivar_list_t_initializer()
6832 Result += "},\n"; in Write__ivar_list_t_initializer()
6834 Result += "};\n"; in Write__ivar_list_t_initializer()
6840 std::string &Result) { in RewriteObjCProtocolMetaData() argument
6845 WriteModernMetadataDeclarations(Context, Result); in RewriteObjCProtocolMetaData()
6852 RewriteObjCProtocolMetaData(I, Result); in RewriteObjCProtocolMetaData()
6882 Write__extendedMethodTypes_initializer(*this, Context, Result, in RewriteObjCProtocolMetaData()
6888 Write_protocol_list_initializer(Context, Result, SuperProtocols, in RewriteObjCProtocolMetaData()
6892 Write_method_list_t_initializer(*this, Context, Result, InstanceMethods, in RewriteObjCProtocolMetaData()
6896 Write_method_list_t_initializer(*this, Context, Result, ClassMethods, in RewriteObjCProtocolMetaData()
6900 Write_method_list_t_initializer(*this, Context, Result, OptInstanceMethods, in RewriteObjCProtocolMetaData()
6904 Write_method_list_t_initializer(*this, Context, Result, OptClassMethods, in RewriteObjCProtocolMetaData()
6911 Write_prop_list_t_initializer(*this, Context, Result, ProtocolProperties, in RewriteObjCProtocolMetaData()
6917 Result += "\n"; in RewriteObjCProtocolMetaData()
6919 Result += "static "; in RewriteObjCProtocolMetaData()
6920 Result += "struct _protocol_t _OBJC_PROTOCOL_"; in RewriteObjCProtocolMetaData()
6921 Result += PDecl->getNameAsString(); in RewriteObjCProtocolMetaData()
6922 Result += " __attribute__ ((used)) = {\n"; in RewriteObjCProtocolMetaData()
6923 Result += "\t0,\n"; // id is; is null in RewriteObjCProtocolMetaData()
6924 Result += "\t\""; Result += PDecl->getNameAsString(); Result += "\",\n"; in RewriteObjCProtocolMetaData()
6926 Result += "\t(const struct _protocol_list_t *)&"; Result += "_OBJC_PROTOCOL_REFS_"; in RewriteObjCProtocolMetaData()
6927 Result += PDecl->getNameAsString(); Result += ",\n"; in RewriteObjCProtocolMetaData()
6930 Result += "\t0,\n"; in RewriteObjCProtocolMetaData()
6932 Result += "\t(const struct method_list_t *)&_OBJC_PROTOCOL_INSTANCE_METHODS_"; in RewriteObjCProtocolMetaData()
6933 Result += PDecl->getNameAsString(); Result += ",\n"; in RewriteObjCProtocolMetaData()
6936 Result += "\t0,\n"; in RewriteObjCProtocolMetaData()
6939 Result += "\t(const struct method_list_t *)&_OBJC_PROTOCOL_CLASS_METHODS_"; in RewriteObjCProtocolMetaData()
6940 Result += PDecl->getNameAsString(); Result += ",\n"; in RewriteObjCProtocolMetaData()
6943 Result += "\t0,\n"; in RewriteObjCProtocolMetaData()
6946 Result += "\t(const struct method_list_t *)&_OBJC_PROTOCOL_OPT_INSTANCE_METHODS_"; in RewriteObjCProtocolMetaData()
6947 Result += PDecl->getNameAsString(); Result += ",\n"; in RewriteObjCProtocolMetaData()
6950 Result += "\t0,\n"; in RewriteObjCProtocolMetaData()
6953 Result += "\t(const struct method_list_t *)&_OBJC_PROTOCOL_OPT_CLASS_METHODS_"; in RewriteObjCProtocolMetaData()
6954 Result += PDecl->getNameAsString(); Result += ",\n"; in RewriteObjCProtocolMetaData()
6957 Result += "\t0,\n"; in RewriteObjCProtocolMetaData()
6960 Result += "\t(const struct _prop_list_t *)&_OBJC_PROTOCOL_PROPERTIES_"; in RewriteObjCProtocolMetaData()
6961 Result += PDecl->getNameAsString(); Result += ",\n"; in RewriteObjCProtocolMetaData()
6964 Result += "\t0,\n"; in RewriteObjCProtocolMetaData()
6966 Result += "\t"; Result += "sizeof(_protocol_t)"; Result += ",\n"; in RewriteObjCProtocolMetaData()
6967 Result += "\t0,\n"; in RewriteObjCProtocolMetaData()
6970 Result += "\t(const char **)&"; Result += "_OBJC_PROTOCOL_METHOD_TYPES_"; in RewriteObjCProtocolMetaData()
6971 Result += PDecl->getNameAsString(); in RewriteObjCProtocolMetaData()
6972 Result += "\n};\n"; in RewriteObjCProtocolMetaData()
6975 Result += "\t0\n};\n"; in RewriteObjCProtocolMetaData()
6978 Result += "static "; in RewriteObjCProtocolMetaData()
6979 Result += "struct _protocol_t *"; in RewriteObjCProtocolMetaData()
6980 Result += "_OBJC_LABEL_PROTOCOL_$_"; Result += PDecl->getNameAsString(); in RewriteObjCProtocolMetaData()
6981 Result += " = &_OBJC_PROTOCOL_"; Result += PDecl->getNameAsString(); in RewriteObjCProtocolMetaData()
6982 Result += ";\n"; in RewriteObjCProtocolMetaData()
7002 std::string &Result) { in RewriteObjCClassMetaData() argument
7010 WriteModernMetadataDeclarations(Context, Result); in RewriteObjCClassMetaData()
7021 Write__ivar_list_t_initializer(*this, Context, Result, IVars, in RewriteObjCClassMetaData()
7048 Write_method_list_t_initializer(*this, Context, Result, InstanceMethods, in RewriteObjCClassMetaData()
7054 Write_method_list_t_initializer(*this, Context, Result, ClassMethods, in RewriteObjCClassMetaData()
7068 RewriteObjCProtocolMetaData(*I, Result); in RewriteObjCClassMetaData()
7071 Write_protocol_list_initializer(Context, Result, in RewriteObjCClassMetaData()
7079 Write_prop_list_t_initializer(*this, Context, Result, ClassProperties, in RewriteObjCClassMetaData()
7098 Write__class_ro_t_initializer(Context, Result, flags, in RewriteObjCClassMetaData()
7137 Write__class_ro_t_initializer(Context, Result, flags, in RewriteObjCClassMetaData()
7146 Write_class_t(Context, Result, in RewriteObjCClassMetaData()
7150 Write_class_t(Context, Result, in RewriteObjCClassMetaData()
7158 void RewriteModernObjC::RewriteClassSetupInitHook(std::string &Result) { in RewriteClassSetupInitHook() argument
7162 Result += "#pragma section(\".objc_inithooks$B\", long, read, write)\n"; in RewriteClassSetupInitHook()
7163 Result += "__declspec(allocate(\".objc_inithooks$B\")) "; in RewriteClassSetupInitHook()
7164 Result += "static void *OBJC_CLASS_SETUP[] = {\n"; in RewriteClassSetupInitHook()
7168 Result += "\t(void *)&OBJC_CLASS_SETUP_$_"; in RewriteClassSetupInitHook()
7169 Result += CDecl->getName(); Result += ",\n"; in RewriteClassSetupInitHook()
7171 Result += "};\n"; in RewriteClassSetupInitHook()
7174 void RewriteModernObjC::RewriteMetaDataIntoBuffer(std::string &Result) { in RewriteMetaDataIntoBuffer() argument
7180 RewriteObjCClassMetaData(ClassImplementation[i], Result); in RewriteMetaDataIntoBuffer()
7182 RewriteClassSetupInitHook(Result); in RewriteMetaDataIntoBuffer()
7186 RewriteObjCCategoryImplDecl(CategoryImplementation[i], Result); in RewriteMetaDataIntoBuffer()
7188 RewriteCategorySetupInitHook(Result); in RewriteMetaDataIntoBuffer()
7192 Result += "__declspec(allocate(\".objc_classlist$B\")) "; in RewriteMetaDataIntoBuffer()
7193 Result += "static struct _class_t *L_OBJC_LABEL_CLASS_$ ["; in RewriteMetaDataIntoBuffer()
7194 Result += llvm::utostr(ClsDefCount); Result += "]"; in RewriteMetaDataIntoBuffer()
7195 Result += in RewriteMetaDataIntoBuffer()
7199 Result += "\t&OBJC_CLASS_$_"; in RewriteMetaDataIntoBuffer()
7200 Result += ClassImplementation[i]->getNameAsString(); in RewriteMetaDataIntoBuffer()
7201 Result += ",\n"; in RewriteMetaDataIntoBuffer()
7203 Result += "};\n"; in RewriteMetaDataIntoBuffer()
7207 Result += "__declspec(allocate(\".objc_nlclslist$B\")) \n"; in RewriteMetaDataIntoBuffer()
7208 Result += "static struct _class_t *_OBJC_LABEL_NONLAZY_CLASS_$[] = {\n\t"; in RewriteMetaDataIntoBuffer()
7210 Result += "\t&OBJC_CLASS_$_"; Result += DefinedNonLazyClasses[i]->getNameAsString(); in RewriteMetaDataIntoBuffer()
7211 Result += ",\n"; in RewriteMetaDataIntoBuffer()
7213 Result += "};\n"; in RewriteMetaDataIntoBuffer()
7219 Result += "__declspec(allocate(\".objc_catlist$B\")) "; in RewriteMetaDataIntoBuffer()
7220 Result += "static struct _category_t *L_OBJC_LABEL_CATEGORY_$ ["; in RewriteMetaDataIntoBuffer()
7221 Result += llvm::utostr(CatDefCount); Result += "]"; in RewriteMetaDataIntoBuffer()
7222 Result += in RewriteMetaDataIntoBuffer()
7226 Result += "\t&_OBJC_$_CATEGORY_"; in RewriteMetaDataIntoBuffer()
7227 Result += in RewriteMetaDataIntoBuffer()
7229 Result += "_$_"; in RewriteMetaDataIntoBuffer()
7230 Result += CategoryImplementation[i]->getNameAsString(); in RewriteMetaDataIntoBuffer()
7231 Result += ",\n"; in RewriteMetaDataIntoBuffer()
7233 Result += "};\n"; in RewriteMetaDataIntoBuffer()
7238 Result += "__declspec(allocate(\".objc_nlcatlist$B\")) \n"; in RewriteMetaDataIntoBuffer()
7239 Result += "static struct _category_t *_OBJC_LABEL_NONLAZY_CATEGORY_$[] = {\n\t"; in RewriteMetaDataIntoBuffer()
7241 Result += "\t&_OBJC_$_CATEGORY_"; in RewriteMetaDataIntoBuffer()
7242 Result += in RewriteMetaDataIntoBuffer()
7244 Result += "_$_"; in RewriteMetaDataIntoBuffer()
7245 Result += DefinedNonLazyCategories[i]->getNameAsString(); in RewriteMetaDataIntoBuffer()
7246 Result += ",\n"; in RewriteMetaDataIntoBuffer()
7248 Result += "};\n"; in RewriteMetaDataIntoBuffer()
7252 void RewriteModernObjC::WriteImageInfo(std::string &Result) { in WriteImageInfo() argument
7254 Result += "__declspec(allocate(\".objc_imageinfo$B\")) \n"; in WriteImageInfo()
7256 Result += "static struct IMAGE_INFO { unsigned version; unsigned flag; } "; in WriteImageInfo()
7258 Result += "_OBJC_IMAGE_INFO = { 0, 2 };\n"; in WriteImageInfo()
7264 std::string &Result) { in RewriteObjCCategoryImplDecl() argument
7265 WriteModernMetadataDeclarations(Context, Result); in RewriteObjCCategoryImplDecl()
7296 Write_method_list_t_initializer(*this, Context, Result, InstanceMethods, in RewriteObjCCategoryImplDecl()
7302 Write_method_list_t_initializer(*this, Context, Result, ClassMethods, in RewriteObjCCategoryImplDecl()
7312 RewriteObjCProtocolMetaData(I, Result); in RewriteObjCCategoryImplDecl()
7314 Write_protocol_list_initializer(Context, Result, in RewriteObjCCategoryImplDecl()
7322 Write_prop_list_t_initializer(*this, Context, Result, ClassProperties, in RewriteObjCCategoryImplDecl()
7327 Write_category_t(*this, Context, Result, in RewriteObjCCategoryImplDecl()
7340 void RewriteModernObjC::RewriteCategorySetupInitHook(std::string &Result) { in RewriteCategorySetupInitHook() argument
7344 Result += "#pragma section(\".objc_inithooks$B\", long, read, write)\n"; in RewriteCategorySetupInitHook()
7345 Result += "__declspec(allocate(\".objc_inithooks$B\")) "; in RewriteCategorySetupInitHook()
7346 Result += "static void *OBJC_CATEGORY_SETUP[] = {\n"; in RewriteCategorySetupInitHook()
7351 Result += "\t(void *)&OBJC_CATEGORY_SETUP_$_"; in RewriteCategorySetupInitHook()
7352 Result += ClassDecl->getName(); in RewriteCategorySetupInitHook()
7353 Result += "_$_"; in RewriteCategorySetupInitHook()
7354 Result += CatDecl->getName(); in RewriteCategorySetupInitHook()
7355 Result += ",\n"; in RewriteCategorySetupInitHook()
7357 Result += "};\n"; in RewriteCategorySetupInitHook()
7368 std::string &Result) { in RewriteObjCMethodsMetaData() argument
7378 Result += "\nstruct _objc_method {\n"; in RewriteObjCMethodsMetaData()
7379 Result += "\tSEL _cmd;\n"; in RewriteObjCMethodsMetaData()
7380 Result += "\tchar *method_types;\n"; in RewriteObjCMethodsMetaData()
7381 Result += "\tvoid *_imp;\n"; in RewriteObjCMethodsMetaData()
7382 Result += "};\n"; in RewriteObjCMethodsMetaData()
7396 Result += "\n"; in RewriteObjCMethodsMetaData()
7399 Result += "__declspec(allocate(\".inst_meth$B\")) "; in RewriteObjCMethodsMetaData()
7401 Result += "__declspec(allocate(\".cls_meth$B\")) "; in RewriteObjCMethodsMetaData()
7403 Result += "static struct {\n"; in RewriteObjCMethodsMetaData()
7404 Result += "\tstruct _objc_method_list *next_method;\n"; in RewriteObjCMethodsMetaData()
7405 Result += "\tint method_count;\n"; in RewriteObjCMethodsMetaData()
7406 Result += "\tstruct _objc_method method_list["; in RewriteObjCMethodsMetaData()
7407 Result += utostr(NumMethods); in RewriteObjCMethodsMetaData()
7408 Result += "];\n} _OBJC_"; in RewriteObjCMethodsMetaData()
7409 Result += prefix; in RewriteObjCMethodsMetaData()
7410 Result += IsInstanceMethod ? "INSTANCE" : "CLASS"; in RewriteObjCMethodsMetaData()
7411 Result += "_METHODS_"; in RewriteObjCMethodsMetaData()
7412 Result += ClassName; in RewriteObjCMethodsMetaData()
7413 Result += " __attribute__ ((used, section (\"__OBJC, __"; in RewriteObjCMethodsMetaData()
7414 Result += IsInstanceMethod ? "inst" : "cls"; in RewriteObjCMethodsMetaData()
7415 Result += "_meth\")))= "; in RewriteObjCMethodsMetaData()
7416 Result += "{\n\t0, " + utostr(NumMethods) + "\n"; in RewriteObjCMethodsMetaData()
7418 Result += "\t,{{(SEL)\""; in RewriteObjCMethodsMetaData()
7419 Result += (*MethodBegin)->getSelector().getAsString().c_str(); in RewriteObjCMethodsMetaData()
7422 Result += "\", \""; in RewriteObjCMethodsMetaData()
7423 Result += MethodTypeString; in RewriteObjCMethodsMetaData()
7424 Result += "\", (void *)"; in RewriteObjCMethodsMetaData()
7425 Result += MethodInternalNames[*MethodBegin]; in RewriteObjCMethodsMetaData()
7426 Result += "}\n"; in RewriteObjCMethodsMetaData()
7428 Result += "\t ,{(SEL)\""; in RewriteObjCMethodsMetaData()
7429 Result += (*MethodBegin)->getSelector().getAsString().c_str(); in RewriteObjCMethodsMetaData()
7432 Result += "\", \""; in RewriteObjCMethodsMetaData()
7433 Result += MethodTypeString; in RewriteObjCMethodsMetaData()
7434 Result += "\", (void *)"; in RewriteObjCMethodsMetaData()
7435 Result += MethodInternalNames[*MethodBegin]; in RewriteObjCMethodsMetaData()
7436 Result += "}\n"; in RewriteObjCMethodsMetaData()
7438 Result += "\t }\n};\n"; in RewriteObjCMethodsMetaData()