iana added a comment.

In D157793#4585268 <https://reviews.llvm.org/D157793#4585268>, @aaron.ballman 
wrote:

> In D157793#4583698 <https://reviews.llvm.org/D157793#4583698>, @iana wrote:
>
>> In D157793#4583663 <https://reviews.llvm.org/D157793#4583663>, @MaskRay 
>> wrote:
>>
>>>> Apple needs a __need_ macro for va_list. Add one, and also ones for 
>>>> va_start/va_arg/va_end, __va_copy, va_copy.
>>>
>>> Do you have a link to the specification or the source that this is needed?
>>
>> We need is so that our <sys/_types/_va_list.h> doesn't have to redeclare 
>> va_list and doesn't pull in all of stdarg.h either. As far as I know there's 
>> no specification for this (or stddef.h) being include-able in pieces.
>
> I'm not opposed, but this adds significant complexity to support a 
> questionable use case -- the C standard library headers are not intended to 
> be partially included, so if the plan is to use these `__need` macros in all 
> of the headers we provide, I think that should go through an RFC process to 
> be sure we want to maintain the added complexity. (Also, who is "we" in this 
> case?)

We is Apple. We have a <sys/_types/_va_list.h> header that is generating 
redeclaration warnings in modules mode. I can't just include <stdarg.h> instead 
since it would change the semantics of <sys/_types/_va_list.h>. stdarg.h and 
stddef.h appear to be the only clang headers that Apple needs to use in pieces 
though, I don't think we should add this complexity to any other headers for 
consistency or "just because".


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D157793

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to