Module: vkd3d Branch: master Commit: 6f85aad54b0f9709daa8724445a031fdf1c9b7a7 URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=6f85aad54b0f9709daa87244...
Author: Zebediah Figura zfigura@codeweavers.com Date: Mon Sep 20 16:40:12 2021 -0500
vkd3d-shader/hlsl: Do not try to dereference the else_instrs list pointer if there is no else block.
Signed-off-by: Zebediah Figura zfigura@codeweavers.com Signed-off-by: Giovanni Mascellani gmascellani@codeweavers.com Signed-off-by: Matteo Bruni mbruni@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
libs/vkd3d-shader/hlsl.y | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/libs/vkd3d-shader/hlsl.y b/libs/vkd3d-shader/hlsl.y index dc2d310..20f88f9 100644 --- a/libs/vkd3d-shader/hlsl.y +++ b/libs/vkd3d-shader/hlsl.y @@ -2694,7 +2694,8 @@ selection_statement: if (!(instr = hlsl_new_if(ctx, condition, @1))) YYABORT; list_move_tail(&instr->then_instrs, $5.then_instrs); - list_move_tail(&instr->else_instrs, $5.else_instrs); + if ($5.else_instrs) + list_move_tail(&instr->else_instrs, $5.else_instrs); vkd3d_free($5.then_instrs); vkd3d_free($5.else_instrs); if (condition->data_type->dimx > 1 || condition->data_type->dimy > 1)