[cfe-dev] libclang clang_getCursorPlatformAvailability fails often

Douglas Gregor dgregor at apple.com
Fri May 10 13:22:47 PDT 2013

On May 10, 2013, at 2:57 AM, ivan <ivasic+clang at gmail.com> wrote:

> Hi all,
> It seems to me that clang_getCursorPlatformAvailability API in libclang
> fails to find availability too often for OSX SDK APIs. Normally, for iOS it
> seems to work much better even for the same Foundation APIs.
> A few random examples (I have many examples) can be:
>  //in NSLayoutConstraint.h
>  - (void)layoutIfNeeded NS_AVAILABLE_MAC(10_7);
>  //in NSWindow.h
>  - (BOOL)preventsApplicationTerminationWhenModal NS_AVAILABLE_MAC(10_6);
> I have a simple test Xcode project that reproduces this behaviour here: 
> http://cl.ly/2B261r2X0H3y <http://cl.ly/2B261r2X0H3y>  
> (Just modify your Xcode path if it's not in standard location and build&run)
> It's possible that I'm doing something wrong but the exact same code works
> pretty well with iOS headers. Also, I'm really not sure about this but it
> seems that it fails finding the availability mostly on methods while
> classes, enums etc.. work okay.

Have you looked at the preprocessed output in both cases? My guess is that the OS X APIs are mapping the availability macros down to unavailable/deprecated/nothing, rather than Clang's 'availability' attribute.

	- Doug
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20130510/f64924de/attachment.html>

More information about the cfe-dev mailing list