mesa: glsl: error on const-qualified array declarations
authorBrian Paul <brian.paul@tungstengraphics.com>
Mon, 4 Aug 2008 19:11:27 +0000 (13:11 -0600)
committerBrian Paul <brian.paul@tungstengraphics.com>
Mon, 4 Aug 2008 23:14:49 +0000 (17:14 -0600)
src/mesa/shader/slang/slang_codegen.c

index 117e82a39027ca01909f4805d54a4dcf7531f9bf..d0453751f41f991f38d58bb05b7e72c9f6256ad0 100644 (file)
@@ -2408,11 +2408,19 @@ _slang_gen_var_decl(slang_assemble_ctx *A, slang_variable *var)
 
       if (var->array_len > 0) {
          /* this is an array */
-         /* round up element size to mult of 4 */
-         GLint sz = (n->Store->Size + 3) & ~3;
-         /* mult by array size */
-         sz *= var->array_len;
-         n->Store->Size = sz;
+         /* cannot be const-qualified */
+         if (var->type.qualifier == SLANG_QUAL_CONST) {
+            slang_info_log_error(A->log, "array '%s' cannot be const",
+                                 (char*) var->a_name);
+            return NULL;
+         }
+         else {
+            /* round up element size to mult of 4 */
+            GLint sz = (n->Store->Size + 3) & ~3;
+            /* mult by array size */
+            sz *= var->array_len;
+            n->Store->Size = sz;
+         }
       }
 
       assert(n->Store->Size > 0);