From c768c5965058d5921026f05a88f54ae8bd36ae0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Can=20B=C3=B6l=C3=BCk?= Date: Sat, 29 May 2021 18:33:25 +0200 Subject: [PATCH] Fixing the arithmetic hinting for equals. --- VTIL-SymEx/expressions/expression.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/VTIL-SymEx/expressions/expression.cpp b/VTIL-SymEx/expressions/expression.cpp index 58485b2..5e7a7aa 100644 --- a/VTIL-SymEx/expressions/expression.cpp +++ b/VTIL-SymEx/expressions/expression.cpp @@ -826,13 +826,10 @@ namespace vtil::symbolic // int8_t a_hint = a->is_expression() ? a->get_op_desc().hint_bitwise : 0; int8_t b_hint = b->is_expression() ? b->get_op_desc().hint_bitwise : 0; - int8_t m_hint = a_hint != 0 && b_hint != 0 - ? ( a_hint == 1 && b_hint == 1 ) - : ( a_hint != 0 ? a_hint : b_hint ); // If arithmetic hint, try A-B==0 first and then A^B==0. // - if ( m_hint == +1 ) + if ( ( a_hint + b_hint ) <= -1 ) return ( a - b ).get().value_or( -1 ) == 0 || ( a ^ b ).get().value_or( -1 ) == 0;