aaron.ballman added a comment.

In D116774#3227280 <https://reviews.llvm.org/D116774#3227280>, @jrtc27 wrote:

> The fact that va_list is in the std namespace does leak out into 
> __builtin_dump_struct, possibly the odd other place, and of course to 
> external AST consumers.

It can also leak out in funny places like AST dumping (to text, but more 
interestingly, to JSON). But the one place that may be observable and really 
matters (that I can think of) are AST matchers that get used by clang-tidy.

> I think it'd make sense to keep ASTContext as putting it in the std namespace 
> for C++ (like it does for Arm, and used to for AArch64) but also have 
> ItaniumMangle override it to the std namespace so that non-C++ gets the right 
> mangling? Otherwise the AST and __builtin_dump_struct won't match the Arm 
> spec.

I think this could make some sense. We typically try to have the AST reflect 
the reality of the program, and from that perspective, I think I would expect 
there to be a `std` namespace component for this in the AST if the spec calls 
for one even when obtaining the type through `stdarg.h` instead of `cstdarg`.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D116774

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

Reply via email to