From: Ian Romanick Date: Wed, 27 Sep 2017 00:54:48 +0000 (-0700) Subject: glsl/ast: Stop processing a switch-statement after an error in the init-expression X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=ed80746c1c519bb173217fde39266c2af3525a0c;p=mesa.git glsl/ast: Stop processing a switch-statement after an error in the init-expression This happens to work now because ir_binop_all_equal is used. This causes vector typed init-expressions to produce scalar Boolean values after comparison. The next commit changes ir_binop_all_equal to ir_binop_equal. Vector typed init-expressions will then produce vector Boolean values, and, in debug builds, the ir_assignment constructor will fail an assertion. Signed-off-by: Ian Romanick Reviewed-by: Alejandro PiƱeiro --- diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp index 1999e68158c..4323ec32264 100644 --- a/src/compiler/glsl/ast_to_hir.cpp +++ b/src/compiler/glsl/ast_to_hir.cpp @@ -6407,6 +6407,7 @@ ast_switch_statement::hir(exec_list *instructions, state, "switch-statement expression must be scalar " "integer"); + return NULL; } /* Track the switch-statement nesting in a stack-like manner.