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