--- 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);