Suggested fix from one of our gcc people... ---------- Forwarded message ---------- Date: 03 Jan 2001 09:45:47 -0200 From: Alexandre Oliva <[EMAIL PROTECTED]> To: Bernhard Rosenkraenzer <[EMAIL PROTECTED]> Subject: Re: Test case for GCC macro expansion (fwd) On Jan 3, 2001, Bernhard Rosenkraenzer <[EMAIL PROTECTED]> wrote: > The following is causing wine to miscompile ATM - is this a bug in cpp or > better standards compliance? In a sense, it's both. The current CVS tree (at least devo) does generate the expected output, but it still prints the warning, that is correct: the resulting preprocessor token isn't a valid one. I think an ISO C-compliant solution would be to define DECLARE2 so that it takes an additional empty argument, and use token pasting to paste this empty argument to the symbol name. #define DECLARE2(xfn,empty) void ICOM_FN(empty ## xfn) (void); DECLARE2(GetObject,) -- Alexandre Oliva, GCC Team +55 19 9714-3658