glsl: Improve error message when attemping assignment to unsized array

V2: Return after error to avoid cascading error messages and
removed redundant "to" from error message

Signed-off-by: Timothy Arceri <t_arceri@yahoo.com.au>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
Timothy Arceri 2013-11-20 08:42:19 +11:00 committed by Ian Romanick
parent bd00c66500
commit 3c9f0096c7
1 changed files with 8 additions and 2 deletions

View File

@ -696,9 +696,15 @@ validate_assignment(struct _mesa_glsl_parse_state *state,
* Note: Whole-array assignments are not permitted in GLSL 1.10, but this
* is handled by ir_dereference::is_lvalue.
*/
if (is_initializer && lhs_type->is_unsized_array() && rhs->type->is_array()
if (lhs_type->is_unsized_array() && rhs->type->is_array()
&& (lhs_type->element_type() == rhs->type->element_type())) {
return rhs;
if (is_initializer) {
return rhs;
} else {
_mesa_glsl_error(&loc, state,
"implicitly sized arrays cannot be assigned");
return NULL;
}
}
/* Check for implicit conversion in GLSL 1.20 */