Print this page
11506 smatch resync
@@ -22,16 +22,18 @@
static int my_id;
static char *get_source_parameter(struct expression *expr)
{
struct expression *tmp;
+ const char *param_name;
struct symbol *sym;
char *name;
int param;
char *ret = NULL;
char buf[32];
int cnt = 0;
+ bool modified = false;
tmp = expr;
while ((tmp = get_assigned_expr(tmp))) {
expr = tmp;
if (cnt++ > 3)
@@ -46,14 +48,18 @@
if (!name || !sym)
goto free;
param = get_param_num_from_sym(sym);
if (param < 0)
goto free;
- if (param_was_set(expr))
+ param_name = get_param_name_var_sym(name, sym);
+ if (!param_name)
goto free;
+ if (param_was_set_var_sym(name, sym))
+ modified = true;
- snprintf(buf, sizeof(buf), "p %d", param);
+ snprintf(buf, sizeof(buf), "$%d%s%s", param, param_name + 1,
+ modified ? " [m]" : "");
ret = alloc_string(buf);
free:
free_string(name);
return ret;