[GCC-XML] Preprocessor problem with gccxml
Brad King
brad.king at kitware.com
Mon May 4 17:11:04 EDT 2009
Johannes Brunen wrote:
> #define decl_() DECL_
> #define DECL_FUNCTION(lib) decl_()lib
[snip]
> After preprocessing on msvc9 I got the following code:
>
> class ENTITY; DECL_KERN logical is_ENTITY (const ENTITY*);
>
> After preprocessing with gccxml with this command
[snip]
> class ENTITY; DECL_ KERN logical is_ ENTITY (const ENTITY*);
I do not think the C preprocessor standard guarantees that
your DECL_FUNCTION macro will concatenate the output of
'decl_()' with 'lib' into a single token. Instead, use the
'##' operator to concatenate:
#define CAT(x,y) CAT_DELAY(x,y)
#define CAT_DELAY(x,y) x##y
#define DECL_FUNCTION(lib) CAT(decl_(),lib)
It should work in any preprocessor.
-Brad
More information about the gccxml
mailing list