summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Hamre <chemecse@gmail.com>2016-03-23 10:14:23 -0400
committerEduardo Lima Mitev <elima@igalia.com>2016-03-23 18:13:26 +0100
commit43c6f3f82f62f28dc97d195750ba25c88051b64e (patch)
treea48074db0c25e2c6336d5151b3cc8063b22fda1b
parentc4931ae17452cabbc7830cd9d5a356b835fd4c48 (diff)
compiler/glsl: allow sequence op as a const expr in gles 1.0
Allow the sequence operator to be a constant expression in GLSL ES versions prior to GLSL ES 3.0 Fixes the following piglit test: /all/spec/glsl-es-1.0/compiler/array-sized-by-sequence-in-parenthesis.vert This is similar to the logic from process_initializer() which performs the same check for constant variable initialization with sequence operators. v2: Fixed regression pointed out by Eduardo Lima Mitev Signed-off-by: Lars Hamre <chemecse@gmail.com> Reviewed-by: Eduardo Lima Mitev <elima@igalia.com>
-rw-r--r--src/compiler/glsl/ast_to_hir.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/compiler/glsl/ast_to_hir.cpp b/src/compiler/glsl/ast_to_hir.cpp
index 5262bd8765..35def8e3ae 100644
--- a/src/compiler/glsl/ast_to_hir.cpp
+++ b/src/compiler/glsl/ast_to_hir.cpp
@@ -2125,7 +2125,9 @@ process_array_size(exec_node *node,
}
ir_constant *const size = ir->constant_expression_value();
- if (size == NULL || array_size->has_sequence_subexpression()) {
+ if (size == NULL ||
+ (state->is_version(120, 300) &&
+ array_size->has_sequence_subexpression())) {
_mesa_glsl_error(& loc, state, "array size must be a "
"constant valued expression");
return 0;