diff options
Diffstat (limited to 'lib/Lex/PPLexerChange.cpp')
| -rw-r--r-- | lib/Lex/PPLexerChange.cpp | 4 | 
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Lex/PPLexerChange.cpp b/lib/Lex/PPLexerChange.cpp index bf0a7fbfef18..bf28199b888a 100644 --- a/lib/Lex/PPLexerChange.cpp +++ b/lib/Lex/PPLexerChange.cpp @@ -265,6 +265,10 @@ bool Preprocessor::HandleEndOfTokenLexer(Token &Result) {    assert(CurTokenLexer && !CurPPLexer &&           "Ending a macro when currently in a #include file!"); +  if (!MacroExpandingLexersStack.empty() && +      MacroExpandingLexersStack.back().first == CurTokenLexer.get()) +    removeCachedMacroExpandedTokensOfLastLexer(); +    // Delete or cache the now-dead macro expander.    if (NumCachedTokenLexers == TokenLexerCacheSize)      CurTokenLexer.reset();  | 
