Commit 6e443c90 by Robert Dewar Committed by Arnaud Charlet

einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all entities.

2006-10-31  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Bob Duff  <duff@adacore.com>

	* einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
	entities. Move other fields around to make this possible
	(Is_Derived_Type): Add missing call to Is_Type.
	(Extra_Formals): New function for subprograms, entries, subprogram
	types.
	(Set_Extra_Formals): New procedure for subprograms, entries, subp types.
	(First_Formal_With_Extras): New function for subprogs, entries, subp
	types.
	(Write_Field28_Name): New procedure for node display of "Extra_Formals".
	Add node information for E_Return_Statement.
	(Elaborate_Body_Desirable): New flag
	(Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
	to be Is_Inherently_Limited_Type, because return-by-reference has
	no meaning in Ada 2005.
	(E_Return_Statement): New entity kind.
	(Return_Applies_To): Field of E_Return_Statement.
	(Is_Return_Object): New flag in object entities.
	(Is_Dynamic_Scope): Make it True for E_Return_Statement.
	(Must_Have_Preelab_Init): New flag
	(Known_To_Have_Preelab_Init): New flag
	(Is_Formal_Object): Move from Sem_Ch8 body to Einfo
	(Is_Visible_Formal): New flag on entities in formal packages.
	(Low_Bound_Known): New flag
	(Non_Limited_View, Set_Non_Limited_View): Add membership test agains
	Incomplete_Kind.
	(Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
	output when Id is an incomplete subtype.

From-SVN: r118250
parent cce68562
...@@ -71,8 +71,9 @@ package body Einfo is ...@@ -71,8 +71,9 @@ package body Einfo is
-- Homonym Node4 -- Homonym Node4
-- First_Rep_Item Node6 -- First_Rep_Item Node6
-- Freeze_Node Node7 -- Freeze_Node Node7
-- Obsolescent_Warning Node24
-- The usage of each field (and the entity kinds to which it applies) -- The usage of other fields (and the entity kinds to which it applies)
-- depends on the particular field (see Einfo spec for details). -- depends on the particular field (see Einfo spec for details).
-- Associated_Node_For_Itype Node8 -- Associated_Node_For_Itype Node8
...@@ -80,6 +81,7 @@ package body Einfo is ...@@ -80,6 +81,7 @@ package body Einfo is
-- Hiding_Loop_Variable Node8 -- Hiding_Loop_Variable Node8
-- Mechanism Uint8 (but returns Mechanism_Type) -- Mechanism Uint8 (but returns Mechanism_Type)
-- Normalized_First_Bit Uint8 -- Normalized_First_Bit Uint8
-- Return_Applies_To Node8
-- Class_Wide_Type Node9 -- Class_Wide_Type Node9
-- Current_Value Node9 -- Current_Value Node9
...@@ -174,6 +176,7 @@ package body Einfo is ...@@ -174,6 +176,7 @@ package body Einfo is
-- Directly_Designated_Type Node20 -- Directly_Designated_Type Node20
-- Discriminant_Checking_Func Node20 -- Discriminant_Checking_Func Node20
-- Discriminant_Default_Value Node20 -- Discriminant_Default_Value Node20
-- Last_Assignment Node20
-- Last_Entity Node20 -- Last_Entity Node20
-- Register_Exception_Call Node20 -- Register_Exception_Call Node20
-- Scalar_Range Node20 -- Scalar_Range Node20
...@@ -209,19 +212,19 @@ package body Einfo is ...@@ -209,19 +212,19 @@ package body Einfo is
-- Privals_Chain Elist23 -- Privals_Chain Elist23
-- Protected_Operation Node23 -- Protected_Operation Node23
-- DT_Offset_To_Top_Func Node24
-- Obsolescent_Warning Node24
-- Task_Body_Procedure Node24
-- Abstract_Interfaces Elist24
-- Abstract_Interface_Alias Node25 -- Abstract_Interface_Alias Node25
-- Abstract_Interfaces Elist25
-- Current_Use_Clause Node25 -- Current_Use_Clause Node25
-- DT_Offset_To_Top_Func Node25
-- Task_Body_Procedure Node25
-- Overridden_Operation Node26 -- Overridden_Operation Node26
-- Package_Instantiation Node26 -- Package_Instantiation Node26
-- Wrapped_Entity Node27 -- Wrapped_Entity Node27
-- Extra_Formals Node28
--------------------------------------------- ---------------------------------------------
-- Usage of Flags in Defining Entity Nodes -- -- Usage of Flags in Defining Entity Nodes --
--------------------------------------------- ---------------------------------------------
...@@ -434,7 +437,7 @@ package body Einfo is ...@@ -434,7 +437,7 @@ package body Einfo is
-- Has_Xref_Entry Flag182 -- Has_Xref_Entry Flag182
-- Must_Be_On_Byte_Boundary Flag183 -- Must_Be_On_Byte_Boundary Flag183
-- Has_Stream_Size_Clause Flag184 -- Has_Stream_Size_Clause Flag184
-- Is_Ada_2005 Flag185 -- Is_Ada_2005_Only Flag185
-- Is_Interface Flag186 -- Is_Interface Flag186
-- Has_Constrained_Partial_View Flag187 -- Has_Constrained_Partial_View Flag187
-- Has_Persistent_BSS Flag188 -- Has_Persistent_BSS Flag188
...@@ -456,14 +459,15 @@ package body Einfo is ...@@ -456,14 +459,15 @@ package body Einfo is
-- Itype_Printed Flag202 -- Itype_Printed Flag202
-- Has_Pragma_Pure Flag203 -- Has_Pragma_Pure Flag203
-- Is_Known_Null Flag204 -- Is_Known_Null Flag204
-- Low_Bound_Known Flag205
-- Is_Visible_Formal Flag206
-- Known_To_Have_Preelab_Init Flag207
-- Must_Have_Preelab_Init Flag208
-- Is_Return_Object Flag209
-- Elaborate_Body_Desirable Flag210
-- Has_Static_Discriminants Flag211
-- (unused) Flag205
-- (unused) Flag206
-- (unused) Flag207
-- (unused) Flag208
-- (unused) Flag209
-- (unused) Flag210
-- (unused) Flag211
-- (unused) Flag212 -- (unused) Flag212
-- (unused) Flag213 -- (unused) Flag213
-- (unused) Flag214 -- (unused) Flag214
...@@ -511,7 +515,7 @@ package body Einfo is ...@@ -511,7 +515,7 @@ package body Einfo is
or else Ekind (Id) = E_Record_Type_With_Private or else Ekind (Id) = E_Record_Type_With_Private
or else Ekind (Id) = E_Record_Subtype_With_Private or else Ekind (Id) = E_Record_Subtype_With_Private
or else Ekind (Id) = E_Class_Wide_Type); or else Ekind (Id) = E_Class_Wide_Type);
return Elist24 (Id); return Elist25 (Id);
end Abstract_Interfaces; end Abstract_Interfaces;
function Abstract_Interface_Alias (Id : E) return E is function Abstract_Interface_Alias (Id : E) return E is
...@@ -836,7 +840,7 @@ package body Einfo is ...@@ -836,7 +840,7 @@ package body Einfo is
function DT_Offset_To_Top_Func (Id : E) return E is function DT_Offset_To_Top_Func (Id : E) return E is
begin begin
pragma Assert (Ekind (Id) = E_Component and then Is_Tag (Id)); pragma Assert (Ekind (Id) = E_Component and then Is_Tag (Id));
return Node24 (Id); return Node25 (Id);
end DT_Offset_To_Top_Func; end DT_Offset_To_Top_Func;
function DT_Position (Id : E) return U is function DT_Position (Id : E) return U is
...@@ -855,6 +859,12 @@ package body Einfo is ...@@ -855,6 +859,12 @@ package body Einfo is
return Node16 (Id); return Node16 (Id);
end DTC_Entity; end DTC_Entity;
function Elaborate_Body_Desirable (Id : E) return B is
begin
pragma Assert (Ekind (Id) = E_Package);
return Flag210 (Id);
end Elaborate_Body_Desirable;
function Elaboration_Entity (Id : E) return E is function Elaboration_Entity (Id : E) return E is
begin begin
pragma Assert pragma Assert
...@@ -981,6 +991,16 @@ package body Einfo is ...@@ -981,6 +991,16 @@ package body Einfo is
return Node15 (Id); return Node15 (Id);
end Extra_Formal; end Extra_Formal;
function Extra_Formals (Id : E) return E is
begin
pragma Assert
(Is_Overloadable (Id)
or else Ekind (Id) = E_Entry_Family
or else Ekind (Id) = E_Subprogram_Body
or else Ekind (Id) = E_Subprogram_Type);
return Node28 (Id);
end Extra_Formals;
function Finalization_Chain_Entity (Id : E) return E is function Finalization_Chain_Entity (Id : E) return E is
begin begin
return Node19 (Id); return Node19 (Id);
...@@ -1018,10 +1038,7 @@ package body Einfo is ...@@ -1018,10 +1038,7 @@ package body Einfo is
begin begin
pragma Assert (Ekind (Id) = E_Package pragma Assert (Ekind (Id) = E_Package
or else Ekind (Id) = E_Generic_Package or else Ekind (Id) = E_Generic_Package
or else Ekind (Id) = E_Protected_Type or else Ekind (Id) in Concurrent_Kind);
or else Ekind (Id) = E_Protected_Subtype
or else Ekind (Id) = E_Task_Type
or else Ekind (Id) = E_Task_Subtype);
return Node16 (Id); return Node16 (Id);
end First_Private_Entity; end First_Private_Entity;
...@@ -1346,6 +1363,12 @@ package body Einfo is ...@@ -1346,6 +1363,12 @@ package body Einfo is
return Flag193 (Id); return Flag193 (Id);
end Has_Specified_Stream_Write; end Has_Specified_Stream_Write;
function Has_Static_Discriminants (Id : E) return B is
begin
pragma Assert (Is_Type (Id));
return Flag211 (Id);
end Has_Static_Discriminants;
function Has_Storage_Size_Clause (Id : E) return B is function Has_Storage_Size_Clause (Id : E) return B is
begin begin
pragma Assert (Is_Access_Type (Id) or else Is_Task_Type (Id)); pragma Assert (Is_Access_Type (Id) or else Is_Task_Type (Id));
...@@ -1443,10 +1466,10 @@ package body Einfo is ...@@ -1443,10 +1466,10 @@ package body Einfo is
return Flag69 (Id); return Flag69 (Id);
end Is_Access_Constant; end Is_Access_Constant;
function Is_Ada_2005 (Id : E) return B is function Is_Ada_2005_Only (Id : E) return B is
begin begin
return Flag185 (Id); return Flag185 (Id);
end Is_Ada_2005; end Is_Ada_2005_Only;
function Is_Aliased (Id : E) return B is function Is_Aliased (Id : E) return B is
begin begin
...@@ -1819,6 +1842,11 @@ package body Einfo is ...@@ -1819,6 +1842,11 @@ package body Einfo is
return Flag112 (Id); return Flag112 (Id);
end Is_Renaming_Of_Object; end Is_Renaming_Of_Object;
function Is_Return_Object (Id : E) return B is
begin
return Flag209 (Id);
end Is_Return_Object;
function Is_Shared_Passive (Id : E) return B is function Is_Shared_Passive (Id : E) return B is
begin begin
return Flag60 (Id); return Flag60 (Id);
...@@ -1885,6 +1913,11 @@ package body Einfo is ...@@ -1885,6 +1913,11 @@ package body Einfo is
return Flag116 (Id); return Flag116 (Id);
end Is_Visible_Child_Unit; end Is_Visible_Child_Unit;
function Is_Visible_Formal (Id : E) return B is
begin
return Flag206 (Id);
end Is_Visible_Formal;
function Is_VMS_Exception (Id : E) return B is function Is_VMS_Exception (Id : E) return B is
begin begin
return Flag133 (Id); return Flag133 (Id);
...@@ -1922,6 +1955,18 @@ package body Einfo is ...@@ -1922,6 +1955,18 @@ package body Einfo is
return Flag34 (Id); return Flag34 (Id);
end Kill_Tag_Checks; end Kill_Tag_Checks;
function Known_To_Have_Preelab_Init (Id : E) return B is
begin
pragma Assert (Is_Type (Id));
return Flag207 (Id);
end Known_To_Have_Preelab_Init;
function Last_Assignment (Id : E) return N is
begin
pragma Assert (Ekind (Id) = E_Variable);
return Node20 (Id);
end Last_Assignment;
function Last_Entity (Id : E) return E is function Last_Entity (Id : E) return E is
begin begin
return Node20 (Id); return Node20 (Id);
...@@ -1945,6 +1990,11 @@ package body Einfo is ...@@ -1945,6 +1990,11 @@ package body Einfo is
return Node16 (Id); return Node16 (Id);
end Lit_Strings; end Lit_Strings;
function Low_Bound_Known (Id : E) return B is
begin
return Flag205 (Id);
end Low_Bound_Known;
function Machine_Radix_10 (Id : E) return B is function Machine_Radix_10 (Id : E) return B is
begin begin
pragma Assert (Is_Decimal_Fixed_Point_Type (Id)); pragma Assert (Is_Decimal_Fixed_Point_Type (Id));
...@@ -1979,6 +2029,12 @@ package body Einfo is ...@@ -1979,6 +2029,12 @@ package body Einfo is
return Flag183 (Id); return Flag183 (Id);
end Must_Be_On_Byte_Boundary; end Must_Be_On_Byte_Boundary;
function Must_Have_Preelab_Init (Id : E) return B is
begin
pragma Assert (Is_Type (Id));
return Flag208 (Id);
end Must_Have_Preelab_Init;
function Needs_Debug_Info (Id : E) return B is function Needs_Debug_Info (Id : E) return B is
begin begin
return Flag147 (Id); return Flag147 (Id);
...@@ -2029,7 +2085,7 @@ package body Einfo is ...@@ -2029,7 +2085,7 @@ package body Einfo is
function Non_Limited_View (Id : E) return E is function Non_Limited_View (Id : E) return E is
begin begin
pragma Assert (False pragma Assert (False
or else Ekind (Id) = E_Incomplete_Type); or else Ekind (Id) in Incomplete_Kind);
return Node17 (Id); return Node17 (Id);
end Non_Limited_View; end Non_Limited_View;
...@@ -2068,8 +2124,6 @@ package body Einfo is ...@@ -2068,8 +2124,6 @@ package body Einfo is
function Obsolescent_Warning (Id : E) return N is function Obsolescent_Warning (Id : E) return N is
begin begin
pragma Assert
(Is_Subprogram (Id) or else Is_Package_Or_Generic_Package (Id));
return Node24 (Id); return Node24 (Id);
end Obsolescent_Warning; end Obsolescent_Warning;
...@@ -2231,6 +2285,11 @@ package body Einfo is ...@@ -2231,6 +2285,11 @@ package body Einfo is
return Flag54 (Id); return Flag54 (Id);
end Return_Present; end Return_Present;
function Return_Applies_To (Id : E) return N is
begin
return Node8 (Id);
end Return_Applies_To;
function Returns_By_Ref (Id : E) return B is function Returns_By_Ref (Id : E) return B is
begin begin
return Flag90 (Id); return Flag90 (Id);
...@@ -2361,9 +2420,8 @@ package body Einfo is ...@@ -2361,9 +2420,8 @@ package body Einfo is
function Task_Body_Procedure (Id : E) return N is function Task_Body_Procedure (Id : E) return N is
begin begin
pragma Assert (Ekind (Id) = E_Task_Type pragma Assert (Ekind (Id) in Task_Kind);
or else Ekind (Id) = E_Task_Subtype); return Node25 (Id);
return Node24 (Id);
end Task_Body_Procedure; end Task_Body_Procedure;
function Treat_As_Volatile (Id : E) return B is function Treat_As_Volatile (Id : E) return B is
...@@ -2502,6 +2560,11 @@ package body Einfo is ...@@ -2502,6 +2560,11 @@ package body Einfo is
return Ekind (Id) in Formal_Kind; return Ekind (Id) in Formal_Kind;
end Is_Formal; end Is_Formal;
function Is_Formal_Object (Id : E) return B is
begin
return Ekind (Id) in Formal_Object_Kind;
end Is_Formal_Object;
function Is_Generic_Subprogram (Id : E) return B is function Is_Generic_Subprogram (Id : E) return B is
begin begin
return Ekind (Id) in Generic_Subprogram_Kind; return Ekind (Id) in Generic_Subprogram_Kind;
...@@ -2518,6 +2581,12 @@ package body Einfo is ...@@ -2518,6 +2581,12 @@ package body Einfo is
Incomplete_Or_Private_Kind; Incomplete_Or_Private_Kind;
end Is_Incomplete_Or_Private_Type; end Is_Incomplete_Or_Private_Type;
function Is_Incomplete_Type (Id : E) return B is
begin
return Ekind (Id) in
Incomplete_Kind;
end Is_Incomplete_Type;
function Is_Integer_Type (Id : E) return B is function Is_Integer_Type (Id : E) return B is
begin begin
return Ekind (Id) in Integer_Kind; return Ekind (Id) in Integer_Kind;
...@@ -2613,13 +2682,15 @@ package body Einfo is ...@@ -2613,13 +2682,15 @@ package body Einfo is
or else Ekind (Id) = E_Record_Type_With_Private or else Ekind (Id) = E_Record_Type_With_Private
or else Ekind (Id) = E_Record_Subtype_With_Private or else Ekind (Id) = E_Record_Subtype_With_Private
or else Ekind (Id) = E_Class_Wide_Type); or else Ekind (Id) = E_Class_Wide_Type);
Set_Elist24 (Id, V); Set_Elist25 (Id, V);
end Set_Abstract_Interfaces; end Set_Abstract_Interfaces;
procedure Set_Abstract_Interface_Alias (Id : E; V : E) is procedure Set_Abstract_Interface_Alias (Id : E; V : E) is
begin begin
pragma Assert pragma Assert
(Ekind (Id) = E_Procedure or Ekind (Id) = E_Function); (Is_Hidden (Id)
and then
(Ekind (Id) = E_Procedure or else Ekind (Id) = E_Function));
Set_Node25 (Id, V); Set_Node25 (Id, V);
end Set_Abstract_Interface_Alias; end Set_Abstract_Interface_Alias;
...@@ -2946,7 +3017,7 @@ package body Einfo is ...@@ -2946,7 +3017,7 @@ package body Einfo is
procedure Set_DT_Offset_To_Top_Func (Id : E; V : E) is procedure Set_DT_Offset_To_Top_Func (Id : E; V : E) is
begin begin
pragma Assert (Ekind (Id) = E_Component and then Is_Tag (Id)); pragma Assert (Ekind (Id) = E_Component and then Is_Tag (Id));
Set_Node24 (Id, V); Set_Node25 (Id, V);
end Set_DT_Offset_To_Top_Func; end Set_DT_Offset_To_Top_Func;
procedure Set_DT_Position (Id : E; V : U) is procedure Set_DT_Position (Id : E; V : U) is
...@@ -2962,6 +3033,12 @@ package body Einfo is ...@@ -2962,6 +3033,12 @@ package body Einfo is
Set_Node16 (Id, V); Set_Node16 (Id, V);
end Set_DTC_Entity; end Set_DTC_Entity;
procedure Set_Elaborate_Body_Desirable (Id : E; V : B := True) is
begin
pragma Assert (Ekind (Id) = E_Package);
Set_Flag210 (Id, V);
end Set_Elaborate_Body_Desirable;
procedure Set_Elaboration_Entity (Id : E; V : E) is procedure Set_Elaboration_Entity (Id : E; V : E) is
begin begin
pragma Assert pragma Assert
...@@ -3089,6 +3166,16 @@ package body Einfo is ...@@ -3089,6 +3166,16 @@ package body Einfo is
Set_Node15 (Id, V); Set_Node15 (Id, V);
end Set_Extra_Formal; end Set_Extra_Formal;
procedure Set_Extra_Formals (Id : E; V : E) is
begin
pragma Assert
(Is_Overloadable (Id)
or else Ekind (Id) = E_Entry_Family
or else Ekind (Id) = E_Subprogram_Body
or else Ekind (Id) = E_Subprogram_Type);
Set_Node28 (Id, V);
end Set_Extra_Formals;
procedure Set_Finalization_Chain_Entity (Id : E; V : E) is procedure Set_Finalization_Chain_Entity (Id : E; V : E) is
begin begin
Set_Node19 (Id, V); Set_Node19 (Id, V);
...@@ -3126,10 +3213,7 @@ package body Einfo is ...@@ -3126,10 +3213,7 @@ package body Einfo is
begin begin
pragma Assert (Ekind (Id) = E_Package pragma Assert (Ekind (Id) = E_Package
or else Ekind (Id) = E_Generic_Package or else Ekind (Id) = E_Generic_Package
or else Ekind (Id) = E_Protected_Type or else Ekind (Id) in Concurrent_Kind);
or else Ekind (Id) = E_Protected_Subtype
or else Ekind (Id) = E_Task_Type
or else Ekind (Id) = E_Task_Subtype);
Set_Node16 (Id, V); Set_Node16 (Id, V);
end Set_First_Private_Entity; end Set_First_Private_Entity;
...@@ -3220,7 +3304,7 @@ package body Einfo is ...@@ -3220,7 +3304,7 @@ package body Einfo is
procedure Set_Has_Completion_In_Body (Id : E; V : B := True) is procedure Set_Has_Completion_In_Body (Id : E; V : B := True) is
begin begin
pragma Assert (Ekind (Id) = E_Incomplete_Type); pragma Assert (Is_Type (Id));
Set_Flag71 (Id, V); Set_Flag71 (Id, V);
end Set_Has_Completion_In_Body; end Set_Has_Completion_In_Body;
...@@ -3463,6 +3547,11 @@ package body Einfo is ...@@ -3463,6 +3547,11 @@ package body Einfo is
Set_Flag193 (Id, V); Set_Flag193 (Id, V);
end Set_Has_Specified_Stream_Write; end Set_Has_Specified_Stream_Write;
procedure Set_Has_Static_Discriminants (Id : E; V : B := True) is
begin
Set_Flag211 (Id, V);
end Set_Has_Static_Discriminants;
procedure Set_Has_Storage_Size_Clause (Id : E; V : B := True) is procedure Set_Has_Storage_Size_Clause (Id : E; V : B := True) is
begin begin
pragma Assert (Is_Access_Type (Id) or else Is_Task_Type (Id)); pragma Assert (Is_Access_Type (Id) or else Is_Task_Type (Id));
...@@ -3565,10 +3654,10 @@ package body Einfo is ...@@ -3565,10 +3654,10 @@ package body Einfo is
Set_Flag69 (Id, V); Set_Flag69 (Id, V);
end Set_Is_Access_Constant; end Set_Is_Access_Constant;
procedure Set_Is_Ada_2005 (Id : E; V : B := True) is procedure Set_Is_Ada_2005_Only (Id : E; V : B := True) is
begin begin
Set_Flag185 (Id, V); Set_Flag185 (Id, V);
end Set_Is_Ada_2005; end Set_Is_Ada_2005_Only;
procedure Set_Is_Aliased (Id : E; V : B := True) is procedure Set_Is_Aliased (Id : E; V : B := True) is
begin begin
...@@ -3965,6 +4054,11 @@ package body Einfo is ...@@ -3965,6 +4054,11 @@ package body Einfo is
Set_Flag112 (Id, V); Set_Flag112 (Id, V);
end Set_Is_Renaming_Of_Object; end Set_Is_Renaming_Of_Object;
procedure Set_Is_Return_Object (Id : E; V : B := True) is
begin
Set_Flag209 (Id, V);
end Set_Is_Return_Object;
procedure Set_Is_Shared_Passive (Id : E; V : B := True) is procedure Set_Is_Shared_Passive (Id : E; V : B := True) is
begin begin
Set_Flag60 (Id, V); Set_Flag60 (Id, V);
...@@ -4038,6 +4132,11 @@ package body Einfo is ...@@ -4038,6 +4132,11 @@ package body Einfo is
Set_Flag116 (Id, V); Set_Flag116 (Id, V);
end Set_Is_Visible_Child_Unit; end Set_Is_Visible_Child_Unit;
procedure Set_Is_Visible_Formal (Id : E; V : B := True) is
begin
Set_Flag206 (Id, V);
end Set_Is_Visible_Formal;
procedure Set_Is_VMS_Exception (Id : E; V : B := True) is procedure Set_Is_VMS_Exception (Id : E; V : B := True) is
begin begin
pragma Assert (Ekind (Id) = E_Exception); pragma Assert (Ekind (Id) = E_Exception);
...@@ -4071,6 +4170,18 @@ package body Einfo is ...@@ -4071,6 +4170,18 @@ package body Einfo is
Set_Flag34 (Id, V); Set_Flag34 (Id, V);
end Set_Kill_Tag_Checks; end Set_Kill_Tag_Checks;
procedure Set_Known_To_Have_Preelab_Init (Id : E; V : B := True) is
begin
pragma Assert (Is_Type (Id));
Set_Flag207 (Id, V);
end Set_Known_To_Have_Preelab_Init;
procedure Set_Last_Assignment (Id : E; V : N) is
begin
pragma Assert (Ekind (Id) = E_Variable);
Set_Node20 (Id, V);
end Set_Last_Assignment;
procedure Set_Last_Entity (Id : E; V : E) is procedure Set_Last_Entity (Id : E; V : E) is
begin begin
Set_Node20 (Id, V); Set_Node20 (Id, V);
...@@ -4094,6 +4205,12 @@ package body Einfo is ...@@ -4094,6 +4205,12 @@ package body Einfo is
Set_Node16 (Id, V); Set_Node16 (Id, V);
end Set_Lit_Strings; end Set_Lit_Strings;
procedure Set_Low_Bound_Known (Id : E; V : B := True) is
begin
pragma Assert (Is_Formal (Id));
Set_Flag205 (Id, V);
end Set_Low_Bound_Known;
procedure Set_Machine_Radix_10 (Id : E; V : B := True) is procedure Set_Machine_Radix_10 (Id : E; V : B := True) is
begin begin
pragma Assert (Is_Decimal_Fixed_Point_Type (Id)); pragma Assert (Is_Decimal_Fixed_Point_Type (Id));
...@@ -4128,6 +4245,12 @@ package body Einfo is ...@@ -4128,6 +4245,12 @@ package body Einfo is
Set_Flag183 (Id, V); Set_Flag183 (Id, V);
end Set_Must_Be_On_Byte_Boundary; end Set_Must_Be_On_Byte_Boundary;
procedure Set_Must_Have_Preelab_Init (Id : E; V : B := True) is
begin
pragma Assert (Is_Type (Id));
Set_Flag208 (Id, V);
end Set_Must_Have_Preelab_Init;
procedure Set_Needs_Debug_Info (Id : E; V : B := True) is procedure Set_Needs_Debug_Info (Id : E; V : B := True) is
begin begin
Set_Flag147 (Id, V); Set_Flag147 (Id, V);
...@@ -4180,9 +4303,9 @@ package body Einfo is ...@@ -4180,9 +4303,9 @@ package body Einfo is
end Set_Non_Binary_Modulus; end Set_Non_Binary_Modulus;
procedure Set_Non_Limited_View (Id : E; V : E) is procedure Set_Non_Limited_View (Id : E; V : E) is
pragma Assert (False
or else Ekind (Id) = E_Incomplete_Type);
begin begin
pragma Assert (False
or else Ekind (Id) in Incomplete_Kind);
Set_Node17 (Id, V); Set_Node17 (Id, V);
end Set_Non_Limited_View; end Set_Non_Limited_View;
...@@ -4223,8 +4346,6 @@ package body Einfo is ...@@ -4223,8 +4346,6 @@ package body Einfo is
procedure Set_Obsolescent_Warning (Id : E; V : N) is procedure Set_Obsolescent_Warning (Id : E; V : N) is
begin begin
pragma Assert
(Is_Subprogram (Id) or else Is_Package_Or_Generic_Package (Id));
Set_Node24 (Id, V); Set_Node24 (Id, V);
end Set_Obsolescent_Warning; end Set_Obsolescent_Warning;
...@@ -4386,6 +4507,11 @@ package body Einfo is ...@@ -4386,6 +4507,11 @@ package body Einfo is
Set_Flag54 (Id, V); Set_Flag54 (Id, V);
end Set_Return_Present; end Set_Return_Present;
procedure Set_Return_Applies_To (Id : E; V : N) is
begin
Set_Node8 (Id, V);
end Set_Return_Applies_To;
procedure Set_Returns_By_Ref (Id : E; V : B := True) is procedure Set_Returns_By_Ref (Id : E; V : B := True) is
begin begin
Set_Flag90 (Id, V); Set_Flag90 (Id, V);
...@@ -4521,9 +4647,8 @@ package body Einfo is ...@@ -4521,9 +4647,8 @@ package body Einfo is
procedure Set_Task_Body_Procedure (Id : E; V : N) is procedure Set_Task_Body_Procedure (Id : E; V : N) is
begin begin
pragma Assert (Ekind (Id) = E_Task_Type pragma Assert (Ekind (Id) in Task_Kind);
or else Ekind (Id) = E_Task_Subtype); Set_Node25 (Id, V);
Set_Node24 (Id, V);
end Set_Task_Body_Procedure; end Set_Task_Body_Procedure;
procedure Set_Treat_As_Volatile (Id : E; V : B := True) is procedure Set_Treat_As_Volatile (Id : E; V : B := True) is
...@@ -5214,6 +5339,34 @@ package body Einfo is ...@@ -5214,6 +5339,34 @@ package body Einfo is
end if; end if;
end First_Formal; end First_Formal;
------------------------------
-- First_Formal_With_Extras --
------------------------------
function First_Formal_With_Extras (Id : E) return E is
Formal : E;
begin
pragma Assert
(Is_Overloadable (Id)
or else Ekind (Id) = E_Entry_Family
or else Ekind (Id) = E_Subprogram_Body
or else Ekind (Id) = E_Subprogram_Type);
if Ekind (Id) = E_Enumeration_Literal then
return Empty;
else
Formal := First_Entity (Id);
if Present (Formal) and then Is_Formal (Formal) then
return Formal;
else
return Extra_Formals (Id); -- Empty if no extra formals
end if;
end if;
end First_Formal_With_Extras;
------------------------------- -------------------------------
-- First_Stored_Discriminant -- -- First_Stored_Discriminant --
------------------------------- -------------------------------
...@@ -5661,7 +5814,8 @@ package body Einfo is ...@@ -5661,7 +5814,8 @@ package body Einfo is
Par : Node_Id; Par : Node_Id;
begin begin
if Base_Type (Id) /= Root_Type (Id) if Is_Type (Id)
and then Base_Type (Id) /= Root_Type (Id)
and then not Is_Generic_Type (Id) and then not Is_Generic_Type (Id)
and then not Is_Class_Wide_Type (Id) and then not Is_Class_Wide_Type (Id)
then then
...@@ -5701,7 +5855,9 @@ package body Einfo is ...@@ -5701,7 +5855,9 @@ package body Einfo is
or else or else
Ekind (Id) = E_Entry Ekind (Id) = E_Entry
or else or else
Ekind (Id) = E_Entry_Family; Ekind (Id) = E_Entry_Family
or else
Ekind (Id) = E_Return_Statement;
end Is_Dynamic_Scope; end Is_Dynamic_Scope;
-------------------- --------------------
...@@ -5868,13 +6024,11 @@ package body Einfo is ...@@ -5868,13 +6024,11 @@ package body Einfo is
and then Is_Protected_Type (Corresponding_Concurrent_Type (Id)); and then Is_Protected_Type (Corresponding_Concurrent_Type (Id));
end Is_Protected_Record_Type; end Is_Protected_Record_Type;
--------------------------------- --------------------------------
-- Is_Return_By_Reference_Type -- -- Is_Inherently_Limited_Type --
--------------------------------- --------------------------------
-- Note: this predicate has disappeared from Ada 2005: see AI-318-2
function Is_Return_By_Reference_Type (Id : E) return B is function Is_Inherently_Limited_Type (Id : E) return B is
Btype : constant Entity_Id := Base_Type (Id); Btype : constant Entity_Id := Base_Type (Id);
begin begin
...@@ -5885,7 +6039,7 @@ package body Einfo is ...@@ -5885,7 +6039,7 @@ package body Einfo is
if No (Utyp) then if No (Utyp) then
return False; return False;
else else
return Is_Return_By_Reference_Type (Utyp); return Is_Inherently_Limited_Type (Utyp);
end if; end if;
end; end;
...@@ -5900,7 +6054,7 @@ package body Einfo is ...@@ -5900,7 +6054,7 @@ package body Einfo is
or else Is_Task_Interface (Btype); or else Is_Task_Interface (Btype);
elsif Is_Class_Wide_Type (Btype) then elsif Is_Class_Wide_Type (Btype) then
return Is_Return_By_Reference_Type (Root_Type (Btype)); return Is_Inherently_Limited_Type (Root_Type (Btype));
else else
declare declare
...@@ -5909,7 +6063,7 @@ package body Einfo is ...@@ -5909,7 +6063,7 @@ package body Einfo is
begin begin
C := First_Component (Btype); C := First_Component (Btype);
while Present (C) loop while Present (C) loop
if Is_Return_By_Reference_Type (Etype (C)) then if Is_Inherently_Limited_Type (Etype (C)) then
return True; return True;
end if; end if;
...@@ -5921,12 +6075,12 @@ package body Einfo is ...@@ -5921,12 +6075,12 @@ package body Einfo is
end if; end if;
elsif Is_Array_Type (Btype) then elsif Is_Array_Type (Btype) then
return Is_Return_By_Reference_Type (Component_Type (Btype)); return Is_Inherently_Limited_Type (Component_Type (Btype));
else else
return False; return False;
end if; end if;
end Is_Return_By_Reference_Type; end Is_Inherently_Limited_Type;
-------------------- --------------------
-- Is_String_Type -- -- Is_String_Type --
...@@ -6477,11 +6631,12 @@ package body Einfo is ...@@ -6477,11 +6631,12 @@ package body Einfo is
--------------------- ---------------------
function Type_High_Bound (Id : E) return Node_Id is function Type_High_Bound (Id : E) return Node_Id is
Rng : constant Node_Id := Scalar_Range (Id);
begin begin
if Nkind (Scalar_Range (Id)) = N_Subtype_Indication then if Nkind (Rng) = N_Subtype_Indication then
return High_Bound (Range_Expression (Constraint (Scalar_Range (Id)))); return High_Bound (Range_Expression (Constraint (Rng)));
else else
return High_Bound (Scalar_Range (Id)); return High_Bound (Rng);
end if; end if;
end Type_High_Bound; end Type_High_Bound;
...@@ -6490,11 +6645,12 @@ package body Einfo is ...@@ -6490,11 +6645,12 @@ package body Einfo is
-------------------- --------------------
function Type_Low_Bound (Id : E) return Node_Id is function Type_Low_Bound (Id : E) return Node_Id is
Rng : constant Node_Id := Scalar_Range (Id);
begin begin
if Nkind (Scalar_Range (Id)) = N_Subtype_Indication then if Nkind (Rng) = N_Subtype_Indication then
return Low_Bound (Range_Expression (Constraint (Scalar_Range (Id)))); return Low_Bound (Range_Expression (Constraint (Rng)));
else else
return Low_Bound (Scalar_Range (Id)); return Low_Bound (Rng);
end if; end if;
end Type_Low_Bound; end Type_Low_Bound;
...@@ -6621,6 +6777,7 @@ package body Einfo is ...@@ -6621,6 +6777,7 @@ package body Einfo is
W ("Depends_On_Private", Flag14 (Id)); W ("Depends_On_Private", Flag14 (Id));
W ("Discard_Names", Flag88 (Id)); W ("Discard_Names", Flag88 (Id));
W ("Elaboration_Entity_Required", Flag174 (Id)); W ("Elaboration_Entity_Required", Flag174 (Id));
W ("Elaborate_Body_Desirable", Flag210 (Id));
W ("Entry_Accepted", Flag152 (Id)); W ("Entry_Accepted", Flag152 (Id));
W ("Finalize_Storage_Only", Flag158 (Id)); W ("Finalize_Storage_Only", Flag158 (Id));
W ("From_With_Type", Flag159 (Id)); W ("From_With_Type", Flag159 (Id));
...@@ -6675,6 +6832,7 @@ package body Einfo is ...@@ -6675,6 +6832,7 @@ package body Einfo is
W ("Has_Specified_Stream_Output", Flag191 (Id)); W ("Has_Specified_Stream_Output", Flag191 (Id));
W ("Has_Specified_Stream_Read", Flag192 (Id)); W ("Has_Specified_Stream_Read", Flag192 (Id));
W ("Has_Specified_Stream_Write", Flag193 (Id)); W ("Has_Specified_Stream_Write", Flag193 (Id));
W ("Has_Static_Discriminants", Flag211 (Id));
W ("Has_Storage_Size_Clause", Flag23 (Id)); W ("Has_Storage_Size_Clause", Flag23 (Id));
W ("Has_Stream_Size_Clause", Flag184 (Id)); W ("Has_Stream_Size_Clause", Flag184 (Id));
W ("Has_Subprogram_Descriptor", Flag93 (Id)); W ("Has_Subprogram_Descriptor", Flag93 (Id));
...@@ -6690,7 +6848,7 @@ package body Einfo is ...@@ -6690,7 +6848,7 @@ package body Einfo is
W ("Is_Abstract", Flag19 (Id)); W ("Is_Abstract", Flag19 (Id));
W ("Is_Local_Anonymous_Access", Flag194 (Id)); W ("Is_Local_Anonymous_Access", Flag194 (Id));
W ("Is_Access_Constant", Flag69 (Id)); W ("Is_Access_Constant", Flag69 (Id));
W ("Is_Ada_2005", Flag185 (Id)); W ("Is_Ada_2005_Only", Flag185 (Id));
W ("Is_Aliased", Flag15 (Id)); W ("Is_Aliased", Flag15 (Id));
W ("Is_Asynchronous", Flag81 (Id)); W ("Is_Asynchronous", Flag81 (Id));
W ("Is_Atomic", Flag85 (Id)); W ("Is_Atomic", Flag85 (Id));
...@@ -6759,6 +6917,7 @@ package body Einfo is ...@@ -6759,6 +6917,7 @@ package body Einfo is
W ("Is_Remote_Call_Interface", Flag62 (Id)); W ("Is_Remote_Call_Interface", Flag62 (Id));
W ("Is_Remote_Types", Flag61 (Id)); W ("Is_Remote_Types", Flag61 (Id));
W ("Is_Renaming_Of_Object", Flag112 (Id)); W ("Is_Renaming_Of_Object", Flag112 (Id));
W ("Is_Return_Object", Flag209 (Id));
W ("Is_Shared_Passive", Flag60 (Id)); W ("Is_Shared_Passive", Flag60 (Id));
W ("Is_Synchronized_Interface", Flag199 (Id)); W ("Is_Synchronized_Interface", Flag199 (Id));
W ("Is_Statically_Allocated", Flag28 (Id)); W ("Is_Statically_Allocated", Flag28 (Id));
...@@ -6772,14 +6931,18 @@ package body Einfo is ...@@ -6772,14 +6931,18 @@ package body Einfo is
W ("Is_VMS_Exception", Flag133 (Id)); W ("Is_VMS_Exception", Flag133 (Id));
W ("Is_Valued_Procedure", Flag127 (Id)); W ("Is_Valued_Procedure", Flag127 (Id));
W ("Is_Visible_Child_Unit", Flag116 (Id)); W ("Is_Visible_Child_Unit", Flag116 (Id));
W ("Is_Visible_Formal", Flag206 (Id));
W ("Is_Volatile", Flag16 (Id)); W ("Is_Volatile", Flag16 (Id));
W ("Itype_Printed", Flag202 (Id)); W ("Itype_Printed", Flag202 (Id));
W ("Kill_Elaboration_Checks", Flag32 (Id)); W ("Kill_Elaboration_Checks", Flag32 (Id));
W ("Kill_Range_Checks", Flag33 (Id)); W ("Kill_Range_Checks", Flag33 (Id));
W ("Kill_Tag_Checks", Flag34 (Id)); W ("Kill_Tag_Checks", Flag34 (Id));
W ("Known_To_Have_Preelab_Init", Flag207 (Id));
W ("Low_Bound_Known", Flag205 (Id));
W ("Machine_Radix_10", Flag84 (Id)); W ("Machine_Radix_10", Flag84 (Id));
W ("Materialize_Entity", Flag168 (Id)); W ("Materialize_Entity", Flag168 (Id));
W ("Must_Be_On_Byte_Boundary", Flag183 (Id)); W ("Must_Be_On_Byte_Boundary", Flag183 (Id));
W ("Must_Have_Preelab_Init", Flag208 (Id));
W ("Needs_Debug_Info", Flag147 (Id)); W ("Needs_Debug_Info", Flag147 (Id));
W ("Needs_No_Actuals", Flag22 (Id)); W ("Needs_No_Actuals", Flag22 (Id));
W ("Never_Set_In_Source", Flag115 (Id)); W ("Never_Set_In_Source", Flag115 (Id));
...@@ -6820,6 +6983,10 @@ package body Einfo is ...@@ -6820,6 +6983,10 @@ package body Einfo is
procedure Write_Kind (Id : Entity_Id); procedure Write_Kind (Id : Entity_Id);
-- Write Ekind field of entity -- Write Ekind field of entity
---------------------
-- Write_Attribute --
---------------------
procedure Write_Attribute (Which : String; Nam : E) is procedure Write_Attribute (Which : String; Nam : E) is
begin begin
Write_Str (Prefix); Write_Str (Prefix);
...@@ -6830,6 +6997,10 @@ package body Einfo is ...@@ -6830,6 +6997,10 @@ package body Einfo is
Write_Str (" "); Write_Str (" ");
end Write_Attribute; end Write_Attribute;
----------------
-- Write_Kind --
----------------
procedure Write_Kind (Id : Entity_Id) is procedure Write_Kind (Id : Entity_Id) is
K : constant String := Entity_Kind'Image (Ekind (Id)); K : constant String := Entity_Kind'Image (Ekind (Id));
...@@ -6934,7 +7105,6 @@ package body Einfo is ...@@ -6934,7 +7105,6 @@ package body Einfo is
procedure Write_Field6_Name (Id : Entity_Id) is procedure Write_Field6_Name (Id : Entity_Id) is
pragma Warnings (Off, Id); pragma Warnings (Off, Id);
begin begin
Write_Str ("First_Rep_Item"); Write_Str ("First_Rep_Item");
end Write_Field6_Name; end Write_Field6_Name;
...@@ -6945,7 +7115,6 @@ package body Einfo is ...@@ -6945,7 +7115,6 @@ package body Einfo is
procedure Write_Field7_Name (Id : Entity_Id) is procedure Write_Field7_Name (Id : Entity_Id) is
pragma Warnings (Off, Id); pragma Warnings (Off, Id);
begin begin
Write_Str ("Freeze_Node"); Write_Str ("Freeze_Node");
end Write_Field7_Name; end Write_Field7_Name;
...@@ -6972,6 +7141,9 @@ package body Einfo is ...@@ -6972,6 +7141,9 @@ package body Einfo is
when E_Package => when E_Package =>
Write_Str ("Dependent_Instances"); Write_Str ("Dependent_Instances");
when E_Return_Statement =>
Write_Str ("Return_Applies_To");
when E_Variable => when E_Variable =>
Write_Str ("Hiding_Loop_Variable"); Write_Str ("Hiding_Loop_Variable");
...@@ -7319,6 +7491,7 @@ package body Einfo is ...@@ -7319,6 +7491,7 @@ package body Einfo is
E_Procedure | E_Procedure |
E_Record_Type | E_Record_Type |
E_Record_Subtype | E_Record_Subtype |
E_Return_Statement |
E_Subprogram_Body | E_Subprogram_Body |
E_Subprogram_Type => E_Subprogram_Type =>
Write_Str ("First_Entity"); Write_Str ("First_Entity");
...@@ -7339,13 +7512,18 @@ package body Einfo is ...@@ -7339,13 +7512,18 @@ package body Einfo is
Write_Str ("Modulus"); Write_Str ("Modulus");
when Formal_Kind | when Formal_Kind |
E_Constant | E_Constant |
E_Generic_In_Out_Parameter | E_Generic_In_Out_Parameter |
E_Variable => E_Variable =>
Write_Str ("Actual_Subtype"); Write_Str ("Actual_Subtype");
when E_Incomplete_Type => when E_Incomplete_Type =>
Write_Str ("Non-limited view"); Write_Str ("Non_Limited_View");
when E_Incomplete_Subtype =>
if From_With_Type (Id) then
Write_Str ("Non_Limited_View");
end if;
when others => when others =>
Write_Str ("Field17??"); Write_Str ("Field17??");
...@@ -7490,6 +7668,7 @@ package body Einfo is ...@@ -7490,6 +7668,7 @@ package body Einfo is
E_Procedure | E_Procedure |
E_Record_Type | E_Record_Type |
E_Record_Subtype | E_Record_Subtype |
E_Return_Statement |
E_Subprogram_Body | E_Subprogram_Body |
E_Subprogram_Type => E_Subprogram_Type =>
...@@ -7501,6 +7680,9 @@ package body Einfo is ...@@ -7501,6 +7680,9 @@ package body Einfo is
when E_Exception => when E_Exception =>
Write_Str ("Register_Exception_Call"); Write_Str ("Register_Exception_Call");
when E_Variable =>
Write_Str ("Last_Assignment");
when others => when others =>
Write_Str ("Field20??"); Write_Str ("Field20??");
end case; end case;
...@@ -7592,6 +7774,7 @@ package body Einfo is ...@@ -7592,6 +7774,7 @@ package body Einfo is
E_Generic_Procedure | E_Generic_Procedure |
E_Procedure | E_Procedure |
E_Protected_Type | E_Protected_Type |
E_Return_Statement |
E_Subprogram_Body | E_Subprogram_Body |
E_Task_Type => E_Task_Type =>
Write_Str ("Scope_Depth_Value"); Write_Str ("Scope_Depth_Value");
...@@ -7679,28 +7862,9 @@ package body Einfo is ...@@ -7679,28 +7862,9 @@ package body Einfo is
------------------------ ------------------------
procedure Write_Field24_Name (Id : Entity_Id) is procedure Write_Field24_Name (Id : Entity_Id) is
pragma Warnings (Off, Id);
begin begin
case Ekind (Id) is Write_Str ("Obsolescent_Warning");
when E_Record_Type |
E_Record_Subtype |
E_Record_Type_With_Private |
E_Record_Subtype_With_Private =>
Write_Str ("Abstract_Interfaces");
when E_Component =>
Write_Str ("DT_Offset_To_Top_Func");
when Subprogram_Kind |
E_Package |
E_Generic_Package =>
Write_Str ("Obsolescent_Warning");
when Task_Kind =>
Write_Str ("Task_Body_Procedure");
when others =>
Write_Str ("Field24??");
end case;
end Write_Field24_Name; end Write_Field24_Name;
------------------------ ------------------------
...@@ -7710,6 +7874,9 @@ package body Einfo is ...@@ -7710,6 +7874,9 @@ package body Einfo is
procedure Write_Field25_Name (Id : Entity_Id) is procedure Write_Field25_Name (Id : Entity_Id) is
begin begin
case Ekind (Id) is case Ekind (Id) is
when E_Component =>
Write_Str ("DT_Offset_To_Top_Func");
when E_Procedure | when E_Procedure |
E_Function => E_Function =>
Write_Str ("Abstract_Interface_Alias"); Write_Str ("Abstract_Interface_Alias");
...@@ -7717,6 +7884,15 @@ package body Einfo is ...@@ -7717,6 +7884,15 @@ package body Einfo is
when E_Package => when E_Package =>
Write_Str ("Current_Use_Clause"); Write_Str ("Current_Use_Clause");
when E_Record_Type |
E_Record_Subtype |
E_Record_Type_With_Private |
E_Record_Subtype_With_Private =>
Write_Str ("Abstract_Interfaces");
when Task_Kind =>
Write_Str ("Task_Body_Procedure");
when others => when others =>
Write_Str ("Field25??"); Write_Str ("Field25??");
end case; end case;
...@@ -7757,6 +7933,21 @@ package body Einfo is ...@@ -7757,6 +7933,21 @@ package body Einfo is
end case; end case;
end Write_Field27_Name; end Write_Field27_Name;
------------------------
-- Write_Field28_Name --
------------------------
procedure Write_Field28_Name (Id : Entity_Id) is
begin
case Ekind (Id) is
when E_Procedure | E_Function | E_Entry =>
Write_Str ("Extra_Formals");
when others =>
Write_Str ("Field28??");
end case;
end Write_Field28_Name;
------------------------- -------------------------
-- Iterator Procedures -- -- Iterator Procedures --
------------------------- -------------------------
......
...@@ -84,8 +84,10 @@ package Einfo is ...@@ -84,8 +84,10 @@ package Einfo is
-------------------------------- --------------------------------
-- XEINFO is a utility program which automatically produces a C header file, -- XEINFO is a utility program which automatically produces a C header file,
-- a-xeinfo.h from the spec and body of package Einfo. It reads the input -- einfo.h from the spec and body of package Einfo. It reads the input
-- files einfo.ads and einfo.adb and produces the output file a-xeinfo.h. -- files einfo.ads and einfo.adb and produces the output file einfo.h.
-- XEINFO is run automatically by the build scripts when you do a full
-- bootstrap.
-- In order for this utility program to operate correctly, the form of the -- In order for this utility program to operate correctly, the form of the
-- einfo.ads and einfo.adb files must meet certain requirements and be laid -- einfo.ads and einfo.adb files must meet certain requirements and be laid
...@@ -107,7 +109,7 @@ package Einfo is ...@@ -107,7 +109,7 @@ package Einfo is
-- XEINFO reads and processes the function specs and the pragma Inlines. For -- XEINFO reads and processes the function specs and the pragma Inlines. For
-- functions that are declared as inlined, XEINFO reads the corresponding body -- functions that are declared as inlined, XEINFO reads the corresponding body
-- from xeinfo.adb, and processes it into C code. This results in some strict -- from einfo.adb, and processes it into C code. This results in some strict
-- restrictions on which functions can be inlined: -- restrictions on which functions can be inlined:
-- The function spec must be on a single line -- The function spec must be on a single line
...@@ -286,16 +288,17 @@ package Einfo is ...@@ -286,16 +288,17 @@ package Einfo is
-- and if assertions are enabled, an attempt to set the attribute on a -- and if assertions are enabled, an attempt to set the attribute on a
-- subtype will raise an assert error. -- subtype will raise an assert error.
-- Abstract_Interfaces (Elist24) -- Abstract_Interfaces (Elist25)
-- Present in record types and subtypes. List of abstract interfaces -- Present in record types and subtypes. List of abstract interfaces
-- implemented by a tagged type that are not already implemented by the -- implemented by a tagged type that are not already implemented by the
-- ancestors (Ada 2005: AI-251). -- ancestors (Ada 2005: AI-251).
-- Abstract_Interface_Alias (Node25) -- Abstract_Interface_Alias (Node25)
-- Present in subprograms that cover a primitive operation of an abstract -- Present in subprograms that cover a primitive operation of an abstract
-- interface type. Points to its associated interface subprogram. It is -- interface type. Can be set only if the Is_Hidden flag is also set,
-- used to register the subprogram in secondary dispatch table of the -- since such entities are always hidden. Points to its associated
-- interface (Ada 2005: AI-251). -- interface subprogram. It is used to register the subprogram in
-- secondary dispatch table of the interface (Ada 2005: AI-251).
-- Accept_Address (Elist21) -- Accept_Address (Elist21)
-- Present in entries. If an accept has a statement sequence, then an -- Present in entries. If an accept has a statement sequence, then an
...@@ -344,10 +347,14 @@ package Einfo is ...@@ -344,10 +347,14 @@ package Einfo is
-- make sure that the address can be meaningfully taken. -- make sure that the address can be meaningfully taken.
-- Alias (Node18) -- Alias (Node18)
-- Present in overloaded entities (literals, subprograms, entries). -- Present in overloaded entities (literals, subprograms, entries) and
-- Points to parent subprogram of a derived subprogram. Also used for -- subprograms that cover a primitive operation of an abstract interface
-- a subprogram renaming, where it points to the renamed subprogram. -- (that is, subprograms with the Abstract_Interface_Alias attribute).
-- Always empty for entries. -- In case of overloaded entities it points to the parent subprogram of
-- a derived subprogram. In case of abstract interface subprograms it
-- points to the subprogram that covers the abstract interface primitive.
-- Also used for a subprogram renaming, where it points to the renamed
-- subprogram. Always empty for entries.
-- Alignment (Uint14) -- Alignment (Uint14)
-- Present in entities for types and also in constants, variables, -- Present in entities for types and also in constants, variables,
...@@ -591,41 +598,40 @@ package Einfo is ...@@ -591,41 +598,40 @@ package Einfo is
-- (see Exp_Ch9). This type is used to represent values of the task type. -- (see Exp_Ch9). This type is used to represent values of the task type.
-- Corresponding_Remote_Type (Node22) -- Corresponding_Remote_Type (Node22)
-- Present in record types that describe the fat pointer structure for -- Present in record types that describe the fat pointer structure for
-- Remote_Access_To_Subrogram types. References the original access type. -- Remote_Access_To_Subrogram types. References the original access type.
-- CR_Discriminant (Node23) -- CR_Discriminant (Node23)
-- Present in discriminants of concurrent types. Denotes the homologous -- Present in discriminants of concurrent types. Denotes the homologous
-- discriminant of the corresponding record type. The CR_Discriminant is -- discriminant of the corresponding record type. The CR_Discriminant is
-- created at the same time as the discriminal, and used to replace -- created at the same time as the discriminal, and used to replace
-- occurrences of the discriminant within the type declaration. -- occurrences of the discriminant within the type declaration.
-- Current_Use_Clause (Node25) -- Current_Use_Clause (Node25)
-- Present in packages. Indicates the use clause currently in scope -- Present in packages. Indicates the use clause currently in scope
-- that makes the package use_visible. Used to detect redundant use -- that makes the package use_visible. Used to detect redundant use
-- clauses for the same package. -- clauses for the same package.
-- Current_Value (Node9) -- Current_Value (Node9)
-- Present in E_Variable, E_Out_Parameter and E_In_Out_Parameter -- Present in all object entities. Set in E_Variable, E_Constant, formal
-- entities. Set non-Empty if the (constant) current value of the -- parameters and E_Loop_Parameter entities if we have trackable current
-- variable is known. This value is valid only for references from -- values. Set non-Empty if the (constant) current value of the variable
-- the same sequential scope as the entity. The sequential scope -- is known, This value is valid only for references from the same
-- of an entity includes the immediate scope and any contained -- sequential scope as the entity. The sequential scope of an entity
-- scopes that are package specs, package bodies, or blocks (at -- includes the immediate scope and any contained scopes that are package
-- any nesting level). For convenience in coding, this field is -- specs, package bodies, blocks (at any nesting level) or statement
-- also present in other object entities (E_Loop_Parameter and -- sequences in IF or loop statements.
-- E_In_Parameter and E_Constant), but is not used to hold a
-- constant value, since value tracking is not needed in this case.
-- --
-- Another related use of this field is to record information -- Another related use of this field is to record information about the
-- about the value obtained from an IF statement condition. -- value obtained from an IF or WHILE statement condition. If the IF or
-- If the IF/ELSIF condition has the form "[NOT] OBJ RELOP VAL", -- ELSIF or WHILE condition has the form "NOT {,NOT] OBJ RELOP VAL ",
-- where OBJ is a reference to an entity with a Current_Value field, -- or OBJ [AND [THEN]] expr, where OBJ refers to an entity with a
-- RELOP is one of the six relational operators, and VAL is a compile- -- Current_Value field, RELOP is one of the six relational operators, and
-- time known value, then the Current_Value field if OBJ is set to -- VAL is a compile-time known value then the Current_Value field of OBJ
-- point to the N_If_Statement or N_Elsif_Part node of the relevant -- points to the N_If_Statement, N_Elsif_Part, or N_Iteration_Scheme node
-- construct. For more details on this usage, see the procedure -- of the relevant construct, and the Condition field of this can be
-- Exp_Util.Get_Current_Value_Condition. -- consulted to give information about the value of OBJ. For more details
-- on this usage, see the procedure Exp_Util.Get_Current_Value_Condition.
-- Debug_Info_Off (Flag166) -- Debug_Info_Off (Flag166)
-- Present in all entities. Set if a pragma Suppress_Debug_Info applies -- Present in all entities. Set if a pragma Suppress_Debug_Info applies
...@@ -802,7 +808,7 @@ package Einfo is ...@@ -802,7 +808,7 @@ package Einfo is
-- Present in E_Component entities. Only used for component marked -- Present in E_Component entities. Only used for component marked
-- Is_Tag. Store the number of entries in the Vtable (or Dispatch Table) -- Is_Tag. Store the number of entries in the Vtable (or Dispatch Table)
-- DT_Offset_To_Top_Func (Node24) -- DT_Offset_To_Top_Func (Node25)
-- Present in E_Component entities. Only used for component marked -- Present in E_Component entities. Only used for component marked
-- Is_Tag. If present it stores the Offset_To_Top function used to -- Is_Tag. If present it stores the Offset_To_Top function used to
-- provide this value in tagged types whose ancestor has discriminants. -- provide this value in tagged types whose ancestor has discriminants.
...@@ -817,6 +823,14 @@ package Einfo is ...@@ -817,6 +823,14 @@ package Einfo is
-- Present in all entities. Contains a value of the enumeration type -- Present in all entities. Contains a value of the enumeration type
-- Entity_Kind declared in a subsequent section in this spec. -- Entity_Kind declared in a subsequent section in this spec.
-- Elaborate_Body_Desirable (Flag210)
-- Present in package entities. Set if the elaboration circuitry detects
-- a case where there is a package body that modifies one or more visible
-- entities in the package spec and there is no explicit Elaborate_Body
-- pragma for the package. This information is passed on to the binder,
-- which attempts, but does not promise, to elaborate the body as close
-- to the spec as possible.
-- Elaboration_Entity (Node13) -- Elaboration_Entity (Node13)
-- Present in generic and non-generic package and subprogram -- Present in generic and non-generic package and subprogram
-- entities. This is a boolean entity associated with the unit that -- entities. This is a boolean entity associated with the unit that
...@@ -846,8 +860,8 @@ package Einfo is ...@@ -846,8 +860,8 @@ package Einfo is
-- is no need to set the flag. -- is no need to set the flag.
-- Enclosing_Dynamic_Scope (synthesized) -- Enclosing_Dynamic_Scope (synthesized)
-- Appliesa to all entities. Returns the closest dynamic scope in which -- Applies to all entities. Returns the closest dynamic scope in which
-- the entity is declared or Standard_Standard for library-level entities -- the entity is declared or Standard_Standard for library-level entities
-- Enclosing_Scope (Node18) -- Enclosing_Scope (Node18)
-- Present in labels. Denotes the innermost enclosing construct that -- Present in labels. Denotes the innermost enclosing construct that
...@@ -999,6 +1013,11 @@ package Einfo is ...@@ -999,6 +1013,11 @@ package Einfo is
-- one, with Empty indicating the end of the list of extra -- one, with Empty indicating the end of the list of extra
-- formals. -- formals.
-- Extra_Formals (Node28)
-- Applies to subprograms and subprogram types, and also in entries
-- and entry families. Returns first extra formal of the subprogram
-- or entry. Returns Empty if there are no extra formals.
-- Extra_Accessibility (Node13) -- Extra_Accessibility (Node13)
-- Present in formal parameters in the non-generic case if -- Present in formal parameters in the non-generic case if
-- expansion is active. Normally Empty, but if a parameter is -- expansion is active. Normally Empty, but if a parameter is
...@@ -1074,6 +1093,12 @@ package Einfo is ...@@ -1074,6 +1093,12 @@ package Einfo is
-- a subprogram type (the designated type of an Access_To_Subprogram -- a subprogram type (the designated type of an Access_To_Subprogram
-- definition) or in an entry. -- definition) or in an entry.
-- First_Formal_With_Extras (synthesized)
-- Applies to subprograms and subprogram types, and also in entries
-- and entry families. Returns first formal of the subprogram or entry.
-- Returns Empty if there are no formals. The list returned includes
-- all the extra formals (see description of Extra_Formals field).
-- First_Index (Node17) -- First_Index (Node17)
-- Present in array types and subtypes and in string types and subtypes. -- Present in array types and subtypes and in string types and subtypes.
-- By introducing implicit subtypes for the index constraints, we have -- By introducing implicit subtypes for the index constraints, we have
...@@ -1287,8 +1312,9 @@ package Einfo is ...@@ -1287,8 +1312,9 @@ package Einfo is
-- completion has been encountered and analyzed. -- completion has been encountered and analyzed.
-- Has_Completion_In_Body (Flag71) -- Has_Completion_In_Body (Flag71)
-- Present in "Taft amendment types" that is to say incomplete types -- Present in all entities for types and subtypes. Set only in "Taft
-- whose full declaration appears in the package body. -- amendment types" (incomplete types whose full declaration appears in
-- the package body).
-- Has_Complex_Representation (Flag140) [implementation base type only] -- Has_Complex_Representation (Flag140) [implementation base type only]
-- Present in all type entities. Set only for a record base type to -- Present in all type entities. Set only for a record base type to
...@@ -1500,6 +1526,15 @@ package Einfo is ...@@ -1500,6 +1526,15 @@ package Einfo is
-- entity has no references, but a warning should be given if it is -- entity has no references, but a warning should be given if it is
-- in fact referenced. -- in fact referenced.
-- Known_To_Have_Preelab_Init (Flag207)
-- Present in all type and subtype entities. If set, then the type is
-- known to have preelaborable initialization. In the case of a partial
-- view of a private type, it is only possible for this tobe set if a
-- pragma Preelaborable_Initialization is given for the type. For other
-- types, it is never set if the type does not have preelaborable
-- initialization, it may or may not be set if the type does have
-- preelaborable initialization.
-- Has_Primitive_Operations (Flag120) [base type only] -- Has_Primitive_Operations (Flag120) [base type only]
-- Present in all type entities. Set if at least one primitive operation -- Present in all type entities. Set if at least one primitive operation
-- is defined for the type. -- is defined for the type.
...@@ -1570,7 +1605,13 @@ package Einfo is ...@@ -1570,7 +1605,13 @@ package Einfo is
-- attribute definition clause. When such a clause occurs, a TSS is set -- attribute definition clause. When such a clause occurs, a TSS is set
-- on the underlying full view; the flags are used to track visibility of -- on the underlying full view; the flags are used to track visibility of
-- the attribute definition clause for partial or incomplete views. -- the attribute definition clause for partial or incomplete views.
--
-- Has_Static_Discriminants (Flag211)
-- Present in record subtypes constrained by discriminant values. Set if
-- all the discriminant values have static values, meaning that in the
-- case of a variant record, the component list can be trimmed down to
-- include only the components corresponding to these discriminants.
--
-- Has_Storage_Size_Clause (Flag23) [implementation base type only] -- Has_Storage_Size_Clause (Flag23) [implementation base type only]
-- Present in task types and access types. It is set if a Storage_Size -- Present in task types and access types. It is set if a Storage_Size
-- clause is present for the type. Used to prevent multiple clauses for -- clause is present for the type. Used to prevent multiple clauses for
...@@ -1655,11 +1696,11 @@ package Einfo is ...@@ -1655,11 +1696,11 @@ package Einfo is
-- Implementation_Base_Type (synthesized) -- Implementation_Base_Type (synthesized)
-- Applies to all types. Similar to Base_Type, but never returns a -- Applies to all types. Similar to Base_Type, but never returns a
-- private type when applied to a non-private type. Instead in this -- private type when applied to a non-private type. Instead in this case,
-- case, it always returns the Underlying_Type of the base type, so that -- it always returns the Underlying_Type of the base type, so that we
-- we still have a concrete type. Note: it is allowed to apply -- still have a concrete type. Note: it is allowed to apply
-- Implementation_Base_Type to other than a type, in which case it -- Implementation_Base_Type to other than a type, in which case it simply
-- simply returns the entity unchanged. -- returns the entity unchanged.
-- In_Package_Body (Flag48) -- In_Package_Body (Flag48)
-- Set on the entity that denotes the package (the defining occurrence -- Set on the entity that denotes the package (the defining occurrence
...@@ -1667,14 +1708,16 @@ package Einfo is ...@@ -1667,14 +1708,16 @@ package Einfo is
-- body. Reset on completion of analysis/expansion. -- body. Reset on completion of analysis/expansion.
-- In_Private_Part (Flag45) -- In_Private_Part (Flag45)
-- Present in package entities. Flag is set to indicate that the -- Present in all entities. Can be set only in package entities and
-- private part is being analyzed. The flag is reset at the end of the -- objects. For package entities, this flag is set to indicate that the
-- package declaration. -- private part of the package is being analyzed. The flag is reset at
-- the end of the package declaration. For objects it indicates that the
-- declaration of the object occurs in the private part of a package.
-- Inner_Instances (Elist23) -- Inner_Instances (Elist23)
-- Present in generic units. Contains element list of units that are -- Present in generic units. Contains element list of units that are
-- instantiated within the given generic. Used to diagnose circular -- instantiated within the given generic. Used to diagnose circular
-- instantiations. -- instantiations.
-- Interface_Name (Node21) -- Interface_Name (Node21)
-- Present in exceptions, functions, procedures, variables, constants, -- Present in exceptions, functions, procedures, variables, constants,
...@@ -1725,9 +1768,11 @@ package Einfo is ...@@ -1725,9 +1768,11 @@ package Einfo is
-- Is_Access_Type (synthesized) -- Is_Access_Type (synthesized)
-- Applies to all entities, true for access types and subtypes -- Applies to all entities, true for access types and subtypes
-- Is_Ada_2005 (Flag185) -- Is_Ada_2005_Only (Flag185)
-- Applies to all entities, true if a valid pragma Ada_05 applies to the -- Applies to all entities, true if a valid pragma Ada_05 applies to the
-- entity, indicating that the entity is Ada 2005 only. -- entity which specifically names the entity, indicating that the entity
-- is Ada 2005 only. Note that this flag is not set if the entity is part
-- of a unit compiled with the normal no-argument form of pragma Ada_05.
-- Is_Aliased (Flag15) -- Is_Aliased (Flag15)
-- Present in objects whose declarations carry the keyword aliased, -- Present in objects whose declarations carry the keyword aliased,
...@@ -1870,8 +1915,8 @@ package Einfo is ...@@ -1870,8 +1915,8 @@ package Einfo is
-- types and subtypes. -- types and subtypes.
-- Is_Derived_Type (synthesized) -- Is_Derived_Type (synthesized)
-- Applies to all type entities. Determine if given entity is a -- Applies to all entities. Determine if given entity is a derived type.
-- derived type -- Always false if argument is not a type.
-- Is_Discrete_Type (synthesized) -- Is_Discrete_Type (synthesized)
-- Applies to all entities, true for all discrete types and subtypes -- Applies to all entities, true for all discrete types and subtypes
...@@ -1891,7 +1936,8 @@ package Einfo is ...@@ -1891,7 +1936,8 @@ package Einfo is
-- Is_Dynamic_Scope (synthesized) -- Is_Dynamic_Scope (synthesized)
-- Applies to all Entities. Returns True if the entity is a dynamic -- Applies to all Entities. Returns True if the entity is a dynamic
-- scope (i.e. a block, a subprogram a task_type or an entry). -- scope (i.e. a block, subprogram, task_type, entry
-- or extended return statement).
-- Is_Elementary_Type (synthesized) -- Is_Elementary_Type (synthesized)
-- Applies to all entities, true for all elementary types and -- Applies to all entities, true for all elementary types and
...@@ -1940,6 +1986,9 @@ package Einfo is ...@@ -1940,6 +1986,9 @@ package Einfo is
-- Is_Formal (synthesized) -- Is_Formal (synthesized)
-- Applies to all entities, true for IN, IN OUT and OUT parameters -- Applies to all entities, true for IN, IN OUT and OUT parameters
-- Is_Formal_Object (synthesized)
-- Applies to all entities, true for generic IN and IN OUT parameters
-- Is_Formal_Subprogram (Flag111) -- Is_Formal_Subprogram (Flag111)
-- Defined on all entities, true for generic formal subprograms. -- Defined on all entities, true for generic formal subprograms.
...@@ -1959,7 +2008,8 @@ package Einfo is ...@@ -1959,7 +2008,8 @@ package Einfo is
-- Is_Generic_Instance (Flag130) -- Is_Generic_Instance (Flag130)
-- Present in all entities. Set to indicate that the entity is an -- Present in all entities. Set to indicate that the entity is an
-- instance of a generic unit. -- instance of a generic unit, or a formal package (which is an instance
-- of the template).
-- Is_Generic_Subprogram (synthesized) -- Is_Generic_Subprogram (synthesized)
-- Applies to all entities. Yields True for a generic subprogram -- Applies to all entities. Yields True for a generic subprogram
...@@ -2000,6 +2050,9 @@ package Einfo is ...@@ -2000,6 +2050,9 @@ package Einfo is
-- Is_Incomplete_Or_Private_Type (synthesized) -- Is_Incomplete_Or_Private_Type (synthesized)
-- Applies to all entities, true for private and incomplete types -- Applies to all entities, true for private and incomplete types
-- Is_Incomplete_Type (synthesized)
-- Applies to all entities, true for incomplete types and subtypes
-- Is_Indefinite_Subtype (synthesized) -- Is_Indefinite_Subtype (synthesized)
-- Applies to all entities for types and subtypes. Determines if given -- Applies to all entities for types and subtypes. Determines if given
-- entity is an unconstrained array type or subtype, a discriminated -- entity is an unconstrained array type or subtype, a discriminated
...@@ -2196,8 +2249,8 @@ package Einfo is ...@@ -2196,8 +2249,8 @@ package Einfo is
-- including generic formal parameters. -- including generic formal parameters.
-- Is_Obsolescent (Flag153) -- Is_Obsolescent (Flag153)
-- Present in all entities. Set only for packages and subprograms to -- Present in all entities. Set for any entity for which a valid pragma
-- which a valid pragma Obsolescent applies. -- Obsolescent applies.
-- Is_Optional_Parameter (Flag134) -- Is_Optional_Parameter (Flag134)
-- Present in parameter entities. Set if the parameter is specified as -- Present in parameter entities. Set if the parameter is specified as
...@@ -2361,9 +2414,18 @@ package Einfo is ...@@ -2361,9 +2414,18 @@ package Einfo is
-- renaming is handled by the front end, by macro substitution of -- renaming is handled by the front end, by macro substitution of
-- a copy of the (evaluated) name tree whereever the variable is used. -- a copy of the (evaluated) name tree whereever the variable is used.
-- Is_Return_By_Reference_Type (synthesized) -- Is_Inherently_Limited_Type (synthesized)
-- Applies to all type entities. True if the type is required to -- Applies to all type entities. True if the type is "inherently"
-- be returned by reference, as defined in 6.5(11-16). -- limited (i.e. cannot become nonlimited). From the Ada 2005
-- RM-7.5(8.1/2), "a type with a part that is of a task, protected, or
-- explicitly limited record type". These are the types that are defined
-- as return-by-reference types in Ada 95 (see RM95-6.5(11-16)). In Ada
-- 2005, these are the types that require build-in-place for function
-- calls. Note that build-in-place is allowed for other types, too.
-- Is_Return_Object (Flag209)
-- Applies to all object entities. True if the object is the return
-- object of an extended_return_statement; False otherwise.
-- Is_Scalar_Type (synthesized) -- Is_Scalar_Type (synthesized)
-- Applies to all entities, true for scalar types and subtypes -- Applies to all entities, true for scalar types and subtypes
...@@ -2475,6 +2537,13 @@ package Einfo is ...@@ -2475,6 +2537,13 @@ package Einfo is
-- a separate flag must be used to indicate whether the names are -- a separate flag must be used to indicate whether the names are
-- visible by selected notation, or not. -- visible by selected notation, or not.
-- Is_Visible_Formal (Flag206)
-- Present in all entities. Set for instances of the formals of a formal
-- package. Indicates that the entity must be made visible in the body
-- of the instance, to reproduce the visibility of the generic. This
-- simplifies visibility settings in instance bodies.
-- ??? confusion in abovecomments between being present and being set
-- Is_VMS_Exception (Flag133) -- Is_VMS_Exception (Flag133)
-- Present in all entities. Set only for exception entities where the -- Present in all entities. Set only for exception entities where the
-- exception was specified in an Import_Exception or Export_Exception -- exception was specified in an Import_Exception or Export_Exception
...@@ -2511,11 +2580,11 @@ package Einfo is ...@@ -2511,11 +2580,11 @@ package Einfo is
-- subsequent pragma Unsuppress. -- subsequent pragma Unsuppress.
-- Kill_Range_Checks (Flag33) -- Kill_Range_Checks (Flag33)
-- Present in all entities. Set by the expander to kill elaboration -- Present in all entities. Equivalent in effect to the use of pragma
-- checks which are known not to be needed. Equivalent in effect to -- Supress (Range_Checks) for that entity except that the result is
-- the use of pragma Supress (Range_Checks) for that entity except -- permanent and cannot be undone by a subsequent pragma Unsuppress.
-- that the result is permanent and cannot be undone by a subsequent -- This is currently only used in one odd situation in Sem_Ch3 for
-- pragma Unsuppress. -- record types, and it would be good to get rid of it???
-- Kill_Tag_Checks (Flag34) -- Kill_Tag_Checks (Flag34)
-- Present in all entities. Set by the expander to kill elaboration -- Present in all entities. Set by the expander to kill elaboration
...@@ -2524,6 +2593,12 @@ package Einfo is ...@@ -2524,6 +2593,12 @@ package Einfo is
-- that the result is permanent and cannot be undone by a subsequent -- that the result is permanent and cannot be undone by a subsequent
-- pragma Unsuppress. -- pragma Unsuppress.
-- Last_Assignment (Node20)
-- Present in entities for variables. Set for a local variable to point
-- to the left side of an assignment statement assigning a value to the
-- variable. Cleared if the value of the variable is referenced. Used to
-- warn about dubious assignment statements whose value is not used.
-- Last_Entity (Node20) -- Last_Entity (Node20)
-- Present in all entities which act as scopes to which a list of -- Present in all entities which act as scopes to which a list of
-- associated entities is attached (blocks, class subtypes and types, -- associated entities is attached (blocks, class subtypes and types,
...@@ -2553,6 +2628,16 @@ package Einfo is ...@@ -2553,6 +2628,16 @@ package Einfo is
-- the nature and use of this entity for implementing the Image and -- the nature and use of this entity for implementing the Image and
-- Value attributes for the enumeration type in question. -- Value attributes for the enumeration type in question.
-- Low_Bound_Known (Flag205)
-- Present in all entities. Currently this can only be set True for
-- formal parameter entries of a standard unconstrained one-dimensional
-- array or string type, where the lower bound of the index type is zero
-- or one. Indicates that the low bound is known to be equal to the lower
-- bound of the index type (e.g. 1 for String, since the index type is
-- Positive). This flag can only be set by a pragma Assert which
-- specifies this. If this flag is set, warnings about assuming the index
-- low bound to be zero or one are suppressed.
-- Machine_Radix_10 (Flag84) -- Machine_Radix_10 (Flag84)
-- Present in decimal types and subtypes, set if the Machine_Radix -- Present in decimal types and subtypes, set if the Machine_Radix
-- is 10, as the result of the specification of a machine radix -- is 10, as the result of the specification of a machine radix
...@@ -2593,6 +2678,13 @@ package Einfo is ...@@ -2593,6 +2678,13 @@ package Einfo is
-- flag is set only for packed arrays longer than 64 bits where -- flag is set only for packed arrays longer than 64 bits where
-- the component size is not a power of 2. -- the component size is not a power of 2.
-- Must_Have_Preelab_Init (Flag208)
-- Present in entities for types and subtypes. Set in the full type of a
-- private type or subtype if a pragma Has_Preelaborable_Initialization
-- is present for the private type. Used to check that the full type has
-- preelaborable initialization at freeze time (this has to be deferred
-- to the freeze point because of the rule about overriding Initialize).
-- Needs_Debug_Info (Flag147) -- Needs_Debug_Info (Flag147)
-- Present in all entities. Set if the entity requires debugging -- Present in all entities. Set if the entity requires debugging
-- information to be generated. This is true of all entities that -- information to be generated. This is true of all entities that
...@@ -2789,9 +2881,10 @@ package Einfo is ...@@ -2789,9 +2881,10 @@ package Einfo is
-- formals as a value of type Pos. -- formals as a value of type Pos.
-- Obsolescent_Warning (Node24) -- Obsolescent_Warning (Node24)
-- Present in package and subprogram entities. Set non-empty only if the -- Present in all entities. Set non-empty only if a pragma Obsolescent
-- pragma Obsolescent had a string argument, in which case it records the -- applying to the entity had a string argument, in which case it records
-- contents of the corresponding string literal node. -- the contents of the corresponding string literal node. This field is
-- only accessed if the flag Is_Obsolescent is set.
-- Original_Access_Type (Node21) -- Original_Access_Type (Node21)
-- Present in access to subprogram types. Anonymous access to protected -- Present in access to subprogram types. Anonymous access to protected
...@@ -3017,6 +3110,13 @@ package Einfo is ...@@ -3017,6 +3110,13 @@ package Einfo is
-- entities (for convenience in setting it), but is only tested -- entities (for convenience in setting it), but is only tested
-- for the function case. -- for the function case.
-- Return_Applies_To (Node8)
-- Present in E_Return_Statement. Points to the entity representing
-- the construct to which the return statement applies, as defined in
-- RM-6.5(4/2). Note that a (simple) return statement within an
-- extended_return_statement applies to the extended_return_statement,
-- even though it causes the whole function to return.
-- Returns_By_Ref (Flag90) -- Returns_By_Ref (Flag90)
-- Present in function entities, to indicate that the function -- Present in function entities, to indicate that the function
-- returns the result by reference, either because its return type is a -- returns the result by reference, either because its return type is a
...@@ -3193,14 +3293,15 @@ package Einfo is ...@@ -3193,14 +3293,15 @@ package Einfo is
-- or a copy of the low bound of the index base type if not. -- or a copy of the low bound of the index base type if not.
-- Suppress_Elaboration_Warnings (Flag148) -- Suppress_Elaboration_Warnings (Flag148)
-- Present in all entities, relevant only for subprogram entities. If -- Present in all entities, relevant only for subprogram entities and
-- this flag is set then Sem_Elab will not generate elaboration warnings -- for variables. If this flag is set then Sem_Elab will not generate
-- for the subprogram. Suppression of such warnings is automatic for -- elaboration warnings for the subprogram or variable. Suppression of
-- subprograms for which elaboration checks are suppressed (without the -- such warnings is automatic for subprograms for which elaboration
-- need to set this flag), but the flag is also set for various internal -- checks are suppressed (without the need to set this flag), but the
-- entities (such as init procs) which are known not to generate any -- flag is also set for various internal entities (such as init procs)
-- possible access before elaboration. (we need a clear description of -- which are known not to generate any possible access before
-- how this flag differs in effect from Elaboration_Checks_Suppressed???) -- elaboration, and it is set on variables when a warning is given to
-- avoid multiple elaboration warnings for the same variable.
-- Suppress_Init_Proc (Flag105) [base type only] -- Suppress_Init_Proc (Flag105) [base type only]
-- Present in all type entities. Set to suppress the generation of -- Present in all type entities. Set to suppress the generation of
...@@ -3211,11 +3312,13 @@ package Einfo is ...@@ -3211,11 +3312,13 @@ package Einfo is
-- Present in all entities. Suppresses any style checks specifically -- Present in all entities. Suppresses any style checks specifically
-- associated with the given entity if set. -- associated with the given entity if set.
-- Task_Body_Procedure (Node24) -- Task_Body_Procedure (Node25)
-- Present in task types and subtypes. Points to the entity for -- Present in task types and subtypes. Points to the entity for
-- the task body procedure (as further described in Exp_Ch9, task -- the task body procedure (as further described in Exp_Ch9, task
-- bodies are expanded into procedures). A convenient function to -- bodies are expanded into procedures). A convenient function to
-- retrieve this field is Sem_Util.Get_Task_Body_Procedure. -- retrieve this field is Sem_Util.Get_Task_Body_Procedure.
-- The last sentence is odd ??? Why not have Task_Body_Procedure
-- go to the Underlying_Type of the Root_Type???
-- Treat_As_Volatile (Flag41) -- Treat_As_Volatile (Flag41)
-- Present in all type entities, and also in constants, components and -- Present in all type entities, and also in constants, components and
...@@ -3231,51 +3334,50 @@ package Einfo is ...@@ -3231,51 +3334,50 @@ package Einfo is
-- end should test Treat_As_Volatile rather than Is_Volatile. -- end should test Treat_As_Volatile rather than Is_Volatile.
-- Type_High_Bound (synthesized) -- Type_High_Bound (synthesized)
-- Applies to scalar types. Returns the tree node (Node_Id) that -- Applies to scalar types. Returns the tree node (Node_Id) that contains
-- contains the high bound of a scalar type. The returned value is a -- the high bound of a scalar type. The returned value is literal for a
-- literal for a base type, but may be an expression in the case of a -- base type, but may be an expression in the case of scalar type with
-- scalar type with dynamic bounds. Note that in the case of a fixed -- dynamic bounds. Note that in the case of a fixed point type, the high
-- point type, the high bound is in units of small, and is an integer. -- bound is in units of small, and is an integer.
-- Type_Low_Bound (synthesized) -- Type_Low_Bound (synthesized)
-- Applies to scalar types. Returns the tree node (Node_Id) that -- Applies to scalar types. Returns the tree node (Node_Id) that contains
-- contains the low bound of a scalar type. The returned value is a -- the low bound of a scalar type. The returned value is literal for a
-- literal for a base type, but may be an expression in the case of a -- base type, but may be an expression in the case of scalar type with
-- scalar type with dynamic bounds. Note that in the case of a fixed -- dynamic bounds. Note that in the case of a fixed point type, the low
-- point type, the low bound is in units of small, and is an integer. -- bound is in units of small, and is an integer.
-- Underlying_Full_View (Node19) -- Underlying_Full_View (Node19)
-- Present in private subtypes that are the completion of other private -- Present in private subtypes that are the completion of other private
-- types, or in private types that are derived from private subtypes. -- types, or in private types that are derived from private subtypes. If
-- If the full view of a private type T is derived from another -- the full view of a private type T is derived from another private type
-- private type with discriminants Td, the full view of T is also -- with discriminants Td, the full view of T is also private, and there
-- private, and there is no way to attach to it a further full view that -- is no way to attach to it a further full view that would convey the
-- would convey the structure of T to the back end. The Underlying_Full_ -- structure of T to the back end. The Underlying_Full_ View is an
-- View is an attribute of the full view that is a subtype of Td with -- attribute of the full view that is a subtype of Td with the same
-- the same constraint as the declaration for T. The declaration for this -- constraint as the declaration for T. The declaration for this subtype
-- subtype is built at the point of the declaration of T, either as a -- is built at the point of the declaration of T, either as completion,
-- completion, or as a subtype declaration where the base type is private -- or as a subtype declaration where the base type is private and has a
-- and has a private completion. If Td is already constrained, then its -- private completion. If Td is already constrained, then its full view
-- full view can serve directly as the full view of T. -- can serve directly as the full view of T.
-- Underlying_Type (synthesized) -- Underlying_Type (synthesized)
-- Applies to all entities. This is the identity function except in -- Applies to all entities. This is the identity function except in the
-- the case where it is applied to an incomplete or private type, -- case where it is applied to an incomplete or private type, in which
-- in which case it is the underlying type of the type declared by -- case it is the underlying type of the type declared by the completion,
-- the completion, or Empty if the completion has not yet been -- or Empty if the completion has not yet been encountered and analyzed.
-- encountered and analyzed.
-- --
-- Note: the reason this attribute applies to all entities, and not -- Note: the reason this attribute applies to all entities, and not just
-- just types, is to legitimize code where Underlying_Type is applied -- types, is to legitimize code where Underlying_Type is applied to an
-- to an entity which may or may not be a type, with the intent that -- entity which may or may not be a type, with the intent that if it is a
-- if it is a type, its underlying type is taken. -- type, its underlying type is taken.
-- Unset_Reference (Node16) -- Unset_Reference (Node16)
-- Present in variables and out parameters. This is normally Empty. -- Present in variables and out parameters. This is normally Empty. It
-- It is set to point to an identifier that represents a reference -- is set to point to an identifier that represents a reference to the
-- to the entity before any value has been set. Only the first such -- entity before any value has been set. Only the first such reference
-- reference is identified. This field is used to generate a warning -- is identified. This field is used to generate a warning message if
-- message if necessary (see Sem_Warn.Check_Unset_Reference). -- necessary (see Sem_Warn.Check_Unset_Reference).
-- Uses_Sec_Stack (Flag95) -- Uses_Sec_Stack (Flag95)
-- Present in scope entities (blocks,functions, procedures, tasks, -- Present in scope entities (blocks,functions, procedures, tasks,
...@@ -3297,7 +3399,7 @@ package Einfo is ...@@ -3297,7 +3399,7 @@ package Einfo is
-- attribute when the limited-view is installed (Ada 2005: AI-217). -- attribute when the limited-view is installed (Ada 2005: AI-217).
-- Wrapped_Entity (Node27) -- Wrapped_Entity (Node27)
-- Present in an E_Procedure classified as a Is_Primitive_Wrapper. Set -- Present in an E_Procedure classified as an Is_Primitive_Wrapper. Set
-- to the entity that is being wrapped. -- to the entity that is being wrapped.
------------------ ------------------
...@@ -3600,6 +3702,10 @@ package Einfo is ...@@ -3600,6 +3702,10 @@ package Einfo is
E_Incomplete_Type, E_Incomplete_Type,
-- An incomplete type, created by an incomplete type declaration -- An incomplete type, created by an incomplete type declaration
E_Incomplete_Subtype,
-- An incomplete subtype, created by a subtype declaration where the
-- subtype mark denotes an incomplete type.
E_Task_Type, E_Task_Type,
-- A task type, created by a task type declaration. An entity with this -- A task type, created by a task type declaration. An entity with this
-- Ekind is also created to describe the anonymous type of a task that -- Ekind is also created to describe the anonymous type of a task that
...@@ -3699,6 +3805,14 @@ package Einfo is ...@@ -3699,6 +3805,14 @@ package Einfo is
-- A loop identifier, created by an explicit or implicit label on a -- A loop identifier, created by an explicit or implicit label on a
-- loop statement. -- loop statement.
E_Return_Statement,
-- A dummy entity created for each return statement. Used to hold
-- information about the return statement (what it applies to) and in
-- rules checking. For example, a simple_return_statement that applies
-- to an extended_return_statement cannot have an expression; this
-- requires putting the E_Return_Statement entity for the
-- extended_return_statement on the scope stack.
E_Package, E_Package,
-- A package, created by a package declaration -- A package, created by a package declaration
...@@ -3734,11 +3848,11 @@ package Einfo is ...@@ -3734,11 +3848,11 @@ package Einfo is
-- Subtype Declarations -- -- Subtype Declarations --
-------------------------- --------------------------
-- The above entities are arranged so that they can be conveniently -- The above entities are arranged so that they can be conveniently grouped
-- grouped into subtype ranges. Note that for each of the xxx_Kind -- into subtype ranges. Note that for each of the xxx_Kind ranges defined
-- ranges defined below, there is a corresponding Is_xxx.. predicate -- below, there is a corresponding Is_xxx (or for types, Is_xxx_Type)
-- which is to be used in preference to direct range tests using the -- predicate which is to be used in preference to direct range tests using
-- subtype name. However, the subtype names are available for direct -- the subtype name. However, the subtype names are available for direct
-- use, e.g. as choices in case statements. -- use, e.g. as choices in case statements.
subtype Access_Kind is Entity_Kind range subtype Access_Kind is Entity_Kind range
...@@ -3781,6 +3895,7 @@ package Einfo is ...@@ -3781,6 +3895,7 @@ package Einfo is
-- E_Limited_Private_Type -- E_Limited_Private_Type
-- E_Limited_Private_Subtype -- E_Limited_Private_Subtype
-- E_Incomplete_Type -- E_Incomplete_Type
-- E_Incomplete_Subtype
-- E_Task_Type -- E_Task_Type
-- E_Task_Subtype, -- E_Task_Subtype,
-- E_Protected_Type, -- E_Protected_Type,
...@@ -3871,7 +3986,11 @@ package Einfo is ...@@ -3871,7 +3986,11 @@ package Einfo is
subtype Formal_Kind is Entity_Kind range subtype Formal_Kind is Entity_Kind range
E_In_Parameter .. E_In_Parameter ..
-- E_Out_Parameter -- E_Out_Parameter
E_In_Out_Parameter; E_In_Out_Parameter;
subtype Formal_Object_Kind is Entity_Kind range
E_Generic_In_Out_Parameter ..
E_Generic_In_Parameter;
subtype Generic_Subprogram_Kind is Entity_Kind range subtype Generic_Subprogram_Kind is Entity_Kind range
E_Generic_Function .. E_Generic_Function ..
...@@ -3882,6 +4001,10 @@ package Einfo is ...@@ -3882,6 +4001,10 @@ package Einfo is
-- E_Generic_Procedure -- E_Generic_Procedure
E_Generic_Package; E_Generic_Package;
subtype Incomplete_Kind is Entity_Kind range
E_Incomplete_Type ..
E_Incomplete_Subtype;
subtype Incomplete_Or_Private_Kind is Entity_Kind range subtype Incomplete_Or_Private_Kind is Entity_Kind range
E_Record_Type_With_Private .. E_Record_Type_With_Private ..
-- E_Record_Subtype_With_Private -- E_Record_Subtype_With_Private
...@@ -3889,7 +4012,8 @@ package Einfo is ...@@ -3889,7 +4012,8 @@ package Einfo is
-- E_Private_Subtype -- E_Private_Subtype
-- E_Limited_Private_Type -- E_Limited_Private_Type
-- E_Limited_Private_Subtype -- E_Limited_Private_Subtype
E_Incomplete_Type; -- E_Incomplete_Type
E_Incomplete_Subtype;
subtype Integer_Kind is Entity_Kind range subtype Integer_Kind is Entity_Kind range
E_Signed_Integer_Type .. E_Signed_Integer_Type ..
...@@ -4039,6 +4163,7 @@ package Einfo is ...@@ -4039,6 +4163,7 @@ package Einfo is
-- E_Limited_Private_Type -- E_Limited_Private_Type
-- E_Limited_Private_Subtype -- E_Limited_Private_Subtype
-- E_Incomplete_Type -- E_Incomplete_Type
-- E_Incomplete_Subtype
-- E_Task_Type -- E_Task_Type
-- E_Task_Subtype -- E_Task_Subtype
-- E_Protected_Type -- E_Protected_Type
...@@ -4067,6 +4192,7 @@ package Einfo is ...@@ -4067,6 +4192,7 @@ package Einfo is
-- Etype (Node5) -- Etype (Node5)
-- First_Rep_Item (Node6) -- First_Rep_Item (Node6)
-- Freeze_Node (Node7) -- Freeze_Node (Node7)
-- Obsolescent_Warning (Node24)
-- Address_Taken (Flag104) -- Address_Taken (Flag104)
-- Can_Never_Be_Null (Flag38) -- Can_Never_Be_Null (Flag38)
...@@ -4089,7 +4215,7 @@ package Einfo is ...@@ -4089,7 +4215,7 @@ package Einfo is
-- Has_Qualified_Name (Flag161) -- Has_Qualified_Name (Flag161)
-- Has_Unknown_Discriminants (Flag72) -- Has_Unknown_Discriminants (Flag72)
-- Has_Xref_Entry (Flag182) -- Has_Xref_Entry (Flag182)
-- Is_Ada_2005 (Flag185) -- Is_Ada_2005_Only (Flag185)
-- Is_Bit_Packed_Array (Flag122) (base type only) -- Is_Bit_Packed_Array (Flag122) (base type only)
-- Is_Child_Unit (Flag73) -- Is_Child_Unit (Flag73)
-- Is_Compilation_Unit (Flag149) -- Is_Compilation_Unit (Flag149)
...@@ -4125,10 +4251,12 @@ package Einfo is ...@@ -4125,10 +4251,12 @@ package Einfo is
-- Is_Shared_Passive (Flag60) -- Is_Shared_Passive (Flag60)
-- Is_Statically_Allocated (Flag28) -- Is_Statically_Allocated (Flag28)
-- Is_Unchecked_Union (Flag117) -- Is_Unchecked_Union (Flag117)
-- Is_Visible_Formal (Flag206)
-- Is_VMS_Exception (Flag133) -- Is_VMS_Exception (Flag133)
-- Kill_Elaboration_Checks (Flag32) -- Kill_Elaboration_Checks (Flag32)
-- Kill_Range_Checks (Flag33) -- Kill_Range_Checks (Flag33)
-- Kill_Tag_Checks (Flag34) -- Kill_Tag_Checks (Flag34)
-- Low_Bound_Known (Flag205)
-- Materialize_Entity (Flag168) -- Materialize_Entity (Flag168)
-- Needs_Debug_Info (Flag147) -- Needs_Debug_Info (Flag147)
-- No_Return (Flag113) -- No_Return (Flag113)
...@@ -4141,6 +4269,7 @@ package Einfo is ...@@ -4141,6 +4269,7 @@ package Einfo is
-- Declaration_Node (synth) -- Declaration_Node (synth)
-- Enclosing_Dynamic_Scope (synth) -- Enclosing_Dynamic_Scope (synth)
-- Has_Foreign_Convention (synth) -- Has_Foreign_Convention (synth)
-- Is_Derived_Type (synth)
-- Is_Dynamic_Scope (synth) -- Is_Dynamic_Scope (synth)
-- Is_Limited_Type (synth) -- Is_Limited_Type (synth)
-- Underlying_Type (synth) -- Underlying_Type (synth)
...@@ -4165,6 +4294,7 @@ package Einfo is ...@@ -4165,6 +4294,7 @@ package Einfo is
-- Has_Aliased_Components (Flag135) (base type only) -- Has_Aliased_Components (Flag135) (base type only)
-- Has_Alignment_Clause (Flag46) -- Has_Alignment_Clause (Flag46)
-- Has_Atomic_Components (Flag86) (base type only) -- Has_Atomic_Components (Flag86) (base type only)
-- Has_Completion_In_Body (Flag71)
-- Has_Complex_Representation (Flag140) (base type only) -- Has_Complex_Representation (Flag140) (base type only)
-- Has_Constrained_Partial_View (Flag187) -- Has_Constrained_Partial_View (Flag187)
-- Has_Discriminants (Flag5) -- Has_Discriminants (Flag5)
...@@ -4203,7 +4333,9 @@ package Einfo is ...@@ -4203,7 +4333,9 @@ package Einfo is
-- Is_Unsigned_Type (Flag144) -- Is_Unsigned_Type (Flag144)
-- Is_Volatile (Flag16) -- Is_Volatile (Flag16)
-- Itype_Printed (Flag202) (itypes only) -- Itype_Printed (Flag202) (itypes only)
-- Known_To_Have_Preelab_Init (Flag207)
-- Must_Be_On_Byte_Boundary (Flag183) -- Must_Be_On_Byte_Boundary (Flag183)
-- Must_Have_Preelab_Init (Flag208)
-- Size_Depends_On_Discriminant (Flag177) -- Size_Depends_On_Discriminant (Flag177)
-- Size_Known_At_Compile_Time (Flag92) -- Size_Known_At_Compile_Time (Flag92)
-- Strict_Alignment (Flag145) (base type only) -- Strict_Alignment (Flag145) (base type only)
...@@ -4218,7 +4350,7 @@ package Einfo is ...@@ -4218,7 +4350,7 @@ package Einfo is
-- Implementation_Base_Type (synth) -- Implementation_Base_Type (synth)
-- Is_By_Copy_Type (synth) -- Is_By_Copy_Type (synth)
-- Is_By_Reference_Type (synth) -- Is_By_Reference_Type (synth)
-- Is_Return_By_Reference_Type (synth) -- Is_Inherently_Limited_Type (synth)
-- Root_Type (synth) -- Root_Type (synth)
-- Size_Clause (synth) -- Size_Clause (synth)
...@@ -4328,13 +4460,14 @@ package Einfo is ...@@ -4328,13 +4460,14 @@ package Einfo is
-- Interface_Name (Node21) (JGNAT usage only) -- Interface_Name (Node21) (JGNAT usage only)
-- Original_Record_Component (Node22) -- Original_Record_Component (Node22)
-- Protected_Operation (Node23) -- Protected_Operation (Node23)
-- DT_Offset_To_Top_Func (Node24) -- DT_Offset_To_Top_Func (Node25)
-- Has_Biased_Representation (Flag139) -- Has_Biased_Representation (Flag139)
-- Has_Per_Object_Constraint (Flag154) -- Has_Per_Object_Constraint (Flag154)
-- Is_Atomic (Flag85) -- Is_Atomic (Flag85)
-- Is_Tag (Flag78) -- Is_Tag (Flag78)
-- Is_Volatile (Flag16) -- Is_Volatile (Flag16)
-- Treat_As_Volatile (Flag41) -- Treat_As_Volatile (Flag41)
-- Is_Return_Object (Flag209)
-- Is_Protected_Private (synth) -- Is_Protected_Private (synth)
-- Next_Component (synth) -- Next_Component (synth)
-- Next_Tag_Component (synth) -- Next_Tag_Component (synth)
...@@ -4349,6 +4482,7 @@ package Einfo is ...@@ -4349,6 +4482,7 @@ package Einfo is
-- Actual_Subtype (Node17) -- Actual_Subtype (Node17)
-- Renamed_Object (Node18) -- Renamed_Object (Node18)
-- Size_Check_Code (Node19) (constants only) -- Size_Check_Code (Node19) (constants only)
-- In_Private_Part (Flag45)
-- Interface_Name (Node21) -- Interface_Name (Node21)
-- Has_Alignment_Clause (Flag46) -- Has_Alignment_Clause (Flag46)
-- Has_Atomic_Components (Flag86) -- Has_Atomic_Components (Flag86)
...@@ -4362,6 +4496,7 @@ package Einfo is ...@@ -4362,6 +4496,7 @@ package Einfo is
-- Is_Volatile (Flag16) -- Is_Volatile (Flag16)
-- Never_Set_In_Source (Flag115) -- Never_Set_In_Source (Flag115)
-- Treat_As_Volatile (Flag41) -- Treat_As_Volatile (Flag41)
-- Is_Return_Object (Flag209)
-- Address_Clause (synth) -- Address_Clause (synth)
-- Alignment_Clause (synth) -- Alignment_Clause (synth)
-- Constant_Value (synth) -- Constant_Value (synth)
...@@ -4396,6 +4531,7 @@ package Einfo is ...@@ -4396,6 +4531,7 @@ package Einfo is
-- Interface_Name (Node21) (JGNAT usage only) -- Interface_Name (Node21) (JGNAT usage only)
-- Original_Record_Component (Node22) -- Original_Record_Component (Node22)
-- CR_Discriminant (Node23) -- CR_Discriminant (Node23)
-- Is_Return_Object (Flag209)
-- Next_Discriminant (synth) -- Next_Discriminant (synth)
-- Next_Stored_Discriminant (synth) -- Next_Stored_Discriminant (synth)
...@@ -4419,6 +4555,7 @@ package Einfo is ...@@ -4419,6 +4555,7 @@ package Einfo is
-- Uses_Sec_Stack (Flag95) -- Uses_Sec_Stack (Flag95)
-- Address_Clause (synth) -- Address_Clause (synth)
-- First_Formal (synth) -- First_Formal (synth)
-- First_Formal_With_Extras (synth)
-- Entry_Index_Type (synth) -- Entry_Index_Type (synth)
-- Number_Formals (synth) -- Number_Formals (synth)
-- Scope_Depth (synth) -- Scope_Depth (synth)
...@@ -4492,9 +4629,9 @@ package Einfo is ...@@ -4492,9 +4629,9 @@ package Einfo is
-- Generic_Renamings (Elist23) (for an instance) -- Generic_Renamings (Elist23) (for an instance)
-- Inner_Instances (Elist23) (for a generic function) -- Inner_Instances (Elist23) (for a generic function)
-- Privals_Chain (Elist23) (for a protected function) -- Privals_Chain (Elist23) (for a protected function)
-- Obsolescent_Warning (Node24)
-- Abstract_Interface_Alias (Node25) -- Abstract_Interface_Alias (Node25)
-- Overridden_Operation (Node26) -- Overridden_Operation (Node26)
-- Extra_Formals (Node28)
-- Body_Needed_For_SAL (Flag40) -- Body_Needed_For_SAL (Flag40)
-- Elaboration_Entity_Required (Flag174) -- Elaboration_Entity_Required (Flag174)
-- Function_Returns_With_DSP (Flag169) -- Function_Returns_With_DSP (Flag169)
...@@ -4529,6 +4666,7 @@ package Einfo is ...@@ -4529,6 +4666,7 @@ package Einfo is
-- Uses_Sec_Stack (Flag95) -- Uses_Sec_Stack (Flag95)
-- Address_Clause (synth) -- Address_Clause (synth)
-- First_Formal (synth) -- First_Formal (synth)
-- First_Formal_With_Extras (synth)
-- Number_Formals (synth) -- Number_Formals (synth)
-- Scope_Depth (synth) -- Scope_Depth (synth)
...@@ -4550,9 +4688,11 @@ package Einfo is ...@@ -4550,9 +4688,11 @@ package Einfo is
-- Protected_Formal (Node22) -- Protected_Formal (Node22)
-- Is_Controlling_Formal (Flag97) -- Is_Controlling_Formal (Flag97)
-- Is_Entry_Formal (Flag52) -- Is_Entry_Formal (Flag52)
-- Is_Return_Object (Flag209)
-- Parameter_Mode (synth) -- Parameter_Mode (synth)
-- E_Incomplete_Type -- E_Incomplete_Type
-- E_Incomplete_Subtype
-- Non_Limited_View (Node17) -- Non_Limited_View (Node17)
-- Private_Dependents (Elist18) -- Private_Dependents (Elist18)
-- Discriminant_Constraint (Elist21) -- Discriminant_Constraint (Elist21)
...@@ -4565,7 +4705,7 @@ package Einfo is ...@@ -4565,7 +4705,7 @@ package Einfo is
-- E_In_Out_Parameter -- E_In_Out_Parameter
-- E_Out_Parameter -- E_Out_Parameter
-- Mechanism (Uint8) (returns Mechanism_Type) -- Mechanism (Uint8) (returns Mechanism_Type)
-- Current_Value (Node9) (always Empty for IN case) -- Current_Value (Node9)
-- Discriminal_Link (Node10) (discriminals only) -- Discriminal_Link (Node10) (discriminals only)
-- Entry_Component (Node11) -- Entry_Component (Node11)
-- Esize (Uint12) -- Esize (Uint12)
...@@ -4583,7 +4723,9 @@ package Einfo is ...@@ -4583,7 +4723,9 @@ package Einfo is
-- Is_Controlling_Formal (Flag97) -- Is_Controlling_Formal (Flag97)
-- Is_Entry_Formal (Flag52) -- Is_Entry_Formal (Flag52)
-- Is_Optional_Parameter (Flag134) -- Is_Optional_Parameter (Flag134)
-- Low_Bound_Known (Flag205)
-- Never_Set_In_Source (Flag115) -- Never_Set_In_Source (Flag115)
-- Is_Return_Object (Flag209)
-- Parameter_Mode (synth) -- Parameter_Mode (synth)
-- E_Label -- E_Label
...@@ -4600,7 +4742,6 @@ package Einfo is ...@@ -4600,7 +4742,6 @@ package Einfo is
-- Private_View (Node22) -- Private_View (Node22)
-- Stored_Constraint (Elist23) -- Stored_Constraint (Elist23)
-- Has_Completion (Flag26) -- Has_Completion (Flag26)
-- Has_Completion_In_Body (Flag71)
-- First_Discriminant (synth) -- First_Discriminant (synth)
-- First_Stored_Discriminant (synth) -- First_Stored_Discriminant (synth)
-- (plus type attributes) -- (plus type attributes)
...@@ -4667,13 +4808,13 @@ package Einfo is ...@@ -4667,13 +4808,13 @@ package Einfo is
-- Generic_Renamings (Elist23) (for an instance) -- Generic_Renamings (Elist23) (for an instance)
-- Inner_Instances (Elist23) (generic case only) -- Inner_Instances (Elist23) (generic case only)
-- Limited_View (Node23) (non-generic, not instance) -- Limited_View (Node23) (non-generic, not instance)
-- Obsolescent_Warning (Node24)
-- Current_Use_Clause (Node25) -- Current_Use_Clause (Node25)
-- Package_Instantiation (Node26) -- Package_Instantiation (Node26)
-- Delay_Subprogram_Descriptors (Flag50) -- Delay_Subprogram_Descriptors (Flag50)
-- Body_Needed_For_SAL (Flag40) -- Body_Needed_For_SAL (Flag40)
-- Discard_Names (Flag88) -- Discard_Names (Flag88)
-- Elaboration_Entity_Required (Flag174) -- Elaboration_Entity_Required (Flag174)
-- Elaborate_Body_Desirable (Flag210) (non-generic case only)
-- From_With_Type (Flag159) -- From_With_Type (Flag159)
-- Has_All_Calls_Remote (Flag79) -- Has_All_Calls_Remote (Flag79)
-- Has_Completion (Flag26) -- Has_Completion (Flag26)
...@@ -4711,7 +4852,6 @@ package Einfo is ...@@ -4711,7 +4852,6 @@ package Einfo is
-- Private_View (Node22) -- Private_View (Node22)
-- Stored_Constraint (Elist23) -- Stored_Constraint (Elist23)
-- Has_Completion (Flag26) -- Has_Completion (Flag26)
-- Has_Completion_In_Body (Flag71)
-- Is_Controlled (Flag42) (base type only) -- Is_Controlled (Flag42) (base type only)
-- Is_For_Access_Subtype (Flag118) (subtype only) -- Is_For_Access_Subtype (Flag118) (subtype only)
-- First_Discriminant (synth) -- First_Discriminant (synth)
...@@ -4739,10 +4879,10 @@ package Einfo is ...@@ -4739,10 +4879,10 @@ package Einfo is
-- Generic_Renamings (Elist23) (for an instance) -- Generic_Renamings (Elist23) (for an instance)
-- Inner_Instances (Elist23) (for a generic procedure) -- Inner_Instances (Elist23) (for a generic procedure)
-- Privals_Chain (Elist23) (for a protected procedure) -- Privals_Chain (Elist23) (for a protected procedure)
-- Obsolescent_Warning (Node24)
-- Abstract_Interface_Alias (Node25) -- Abstract_Interface_Alias (Node25)
-- Overridden_Operation (Node26) -- Overridden_Operation (Node26)
-- Wrapped_Entity (Node27) (non-generic case only) -- Wrapped_Entity (Node27) (non-generic case only)
-- Extra_Formals (Node28)
-- Body_Needed_For_SAL (Flag40) -- Body_Needed_For_SAL (Flag40)
-- Elaboration_Entity_Required (Flag174) -- Elaboration_Entity_Required (Flag174)
-- Function_Returns_With_DSP (Flag169) (always False for procedure) -- Function_Returns_With_DSP (Flag169) (always False for procedure)
...@@ -4777,6 +4917,7 @@ package Einfo is ...@@ -4777,6 +4917,7 @@ package Einfo is
-- Sec_Stack_Needed_For_Return (Flag167) -- Sec_Stack_Needed_For_Return (Flag167)
-- Address_Clause (synth) -- Address_Clause (synth)
-- First_Formal (synth) -- First_Formal (synth)
-- First_Formal_With_Extras (synth)
-- Number_Formals (synth) -- Number_Formals (synth)
-- E_Protected_Body -- E_Protected_Body
...@@ -4815,11 +4956,12 @@ package Einfo is ...@@ -4815,11 +4956,12 @@ package Einfo is
-- Discriminant_Constraint (Elist21) -- Discriminant_Constraint (Elist21)
-- Corresponding_Remote_Type (Node22) -- Corresponding_Remote_Type (Node22)
-- Stored_Constraint (Elist23) -- Stored_Constraint (Elist23)
-- Abstract_Interfaces (Elist24) -- Abstract_Interfaces (Elist25)
-- Component_Alignment (special) (base type only) -- Component_Alignment (special) (base type only)
-- C_Pass_By_Copy (Flag125) (base type only) -- C_Pass_By_Copy (Flag125) (base type only)
-- Has_External_Tag_Rep_Clause (Flag110) -- Has_External_Tag_Rep_Clause (Flag110)
-- Has_Record_Rep_Clause (Flag65) (base type only) -- Has_Record_Rep_Clause (Flag65) (base type only)
-- Has_Static_Discriminants (Flag211) (subtype only)
-- Is_Class_Wide_Equivalent_Type (Flag35) -- Is_Class_Wide_Equivalent_Type (Flag35)
-- Is_Concurrent_Record_Type (Flag20) -- Is_Concurrent_Record_Type (Flag20)
-- Is_Constrained (Flag12) -- Is_Constrained (Flag12)
...@@ -4843,9 +4985,8 @@ package Einfo is ...@@ -4843,9 +4985,8 @@ package Einfo is
-- Discriminant_Constraint (Elist21) -- Discriminant_Constraint (Elist21)
-- Private_View (Node22) -- Private_View (Node22)
-- Stored_Constraint (Elist23) -- Stored_Constraint (Elist23)
-- Abstract_Interfaces (Elist24) -- Abstract_Interfaces (Elist25)
-- Has_Completion (Flag26) -- Has_Completion (Flag26)
-- Has_Completion_In_Body (Flag71)
-- Has_Record_Rep_Clause (Flag65) (base type only) -- Has_Record_Rep_Clause (Flag65) (base type only)
-- Has_External_Tag_Rep_Clause (Flag110) -- Has_External_Tag_Rep_Clause (Flag110)
-- Is_Concurrent_Record_Type (Flag20) -- Is_Concurrent_Record_Type (Flag20)
...@@ -4859,6 +5000,9 @@ package Einfo is ...@@ -4859,6 +5000,9 @@ package Einfo is
-- First_Tag_Component (synth) -- First_Tag_Component (synth)
-- (plus type attributes) -- (plus type attributes)
-- E_Return_Statement
-- Return_Applies_To (Node8)
-- E_Signed_Integer_Type -- E_Signed_Integer_Type
-- E_Signed_Integer_Subtype -- E_Signed_Integer_Subtype
-- Scalar_Range (Node20) -- Scalar_Range (Node20)
...@@ -4893,6 +5037,7 @@ package Einfo is ...@@ -4893,6 +5037,7 @@ package Einfo is
-- E_Subprogram_Type -- E_Subprogram_Type
-- Directly_Designated_Type (Node20) -- Directly_Designated_Type (Node20)
-- First_Formal (synth) -- First_Formal (synth)
-- First_Formal_With_Extras (synth)
-- Number_Formals (synth) -- Number_Formals (synth)
-- Function_Returns_With_DSP (Flag169) -- Function_Returns_With_DSP (Flag169)
-- (plus type attributes) -- (plus type attributes)
...@@ -4912,7 +5057,7 @@ package Einfo is ...@@ -4912,7 +5057,7 @@ package Einfo is
-- Scope_Depth_Value (Uint22) -- Scope_Depth_Value (Uint22)
-- Scope_Depth (synth) -- Scope_Depth (synth)
-- Stored_Constraint (Elist23) -- Stored_Constraint (Elist23)
-- Task_Body_Procedure (Node24) -- Task_Body_Procedure (Node25)
-- Delay_Cleanups (Flag114) -- Delay_Cleanups (Flag114)
-- Has_Master_Entity (Flag21) -- Has_Master_Entity (Flag21)
-- Has_Storage_Size_Clause (Flag23) (base type only) -- Has_Storage_Size_Clause (Flag23) (base type only)
...@@ -4933,6 +5078,7 @@ package Einfo is ...@@ -4933,6 +5078,7 @@ package Einfo is
-- Actual_Subtype (Node17) -- Actual_Subtype (Node17)
-- Renamed_Object (Node18) -- Renamed_Object (Node18)
-- Size_Check_Code (Node19) -- Size_Check_Code (Node19)
-- Last_Assignment (Node20)
-- Interface_Name (Node21) -- Interface_Name (Node21)
-- Shared_Var_Assign_Proc (Node22) -- Shared_Var_Assign_Proc (Node22)
-- Extra_Constrained (Node23) -- Extra_Constrained (Node23)
...@@ -4941,6 +5087,7 @@ package Einfo is ...@@ -4941,6 +5087,7 @@ package Einfo is
-- Has_Biased_Representation (Flag139) -- Has_Biased_Representation (Flag139)
-- Has_Size_Clause (Flag29) -- Has_Size_Clause (Flag29)
-- Has_Volatile_Components (Flag87) -- Has_Volatile_Components (Flag87)
-- In_Private_Part (Flag45)
-- Is_Atomic (Flag85) -- Is_Atomic (Flag85)
-- Is_Eliminated (Flag124) -- Is_Eliminated (Flag124)
-- Is_Shared_Passive (Flag60) -- Is_Shared_Passive (Flag60)
...@@ -4948,6 +5095,7 @@ package Einfo is ...@@ -4948,6 +5095,7 @@ package Einfo is
-- Is_Volatile (Flag16) -- Is_Volatile (Flag16)
-- Never_Set_In_Source (Flag115) -- Never_Set_In_Source (Flag115)
-- Treat_As_Volatile (Flag41) -- Treat_As_Volatile (Flag41)
-- Is_Return_Object (Flag209)
-- Address_Clause (synth) -- Address_Clause (synth)
-- Alignment_Clause (synth) -- Alignment_Clause (synth)
-- Constant_Value (synth) -- Constant_Value (synth)
...@@ -5239,6 +5387,7 @@ package Einfo is ...@@ -5239,6 +5387,7 @@ package Einfo is
function Discriminant_Constraint (Id : E) return L; function Discriminant_Constraint (Id : E) return L;
function Discriminant_Default_Value (Id : E) return N; function Discriminant_Default_Value (Id : E) return N;
function Discriminant_Number (Id : E) return U; function Discriminant_Number (Id : E) return U;
function Elaborate_Body_Desirable (Id : E) return B;
function Elaboration_Entity (Id : E) return E; function Elaboration_Entity (Id : E) return E;
function Elaboration_Entity_Required (Id : E) return B; function Elaboration_Entity_Required (Id : E) return B;
function Enclosing_Scope (Id : E) return E; function Enclosing_Scope (Id : E) return E;
...@@ -5260,6 +5409,7 @@ package Einfo is ...@@ -5260,6 +5409,7 @@ package Einfo is
function Extra_Accessibility (Id : E) return E; function Extra_Accessibility (Id : E) return E;
function Extra_Constrained (Id : E) return E; function Extra_Constrained (Id : E) return E;
function Extra_Formal (Id : E) return E; function Extra_Formal (Id : E) return E;
function Extra_Formals (Id : E) return E;
function Finalization_Chain_Entity (Id : E) return E; function Finalization_Chain_Entity (Id : E) return E;
function Finalize_Storage_Only (Id : E) return B; function Finalize_Storage_Only (Id : E) return B;
function First_Entity (Id : E) return E; function First_Entity (Id : E) return E;
...@@ -5326,6 +5476,7 @@ package Einfo is ...@@ -5326,6 +5476,7 @@ package Einfo is
function Has_Specified_Stream_Output (Id : E) return B; function Has_Specified_Stream_Output (Id : E) return B;
function Has_Specified_Stream_Read (Id : E) return B; function Has_Specified_Stream_Read (Id : E) return B;
function Has_Specified_Stream_Write (Id : E) return B; function Has_Specified_Stream_Write (Id : E) return B;
function Has_Static_Discriminants (Id : E) return B;
function Has_Storage_Size_Clause (Id : E) return B; function Has_Storage_Size_Clause (Id : E) return B;
function Has_Stream_Size_Clause (Id : E) return B; function Has_Stream_Size_Clause (Id : E) return B;
function Has_Subprogram_Descriptor (Id : E) return B; function Has_Subprogram_Descriptor (Id : E) return B;
...@@ -5345,7 +5496,7 @@ package Einfo is ...@@ -5345,7 +5496,7 @@ package Einfo is
function Is_Abstract (Id : E) return B; function Is_Abstract (Id : E) return B;
function Is_Local_Anonymous_Access (Id : E) return B; function Is_Local_Anonymous_Access (Id : E) return B;
function Is_Access_Constant (Id : E) return B; function Is_Access_Constant (Id : E) return B;
function Is_Ada_2005 (Id : E) return B; function Is_Ada_2005_Only (Id : E) return B;
function Is_Aliased (Id : E) return B; function Is_Aliased (Id : E) return B;
function Is_Asynchronous (Id : E) return B; function Is_Asynchronous (Id : E) return B;
function Is_Atomic (Id : E) return B; function Is_Atomic (Id : E) return B;
...@@ -5408,6 +5559,7 @@ package Einfo is ...@@ -5408,6 +5559,7 @@ package Einfo is
function Is_Remote_Call_Interface (Id : E) return B; function Is_Remote_Call_Interface (Id : E) return B;
function Is_Remote_Types (Id : E) return B; function Is_Remote_Types (Id : E) return B;
function Is_Renaming_Of_Object (Id : E) return B; function Is_Renaming_Of_Object (Id : E) return B;
function Is_Return_Object (Id : E) return B;
function Is_Shared_Passive (Id : E) return B; function Is_Shared_Passive (Id : E) return B;
function Is_Statically_Allocated (Id : E) return B; function Is_Statically_Allocated (Id : E) return B;
function Is_Synchronized_Interface (Id : E) return B; function Is_Synchronized_Interface (Id : E) return B;
...@@ -5421,21 +5573,26 @@ package Einfo is ...@@ -5421,21 +5573,26 @@ package Einfo is
function Is_VMS_Exception (Id : E) return B; function Is_VMS_Exception (Id : E) return B;
function Is_Valued_Procedure (Id : E) return B; function Is_Valued_Procedure (Id : E) return B;
function Is_Visible_Child_Unit (Id : E) return B; function Is_Visible_Child_Unit (Id : E) return B;
function Is_Visible_Formal (Id : E) return B;
function Is_Volatile (Id : E) return B; function Is_Volatile (Id : E) return B;
function Itype_Printed (Id : E) return B; function Itype_Printed (Id : E) return B;
function Kill_Elaboration_Checks (Id : E) return B; function Kill_Elaboration_Checks (Id : E) return B;
function Kill_Range_Checks (Id : E) return B; function Kill_Range_Checks (Id : E) return B;
function Kill_Tag_Checks (Id : E) return B; function Kill_Tag_Checks (Id : E) return B;
function Known_To_Have_Preelab_Init (Id : E) return B;
function Last_Assignment (Id : E) return N;
function Last_Entity (Id : E) return E; function Last_Entity (Id : E) return E;
function Limited_View (Id : E) return E; function Limited_View (Id : E) return E;
function Lit_Indexes (Id : E) return E; function Lit_Indexes (Id : E) return E;
function Lit_Strings (Id : E) return E; function Lit_Strings (Id : E) return E;
function Low_Bound_Known (Id : E) return B;
function Machine_Radix_10 (Id : E) return B; function Machine_Radix_10 (Id : E) return B;
function Master_Id (Id : E) return E; function Master_Id (Id : E) return E;
function Materialize_Entity (Id : E) return B; function Materialize_Entity (Id : E) return B;
function Mechanism (Id : E) return M; function Mechanism (Id : E) return M;
function Modulus (Id : E) return U; function Modulus (Id : E) return U;
function Must_Be_On_Byte_Boundary (Id : E) return B; function Must_Be_On_Byte_Boundary (Id : E) return B;
function Must_Have_Preelab_Init (Id : E) return B;
function Needs_Debug_Info (Id : E) return B; function Needs_Debug_Info (Id : E) return B;
function Needs_No_Actuals (Id : E) return B; function Needs_No_Actuals (Id : E) return B;
function Never_Set_In_Source (Id : E) return B; function Never_Set_In_Source (Id : E) return B;
...@@ -5478,6 +5635,7 @@ package Einfo is ...@@ -5478,6 +5635,7 @@ package Einfo is
function Renamed_Object (Id : E) return N; function Renamed_Object (Id : E) return N;
function Renaming_Map (Id : E) return U; function Renaming_Map (Id : E) return U;
function Return_Present (Id : E) return B; function Return_Present (Id : E) return B;
function Return_Applies_To (Id : E) return N;
function Returns_By_Ref (Id : E) return B; function Returns_By_Ref (Id : E) return B;
function Reverse_Bit_Order (Id : E) return B; function Reverse_Bit_Order (Id : E) return B;
function Scalar_Range (Id : E) return N; function Scalar_Range (Id : E) return N;
...@@ -5537,12 +5695,14 @@ package Einfo is ...@@ -5537,12 +5695,14 @@ package Einfo is
function Is_Fixed_Point_Type (Id : E) return B; function Is_Fixed_Point_Type (Id : E) return B;
function Is_Floating_Point_Type (Id : E) return B; function Is_Floating_Point_Type (Id : E) return B;
function Is_Formal (Id : E) return B; function Is_Formal (Id : E) return B;
function Is_Formal_Object (Id : E) return B;
function Is_Formal_Subprogram (Id : E) return B; function Is_Formal_Subprogram (Id : E) return B;
function Is_Generic_Actual_Type (Id : E) return B; function Is_Generic_Actual_Type (Id : E) return B;
function Is_Generic_Unit (Id : E) return B; function Is_Generic_Unit (Id : E) return B;
function Is_Generic_Type (Id : E) return B; function Is_Generic_Type (Id : E) return B;
function Is_Generic_Subprogram (Id : E) return B; function Is_Generic_Subprogram (Id : E) return B;
function Is_Incomplete_Or_Private_Type (Id : E) return B; function Is_Incomplete_Or_Private_Type (Id : E) return B;
function Is_Incomplete_Type (Id : E) return B;
function Is_Integer_Type (Id : E) return B; function Is_Integer_Type (Id : E) return B;
function Is_Limited_Record (Id : E) return B; function Is_Limited_Record (Id : E) return B;
function Is_Modular_Integer_Type (Id : E) return B; function Is_Modular_Integer_Type (Id : E) return B;
...@@ -5580,6 +5740,7 @@ package Einfo is ...@@ -5580,6 +5740,7 @@ package Einfo is
function First_Component (Id : E) return E; function First_Component (Id : E) return E;
function First_Discriminant (Id : E) return E; function First_Discriminant (Id : E) return E;
function First_Formal (Id : E) return E; function First_Formal (Id : E) return E;
function First_Formal_With_Extras (Id : E) return E;
function First_Stored_Discriminant (Id : E) return E; function First_Stored_Discriminant (Id : E) return E;
function First_Subtype (Id : E) return E; function First_Subtype (Id : E) return E;
function Has_Attach_Handler (Id : E) return B; function Has_Attach_Handler (Id : E) return B;
...@@ -5599,7 +5760,7 @@ package Einfo is ...@@ -5599,7 +5760,7 @@ package Einfo is
function Is_Package_Or_Generic_Package (Id : E) return B; function Is_Package_Or_Generic_Package (Id : E) return B;
function Is_Protected_Private (Id : E) return B; function Is_Protected_Private (Id : E) return B;
function Is_Protected_Record_Type (Id : E) return B; function Is_Protected_Record_Type (Id : E) return B;
function Is_Return_By_Reference_Type (Id : E) return B; function Is_Inherently_Limited_Type (Id : E) return B;
function Is_String_Type (Id : E) return B; function Is_String_Type (Id : E) return B;
function Is_Task_Record_Type (Id : E) return B; function Is_Task_Record_Type (Id : E) return B;
function Is_Wrapper_Package (Id : E) return B; function Is_Wrapper_Package (Id : E) return B;
...@@ -5741,6 +5902,7 @@ package Einfo is ...@@ -5741,6 +5902,7 @@ package Einfo is
procedure Set_Discriminant_Constraint (Id : E; V : L); procedure Set_Discriminant_Constraint (Id : E; V : L);
procedure Set_Discriminant_Default_Value (Id : E; V : N); procedure Set_Discriminant_Default_Value (Id : E; V : N);
procedure Set_Discriminant_Number (Id : E; V : U); procedure Set_Discriminant_Number (Id : E; V : U);
procedure Set_Elaborate_Body_Desirable (Id : E; V : B := True);
procedure Set_Elaboration_Entity (Id : E; V : E); procedure Set_Elaboration_Entity (Id : E; V : E);
procedure Set_Elaboration_Entity_Required (Id : E; V : B := True); procedure Set_Elaboration_Entity_Required (Id : E; V : B := True);
procedure Set_Enclosing_Scope (Id : E; V : E); procedure Set_Enclosing_Scope (Id : E; V : E);
...@@ -5761,6 +5923,7 @@ package Einfo is ...@@ -5761,6 +5923,7 @@ package Einfo is
procedure Set_Extra_Accessibility (Id : E; V : E); procedure Set_Extra_Accessibility (Id : E; V : E);
procedure Set_Extra_Constrained (Id : E; V : E); procedure Set_Extra_Constrained (Id : E; V : E);
procedure Set_Extra_Formal (Id : E; V : E); procedure Set_Extra_Formal (Id : E; V : E);
procedure Set_Extra_Formals (Id : E; V : E);
procedure Set_Finalization_Chain_Entity (Id : E; V : E); procedure Set_Finalization_Chain_Entity (Id : E; V : E);
procedure Set_Finalize_Storage_Only (Id : E; V : B := True); procedure Set_Finalize_Storage_Only (Id : E; V : B := True);
procedure Set_First_Entity (Id : E; V : E); procedure Set_First_Entity (Id : E; V : E);
...@@ -5827,6 +5990,7 @@ package Einfo is ...@@ -5827,6 +5990,7 @@ package Einfo is
procedure Set_Has_Specified_Stream_Output (Id : E; V : B := True); procedure Set_Has_Specified_Stream_Output (Id : E; V : B := True);
procedure Set_Has_Specified_Stream_Read (Id : E; V : B := True); procedure Set_Has_Specified_Stream_Read (Id : E; V : B := True);
procedure Set_Has_Specified_Stream_Write (Id : E; V : B := True); procedure Set_Has_Specified_Stream_Write (Id : E; V : B := True);
procedure Set_Has_Static_Discriminants (Id : E; V : B := True);
procedure Set_Has_Storage_Size_Clause (Id : E; V : B := True); procedure Set_Has_Storage_Size_Clause (Id : E; V : B := True);
procedure Set_Has_Stream_Size_Clause (Id : E; V : B := True); procedure Set_Has_Stream_Size_Clause (Id : E; V : B := True);
procedure Set_Has_Subprogram_Descriptor (Id : E; V : B := True); procedure Set_Has_Subprogram_Descriptor (Id : E; V : B := True);
...@@ -5846,7 +6010,7 @@ package Einfo is ...@@ -5846,7 +6010,7 @@ package Einfo is
procedure Set_Is_Abstract (Id : E; V : B := True); procedure Set_Is_Abstract (Id : E; V : B := True);
procedure Set_Is_Local_Anonymous_Access (Id : E; V : B := True); procedure Set_Is_Local_Anonymous_Access (Id : E; V : B := True);
procedure Set_Is_Access_Constant (Id : E; V : B := True); procedure Set_Is_Access_Constant (Id : E; V : B := True);
procedure Set_Is_Ada_2005 (Id : E; V : B := True); procedure Set_Is_Ada_2005_Only (Id : E; V : B := True);
procedure Set_Is_Aliased (Id : E; V : B := True); procedure Set_Is_Aliased (Id : E; V : B := True);
procedure Set_Is_Asynchronous (Id : E; V : B := True); procedure Set_Is_Asynchronous (Id : E; V : B := True);
procedure Set_Is_Atomic (Id : E; V : B := True); procedure Set_Is_Atomic (Id : E; V : B := True);
...@@ -5915,6 +6079,7 @@ package Einfo is ...@@ -5915,6 +6079,7 @@ package Einfo is
procedure Set_Is_Remote_Call_Interface (Id : E; V : B := True); procedure Set_Is_Remote_Call_Interface (Id : E; V : B := True);
procedure Set_Is_Remote_Types (Id : E; V : B := True); procedure Set_Is_Remote_Types (Id : E; V : B := True);
procedure Set_Is_Renaming_Of_Object (Id : E; V : B := True); procedure Set_Is_Renaming_Of_Object (Id : E; V : B := True);
procedure Set_Is_Return_Object (Id : E; V : B := True);
procedure Set_Is_Shared_Passive (Id : E; V : B := True); procedure Set_Is_Shared_Passive (Id : E; V : B := True);
procedure Set_Is_Statically_Allocated (Id : E; V : B := True); procedure Set_Is_Statically_Allocated (Id : E; V : B := True);
procedure Set_Is_Synchronized_Interface (Id : E; V : B := True); procedure Set_Is_Synchronized_Interface (Id : E; V : B := True);
...@@ -5928,21 +6093,26 @@ package Einfo is ...@@ -5928,21 +6093,26 @@ package Einfo is
procedure Set_Is_VMS_Exception (Id : E; V : B := True); procedure Set_Is_VMS_Exception (Id : E; V : B := True);
procedure Set_Is_Valued_Procedure (Id : E; V : B := True); procedure Set_Is_Valued_Procedure (Id : E; V : B := True);
procedure Set_Is_Visible_Child_Unit (Id : E; V : B := True); procedure Set_Is_Visible_Child_Unit (Id : E; V : B := True);
procedure Set_Is_Visible_Formal (Id : E; V : B := True);
procedure Set_Is_Volatile (Id : E; V : B := True); procedure Set_Is_Volatile (Id : E; V : B := True);
procedure Set_Itype_Printed (Id : E; V : B := True); procedure Set_Itype_Printed (Id : E; V : B := True);
procedure Set_Kill_Elaboration_Checks (Id : E; V : B := True); procedure Set_Kill_Elaboration_Checks (Id : E; V : B := True);
procedure Set_Kill_Range_Checks (Id : E; V : B := True); procedure Set_Kill_Range_Checks (Id : E; V : B := True);
procedure Set_Kill_Tag_Checks (Id : E; V : B := True); procedure Set_Kill_Tag_Checks (Id : E; V : B := True);
procedure Set_Known_To_Have_Preelab_Init (Id : E; V : B := True);
procedure Set_Last_Assignment (Id : E; V : N);
procedure Set_Last_Entity (Id : E; V : E); procedure Set_Last_Entity (Id : E; V : E);
procedure Set_Limited_View (Id : E; V : E); procedure Set_Limited_View (Id : E; V : E);
procedure Set_Lit_Indexes (Id : E; V : E); procedure Set_Lit_Indexes (Id : E; V : E);
procedure Set_Lit_Strings (Id : E; V : E); procedure Set_Lit_Strings (Id : E; V : E);
procedure Set_Low_Bound_Known (Id : E; V : B := True);
procedure Set_Machine_Radix_10 (Id : E; V : B := True); procedure Set_Machine_Radix_10 (Id : E; V : B := True);
procedure Set_Master_Id (Id : E; V : E); procedure Set_Master_Id (Id : E; V : E);
procedure Set_Materialize_Entity (Id : E; V : B := True); procedure Set_Materialize_Entity (Id : E; V : B := True);
procedure Set_Mechanism (Id : E; V : M); procedure Set_Mechanism (Id : E; V : M);
procedure Set_Modulus (Id : E; V : U); procedure Set_Modulus (Id : E; V : U);
procedure Set_Must_Be_On_Byte_Boundary (Id : E; V : B := True); procedure Set_Must_Be_On_Byte_Boundary (Id : E; V : B := True);
procedure Set_Must_Have_Preelab_Init (Id : E; V : B := True);
procedure Set_Needs_Debug_Info (Id : E; V : B := True); procedure Set_Needs_Debug_Info (Id : E; V : B := True);
procedure Set_Needs_No_Actuals (Id : E; V : B := True); procedure Set_Needs_No_Actuals (Id : E; V : B := True);
procedure Set_Never_Set_In_Source (Id : E; V : B := True); procedure Set_Never_Set_In_Source (Id : E; V : B := True);
...@@ -5985,6 +6155,7 @@ package Einfo is ...@@ -5985,6 +6155,7 @@ package Einfo is
procedure Set_Renamed_Object (Id : E; V : N); procedure Set_Renamed_Object (Id : E; V : N);
procedure Set_Renaming_Map (Id : E; V : U); procedure Set_Renaming_Map (Id : E; V : U);
procedure Set_Return_Present (Id : E; V : B := True); procedure Set_Return_Present (Id : E; V : B := True);
procedure Set_Return_Applies_To (Id : E; V : N);
procedure Set_Returns_By_Ref (Id : E; V : B := True); procedure Set_Returns_By_Ref (Id : E; V : B := True);
procedure Set_Reverse_Bit_Order (Id : E; V : B := True); procedure Set_Reverse_Bit_Order (Id : E; V : B := True);
procedure Set_Scalar_Range (Id : E; V : N); procedure Set_Scalar_Range (Id : E; V : N);
...@@ -6228,6 +6399,7 @@ package Einfo is ...@@ -6228,6 +6399,7 @@ package Einfo is
procedure Write_Field25_Name (Id : Entity_Id); procedure Write_Field25_Name (Id : Entity_Id);
procedure Write_Field26_Name (Id : Entity_Id); procedure Write_Field26_Name (Id : Entity_Id);
procedure Write_Field27_Name (Id : Entity_Id); procedure Write_Field27_Name (Id : Entity_Id);
procedure Write_Field28_Name (Id : Entity_Id);
-- These routines are used to output a nice symbolic name for the given -- These routines are used to output a nice symbolic name for the given
-- field, depending on the Ekind. No blanks or end of lines are output, -- field, depending on the Ekind. No blanks or end of lines are output,
-- just the characters of the field name. -- just the characters of the field name.
...@@ -6297,6 +6469,7 @@ package Einfo is ...@@ -6297,6 +6469,7 @@ package Einfo is
pragma Inline (Discriminant_Constraint); pragma Inline (Discriminant_Constraint);
pragma Inline (Discriminant_Default_Value); pragma Inline (Discriminant_Default_Value);
pragma Inline (Discriminant_Number); pragma Inline (Discriminant_Number);
pragma Inline (Elaborate_Body_Desirable);
pragma Inline (Elaboration_Entity); pragma Inline (Elaboration_Entity);
pragma Inline (Elaboration_Entity_Required); pragma Inline (Elaboration_Entity_Required);
pragma Inline (Enclosing_Scope); pragma Inline (Enclosing_Scope);
...@@ -6318,6 +6491,7 @@ package Einfo is ...@@ -6318,6 +6491,7 @@ package Einfo is
pragma Inline (Extra_Accessibility); pragma Inline (Extra_Accessibility);
pragma Inline (Extra_Constrained); pragma Inline (Extra_Constrained);
pragma Inline (Extra_Formal); pragma Inline (Extra_Formal);
pragma Inline (Extra_Formals);
pragma Inline (Finalization_Chain_Entity); pragma Inline (Finalization_Chain_Entity);
pragma Inline (First_Entity); pragma Inline (First_Entity);
pragma Inline (First_Index); pragma Inline (First_Index);
...@@ -6383,6 +6557,7 @@ package Einfo is ...@@ -6383,6 +6557,7 @@ package Einfo is
pragma Inline (Has_Specified_Stream_Output); pragma Inline (Has_Specified_Stream_Output);
pragma Inline (Has_Specified_Stream_Read); pragma Inline (Has_Specified_Stream_Read);
pragma Inline (Has_Specified_Stream_Write); pragma Inline (Has_Specified_Stream_Write);
pragma Inline (Has_Static_Discriminants);
pragma Inline (Has_Storage_Size_Clause); pragma Inline (Has_Storage_Size_Clause);
pragma Inline (Has_Stream_Size_Clause); pragma Inline (Has_Stream_Size_Clause);
pragma Inline (Has_Subprogram_Descriptor); pragma Inline (Has_Subprogram_Descriptor);
...@@ -6402,7 +6577,7 @@ package Einfo is ...@@ -6402,7 +6577,7 @@ package Einfo is
pragma Inline (Is_Abstract); pragma Inline (Is_Abstract);
pragma Inline (Is_Local_Anonymous_Access); pragma Inline (Is_Local_Anonymous_Access);
pragma Inline (Is_Access_Constant); pragma Inline (Is_Access_Constant);
pragma Inline (Is_Ada_2005); pragma Inline (Is_Ada_2005_Only);
pragma Inline (Is_Access_Type); pragma Inline (Is_Access_Type);
pragma Inline (Is_Aliased); pragma Inline (Is_Aliased);
pragma Inline (Is_Array_Type); pragma Inline (Is_Array_Type);
...@@ -6444,6 +6619,7 @@ package Einfo is ...@@ -6444,6 +6619,7 @@ package Einfo is
pragma Inline (Is_Floating_Point_Type); pragma Inline (Is_Floating_Point_Type);
pragma Inline (Is_For_Access_Subtype); pragma Inline (Is_For_Access_Subtype);
pragma Inline (Is_Formal); pragma Inline (Is_Formal);
pragma Inline (Is_Formal_Object);
pragma Inline (Is_Formal_Subprogram); pragma Inline (Is_Formal_Subprogram);
pragma Inline (Is_Frozen); pragma Inline (Is_Frozen);
pragma Inline (Is_Generic_Actual_Type); pragma Inline (Is_Generic_Actual_Type);
...@@ -6456,6 +6632,7 @@ package Einfo is ...@@ -6456,6 +6632,7 @@ package Einfo is
pragma Inline (Is_Immediately_Visible); pragma Inline (Is_Immediately_Visible);
pragma Inline (Is_Imported); pragma Inline (Is_Imported);
pragma Inline (Is_Incomplete_Or_Private_Type); pragma Inline (Is_Incomplete_Or_Private_Type);
pragma Inline (Is_Incomplete_Type);
pragma Inline (Is_Inlined); pragma Inline (Is_Inlined);
pragma Inline (Is_Interface); pragma Inline (Is_Interface);
pragma Inline (Is_Instantiated); pragma Inline (Is_Instantiated);
...@@ -6501,6 +6678,7 @@ package Einfo is ...@@ -6501,6 +6678,7 @@ package Einfo is
pragma Inline (Is_Remote_Call_Interface); pragma Inline (Is_Remote_Call_Interface);
pragma Inline (Is_Remote_Types); pragma Inline (Is_Remote_Types);
pragma Inline (Is_Renaming_Of_Object); pragma Inline (Is_Renaming_Of_Object);
pragma Inline (Is_Return_Object);
pragma Inline (Is_Scalar_Type); pragma Inline (Is_Scalar_Type);
pragma Inline (Is_Shared_Passive); pragma Inline (Is_Shared_Passive);
pragma Inline (Is_Signed_Integer_Type); pragma Inline (Is_Signed_Integer_Type);
...@@ -6519,20 +6697,25 @@ package Einfo is ...@@ -6519,20 +6697,25 @@ package Einfo is
pragma Inline (Is_VMS_Exception); pragma Inline (Is_VMS_Exception);
pragma Inline (Is_Valued_Procedure); pragma Inline (Is_Valued_Procedure);
pragma Inline (Is_Visible_Child_Unit); pragma Inline (Is_Visible_Child_Unit);
pragma Inline (Is_Visible_Formal);
pragma Inline (Itype_Printed); pragma Inline (Itype_Printed);
pragma Inline (Kill_Elaboration_Checks); pragma Inline (Kill_Elaboration_Checks);
pragma Inline (Kill_Range_Checks); pragma Inline (Kill_Range_Checks);
pragma Inline (Kill_Tag_Checks); pragma Inline (Kill_Tag_Checks);
pragma Inline (Known_To_Have_Preelab_Init);
pragma Inline (Last_Assignment);
pragma Inline (Last_Entity); pragma Inline (Last_Entity);
pragma Inline (Limited_View); pragma Inline (Limited_View);
pragma Inline (Lit_Indexes); pragma Inline (Lit_Indexes);
pragma Inline (Lit_Strings); pragma Inline (Lit_Strings);
pragma Inline (Low_Bound_Known);
pragma Inline (Machine_Radix_10); pragma Inline (Machine_Radix_10);
pragma Inline (Master_Id); pragma Inline (Master_Id);
pragma Inline (Materialize_Entity); pragma Inline (Materialize_Entity);
pragma Inline (Mechanism); pragma Inline (Mechanism);
pragma Inline (Modulus); pragma Inline (Modulus);
pragma Inline (Must_Be_On_Byte_Boundary); pragma Inline (Must_Be_On_Byte_Boundary);
pragma Inline (Must_Have_Preelab_Init);
pragma Inline (Needs_Debug_Info); pragma Inline (Needs_Debug_Info);
pragma Inline (Needs_No_Actuals); pragma Inline (Needs_No_Actuals);
pragma Inline (Never_Set_In_Source); pragma Inline (Never_Set_In_Source);
...@@ -6578,6 +6761,7 @@ package Einfo is ...@@ -6578,6 +6761,7 @@ package Einfo is
pragma Inline (Renamed_Object); pragma Inline (Renamed_Object);
pragma Inline (Renaming_Map); pragma Inline (Renaming_Map);
pragma Inline (Return_Present); pragma Inline (Return_Present);
pragma Inline (Return_Applies_To);
pragma Inline (Returns_By_Ref); pragma Inline (Returns_By_Ref);
pragma Inline (Reverse_Bit_Order); pragma Inline (Reverse_Bit_Order);
pragma Inline (Scalar_Range); pragma Inline (Scalar_Range);
...@@ -6673,6 +6857,7 @@ package Einfo is ...@@ -6673,6 +6857,7 @@ package Einfo is
pragma Inline (Set_Discriminant_Constraint); pragma Inline (Set_Discriminant_Constraint);
pragma Inline (Set_Discriminant_Default_Value); pragma Inline (Set_Discriminant_Default_Value);
pragma Inline (Set_Discriminant_Number); pragma Inline (Set_Discriminant_Number);
pragma Inline (Set_Elaborate_Body_Desirable);
pragma Inline (Set_Elaboration_Entity); pragma Inline (Set_Elaboration_Entity);
pragma Inline (Set_Elaboration_Entity_Required); pragma Inline (Set_Elaboration_Entity_Required);
pragma Inline (Set_Enclosing_Scope); pragma Inline (Set_Enclosing_Scope);
...@@ -6692,6 +6877,7 @@ package Einfo is ...@@ -6692,6 +6877,7 @@ package Einfo is
pragma Inline (Set_Extra_Accessibility); pragma Inline (Set_Extra_Accessibility);
pragma Inline (Set_Extra_Constrained); pragma Inline (Set_Extra_Constrained);
pragma Inline (Set_Extra_Formal); pragma Inline (Set_Extra_Formal);
pragma Inline (Set_Extra_Formals);
pragma Inline (Set_Finalization_Chain_Entity); pragma Inline (Set_Finalization_Chain_Entity);
pragma Inline (Set_First_Entity); pragma Inline (Set_First_Entity);
pragma Inline (Set_First_Index); pragma Inline (Set_First_Index);
...@@ -6745,6 +6931,7 @@ package Einfo is ...@@ -6745,6 +6931,7 @@ package Einfo is
pragma Inline (Set_Has_Pragma_Pure); pragma Inline (Set_Has_Pragma_Pure);
pragma Inline (Set_Has_Pragma_Pure_Function); pragma Inline (Set_Has_Pragma_Pure_Function);
pragma Inline (Set_Has_Pragma_Unreferenced); pragma Inline (Set_Has_Pragma_Unreferenced);
pragma Inline (Set_Known_To_Have_Preelab_Init);
pragma Inline (Set_Has_Primitive_Operations); pragma Inline (Set_Has_Primitive_Operations);
pragma Inline (Set_Has_Private_Declaration); pragma Inline (Set_Has_Private_Declaration);
pragma Inline (Set_Has_Qualified_Name); pragma Inline (Set_Has_Qualified_Name);
...@@ -6757,6 +6944,7 @@ package Einfo is ...@@ -6757,6 +6944,7 @@ package Einfo is
pragma Inline (Set_Has_Specified_Stream_Output); pragma Inline (Set_Has_Specified_Stream_Output);
pragma Inline (Set_Has_Specified_Stream_Read); pragma Inline (Set_Has_Specified_Stream_Read);
pragma Inline (Set_Has_Specified_Stream_Write); pragma Inline (Set_Has_Specified_Stream_Write);
pragma Inline (Set_Has_Static_Discriminants);
pragma Inline (Set_Has_Storage_Size_Clause); pragma Inline (Set_Has_Storage_Size_Clause);
pragma Inline (Set_Has_Subprogram_Descriptor); pragma Inline (Set_Has_Subprogram_Descriptor);
pragma Inline (Set_Has_Task); pragma Inline (Set_Has_Task);
...@@ -6775,7 +6963,7 @@ package Einfo is ...@@ -6775,7 +6963,7 @@ package Einfo is
pragma Inline (Set_Is_Abstract); pragma Inline (Set_Is_Abstract);
pragma Inline (Set_Is_Local_Anonymous_Access); pragma Inline (Set_Is_Local_Anonymous_Access);
pragma Inline (Set_Is_Access_Constant); pragma Inline (Set_Is_Access_Constant);
pragma Inline (Set_Is_Ada_2005); pragma Inline (Set_Is_Ada_2005_Only);
pragma Inline (Set_Is_Aliased); pragma Inline (Set_Is_Aliased);
pragma Inline (Set_Is_Asynchronous); pragma Inline (Set_Is_Asynchronous);
pragma Inline (Set_Is_Atomic); pragma Inline (Set_Is_Atomic);
...@@ -6844,6 +7032,7 @@ package Einfo is ...@@ -6844,6 +7032,7 @@ package Einfo is
pragma Inline (Set_Is_Remote_Call_Interface); pragma Inline (Set_Is_Remote_Call_Interface);
pragma Inline (Set_Is_Remote_Types); pragma Inline (Set_Is_Remote_Types);
pragma Inline (Set_Is_Renaming_Of_Object); pragma Inline (Set_Is_Renaming_Of_Object);
pragma Inline (Set_Is_Return_Object);
pragma Inline (Set_Is_Shared_Passive); pragma Inline (Set_Is_Shared_Passive);
pragma Inline (Set_Is_Statically_Allocated); pragma Inline (Set_Is_Statically_Allocated);
pragma Inline (Set_Is_Synchronized_Interface); pragma Inline (Set_Is_Synchronized_Interface);
...@@ -6857,21 +7046,25 @@ package Einfo is ...@@ -6857,21 +7046,25 @@ package Einfo is
pragma Inline (Set_Is_VMS_Exception); pragma Inline (Set_Is_VMS_Exception);
pragma Inline (Set_Is_Valued_Procedure); pragma Inline (Set_Is_Valued_Procedure);
pragma Inline (Set_Is_Visible_Child_Unit); pragma Inline (Set_Is_Visible_Child_Unit);
pragma Inline (Set_Is_Visible_Formal);
pragma Inline (Set_Is_Volatile); pragma Inline (Set_Is_Volatile);
pragma Inline (Set_Itype_Printed); pragma Inline (Set_Itype_Printed);
pragma Inline (Set_Kill_Elaboration_Checks); pragma Inline (Set_Kill_Elaboration_Checks);
pragma Inline (Set_Kill_Range_Checks); pragma Inline (Set_Kill_Range_Checks);
pragma Inline (Set_Kill_Tag_Checks); pragma Inline (Set_Kill_Tag_Checks);
pragma Inline (Set_Last_Assignment);
pragma Inline (Set_Last_Entity); pragma Inline (Set_Last_Entity);
pragma Inline (Set_Limited_View); pragma Inline (Set_Limited_View);
pragma Inline (Set_Lit_Indexes); pragma Inline (Set_Lit_Indexes);
pragma Inline (Set_Lit_Strings); pragma Inline (Set_Lit_Strings);
pragma Inline (Set_Low_Bound_Known);
pragma Inline (Set_Machine_Radix_10); pragma Inline (Set_Machine_Radix_10);
pragma Inline (Set_Master_Id); pragma Inline (Set_Master_Id);
pragma Inline (Set_Materialize_Entity); pragma Inline (Set_Materialize_Entity);
pragma Inline (Set_Mechanism); pragma Inline (Set_Mechanism);
pragma Inline (Set_Modulus); pragma Inline (Set_Modulus);
pragma Inline (Set_Must_Be_On_Byte_Boundary); pragma Inline (Set_Must_Be_On_Byte_Boundary);
pragma Inline (Set_Must_Have_Preelab_Init);
pragma Inline (Set_Needs_Debug_Info); pragma Inline (Set_Needs_Debug_Info);
pragma Inline (Set_Needs_No_Actuals); pragma Inline (Set_Needs_No_Actuals);
pragma Inline (Set_Never_Set_In_Source); pragma Inline (Set_Never_Set_In_Source);
...@@ -6914,6 +7107,7 @@ package Einfo is ...@@ -6914,6 +7107,7 @@ package Einfo is
pragma Inline (Set_Renamed_Object); pragma Inline (Set_Renamed_Object);
pragma Inline (Set_Renaming_Map); pragma Inline (Set_Renaming_Map);
pragma Inline (Set_Return_Present); pragma Inline (Set_Return_Present);
pragma Inline (Set_Return_Applies_To);
pragma Inline (Set_Returns_By_Ref); pragma Inline (Set_Returns_By_Ref);
pragma Inline (Set_Reverse_Bit_Order); pragma Inline (Set_Reverse_Bit_Order);
pragma Inline (Set_Scalar_Range); pragma Inline (Set_Scalar_Range);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment