From: Eric Anholt Date: Mon, 14 May 2012 15:45:59 +0000 (-0700) Subject: glsl: Reject non-scalar switch expressions. X-Git-Tag: 062012170305~247 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bbbc7c7d566905920967f56648fc26abcb37f4a1;p=profile%2Fivi%2Fmesa.git glsl: Reject non-scalar switch expressions. The comment quotes spec saying that only scalar integers are allowed, but we only checked for integer. Fixes piglit switch-expression-const-ivec2.vert Reviewed-by: Kenneth Graunke Reviewed-by: Ian Romanick --- diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp index 513908a..c59e5e6 100644 --- a/src/glsl/ast_to_hir.cpp +++ b/src/glsl/ast_to_hir.cpp @@ -3521,11 +3521,9 @@ ast_switch_statement::hir(exec_list *instructions, * * "The type of init-expression in a switch statement must be a * scalar integer." - * - * The checks are separated so that higher quality diagnostics can be - * generated for cases where the rule is violated. */ - if (!test_expression->type->is_integer()) { + if (!test_expression->type->is_scalar() || + !test_expression->type->is_integer()) { YYLTYPE loc = this->test_expression->get_location(); _mesa_glsl_error(& loc,