[prev in list] [next in list] [prev in thread] [next in thread]
List: cfe-commits
Subject: Re: [PATCH] PR14795 : -frewrite-includes sometimes results in incorrect line number
From: Lubos Lunak <l.lunak () suse ! cz>
Date: 2013-07-14 21:16:38
Message-ID: 201307142316.38290.l.lunak () suse ! cz
[Download RAW message or body]
On Monday 01 of July 2013, Eli Friedman wrote:
> On Sat, Jun 29, 2013 at 11:35 PM, Lubos Lunak <l.lunak@suse.cz> wrote:
> > Hello,
> >
> > could somebody please review and commit the atached patch for pr14795?
> > Thank
> > you.
>
> --- a/lib/Lex/Lexer.cpp
> +++ b/lib/Lex/Lexer.cpp
> @@ -2372,8 +2372,9 @@ bool Lexer::LexEndOfFile(Token &Result, const char
> *CurPtr) {
> FormTokenWithChars(Result, CurPtr, tok::eod);
>
> // Restore comment saving mode, in case it was disabled for directive.
> - resetExtendedTokenMode();
> - return true; // Have a token.
> + if (PP)
> + resetExtendedTokenMode();
> + return true; // Have a token.
> }
>
> // If we are in raw mode, return this event as an EOF token. Let the
> caller
>
> How is this related?
I had a crash there without this when I wrote the patch. I don't remember the
circumstances though and the random testcase I tried doesn't trigger it.
> + // We surround every #include by #if 0 to comment it out, but
> that
> + // changes line numbers. These are fixed up right after that,
> but
> + // the whole #include could be inside a preprocessor
> conditional
> + // that is not processed. So it is necessary to fix the line
>
> This looks like it puts a line directive after every if/elif/else/endif.
> That not really a problem, I guess, but it would be nice to avoid if
> possible.
Maybe there can be a way to compute which ones need it (every change from
ignored to non-ignored block), but that seems like way too much effort for a
couple of lines.
> Otherwise, looks fine.
--
Lubos Lunak
l.lunak@suse.cz
_______________________________________________
cfe-commits mailing list
cfe-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic