On Tuesday 16 of July 2013, Eli Friedman wrote: > On Sun, Jul 14, 2013 at 2:16 PM, Lubos Lunak <[email protected]> wrote: > > On Monday 01 of July 2013, Eli Friedman wrote: > >> On Sat, Jun 29, 2013 at 11:35 PM, Lubos Lunak <[email protected]> wrote: > >> > Hello, > >> > > >> > could somebody please review and commit the atached patch for > >> > pr14795? Thank > >> > you. > >> > >> --- a/lib/Lex/Lexer.cpp > >> +++ b/lib/Lex/Lexer.cpp > >> @@ -2372,8 +2372,9 @@ bool Lexer::LexEndOfFile(Token &Result, const char > >> *CurPtr) { > >> FormTokenWithChars(Result, CurPtr, tok::eod); > >> > >> // Restore comment saving mode, in case it was disabled for > >> directive. - resetExtendedTokenMode(); > >> - return true; // Have a token. > >> + if (PP) > >> + resetExtendedTokenMode(); > >> + return true; // Have a token. > >> } > >> > >> // If we are in raw mode, return this event as an EOF token. Let the > >> caller > >> > >> How is this related? > > > > I had a crash there without this when I wrote the patch. I don't > > remember the circumstances though and the random testcase I tried doesn't > > trigger it. > > Okay. > > Please commit without this change.
Actually, LibreOffice is always a good testcase, so I can reproduce the crash after all: #3 0x00007f19e5e1e392 in __assert_fail () from /lib64/libc.so.6 #4 0x0000000001fc8e46 in clang::Lexer::resetExtendedTokenMode (this=0x7fff35cc4b00) at /home/llunak/build/src/llvm/tools/clang/lib/Lex/Lexer.cpp:129 #5 0x0000000001fd11f8 in clang::Lexer::LexEndOfFile (this=0x7fff35cc4b00, Result=..., CurPtr=0x75a4c94 "") at /home/llunak/build/src/llvm/tools/clang/lib/Lex/Lexer.cpp:2375 #6 0x0000000001fd1743 in clang::Lexer::LexTokenInternal (this=0x7fff35cc4b00, Result=...) at /home/llunak/build/src/llvm/tools/clang/lib/Lex/Lexer.cpp:2763 #7 0x0000000001f0c148 in clang::Lexer::Lex (this=0x7fff35cc4b00, Result=...) at /home/llunak/build/src/llvm/tools/clang/include/clang/Lex/Lexer.h:145 #8 0x0000000001f0b6a3 in clang::Lexer::LexFromRawLexer (this=0x7fff35cc4b00, Result=...) at /home/llunak/build/src/llvm/tools/clang/include/clang/Lex/Lexer.h:160 #9 0x0000000002f82cdd in (anonymous namespace)::InclusionRewriter::Process (this=0x5be11a0, FileId=..., FileType=clang::SrcMgr::C_ExternCSystem) at /home/llunak/build/src/llvm/tools/clang/lib/Rewrite/Frontend/InclusionRewriter.cpp:477 So I will include that change too, unless somebody sees a better way of avoiding this. -- Lubos Lunak [email protected] _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
