@@ -319,10 +319,27 @@ @throw e; \ } \ \ abort(); #endif +#ifdef __clang__ +# define OF_DEALLOC_UNSUPPORTED \ + [self doesNotRecognizeSelector: _cmd]; \ + \ + abort(); \ + \ + _Pragma("clang diagnostic push ignore \"-Wunreachable-code\""); \ + [super dealloc]; /* Get rid of a stupid warning */ \ + _Pragma("clang diagnostic pop"); +#else +# define OF_DEALLOC_UNSUPPORTED \ + [self doesNotRecognizeSelector: _cmd]; \ + \ + abort(); \ + \ + [super dealloc]; /* Get rid of a stupid warning */ +#endif #ifdef __cplusplus extern "C" { #endif extern id objc_getProperty(id, SEL, ptrdiff_t, BOOL);