diff options
Diffstat (limited to 'gcc/ada/einfo.ads')
-rw-r--r-- | gcc/ada/einfo.ads | 56 |
1 files changed, 45 insertions, 11 deletions
diff --git a/gcc/ada/einfo.ads b/gcc/ada/einfo.ads index c0dda86ca66..c366e0274b3 100644 --- a/gcc/ada/einfo.ads +++ b/gcc/ada/einfo.ads @@ -391,7 +391,7 @@ package Einfo is -- that holds value of the Aft attribute for the type. -- Alias (Node18) --- Present in overloaded entities (literals, subprograms, entries) and +-- Present in overloadable entities (literals, subprograms, entries) and -- subprograms that cover a primitive operation of an abstract interface -- (that is, subprograms with the Interface_Alias attribute). In case of -- overloaded entities it points to the parent subprogram of a derived @@ -442,6 +442,11 @@ package Einfo is -- declaration, the associated_node_for_itype is the discriminant -- specification. For an access parameter it is the enclosing subprogram -- declaration. +-- +-- Itypes have no explicit declaration, and therefore are not attached to +-- the tree: their Parent field is always empty. The Associated_Node_For_ +-- Itype is the only way to determine the construct that leads to the +-- creation of a given itype entity. -- Associated_Storage_Pool (Node22) [root type only] -- Present in simple and general access type entities. References the @@ -1115,9 +1120,9 @@ package Einfo is -- or entry. Returns Empty if there are no extra formals. -- Extra_Accessibility (Node13) --- Present in formal parameters in the non-generic case if expansion is --- active. Normally Empty, but if a parameter is one for which a dynamic --- accessibility check is required, then an extra formal of type +-- Present in formal parameters in the non-generic case. Normally Empty, +-- but if expansion is active, and a parameter is one for which a +-- dynamic accessibility check is required, then an extra formal of type -- Natural is created (see description of field Extra_Formal), and the -- Extra_Accessibility field of the formal parameter points to the entity -- for this extra formal. Also present in variables when compiling @@ -1126,9 +1131,18 @@ package Einfo is -- must be retrieved through the entity designed by this field instead of -- being computed. +-- Extra_Accessibility_Of_Result (Node19) +-- Present in (non-generic) Function, Operator, and Subprogram_Type +-- entities. Normally Empty, but if expansion is active, and a function +-- is one for which "the accessibility level of the result ... determined +-- by the point of call" (AI05-0234) is needed, then an extra formal of +-- subtype Natural is created (see description of field Extra_Formal), +-- and the Extra_Accessibility_Of_Result field of the function points to +-- the entity for this extra formal. + -- Extra_Constrained (Node23) --- Present in formal parameters in the non-generic case if expansion is --- active. Normally Empty, but if a parameter is one for which a dynamic +-- Present in formal parameters in the non-generic case. Normally Empty, +-- but if expansion is active and a parameter is one for which a dynamic -- indication of its constrained status is required, then an extra formal -- of type Boolean is created (see description of field Extra_Formal), -- and the Extra_Constrained field of the formal parameter points to the @@ -2278,6 +2292,12 @@ package Einfo is -- Present in all entities. Set if entity is immediately visible, i.e. -- is defined in some currently open scope (RM 8.3(4)). +-- Is_Implementation_Defined (Flag254) +-- Present in all entities. Set if a pragma Implementation_Defined is +-- applied to the pragma. Used to mark all implementation defined +-- identifiers in standard library packages, and to implement the +-- restriction No_Implementation_Identifiers. + -- Is_Imported (Flag24) -- Present in all entities. Set if the entity is imported. For now we -- only allow the import of exceptions, functions, procedures, packages. @@ -2839,11 +2859,10 @@ package Einfo is -- 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 above comments between being present and being set +-- Present in all entities. Set True 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. -- Is_VMS_Exception (Flag133) -- Present in all entities. Set only for exception entities where the @@ -4791,6 +4810,7 @@ package Einfo is -- Is_Hidden (Flag57) -- Is_Hidden_Open_Scope (Flag171) -- Is_Immediately_Visible (Flag7) + -- Is_Implementation_Defined (Flag254) -- Is_Imported (Flag24) -- Is_Inlined (Flag11) -- Is_Internal (Flag17) @@ -5137,6 +5157,7 @@ package Einfo is -- Protection_Object (Node23) (protected kind) -- Contract (Node24) (for entry only) -- PPC_Wrapper (Node25) + -- Extra_Formals (Node28) -- Default_Expressions_Processed (Flag108) -- Entry_Accepted (Flag152) -- Is_AST_Entry (Flag132) (for entry only) @@ -5229,6 +5250,7 @@ package Einfo is -- First_Entity (Node17) -- Alias (Node18) (non-generic case only) -- Renamed_Entity (Node18) (generic case only) + -- Extra_Accessibility_Of_Result (Node19) (non-generic case only) -- Last_Entity (Node20) -- Interface_Name (Node21) -- Scope_Depth_Value (Uint22) @@ -5383,6 +5405,7 @@ package Einfo is -- E_Operator -- First_Entity (Node17) -- Alias (Node18) + -- Extra_Accessibility_Of_Result (Node19) -- Last_Entity (Node20) -- Overridden_Operation (Node26) -- Subprograms_For_Type (Node29) @@ -5670,10 +5693,13 @@ package Einfo is -- Corresponding_Protected_Entry (Node18) -- Last_Entity (Node20) -- Scope_Depth_Value (Uint22) + -- Extra_Formals (Node28) -- Scope_Depth (synth) -- E_Subprogram_Type + -- Extra_Accessibility_Of_Result (Node19) -- Directly_Designated_Type (Node20) + -- Extra_Formals (Node28) -- First_Formal (synth) -- First_Formal_With_Extras (synth) -- Last_Formal (synth) @@ -6060,6 +6086,7 @@ package Einfo is function Esize (Id : E) return U; function Exception_Code (Id : E) return U; function Extra_Accessibility (Id : E) return E; + function Extra_Accessibility_Of_Result (Id : E) return E; function Extra_Constrained (Id : E) return E; function Extra_Formal (Id : E) return E; function Extra_Formals (Id : E) return E; @@ -6206,6 +6233,7 @@ package Einfo is function Is_Hidden (Id : E) return B; function Is_Hidden_Open_Scope (Id : E) return B; function Is_Immediately_Visible (Id : E) return B; + function Is_Implementation_Defined (Id : E) return B; function Is_Imported (Id : E) return B; function Is_Inlined (Id : E) return B; function Is_Interface (Id : E) return B; @@ -6648,6 +6676,7 @@ package Einfo is procedure Set_Esize (Id : E; V : U); procedure Set_Exception_Code (Id : E; V : U); procedure Set_Extra_Accessibility (Id : E; V : E); + procedure Set_Extra_Accessibility_Of_Result (Id : E; V : E); procedure Set_Extra_Constrained (Id : E; V : E); procedure Set_Extra_Formal (Id : E; V : E); procedure Set_Extra_Formals (Id : E; V : E); @@ -6799,6 +6828,7 @@ package Einfo is procedure Set_Is_Hidden (Id : E; V : B := True); procedure Set_Is_Hidden_Open_Scope (Id : E; V : B := True); procedure Set_Is_Immediately_Visible (Id : E; V : B := True); + procedure Set_Is_Implementation_Defined (Id : E; V : B := True); procedure Set_Is_Imported (Id : E; V : B := True); procedure Set_Is_Inlined (Id : E; V : B := True); procedure Set_Is_Interface (Id : E; V : B := True); @@ -7351,6 +7381,7 @@ package Einfo is pragma Inline (Esize); pragma Inline (Exception_Code); pragma Inline (Extra_Accessibility); + pragma Inline (Extra_Accessibility_Of_Result); pragma Inline (Extra_Constrained); pragma Inline (Extra_Formal); pragma Inline (Extra_Formals); @@ -7523,6 +7554,7 @@ package Einfo is pragma Inline (Is_Hidden); pragma Inline (Is_Hidden_Open_Scope); pragma Inline (Is_Immediately_Visible); + pragma Inline (Is_Implementation_Defined); pragma Inline (Is_Imported); pragma Inline (Is_Incomplete_Or_Private_Type); pragma Inline (Is_Incomplete_Type); @@ -7795,6 +7827,7 @@ package Einfo is pragma Inline (Set_Esize); pragma Inline (Set_Exception_Code); pragma Inline (Set_Extra_Accessibility); + pragma Inline (Set_Extra_Accessibility_Of_Result); pragma Inline (Set_Extra_Constrained); pragma Inline (Set_Extra_Formal); pragma Inline (Set_Extra_Formals); @@ -7944,6 +7977,7 @@ package Einfo is pragma Inline (Set_Is_Hidden); pragma Inline (Set_Is_Hidden_Open_Scope); pragma Inline (Set_Is_Immediately_Visible); + pragma Inline (Set_Is_Implementation_Defined); pragma Inline (Set_Is_Imported); pragma Inline (Set_Is_Inlined); pragma Inline (Set_Is_Interface); |