glsl: Mark "row_major" as not a reserved word in GLSL ES 3.0.
authorMatt Turner <mattst88@gmail.com>
Thu, 11 Jul 2013 17:11:18 +0000 (10:11 -0700)
committerMatt Turner <mattst88@gmail.com>
Thu, 11 Jul 2013 23:22:07 +0000 (16:22 -0700)
We mark ARB_uniform_buffer_object as enabled under ES 3 since it
contains that functionality, which tricked the compiler into tokenizing
"row_major".

Acked-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
src/glsl/glsl_lexer.ll

index 008ef303d88042f7d2d1fe9b23080fdeb462a495..e66ce7beeb9f202d40463302c8de5e85708ff7bd 100644 (file)
@@ -72,7 +72,7 @@ static int classify_identifier(struct _mesa_glsl_parse_state *, const char *);
                          alt_expr, token)                              \
    do {                                                                        \
       if (yyextra->is_version(allowed_glsl, allowed_glsl_es)           \
-          || alt_expr) {                                               \
+          || (alt_expr)) {                                             \
         return token;                                                  \
       } else if (yyextra->is_version(reserved_glsl,                    \
                                      reserved_glsl_es)) {              \
@@ -522,7 +522,7 @@ image2DArrayShadow KEYWORD(130, 300, 0, 0, IMAGE2DARRAYSHADOW);
 imageBuffer    KEYWORD(130, 300, 0, 0, IMAGEBUFFER);
 iimageBuffer   KEYWORD(130, 300, 0, 0, IIMAGEBUFFER);
 uimageBuffer   KEYWORD(130, 300, 0, 0, UIMAGEBUFFER);
-row_major      KEYWORD_WITH_ALT(130, 0, 140, 0, yyextra->ARB_uniform_buffer_object_enable, ROW_MAJOR);
+row_major      KEYWORD_WITH_ALT(130, 0, 140, 0, yyextra->ARB_uniform_buffer_object_enable && !yyextra->es_shader, ROW_MAJOR);
 
     /* Additional reserved words in GLSL 1.40 */
 isampler2DRect KEYWORD(140, 300, 140, 0, ISAMPLER2DRECT);