[cfe-dev] Preprocessor tweak

Neil Booth neil at daikokuya.co.uk
Tue Jul 17 23:32:38 PDT 2007


Neil Booth wrote:-

> Index: Lex/Preprocessor.cpp
> ===================================================================
> --- Lex/Preprocessor.cpp	(revision 39996)
> +++ Lex/Preprocessor.cpp	(working copy)
> @@ -552,14 +552,17 @@
>      Val = CurLexer->isNextPPTokenLParen();
>    else
>      Val = CurMacroExpander->isNextTokenLParen();
> -  
> +
>    if (Val == 2) {
> -    // If we ran off the end of the lexer or macro expander, walk the include
> -    // stack, looking for whatever will return the next token.
> +    // We have run off the end.  If it's a source file we don't
> +    // examine enclosing ones (C99 5.1.1.2p4).  Otherwise walk up the
> +    // macro stack.
> +    if (CurLexer)
> +      return false;
>      for (unsigned i = IncludeMacroStack.size(); Val == 2 && i != 0; --i) {
>        IncludeStackInfo &Entry = IncludeMacroStack[i-1];
>        if (Entry.TheLexer)
> -        Val = Entry.TheLexer->isNextPPTokenLParen();
> +	return false;
>        else
>          Val = Entry.TheMacroExpander->isNextTokenLParen();
>      }

That's not quite right either.  I'll repost.

Neil.



More information about the cfe-dev mailing list