summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gnat.dg/loop_optimization2.ads
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gnat.dg/loop_optimization2.ads')
-rw-r--r--gcc/testsuite/gnat.dg/loop_optimization2.ads41
1 files changed, 41 insertions, 0 deletions
diff --git a/gcc/testsuite/gnat.dg/loop_optimization2.ads b/gcc/testsuite/gnat.dg/loop_optimization2.ads
new file mode 100644
index 000000000..39d83236b
--- /dev/null
+++ b/gcc/testsuite/gnat.dg/loop_optimization2.ads
@@ -0,0 +1,41 @@
+with System;
+
+package Loop_Optimization2 is
+
+ type Prim_Ptr is access procedure;
+ type Address_Array is array (Positive range <>) of Prim_Ptr;
+
+ subtype Dispatch_Table is Address_Array (1 .. 1);
+
+ type Tag is access all Dispatch_Table;
+
+ type Tag_Array is array (Positive range <>) of Tag;
+
+ function Interface_Ancestor_Tags (T : Tag) return Tag_Array;
+
+ type Interface_Data_Element is record
+ Iface_Tag : Tag;
+ end record;
+
+ type Interfaces_Array is array (Natural range <>) of Interface_Data_Element;
+
+ type Interface_Data (Nb_Ifaces : Positive) is record
+ Ifaces_Table : Interfaces_Array (1 .. Nb_Ifaces);
+ end record;
+
+ type Interface_Data_Ptr is access all Interface_Data;
+
+ type Type_Specific_Data (Idepth : Natural) is record
+ Interfaces_Table : Interface_Data_Ptr;
+ end record;
+
+ type Type_Specific_Data_Ptr is access all Type_Specific_Data;
+ pragma No_Strict_Aliasing (Type_Specific_Data_Ptr);
+
+ subtype Predef_Prims_Table is Address_Array (1 .. 16);
+ type Predef_Prims_Table_Ptr is access Predef_Prims_Table;
+
+ type Addr_Ptr is access System.Address;
+ pragma No_Strict_Aliasing (Addr_Ptr);
+
+end Loop_Optimization2;