From 449abb6bdaf2394508e8945fdbfc41264f8c1855 Mon Sep 17 00:00:00 2001 From: Lars-Peter Clausen Date: Sat, 20 Jun 2026 16:12:45 -0700 Subject: [PATCH] Add regression test for class tasks used as expressions Check that using a class task through an object method call in expression context reports a compile/elaboration error instead of triggering an assert. Signed-off-by: Lars-Peter Clausen --- ivtest/ivltests/sv_class_task_expr_fail.v | 19 +++++++++++++++++++ ivtest/regress-vvp.list | 1 + ivtest/vvp_tests/sv_class_task_expr_fail.json | 9 +++++++++ 3 files changed, 29 insertions(+) create mode 100644 ivtest/ivltests/sv_class_task_expr_fail.v create mode 100644 ivtest/vvp_tests/sv_class_task_expr_fail.json diff --git a/ivtest/ivltests/sv_class_task_expr_fail.v b/ivtest/ivltests/sv_class_task_expr_fail.v new file mode 100644 index 000000000..261f8135e --- /dev/null +++ b/ivtest/ivltests/sv_class_task_expr_fail.v @@ -0,0 +1,19 @@ +// Check that using a class task as an expression reports an error. + +module test; + + class C; + task t; + endtask + endclass + + C c; + + initial begin + int x; + c = new; + x = c.t(); + $display("FAILED"); + end + +endmodule diff --git a/ivtest/regress-vvp.list b/ivtest/regress-vvp.list index df582b9e6..3ea8e5176 100644 --- a/ivtest/regress-vvp.list +++ b/ivtest/regress-vvp.list @@ -272,6 +272,7 @@ sv_class_prop_nest_obj1 vvp_tests/sv_class_prop_nest_obj1.json sv_class_prop_nest_real1 vvp_tests/sv_class_prop_nest_real1.json sv_class_prop_nest_str1 vvp_tests/sv_class_prop_nest_str1.json sv_class_prop_nest_vec1 vvp_tests/sv_class_prop_nest_vec1.json +sv_class_task_expr_fail vvp_tests/sv_class_task_expr_fail.json sv_const1 vvp_tests/sv_const1.json sv_const2 vvp_tests/sv_const2.json sv_const3 vvp_tests/sv_const3.json diff --git a/ivtest/vvp_tests/sv_class_task_expr_fail.json b/ivtest/vvp_tests/sv_class_task_expr_fail.json new file mode 100644 index 000000000..d3c18575f --- /dev/null +++ b/ivtest/vvp_tests/sv_class_task_expr_fail.json @@ -0,0 +1,9 @@ +{ + "type" : "CE", + "source" : "sv_class_task_expr_fail.v", + "iverilog-args" : [ "-g2005-sv" ], + "vlog95" : { + "__comment" : "Classes are not supported", + "type" : "CE" + } +}