What does the unavailable attribute in Objective C do?
__attribute__((unavailable("message")))
Is there any online reference to this and other attributes in Clang?
The unavailable
attribute marks a function declaration so that you can generate an error message if someone tries to use it. It's essentially the same as the deprecated
attribute, except that trying to use a deprecated
function just causes a warning, but using an unavailable
one causes an error. Documentation at: http://clang.llvm.org/docs/LanguageExtensions.html
Here's a simple use case example. First the code:
void badFunction(void) __attribute__((unavailable("Don't use badFunction, it won't work.")));
int main(void)
{
badFunction();
return 0;
}
And then building it:
$ make example
cc example.c -o example
example.c:5:5: error: 'badFunction' is unavailable: Don't use badFunction, it
won't work.
badFunction();
^
example.c:1:6: note: function has been explicitly marked unavailable here
void badFunction(void) __attribute__((unavailable("Don't use...
^
1 error generated.
make: *** [example] Error 1