gcc error: warning: pasting "syn" and ")" does not give a valid preprocessing token

Neil Booth neil@daikokuya.demon.co.uk
Wed Jul 4 23:11:00 GMT 2001


Kiet Tran wrote:-

> The attachment is b.c . I have embbeded all the header files except
> those common to a unix system. The file now will compile but if you
> remove the space character as decribed in my earlier message, the
> preprocessor will not replace the 'state' string. The compiling
> instruction:

I was looking for a one or two line concrete example.

If I do

#define TCP_EXTERN(state) \
extern pspec_t *state##_rcv_rst(tcb_t *,pspec_t *),
TCP_EXTERN (foo)

I get

# 3 "/tmp/foo.c"
extern pspec_t *foo_rcv_rst(tcb_t *,pspec_t *),

With a space I get:-

# 3 "/tmp/foo.c"
extern pspec_t * foo_rcv_rst(tcb_t *,pspec_t *),

Which looks identical, modulo the space, to me.  I can't reproduce
what you claim, and I don't think there is a bug.

Neil.



More information about the Gcc-bugs mailing list