[Mesa-dev] [PATCH 3/4] glsl: No compile error for out of bounds array index
Anuj Phogat
anuj.phogat at gmail.com
Mon Sep 22 15:57:39 PDT 2014
Emit a warning to let user know that the behavior is undefined.
Cc: <mesa-stable at lists.freedesktop.org>
Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
---
src/glsl/ast_array_index.cpp | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/glsl/ast_array_index.cpp b/src/glsl/ast_array_index.cpp
index 299ec91..b23bb69 100644
--- a/src/glsl/ast_array_index.cpp
+++ b/src/glsl/ast_array_index.cpp
@@ -156,23 +156,23 @@ _mesa_ast_array_index_to_hir(void *mem_ctx,
bound = array->type->vector_elements;
}
} else {
+ type_name = "array";
/* glsl_type::array_size() returns -1 for non-array types. This means
* that we don't need to verify that the type is an array before
* doing the bounds checking.
*/
if ((array->type->array_size() > 0)
&& (array->type->array_size() <= idx)) {
- type_name = "array";
bound = array->type->array_size();
}
}
if (bound > 0) {
- _mesa_glsl_error(& loc, state, "%s index must be < %u",
- type_name, bound);
+ _mesa_glsl_warning(& loc, state, "%s index must be < %u",
+ type_name, bound);
} else if (idx < 0) {
- _mesa_glsl_error(& loc, state, "%s index must be >= 0",
- type_name);
+ _mesa_glsl_warning(& loc, state, "%s index must be >= 0",
+ type_name);
}
if (array->type->is_array())
--
1.9.3
More information about the mesa-dev
mailing list