@@ -145,14 +145,20 @@ #define OF_IVAR_OFFSET(ivar) ((intptr_t)&ivar - (intptr_t)self) #define OF_GETTER(ivar, atomic) \ return objc_getProperty(self, _cmd, OF_IVAR_OFFSET(ivar), atomic); #define OF_SETTER(ivar, value, atomic, copy) \ objc_setProperty(self, _cmd, OF_IVAR_OFFSET(ivar), value, atomic, copy); + +#if defined(__clang__) || __GCC_VERSION__ >= 405 +# define OF_UNREACHABLE __builtin_unreachable(); +#else +# define OF_UNREACHABLE abort(); +#endif #define OF_UNRECOGNIZED_SELECTOR \ [self doesNotRecognizeSelector: _cmd]; \ - abort(); + OF_UNREACHABLE #define OF_INVALID_INIT_METHOD \ @try { \ [self doesNotRecognizeSelector: _cmd]; \ } @catch (id e) { \ [self release]; \