On 26/02/16 22:18, Ian Romanick wrote: > On 02/26/2016 07:09 AM, Alejandro Piñeiro wrote: >> v2: >> * Take into account out varyings too (Timothy Arceri) >> * Fix style (Timothy Arceri) >> * Use a new ast_expression variable, instead of an >> ast_expression::hir new parameter (Timothy Arceri) >> >> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94129 >> --- >> src/compiler/glsl/ast_to_hir.cpp | 7 +++++++ >> 1 file changed, 7 insertions(+) >> >> diff --git a/src/compiler/glsl/ast_to_hir.cpp >> b/src/compiler/glsl/ast_to_hir.cpp >> index 49e4858..ac451df 100644 >> --- a/src/compiler/glsl/ast_to_hir.cpp >> +++ b/src/compiler/glsl/ast_to_hir.cpp >> @@ -1899,6 +1899,13 @@ ast_expression::do_hir(exec_list *instructions, >> if (var != NULL) { >> var->data.used = true; >> result = new(ctx) ir_dereference_variable(var); >> + >> + if ((var->data.mode == ir_var_auto || var->data.mode == >> ir_var_shader_out) >> + && !this->is_lhs >> + && result->variable_referenced()->data.assigned != true) { >> + _mesa_glsl_warning(&loc, state, "`%s' used uninitialized", >> + this->primary_expression.identifier); > It seems like this might miss cases like > > void main() > { > int i; > int a[2]; > > a[i] = 0; > }
Just tested and I got the "warning: `i' used uninitialized" message, so this case is covered. BR _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev