Can you include both an EOD test and an EOF test? Otherwise, LGTM.
On Thu, Aug 21, 2014 at 12:10 AM, David Majnemer <[email protected]> wrote: > Ping. > > > On Fri, Aug 15, 2014 at 6:59 PM, David Majnemer <[email protected]> > wrote: > >> Hi rsmith, >> >> It's not particularly safe to lex a token if you don't know what it is. >> _Pragma error recovery attempted to lex tokens without being sure what >> they might be. >> >> http://reviews.llvm.org/D4939 >> >> Files: >> lib/Lex/Pragma.cpp >> test/Preprocessor/_Pragma.c >> >> Index: lib/Lex/Pragma.cpp >> =================================================================== >> --- lib/Lex/Pragma.cpp >> +++ lib/Lex/Pragma.cpp >> @@ -192,9 +192,7 @@ >> Lex(Tok); >> if (!tok::isStringLiteral(Tok.getKind())) { >> Diag(PragmaLoc, diag::err__Pragma_malformed); >> - // Skip this token, and the ')', if present. >> - if (Tok.isNot(tok::r_paren) && Tok.isNot(tok::eof)) >> - Lex(Tok); >> + // Skip this token if it's a ')'. >> if (Tok.is(tok::r_paren)) >> Lex(Tok); >> return _PragmaLexing.failed(); >> Index: test/Preprocessor/_Pragma.c >> =================================================================== >> --- test/Preprocessor/_Pragma.c >> +++ test/Preprocessor/_Pragma.c >> @@ -12,4 +12,6 @@ >> #error #define invalid >> #endif >> >> -_Pragma( // expected-error{{_Pragma takes a parenthesized string >> literal}} >> +// expected-error@+2{{unterminated conditional directive}} >> +// expected-error@+1{{expected value in expression}} >> +#if _Pragma( // expected-error{{_Pragma takes a parenthesized string >> literal}} >> > >
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
