From 008b76eae6faa59f72259bf4932995bf38e1e1c3 Mon Sep 17 00:00:00 2001 From: Lars-Peter Clausen Date: Sun, 9 Aug 2026 14:47:42 -0700 Subject: [PATCH] Add regression tests for `null` array dimensions Check that source `null` expressions in `[null]` and `[null:N]` are rejected rather than treated as the `$` marker for unbounded and bounded queue dimensions. Signed-off-by: Lars-Peter Clausen --- ivtest/ivltests/sv_dimension_null_range_fail.v | 5 +++++ ivtest/ivltests/sv_dimension_null_size_fail.v | 5 +++++ ivtest/regress-vvp.list | 2 ++ ivtest/vvp_tests/sv_dimension_null_range_fail.json | 5 +++++ ivtest/vvp_tests/sv_dimension_null_size_fail.json | 5 +++++ 5 files changed, 22 insertions(+) create mode 100644 ivtest/ivltests/sv_dimension_null_range_fail.v create mode 100644 ivtest/ivltests/sv_dimension_null_size_fail.v create mode 100644 ivtest/vvp_tests/sv_dimension_null_range_fail.json create mode 100644 ivtest/vvp_tests/sv_dimension_null_size_fail.json diff --git a/ivtest/ivltests/sv_dimension_null_range_fail.v b/ivtest/ivltests/sv_dimension_null_range_fail.v new file mode 100644 index 000000000..bcfb7b1d3 --- /dev/null +++ b/ivtest/ivltests/sv_dimension_null_range_fail.v @@ -0,0 +1,5 @@ +// Check that null is not confused with a bounded queue dimension. + +module test; + integer value[null:2]; +endmodule diff --git a/ivtest/ivltests/sv_dimension_null_size_fail.v b/ivtest/ivltests/sv_dimension_null_size_fail.v new file mode 100644 index 000000000..2ff03528a --- /dev/null +++ b/ivtest/ivltests/sv_dimension_null_size_fail.v @@ -0,0 +1,5 @@ +// Check that null is not confused with an unbounded queue dimension. + +module test; + integer value[null]; +endmodule diff --git a/ivtest/regress-vvp.list b/ivtest/regress-vvp.list index 19bbe7abd..f9138fc2d 100644 --- a/ivtest/regress-vvp.list +++ b/ivtest/regress-vvp.list @@ -338,6 +338,8 @@ sv_declaration_after_null_statement_fail vvp_tests/sv_declaration_after_null_sta sv_default_port_value1 vvp_tests/sv_default_port_value1.json sv_default_port_value2 vvp_tests/sv_default_port_value2.json sv_default_port_value3 vvp_tests/sv_default_port_value3.json +sv_dimension_null_range_fail vvp_tests/sv_dimension_null_range_fail.json +sv_dimension_null_size_fail vvp_tests/sv_dimension_null_size_fail.json sv_enum_reference_order vvp_tests/sv_enum_reference_order.json sv_enum_reference_order_relaxed vvp_tests/sv_enum_reference_order_relaxed.json sv_foreach9 vvp_tests/sv_foreach9.json diff --git a/ivtest/vvp_tests/sv_dimension_null_range_fail.json b/ivtest/vvp_tests/sv_dimension_null_range_fail.json new file mode 100644 index 000000000..b7f26da5a --- /dev/null +++ b/ivtest/vvp_tests/sv_dimension_null_range_fail.json @@ -0,0 +1,5 @@ +{ + "type" : "CE", + "source" : "sv_dimension_null_range_fail.v", + "iverilog-args" : [ "-g2005-sv" ] +} diff --git a/ivtest/vvp_tests/sv_dimension_null_size_fail.json b/ivtest/vvp_tests/sv_dimension_null_size_fail.json new file mode 100644 index 000000000..f4cdcff02 --- /dev/null +++ b/ivtest/vvp_tests/sv_dimension_null_size_fail.json @@ -0,0 +1,5 @@ +{ + "type" : "CE", + "source" : "sv_dimension_null_size_fail.v", + "iverilog-args" : [ "-g2005-sv" ] +}