[PATCH] Make Preprocessor::Lex non-recursive
Richard Smith
richard at metafoo.co.uk
Wed Sep 18 16:15:28 PDT 2013
On Wed, Sep 18, 2013 at 4:11 PM, Eli Friedman <eli.friedman at gmail.com>wrote:
> On Wed, Sep 18, 2013 at 3:45 PM, Richard Smith <richard at metafoo.co.uk>wrote:
>
>> On Wed, Sep 18, 2013 at 3:44 PM, Richard Smith <richard at metafoo.co.uk>wrote:
>>
>>> A modules-related change seems to have slipped into
>>> lib/Frontend/CompilerInstance.cpp
>>>
>>
> Ah, yes, thanks; fixed in my local copy.
>
>
>>
>>> The IsAtStartOfLine FIXME concerns me a little. Token.h says:
>>>
>>> StartOfLine = 0x01, // At start of line or only after whitespace.
>>>
>>> ... which implies to me that the intent was that it be false if there's
>>> a preceding EMPTY macro. I'm not sure if that's what the existing users of
>>> the macro want, though.
>>>
>>
>> Um, users of the flag.
>>
>
> The current users of the flag expect the current behavior, which ignores
> empty macros. The canonical example is PrintPreprocessedOutput, which uses
> it to indicate whether it needs to insert a newline between two tokens, the
> behavior being tested in test/Preprocessor/hash_line.c. This patch doesn't
> change our behavior here outside of the IDENTITY() case. I'll update the
> comment.
>
> What happens if the Lex call in isNextPPTokenLParen returns false?
>>>
>>
> Lex never returns false if we're lexing in raw mode. I'll add an
> assertion to that effect.
>
Thanks, patch LGTM with above tweaks. =)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130918/66d3d978/attachment.html>
More information about the cfe-commits
mailing list