https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116827

--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to Francois-Xavier Coudert from comment #3)
> where that new USE_CLANG_TYPES macro is defined at the top of the file:
> 
> ----
> #if defined(__has_feature) && __has_feature(modules)

This is a bug. If __has_feature is _not_ define, then __has_feature(modules)
would not compile:

hf.c:1:44: error: missing binary operator before token "("
    1 | #if defined(__has_feature) && __has_feature(uhoh)
      |                                            ^

This needs to be reported to Apple. Either they should just assume
__has_feature works and not bother checking if it's defined, or check for it
properly.

> #define USE_CLANG_TYPES 1
> #else
> #define USE_CLANG_TYPES 0
> #endif

It looks like the header now assumes that if __has_feature(modules) is true,
then they're compiling with Clang. Which is not true because GCC supports
__has_feature now.

So I think this needs a fixincludes change for GCC to be able to use these new
SDK headers.


> I'm thoroughly confused by this series of includes, especially as
> __need_ptrdiff_t is never used anywhere in the SDK.

GCC's stddef.h uses it.

Reply via email to