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 <ian.d.romanick@intel.com>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
This commit is contained in:
Ian Romanick
2017-09-26 17:54:48 -07:00
parent 6d1765c63a
commit ed80746c1c

View File

@@ -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.