Detecting ARC via #if(def)?

i’m hoping this is not NDA-covered, but with LLV/Clang itself being open source i assume it’s not:

at WWDC i was told there is a functionality in clang/LLVM to check for availability of specific features in general, and for whether the current code is being compiled with ARC or not, specifically, via an #if(def) - the goal being ro write a piece of code that can compile with and w/o ARC, by #if(def)ing a handful of retain/release calls.

i was told this was well documented in the clang docs, but i’ve been unable to find anything regarding this - is anyone here aware of this featyre (and of the option to check for that represents ARC) and could point me into the right direction?


ARC hasn't landed in the public repository yet.

In terms of feature ifdefs, see .



More specifically, you will be able to use:

  #ifdef __has_feature(objc_arc)


FYI, ETA is ~Wednesday.


Any official word on when this is likely to happen?




Looks like the list is being slow today - your mail arrived 9 minutes after I sent mine...


Thanx, guys!