[Mesa-dev] [PATCH] spirv: avoid infinite loop / freeze in vtn_cfg_walk_blocks()
Lionel Landwerlin
lionel.g.landwerlin at intel.com
Thu Dec 21 14:04:49 UTC 2017
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
On 21/12/17 13:53, Eero Tamminen wrote:
> Fixes: 9702fac68e (spirv: consider bitsize when handling OpSwitch cases)
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104359
> ---
> src/compiler/spirv/vtn_cfg.c | 14 +++++++-------
> 1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/src/compiler/spirv/vtn_cfg.c b/src/compiler/spirv/vtn_cfg.c
> index 9c4cbe2..3d5de37 100644
> --- a/src/compiler/spirv/vtn_cfg.c
> +++ b/src/compiler/spirv/vtn_cfg.c
> @@ -549,19 +549,19 @@ vtn_cfg_walk_blocks(struct vtn_builder *b,
> struct list_head *cf_list,
> struct vtn_block *case_block =
> vtn_value(b, *w, vtn_value_type_block)->block;
>
> - if (case_block == break_block)
> - continue;
> -
> - vtn_assert(case_block->switch_case);
> -
> - vtn_order_case(swtch, case_block->switch_case);
> -
> if (bitsize <= 32) {
> w += 2;
> } else {
> assert(bitsize == 64);
> w += 3;
> }
> +
> + if (case_block == break_block)
> + continue;
> +
> + vtn_assert(case_block->switch_case);
> +
> + vtn_order_case(swtch, case_block->switch_case);
> }
>
> enum vtn_branch_type branch_type =
> --
> 2.7.4
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
More information about the mesa-dev
mailing list