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