Mesa (master): glsl: Reject non-scalar switch expressions.
Eric Anholt
anholt at kemper.freedesktop.org
Thu May 17 17:20:31 UTC 2012
Module: Mesa
Branch: master
Commit: bbbc7c7d566905920967f56648fc26abcb37f4a1
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=bbbc7c7d566905920967f56648fc26abcb37f4a1
Author: Eric Anholt <eric at anholt.net>
Date: Mon May 14 08:45:59 2012 -0700
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 <kenneth at whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
---
src/glsl/ast_to_hir.cpp | 6 ++----
1 files changed, 2 insertions(+), 4 deletions(-)
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,
More information about the mesa-commit
mailing list