Print this page
11972 resync smatch
*** 141,153 ****
static void call_modification_hooks(struct expression *expr, struct expression *mod_expr, int late)
{
char *name;
struct symbol *sym;
- if (late == LATE)
- update_mtag_data(expr);
-
name = expr_to_known_chunk_sym(expr, &sym);
if (!name)
goto free;
call_modification_hooks_name_sym(name, sym, mod_expr, late);
free:
--- 141,150 ----
*** 154,164 ****
free_string(name);
}
static void db_param_add(struct expression *expr, int param, char *key, char *value)
{
! struct expression *arg, *gen_expr;
char *name, *other_name;
struct symbol *sym, *other_sym;
while (expr->type == EXPR_ASSIGNMENT)
expr = strip_expr(expr->right);
--- 151,161 ----
free_string(name);
}
static void db_param_add(struct expression *expr, int param, char *key, char *value)
{
! struct expression *arg;
char *name, *other_name;
struct symbol *sym, *other_sym;
while (expr->type == EXPR_ASSIGNMENT)
expr = strip_expr(expr->right);
*** 167,180 ****
arg = get_argument_from_call_expr(expr->args, param);
if (!arg)
return;
- gen_expr = gen_expression_from_key(arg, key);
- if (gen_expr)
- update_mtag_data(gen_expr);
-
name = get_variable_from_key(arg, key, &sym);
if (!name || !sym)
goto free;
__in_fake_assign++;
--- 164,173 ----
*** 224,250 ****
}
static void asm_expr(struct statement *stmt, int late)
{
struct expression *expr;
- int state = 0;
FOR_EACH_PTR(stmt->asm_outputs, expr) {
! switch (state) {
! case 0: /* identifier */
! case 1: /* constraint */
! state++;
continue;
! case 2: /* expression */
! state = 0;
! call_modification_hooks(expr, NULL, late);
! continue;
! }
} END_FOR_EACH_PTR(expr);
}
-
static void match_assign_early(struct expression *expr)
{
match_assign(expr, EARLY);
}
--- 217,234 ----
}
static void asm_expr(struct statement *stmt, int late)
{
struct expression *expr;
FOR_EACH_PTR(stmt->asm_outputs, expr) {
! if (expr->type != EXPR_ASM_OPERAND)
continue;
! call_modification_hooks(expr->expr, NULL, late);
} END_FOR_EACH_PTR(expr);
}
static void match_assign_early(struct expression *expr)
{
match_assign(expr, EARLY);
}