================
@@ -49,7 +48,25 @@
 #define __need_rsize_t
 #endif
 #define __need_wchar_t
+#if !defined(__STDDEF_H) && !__building_module(_Builtin_stddef)
----------------
zygoloid wrote:

I'm not sure that the second condition here makes any difference: I'd think the 
only way we could get here with `__building_module(_Builtin_stddef)` evaluating 
to `true` is if one of the modular headers in that module (`__stddef_*.h`) were 
to recursively include `stddef.h`, which it seems they shouldn't be doing! 
Also, given that we have the actual definition of the `NULL` macro in a 
non-textual module of its own these days, it doesn't seem like the problem 
described below would actually happen.

Can we drop the `__building_module` check here?

I also wonder if we can move the `!defined(__STDDEF_H)` condition up to the 
`#if` on line 38 -- if we've already had a full include of the entirety of 
`<stddef.h>`, we shouldn't `__need` anything, whether it's a macro or something 
else.

https://github.com/llvm/llvm-project/pull/99727
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to