stage3/narrow_candidate_datatypes.cc
changeset 470 d2cd05c5e01a
parent 467 4910eaa1206a
child 472 d26759a2274a
equal deleted inserted replaced
469:9fe6c4633ed6 470:d2cd05c5e01a
   823 	set_datatype_in_prev_il_instructions(symbol->datatype, fake_prev_il_instruction);
   823 	set_datatype_in_prev_il_instructions(symbol->datatype, fake_prev_il_instruction);
   824 	return NULL;
   824 	return NULL;
   825 }
   825 }
   826 
   826 
   827 void *narrow_candidate_datatypes_c::visit(NOT_operator_c *symbol) {
   827 void *narrow_candidate_datatypes_c::visit(NOT_operator_c *symbol) {
   828   /* TODO: ... */
   828 	/* NOTE: the standard allows syntax in which the NOT operator is followed by an optional <il_operand>
       
   829 	 *              NOT [<il_operand>]
       
   830 	 *       However, it does not define the semantic of the NOT operation when the <il_operand> is specified.
       
   831 	 *       We therefore consider it an error if an il_operand is specified!
       
   832 	 */
       
   833 	/* We do not change the data type, we simply invert the bits in bit types! */
       
   834 	/* So, we set the desired datatype of the previous il instruction */
       
   835 	set_datatype_in_prev_il_instructions(symbol->datatype, fake_prev_il_instruction);
   829 	return NULL;
   836 	return NULL;
   830 }
   837 }
   831 
   838 
   832 void *narrow_candidate_datatypes_c::visit(S_operator_c *symbol)  {
   839 void *narrow_candidate_datatypes_c::visit(S_operator_c *symbol)  {
   833   /* TODO: what if this is a FB call? */
   840   /* TODO: what if this is a FB call? */