VHDL Procedure - Same variable for input/output parameter
I have changed your function to give a value on reset as follows:

wait until rising_edge(iClk);
if iReset_n = '0' then
    vVar := (others =&gt; '0');
else
    incr(vVar, vVar);
end if;


I don't know how it works without this initialization for previous VHDL versions (it shouldn't), but it works with it under VHDL 2008