We were going through the work to parse a directive like "#line 0 2" and setting the source to 2. But then, we were re-setting the source to 0 at the beginning of every lex action. Instead, reset it to 0 only once at the beginning of all lexing.
With this fix, correct source numbers will actually appear in error messages. --- src/glsl/glsl_lexer.ll | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/glsl/glsl_lexer.ll b/src/glsl/glsl_lexer.ll index 2a0e01b..04cc778 100644 --- a/src/glsl/glsl_lexer.ll +++ b/src/glsl/glsl_lexer.ll @@ -36,13 +36,12 @@ static int classify_identifier(struct _mesa_glsl_parse_state *, const char *); #define YY_USER_ACTION \ do { \ - yylloc->source = 0; \ yylloc->first_column = yycolumn + 1; \ yylloc->first_line = yylineno + 1; \ yycolumn += yyleng; \ } while(0); -#define YY_USER_INIT yylineno = 0; yycolumn = 0; +#define YY_USER_INIT yylineno = 0; yycolumn = 0; yylloc->source = 0; /* A macro for handling reserved words and keywords across language versions. * -- 1.7.10 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev