Add ir_dereference constructor for structure field dereferences
[mesa.git] / ir_reader.cpp
index 64e7fd1333ad050997b789c9c0c19ed64a7928c9..2c942914aefc5e933990c85b23cc0064493616ae 100644 (file)
@@ -66,9 +66,6 @@ _mesa_glsl_read_ir(_mesa_glsl_parse_state *state, exec_list *instructions,
       ir_read_error(state, NULL, "couldn't parse S-Expression.");
       return;
    }
-   printf("S-Expression:\n");
-   expr->print();
-   printf("\n-------------\n");
    
    _mesa_glsl_initialize_types(state);
 
@@ -728,8 +725,12 @@ read_swizzle(_mesa_glsl_parse_state *st, s_list *list)
    if (rvalue == NULL)
       return NULL;
 
-   return ir_swizzle::create(rvalue, swiz->value(),
-                            rvalue->type->vector_elements);
+   ir_swizzle *ir = ir_swizzle::create(rvalue, swiz->value(),
+                                      rvalue->type->vector_elements);
+   if (ir == NULL)
+      ir_read_error(st, list, "invalid swizzle");
+
+   return ir;
 }
 
 static ir_constant *