1with Array16_Pkg;
2
3package Array16 is
4
5  type T1 (D : Integer) is record
6    case D is
7      when 1 => I : Integer;
8      when others => null;
9    end case;
10  end record;
11
12  type Arr is array (Integer range <>) of Integer;
13
14  type My_T1 is new T1 (Array16_Pkg.N);
15  type My_T2 is new Arr (1 .. Integer'Min (2, Array16_Pkg.N));
16
17  function F1 (A : access My_T1) return My_T1;
18  pragma Inline (F1);
19
20  function F2 (A : access My_T2) return My_T2;
21  pragma Inline (F2);
22
23  procedure Proc (A : access My_T1; B : access My_T2);
24
25end Array16;
26