diff -r cece842c7417 -r 0919986a5c98 stage4/generate_c/generate_c_il.cc --- 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);