2017-07-25 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / gnat.dg / debug10_pkg.ads
blob10146c5a4018752380fb85530f491f30594cfc55
1 with Unchecked_Conversion;
3 package Debug10_Pkg is
5 type Node_Id is range 0 .. 99_999_999;
7 Empty : constant Node_Id := 0;
9 subtype Entity_Id is Node_Id;
11 type Union_Id is new Integer;
13 function My_Is_Entity_Name (N : Node_Id) return Boolean;
15 function My_Scalar_Range (Id : Entity_Id) return Node_Id;
17 function My_Test (N : Node_Id) return Boolean;
19 type Node_Kind is (N_Unused_At_Start, N_Unused_At_End);
21 type Entity_Kind is (
23 E_Void,
24 E_Component,
25 E_Constant,
26 E_Discriminant,
27 E_Loop_Parameter,
28 E_Variable,
29 E_Out_Parameter,
30 E_In_Out_Parameter,
31 E_In_Parameter,
32 E_Generic_In_Out_Parameter,
33 E_Generic_In_Parameter,
34 E_Named_Integer,
35 E_Named_Real,
36 E_Enumeration_Type,
37 E_Enumeration_Subtype,
38 E_Signed_Integer_Type,
39 E_Signed_Integer_Subtype,
40 E_Modular_Integer_Type,
41 E_Modular_Integer_Subtype,
42 E_Ordinary_Fixed_Point_Type,
43 E_Ordinary_Fixed_Point_Subtype,
44 E_Decimal_Fixed_Point_Type,
45 E_Decimal_Fixed_Point_Subtype,
46 E_Floating_Point_Type,
47 E_Floating_Point_Subtype,
48 E_Access_Type,
49 E_Access_Subtype,
50 E_Access_Attribute_Type,
51 E_Allocator_Type,
52 E_General_Access_Type,
53 E_Access_Subprogram_Type,
54 E_Anonymous_Access_Subprogram_Type,
55 E_Access_Protected_Subprogram_Type,
56 E_Anonymous_Access_Protected_Subprogram_Type,
57 E_Anonymous_Access_Type,
58 E_Array_Type,
59 E_Array_Subtype,
60 E_String_Literal_Subtype,
61 E_Class_Wide_Type,
62 E_Class_Wide_Subtype,
63 E_Record_Type,
64 E_Record_Subtype,
65 E_Record_Type_With_Private,
66 E_Record_Subtype_With_Private,
67 E_Private_Type,
68 E_Private_Subtype,
69 E_Limited_Private_Type,
70 E_Limited_Private_Subtype,
71 E_Incomplete_Type,
72 E_Incomplete_Subtype,
73 E_Task_Type,
74 E_Task_Subtype,
75 E_Protected_Type,
76 E_Protected_Subtype,
77 E_Exception_Type,
78 E_Subprogram_Type,
79 E_Enumeration_Literal,
80 E_Function,
81 E_Operator,
82 E_Procedure,
83 E_Abstract_State,
84 E_Entry,
85 E_Entry_Family,
86 E_Block,
87 E_Entry_Index_Parameter,
88 E_Exception,
89 E_Generic_Function,
90 E_Generic_Procedure,
91 E_Generic_Package,
92 E_Label,
93 E_Loop,
94 E_Return_Statement,
95 E_Package,
96 E_Package_Body,
97 E_Protected_Object,
98 E_Protected_Body,
99 E_Task_Body,
100 E_Subprogram_Body
103 subtype Access_Kind is Entity_Kind range
104 E_Access_Type ..
105 E_Anonymous_Access_Type;
107 subtype Array_Kind is Entity_Kind range
108 E_Array_Type ..
109 E_String_Literal_Subtype;
111 subtype Object_Kind is Entity_Kind range
112 E_Component ..
113 E_Generic_In_Parameter;
115 subtype Record_Kind is Entity_Kind range
116 E_Class_Wide_Type ..
117 E_Record_Subtype_With_Private;
119 subtype Scalar_Kind is Entity_Kind range
120 E_Enumeration_Type ..
121 E_Floating_Point_Subtype;
123 subtype Type_Kind is Entity_Kind range
124 E_Enumeration_Type ..
125 E_Subprogram_Type;
127 type Node_Record (Is_Extension : Boolean := False) is record
128 Flag16 : Boolean;
129 Nkind : Node_Kind;
130 end record;
132 function N_To_E is new Unchecked_Conversion (Node_Kind, Entity_Kind);
134 type Arr is array (Node_Id) of Node_Record;
136 Nodes : Arr;
138 end Debug10_Pkg;