[cfe-commits] [PATCH] -rewrite-includes
Lubos Lunak
l.lunak at suse.cz
Thu Mar 15 03:05:08 PDT 2012
On Thursday 15 of March 2012, Sebastian Redl wrote:
> On 15.03.2012, at 02:12, Lubos Lunak wrote:
> > The code is based on RewriteMacros.cpp and PrintPreprocessedOutput.cpp,
> > it more or less works now and I consider it almost ready. The only
> > remaining problem I have is commenting out the preprocessor directives -
> > I'd like to keep them in the resulting file, similarly to what
> > -rewrite-macros does. The problem is that neither /**/ nor // are safe
> > for commenting it out in all possible cases, and since this should be
> > used for transparent conversion during remote compile, I do not want to
> > make assumptions about what the code looks like (e.g. my first trivial
> > solution with /**/ failed
> > on "#include /*MSVC <cstdlib> */ <stdlib.h>" ). Does somebody know how to
> > achieve this? Otherwise I'll probably make it simply erase the
> > directives.
>
> Why isn't // safe?
It's not in C89.
It would also generate a warning about a multiline // comment if the
directive had a trailing \ , which probably is way too obscure to care about,
but the C89 reason is enough.
Using /**/ should be actually safe enough if the original code was properly
split if necessary, but I've already tried that and couldn't get the lexer to
do it right.
--
Lubos Lunak
l.lunak at suse.cz
More information about the cfe-commits
mailing list