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

Ian Romanick idr at freedesktop.org
Sat Oct 6 00:55:50 UTC 2018


Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

On 09/25/2018 07:04 AM, Tapani Pälli wrote:
> v2: check types of both operands (Ian)
> 
> 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 | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp
> index 93e7c8ec334..1082d6c91cf 100644
> --- a/src/compiler/glsl/ast_to_hir.cpp
> +++ b/src/compiler/glsl/ast_to_hir.cpp
> @@ -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);
> 



More information about the mesa-dev mailing list