entity rec2 is
end;

architecture behav of rec2 is
  type rec1 is record
    a : natural;
  end record;

  type rec1_arr is array (natural range <>) of rec1;

  function resolve (a : rec1_arr) return rec1 is
  begin
    return (a => 0);
  end resolve;

  subtype srec1 is resolve rec1;
begin
  process
    variable a : srec1;
  begin
    a.a := 5;
    wait;
  end process;
end behav;