diff -r e8563dcaefca -r 56ebe2a31b5b stage3/narrow_candidate_datatypes.cc --- a/stage3/narrow_candidate_datatypes.cc Mon Apr 03 22:06:40 2017 +0100 +++ b/stage3/narrow_candidate_datatypes.cc Mon Apr 03 22:18:22 2017 +0100 @@ -609,8 +609,8 @@ // SYM_LIST(enumerated_value_list_c) void *narrow_candidate_datatypes_c::visit(enumerated_value_list_c *symbol) { //if (NULL == symbol->datatype) ERROR; // Comented out-> Reserve this check for the print_datatypes_error_c ??? - for(int i = 0; i < symbol->n; i++) set_datatype(symbol->datatype, symbol->elements[i]); -//for(int i = 0; i < symbol->n; i++) if (NULL == symbol->elements[i]->datatype) ERROR; // Comented out-> Reserve this check for the print_datatypes_error_c ??? + for(int i = 0; i < symbol->n; i++) set_datatype(symbol->datatype, symbol->get_element(i)); +//for(int i = 0; i < symbol->n; i++) if (NULL == symbol->get_element(i)->datatype) ERROR; // Comented out-> Reserve this check for the print_datatypes_error_c ??? return NULL; } @@ -682,7 +682,7 @@ // assume symbol->datatype is a FB type search_varfb_instance_type_c search_varfb_instance_type(symbol->datatype); for (int k = 0; k < symbol->n; k++) { - structure_element_initialization_c *struct_elem = (structure_element_initialization_c *)symbol->elements[k]; + structure_element_initialization_c *struct_elem = (structure_element_initialization_c *)symbol->get_element(k); symbol_c *type = search_varfb_instance_type.get_basetype_decl(struct_elem->structure_element_name); set_datatype(type, struct_elem); struct_elem->accept(*this); @@ -772,11 +772,11 @@ // SYM_LIST(subscript_list_c) void *narrow_candidate_datatypes_c::visit(subscript_list_c *symbol) { for (int i = 0; i < symbol->n; i++) { - for (unsigned int k = 0; k < symbol->elements[i]->candidate_datatypes.size(); k++) { - if (get_datatype_info_c::is_ANY_INT(symbol->elements[i]->candidate_datatypes[k])) - symbol->elements[i]->datatype = symbol->elements[i]->candidate_datatypes[k]; + for (unsigned int k = 0; k < symbol->get_element(i)->candidate_datatypes.size(); k++) { + if (get_datatype_info_c::is_ANY_INT(symbol->get_element(i)->candidate_datatypes[k])) + symbol->get_element(i)->datatype = symbol->get_element(i)->candidate_datatypes[k]; } - symbol->elements[i]->accept(*this); + symbol->get_element(i)->accept(*this); } return NULL; } @@ -846,8 +846,8 @@ void *narrow_candidate_datatypes_c::visit(var1_list_c *symbol) { #if 0 /* We don't really need to set the datatype of each variable. We just check the declaration itself! */ for(int i = 0; i < symbol->n; i++) { - if (symbol->elements[i]->candidate_datatypes.size() == 1) - symbol->elements[i]->datatype = symbol->elements[i]->candidate_datatypes[0]; + if (symbol->get_element(i)->candidate_datatypes.size() == 1) + symbol->get_element(i)->datatype = symbol->get_element(i)->candidate_datatypes[0]; } #endif return NULL; @@ -1026,7 +1026,7 @@ */ for(int j = 0; j < 2; j++) { for(int i = symbol->n-1; i >= 0; i--) { - symbol->elements[i]->accept(*this); + symbol->get_element(i)->accept(*this); } } return NULL; @@ -1141,7 +1141,7 @@ */ if ((NULL != symbol->il_operand) && ((NULL == symbol->simple_instr_list) || (0 == ((list_c *)symbol->simple_instr_list)->n))) ERROR; // stage2 is not behaving as we expect it to! if (NULL != symbol->il_operand) - symbol->il_operand->datatype = ((list_c *)symbol->simple_instr_list)->elements[0]->datatype; + symbol->il_operand->datatype = ((list_c *)symbol->simple_instr_list)->get_element(0)->datatype; return NULL; } @@ -1213,10 +1213,10 @@ /* This object is referenced by il_expression_c objects */ void *narrow_candidate_datatypes_c::visit(simple_instr_list_c *symbol) { if (symbol->n > 0) - symbol->elements[symbol->n - 1]->datatype = symbol->datatype; + symbol->get_element(symbol->n - 1)->datatype = symbol->datatype; for(int i = symbol->n-1; i >= 0; i--) { - symbol->elements[i]->accept(*this); + symbol->get_element(i)->accept(*this); } return NULL; } @@ -1748,8 +1748,8 @@ // SYM_LIST(case_element_list_c) void *narrow_candidate_datatypes_c::visit(case_element_list_c *symbol) { for (int i = 0; i < symbol->n; i++) { - symbol->elements[i]->datatype = symbol->datatype; - symbol->elements[i]->accept(*this); + symbol->get_element(i)->datatype = symbol->datatype; + symbol->get_element(i)->accept(*this); } return NULL; } @@ -1766,12 +1766,12 @@ // SYM_LIST(case_list_c) void *narrow_candidate_datatypes_c::visit(case_list_c *symbol) { for (int i = 0; i < symbol->n; i++) { - for (unsigned int k = 0; k < symbol->elements[i]->candidate_datatypes.size(); k++) { - if (get_datatype_info_c::is_type_equal(symbol->datatype, symbol->elements[i]->candidate_datatypes[k])) - symbol->elements[i]->datatype = symbol->elements[i]->candidate_datatypes[k]; + for (unsigned int k = 0; k < symbol->get_element(i)->candidate_datatypes.size(); k++) { + if (get_datatype_info_c::is_type_equal(symbol->datatype, symbol->get_element(i)->candidate_datatypes[k])) + symbol->get_element(i)->datatype = symbol->get_element(i)->candidate_datatypes[k]; } /* NOTE: this may be an integer, a subrange_c, or a enumerated value! */ - symbol->elements[i]->accept(*this); + symbol->get_element(i)->accept(*this); } return NULL; }