deprecated GNU ## extension used
Zack Weinberg
zack@wolery.cumb.org
Tue Jul 11 09:17:00 GMT 2000
On Tue, Jul 11, 2000 at 06:03:41PM +0200, Andreas Jaeger wrote:
> >>>>> Ulrich Drepper writes:
>
> Uli> Andreas Jaeger <aj@suse.de> writes:
> >> Compiling glibc with the current GCC I get e.g. this warning:
> >> In file included from programs/ld-numeric.c:30:
> >> programs/linereader.h:156:59: warning: deprecated GNU ## extension used
> >>
> >> This macro used is:
> >> #define lr_error(lr, fmt, args...) \
> >> error_at_line (0, 0, lr->fname, lr->lineno, fmt, ## args)
> >>
> >> in the following line:
> >> lr_error (lr, _("trailing garbage at end of line"));
> >>
> >> Should we care about this?
>
> Uli> No. The GNU syntax is not redundant. It is superior to the ISO C99
> Uli> stuff and therefore cannot go away.
>
> Uli> Zack, Neil, you have to remove this. How else will you write
> Uli> something like the `eprintf' macro from the manual? The change
> Uli> Andreas proposed will not work if no argument is provided.
>
> You can only write the eprintf example with one argument less,
> e.g. as:
> eprintf (...)
> with all my patches I had to remove one argument - in case that the
> variable list was empty :-(
Neil claims that all GNU-syntax varargs macros can be rewritten in C99
syntax. I have yet to see a counterexample from real code. If you
can show me one, I'll take it out again; otherwise I stand behind his
decision to deprecate this.
zw
More information about the Libc-alpha
mailing list