diff --git a/ivtest/ivltests/sv_queue_function.v b/ivtest/ivltests/sv_queue_function1.v similarity index 100% rename from ivtest/ivltests/sv_queue_function.v rename to ivtest/ivltests/sv_queue_function1.v diff --git a/ivtest/ivltests/sv_queue_function2.v b/ivtest/ivltests/sv_queue_function2.v new file mode 100644 index 000000000..a9aec655b --- /dev/null +++ b/ivtest/ivltests/sv_queue_function2.v @@ -0,0 +1,24 @@ +// Check that bounded queues are supported as function return types. + +module test; + + typedef int Q[$:1]; + + function automatic Q f(); + // The last element should be discarded + return '{1, 2, 3}; + endfunction + + initial begin + int q[$]; + + q = f(); + + if (q.size() == 2 && q[0] == 1 && q[1] == 2) begin + $display("PASSED"); + end else begin + $display("FAILED"); + end + end + +endmodule diff --git a/ivtest/regress-sv.list b/ivtest/regress-sv.list index 5e10030ab..3561f1aa5 100644 --- a/ivtest/regress-sv.list +++ b/ivtest/regress-sv.list @@ -582,7 +582,8 @@ sv_port_default14 CE,-g2009 ivltests sv_queue1 normal,-g2009 ivltests sv_queue2 normal,-g2009 ivltests sv_queue3 normal,-g2009 ivltests -sv_queue_function normal,-g2009 ivltests +sv_queue_function1 normal,-g2009 ivltests +sv_queue_function2 normal,-g2009 ivltests sv_queue_parray normal,-g2009,-pfileline=1 ivltests gold=sv_queue_parray.gold sv_queue_parray_bounded normal,-g2009,-pfileline=1 ivltests gold=sv_queue_parray_bounded.gold sv_queue_parray_fail CE,-g2009 ivltests gold=sv_queue_parray_fail.gold diff --git a/ivtest/regress-vlog95.list b/ivtest/regress-vlog95.list index ddf6e57f6..c85adc362 100644 --- a/ivtest/regress-vlog95.list +++ b/ivtest/regress-vlog95.list @@ -470,7 +470,8 @@ pr3390385b CE,-g2009 ivltests # ++ pr3390385c CE,-g2009 ivltests # ++ pr3390385d CE,-g2009 ivltests # ++ pr3462145 CE,-g2009 ivltests # ++ -sv_queue_function CE,-g2009,-pallowsigned=1 ivltests # queue +sv_queue_function1 CE,-g2009,-pallowsigned=1 ivltests # queue +sv_queue_function2 CE,-g2009,-pallowsigned=1 ivltests # queue sv_typedef_darray_base1 CE,-g2009 ivltests # Dyanmic array sv_typedef_darray_base2 CE,-g2009 ivltests # Dyanmic array sv_typedef_darray_base3 CE,-g2009 ivltests # Dyanmic array