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: gcc error: warning: pasting "syn" and ")" does not give a valid preprocessing token


Hi Alexandre;

Thanks for the suggestion. I was able to get my code to
compile now.
However, I had to do a work around as in the following
statement:

#define TCP_EXTERN(state) \
extern pspec_t * state##_rcv_rst(tcb_t *,pspec_t *), \
* state##_rcv_syn(tcb_t *,pspec_t *), \
* state##_rcv_ack(tcb_t *,pspec_t *), \
* state##_rcv_fin(tcb_t *,pspec_t *), \
* state##_snd_rst(tcb_t *,pspec_t *), \
* state##_snd_syn(tcb_t *,pspec_t *), \
* state##_snd_ack(tcb_t *,pspec_t *), \
* state##_snd_fin(tcb_t *,pspec_t *)

My original define is as in the following:

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

I removed the leading '##' pair and found that the
passing parameter of the macro was not replacing
'state' word. The preprocessor replaced the 'state'
parameter after I insert a space between the '*' character
and 'state##' word. Is this a real bug in the preprocessor?

Regards,
Kiet



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