Print this page
11972 resync smatch
*** 266,300 ****
static void match_param_assign_in_asm(struct statement *stmt)
{
! struct expression *expr;
struct symbol *type;
- int state = 0;
int param;
! FOR_EACH_PTR(stmt->asm_inputs, expr) {
! switch (state) {
! case 0: /* identifier */
! case 1: /* constraint */
! state++;
! continue;
! case 2: /* expression */
! state = 0;
!
! expr = strip_expr(expr);
type = get_type(expr);
if (!type || type->type != SYM_PTR)
continue;
param = get_param_num(expr);
if (param < 0)
continue;
set_state_expr(my_id, expr, &untracked);
! continue;
! }
! } END_FOR_EACH_PTR(expr);
}
static void match_inline_start(struct expression *expr)
{
push_int(&tracked_stack, tracked);
--- 266,289 ----
static void match_param_assign_in_asm(struct statement *stmt)
{
! struct expression *tmp, *expr;
struct symbol *type;
int param;
! FOR_EACH_PTR(stmt->asm_inputs, tmp) {
! expr = strip_expr(tmp->expr);
type = get_type(expr);
if (!type || type->type != SYM_PTR)
continue;
param = get_param_num(expr);
if (param < 0)
continue;
set_state_expr(my_id, expr, &untracked);
! } END_FOR_EACH_PTR(tmp);
}
static void match_inline_start(struct expression *expr)
{
push_int(&tracked_stack, tracked);