diff options
author | Eric Anholt <[email protected]> | 2010-08-26 11:23:09 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2010-08-26 11:23:09 -0700 |
commit | 264ba1ab88f273dc92add8018f24edcdd67fa5e5 (patch) | |
tree | 4344990e6e230d474530547e516164cdd741da4b | |
parent | 2db7bb9c665d13fd067109b1171eedd92764791d (diff) |
ir_to_mesa: Don't assume that an ir_dereference_array is of a variable.
Fixes:
glsl-array-bounds-02 (software)
glsl-array-bounds-04
glsl-array-bounds-06 (software)
glsl-array-bounds-08
-rw-r--r-- | src/mesa/program/ir_to_mesa.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp index 7fb59749467..948f09a851c 100644 --- a/src/mesa/program/ir_to_mesa.cpp +++ b/src/mesa/program/ir_to_mesa.cpp @@ -1382,7 +1382,8 @@ ir_to_mesa_visitor::visit(ir_dereference_array *ir) return; } - if (strncmp(var->name, "gl_", 3) == 0 && var->mode == ir_var_uniform && + if (var && + strncmp(var->name, "gl_", 3) == 0 && var->mode == ir_var_uniform && !var->type->is_matrix()) { ir_dereference_record *record = NULL; if (ir->array->ir_type == ir_type_dereference_record) |