[PATCH] D140250: Define NULL in its own header

Ian Anderson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 25 13:42:52 PST 2023


iana added a comment.

In D140250#4081119 <https://reviews.llvm.org/D140250#4081119>, @rsmith wrote:

> In D140250#4081102 <https://reviews.llvm.org/D140250#4081102>, @rsmith wrote:
>
>> Our builtin header `stddef.h` shouldn't be built as a module. It fundamentally needs to be treated as a textual header, because it consumes macros defined by the includer. The module map that we provide with our builtin headers does not cover `stddef.h` for that reason.
>
> That said... the ` __has_feature(modules)` checks throughout `stddef.h` look pretty wrong to me. They're probably working around the infelicities of the `-fno-modules-local-submodule-visibility` mode; maybe we can disable them when not in that mode?

It ends up being covered by `Darwin.C.stddef` on Apple platforms (due to some builtin shenanigans elsewhere in clang). Maybe we could make stddef.h be a `textual` header in a `_Builtin_stddef` module in clang and that would do the trick instead of splitting it into a bunch of different files.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D140250/new/

https://reviews.llvm.org/D140250



More information about the llvm-commits mailing list