[cfe-commits] r108124 - in /cfe/trunk: lib/Lex/PPCaching.cpp test/Parser/backtrack-crash.cpp
Argyrios Kyrtzidis
akyrtzi at gmail.com
Mon Jul 12 11:57:36 PDT 2010
This is correct. I just made an addition in r108175 to avoid caching repeated tok::eofs if we go past EOF.
-Argiris
On Jul 12, 2010, at 5:25 AM, Chris Lattner wrote:
> Author: lattner
> Date: Sun Jul 11 23:25:32 2010
> New Revision: 108124
>
> URL: http://llvm.org/viewvc/llvm-project?rev=108124&view=rev
> Log:
> we do in fact have to cache the EOF token returned by the preprocessor.
> In the case of backtracking, the cached token lexer will be the only
> lexer on the stack, without this the token stack will be empty and EOF
> won't be returned.
>
> This fixes PR7072.
>
>
> Added:
> cfe/trunk/test/Parser/backtrack-crash.cpp
> Modified:
> cfe/trunk/lib/Lex/PPCaching.cpp
>
> Modified: cfe/trunk/lib/Lex/PPCaching.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Lex/PPCaching.cpp?rev=108124&r1=108123&r2=108124&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Lex/PPCaching.cpp (original)
> +++ cfe/trunk/lib/Lex/PPCaching.cpp Sun Jul 11 23:25:32 2010
> @@ -60,13 +60,10 @@
> return;
> }
>
> - // We should cache the lexed token.
> -
> + // Cache the lexed token.
> EnterCachingLexMode();
> - if (Result.isNot(tok::eof)) {
> - CachedTokens.push_back(Result);
> - ++CachedLexPos;
> - }
> + CachedTokens.push_back(Result);
> + ++CachedLexPos;
> }
>
> void Preprocessor::EnterCachingLexMode() {
>
> Added: cfe/trunk/test/Parser/backtrack-crash.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Parser/backtrack-crash.cpp?rev=108124&view=auto
> ==============================================================================
> --- cfe/trunk/test/Parser/backtrack-crash.cpp (added)
> +++ cfe/trunk/test/Parser/backtrack-crash.cpp Sun Jul 11 23:25:32 2010
> @@ -0,0 +1,4 @@
> +// RUN: %clang_cc1 %s -fsyntax-only -verify -pedantic
> +// PR7072
> +()( // expected-error {{expected unqualified-id}}
> +
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list