OSDN Git Service

* gcc.dg/march.c: Ignore a note for some targets.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gnat.dg / case_optimization_pkg1.ads
1 package Case_Optimization_Pkg1 is
2
3    type Element is null record;
4
5    type Internal_Element_Kinds is
6      (Not_An_Element,
7       An_All_Calls_Remote_Pragma,       
8       An_Asynchronous_Pragma,           
9       An_Atomic_Pragma,                 
10       An_Atomic_Components_Pragma,      
11       An_Attach_Handler_Pragma,         
12       A_Controlled_Pragma,              
13       A_Convention_Pragma,              
14       A_Discard_Names_Pragma,           
15       An_Elaborate_Pragma,              
16       An_Elaborate_All_Pragma,          
17       An_Elaborate_Body_Pragma,         
18       An_Export_Pragma,                 
19       An_Import_Pragma,                 
20       An_Inline_Pragma,                 
21       An_Inspection_Point_Pragma,       
22       An_Interrupt_Handler_Pragma,      
23       An_Interrupt_Priority_Pragma,     
24       A_Linker_Options_Pragma,          
25       A_List_Pragma,                    
26       A_Locking_Policy_Pragma,          
27       A_Normalize_Scalars_Pragma,       
28       An_Optimize_Pragma,               
29       A_Pack_Pragma,                    
30       A_Page_Pragma,                    
31       A_Preelaborate_Pragma,            
32       A_Priority_Pragma,                
33       A_Pure_Pragma,                    
34       A_Queuing_Policy_Pragma,          
35       A_Remote_Call_Interface_Pragma,   
36       A_Remote_Types_Pragma,            
37       A_Restrictions_Pragma,            
38       A_Reviewable_Pragma,              
39       A_Shared_Passive_Pragma,          
40       A_Storage_Size_Pragma,            
41       A_Suppress_Pragma,                
42       A_Task_Dispatching_Policy_Pragma, 
43       A_Volatile_Pragma,                
44       A_Volatile_Components_Pragma,     
45       An_Assert_Pragma,
46       An_Assertion_Policy_Pragma,
47       A_Detect_Blocking_Pragma,
48       A_No_Return_Pragma,
49       A_Partition_Elaboration_Policy_Pragma,
50       A_Preelaborable_Initialization_Pragma,
51       A_Priority_Specific_Dispatching_Pragma,
52       A_Profile_Pragma,
53       A_Relative_Deadline_Pragma,
54       An_Unchecked_Union_Pragma,
55       An_Unsuppress_Pragma,
56       An_Implementation_Defined_Pragma, 
57       An_Unknown_Pragma,
58       A_Defining_Identifier,                     
59       A_Defining_Character_Literal,              
60       A_Defining_Enumeration_Literal,            
61       A_Defining_And_Operator,                    
62       A_Defining_Or_Operator,                     
63       A_Defining_Xor_Operator,                    
64       A_Defining_Equal_Operator,                  
65       A_Defining_Not_Equal_Operator,              
66       A_Defining_Less_Than_Operator,              
67       A_Defining_Less_Than_Or_Equal_Operator,     
68       A_Defining_Greater_Than_Operator,           
69       A_Defining_Greater_Than_Or_Equal_Operator,  
70       A_Defining_Plus_Operator,                   
71       A_Defining_Minus_Operator,                  
72       A_Defining_Concatenate_Operator,            
73       A_Defining_Unary_Plus_Operator,             
74       A_Defining_Unary_Minus_Operator,            
75       A_Defining_Multiply_Operator,               
76       A_Defining_Divide_Operator,                 
77       A_Defining_Mod_Operator,                    
78       A_Defining_Rem_Operator,                    
79       A_Defining_Exponentiate_Operator,           
80       A_Defining_Abs_Operator,                    
81       A_Defining_Not_Operator,                    
82       A_Defining_Expanded_Name,  
83       An_Ordinary_Type_Declaration,              
84       A_Task_Type_Declaration,                   
85       A_Protected_Type_Declaration,              
86       An_Incomplete_Type_Declaration,            
87       A_Tagged_Incomplete_Type_Declaration,      
88       A_Private_Type_Declaration,                
89       A_Private_Extension_Declaration,           
90       A_Subtype_Declaration,                     
91       A_Variable_Declaration,                    
92       A_Constant_Declaration,                    
93       A_Deferred_Constant_Declaration,           
94       A_Single_Task_Declaration,                 
95       A_Single_Protected_Declaration,            
96       An_Integer_Number_Declaration,             
97       A_Real_Number_Declaration,                 
98       An_Enumeration_Literal_Specification,      
99       A_Discriminant_Specification,              
100       A_Component_Declaration,                   
101       A_Loop_Parameter_Specification,            
102       A_Procedure_Declaration,                   
103       A_Function_Declaration,                    
104       A_Parameter_Specification,                 
105       A_Procedure_Body_Declaration,              
106       A_Function_Body_Declaration,               
107       A_Return_Object_Declaration,            
108       A_Null_Procedure_Declaration,           
109       A_Package_Declaration,                     
110       A_Package_Body_Declaration,                
111       An_Object_Renaming_Declaration,            
112       An_Exception_Renaming_Declaration,         
113       A_Package_Renaming_Declaration,            
114       A_Procedure_Renaming_Declaration,          
115       A_Function_Renaming_Declaration,           
116       A_Generic_Package_Renaming_Declaration,    
117       A_Generic_Procedure_Renaming_Declaration,  
118       A_Generic_Function_Renaming_Declaration,   
119       A_Task_Body_Declaration,                   
120       A_Protected_Body_Declaration,              
121       An_Entry_Declaration,                      
122       An_Entry_Body_Declaration,                 
123       An_Entry_Index_Specification,              
124       A_Procedure_Body_Stub,                     
125       A_Function_Body_Stub,                      
126       A_Package_Body_Stub,                       
127       A_Task_Body_Stub,                          
128       A_Protected_Body_Stub,                     
129       An_Exception_Declaration,                  
130       A_Choice_Parameter_Specification,          
131       A_Generic_Procedure_Declaration,           
132       A_Generic_Function_Declaration,            
133       A_Generic_Package_Declaration,             
134       A_Package_Instantiation,                   
135       A_Procedure_Instantiation,                 
136       A_Function_Instantiation,                  
137       A_Formal_Object_Declaration,               
138       A_Formal_Type_Declaration,                 
139       A_Formal_Procedure_Declaration,            
140       A_Formal_Function_Declaration,             
141       A_Formal_Package_Declaration,              
142       A_Formal_Package_Declaration_With_Box,     
143       A_Derived_Type_Definition,             
144       A_Derived_Record_Extension_Definition, 
145       An_Enumeration_Type_Definition,        
146       A_Signed_Integer_Type_Definition,      
147       A_Modular_Type_Definition,             
148       A_Root_Integer_Definition,             
149       A_Root_Real_Definition,                
150       A_Universal_Integer_Definition,        
151       A_Universal_Real_Definition,           
152       A_Universal_Fixed_Definition,          
153       A_Floating_Point_Definition,           
154       An_Ordinary_Fixed_Point_Definition,    
155       A_Decimal_Fixed_Point_Definition,      
156       An_Unconstrained_Array_Definition,     
157       A_Constrained_Array_Definition,        
158       A_Record_Type_Definition,              
159       A_Tagged_Record_Type_Definition,       
160       An_Ordinary_Interface,           
161       A_Limited_Interface,             
162       A_Task_Interface,                
163       A_Protected_Interface,           
164       A_Synchronized_Interface,        
165       A_Pool_Specific_Access_To_Variable, 
166       An_Access_To_Variable,              
167       An_Access_To_Constant,              
168       An_Access_To_Procedure,             
169       An_Access_To_Protected_Procedure,   
170       An_Access_To_Function,              
171       An_Access_To_Protected_Function,    
172       A_Subtype_Indication,             
173       A_Range_Attribute_Reference,           
174       A_Simple_Expression_Range,             
175       A_Digits_Constraint,                   
176       A_Delta_Constraint,                    
177       An_Index_Constraint,                   
178       A_Discriminant_Constraint,            
179       A_Component_Definition,           
180       A_Discrete_Subtype_Indication_As_Subtype_Definition,     
181       A_Discrete_Range_Attribute_Reference_As_Subtype_Definition, 
182       A_Discrete_Simple_Expression_Range_As_Subtype_Definition,   
183       A_Discrete_Subtype_Indication,         
184       A_Discrete_Range_Attribute_Reference,  
185       A_Discrete_Simple_Expression_Range,    
186       An_Unknown_Discriminant_Part,     
187       A_Known_Discriminant_Part,        
188       A_Record_Definition,              
189       A_Null_Record_Definition,         
190       A_Null_Component,                 
191       A_Variant_Part,                   
192       A_Variant,                        
193       An_Others_Choice,                 
194       An_Anonymous_Access_To_Variable,  
195       An_Anonymous_Access_To_Constant,  
196       An_Anonymous_Access_To_Procedure,           
197       An_Anonymous_Access_To_Protected_Procedure, 
198       An_Anonymous_Access_To_Function,            
199       An_Anonymous_Access_To_Protected_Function, 
200       A_Private_Type_Definition,        
201       A_Tagged_Private_Type_Definition, 
202       A_Private_Extension_Definition,   
203       A_Task_Definition,                
204       A_Protected_Definition,           
205       A_Formal_Private_Type_Definition,         
206       A_Formal_Tagged_Private_Type_Definition,  
207       A_Formal_Derived_Type_Definition,         
208       A_Formal_Discrete_Type_Definition,        
209       A_Formal_Signed_Integer_Type_Definition,  
210       A_Formal_Modular_Type_Definition,         
211       A_Formal_Floating_Point_Definition,       
212       A_Formal_Ordinary_Fixed_Point_Definition, 
213       A_Formal_Decimal_Fixed_Point_Definition,  
214       A_Formal_Ordinary_Interface,             
215       A_Formal_Limited_Interface,              
216       A_Formal_Task_Interface,                 
217       A_Formal_Protected_Interface,            
218       A_Formal_Synchronized_Interface,        
219       A_Formal_Unconstrained_Array_Definition,  
220       A_Formal_Constrained_Array_Definition,    
221       A_Formal_Pool_Specific_Access_To_Variable,  
222       A_Formal_Access_To_Variable,             
223       A_Formal_Access_To_Constant,       
224       A_Formal_Access_To_Procedure,              
225       A_Formal_Access_To_Protected_Procedure,    
226       A_Formal_Access_To_Function,               
227       A_Formal_Access_To_Protected_Function,     
228       An_Integer_Literal,                        
229       A_Real_Literal,                            
230       A_String_Literal,                          
231       An_Identifier,                             
232       An_And_Operator,                     
233       An_Or_Operator,                      
234       An_Xor_Operator,                     
235       An_Equal_Operator,                   
236       A_Not_Equal_Operator,                
237       A_Less_Than_Operator,                
238       A_Less_Than_Or_Equal_Operator,       
239       A_Greater_Than_Operator,             
240       A_Greater_Than_Or_Equal_Operator,    
241       A_Plus_Operator,                     
242       A_Minus_Operator,                    
243       A_Concatenate_Operator,              
244       A_Unary_Plus_Operator,               
245       A_Unary_Minus_Operator,              
246       A_Multiply_Operator,                 
247       A_Divide_Operator,                   
248       A_Mod_Operator,                      
249       A_Rem_Operator,                      
250       An_Exponentiate_Operator,            
251       An_Abs_Operator,                     
252       A_Not_Operator,                      
253       A_Character_Literal,                       
254       An_Enumeration_Literal,                    
255       An_Explicit_Dereference,                   
256       A_Function_Call,                           
257       An_Indexed_Component,                      
258       A_Slice,                                   
259       A_Selected_Component,                      
260       An_Access_Attribute,           
261       An_Address_Attribute,          
262       An_Adjacent_Attribute,         
263       An_Aft_Attribute,              
264       An_Alignment_Attribute,        
265       A_Base_Attribute,              
266       A_Bit_Order_Attribute,         
267       A_Body_Version_Attribute,      
268       A_Callable_Attribute,          
269       A_Caller_Attribute,            
270       A_Ceiling_Attribute,           
271       A_Class_Attribute,             
272       A_Component_Size_Attribute,    
273       A_Compose_Attribute,           
274       A_Constrained_Attribute,       
275       A_Copy_Sign_Attribute,         
276       A_Count_Attribute,             
277       A_Definite_Attribute,          
278       A_Delta_Attribute,             
279       A_Denorm_Attribute,            
280       A_Digits_Attribute,            
281       An_Exponent_Attribute,         
282       An_External_Tag_Attribute,     
283       A_First_Attribute,             
284       A_First_Bit_Attribute,         
285       A_Floor_Attribute,             
286       A_Fore_Attribute,              
287       A_Fraction_Attribute,          
288       An_Identity_Attribute,         
289       An_Image_Attribute,            
290       An_Input_Attribute,            
291       A_Last_Attribute,              
292       A_Last_Bit_Attribute,          
293       A_Leading_Part_Attribute,      
294       A_Length_Attribute,            
295       A_Machine_Attribute,           
296       A_Machine_Emax_Attribute,      
297       A_Machine_Emin_Attribute,      
298       A_Machine_Mantissa_Attribute,  
299       A_Machine_Overflows_Attribute, 
300       A_Machine_Radix_Attribute,     
301       A_Machine_Rounds_Attribute,    
302       A_Max_Attribute,               
303       A_Max_Size_In_Storage_Elements_Attribute, 
304       A_Min_Attribute,               
305       A_Model_Attribute,             
306       A_Model_Emin_Attribute,        
307       A_Model_Epsilon_Attribute,     
308       A_Model_Mantissa_Attribute,    
309       A_Model_Small_Attribute,       
310       A_Modulus_Attribute,           
311       An_Output_Attribute,          
312       A_Partition_ID_Attribute,      
313       A_Pos_Attribute,               
314       A_Position_Attribute,          
315       A_Pred_Attribute,              
316       A_Range_Attribute,             
317       A_Read_Attribute,              
318       A_Remainder_Attribute,         
319       A_Round_Attribute,             
320       A_Rounding_Attribute,          
321       A_Safe_First_Attribute,        
322       A_Safe_Last_Attribute,         
323       A_Scale_Attribute,             
324       A_Scaling_Attribute,           
325       A_Signed_Zeros_Attribute,      
326       A_Size_Attribute,              
327       A_Small_Attribute,             
328       A_Storage_Pool_Attribute,      
329       A_Storage_Size_Attribute,      
330       A_Succ_Attribute,              
331       A_Tag_Attribute,               
332       A_Terminated_Attribute,        
333       A_Truncation_Attribute,        
334       An_Unbiased_Rounding_Attribute, 
335       An_Unchecked_Access_Attribute, 
336       A_Val_Attribute,               
337       A_Valid_Attribute,             
338       A_Value_Attribute,             
339       A_Version_Attribute,           
340       A_Wide_Image_Attribute,        
341       A_Wide_Value_Attribute,        
342       A_Wide_Width_Attribute,        
343       A_Width_Attribute,             
344       A_Write_Attribute,             
345       A_Machine_Rounding_Attribute,
346       A_Mod_Attribute,
347       A_Priority_Attribute,
348       A_Stream_Size_Attribute,
349       A_Wide_Wide_Image_Attribute,
350       A_Wide_Wide_Value_Attribute,
351       A_Wide_Wide_Width_Attribute,
352       An_Implementation_Defined_Attribute,  
353       An_Unknown_Attribute,
354       A_Record_Aggregate,                        
355       An_Extension_Aggregate,                    
356       A_Positional_Array_Aggregate,              
357       A_Named_Array_Aggregate,                   
358       An_And_Then_Short_Circuit,                 
359       An_Or_Else_Short_Circuit,                  
360       An_In_Range_Membership_Test,               
361       A_Not_In_Range_Membership_Test,            
362       An_In_Type_Membership_Test,                
363       A_Not_In_Type_Membership_Test,             
364       A_Null_Literal,                            
365       A_Parenthesized_Expression,                
366       A_Type_Conversion,                         
367       A_Qualified_Expression,                    
368       An_Allocation_From_Subtype,                
369       An_Allocation_From_Qualified_Expression,   
370       A_Pragma_Argument_Association,         
371       A_Discriminant_Association,            
372       A_Record_Component_Association,        
373       An_Array_Component_Association,        
374       A_Parameter_Association,               
375       A_Generic_Association,                 
376       A_Null_Statement,                    
377       An_Assignment_Statement,             
378       An_If_Statement,                     
379       A_Case_Statement,                    
380       A_Loop_Statement,                    
381       A_While_Loop_Statement,              
382       A_For_Loop_Statement,                
383       A_Block_Statement,                   
384       An_Exit_Statement,                   
385       A_Goto_Statement,                    
386       A_Procedure_Call_Statement,          
387       A_Return_Statement,                  
388       An_Extended_Return_Statement,        
389       An_Accept_Statement,                 
390       An_Entry_Call_Statement,             
391       A_Requeue_Statement,                 
392       A_Requeue_Statement_With_Abort,      
393       A_Delay_Until_Statement,             
394       A_Delay_Relative_Statement,          
395       A_Terminate_Alternative_Statement,   
396       A_Selective_Accept_Statement,        
397       A_Timed_Entry_Call_Statement,        
398       A_Conditional_Entry_Call_Statement,  
399       An_Asynchronous_Select_Statement,    
400       An_Abort_Statement,                  
401       A_Raise_Statement,                   
402       A_Code_Statement,                    
403       An_If_Path,                     
404       An_Elsif_Path,                  
405       An_Else_Path,                   
406       A_Case_Path,                    
407       A_Select_Path,                  
408       An_Or_Path,                     
409       A_Then_Abort_Path,              
410       A_Use_Package_Clause,           
411       A_Use_Type_Clause,              
412       A_With_Clause,                  
413       An_Attribute_Definition_Clause,           
414       An_Enumeration_Representation_Clause,     
415       A_Record_Representation_Clause,           
416       An_At_Clause,                             
417       A_Component_Clause,             
418       An_Exception_Handler,    
419       Non_Trivial_Mapping,
420       Not_Implemented_Mapping,
421       Trivial_Mapping,        
422       No_Mapping);
423
424    subtype Internal_Expression_Kinds is Internal_Element_Kinds
425       range An_Integer_Literal .. An_Allocation_From_Qualified_Expression;
426
427    subtype Internal_Operator_Symbol_Kinds is Internal_Expression_Kinds
428       range An_And_Operator .. A_Not_Operator;
429
430    function Int_Kind (E : Element) return Internal_Element_Kinds;
431
432 end Case_Optimization_Pkg1;