Mesa (master): glsl: Clear type_qualifier using memset
Ian Romanick
idr at kemper.freedesktop.org
Fri Oct 8 21:24:58 UTC 2010
Module: Mesa
Branch: master
Commit: 5ff4cfb788291ef7c8d6412d65aee708b41bac86
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5ff4cfb788291ef7c8d6412d65aee708b41bac86
Author: Ian Romanick <ian.d.romanick at intel.com>
Date: Tue Oct 5 16:23:32 2010 -0700
glsl: Clear type_qualifier using memset
---
src/glsl/glsl_parser.ypp | 105 +++++++++++++++++++++++++++++++++++++--------
1 files changed, 86 insertions(+), 19 deletions(-)
diff --git a/src/glsl/glsl_parser.ypp b/src/glsl/glsl_parser.ypp
index 649f437..be763ed 100644
--- a/src/glsl/glsl_parser.ypp
+++ b/src/glsl/glsl_parser.ypp
@@ -793,10 +793,25 @@ parameter_declaration:
;
parameter_qualifier:
- /* empty */ { $$.i = 0; }
- | IN_TOK { $$.i = 0; $$.q.in = 1; }
- | OUT_TOK { $$.i = 0; $$.q.out = 1; }
- | INOUT_TOK { $$.i = 0; $$.q.in = 1; $$.q.out = 1; }
+ /* empty */
+ {
+ memset(& $$, 0, sizeof($$));
+ }
+ | IN_TOK
+ {
+ memset(& $$, 0, sizeof($$));
+ $$.q.in = 1;
+ }
+ | OUT_TOK
+ {
+ memset(& $$, 0, sizeof($$));
+ $$.q.out = 1;
+ }
+ | INOUT_TOK
+ {
+ memset(& $$, 0, sizeof($$));
+ $$.q.in = 1; $$.q.out = 1;
+ }
;
parameter_type_specifier:
@@ -979,7 +994,7 @@ layout_qualifier_id:
{
bool got_one = false;
- $$.i = 0;
+ memset(& $$, 0, sizeof($$));
if (state->ARB_fragment_coord_conventions_enable) {
if (strcmp($1, "origin_upper_left") == 0) {
@@ -1007,13 +1022,29 @@ layout_qualifier_id:
;
interpolation_qualifier:
- SMOOTH { $$.i = 0; $$.q.smooth = 1; }
- | FLAT { $$.i = 0; $$.q.flat = 1; }
- | NOPERSPECTIVE { $$.i = 0; $$.q.noperspective = 1; }
+ SMOOTH
+ {
+ memset(& $$, 0, sizeof($$));
+ $$.q.smooth = 1;
+ }
+ | FLAT
+ {
+ memset(& $$, 0, sizeof($$));
+ $$.q.flat = 1;
+ }
+ | NOPERSPECTIVE
+ {
+ memset(& $$, 0, sizeof($$));
+ $$.q.noperspective = 1;
+ }
;
parameter_type_qualifier:
- CONST_TOK { $$.i = 0; $$.q.constant = 1; }
+ CONST_TOK
+ {
+ memset(& $$, 0, sizeof($$));
+ $$.q.constant = 1;
+ }
;
type_qualifier:
@@ -1040,21 +1071,57 @@ type_qualifier:
}
| INVARIANT
{
- $$.i = 0;
+ memset(& $$, 0, sizeof($$));
$$.q.invariant = 1;
}
;
storage_qualifier:
- CONST_TOK { $$.i = 0; $$.q.constant = 1; }
- | ATTRIBUTE { $$.i = 0; $$.q.attribute = 1; }
- | VARYING { $$.i = 0; $$.q.varying = 1; }
- | CENTROID VARYING { $$.i = 0; $$.q.centroid = 1; $$.q.varying = 1; }
- | IN_TOK { $$.i = 0; $$.q.in = 1; }
- | OUT_TOK { $$.i = 0; $$.q.out = 1; }
- | CENTROID IN_TOK { $$.i = 0; $$.q.centroid = 1; $$.q.in = 1; }
- | CENTROID OUT_TOK { $$.i = 0; $$.q.centroid = 1; $$.q.out = 1; }
- | UNIFORM { $$.i = 0; $$.q.uniform = 1; }
+ CONST_TOK
+ {
+ memset(& $$, 0, sizeof($$));
+ $$.q.constant = 1;
+ }
+ | ATTRIBUTE
+ {
+ memset(& $$, 0, sizeof($$));
+ $$.q.attribute = 1;
+ }
+ | VARYING
+ {
+ memset(& $$, 0, sizeof($$));
+ $$.q.varying = 1;
+ }
+ | CENTROID VARYING
+ {
+ memset(& $$, 0, sizeof($$));
+ $$.q.centroid = 1; $$.q.varying = 1;
+ }
+ | IN_TOK
+ {
+ memset(& $$, 0, sizeof($$));
+ $$.q.in = 1;
+ }
+ | OUT_TOK
+ {
+ memset(& $$, 0, sizeof($$));
+ $$.q.out = 1;
+ }
+ | CENTROID IN_TOK
+ {
+ memset(& $$, 0, sizeof($$));
+ $$.q.centroid = 1; $$.q.in = 1;
+ }
+ | CENTROID OUT_TOK
+ {
+ memset(& $$, 0, sizeof($$));
+ $$.q.centroid = 1; $$.q.out = 1;
+ }
+ | UNIFORM
+ {
+ memset(& $$, 0, sizeof($$));
+ $$.q.uniform = 1;
+ }
;
type_specifier:
More information about the mesa-commit
mailing list