diff options
author | Chris Lattner <sabre@nondot.org> | 2009-06-18 05:55:53 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-06-18 05:55:53 +0000 |
commit | 027cff63321262a5a85a402c39aac06ee66c745d (patch) | |
tree | 0eb4e7b073dcc1b1470a2a13c596d751ea65ef26 | |
parent | 4d5d994a069d6f7513cc025266afcfa73b020405 (diff) |
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
-rw-r--r-- | lib/Lex/Pragma.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
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(); } |