On Monday, March 23, 2015 09:56:52 AM Antia Puentes wrote: > From GLSL 1.30.10, section 3.3 (Preprocessor): > "#line line source-string-number ... After processing this directive > (including its new-line), the implementation will behave as if it is > compiling at ... source string number source-string-number. Subsequent > source strings will be numbered sequentially, until another #line > directive overrides that numbering." > > In the previous implementation the source number was always zero. > Subsequent source strings are still not numbered sequentially, because > in the glShaderSource implementation we are concatenating the source code > strings into one long string. > > Partially fixes https://bugs.freedesktop.org/show_bug.cgi?id=88815 > --- > 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 8dc3d10..f0e047e 100644 > --- a/src/glsl/glsl_lexer.ll > +++ b/src/glsl/glsl_lexer.ll > @@ -36,14 +36,13 @@ 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 = yylloc->last_line = yylineno + 1; \ > yycolumn += yyleng; \ > yylloc->last_column = yycolumn + 1; \ > } 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. > * >
Looks good to me! We could probably concatenate the strings together but put "#line 0 i" between each source string's content, if we wanted to fix the bug completely. Seems simple enough. Reviewed-by: Kenneth Graunke <kenn...@whitecape.org>
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev