[clang] [clang][modules] Headers meant to be included multiple times can be completely invisible in clang module builds (PR #83660)

Ian Anderson via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 4 22:13:54 PST 2024


ian-twilightcoder wrote:

> Thanks to @Bigcheese for helping with this patch.
> 
> https://reviews.llvm.org/D26267 looks like the most recent significant update to this code that we could find. It had an additional allowance where clang headers that were _not_ marked `textual` could be re-entered. I think this was to allow stddef.h (which is actually a multiple-include file despite it not being `textual`) to be entered multiple times while building the Darwin module. That shouldn't be necessary since nothing in the Darwin module or libc++ defines the `__need_` macros.
> 
> The unit tests added in D26267 still pass, so I don't think the builtin special case is needed anymore, but I'm still doing testing.

@bcardosolopes as far as I can tell the builtin special case isn't needed. Can you think of anything else I might need to test?

https://github.com/llvm/llvm-project/pull/83660


More information about the cfe-commits mailing list