Mesa (glsl2): glsl2: Initialize location structure at beginning of parse.

Carl Worth cworth at kemper.freedesktop.org
Tue Aug 10 23:55:06 UTC 2010


Module: Mesa
Branch: glsl2
Commit: 60d8c46995aa9cf3f80592b9c9bb8e5be6e87502
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=60d8c46995aa9cf3f80592b9c9bb8e5be6e87502

Author: Carl Worth <cworth at cworth.org>
Date:   Tue Aug 10 16:52:54 2010 -0700

glsl2: Initialize location structure at beginning of parse.

Since we have a custom structure for YYLTYPE locations, we need to use
an %initial-action directive to avoid triggering use of uninitialized
memory when, for example, printing error messages.

Thanks to valgrind for noticing this bug.

---

 src/glsl/glsl_parser.ypp |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/src/glsl/glsl_parser.ypp b/src/glsl/glsl_parser.ypp
index 493b74f..3e60454 100644
--- a/src/glsl/glsl_parser.ypp
+++ b/src/glsl/glsl_parser.ypp
@@ -35,9 +35,17 @@
 %}
 
 %pure-parser
-%locations
 %error-verbose
 
+%locations
+%initial-action {
+   @$.first_line = 1;
+   @$.first_column = 1;
+   @$.last_line = 1;
+   @$.last_column = 1;
+   @$.source = 0;
+}
+
 %lex-param   {void *scanner}
 %parse-param {struct _mesa_glsl_parse_state *state}
 %name-prefix "_mesa_glsl_"




More information about the mesa-commit mailing list