This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: 2.4.0-test7 spurious '##' patches


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~

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]