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.
