[Mesa-dev] [PATCH] spirv: avoid infinite loop / freeze in vtn_cfg_walk_blocks()
Jason Ekstrand
jason at jlekstrand.net
Thu Dec 21 19:44:18 UTC 2017
Rb
On December 21, 2017 08:05:24 Lionel Landwerlin
<lionel.g.landwerlin at intel.com> wrote:
> 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
>
>
> _______________________________________________
> 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