This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
Re: preprocessor/9650: string literal contactenation doesn't work with #include
- From: Neil Booth <neil at daikokuya dot co dot uk>
- To: nobody at gcc dot gnu dot org
- Cc: gcc-prs at gcc dot gnu dot org,
- Date: 10 Feb 2003 23:16:01 -0000
- Subject: Re: preprocessor/9650: string literal contactenation doesn't work with #include
- Reply-to: Neil Booth <neil at daikokuya dot co dot uk>
The following reply was made to PR preprocessor/9650; it has been noted by GNATS.
From: Neil Booth <neil@daikokuya.co.uk>
To: frey waid <waid@cisco.com>
Cc: neil@gcc.gnu.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org,
nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Subject: Re: preprocessor/9650: string literal contactenation doesn't work with #include
Date: Mon, 10 Feb 2003 23:09:48 +0000
frey waid wrote:-
> i tried that but it doesn't work consistently with the newer prescan semantics.
> for example, if i did this:
Prescan semantics haven't changed. Apart from removal of the odd
segfault ;-)
> #include COMP_INC(me, mips/hello.h)
>
> you'd think it'd expand with the below method:
>
> #include "me/include/mips/hello.h"
>
> unfortunately, mips is a predefined macro. so it expands to "1". is there a
> work around for this without having to undefine it?
No, that's the way C works, because mips is lexed as a token in its own
right. You need to use a different path, or #undef mips. Or, latest
versions of GCC won't invade your namespace like this with -ansi. Prior
versions of GCC were somewhat unpredictable.
Neil.