diff --git a/regression/verilog/class/new1.desc b/regression/verilog/class/new1.desc index 7b532cf15..8682af3e5 100644 --- a/regression/verilog/class/new1.desc +++ b/regression/verilog/class/new1.desc @@ -1,8 +1,7 @@ -KNOWNBUG +CORE new1.sv -^EXIT=0$ +^EXIT=10$ ^SIGNAL=0$ -- -- -The class is not yet recognized as a type. diff --git a/src/verilog/verilog_typecheck_expr.cpp b/src/verilog/verilog_typecheck_expr.cpp index d38a7f4d6..f7de61d08 100644 --- a/src/verilog/verilog_typecheck_expr.cpp +++ b/src/verilog/verilog_typecheck_expr.cpp @@ -269,6 +269,15 @@ void verilog_typecheck_exprt::assignment_conversion( } } + if(rhs.type().id() == ID_verilog_new) + { + if(lhs_type.id() == ID_verilog_class_type) + { + rhs = typecast_exprt{rhs, lhs_type}; + return; + } + } + // "The size of the left-hand side of an assignment forms // the context for the right-hand expression."