mesa: Fix up program_parse.y to avoid uninitialized $$
authorPaul Berry <stereotype441@gmail.com>
Fri, 9 Nov 2012 17:17:22 +0000 (09:17 -0800)
committerEric Anholt <eric@anholt.net>
Fri, 19 Apr 2013 17:12:27 +0000 (10:12 -0700)
Without this patch, $$.negate, $$.rgba_valid, and $$.xyzw_valid take
on garbage values.  At the moment this problem is benign (the garbage
values happen to be zero), but in my experiments executing GL
operations on a background thread, the garbage values change, leading
to piglit failures.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/program/program_parse.y

index 81d85f9fb1b19106e2c20a72a7b2b27b51e77278..8e4fdb61a7570e818c1a5b45c61d30e5add6e411 100644 (file)
@@ -709,6 +709,7 @@ extSwizSel: INTEGER
           }
 
           $$.swz = ($1 == 0) ? SWIZZLE_ZERO : SWIZZLE_ONE;
+           $$.negate = 0;
 
           /* 0 and 1 are valid for both RGBA swizzle names and XYZW
            * swizzle names.
@@ -728,6 +729,10 @@ extSwizSel: INTEGER
           s = $1[0];
           free($1);
 
+           $$.rgba_valid = 0;
+           $$.xyzw_valid = 0;
+           $$.negate = 0;
+
           switch (s) {
           case 'x':
              $$.swz = SWIZZLE_X;