[cfe-commits] r109484 - /cfe/trunk/lib/Frontend/CacheTokens.cpp

Ted Kremenek kremenek at apple.com
Mon Jul 26 19:58:57 PDT 2010


Author: kremenek
Date: Mon Jul 26 21:58:57 2010
New Revision: 109484

URL: http://llvm.org/viewvc/llvm-project?rev=109484&view=rev
Log:
PTH generation: Don't save the leading '#' token in a null directive.  This unbreaks using PTH with Boost (<rdar://problem/8227989>).

Modified:
    cfe/trunk/lib/Frontend/CacheTokens.cpp

Modified: cfe/trunk/lib/Frontend/CacheTokens.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CacheTokens.cpp?rev=109484&r1=109483&r2=109484&view=diff
==============================================================================
--- cfe/trunk/lib/Frontend/CacheTokens.cpp (original)
+++ cfe/trunk/lib/Frontend/CacheTokens.cpp Mon Jul 26 21:58:57 2010
@@ -311,14 +311,19 @@
       // 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)) {





More information about the cfe-commits mailing list