Print this page
12724 update smatch to 0.6.1-rc1-il-5
@@ -436,24 +436,24 @@
__pass_to_client(expr, RAW_ASSIGNMENT_HOOK);
/* foo = !bar() */
if (__handle_condition_assigns(expr))
- break;
+ goto after_assign;
/* foo = (x < 5 ? foo : 5); */
if (__handle_select_assigns(expr))
- break;
+ goto after_assign;
/* foo = ({frob(); frob(); frob(); 1;}) */
if (__handle_expr_statement_assigns(expr))
- break;
+ break; // FIXME: got after
/* foo = (3, 4); */
if (handle_comma_assigns(expr))
- break;
- if (handle_postop_assigns(expr))
- break;
+ goto after_assign;
if (handle__builtin_choose_expr_assigns(expr))
- break;
+ 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,12 +468,12 @@
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);