From: Chris Lattner Date: Thu, 18 Jun 2009 05:55:53 +0000 (+0000) Subject: Fix a crash that can occur when a #pragma handler eats to the end of the X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=027cff63321262a5a85a402c39aac06ee66c745d;p=clang Fix a crash that can occur when a #pragma handler eats to the end of the line, and when the pragma is at the end of a file. In this case, the last token consumed could pop the lexer, invalidating CurPPLexer. Thanks to Peter Thoman for pointing it out. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73689 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Lex/Pragma.cpp b/lib/Lex/Pragma.cpp index 9776c2cfbd..3227d1cf09 100644 --- a/lib/Lex/Pragma.cpp +++ b/lib/Lex/Pragma.cpp @@ -93,7 +93,7 @@ void Preprocessor::HandlePragmaDirective() { PragmaHandlers->HandlePragma(*this, Tok); // If the pragma handler didn't read the rest of the line, consume it now. - if (CurPPLexer->ParsingPreprocessorDirective) + if (CurPPLexer && CurPPLexer->ParsingPreprocessorDirective) DiscardUntilEndOfDirective(); }