3 package Loop_Optimization2
is
5 type Prim_Ptr
is access procedure;
6 type Address_Array
is array (Positive range <>) of Prim_Ptr
;
8 subtype Dispatch_Table
is Address_Array
(1 .. 1);
10 type Tag
is access all Dispatch_Table
;
12 type Tag_Array
is array (Positive range <>) of Tag
;
14 function Interface_Ancestor_Tags
(T
: Tag
) return Tag_Array
;
16 type Interface_Data_Element
is record
20 type Interfaces_Array
is array (Natural range <>) of Interface_Data_Element
;
22 type Interface_Data
(Nb_Ifaces
: Positive) is record
23 Ifaces_Table
: Interfaces_Array
(1 .. Nb_Ifaces
);
26 type Interface_Data_Ptr
is access all Interface_Data
;
28 type Type_Specific_Data
(Idepth
: Natural) is record
29 Interfaces_Table
: Interface_Data_Ptr
;
32 type Type_Specific_Data_Ptr
is access all Type_Specific_Data
;
33 pragma No_Strict_Aliasing
(Type_Specific_Data_Ptr
);
35 subtype Predef_Prims_Table
is Address_Array
(1 .. 16);
36 type Predef_Prims_Table_Ptr
is access Predef_Prims_Table
;
38 type Addr_Ptr
is access System
.Address
;
39 pragma No_Strict_Aliasing
(Addr_Ptr
);
41 end Loop_Optimization2
;