[Mesa-stable] [PATCH] glsl: do not attempt assignment if operand type not parsed correctly

Ian Romanick idr at freedesktop.org
Mon Sep 24 13:38:56 UTC 2018


On 09/24/2018 06:23 AM, Tapani Pälli wrote:
> Cc: mesa-stable at lists.freedesktop.org
> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108012
> ---
>  src/compiler/glsl/ast_to_hir.cpp | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp
> index 93e7c8ec334..1b0ea1282b7 100644
> --- a/src/compiler/glsl/ast_to_hir.cpp
> +++ b/src/compiler/glsl/ast_to_hir.cpp
> @@ -1685,6 +1685,11 @@ ast_expression::do_hir(exec_list *instructions,
>        op[1] = this->subexpressions[1]->hir(instructions, state);
>  
>        orig_type = op[0]->type;
> +
> +      /* Break out if op[0] type has not been parsed successfully. */

Should we also bail of op[1]->type is error?  We tried to keep going
when there were some errors, but I don't know if that has any chance of
being useful in either of these cases.

> +      if (orig_type == glsl_type::error_type)
> +         break;
> +
>        type = arithmetic_result_type(op[0], op[1],
>                                      (this->oper == ast_mul_assign),
>                                      state, & loc);
> 



More information about the mesa-stable mailing list