From ae3b44ac78004f3e03173b13a0d1cc456677370a Mon Sep 17 00:00:00 2001 From: theraven Date: Sun, 13 Jan 2013 17:31:50 +0000 Subject: [PATCH] Fix clang's stupid warning to work around a bug in OS X headers... --- objc/message.h | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 objc/message.h diff --git a/objc/message.h b/objc/message.h new file mode 100644 index 0000000..d2f3831 --- /dev/null +++ b/objc/message.h @@ -0,0 +1,58 @@ +#ifndef _OBJC_MESSAGE_H_ +#define _OBJC_MESSAGE_H_ + +#if defined(__x86_64) || defined(__i386) || defined(__arm__) || \ + defined(__mips_n64) || defined(__mips_n32) +/** + * Standard message sending function. This function must be cast to the + * correct types for the function before use. The first argument is the + * receiver and the second the selector. + * + * Note that this function is not available on all architectures. For a more + * portable solution to sending arbitrary messages, consider using + * objc_msg_lookup_sender() and then calling the returned IMP directly. + * + * This version of the function is used for all messages that return either an + * integer, a pointer, or a small structure value that is returned in + * registers. Be aware that calling conventions differ between operating + * systems even within the same architecture, so take great care if using this + * function for small (two integer) structures. + */ +id objc_msgSend(id self, SEL _cmd, ...); +/** + * Standard message sending function. This function must be cast to the + * correct types for the function before use. The first argument is the + * receiver and the second the selector. + * + * Note that this function is not available on all architectures. For a more + * portable solution to sending arbitrary messages, consider using + * objc_msg_lookup_sender() and then calling the returned IMP directly. + * + * This version of the function is used for all messages that return a + * structure that is not returned in registers. Be aware that calling + * conventions differ between operating systems even within the same + * architecture, so take great care if using this function for small (two + * integer) structures. + */ +#ifdef __cplusplus +id objc_msgSend_stret(id self, SEL _cmd, ...); +#else +void objc_msgSend_stret(id self, SEL _cmd, ...); +#endif +/** + * Standard message sending function. This function must be cast to the + * correct types for the function before use. The first argument is the + * receiver and the second the selector. + * + * Note that this function is not available on all architectures. For a more + * portable solution to sending arbitrary messages, consider using + * objc_msg_lookup_sender() and then calling the returned IMP directly. + * + * This version of the function is used for all messages that return floating + * point values. + */ +long double objc_msgSend_fpret(id self, SEL _cmd, ...); + +#endif + +#endif //_OBJC_MESSAGE_H_