Print this page
new smatch
@@ -165,11 +165,12 @@
return;
}
if (type->type != SYM_BASETYPE)
return;
right = strip_expr(right);
- if (!right)
+ type = get_type(right);
+ if (!right || !type || type->type == SYM_ARRAY)
right = unknown_value_expression(left);
assign = assign_expression(left, '=', right);
split_fake_expr(assign);
}
@@ -402,11 +403,11 @@
struct symbol *left_type;
if (expr->op != '=')
return;
- if (is_zero(expr->right))
+ if (expr_is_zero(expr->right))
return;
left_type = get_type(expr->left);
if (!left_type ||
(left_type->type != SYM_PTR &&