From: Ted Kremenek Date: Tue, 27 Jul 2010 02:58:57 +0000 (+0000) Subject: PTH generation: Don't save the leading '#' token in a null directive. This unbreaks... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5c53f4cb1e46691d788db27153b406869cc4c53f;p=clang PTH generation: Don't save the leading '#' token in a null directive. This unbreaks using PTH with Boost (). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109484 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Frontend/CacheTokens.cpp b/lib/Frontend/CacheTokens.cpp index a5fcebe994..53f7362ac2 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)) {