diff options
Diffstat (limited to 'include/clang/Lex/Preprocessor.h')
-rw-r--r-- | include/clang/Lex/Preprocessor.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/include/clang/Lex/Preprocessor.h b/include/clang/Lex/Preprocessor.h index f90cb0a687..6c9b9fb96e 100644 --- a/include/clang/Lex/Preprocessor.h +++ b/include/clang/Lex/Preprocessor.h @@ -871,7 +871,11 @@ private: //===--------------------------------------------------------------------===// // Caching stuff. void CachingLex(Token &Result); - bool InCachingLexMode() const { return CurPPLexer == 0 && CurTokenLexer == 0;} + bool InCachingLexMode() const { + // If the Lexer pointers are 0 and IncludeMacroStack is empty, it means + // that we are past EOF, not that we are in CachingLex mode. + return CurPPLexer == 0 && CurTokenLexer == 0 && !IncludeMacroStack.empty(); + } void EnterCachingLexMode(); void ExitCachingLexMode() { if (InCachingLexMode()) |