panic("invalid compare builtin found");
break;
}
+ expression->base.source_position = HERE;
next_token();
expect('(');
if(!is_type_floating(type_left) && !is_type_floating(type_right)) {
if (is_type_valid(type_left) && is_type_valid(type_right)) {
type_error_incompatible("invalid operands in comparison",
- token.source_position, orig_type_left, orig_type_right);
+ expression->base.source_position, orig_type_left, orig_type_right);
}
} else {
semantic_comparison(&expression->binary);
expression_t *left) \
{ \
eat(token_type); \
+ source_position_t pos = HERE; \
\
expression_t *right = parse_sub_expression(precedence + lr); \
\
expression_t *binexpr = allocate_expression_zero(binexpression_type); \
+ binexpr->base.source_position = pos; \
binexpr->binary.left = left; \
binexpr->binary.right = right; \
sfunc(&binexpr->binary); \
.check_format = true,
.empty_statement = false,
.fatal_errors = false,
- .float_equal = true,
+ .float_equal = false,
.implicit_function_declaration = true,
.implicit_int = true,
.main = true,
.strict_prototypes = true,
.switch_default = false,
.unknown_pragmas = true,
+ .unused_label = false,
.unused_value = true
};