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


Reply via email to