module test(c);

input [9:0] c;

function integer a(input integer b);
    begin
        a = b+1;
    end
endfunction

localparam f = 5;
wire [a(f)-1:0] d;
//wire [a(f)-1:0] d1;
assign d = c[a(f)-1:0]; // wrong behavior
localparam e = a(f);
//assign d1 = c[e-1:0]; // correct behavior

endmodule