Print this page
12724 update smatch to 0.6.1-rc1-il-5
*** 436,459 ****
__pass_to_client(expr, RAW_ASSIGNMENT_HOOK);
/* foo = !bar() */
if (__handle_condition_assigns(expr))
! break;
/* foo = (x < 5 ? foo : 5); */
if (__handle_select_assigns(expr))
! break;
/* foo = ({frob(); frob(); frob(); 1;}) */
if (__handle_expr_statement_assigns(expr))
! break;
/* foo = (3, 4); */
if (handle_comma_assigns(expr))
! break;
! if (handle_postop_assigns(expr))
! break;
if (handle__builtin_choose_expr_assigns(expr))
! break;
__split_expr(expr->right);
if (outside_of_function())
__pass_to_client(expr, GLOBAL_ASSIGNMENT_HOOK);
else
--- 436,459 ----
__pass_to_client(expr, RAW_ASSIGNMENT_HOOK);
/* foo = !bar() */
if (__handle_condition_assigns(expr))
! goto after_assign;
/* foo = (x < 5 ? foo : 5); */
if (__handle_select_assigns(expr))
! goto after_assign;
/* foo = ({frob(); frob(); frob(); 1;}) */
if (__handle_expr_statement_assigns(expr))
! break; // FIXME: got after
/* foo = (3, 4); */
if (handle_comma_assigns(expr))
! goto after_assign;
if (handle__builtin_choose_expr_assigns(expr))
! goto after_assign;
! if (handle_postop_assigns(expr))
! break; /* no need to goto after_assign */
__split_expr(expr->right);
if (outside_of_function())
__pass_to_client(expr, GLOBAL_ASSIGNMENT_HOOK);
else
*** 468,479 ****
if (get_macro_name(right->pos) &&
get_macro_name(expr->pos) != get_macro_name(right->pos))
__pass_to_client(expr, MACRO_ASSIGNMENT_HOOK);
__pass_to_client(expr, ASSIGNMENT_HOOK_AFTER);
-
__split_expr(expr->left);
break;
}
case EXPR_DEREF:
expr_set_parent_expr(expr->deref, expr);
--- 468,479 ----
if (get_macro_name(right->pos) &&
get_macro_name(expr->pos) != get_macro_name(right->pos))
__pass_to_client(expr, MACRO_ASSIGNMENT_HOOK);
+ after_assign:
__pass_to_client(expr, ASSIGNMENT_HOOK_AFTER);
__split_expr(expr->left);
break;
}
case EXPR_DEREF:
expr_set_parent_expr(expr->deref, expr);