From 6184f764a1a178ce29b5df84123c671f5183b893 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ivan=20=E2=80=9CCLOVIS=E2=80=9D=20Canet?= Date: Fri, 20 May 2022 14:15:02 +0200 Subject: [PATCH] Simplifications: fixed "^ is a binary operator" In Miasm Python, using ^ and + as unary operators is allowed. In Miasm Rust, it's not. This patch fixes two tests by teaching Python what to do when a unary operator is necessary: a op b == a op c <=> b == c when 'op' is ^ or + --- miasm/expression/simplifications_common.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/miasm/expression/simplifications_common.py b/miasm/expression/simplifications_common.py index 7caafe5d8..d80eee39c 100644 --- a/miasm/expression/simplifications_common.py +++ b/miasm/expression/simplifications_common.py @@ -1147,8 +1147,8 @@ def simp_cmp_bijective_op(expr_simp, expr): if not args_b: return ExprOp(TOK_EQUAL, ExprOp(op, *args_a), ExprInt(0, args_a[0].size)) - arg_a = ExprOp(op, *args_a) - arg_b = ExprOp(op, *args_b) + arg_a = ExprOp(op, *args_a) if len(args_a) > 1 else args_a[0] + arg_b = ExprOp(op, *args_b) if len(args_b) > 1 else args_b[0] return ExprOp(TOK_EQUAL, arg_a, arg_b)