Reject array constructor calls in GLSL 1.10
authorIan Romanick <ian.d.romanick@intel.com>
Wed, 31 Mar 2010 23:25:21 +0000 (16:25 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Wed, 31 Mar 2010 23:25:21 +0000 (16:25 -0700)
ast_function.cpp

index f8c2b6eaa27a345935fa3fb82471ffbbbc3e301b..74ae5d8962bf13db4c3d92bc89ab086e52ba28d0 100644 (file)
@@ -190,6 +190,15 @@ ast_function_expression::hir(exec_list *instructions,
         return ir_call::get_error_instruction();
       }
 
+      if (constructor_type->is_array()) {
+        if (state->language_version <= 110) {
+           _mesa_glsl_error(& loc, state,
+                            "array constructors forbidden in GLSL 1.10");
+           return ir_call::get_error_instruction();
+        }
+
+        return ir_call::get_error_instruction();
+      }
 
       /* There are two kinds of constructor call.  Constructors for built-in
        * language types, such as mat4 and vec2, are free form.  The only