Re: 2.4.0-test7 spurious '##' patches

From: Zack Weinberg (zack@wolery.cumb.org)
Date: Fri Sep 01 2000 - 00:02:45 EST


On Fri, Sep 01, 2000 at 03:56:40PM +1100, Keith Owens wrote:
> On Thu, 31 Aug 2000 21:44:16 -0700,
> Richard Henderson <rth@twiddle.net> wrote:
> >On Thu, Aug 31, 2000 at 07:09:00PM +1100, Keith Owens wrote:
> >> Compiling 2.4.0-test7 with the latest IA64 toolchain, gcc version
> >> 2.96-ia64-000717 snap 000828. It complained about various include
> >> files, "pasting would not give a valid preprocessing token", this
> >> version of gcc is a bit more paranoid about the use of '##'.
> >
> >> -#define dprintk(args...) dfprintk(FACILITY, ## args)
> >> +#define dprintk(args...) dfprintk(FACILITY, args)
> >
> >This one isn't. This is a gcc extension to remove the previous token
> >if "args" is empty. So you'd get
> >
> > dfprintk(FACILITY);
> >instead of
> > dfprintk(FACILITY, );
>
> I know about that extension and I originally tried
> dfprintk(FACILITY , ##args) which is what gcc info recommends, but that
> still gave a warning message.

With a snapshot that recent, (FACILITY , ## args) and (FACILITY, ##args)
are equivalent. Older gcc (including 2.95 and all 2.96 up through May
or so) would delete too much if you used the second form.

The 'pasting would not give ...' warning is supposed to be suppressed
in this context, but obviously it isn't working. I'll look into it.

zw
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Sep 07 2000 - 21:00:10 EST