diff -r e94368340160 -r 57c08195c962 stage3/narrow_candidate_datatypes.cc --- a/stage3/narrow_candidate_datatypes.cc Mon Jul 03 20:28:26 2017 +0100 +++ b/stage3/narrow_candidate_datatypes.cc Mon Jul 03 20:31:47 2017 +0100 @@ -107,8 +107,8 @@ /* Only set the symbol's desired datatype to 'datatype' if that datatype is in the candidate_datatype list */ -// static void set_datatype_in_prev_il_instructions(symbol_c *datatype, std::vector prev_il_instructions) { -static void set_datatype_in_prev_il_instructions(symbol_c *datatype, il_instruction_c *symbol) { +// NOTE: This function is virtual! The forced_narrow_candidate_datatypes_c has a slightly different version of this fuinction!! +void narrow_candidate_datatypes_c::set_datatype_in_prev_il_instructions(symbol_c *datatype, il_instruction_c *symbol) { if (NULL == symbol) ERROR; for (unsigned int i = 0; i < symbol->prev_il_instruction.size(); i++) set_datatype(datatype, symbol->prev_il_instruction[i]); @@ -1281,6 +1281,7 @@ * So, if yoy wish to set the prev_il_instruction->datatype = symbol->datatype; * do it __before__ calling set_il_operand_datatype() (which in turn calls il_operand->accept(*this)) !! */ +int count = 0; void *narrow_candidate_datatypes_c::set_il_operand_datatype(symbol_c *il_operand, symbol_c *datatype) { if (NULL == il_operand) return NULL; /* if no IL operand => error in the source code!! */