-- { dg-do run }
-- { dg-options "-O" }

procedure Array5 is

    type myint is range 0 .. 100_000;
    Bla : constant myint := 359;

    type my_array is array (1 .. 2) of myint;

    type item is record
       Length  : Integer;
       Content : my_array;
    end record;

    procedure create_item (M : out item) is
    begin
      M.Length := 1;
      M.Content := (others => Bla);
    end;

    Var : item;

begin
    create_item (Var);

    if Var.Length = 1
     and then Var.Content (1) = Bla
    then
      null;
    else
      raise Program_Error;
    end if;
end;