Print this page
new smatch
*** 165,175 ****
return;
}
if (type->type != SYM_BASETYPE)
return;
right = strip_expr(right);
! if (!right)
right = unknown_value_expression(left);
assign = assign_expression(left, '=', right);
split_fake_expr(assign);
}
--- 165,176 ----
return;
}
if (type->type != SYM_BASETYPE)
return;
right = strip_expr(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,412 ****
struct symbol *left_type;
if (expr->op != '=')
return;
! if (is_zero(expr->right))
return;
left_type = get_type(expr->left);
if (!left_type ||
(left_type->type != SYM_PTR &&
--- 403,413 ----
struct symbol *left_type;
if (expr->op != '=')
return;
! if (expr_is_zero(expr->right))
return;
left_type = get_type(expr->left);
if (!left_type ||
(left_type->type != SYM_PTR &&