This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: 2.4.0-test7 spurious '##' patches
- To: Richard Henderson <rth at twiddle dot net>
- Subject: Re: 2.4.0-test7 spurious '##' patches
- From: Keith Owens <kaos at ocs dot com dot au>
- Date: Fri, 01 Sep 2000 15:56:40 +1100
- cc: linux-kernel at vger dot kernel dot org, Martin Mares <mj at suse dot cz>, Olaf Kirch <okir at monad dot swb dot de>, torvalds at transmeta dot com, gcc-bugs at gcc dot gnu dot org
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. Since this particular macro requires at
least one argument (dprintk() and dfprintk(FACILITY) are meaningless),
it was easier to remove the '##'.