data/full_repos/permissive/143278/ivltests/sv_darray_function.v
 line:23: before: "logic"
1: b'%Error: data/full_repos/permissive/143278/ivltests/sv_darray_function.v:28: Unsupported: Dynamic array new\n    tmp = new[$size(inp)];\n          ^~~\n%Error: data/full_repos/permissive/143278/ivltests/sv_darray_function.v:42: Unsupported: Dynamic array new\n    a = new[3];\n        ^~~\n%Error: Exiting due to 2 error(s)\n        ... See the manual and https://verilator.org for more assistance.\n'
module sv_darray_function();
typedef logic[7:0] byte_array [];
typedef logic[3*8-1:0] byte_vector;

function byte_array inc_array(byte_array inp);
    byte_array tmp;
    tmp = new[$size(inp)];

    for(int i = 0; i < $size(inp); ++i)
    begin
        tmp[i] = inp[i] + 1;
    end

    return tmp;
endfunction

initial begin
    byte_array a, b;
    byte_vector c;

    a = new[3];
    a[0] = 10;
    a[1] = 11;
    a[2] = 12;
    b = inc_array(a);

    if($size(a) != 3 || a[0] !== 10 || a[1] !== 11 || a[2] !== 12) begin
        $display("FAILED 1");
        $finish();
    end

    if($size(b) != 3 || b[0] !== 11 || b[1] !== 12 || b[2] !== 13) begin
        $display("FAILED 2");
        $finish();
    end


    c = byte_vector'(inc_array(b));
    if(c !== 24'h0c0d0e) begin
        $display("FAILED 3");
        $finish();
    end

    $display("PASSED");
end
endmodule
module sv_darray_function();

typedef logic[7:0] byte_array [];
typedef logic[3*8-1:0] byte_vector;

function byte_array inc_array(byte_array inp);
    byte_array tmp;
    tmp = new[$size(inp)];

    for(int i = 0; i < $size(inp); ++i)
    begin
        tmp[i] = inp[i] + 1;
    end

    return tmp;
endfunction

initial begin
    byte_array a, b;
    byte_vector c;

    a = new[3];
    a[0] = 10;
    a[1] = 11;
    a[2] = 12;
    b = inc_array(a);

    if($size(a) != 3 || a[0] !== 10 || a[1] !== 11 || a[2] !== 12) begin
        $display("FAILED 1");
        $finish();
    end

    if($size(b) != 3 || b[0] !== 11 || b[1] !== 12 || b[2] !== 13) begin
        $display("FAILED 2");
        $finish();
    end


    c = byte_vector'(inc_array(b));
    if(c !== 24'h0c0d0e) begin
        $display("FAILED 3");
        $finish();
    end

    $display("PASSED");
end
endmodule