diff options
Diffstat (limited to 'Lex/Preprocessor.cpp')
-rw-r--r-- | Lex/Preprocessor.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Lex/Preprocessor.cpp b/Lex/Preprocessor.cpp index c1f14a9b9b..6380544376 100644 --- a/Lex/Preprocessor.cpp +++ b/Lex/Preprocessor.cpp @@ -392,6 +392,23 @@ static void InitializePredefinedMacros(Preprocessor &PP, DefineBuiltinMacro(Buf, "NO=(BOOL)0"); DefineBuiltinMacro(Buf, "Nil=0"); DefineBuiltinMacro(Buf, "nil=0"); + ObjcType = "OBJC_EXPORT const char *sel_getName(SEL sel);\n"; + Buf.insert(Buf.end(), ObjcType, ObjcType+strlen(ObjcType)); + ObjcType = "OBJC_EXPORT SEL sel_getUid(const char *str);\n"; + Buf.insert(Buf.end(), ObjcType, ObjcType+strlen(ObjcType)); + + // Predefine ObjC primitive functions, traditionally declared in + // <objc/objc-runtime.h>. Unlike the declarations above, we don't protect + // these with a header guard (since multiple identical function declarations + // don't result in an error. + ObjcType = "OBJC_EXPORT id objc_getClass(const char *name);\n"; + Buf.insert(Buf.end(), ObjcType, ObjcType+strlen(ObjcType)); + ObjcType = "OBJC_EXPORT id objc_getMetaClass(const char *name);\n"; + Buf.insert(Buf.end(), ObjcType, ObjcType+strlen(ObjcType)); + ObjcType = "OBJC_EXPORT id objc_msgSend(id self, SEL op, ...);\n"; + Buf.insert(Buf.end(), ObjcType, ObjcType+strlen(ObjcType)); + ObjcType = "OBJC_EXPORT id objc_msgSendSuper(struct objc_super *super, SEL op, ...);\n"; + Buf.insert(Buf.end(), ObjcType, ObjcType+strlen(ObjcType)); } // Add __builtin_va_list typedef. |