aboutsummaryrefslogtreecommitdiff
path: root/lib/Frontend/CacheTokens.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Frontend/CacheTokens.cpp')
-rw-r--r--lib/Frontend/CacheTokens.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/Frontend/CacheTokens.cpp b/lib/Frontend/CacheTokens.cpp
index a5fcebe99411..53f7362ac276 100644
--- a/lib/Frontend/CacheTokens.cpp
+++ b/lib/Frontend/CacheTokens.cpp
@@ -311,14 +311,19 @@ PTHEntry PTHWriter::LexTokens(Lexer& L) {
// the next token.
assert(!ParsingPreprocessorDirective);
Offset HashOff = (Offset) Out.tell();
- EmitToken(Tok);
// Get the next token.
- L.LexFromRawLexer(Tok);
+ Token NextTok;
+ L.LexFromRawLexer(NextTok);
- // If we see the start of line, then we had a null directive "#".
- if (Tok.isAtStartOfLine())
+ // If we see the start of line, then we had a null directive "#". In
+ // this case, discard both tokens.
+ if (NextTok.isAtStartOfLine())
goto NextToken;
+
+ // The token is the start of a directive. Emit it.
+ EmitToken(Tok);
+ Tok = NextTok;
// Did we see 'include'/'import'/'include_next'?
if (Tok.isNot(tok::identifier)) {