glsl: do not attempt assignment if operand type not parsed correctly

v2: check types of both operands (Ian)

Cc: mesa-stable@lists.freedesktop.org
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108012
This commit is contained in:
Tapani Pälli 2018-09-25 17:04:40 +03:00
parent d877451b48
commit d1fa69ed61
1 changed files with 6 additions and 0 deletions

View File

@ -1685,6 +1685,12 @@ ast_expression::do_hir(exec_list *instructions,
op[1] = this->subexpressions[1]->hir(instructions, state);
orig_type = op[0]->type;
/* Break out if operand types were not parsed successfully. */
if ((op[0]->type == glsl_type::error_type ||
op[1]->type == glsl_type::error_type))
break;
type = arithmetic_result_type(op[0], op[1],
(this->oper == ast_mul_assign),
state, & loc);