-
Notifications
You must be signed in to change notification settings - Fork 292
Open
Description
As #477 (and others) have shown, our diagnostics for missing functions can be confusing.
__attribute__((availability)) should mean we get better diagnostics, but since we need to #ifdef things out to replace them with inlines for old platform versions, the compiler can't help.
We should add an __INLINE_BEFORE tag for the versioner to match __INTRODUCED_IN and teach the versioner to only #ifdef the former.
When this was first implemented, using a function that was unavailable via __attribute__((availability)) wasn't actually an error. The function would be a weak reference instead. @jmgao was considering (or perhaps already fixed, idr) adding a flag to that attribute to make it an error.
alexcohn