https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127491

--- Comment #2 from Bi6c <bic60176 at gmail dot com> ---
(In reply to Drea Pinski from comment #1)
> Hmm from https://gcc.gnu.org/onlinedocs/gcc-16.2.0/cpp/Variadic-Macros.html :
> 
> "This does not happen if you pass an empty argument, nor does it happen if
> the token preceding ‘##’ is anything other than a comma."
> 
> I am trying to understand what is missing here.  Because the documentation
> is clear on what it should do.

Thanks—the C Preprocessor page you linked is clear and matches GCC’s behavior.
I’m reporting the contradictory wording in the separate
https://gcc.gnu.org/onlinedocs/gcc-16.2.0/gcc/Variadic-Macros.html , which says
the comma is removed when variable arguments are “omitted or empty.” For
debug("x",), they are explicitly empty and GCC retains the comma, as your
linked page explains. Could that sentence say “omitted, but not explicitly
empty”? The C Preprocessor page needs no change.

Reply via email to