expression->left = create_implicit_cast(left, arithmetic_type);
expression->right = create_implicit_cast(right, arithmetic_type);
expression->expression.datatype = arithmetic_type;
+ } else if (type_left->type == TYPE_POINTER &&
+ type_right->type == TYPE_POINTER) {
+ /* TODO check compatibility */
+ } else if (type_left->type == TYPE_POINTER) {
+ expression->right = create_implicit_cast(right, type_left);
+ } else if (type_right->type == TYPE_POINTER) {
+ expression->left = create_implicit_cast(left, type_right);
+ } else {
+ type_error_incompatible("invalid operands in comparison",
+ expression->expression.source_position,
+ type_left, type_right);
}
expression->expression.datatype = type_int;
}