aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/clang/Lex/Preprocessor.h5
-rw-r--r--lib/Lex/PPCaching.cpp5
-rw-r--r--lib/Lex/Preprocessor.cpp1
3 files changed, 2 insertions, 9 deletions
diff --git a/include/clang/Lex/Preprocessor.h b/include/clang/Lex/Preprocessor.h
index 999ba3b4f3..9af53bf494 100644
--- a/include/clang/Lex/Preprocessor.h
+++ b/include/clang/Lex/Preprocessor.h
@@ -73,9 +73,6 @@ class Preprocessor {
bool DisableMacroExpansion : 1; // True if macro expansion is disabled.
bool InMacroArgs : 1; // True if parsing fn macro invocation args.
- /// CacheTokens - True when the lexed tokens are cached for backtracking.
- bool CacheTokens : 1;
-
/// Identifiers - This is mapping/lookup information for all identifiers in
/// the program, including program keywords.
IdentifierTable Identifiers;
@@ -323,7 +320,7 @@ public:
/// isBacktrackEnabled - True if EnableBacktrackAtThisPos() was called and
/// caching of tokens is on.
- bool isBacktrackEnabled() const { return CacheTokens; }
+ bool isBacktrackEnabled() const { return !BacktrackPositions.empty(); }
/// Lex - To lex a token from the preprocessor, just pull a token from the
/// current lexer or macro object.
diff --git a/lib/Lex/PPCaching.cpp b/lib/Lex/PPCaching.cpp
index 1f39088d7f..ed67754e6e 100644
--- a/lib/Lex/PPCaching.cpp
+++ b/lib/Lex/PPCaching.cpp
@@ -24,7 +24,6 @@ using namespace clang;
/// be called multiple times and CommitBacktrackedTokens/Backtrack calls will
/// be combined with the EnableBacktrackAtThisPos calls in reverse order.
void Preprocessor::EnableBacktrackAtThisPos() {
- CacheTokens = true;
BacktrackPositions.push_back(CachedLexPos);
EnterCachingLexMode();
}
@@ -34,7 +33,6 @@ void Preprocessor::CommitBacktrackedTokens() {
assert(!BacktrackPositions.empty()
&& "EnableBacktrackAtThisPos was not called!");
BacktrackPositions.pop_back();
- CacheTokens = !BacktrackPositions.empty();
}
/// Backtrack - Make Preprocessor re-lex the tokens that were lexed since
@@ -44,7 +42,6 @@ void Preprocessor::Backtrack() {
&& "EnableBacktrackAtThisPos was not called!");
CachedLexPos = BacktrackPositions.back();
BacktrackPositions.pop_back();
- CacheTokens = !BacktrackPositions.empty();
}
void Preprocessor::CachingLex(Token &Result) {
@@ -56,7 +53,7 @@ void Preprocessor::CachingLex(Token &Result) {
ExitCachingLexMode();
Lex(Result);
- if (!CacheTokens) {
+ if (!isBacktrackEnabled()) {
// All cached tokens were consumed.
CachedTokens.clear();
CachedLexPos = 0;
diff --git a/lib/Lex/Preprocessor.cpp b/lib/Lex/Preprocessor.cpp
index 2d4d3a7324..5e97326994 100644
--- a/lib/Lex/Preprocessor.cpp
+++ b/lib/Lex/Preprocessor.cpp
@@ -69,7 +69,6 @@ Preprocessor::Preprocessor(Diagnostic &diags, const LangOptions &opts,
InMacroArgs = false;
NumCachedTokenLexers = 0;
- CacheTokens = false;
CachedLexPos = 0;
// "Poison" __VA_ARGS__, which can only appear in the expansion of a macro.