@@ -426,7 +426,7 @@ void verilog_typecheck_exprt::no_bool_ops(exprt &expr)
426426
427427/* ******************************************************************\
428428
429- Function: verilog_typecheck_exprt::must_be_integral
429+ Function: verilog_typecheck_exprt::must_be_bit_vector
430430
431431 Inputs:
432432
@@ -436,9 +436,9 @@ Function: verilog_typecheck_exprt::must_be_integral
436436
437437\*******************************************************************/
438438
439- void verilog_typecheck_exprt::must_be_integral ( const exprt &expr)
439+ void verilog_typecheck_exprt::must_be_bit_vector ( exprt &expr)
440440{
441- // Throw an error if the given expression doesn't have an integral type.
441+ // Throw an error if the given expression doesn't have a bitvector type.
442442 const auto &type = expr.type ();
443443 if (type.id () == ID_bool)
444444 {
@@ -452,7 +452,7 @@ void verilog_typecheck_exprt::must_be_integral(const exprt &expr)
452452 }
453453 else
454454 throw errort ().with_location (expr.source_location ())
455- << " operand " << to_string (expr) << " must be integral " ;
455+ << " operand " << to_string (expr) << " must have a bit vector type " ;
456456}
457457
458458/* ******************************************************************\
@@ -490,7 +490,7 @@ exprt verilog_typecheck_exprt::convert_expr_concatenation(
490490 << " unsized literals are not allowed in concatenations" ;
491491 }
492492
493- must_be_integral (*it);
493+ must_be_bit_vector (*it);
494494
495495 const typet &type = it->type ();
496496
@@ -1563,7 +1563,7 @@ exprt verilog_typecheck_exprt::convert_constant(constant_exprt expr)
15631563
15641564 const std::string &value = id2string (expr.get_value ());
15651565
1566- // real or integral ?
1566+ // real or integer ?
15671567 if (
15681568 value.find (' .' ) != std::string::npos ||
15691569 (value.find (' h' ) == std::string::npos &&
@@ -2558,10 +2558,11 @@ exprt verilog_typecheck_exprt::convert_unary_expr(unary_exprt expr)
25582558 {
25592559 // these may produce an 'x' if the operand is a verilog_bv
25602560 convert_expr (expr.op ());
2561- must_be_integral (expr.op ());
2561+ must_be_bit_vector (expr.op ());
25622562
2563- if (expr.op ().type ().id () == ID_verilog_signedbv ||
2564- expr.op ().type ().id () == ID_verilog_unsignedbv)
2563+ if (
2564+ expr.op ().type ().id () == ID_verilog_signedbv ||
2565+ expr.op ().type ().id () == ID_verilog_unsignedbv)
25652566 {
25662567 expr.type ()=verilog_unsignedbv_typet (1 );
25672568 }
@@ -2668,7 +2669,7 @@ exprt verilog_typecheck_exprt::convert_unary_expr(unary_exprt expr)
26682669 // slice_size is defaulted to 1
26692670 PRECONDITION (expr.op ().operands ().size () == 1 );
26702671 convert_expr (expr.op ().operands ()[0 ]);
2671- must_be_integral (expr.op ().operands ()[0 ]);
2672+ must_be_bit_vector (expr.op ().operands ()[0 ]);
26722673 expr.type () = expr.op ().operands ()[0 ].type ();
26732674 return std::move (expr);
26742675 }
@@ -2839,7 +2840,7 @@ exprt verilog_typecheck_exprt::convert_replication_expr(replication_exprt expr)
28392840 exprt &op1=expr.op1 ();
28402841
28412842 convert_expr (op1);
2842- must_be_integral (op1);
2843+ must_be_bit_vector (op1);
28432844
28442845 if (op1.type ().id ()==ID_bool)
28452846 op1 = typecast_exprt{op1, unsignedbv_typet{1 }};
@@ -3085,9 +3086,9 @@ exprt verilog_typecheck_exprt::convert_binary_expr(binary_exprt expr)
30853086
30863087 convert_relation (expr);
30873088
3088- // integral operands only
3089- must_be_integral (expr.lhs ());
3090- must_be_integral (expr.rhs ());
3089+ // bit vector operands only
3090+ must_be_bit_vector (expr.lhs ());
3091+ must_be_bit_vector (expr.rhs ());
30913092
30923093 return std::move (expr);
30933094 }
@@ -3120,8 +3121,8 @@ exprt verilog_typecheck_exprt::convert_binary_expr(binary_exprt expr)
31203121
31213122 convert_expr (expr.lhs ());
31223123 convert_expr (expr.rhs ());
3123- must_be_integral (expr.lhs ());
3124- must_be_integral (expr.rhs ());
3124+ must_be_bit_vector (expr.lhs ());
3125+ must_be_bit_vector (expr.rhs ());
31253126 no_bool_ops (expr);
31263127
31273128 const typet &lhs_type = expr.lhs ().type ();
@@ -3157,9 +3158,8 @@ exprt verilog_typecheck_exprt::convert_binary_expr(binary_exprt expr)
31573158 // logical right shift >>
31583159 convert_expr (expr.lhs ());
31593160 convert_expr (expr.rhs ());
3160- must_be_integral (expr.lhs ());
3161- must_be_integral (expr.rhs ());
3162- no_bool_ops (expr);
3161+ must_be_bit_vector (expr.lhs ());
3162+ must_be_bit_vector (expr.rhs ());
31633163
31643164 const typet &lhs_type = expr.lhs ().type ();
31653165 const typet &rhs_type = expr.rhs ().type ();
@@ -3191,12 +3191,13 @@ exprt verilog_typecheck_exprt::convert_binary_expr(binary_exprt expr)
31913191 {
31923192 convert_expr (expr.lhs ());
31933193 convert_expr (expr.rhs ());
3194- must_be_integral (expr.lhs ());
3195- must_be_integral (expr.rhs ());
31963194
31973195 tc_binary_expr (expr);
31983196 no_bool_ops (expr);
31993197
3198+ must_be_bit_vector (expr.lhs ());
3199+ must_be_bit_vector (expr.rhs ());
3200+
32003201 expr.type () = expr.lhs ().type ();
32013202
32023203 return std::move (expr);
0 commit comments