@@ -604,43 +604,42 @@ bool simplify_exprt::simplify_plus(exprt &expr)
604
604
605
605
bool simplify_exprt::simplify_minus (exprt &expr)
606
606
{
607
+ auto const &minus_expr = to_minus_expr (expr);
607
608
if (!is_number (expr.type ()) &&
608
609
expr.type ().id ()!=ID_pointer)
609
610
return true ;
610
611
611
- exprt::operandst &operands=expr.operands ();
612
-
613
- assert (expr.id ()==ID_minus);
612
+ const exprt::operandst &operands = minus_expr.operands ();
614
613
615
614
if (operands.size ()!=2 )
616
615
return true ;
617
616
618
- if (is_number (expr. type ()) &&
619
- is_number (operands[0 ].type ()) &&
620
- is_number (operands[1 ].type ()))
617
+ if (
618
+ is_number (minus_expr. type ()) && is_number (operands[0 ].type ()) &&
619
+ is_number (operands[1 ].type ()))
621
620
{
622
621
// rewrite "a-b" to "a+(-b)"
623
- unary_minus_exprt tmp2 (operands[1 ]);
624
- simplify_unary_minus (tmp2 );
622
+ unary_minus_exprt rhs_negated (operands[1 ]);
623
+ simplify_unary_minus (rhs_negated );
625
624
626
- plus_exprt tmp (operands[0 ], tmp2 );
627
- simplify_node (tmp );
625
+ plus_exprt plus_expr (operands[0 ], rhs_negated );
626
+ simplify_node (plus_expr );
628
627
629
- expr.swap (tmp );
628
+ expr.swap (plus_expr );
630
629
return false ;
631
630
}
632
631
else if (expr.type ().id ()==ID_pointer &&
633
632
operands[0 ].type ().id ()==ID_pointer &&
634
633
is_number (operands[1 ].type ()))
635
634
{
636
635
// pointer arithmetic: rewrite "p-i" to "p+(-i)"
637
- unary_minus_exprt tmp2 (operands[1 ]);
638
- simplify_unary_minus (tmp2 );
636
+ unary_minus_exprt negated_pointer_offset (operands[1 ]);
637
+ simplify_unary_minus (negated_pointer_offset );
639
638
640
- plus_exprt tmp (operands[0 ], tmp2 );
641
- simplify_plus (tmp );
639
+ plus_exprt pointer_offset_expr (operands[0 ], negated_pointer_offset );
640
+ simplify_plus (pointer_offset_expr );
642
641
643
- expr.swap (tmp );
642
+ expr.swap (pointer_offset_expr );
644
643
return false ;
645
644
}
646
645
else if (is_number (expr.type ()) &&
0 commit comments