@@ -2408,7 +2408,7 @@ static exprt zero_extend(const exprt &expr, const typet &type)
24082408
24092409/* ******************************************************************\
24102410
2411- Function: verilog_typecheck_exprt::typecheck_relation
2411+ Function: verilog_typecheck_exprt::convert_relation
24122412
24132413 Inputs:
24142414
@@ -2418,11 +2418,14 @@ Function: verilog_typecheck_exprt::typecheck_relation
24182418
24192419\*******************************************************************/
24202420
2421- void verilog_typecheck_exprt::typecheck_relation (binary_exprt &expr)
2421+ void verilog_typecheck_exprt::convert_relation (binary_exprt &expr)
24222422{
24232423 auto &lhs = expr.lhs ();
24242424 auto &rhs = expr.rhs ();
24252425
2426+ convert_expr (lhs);
2427+ convert_expr (rhs);
2428+
24262429 union_decay (lhs);
24272430 union_decay (rhs);
24282431
@@ -3062,10 +3065,7 @@ exprt verilog_typecheck_exprt::convert_binary_expr(binary_exprt expr)
30623065 {
30633066 expr.type ()=bool_typet ();
30643067
3065- Forall_operands (it, expr)
3066- convert_expr (*it);
3067-
3068- typecheck_relation (expr);
3068+ convert_relation (expr);
30693069
30703070 return std::move (expr);
30713071 }
@@ -3074,10 +3074,7 @@ exprt verilog_typecheck_exprt::convert_binary_expr(binary_exprt expr)
30743074 expr.id () == ID_verilog_logical_inequality)
30753075 {
30763076 // == and !=
3077- Forall_operands (it, expr)
3078- convert_expr (*it);
3079-
3080- typecheck_relation (expr);
3077+ convert_relation (expr);
30813078
30823079 // This returns 'x' if either of the operands contains x or z.
30833080 if (
@@ -3125,9 +3122,7 @@ exprt verilog_typecheck_exprt::convert_binary_expr(binary_exprt expr)
31253122 // a proper equality is performed.
31263123 expr.type ()=bool_typet ();
31273124
3128- convert_expr (expr.lhs ());
3129- convert_expr (expr.rhs ());
3130- typecheck_relation (expr);
3125+ convert_relation (expr);
31313126
31323127 // integral operands only
31333128 must_be_integral (expr.lhs ());
@@ -3140,10 +3135,7 @@ exprt verilog_typecheck_exprt::convert_binary_expr(binary_exprt expr)
31403135 {
31413136 expr.type ()=bool_typet ();
31423137
3143- Forall_operands (it, expr)
3144- convert_expr (*it);
3145-
3146- typecheck_relation (expr);
3138+ convert_relation (expr);
31473139 no_bool_ops (expr);
31483140
31493141 return std::move (expr);
0 commit comments