Print this page
new smatch
*** 345,355 ****
while (expr->type == EXPR_DEREF) {
tmp = get_member_offset_from_deref(expr);
if (tmp < 0)
return 0;
tmp_offset += tmp;
! expr = expr->deref;
}
*offset = tmp_offset;
if (expr->type == EXPR_PREOP && expr->op == '*') {
expr = strip_expr(expr->unop);
--- 345,355 ----
while (expr->type == EXPR_DEREF) {
tmp = get_member_offset_from_deref(expr);
if (tmp < 0)
return 0;
tmp_offset += tmp;
! expr = strip_expr(expr->deref);
}
*offset = tmp_offset;
if (expr->type == EXPR_PREOP && expr->op == '*') {
expr = strip_expr(expr->unop);