reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
2494 Preamble += "static __NSConstantStringImpl " + S; 2495 Preamble += " __attribute__ ((section (\"__DATA, __cfstring\"))) = {__CFConstantStringClassReference,"; 2496 Preamble += "0x000007c8,"; // utf8_str 2501 Preamble += prettyBuf.str(); 2502 Preamble += ","; 2503 Preamble += utostr(Exp->getString()->getByteLength()) + "};\n"; 4908 RewriteObjCProtocolMetaData(ProtDecl, "", "", Preamble); 4910 InsertText(SM->getLocForStartOfFile(MainFileID), Preamble, false); 4941 Preamble = "#pragma once\n"; 4942 Preamble += "struct objc_selector; struct objc_class;\n"; 4943 Preamble += "struct __rw_objc_super { struct objc_object *object; "; 4944 Preamble += "struct objc_object *superClass; "; 4947 Preamble += "__rw_objc_super(struct objc_object *o, struct objc_object *s) " 4949 Preamble += "object(o), superClass(s) {} "; 4951 Preamble += "};\n"; 4952 Preamble += "#ifndef _REWRITER_typedef_Protocol\n"; 4953 Preamble += "typedef struct objc_object Protocol;\n"; 4954 Preamble += "#define _REWRITER_typedef_Protocol\n"; 4955 Preamble += "#endif\n"; 4957 Preamble += "#define __OBJC_RW_DLLIMPORT extern \"C\" __declspec(dllimport)\n"; 4958 Preamble += "#define __OBJC_RW_STATICIMPORT extern \"C\"\n"; 4960 Preamble += "#define __OBJC_RW_DLLIMPORT extern\n"; 4961 Preamble += "__OBJC_RW_DLLIMPORT struct objc_object *objc_msgSend"; 4962 Preamble += "(struct objc_object *, struct objc_selector *, ...);\n"; 4963 Preamble += "__OBJC_RW_DLLIMPORT struct objc_object *objc_msgSendSuper"; 4964 Preamble += "(struct objc_super *, struct objc_selector *, ...);\n"; 4965 Preamble += "__OBJC_RW_DLLIMPORT struct objc_object* objc_msgSend_stret"; 4966 Preamble += "(struct objc_object *, struct objc_selector *, ...);\n"; 4967 Preamble += "__OBJC_RW_DLLIMPORT struct objc_object* objc_msgSendSuper_stret"; 4968 Preamble += "(struct objc_super *, struct objc_selector *, ...);\n"; 4969 Preamble += "__OBJC_RW_DLLIMPORT double objc_msgSend_fpret"; 4970 Preamble += "(struct objc_object *, struct objc_selector *, ...);\n"; 4971 Preamble += "__OBJC_RW_DLLIMPORT struct objc_object *objc_getClass"; 4972 Preamble += "(const char *);\n"; 4973 Preamble += "__OBJC_RW_DLLIMPORT struct objc_class *class_getSuperclass"; 4974 Preamble += "(struct objc_class *);\n"; 4975 Preamble += "__OBJC_RW_DLLIMPORT struct objc_object *objc_getMetaClass"; 4976 Preamble += "(const char *);\n"; 4977 Preamble += "__OBJC_RW_DLLIMPORT void objc_exception_throw(struct objc_object *);\n"; 4978 Preamble += "__OBJC_RW_DLLIMPORT void objc_exception_try_enter(void *);\n"; 4979 Preamble += "__OBJC_RW_DLLIMPORT void objc_exception_try_exit(void *);\n"; 4980 Preamble += "__OBJC_RW_DLLIMPORT struct objc_object *objc_exception_extract(void *);\n"; 4981 Preamble += "__OBJC_RW_DLLIMPORT int objc_exception_match"; 4982 Preamble += "(struct objc_class *, struct objc_object *);\n"; 4984 Preamble += "__OBJC_RW_DLLIMPORT int objc_sync_enter(struct objc_object *);\n"; 4985 Preamble += "__OBJC_RW_DLLIMPORT int objc_sync_exit(struct objc_object *);\n"; 4986 Preamble += "__OBJC_RW_DLLIMPORT Protocol *objc_getProtocol(const char *);\n"; 4987 Preamble += "#ifndef __FASTENUMERATIONSTATE\n"; 4988 Preamble += "struct __objcFastEnumerationState {\n\t"; 4989 Preamble += "unsigned long state;\n\t"; 4990 Preamble += "void **itemsPtr;\n\t"; 4991 Preamble += "unsigned long *mutationsPtr;\n\t"; 4992 Preamble += "unsigned long extra[5];\n};\n"; 4993 Preamble += "__OBJC_RW_DLLIMPORT void objc_enumerationMutation(struct objc_object *);\n"; 4994 Preamble += "#define __FASTENUMERATIONSTATE\n"; 4995 Preamble += "#endif\n"; 4996 Preamble += "#ifndef __NSCONSTANTSTRINGIMPL\n"; 4997 Preamble += "struct __NSConstantStringImpl {\n"; 4998 Preamble += " int *isa;\n"; 4999 Preamble += " int flags;\n"; 5000 Preamble += " char *str;\n"; 5001 Preamble += " long length;\n"; 5002 Preamble += "};\n"; 5003 Preamble += "#ifdef CF_EXPORT_CONSTANT_STRING\n"; 5004 Preamble += "extern \"C\" __declspec(dllexport) int __CFConstantStringClassReference[];\n"; 5005 Preamble += "#else\n"; 5006 Preamble += "__OBJC_RW_DLLIMPORT int __CFConstantStringClassReference[];\n"; 5007 Preamble += "#endif\n"; 5008 Preamble += "#define __NSCONSTANTSTRINGIMPL\n"; 5009 Preamble += "#endif\n"; 5011 Preamble += "#ifndef BLOCK_IMPL\n"; 5012 Preamble += "#define BLOCK_IMPL\n"; 5013 Preamble += "struct __block_impl {\n"; 5014 Preamble += " void *isa;\n"; 5015 Preamble += " int Flags;\n"; 5016 Preamble += " int Reserved;\n"; 5017 Preamble += " void *FuncPtr;\n"; 5018 Preamble += "};\n"; 5019 Preamble += "// Runtime copy/destroy helper functions (from Block_private.h)\n"; 5020 Preamble += "#ifdef __OBJC_EXPORT_BLOCKS\n"; 5021 Preamble += "extern \"C\" __declspec(dllexport) " 5023 Preamble += "extern \"C\" __declspec(dllexport) void _Block_object_dispose(const void *, const int);\n"; 5024 Preamble += "extern \"C\" __declspec(dllexport) void *_NSConcreteGlobalBlock[32];\n"; 5025 Preamble += "extern \"C\" __declspec(dllexport) void *_NSConcreteStackBlock[32];\n"; 5026 Preamble += "#else\n"; 5027 Preamble += "__OBJC_RW_DLLIMPORT void _Block_object_assign(void *, const void *, const int);\n"; 5028 Preamble += "__OBJC_RW_DLLIMPORT void _Block_object_dispose(const void *, const int);\n"; 5029 Preamble += "__OBJC_RW_DLLIMPORT void *_NSConcreteGlobalBlock[32];\n"; 5030 Preamble += "__OBJC_RW_DLLIMPORT void *_NSConcreteStackBlock[32];\n"; 5031 Preamble += "#endif\n"; 5032 Preamble += "#endif\n"; 5034 Preamble += "#undef __OBJC_RW_DLLIMPORT\n"; 5035 Preamble += "#undef __OBJC_RW_STATICIMPORT\n"; 5036 Preamble += "#ifndef KEEP_ATTRIBUTES\n"; // We use this for clang tests. 5037 Preamble += "#define __attribute__(X)\n"; 5038 Preamble += "#endif\n"; 5039 Preamble += "#define __weak\n"; 5042 Preamble += "#define __block\n"; 5043 Preamble += "#define __weak\n"; 5047 Preamble += "\n#define __OFFSETOFIVAR__(TYPE, MEMBER) ((long long) &((TYPE *)0)->MEMBER)\n";