On 08/13/2018 08:57 AM, Danylo Piliaiev wrote: > Accessing scalar constant as an array in function call or > initializer list triggered assert in get_array_element. > Examples: > func(0[0]); > vec2 t = { 0[0], 0 };
Do we have tests like this in piglit? What happens if 0[0] syntax is used other places? What do happens in these cases after this change? Some sort of graceful compile-time error, I hope... > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107550 > > Signed-off-by: Danylo Piliaiev <danylo.pilia...@globallogic.com> > --- > src/compiler/glsl/ir_constant_expression.cpp | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/src/compiler/glsl/ir_constant_expression.cpp > b/src/compiler/glsl/ir_constant_expression.cpp > index 4a0aff72c6..c9788c7053 100644 > --- a/src/compiler/glsl/ir_constant_expression.cpp > +++ b/src/compiler/glsl/ir_constant_expression.cpp > @@ -826,7 +826,7 @@ ir_dereference_array::constant_expression_value(void > *mem_ctx, > const unsigned component = idx->value.u[0]; > > return new(mem_ctx) ir_constant(array, component); > - } else { > + } else if (array->type->is_array()) { > const unsigned index = idx->value.u[0]; > return array->get_array_element(index)->clone(mem_ctx, NULL); > } _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev