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: Keith Owens <kaos at ocs dot com dot au>
- Subject: Re: 2.4.0-test7 spurious '##' patches
- From: Richard Henderson <rth at twiddle dot net>
- Date: Thu, 31 Aug 2000 21:44:16 -0700
- 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
- References: <4897.967709340@kao2.melbourne.sgi.com>
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 '##'.
It's also lying sometimes. For instance.
> -#define SOCK_DEBUG(sk, msg...) do { if((sk) && ((sk)->debug)) printk(KERN_DEBUG ## msg); } while (0)
> +#define SOCK_DEBUG(sk, msg...) do { if((sk) && ((sk)->debug)) printk(KERN_DEBUG msg); } while (0)
This change is correct.
> -#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, );
r~