aboutsummaryrefslogtreecommitdiff
path: root/lib/Lex/PPLexerChange.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2008-11-13 16:51:03 +0000
committerTed Kremenek <kremenek@apple.com>2008-11-13 16:51:03 +0000
commited04c4cdca11119cac7d2fd65685444ce25f9e37 (patch)
tree83463757190663ad66f5470f2dd33f23fa2de220 /lib/Lex/PPLexerChange.cpp
parente4d22fbd5be9e0e63980232117c32fa67e24c15e (diff)
Use PushIncludeMacroStack/PopMacroStack instead of manually pushing/popping from IncludeMacroStack. This is both cleaner and makes the include stack transparently extensible.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59248 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Lex/PPLexerChange.cpp')
-rw-r--r--lib/Lex/PPLexerChange.cpp20
1 files changed, 6 insertions, 14 deletions
diff --git a/lib/Lex/PPLexerChange.cpp b/lib/Lex/PPLexerChange.cpp
index 1ba33b58a7..99d1ca0a91 100644
--- a/lib/Lex/PPLexerChange.cpp
+++ b/lib/Lex/PPLexerChange.cpp
@@ -86,12 +86,10 @@ void Preprocessor::EnterSourceFileWithLexer(Lexer *TheLexer,
// Add the current lexer to the include stack.
if (CurLexer || CurTokenLexer)
- IncludeMacroStack.push_back(IncludeStackInfo(CurLexer, CurDirLookup,
- CurTokenLexer));
-
+ PushIncludeMacroStack();
+
CurLexer = TheLexer;
CurDirLookup = CurDir;
- CurTokenLexer = 0;
// Notify the client, if desired, that we are in a new source file.
if (Callbacks && !CurLexer->Is_PragmaLexer) {
@@ -108,9 +106,7 @@ void Preprocessor::EnterSourceFileWithLexer(Lexer *TheLexer,
/// EnterMacro - Add a Macro to the top of the include stack and start lexing
/// tokens from it instead of the current buffer.
void Preprocessor::EnterMacro(Token &Tok, MacroArgs *Args) {
- IncludeMacroStack.push_back(IncludeStackInfo(CurLexer, CurDirLookup,
- CurTokenLexer));
- CurLexer = 0;
+ PushIncludeMacroStack();
CurDirLookup = 0;
if (NumCachedTokenLexers == 0) {
@@ -137,9 +133,7 @@ void Preprocessor::EnterTokenStream(const Token *Toks, unsigned NumToks,
bool DisableMacroExpansion,
bool OwnsTokens) {
// Save our current state.
- IncludeMacroStack.push_back(IncludeStackInfo(CurLexer, CurDirLookup,
- CurTokenLexer));
- CurLexer = 0;
+ PushIncludeMacroStack();
CurDirLookup = 0;
// Create a macro expander to expand from the specified token stream.
@@ -257,10 +251,8 @@ void Preprocessor::RemoveTopOfLexerStack() {
} else {
delete CurLexer;
}
- CurLexer = IncludeMacroStack.back().TheLexer;
- CurDirLookup = IncludeMacroStack.back().TheDirLookup;
- CurTokenLexer = IncludeMacroStack.back().TheTokenLexer;
- IncludeMacroStack.pop_back();
+
+ PopIncludeMacroStack();
}
/// HandleMicrosoftCommentPaste - When the macro expander pastes together a