[PATCH vkd3d 3/5] vkd3d-shader/hlsl: Do not try to dereference the else_instrs list pointer if there is no else block.

Zebediah Figura zfigura at codeweavers.com
Mon Sep 20 16:40:12 CDT 2021


Signed-off-by: Zebediah Figura <zfigura at codeweavers.com>
---
 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 dc2d31044..20f88f915 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)
-- 
2.33.0




More information about the wine-devel mailing list