<div dir="ltr">Yep, it's pointer but should be "pointer to pointer" (**var). Changing var inside <span style="font-size:12.8px">get_variable_being_redeclared function, doesn't change it's value outside this function. But maybe I'm missing something. </span></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 7, 2017 at 12:11 PM, Samuel Iglesias Gonsálvez <span dir="ltr"><<a href="mailto:siglesias@igalia.com" target="_blank">siglesias@igalia.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Tue, 2017-02-07 at 12:01 +0100, Bartosz Tomczyk wrote:<br>
> Hi Samuel,<br>
><br>
> Var pointer is passed by value to get_variable_being_<wbr>redeclared,  so<br>
> it will not fix the issue. I thinks it should be changed to pointer<br>
> to pointer.<br>
><br>
<br>
</span>It is already a pointer. See get_variable_being_redeclared(<wbr>) signature:<br>
<br>
static ir_variable *<br>
get_variable_being_redeclared(<wbr>ir_variable *var, YYLTYPE loc,<br>
                              <wbr>struct _mesa_glsl_parse_state *state,<br>
                              <wbr>bool allow_all_redeclarations)<br>
<br>
Sam<br>
<div class="HOEnZb"><div class="h5"><br>
> On Tue, Feb 7, 2017 at 11:45 AM, Samuel Iglesias Gonsálvez<br>
> <<a href="mailto:siglesias@igalia.com">siglesias@igalia.com</a>> wrote:<br>
> > The get_variable_being_redeclared(<wbr>) function can free 'var' because<br>
> > a re-declaration of an unsized array variable can establish the<br>
> > size, so<br>
> > we set the array type to the earlier declaration and free 'var' as<br>
> > it is<br>
> > not needed anymore.<br>
> ><br>
> > However, the same 'var' is referenced later in<br>
> > ast_declarator_list::hir().<br>
> > This patch fixes it by assigning 'earlier' to var, as this variable<br>
> > is<br>
> > the one we keep.<br>
> ><br>
> > This error was detected by Address Sanitizer.<br>
> ><br>
> > Bugzilla: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=99677" rel="noreferrer" target="_blank">https://bugs.freedesktop.org/<wbr>show_bug.cgi?id=99677</a><br>
> > Signed-off-by: Samuel Iglesias Gonsálvez <<a href="mailto:siglesias@igalia.com">siglesias@igalia.com</a>><br>
> > ---<br>
> >  src/compiler/glsl/ast_to_hir.<wbr>cpp | 2 +-<br>
> >  1 file changed, 1 insertion(+), 1 deletion(-)<br>
> ><br>
> > diff --git a/src/compiler/glsl/ast_to_<wbr>hir.cpp<br>
> > b/src/compiler/glsl/ast_to_<wbr>hir.cpp<br>
> > index b31b61d1ed6..99b5a7957ab 100644<br>
> > --- a/src/compiler/glsl/ast_to_<wbr>hir.cpp<br>
> > +++ b/src/compiler/glsl/ast_to_<wbr>hir.cpp<br>
> > @@ -3999,7 +3999,7 @@ get_variable_being_redeclared(<wbr>ir_variable<br>
> > *var, YYLTYPE loc,<br>
> ><br>
> >        earlier->type = var->type;<br>
> >        delete var;<br>
> > -      var = NULL;<br>
> > +      var = earlier;<br>
> >     } else if ((state->ARB_fragment_coord_<wbr>conventions_enable ||<br>
> >                state->is_version(150, 0))<br>
> >                && strcmp(var->name, "gl_FragCoord") == 0<br>
> > --<br>
> > 2.11.0<br>
> ><br>
> > ______________________________<wbr>_________________<br>
> > mesa-dev mailing list<br>
> > <a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
> > <a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/mesa-dev</a><br>
> ><br>
><br>
><br>
</div></div></blockquote></div><br></div>