[Mesa-dev] [PATCH v2 2/2] glsl: raise warning when using uninitialized variables
Ilia Mirkin
imirkin at alum.mit.edu
Tue Mar 29 21:09:37 UTC 2016
This is triggering for gl_GlobalInvocationID :( I think it's because
of how the variable is computed -- a lowering pass after compilation
is added to initialize it IIRC. Perhaps this should try to ignore
global variables?
On Mon, Mar 28, 2016 at 2:50 PM, Alejandro PiƱeiro <apinheiro at igalia.com> 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 eb45f29..e38ab10 100644
> --- a/src/compiler/glsl/ast_to_hir.cpp
> +++ b/src/compiler/glsl/ast_to_hir.cpp
> @@ -1901,6 +1901,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);
> + }
> } else {
> _mesa_glsl_error(& loc, state, "`%s' undeclared",
> this->primary_expression.identifier);
> --
> 2.5.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list