Skip to content

better diagnostics for missing functions #479

@DanAlbert

Description

@DanAlbert

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions