glcpp: Initialize location structure at beginning of parse.
authorCarl Worth <cworth@cworth.org>
Tue, 10 Aug 2010 23:58:28 +0000 (16:58 -0700)
committerCarl Worth <cworth@cworth.org>
Tue, 10 Aug 2010 23:58:28 +0000 (16:58 -0700)
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.

We apparently don't yet have a test case that allowed valgrind to find
this bug for us, but valgrind found a similar problem in the other
parser, so we fix this one as well.

src/glsl/glcpp/glcpp-parse.y

index df1a649d9bcc0008e5e4ec8697da7a3d7b7f75fb..a4383574506a8bf88ce294854b1918765265292e 100644 (file)
@@ -142,7 +142,15 @@ add_builtin_define(glcpp_parser_t *parser, const char *name, int value);
 
 %pure-parser
 %error-verbose
+
 %locations
+%initial-action {
+       @$.first_line = 1;
+       @$.first_column = 1;
+       @$.last_line = 1;
+       @$.last_column = 1;
+       @$.source = 0;
+}
 
 %parse-param {glcpp_parser_t *parser}
 %lex-param {glcpp_parser_t *parser}