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: frey waid <waid at cisco dot com>
- 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: frey waid <waid at cisco dot com>
The following reply was made to PR preprocessor/9650; it has been noted by GNATS.
From: frey waid <waid@cisco.com>
To: Neil Booth <neil@daikokuya.co.uk>
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 15:08:40 -0800
i tried that but it doesn't work consistently with the newer prescan semantics.
for example, if i did this:
#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?
frey
Neil Booth wrote:
>
> frey waid wrote:-
>
> > that's what i was doing before. so i had this:
> >
> > #include COMP_INC(comp,file)
> >
> > #define COMP_INC(comp,file) #comp "/include/" #file
> >
> > do you have another method in mind?
>
> Sure 8-)
>
> #include COMP_INC (comp, file)
>
> #define COMP_INC(comp, file) COMP (comp, file)
> #define COMP(prefix, suffix) str(comp/include/file)
> #define str(x) #x
>
> Not tested, but you get the idea.
>
> Neil.