Otherwise the max_array_access field of scalar variables is set to 0xffffffff.
This doesn't lead to any errors since that field isn't used for scalar
variables but leaving it at zero is probably better.

Signed-off-by: Fabian Bieler <fabianbie...@fastmail.fm>
---
 src/glsl/ast_to_hir.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index e918ade..f14a5b1 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -656,6 +656,8 @@ validate_assignment(struct _mesa_glsl_parse_state *state,
 static void
 mark_whole_array_access(ir_rvalue *access)
 {
+   assert(access->type->is_array());
+
    ir_dereference_variable *deref = access->as_dereference_variable();
 
    if (deref && deref->var) {
@@ -763,8 +765,10 @@ do_assignment(exec_list *instructions, struct 
_mesa_glsl_parse_state *state,
                                                   rhs->type->array_size());
         d->type = var->type;
       }
-      mark_whole_array_access(rhs);
-      mark_whole_array_access(lhs);
+      if (rhs->type->is_array()) {
+        mark_whole_array_access(rhs);
+        mark_whole_array_access(lhs);
+      }
    }
 
    /* Most callers of do_assignment (assign, add_assign, pre_inc/dec,
-- 
1.8.1.2

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to