case EXPR_UNARY_CAST:
case EXPR_UNARY_CAST_IMPLICIT:
- return is_type_arithmetic(skip_typeref(expression->base.type))
+ return is_type_scalar(skip_typeref(expression->base.type))
&& is_constant_expression(expression->unary.value);
case EXPR_BINARY_ADD:
assert(!is_typeref(type));
switch (type->kind) {
- case TYPE_POINTER: return true;
- case TYPE_BUILTIN: return is_type_scalar(type->builtin.real_type);
- default: break;
+ case TYPE_POINTER: return true;
+ case TYPE_BUILTIN: return is_type_scalar(type->builtin.real_type);
+ default: break;
}
return is_type_arithmetic(type);