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 &&