diff options
Diffstat (limited to 'miasm2/expression/expression.py')
| -rw-r--r-- | miasm2/expression/expression.py | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/miasm2/expression/expression.py b/miasm2/expression/expression.py index 3cf37070..11400e9e 100644 --- a/miasm2/expression/expression.py +++ b/miasm2/expression/expression.py @@ -715,7 +715,9 @@ class ExprAff(Expr): return self.__class__, state def __new__(cls, dst, src): - if isinstance(dst, ExprSlice): + if dst.is_slice() and dst.arg.size == src.size: + new_dst, new_src = dst.arg, src + elif dst.is_slice(): # Complete the source with missing slice parts new_dst = dst.arg rest = [(ExprSlice(dst.arg, r[0], r[1]), r[0], r[1]) |