diff options
| -rw-r--r-- | miasm2/expression/simplifications_common.py | 2 | ||||
| -rw-r--r-- | test/expression/simplifications.py | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/miasm2/expression/simplifications_common.py b/miasm2/expression/simplifications_common.py index 772a2609..82f2cf75 100644 --- a/miasm2/expression/simplifications_common.py +++ b/miasm2/expression/simplifications_common.py @@ -427,7 +427,7 @@ def simp_slice(e_s, e): continue # arg is fully included in slice elif e.start <= s_start and s_stop <= e.stop: - out.append((arg, s_start, s_stop)) + out.append((arg, s_start - e.start, s_stop - e.start)) continue # arg is truncated at start if e.start > s_start: diff --git a/test/expression/simplifications.py b/test/expression/simplifications.py index 2088fc7c..df7fdceb 100644 --- a/test/expression/simplifications.py +++ b/test/expression/simplifications.py @@ -254,6 +254,8 @@ to_test = [(ExprInt32(1) - ExprInt32(1), ExprInt32(0)), ExprInt(uint32(0x1L)), 0, 32), (ExprInt(uint32(0x0L)), 32, 64))) ), + (ExprCompose([(a[:16], 0, 16), (b[:16], 16, 32)])[8:32], + ExprCompose([(a[8:16], 0, 8), (b[:16], 8, 24)])), ] |