On 11/19/2012 10:37 PM, Kenneth Graunke wrote:
Fixes es3conform's explicit_attrib_location_integer_constants.

From the look of things, this is how it should work on desktop as well. The grammar says:

      layout-qualifier-id
        location = integer-constant

and

    integer-constant :
        decimal-constant integer-suffixopt
        octal-constant integer-suffixopt
        hexadecimal-constant integer-suffixopt
    integer-suffix: one of u U
    ...

This patch should go on master, and it should be marked for the stable branches.

Reviewed-by: Ian Romanick <ian.d.roman...@intel.com>

---
  src/glsl/glsl_parser.yy | 7 ++++++-
  1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/glsl/glsl_parser.yy b/src/glsl/glsl_parser.yy
index 89175f5..f123368 100644
--- a/src/glsl/glsl_parser.yy
+++ b/src/glsl/glsl_parser.yy
@@ -241,6 +241,7 @@ static void yyerror(YYLTYPE *loc, _mesa_glsl_parse_state 
*st, const char *msg)
  %type <node> conditionopt
  %type <node> for_init_statement
  %type <for_rest_statement> for_rest_statement
+%type <n> integer_constant
  %%

  translation_unit:
@@ -1084,6 +1085,10 @@ layout_qualifier_id_list:
        }
        ;

+integer_constant:
+       INTCONSTANT { $$ = $1; }
+       | UINTCONSTANT { $$ = $1; }
+
  layout_qualifier_id:
        any_identifier
        {
@@ -1155,7 +1160,7 @@ layout_qualifier_id:
              YYERROR;
           }
        }
-       | any_identifier '=' INTCONSTANT
+       | any_identifier '=' integer_constant
        {
           memset(& $$, 0, sizeof($$));



_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to