deprecated GNU ## extension used

Paul Eggert eggert@twinsun.com
Wed Jul 12 13:34:00 GMT 2000


   Date: Wed, 12 Jul 2000 20:55:56 +0900
   From: Neil Booth <NeilB@earthling.net>

   How about:-

   i) The effect of pasting a comma and the placemarker token of a
   variable argument is a placemarker token.

That is incompatible with C99, which requires that concatenating a
comma to a placemarker is a comma.

But if you change "variable argument" to "GNU C rest argument" then
this rule sounds correct.

   ii) The effect of pasting a comma and any other token from a
   variable argument is the two separate tokens.

That sounds correct.  (Surely GCC already does this.)

   iii) For i) and ii) we only warn under -pedantic, otherwise we warn
   normally.

Which warnings are you talking about here?  If you're talking about
the "deprecated ## extension used" warnings, then I disagree.  These
warnings should never be issued, even if -pedantic.  The GNU C macro
varargs extension cannot possibly be used unless the source code
contains a GNU C macro varargs definition, and that macro definition
will cause GCC to issue a diagnostic if -pedantic.  That diagnostic is
enough to satisfy the standard.

The "deprecated GNU ## extension used" warnings are counterproductive,
since they detract from real, useful warnings.  Let's omit them entirely.


More information about the Libc-alpha mailing list