]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ada/fe.h
Correct a function pre/postcondition [PR102403].
[thirdparty/gcc.git] / gcc / ada / fe.h
CommitLineData
70482933
RK
1/****************************************************************************
2 * *
3 * GNAT COMPILER COMPONENTS *
4 * *
5 * FE *
6 * *
7 * C Header File *
8 * *
8d0d46f4 9 * Copyright (C) 1992-2021, Free Software Foundation, Inc. *
70482933
RK
10 * *
11 * GNAT is free software; you can redistribute it and/or modify it under *
12 * terms of the GNU General Public License as published by the Free Soft- *
748086b7 13 * ware Foundation; either version 3, or (at your option) any later ver- *
70482933
RK
14 * sion. GNAT is distributed in the hope that it will be useful, but WITH- *
15 * OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY *
748086b7
JJ
16 * or FITNESS FOR A PARTICULAR PURPOSE. *
17 * *
18 * As a special exception under Section 7 of GPL version 3, you are granted *
19 * additional permissions described in the GCC Runtime Library Exception, *
20 * version 3.1, as published by the Free Software Foundation. *
21 * *
22 * You should have received a copy of the GNU General Public License and *
23 * a copy of the GCC Runtime Library Exception along with this program; *
24 * see the files COPYING3 and COPYING.RUNTIME respectively. If not, see *
25 * <http://www.gnu.org/licenses/>. *
70482933
RK
26 * *
27 * GNAT was originally developed by the GNAT team at New York University. *
71ff80dc 28 * Extensive contributions were provided by Ada Core Technologies Inc. *
70482933
RK
29 * *
30 ****************************************************************************/
31
c7732bbe
EB
32/* This is the C header that contains the declarations of Ada subprograms and
33 variables used by gigi and not declared in other C header files. It was
34 created manually from Ada specifications. The original Ada declarations
35 in these specifications must be marked with:
36
37 "WARNING: There is a matching C declaration of this <entity_kind> in fe.h"
38
2f31b362 39 where <entity_kind> is either "subprogram" or "variable" or "type".
93582885
EB
40
41 WARNING: functions taking String_Pointer parameters must abide by the rule
42 documented alongside the definition of String_Pointer in types.h. */
70482933 43
9e9bd455
LG
44#ifdef __cplusplus
45extern "C" {
46#endif
47
be7e4a40
AC
48/* atree: */
49
c7732bbe 50#define Serious_Errors_Detected atree__serious_errors_detected
be7e4a40 51
c7732bbe 52extern Nat Serious_Errors_Detected;
70482933 53
c7732bbe 54/* comperr: */
70482933 55
c7732bbe 56#define Compiler_Abort comperr__compiler_abort
70482933 57
b0ba442b 58extern void Compiler_Abort (String_Pointer, String_Pointer, Boolean) ATTRIBUTE_NORETURN;
70482933
RK
59
60/* debug: */
61
6153cfd7 62#define Debug_Flag_Dot_KK debug__debug_flag_dot_kk
8489c295
AC
63#define Debug_Flag_Dot_R debug__debug_flag_dot_r
64#define Debug_Flag_NN debug__debug_flag_nn
c7732bbe 65
6153cfd7 66extern Boolean Debug_Flag_Dot_KK;
8489c295 67extern Boolean Debug_Flag_Dot_R;
70482933
RK
68extern Boolean Debug_Flag_NN;
69
72b4f1fc 70/* einfo: */
70482933 71
76f9c7f4
BD
72#define Set_Alignment einfo__entities__set_alignment
73#define Set_Component_Bit_Offset einfo__entities__set_component_bit_offset
74#define Set_Component_Size einfo__entities__set_component_size
75#define Set_Esize einfo__entities__set_esize
76#define Set_Mechanism einfo__entities__set_mechanism
77#define Set_Normalized_First_Bit einfo__entities__set_normalized_first_bit
78#define Set_Normalized_Position einfo__entities__set_normalized_position
79#define Set_RM_Size einfo__entities__set_rm_size
70482933 80
fbf5a39b 81extern void Set_Alignment (Entity_Id, Uint);
e6f69614 82extern void Set_Component_Bit_Offset (Entity_Id, Uint);
fbf5a39b
AC
83extern void Set_Component_Size (Entity_Id, Uint);
84extern void Set_Esize (Entity_Id, Uint);
e6f69614 85extern void Set_Mechanism (Entity_Id, Mechanism_Type);
63a329f8
EB
86extern void Set_Normalized_First_Bit (Entity_Id, Uint);
87extern void Set_Normalized_Position (Entity_Id, Uint);
fbf5a39b 88extern void Set_RM_Size (Entity_Id, Uint);
70482933 89
76f9c7f4 90#define Is_Entity_Name einfo__utils__is_entity_name
c7732bbe 91
fbf5a39b 92extern Boolean Is_Entity_Name (Node_Id);
07fc65c4 93
76f9c7f4 94#define Get_Attribute_Definition_Clause einfo__utils__get_attribute_definition_clause
c7732bbe 95
30e36fd0 96extern Node_Id Get_Attribute_Definition_Clause (Entity_Id, unsigned char);
07fc65c4 97
70482933
RK
98/* errout: */
99
c7732bbe
EB
100#define Error_Msg_N errout__error_msg_n
101#define Error_Msg_NE errout__error_msg_ne
102#define Set_Identifier_Casing errout__set_identifier_casing
fbf5a39b 103
c7732bbe
EB
104extern void Error_Msg_N (String_Pointer, Node_Id);
105extern void Error_Msg_NE (String_Pointer, Node_Id, Entity_Id);
b0ba442b 106extern void Set_Identifier_Casing (void *, const void *);
70482933 107
fbf5a39b
AC
108/* err_vars: */
109
c7732bbe
EB
110#define Error_Msg_Uint_1 err_vars__error_msg_uint_1
111#define Error_Msg_Uint_2 err_vars__error_msg_uint_2
033ba5bf 112
c7732bbe
EB
113extern Uint Error_Msg_Uint_1;
114extern Uint Error_Msg_Uint_2;
70482933 115
09ef48fe
GD
116/* exp_ch11: */
117
c7732bbe
EB
118#define Get_Local_Raise_Call_Entity exp_ch11__get_local_raise_call_entity
119#define Get_RT_Exception_Entity exp_ch11__get_rt_exception_entity
120#define Get_RT_Exception_Name exp_ch11__get_rt_exception_name
121#define Warn_If_No_Local_Raise exp_ch11__warn_if_no_local_raise
09ef48fe 122
c7732bbe
EB
123extern Entity_Id Get_Local_Raise_Call_Entity (void);
124extern Entity_Id Get_RT_Exception_Entity (int);
a6d3b499 125extern void Get_RT_Exception_Name (enum RT_Exception_Code);
c7732bbe 126extern void Warn_If_No_Local_Raise (int);
09ef48fe 127
70482933 128/* exp_code: */
fbf5a39b 129
c7732bbe
EB
130#define Asm_Input_Constraint exp_code__asm_input_constraint
131#define Asm_Input_Value exp_code__asm_input_value
132#define Asm_Output_Constraint exp_code__asm_output_constraint
133#define Asm_Output_Variable exp_code__asm_output_variable
134#define Asm_Template exp_code__asm_template
135#define Clobber_Get_Next exp_code__clobber_get_next
136#define Clobber_Setup exp_code__clobber_setup
137#define Is_Asm_Volatile exp_code__is_asm_volatile
138#define Next_Asm_Input exp_code__next_asm_input
139#define Next_Asm_Output exp_code__next_asm_output
140#define Setup_Asm_Inputs exp_code__setup_asm_inputs
141#define Setup_Asm_Outputs exp_code__setup_asm_outputs
70482933 142
fbf5a39b
AC
143extern Node_Id Asm_Input_Constraint (void);
144extern Node_Id Asm_Input_Value (void);
145extern Node_Id Asm_Output_Constraint (void);
146extern Node_Id Asm_Output_Variable (void);
147extern Node_Id Asm_Template (Node_Id);
b0ba442b 148extern void *Clobber_Get_Next (void);
fbf5a39b
AC
149extern void Clobber_Setup (Node_Id);
150extern Boolean Is_Asm_Volatile (Node_Id);
151extern void Next_Asm_Input (void);
152extern void Next_Asm_Output (void);
153extern void Setup_Asm_Inputs (Node_Id);
154extern void Setup_Asm_Outputs (Node_Id);
70482933
RK
155
156/* exp_dbug: */
157
c7732bbe
EB
158#define Get_Encoded_Name exp_dbug__get_encoded_name
159#define Get_External_Name exp_dbug__get_external_name
160#define Get_Variant_Encoding exp_dbug__get_variant_encoding
70482933 161
c7732bbe
EB
162extern void Get_Encoded_Name (Entity_Id);
163extern void Get_External_Name (Entity_Id, Boolean, String_Pointer);
164extern void Get_Variant_Encoding (Entity_Id);
70482933 165
c743425f
EB
166/* exp_tss: */
167
c7732bbe 168#define Is_Init_Proc exp_tss__is_init_proc
c743425f
EB
169
170extern Boolean Is_Init_Proc (Entity_Id);
171
6fb4cdde
AC
172/* exp_util: */
173
c7732bbe
EB
174#define Is_Fully_Repped_Tagged_Type exp_util__is_fully_repped_tagged_type
175#define Find_Interface_Tag exp_util__find_interface_tag
6fb4cdde
AC
176
177extern Boolean Is_Fully_Repped_Tagged_Type (Entity_Id);
d58008d2 178extern Entity_Id Find_Interface_Tag (Entity_Id, Entity_Id);
6fb4cdde 179
70482933
RK
180/* lib: */
181
182#define Cunit lib__cunit
183#define Ident_String lib__ident_string
184#define In_Extended_Main_Code_Unit lib__in_extended_main_code_unit
185
fbf5a39b
AC
186extern Node_Id Cunit (Unit_Number_Type);
187extern Node_Id Ident_String (Unit_Number_Type);
188extern Boolean In_Extended_Main_Code_Unit (Entity_Id);
70482933
RK
189
190/* opt: */
191
2f31b362 192#define Ada_Version opt__ada_version
7f34e744 193#define Assume_No_Invalid_Values opt__assume_no_invalid_values
c7732bbe
EB
194#define Back_End_Inlining opt__back_end_inlining
195#define Debug_Generated_Code opt__debug_generated_code
3cc3a373 196#define Enable_128bit_Types opt__enable_128bit_types
c7732bbe
EB
197#define Exception_Extra_Info opt__exception_extra_info
198#define Exception_Locations_Suppressed opt__exception_locations_suppressed
199#define Exception_Mechanism opt__exception_mechanism
200#define Generate_SCO_Instance_Table opt__generate_sco_instance_table
201#define GNAT_Mode opt__gnat_mode
202#define List_Representation_Info opt__list_representation_info
203#define No_Strict_Aliasing_CP opt__no_strict_aliasing
204#define Suppress_Checks opt__suppress_checks
07fc65c4 205
2f31b362 206typedef enum {
5ddd01d6 207 Ada_83, Ada_95, Ada_2005, Ada_2012, Ada_2022, Ada_With_Extensions
2f31b362
EB
208} Ada_Version_Type;
209
0ab0bf95
OH
210typedef enum {
211 Front_End_SJLJ, Back_End_ZCX, Back_End_SJLJ
212} Exception_Mechanism_Type;
07fc65c4 213
2f31b362 214extern Ada_Version_Type Ada_Version;
7f34e744 215extern Boolean Assume_No_Invalid_Values;
f087ea44 216extern Boolean Back_End_Inlining;
13a6dfe3 217extern Boolean Debug_Generated_Code;
f2d9f95e 218extern Boolean Enable_128bit_Types;
437f8c1e 219extern Boolean Exception_Extra_Info;
a49c3e16 220extern Boolean Exception_Locations_Suppressed;
07fc65c4 221extern Exception_Mechanism_Type Exception_Mechanism;
7130729a 222extern Boolean Generate_SCO_Instance_Table;
5b2bf62c 223extern Boolean GNAT_Mode;
4116e7d0 224extern Int List_Representation_Info;
c3831524 225extern Boolean No_Strict_Aliasing_CP;
0274dd3f 226extern Boolean Suppress_Checks;
70482933 227
c7732bbe
EB
228#define ZCX_Exceptions opt__zcx_exceptions
229#define SJLJ_Exceptions opt__sjlj_exceptions
230#define Front_End_Exceptions opt__front_end_exceptions
231#define Back_End_Exceptions opt__back_end_exceptions
0ab0bf95 232
c7732bbe
EB
233extern Boolean ZCX_Exceptions (void);
234extern Boolean SJLJ_Exceptions (void);
235extern Boolean Front_End_Exceptions (void);
236extern Boolean Back_End_Exceptions (void);
0ab0bf95 237
70482933
RK
238/* restrict: */
239
c7732bbe
EB
240#define Check_Elaboration_Code_Allowed \
241 restrict__check_elaboration_code_allowed
242#define Check_Implicit_Dynamic_Code_Allowed \
243 restrict__check_implicit_dynamic_code_allowed
244#define Check_No_Implicit_Heap_Alloc \
245 restrict__check_no_implicit_heap_alloc
246#define Check_No_Implicit_Protected_Alloc \
247 restrict__check_no_implicit_protected_alloc
248#define Check_No_Implicit_Task_Alloc \
249 restrict__check_no_implicit_task_alloc
250#define No_Exception_Handlers_Set \
251 restrict__no_exception_handlers_set
252
253extern void Check_Elaboration_Code_Allowed (Node_Id);
254extern void Check_Implicit_Dynamic_Code_Allowed (Node_Id);
255extern void Check_No_Implicit_Heap_Alloc (Node_Id);
256extern void Check_No_Implicit_Protected_Alloc (Node_Id);
257extern void Check_No_Implicit_Task_Alloc (Node_Id);
258extern Boolean No_Exception_Handlers_Set (void);
70482933 259
ac43e11e 260/* sem_aggr: */
8ab31c0c 261
27c3d986 262#define Is_Single_Aggregate sem_aggr__is_single_aggregate
ac43e11e 263
27c3d986 264extern Boolean Is_Single_Aggregate (Node_Id);
ac43e11e 265
a4100e55
RD
266/* sem_aux: */
267
c7732bbe
EB
268#define Ancestor_Subtype sem_aux__ancestor_subtype
269#define Constant_Value sem_aux__constant_value
270#define First_Discriminant sem_aux__first_discriminant
271#define First_Stored_Discriminant sem_aux__first_stored_discriminant
272#define First_Subtype sem_aux__first_subtype
273#define Is_By_Reference_Type sem_aux__is_by_reference_type
274#define Is_Derived_Type sem_aux__is_derived_type
275
276extern Entity_Id Ancestor_Subtype (Entity_Id);
277extern Node_Id Constant_Value (Entity_Id);
278extern Entity_Id First_Discriminant (Entity_Id);
279extern Entity_Id First_Stored_Discriminant (Entity_Id);
280extern Entity_Id First_Subtype (Entity_Id);
281extern Boolean Is_By_Reference_Type (Entity_Id);
282extern Boolean Is_Derived_Type (Entity_Id);
91b1417d 283
70482933
RK
284/* sem_eval: */
285
286#define Compile_Time_Known_Value sem_eval__compile_time_known_value
70482933 287
c7732bbe 288extern Boolean Compile_Time_Known_Value (Node_Id);
70482933
RK
289
290/* sem_util: */
291
292#define Defining_Entity sem_util__defining_entity
293#define First_Actual sem_util__first_actual
d58008d2 294#define Is_Variable_Size_Record sem_util__is_variable_size_record
c7732bbe 295#define Next_Actual sem_util__next_actual
70482933
RK
296#define Requires_Transient_Scope sem_util__requires_transient_scope
297
fbf5a39b
AC
298extern Entity_Id Defining_Entity (Node_Id);
299extern Node_Id First_Actual (Node_Id);
d58008d2 300extern Boolean Is_Variable_Size_Record (Entity_Id Id);
c7732bbe 301extern Node_Id Next_Actual (Node_Id);
d58008d2 302extern Boolean Requires_Transient_Scope (Entity_Id);
70482933 303
08b8b90c 304/* sinfo: */
fbf5a39b 305
76f9c7f4
BD
306#define End_Location sinfo__utils__end_location
307#define Set_Has_No_Elaboration_Code sinfo__nodes__set_has_no_elaboration_code
308#define Set_Present_Expr sinfo__nodes__set_present_expr
08b8b90c
EB
309
310extern Source_Ptr End_Location (Node_Id);
fbf5a39b 311extern void Set_Has_No_Elaboration_Code (Node_Id, Boolean);
08b8b90c 312extern void Set_Present_Expr (Node_Id, Uint);
70482933 313
c7732bbe
EB
314/* sinput: */
315
316#define Debug_Source_Name sinput__debug_source_name
317#define Get_Column_Number sinput__get_column_number
318#define Get_Logical_Line_Number sinput__get_logical_line_number
319#define Get_Source_File_Index sinput__get_source_file_index
320
321extern File_Name_Type Debug_Source_Name (Source_File_Index);
322extern Column_Number_Type Get_Column_Number (Source_Ptr);
323extern Line_Number_Type Get_Logical_Line_Number (Source_Ptr);
324extern Source_File_Index Get_Source_File_Index (Source_Ptr);
325
70482933
RK
326/* targparm: */
327
c7732bbe
EB
328#define Machine_Overflows_On_Target \
329 targparm__machine_overflows_on_target
330#define Signed_Zeros_On_Target \
331 targparm__signed_zeros_on_target
332#define Stack_Check_Limits_On_Target \
333 targparm__stack_check_limits_on_target
334#define Stack_Check_Probes_On_Target \
335 targparm__stack_check_probes_on_target
70482933 336
b546e2a7
AC
337extern Boolean Machine_Overflows_On_Target;
338extern Boolean Signed_Zeros_On_Target;
0312b364 339extern Boolean Stack_Check_Limits_On_Target;
c7732bbe 340extern Boolean Stack_Check_Probes_On_Target;
9e9bd455 341
8ab31c0c
AC
342/* warnsw: */
343
c7732bbe 344#define Warn_On_Questionable_Layout warnsw__warn_on_questionable_layout
8ab31c0c
AC
345
346extern Boolean Warn_On_Questionable_Layout;
347
76f9c7f4
BD
348// The following corresponds to Ada code in Einfo.Utils.
349
350typedef Boolean B;
351typedef Component_Alignment_Kind C;
352typedef Entity_Id E;
353typedef Mechanism_Type M;
354typedef Node_Id N;
355typedef Uint U;
356typedef Ureal R;
357typedef Elist_Id L;
358typedef List_Id S;
359
360#define Is_Access_Object_Type einfo__utils__is_access_object_type
361B Is_Access_Object_Type (E Id);
362
363#define Is_Named_Access_Type einfo__utils__is_named_access_type
364B Is_Named_Access_Type (E Id);
365
366#define Address_Clause einfo__utils__address_clause
367N Address_Clause (E Id);
368
369#define Aft_Value einfo__utils__aft_value
370U Aft_Value (E Id);
371
372#define Alignment_Clause einfo__utils__alignment_clause
373N Alignment_Clause (E Id);
374
375#define Base_Type einfo__utils__base_type
376E Base_Type (E Id);
377
378#define Declaration_Node einfo__utils__declaration_node
379N Declaration_Node (E Id);
380
381#define Designated_Type einfo__utils__designated_type
382E Designated_Type (E Id);
383
384#define First_Component einfo__utils__first_component
385E First_Component (E Id);
386
387#define First_Component_Or_Discriminant einfo__utils__first_component_or_discriminant
388E First_Component_Or_Discriminant (E Id);
389
390#define First_Formal einfo__utils__first_formal
391E First_Formal (E Id);
392
393#define First_Formal_With_Extras einfo__utils__first_formal_with_extras
394E First_Formal_With_Extras (E Id);
395
396#define Has_Attach_Handler einfo__utils__has_attach_handler
397B Has_Attach_Handler (E Id);
398
399#define Has_Entries einfo__utils__has_entries
400B Has_Entries (E Id);
401
402#define Has_Foreign_Convention einfo__utils__has_foreign_convention
403B Has_Foreign_Convention (E Id);
404
405#define Has_Interrupt_Handler einfo__utils__has_interrupt_handler
406B Has_Interrupt_Handler (E Id);
407
408#define Has_Non_Limited_View einfo__utils__has_non_limited_view
409B Has_Non_Limited_View (E Id);
410
411#define Has_Non_Null_Abstract_State einfo__utils__has_non_null_abstract_state
412B Has_Non_Null_Abstract_State (E Id);
413
414#define Has_Non_Null_Visible_Refinement einfo__utils__has_non_null_visible_refinement
415B Has_Non_Null_Visible_Refinement (E Id);
416
417#define Has_Null_Abstract_State einfo__utils__has_null_abstract_state
418B Has_Null_Abstract_State (E Id);
419
420#define Has_Null_Visible_Refinement einfo__utils__has_null_visible_refinement
421B Has_Null_Visible_Refinement (E Id);
422
423#define Implementation_Base_Type einfo__utils__implementation_base_type
424E Implementation_Base_Type (E Id);
425
426#define Is_Base_Type einfo__utils__is_base_type
427B Is_Base_Type (E Id);
428
429#define Is_Boolean_Type einfo__utils__is_boolean_type
430B Is_Boolean_Type (E Id);
431
432#define Is_Constant_Object einfo__utils__is_constant_object
433B Is_Constant_Object (E Id);
434
435#define Is_Controlled einfo__utils__is_controlled
436B Is_Controlled (E Id);
437
438#define Is_Discriminal einfo__utils__is_discriminal
439B Is_Discriminal (E Id);
440
441#define Is_Dynamic_Scope einfo__utils__is_dynamic_scope
442B Is_Dynamic_Scope (E Id);
443
444#define Is_Elaboration_Target einfo__utils__is_elaboration_target
445B Is_Elaboration_Target (E Id);
446
447#define Is_External_State einfo__utils__is_external_state
448B Is_External_State (E Id);
449
450#define Is_Finalizer einfo__utils__is_finalizer
451B Is_Finalizer (E Id);
452
453#define Is_Null_State einfo__utils__is_null_state
454B Is_Null_State (E Id);
455
456#define Is_Package_Or_Generic_Package einfo__utils__is_package_or_generic_package
457B Is_Package_Or_Generic_Package (E Id);
458
459#define Is_Packed_Array einfo__utils__is_packed_array
460B Is_Packed_Array (E Id);
461
462#define Is_Prival einfo__utils__is_prival
463B Is_Prival (E Id);
464
465#define Is_Protected_Component einfo__utils__is_protected_component
466B Is_Protected_Component (E Id);
467
468#define Is_Protected_Interface einfo__utils__is_protected_interface
469B Is_Protected_Interface (E Id);
470
471#define Is_Protected_Record_Type einfo__utils__is_protected_record_type
472B Is_Protected_Record_Type (E Id);
473
474#define Is_Relaxed_Initialization_State einfo__utils__is_relaxed_initialization_state
475B Is_Relaxed_Initialization_State (E Id);
476
477#define Is_Standard_Character_Type einfo__utils__is_standard_character_type
478B Is_Standard_Character_Type (E Id);
479
480#define Is_Standard_String_Type einfo__utils__is_standard_string_type
481B Is_Standard_String_Type (E Id);
482
483#define Is_String_Type einfo__utils__is_string_type
484B Is_String_Type (E Id);
485
486#define Is_Synchronized_Interface einfo__utils__is_synchronized_interface
487B Is_Synchronized_Interface (E Id);
488
489#define Is_Synchronized_State einfo__utils__is_synchronized_state
490B Is_Synchronized_State (E Id);
491
492#define Is_Task_Interface einfo__utils__is_task_interface
493B Is_Task_Interface (E Id);
494
495#define Is_Task_Record_Type einfo__utils__is_task_record_type
496B Is_Task_Record_Type (E Id);
497
498#define Is_Wrapper_Package einfo__utils__is_wrapper_package
499B Is_Wrapper_Package (E Id);
500
501#define Last_Formal einfo__utils__last_formal
502E Last_Formal (E Id);
503
504#define Machine_Emax_Value einfo__utils__machine_emax_value
505U Machine_Emax_Value (E Id);
506
507#define Machine_Emin_Value einfo__utils__machine_emin_value
508U Machine_Emin_Value (E Id);
509
510#define Machine_Mantissa_Value einfo__utils__machine_mantissa_value
511U Machine_Mantissa_Value (E Id);
512
513#define Machine_Radix_Value einfo__utils__machine_radix_value
514U Machine_Radix_Value (E Id);
515
516#define Model_Emin_Value einfo__utils__model_emin_value
517U Model_Emin_Value (E Id);
518
519#define Model_Epsilon_Value einfo__utils__model_epsilon_value
520R Model_Epsilon_Value (E Id);
521
522#define Model_Mantissa_Value einfo__utils__model_mantissa_value
523U Model_Mantissa_Value (E Id);
524
525#define Model_Small_Value einfo__utils__model_small_value
526R Model_Small_Value (E Id);
527
528#define Next_Component einfo__utils__next_component
529E Next_Component (E Id);
530
531#define Next_Component_Or_Discriminant einfo__utils__next_component_or_discriminant
532E Next_Component_Or_Discriminant (E Id);
533
534#define Next_Discriminant einfo__utils__next_discriminant
535E Next_Discriminant (E Id);
536
537#define Next_Formal einfo__utils__next_formal
538E Next_Formal (E Id);
539
540#define Next_Formal_With_Extras einfo__utils__next_formal_with_extras
541E Next_Formal_With_Extras (E Id);
542
543#define Number_Dimensions einfo__utils__number_dimensions
544Pos Number_Dimensions (E Id);
545
546#define Number_Entries einfo__utils__number_entries
547Nat Number_Entries (E Id);
548
549#define Number_Formals einfo__utils__number_formals
550Pos Number_Formals (E Id);
551
552#define Object_Size_Clause einfo__utils__object_size_clause
553N Object_Size_Clause (E Id);
554
555#define Partial_Refinement_Constituents einfo__utils__partial_refinement_constituents
556L Partial_Refinement_Constituents (E Id);
557
558#define Primitive_Operations einfo__utils__primitive_operations
559L Primitive_Operations (E Id);
560
561#define Root_Type einfo__utils__root_type
562E Root_Type (E Id);
563
564#define Safe_Emax_Value einfo__utils__safe_emax_value
565U Safe_Emax_Value (E Id);
566
567#define Safe_First_Value einfo__utils__safe_first_value
568R Safe_First_Value (E Id);
569
570#define Safe_Last_Value einfo__utils__safe_last_value
571R Safe_Last_Value (E Id);
572
573#define Scope_Depth einfo__utils__scope_depth
574U Scope_Depth (E Id);
575
576#define Scope_Depth_Set einfo__utils__scope_depth_set
577B Scope_Depth_Set (E Id);
578
579#define Size_Clause einfo__utils__size_clause
580N Size_Clause (E Id);
581
582#define Stream_Size_Clause einfo__utils__stream_size_clause
583N Stream_Size_Clause (E Id);
584
585#define Type_High_Bound einfo__utils__type_high_bound
586N Type_High_Bound (E Id);
587
588#define Type_Low_Bound einfo__utils__type_low_bound
589N Type_Low_Bound (E Id);
590
591#define Underlying_Type einfo__utils__underlying_type
592E Underlying_Type (E Id);
593
594#define Known_Alignment einfo__utils__known_alignment
595B Known_Alignment (Entity_Id E);
596
597#define Known_Component_Bit_Offset einfo__utils__known_component_bit_offset
598B Known_Component_Bit_Offset (Entity_Id E);
599
600#define Known_Component_Size einfo__utils__known_component_size
601B Known_Component_Size (Entity_Id E);
602
603#define Known_Esize einfo__utils__known_esize
604B Known_Esize (Entity_Id E);
605
606#define Known_Normalized_First_Bit einfo__utils__known_normalized_first_bit
607B Known_Normalized_First_Bit (Entity_Id E);
608
609#define Known_Normalized_Position einfo__utils__known_normalized_position
610B Known_Normalized_Position (Entity_Id E);
611
612#define Known_Normalized_Position_Max einfo__utils__known_normalized_position_max
613B Known_Normalized_Position_Max (Entity_Id E);
614
615#define Known_RM_Size einfo__utils__known_rm_size
616B Known_RM_Size (Entity_Id E);
617
618#define Known_Static_Component_Bit_Offset einfo__utils__known_static_component_bit_offset
619B Known_Static_Component_Bit_Offset (Entity_Id E);
620
621#define Known_Static_Component_Size einfo__utils__known_static_component_size
622B Known_Static_Component_Size (Entity_Id E);
623
624#define Known_Static_Esize einfo__utils__known_static_esize
625B Known_Static_Esize (Entity_Id E);
626
627#define Known_Static_Normalized_First_Bit einfo__utils__known_static_normalized_first_bit
628B Known_Static_Normalized_First_Bit (Entity_Id E);
629
630#define Known_Static_Normalized_Position einfo__utils__known_static_normalized_position
631B Known_Static_Normalized_Position (Entity_Id E);
632
633#define Known_Static_Normalized_Position_Max einfo__utils__known_static_normalized_position_max
634B Known_Static_Normalized_Position_Max (Entity_Id E);
635
636#define Known_Static_RM_Size einfo__utils__known_static_rm_size
637B Known_Static_RM_Size (Entity_Id E);
638
0c8ff35e
BD
639#define Copy_Alignment einfo__utils__copy_alignment
640B Copy_Alignment(Entity_Id To, Entity_Id From);
641
76f9c7f4
BD
642#define Is_Discrete_Or_Fixed_Point_Type einfo__utils__is_discrete_or_fixed_point_type
643B Is_Discrete_Or_Fixed_Point_Type (E Id);
644
645#define Is_Floating_Point_Type einfo__utils__is_floating_point_type
646B Is_Floating_Point_Type (E Id);
647
648#define Is_Record_Type einfo__utils__is_record_type
649B Is_Record_Type (E Id);
650
651#define Has_DIC einfo__utils__has_dic
652B Has_DIC (E Id);
653
654#define Has_Invariants einfo__utils__has_invariants
655B Has_Invariants (E Id);
656
657#define Is_Full_Access einfo__utils__is_full_access
658B Is_Full_Access (E Id);
659
660#define Next_Index einfo__utils__next_index
661Node_Id Next_Index (Node_Id Id);
662
663#define Next_Literal einfo__utils__next_literal
664E Next_Literal (E Id);
665
666#define Next_Stored_Discriminant einfo__utils__next_stored_discriminant
667E Next_Stored_Discriminant (E Id);
668
669#define Parameter_Mode einfo__utils__parameter_mode
670// Parameter_Mode really returns Formal_Kind, but that is not visible, because
671// fe.h is included before einfo.h.
672Entity_Kind Parameter_Mode (E Id);
673
674#define Is_List_Member einfo__utils__is_list_member
675B Is_List_Member (N Node);
676
677#define List_Containing einfo__utils__list_containing
678S List_Containing (N Node);
679
680// The following is needed because Convention in Sem_Util is a renaming
681// of Basic_Convention.
682
683#define Convention einfo__entities__basic_convention
684Convention_Id Convention (N Node);
685
686// See comments regarding Entity_Or_Associated_Node in Sinfo.Utils.
687
688#define Entity sinfo__nodes__entity_or_associated_node
689Entity_Id Entity (N Node);
690
691// See comments regarding Renamed_Or_Alias in Einfo.Utils
692
693#define Alias einfo__entities__renamed_or_alias
694
695#define Renamed_Entity einfo__entities__renamed_or_alias
696Node_Id Renamed_Entity (N Node);
697
698#define Renamed_Object einfo__entities__renamed_or_alias
699Node_Id Renamed_Object (N Node);
700
9e9bd455
LG
701#ifdef __cplusplus
702}
703#endif