On Wed, Jan 29, 2014 at 2:20 PM, Carl Worth <cwo...@cworth.org> wrote: > In commit 6005e9cb28 a new start state of NEWLINE_CATCHUP was added to the > lexer. This start state is used whenever the lexer is emitting a NEWLINE token > to emit additional NEWLINE tokens for any newline characters that were skipped > by an immediately preceding multi-line comment. > > However, that commit erroneously entered the NEWLINE_CATCHUP state for > single-line comments. This is not desired since in the case of a single-line > comment, the lexer is not emitting any NEWLINE token. The result is that the > lexer will remain in the NEWLINE_CATCHUP state and proceed to fail to emit a > NEWLINE token for the subsequent newline character, (since the case to match > \n expects only the INITIAL start state). > > The fix is quite simple, remove the "BEGIN NEWLINE_CATCHUP" code from the > single-line comment case, (preserving it only in exactly the cases where the > lexer is actually emitting a NEWLINE token). > > My utmost tany hanks to Petri Latvala for reporting this bug and for providing
"tany hanks" => "thanks" Series Reviewed-by: Jordan Justen <jordan.l.jus...@intel.com> > the minimal test case to exercise it. The bug showed up only with a multi-line > comment which was followed immediately by a single-line comment (without any > intervening newline), such as: > > /* > */ // Kablam! > > Since 6005e9cb28, and before this commit, that very innocent-looking > combination of comments would yield a parse failure in the compiler. > > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=72686 > --- > src/glsl/glcpp/glcpp-lex.l | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/src/glsl/glcpp/glcpp-lex.l b/src/glsl/glcpp/glcpp-lex.l > index f1fa192..ea3b862 100644 > --- a/src/glsl/glcpp/glcpp-lex.l > +++ b/src/glsl/glcpp/glcpp-lex.l > @@ -155,8 +155,6 @@ HEXADECIMAL_INTEGER 0[xX][0-9a-fA-F]+[uU]? > > /* Single-line comments */ > "//"[^\n]* { > - if (parser->commented_newlines) > - BEGIN NEWLINE_CATCHUP; > } > > /* Multi-line comments */ > -- > 1.8.5.2 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev