summaryrefslogtreecommitdiffstats
path: root/gcc/ada/einfo.ads
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/einfo.ads')
-rw-r--r--gcc/ada/einfo.ads34
1 files changed, 33 insertions, 1 deletions
diff --git a/gcc/ada/einfo.ads b/gcc/ada/einfo.ads
index a8180e4c971..9548da438ff 100644
--- a/gcc/ada/einfo.ads
+++ b/gcc/ada/einfo.ads
@@ -2633,6 +2633,12 @@ package Einfo is
-- Applies to subprograms and subprogram types. Yields the number of
-- formals as a value of type Pos.
+-- Original_Access_Type (Node21)
+-- Present in access to subprogram types. Anonymous access to protected
+-- subprogram types are replaced by an occurrence of an internal access
+-- to subprogram type. This field links the replacement entity with the
+-- original entity.
+
-- Original_Array_Type (Node21)
-- Present in modular types and array types and subtypes. Set only
-- if the Is_Packed_Array_Type flag is set, indicating that the type
@@ -3113,7 +3119,11 @@ package Einfo is
-- The following three entity kinds are introduced by the corresponding
-- type definitions:
- -- E_Access_Type, E_General_Access_Type, E_Anonymous_Access_Type.
+ -- E_Access_Type,
+ -- E_General_Access_Type,
+ -- E_Anonymous_Access_Subprogram_Type,
+ -- E_Anonymous_Access_Protected_Subprogram_Type
+ -- E_Anonymous_Access_Type.
-- In addition, we define the kind E_Allocator_Type to label
-- allocators. This is because special resolution rules apply to this
@@ -3321,6 +3331,14 @@ package Einfo is
-- and a protected operation within, and have different compile-time
-- and run-time properties than other access to subprograms.
+ E_Anonymous_Access_Subprogram_Type,
+ -- An anonymous access to subprogram type, created by an access to
+ -- subprogram declaration.
+
+ E_Anonymous_Access_Protected_Subprogram_Type,
+ -- An anonymous access to protected subprogram type, created by an
+ -- access to subprogram declaration.
+
E_Anonymous_Access_Type,
-- An anonymous access type created by an access parameter or access
-- discriminant.
@@ -3542,6 +3560,8 @@ package Einfo is
-- E_General_Access_Type
-- E_Access_Subprogram_Type
-- E_Access_Protected_Subprogram_Type
+ -- E_Anonymous_Access_Subprogram_Type
+ -- E_Anonymous_Access_Protected_Subprogram_Type
E_Anonymous_Access_Type;
subtype Array_Kind is Entity_Kind range
@@ -3637,6 +3657,8 @@ package Einfo is
-- E_General_Access_Type
-- E_Access_Subprogram_Type
-- E_Access_Protected_Subprogram_Type
+ -- E_Anonymous_Access_Subprogram_Type
+ -- E_Anonymous_Access_Protected_Subprogram_Type
E_Anonymous_Access_Type;
subtype Enumeration_Kind is Entity_Kind range
@@ -3809,6 +3831,8 @@ package Einfo is
-- E_General_Access_Type
-- E_Access_Subprogram_Type,
-- E_Access_Protected_Subprogram_Type
+ -- E_Anonymous_Access_Subprogram_Type
+ -- E_Anonymous_Access_Protected_Subprogram_Type
-- E_Anonymous_Access_Type
-- E_Array_Type
-- E_Array_Subtype
@@ -3994,12 +4018,14 @@ package Einfo is
-- E_Access_Protected_Subprogram_Type
-- Equivalent_Type (Node18)
-- Directly_Designated_Type (Node20)
+ -- Original_Access_Type (Node21)
-- Needs_No_Actuals (Flag22)
-- (plus type attributes)
-- E_Access_Subprogram_Type
-- Equivalent_Type (Node18) (remote types only)
-- Directly_Designated_Type (Node20)
+ -- Original_Access_Type (Node21)
-- Needs_No_Actuals (Flag22)
-- (plus type attributes)
@@ -4025,6 +4051,8 @@ package Einfo is
-- Directly_Designated_Type (Node20)
-- (plus type attributes)
+ -- E_Anonymous_Access_Subprogram_Type
+ -- E_Anonymous_Access_Protected_Subprogram_Type
-- E_Anonymous_Access_Type
-- Storage_Size_Variable (Node15) ??? is this needed ???
-- Directly_Designated_Type (Node20)
@@ -5180,6 +5208,7 @@ package Einfo is
function Normalized_Position (Id : E) return U;
function Normalized_Position_Max (Id : E) return U;
function Object_Ref (Id : E) return E;
+ function Original_Access_Type (Id : E) return E;
function Original_Array_Type (Id : E) return E;
function Original_Record_Component (Id : E) return E;
function Packed_Array_Type (Id : E) return E;
@@ -5653,6 +5682,7 @@ package Einfo is
procedure Set_Normalized_Position (Id : E; V : U);
procedure Set_Normalized_Position_Max (Id : E; V : U);
procedure Set_Object_Ref (Id : E; V : E);
+ procedure Set_Original_Access_Type (Id : E; V : E);
procedure Set_Original_Array_Type (Id : E; V : E);
procedure Set_Original_Record_Component (Id : E; V : E);
procedure Set_Packed_Array_Type (Id : E; V : E);
@@ -6180,6 +6210,7 @@ package Einfo is
pragma Inline (Normalized_Position);
pragma Inline (Normalized_Position_Max);
pragma Inline (Object_Ref);
+ pragma Inline (Original_Access_Type);
pragma Inline (Original_Array_Type);
pragma Inline (Original_Record_Component);
pragma Inline (Packed_Array_Type);
@@ -6486,6 +6517,7 @@ package Einfo is
pragma Inline (Set_Normalized_Position);
pragma Inline (Set_Normalized_Position_Max);
pragma Inline (Set_Object_Ref);
+ pragma Inline (Set_Original_Access_Type);
pragma Inline (Set_Original_Array_Type);
pragma Inline (Set_Original_Record_Component);
pragma Inline (Set_Packed_Array_Type);
OpenPOWER on IntegriCloud