]> granicus.if.org Git - clang/commitdiff
PTH generation: Don't save the leading '#' token in a null directive. This unbreaks...
authorTed Kremenek <kremenek@apple.com>
Tue, 27 Jul 2010 02:58:57 +0000 (02:58 +0000)
committerTed Kremenek <kremenek@apple.com>
Tue, 27 Jul 2010 02:58:57 +0000 (02:58 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109484 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Frontend/CacheTokens.cpp

index a5fcebe99411667760c26342e61cf641a727056d..53f7362ac27624322bced33305ef524011237c70 100644 (file)
@@ -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)) {