rnk added a comment.

In D91913#2525993 <https://reviews.llvm.org/D91913#2525993>, @hvdijk wrote:

> @rnk Taking it upon yourself to revert this without approval and without 
> communication on all branches, especially given the earlier suggestion by 
> @rsmith to only revert this on the LLVM 12 branch, is an abuse of your commit 
> privileges as far as I am concerned. This is not a Google project. Google 
> does not get to unilaterally dictate its direction. I do not intend to get 
> into a revert-the-revert war and will not revert your revert myself. I do 
> expect you to do so.

I'm sorry you feel that way, but I do believe that I have communicated the 
issue clearly already.  I don't mean to say that Google code is more important 
than any other code. We can update our code as long as there is a portable 
conforming way to do it. I think what I did is reasonable, and falls under the 
situations outlined here:
https://llvm.org/docs/CodeReview.html#can-code-be-reviewed-after-it-is-committed

This `, ## __VA_ARG__` extension serves a valid use case. The C++20 standard 
`__VA_OPT__` feature shows that the committee recognizes the validity of this 
use case. As things stood before the revert, there was no way for a user of 
this feature to fix their code so that it would compile under -std=c++17, 14, 
11, etc. My commit message attempted to outline what was necessary to reland.

In D91913#2526171 <https://reviews.llvm.org/D91913#2526171>, @rsmith wrote:

> rG0436ec2128c9775ba13b0308937238fc79673fdd 
> <https://reviews.llvm.org/rG0436ec2128c9775ba13b0308937238fc79673fdd> enables 
> `__VA_OPT__` across language modes and allows support for it to be detected 
> by `#ifdef`.

Thanks. Do we expect that GCC will want to follow this behavior? I'm concerned 
that I might have a hard time selling the patch to use `__VA_OPT__` to V8 
folks, who support a wide variety of compilers. The patch will not be pretty, 
since I cannot put an ifdef into the middle of a variadic macro.

As an alternative, have you considered allowing the old GNU extension unless 
C++20 features are enabled? This would make it so that projects encounter this 
portability issue when they upgrade to C++20 instead of when they upgrade 
compilers. Maybe this has been considered, I don't have all the context.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D91913

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

Reply via email to