stage4/generate_c/generate_c_il.cc
changeset 238 0919986a5c98
parent 237 cece842c7417
child 240 f78fa87bb4cb
--- a/stage4/generate_c/generate_c_il.cc	Tue Dec 15 16:29:44 2009 +0100
+++ b/stage4/generate_c/generate_c_il.cc	Tue Dec 15 20:50:30 2009 +0100
@@ -657,23 +657,27 @@
       symbol->subscripted_variable->accept(*this);
       break;
     case complextype_suffix_vg:
+      symbol->subscripted_variable->accept(*this);
+
       current_array_type = search_varfb_instance_type->get_rawtype(symbol->subscripted_variable);
-      symbol->subscripted_variable->accept(*this);
-      if (current_array_type != NULL) {
-    	s4o.print(".table");
-        symbol->subscript_list->accept(*this);
-        current_array_type = NULL;
-      }
+      if (current_array_type == NULL) ERROR;
+
+      s4o.print(".table");
+      symbol->subscript_list->accept(*this);
+
+      current_array_type = NULL;
       break;
     default:
       if (this->is_variable_prefix_null()) {
-    	current_array_type = search_varfb_instance_type->get_rawtype(symbol->subscripted_variable);
-    	symbol->subscripted_variable->accept(*this);
-    	if (current_array_type != NULL) {
-          s4o.print(".table");
-    	  symbol->subscript_list->accept(*this);
-    	  current_array_type = NULL;
-    	}
+        symbol->subscripted_variable->accept(*this);
+
+        current_array_type = search_varfb_instance_type->get_rawtype(symbol->subscripted_variable);
+        if (current_array_type == NULL) ERROR;
+
+        s4o.print(".table");
+        symbol->subscript_list->accept(*this);
+
+        current_array_type = NULL;
       }
       else
     	print_getter(symbol);