Mesa (master): glsl: Improve error message when attemping assignment to unsized array

Ian Romanick idr at kemper.freedesktop.org
Sat Nov 23 23:53:50 UTC 2013


Module: Mesa
Branch: master
Commit: 3c9f0096c75315ea73d44ec17bc90c4d4c0d8f77
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=3c9f0096c75315ea73d44ec17bc90c4d4c0d8f77

Author: Timothy Arceri <t_arceri at yahoo.com.au>
Date:   Wed Nov 20 08:42:19 2013 +1100

glsl: Improve error message when attemping assignment to unsized array

V2: Return after error to avoid cascading error messages and
removed redundant "to" from error message

Signed-off-by: Timothy Arceri <t_arceri at yahoo.com.au>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>

---

 src/glsl/ast_to_hir.cpp |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/glsl/ast_to_hir.cpp b/src/glsl/ast_to_hir.cpp
index 0128047..43cf497 100644
--- a/src/glsl/ast_to_hir.cpp
+++ b/src/glsl/ast_to_hir.cpp
@@ -696,9 +696,15 @@ validate_assignment(struct _mesa_glsl_parse_state *state,
     * Note: Whole-array assignments are not permitted in GLSL 1.10, but this
     * is handled by ir_dereference::is_lvalue.
     */
-   if (is_initializer && lhs_type->is_unsized_array() && rhs->type->is_array()
+   if (lhs_type->is_unsized_array() && rhs->type->is_array()
        && (lhs_type->element_type() == rhs->type->element_type())) {
-      return rhs;
+      if (is_initializer) {
+         return rhs;
+      } else {
+         _mesa_glsl_error(&loc, state,
+                          "implicitly sized arrays cannot be assigned");
+         return NULL;
+      }
    }
 
    /* Check for implicit conversion in GLSL 1.20 */




More information about the mesa-commit mailing list