Mesa (master): glsl: raise warning when using uninitialized variables
Alejandro Pinheiro
apinheiro at kemper.freedesktop.org
Tue Mar 29 06:28:45 UTC 2016
Module: Mesa
Branch: master
Commit: dcd41ca87a06199184eb8ada654aec985185189c
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=dcd41ca87a06199184eb8ada654aec985185189c
Author: Alejandro Piñeiro <apinheiro at igalia.com>
Date: Tue Feb 23 11:48:52 2016 +0100
glsl: raise warning when using uninitialized variables
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
Reviewed-by: Timothy Arceri <timothy.arceri at collabora.com>
---
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 e162203..29a4642 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);
More information about the mesa-commit
mailing list