-- { dg-do compile }
-- { dg-options "-O -gnatws" }

package body Varsize_Copy is

   type Key_Mapping_Type is record
      Page : Page_Type;
      B    : Boolean;
   end record;

   type Key_Mapping_Array is array (Key_Type) of Key_Mapping_Type;

   type Set is record
      Key_Mappings : Key_Mapping_Array;
   end record;

   S : Set;

   function F (Key : Key_Type) return Page_Type is
   begin
      return S.Key_Mappings (Key).Page;
   end;

end Varsize_Copy;