diff --git a/libr/anal/var.c b/libr/anal/var.c index 5510eee0f9aa8..410a656307d79 100644 --- a/libr/anal/var.c +++ b/libr/anal/var.c @@ -1361,12 +1361,14 @@ R_API void r_anal_extract_rarg(RAnal *anal, RAnalOp *op, RAnalFunction *fcn, int } continue; } - if (is_reg_in_src (regname, anal, op) || STR_EQUAL (regname, opdreg)) { + if (is_reg_in_src (regname, anal, op)) { reg_set[i] = 1; } if (var) { r_anal_var_set_access (anal, var, var->regname, op->addr, R_PERM_R, 0); - r_meta_set_string (anal, R_META_TYPE_VARTYPE, op->addr, var->name); + if (is_reg_in_src (regname, anal, op)) { + r_meta_set_string (anal, R_META_TYPE_VARTYPE, op->addr, var->name); + } } } } @@ -1386,7 +1388,9 @@ R_API void r_anal_extract_rarg(RAnal *anal, RAnalOp *op, RAnalFunction *fcn, int if (newvar) { r_anal_var_set_access (anal, newvar, newvar->regname, op->addr, R_PERM_R, 0); } - r_meta_set_string (anal, R_META_TYPE_VARTYPE, op->addr, vname); + if (is_reg_in_src (selfreg, anal, op)) { + r_meta_set_string (anal, R_META_TYPE_VARTYPE, op->addr, vname); + } free (vname); (*count)++; } else { diff --git a/test/db/anal/arm b/test/db/anal/arm index 6d2a1b2be12d9..1121bdb0099ac 100644 --- a/test/db/anal/arm +++ b/test/db/anal/arm @@ -683,7 +683,7 @@ EXPECT=< "0x00000479" [color="#13a10e"]; "0x0000044b" -> "0x00000452" [color="#c50f1f"]; "0x00000452" -> "0x00000458" [color="cyan"]; diff --git a/test/db/cmd/dwarf b/test/db/cmd/dwarf index 99d08d868fec8..c9c682cd2e03f 100644 --- a/test/db/cmd/dwarf +++ b/test/db/cmd/dwarf @@ -495,8 +495,8 @@ EXPECT=<.Q.Z EOF EXPECT_ERR=<