summaryrefslogtreecommitdiff
path: root/gcc/ada/sinfo.ads
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-15 15:54:14 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-15 15:54:14 +0000
commit4660e715aa628a0071e76853fda39cf8057c2c4e (patch)
tree826fcec0a5407caae82fabd04cb7e41ec79589fa /gcc/ada/sinfo.ads
parent90fd25c58b1661a5ad762daba6800b86eb95485e (diff)
downloadgcc-4660e715aa628a0071e76853fda39cf8057c2c4e.tar.gz
2005-03-08 Javier Miranda <miranda@adacore.com>
Robert Dewar <dewar@adacore.com> Thomas Quinot <quinot@adacore.com> Richard Kenner <kenner@vlsi1.ultra.nyu.edu> * atree.ads, atree.adb: Add support for Elist24 field * atree.h: Fix wrong definition of Field27 Add support for Elist16 field Add support for Elist24 field * einfo.ads, einfo.adb (Abstract_Interfaces, Set_Abstract_Interfaces): New subprograms. (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New subprograms. (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of entities rather than a single node. (Is_Interface, Set_Is_Interface): New subprogram (First_Tag_Component): New syntesized attribute (Next_Tag_Component): New synthesized attribute (Write_Entity_Flags): Upgraded to write Is_Interface (Write_Field24_Name): Upgraded to write Abstract_Interfaces (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias (Task_Body_Procedure): New subprogram to read this attribute. (Set_Task_Body_Procedure): New subprogram to set this attribute. (Has_Controlled_Component): Now applies to all entities. This is only a documentation change, since it always worked to apply this to other than composite types (yielding false), but now this is official. Update documentation on Must_Be_Byte_Aligned for new spec * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb, exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the uses of the Access_Disp_Table attribute to reference the first dispatch table associated with a tagged type. As part of the implementation of abstract interface types, Access_Disp_Table has been redefined to contain a list of dispatch tables (rather than a single dispatch table). Similarly, upgrade all the references to Tag_Component by the new attribute First_Tag_Component. (Find_Inherited_TSS): Moved to exp_tss. Clean up test in Expand_N_Object_Declaration for cases where we need to do a separate assignment of the initial value. (Expand_N_Object_Declaration): If the expression in the declaration of a tagged type is an aggregate, no need to generate an additional tag assignment. (Freeze_Type): Now a function that returns True if the N_Freeze_Entity is to be deleted. Bit packed array ops are only called if operands are known to be aligned. (Component_Equality): When returning an N_Raise_Program_Error statement, ensure that its Etype is set to Empty to avoid confusing GIGI (which expects that only expressions have a bona fide type). (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly determine the amount of data to be copied. * par.adb (P_Interface_Type_Definition): New subprogram that parses the new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345): INTERFACE_TYPE_DEFINITION ::= [limited | task | protected | synchronized] interface [AND interface_list] * par-ch3.adb (P_Type_Declaration): Modified to give support to interfaces. (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to interfaces. (P_Interface_Type_Definition): New subprogram that parses the new syntax rule of Ada 2005 interfaces (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error messages by the correct RENAMES (quotes removed). * sem_prag.adb: Upgrade all the references to Tag_Component by the new attribute First_Tag_Component. * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed (Interface_List, Set_Interface_List): New subprograms. (Interface_Present, Set_Interface_Present): New subprograms. (Limited_Present, Set_Limited_Present): Available also in derived type definition nodes. (Protected_Present, Set_Protected_Present): Available also in record type definition and derived type definition nodes. (Synchronized_Present, Set_Synchronized_Present): New subprograms. (Task_Present, Set_Task_Present): New subprogram. (Task_Body_Procedure): Removed. (Set_Task_Body_Procedure): Removed. These subprogram have been removed because the attribute Task_Body_Procedure has been moved to the corresponding task type or task subtype entity to leave a field free to store the list of interfaces implemented by a task (for AI-345) Add Expression field to N_Raise_Statement node for Ada 2005 AI-361 (Null_Exclusion_Present): Change to Flag11, to avoid conflict with expression flag Do_Range_Check (Exception_Junk): Change to Flag7 to accomodate above change (Box_Present, Default_Name, Specification, Set_Box_Present, Set_Default_Name, Set_Specification): Expand the expression "X in N_Formal_Subprogram_Declaration" into the corresponding two comparisons. Required to use the csinfo tool. * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where "with string" given. * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string expression given. * par-ch11.adb (P_Raise_Statement): Recognize with string expression in 2005 mode * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity attribute Task_Body_Procedure rather than the old semantic field that was available in the task_type_declaration node. * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal interface type definitions. (P_Formal_Derived_Type_Definition): Modified to handle the list of interfaces. * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a task type declaration. (P_Protected): Modified to handle the list of interfaces in a protected type declaration. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96489 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/sinfo.ads')
-rw-r--r--gcc/ada/sinfo.ads245
1 files changed, 163 insertions, 82 deletions
diff --git a/gcc/ada/sinfo.ads b/gcc/ada/sinfo.ads
index bfbbdf838e2..c7df4dbd8d3 100644
--- a/gcc/ada/sinfo.ads
+++ b/gcc/ada/sinfo.ads
@@ -897,7 +897,7 @@ package Sinfo is
-- Note: if the Is_Overloaded flag is set, then Etype points to
-- an essentially arbitrary choice from the possible set of types.
- -- Exception_Junk (Flag11-Sem)
+ -- Exception_Junk (Flag7-Sem)
-- This flag is set in a various nodes appearing in a statement
-- sequence to indicate that the corresponding node is an artifact
-- of the generated code for exception handling, and should be
@@ -1317,16 +1317,6 @@ package Sinfo is
-- is used for properly setting out of range values for use by pragmas
-- Initialize_Scalars and Normalize_Scalars.
- -- OK_For_Stream (Flag4-Sem)
- -- Present in N_Attribute_Definition clauses for stream attributes. If
- -- set, indicates that the attribute is permitted even though the type
- -- involved is a limited type. In the case of a protected type, the
- -- result is to stream all components (including discriminants) in
- -- lexical order. For other limited types, the effect is simply to
- -- use the corresponding stream routine for the full type. This flag
- -- is used for internally generated code, where the streaming of these
- -- types is required, even though not normally allowed by the language.
-
-- Original_Discriminant (Node2-Sem)
-- Present in identifiers. Used in references to discriminants that
-- appear in generic units. Because the names of the discriminants
@@ -1430,7 +1420,7 @@ package Sinfo is
-- be rounded to the nearest integer (breaking ties away from zero),
-- rather than truncated towards zero as usual. These rounded integer
-- operations are the result of expansion of rounded fixed-point
- -- divide, conersion and multiplication operations.
+ -- divide, conversion and multiplication operations.
-- Scope (Node3-Sem)
-- Present in defining identifiers, defining character literals and
@@ -1477,12 +1467,6 @@ package Sinfo is
-- target type entity for the unchecked conversion instantiation
-- which gigi must do size validation for.
- -- Task_Body_Procedure (Node2-Sem)
- -- Present in task type declaration nodes. Points to the entity for
- -- the task body procedure (as further described in Exp_Ch9, task
- -- bodies are expanded into procedures). A convenient function to
- -- retrieve this field is Sem_Util.Get_Task_Body_Procedure.
-
-- Then_Actions (List3-Sem)
-- This field is present in conditional expression nodes. During code
-- expansion we use the Insert_Actions procedure (in Exp_Util) to insert
@@ -1888,7 +1872,7 @@ package Sinfo is
-- ENUMERATION_TYPE_DEFINITION | INTEGER_TYPE_DEFINITION
-- | REAL_TYPE_DEFINITION | ARRAY_TYPE_DEFINITION
-- | RECORD_TYPE_DEFINITION | ACCESS_TYPE_DEFINITION
- -- | DERIVED_TYPE_DEFINITION
+ -- | DERIVED_TYPE_DEFINITION | INTERFACE_TYPE_DEFINITION
--------------------------------
-- 3.2.2 Subtype Declaration --
@@ -1903,10 +1887,10 @@ package Sinfo is
-- N_Subtype_Declaration
-- Sloc points to SUBTYPE
-- Defining_Identifier (Node1)
- -- Null_Exclusion_Present (Flag9) (set to False if not present)
+ -- Null_Exclusion_Present (Flag11)
-- Subtype_Indication (Node5)
-- Generic_Parent_Type (Node4-Sem) (set for an actual derived type).
- -- Exception_Junk (Flag11-Sem)
+ -- Exception_Junk (Flag7-Sem)
-------------------------------
-- 3.2.2 Subtype Indication --
@@ -2015,7 +1999,7 @@ package Sinfo is
-- Defining_Identifier (Node1)
-- Aliased_Present (Flag4) set if ALIASED appears
-- Constant_Present (Flag17) set if CONSTANT appears
- -- Null_Exclusion_Present (Flag9) (set to False if not present)
+ -- Null_Exclusion_Present (Flag11)
-- Object_Definition (Node4) subtype indication/array type definition
-- Expression (Node3) (set to Empty if not present)
-- Handler_List_Entry (Node2-Sem)
@@ -2024,7 +2008,7 @@ package Sinfo is
-- Prev_Ids (Flag6) (set to False if no previous identifiers in list)
-- No_Initialization (Flag13-Sem)
-- Assignment_OK (Flag15-Sem)
- -- Exception_Junk (Flag11-Sem)
+ -- Exception_Junk (Flag7-Sem)
-- Delay_Finalize_Attach (Flag14-Sem)
-- Is_Subprogram_Descriptor (Flag16-Sem)
@@ -2063,7 +2047,7 @@ package Sinfo is
-- DERIVED_TYPE_DEFINITION ::=
-- [abstract] new [NULL_EXCLUSION] parent_SUBTYPE_INDICATION
- -- [RECORD_EXTENSION_PART]
+ -- [[and INTERFACE_LIST] RECORD_EXTENSION_PART]
-- Note: ABSTRACT, record extension part not permitted in Ada 83 mode
@@ -2072,9 +2056,20 @@ package Sinfo is
-- N_Derived_Type_Definition
-- Sloc points to NEW
-- Abstract_Present (Flag4)
- -- Null_Exclusion_Present (Flag9) (set to False if not present)
+ -- Null_Exclusion_Present (Flag11) (set to False if not present)
-- Subtype_Indication (Node5)
-- Record_Extension_Part (Node3) (set to Empty if not present)
+ -- Limited_Present (Flag17) set in interfaces
+ -- Task_Present (Flag5) set in task interfaces
+ -- Protected_Present (Flag6) set in protected interfaces
+ -- Synchronized_Present (Flag7) set in interfaces
+ -- Interface_List (List2) (set to No_List if none)
+ -- Interface_Present (Flag16) set in abstract interfaces
+
+ -- Note: The attributes Limited_Present, Task_Present, Protected_Present
+ -- Synchronized_Present, Interface_List and Interface_Present are
+ -- used for abstract interfaces (see comment in the definition
+ -- of INTERFACE_TYPE_DEFINITION)
---------------------------
-- 3.5 Range Constraint --
@@ -2364,7 +2359,7 @@ package Sinfo is
-- N_Component_Definition
-- Sloc points to ALIASED, ACCESS or to first token of subtype mark
-- Aliased_Present (Flag4)
- -- Null_Exclusion_Present (Flag9) (set to False if not present)
+ -- Null_Exclusion_Present (Flag11)
-- Subtype_Indication (Node5) (set to Empty if not present)
-- Access_Definition (Node3) (set to Empty if not present)
@@ -2437,9 +2432,8 @@ package Sinfo is
-- N_Discriminant_Specification
-- Sloc points to first identifier
-- Defining_Identifier (Node1)
- -- Null_Exclusion_Present (Flag9) (set to False if not present)
- -- Discriminant_Type (Node5) subtype mark or
- -- access parameter definition
+ -- Null_Exclusion_Present (Flag11)
+ -- Discriminant_Type (Node5) subtype mark or access parameter definition
-- Expression (Node3) (set to Empty if no default expression)
-- More_Ids (Flag5) (set to False if no more identifiers in list)
-- Prev_Ids (Flag6) (set to False if no previous identifiers in list)
@@ -2525,6 +2519,16 @@ package Sinfo is
-- Limited_Present (Flag17)
-- Component_List (Node1) empty in null record case
-- Null_Present (Flag13) set in null record case
+ -- Task_Present (Flag5) set in task interfaces
+ -- Protected_Present (Flag6) set in protected interfaces
+ -- Synchronized_Present (Flag7) set in interfaces
+ -- Interface_Present (Flag16) set in abstract interfaces
+ -- Interface_List (List2) (set to No_List if none)
+
+ -- Note: The attributes Task_Present, Protected_Present, Synchronized
+ -- _Present, Interface_List and Interface_Present are
+ -- used for abstract interfaces (see comment in the definition
+ -- of INTERFACE_TYPE_DEFINITION)
-------------------------
-- 3.8 Component List --
@@ -2651,6 +2655,19 @@ package Sinfo is
-- Note: record extension parts are not permitted in Ada 83 mode
+ --------------------------------------
+ -- 3.9.4 Interface Type Definition --
+ --------------------------------------
+
+ -- INTERFACE_TYPE_DEFINITION ::=
+ -- [limited | task | protected | synchronized]
+ -- interface [interface_list]
+
+ -- Note: Interfaces are implemented with N_Record_Definition and
+ -- N_Derived_Type_Definition nodes because most of the support
+ -- for the analysis of abstract types has been reused to
+ -- analyze abstract interfaces.
+
----------------------------------
-- 3.10 Access Type Definition --
----------------------------------
@@ -2676,7 +2693,7 @@ package Sinfo is
-- N_Access_To_Object_Definition
-- Sloc points to ACCESS
-- All_Present (Flag15)
- -- Null_Exclusion_Present (Flag9) (set to False if not present)
+ -- Null_Exclusion_Present (Flag11)
-- Subtype_Indication (Node5)
-- Constant_Present (Flag17)
@@ -2705,15 +2722,15 @@ package Sinfo is
-- N_Access_Function_Definition
-- Sloc points to ACCESS
- -- Null_Exclusion_Present (Flag9) (set to False if not present)
- -- Protected_Present (Flag15)
+ -- Null_Exclusion_Present (Flag11)
+ -- Protected_Present (Flag6)
-- Parameter_Specifications (List3) (set to No_List if no formal part)
-- Subtype_Mark (Node4) result subtype
-- N_Access_Procedure_Definition
-- Sloc points to ACCESS
- -- Null_Exclusion_Present (Flag9) (set to False if not present)
- -- Protected_Present (Flag15)
+ -- Null_Exclusion_Present (Flag11)
+ -- Protected_Present (Flag6)
-- Parameter_Specifications (List3) (set to No_List if no formal part)
-----------------------------
@@ -2728,7 +2745,7 @@ package Sinfo is
-- N_Access_Definition
-- Sloc points to ACCESS
- -- Null_Exclusion_Present (Flag9) (set to False if not present)
+ -- Null_Exclusion_Present (Flag11)
-- All_Present (Flag15)
-- Constant_Present (Flag17)
-- Subtype_Mark (Node4)
@@ -2933,11 +2950,11 @@ package Sinfo is
-- i.e. digits, access, delta, range, the Attribute_Name field contains
-- the corresponding name, even though no identifier is involved.
- -- The flag OK_For_Stream is used in generated code to indicate that
- -- a stream attribute is permissible for a limited type, and results
- -- in the use of the stream attribute for the underlying full type,
- -- or in the case of a protected type, the components (including any
- -- disriminants) are merely streamed in order.
+ -- Note: the generated code may contain stream attributes applied to
+ -- limited types for which no stream routines exist officially. In such
+ -- case, the result is to use the stream attribute for the underlying
+ -- full type, or in the case of a protected type, the components
+ -- (including any disriminants) are merely streamed in order.
-- See Exp_Attr for a complete description of which attributes are
-- passed onto Gigi, and which are handled entirely by the front end.
@@ -2964,7 +2981,6 @@ package Sinfo is
-- Associated_Node (Node4-Sem)
-- Do_Overflow_Check (Flag17-Sem)
-- Redundant_Use (Flag13-Sem)
- -- OK_For_Stream (Flag4-Sem)
-- Must_Be_Byte_Aligned (Flag14)
-- plus fields for expression
@@ -3529,7 +3545,7 @@ package Sinfo is
-- N_Allocator
-- Sloc points to NEW
-- Expression (Node3) subtype indication or qualified expression
- -- Null_Exclusion_Present (Flag9) (set to False if not present)
+ -- Null_Exclusion_Present (Flag11)
-- Storage_Pool (Node1-Sem)
-- Procedure_To_Call (Node4-Sem)
-- No_Initialization (Flag13-Sem)
@@ -3606,7 +3622,7 @@ package Sinfo is
-- N_Label
-- Sloc points to <<
-- Identifier (Node1) direct name of statement identifier
- -- Exception_Junk (Flag11-Sem)
+ -- Exception_Junk (Flag7-Sem)
-------------------------------
-- 5.1 Statement Identifier --
@@ -3846,7 +3862,7 @@ package Sinfo is
-- N_Goto_Statement
-- Sloc points to GOTO
-- Name (Node2)
- -- Exception_Junk (Flag11-Sem)
+ -- Exception_Junk (Flag7-Sem)
---------------------------------
-- 6.1 Subprogram Declaration --
@@ -4044,7 +4060,7 @@ package Sinfo is
-- Defining_Identifier (Node1)
-- In_Present (Flag15)
-- Out_Present (Flag17)
- -- Null_Exclusion_Present (Flag9) (set to False if not present)
+ -- Null_Exclusion_Present (Flag11)
-- Parameter_Type (Node2) subtype mark or access definition
-- Expression (Node3) (set to Empty if no default expression present)
-- Do_Accessibility_Check (Flag13-Sem)
@@ -4283,7 +4299,8 @@ package Sinfo is
-- PRIVATE_EXTENSION_DECLARATION ::=
-- type DEFINING_IDENTIFIER [DISCRIMINANT_PART] is
- -- [abstract] new ancestor_SUBTYPE_INDICATION with private;
+ -- [abstract] new ancestor_SUBTYPE_INDICATION
+ -- [and INTERFACE_LIST] with private;
-- Note: private extension declarations are not allowed in Ada 83 mode
@@ -4295,6 +4312,7 @@ package Sinfo is
-- Unknown_Discriminants_Present (Flag13) set if (<>) discriminant
-- Abstract_Present (Flag4)
-- Subtype_Indication (Node5)
+ -- Interface_List (List2) (set to No_List if none)
---------------------
-- 8.4 Use Clause --
@@ -4436,14 +4454,14 @@ package Sinfo is
-- TASK_TYPE_DECLARATION ::=
-- task type DEFINING_IDENTIFIER [KNOWN_DISCRIMINANT_PART]
- -- [is TASK_DEFINITITION];
+ -- [is [new INTERFACE_LIST with] TASK_DEFINITITION];
-- N_Task_Type_Declaration
-- Sloc points to TASK
-- Defining_Identifier (Node1)
- -- Task_Body_Procedure (Node2-Sem)
-- Discriminant_Specifications (List4) (set to No_List if no
-- discriminant part)
+ -- Interface_List (List2) (set to No_List if none)
-- Task_Definition (Node3) (set to Empty if not present)
-- Corresponding_Body (Node5-Sem)
@@ -4517,7 +4535,7 @@ package Sinfo is
-- PROTECTED_TYPE_DECLARATION ::=
-- protected type DEFINING_IDENTIFIER [KNOWN_DISCRIMINANT_PART]
- -- is PROTECTED_DEFINITION;
+ -- is [new INTERFACE_LIST with] PROTECTED_DEFINITION;
-- Note: protected type declarations are not permitted in Ada 83 mode
@@ -4526,6 +4544,7 @@ package Sinfo is
-- Defining_Identifier (Node1)
-- Discriminant_Specifications (List4) (set to No_List if no
-- discriminant part)
+ -- Interface_List (List2) (set to No_List if none)
-- Protected_Definition (Node3)
-- Corresponding_Body (Node5-Sem)
@@ -5393,9 +5412,14 @@ package Sinfo is
-- RAISE_STATEMENT ::= raise [exception_NAME];
+ -- In Ada 2005, we have
+
+ -- RAISE_STATEMENT ::= raise; | raise exception_NAME [with EXPRESSION];
+
-- N_Raise_Statement
-- Sloc points to RAISE
-- Name (Node2) (set to Empty if no exception name present)
+ -- Expression (Node3) (set to Empty if no expression present)
-------------------------------
-- 12.1 Generic Declaration --
@@ -5591,6 +5615,7 @@ package Sinfo is
-- | FORMAL_DECIMAL_FIXED_POINT_DEFINITION
-- | FORMAL_ARRAY_TYPE_DEFINITION
-- | FORMAL_ACCESS_TYPE_DEFINITION
+ -- | FORMAL_INTERFACE_TYPE_DEFINITION
---------------------------------------------
-- 12.5.1 Formal Private Type Definition --
@@ -5612,8 +5637,7 @@ package Sinfo is
--------------------------------------------
-- FORMAL_DERIVED_TYPE_DEFINITION ::=
- -- [abstract] new SUBTYPE_MARK [with private]
-
+ -- [abstract] new SUBTYPE_MARK [[and INTERFACE_LIST] with private]
-- Note: this construct is not allowed in Ada 83 mode
-- N_Formal_Derived_Type_Definition
@@ -5621,6 +5645,7 @@ package Sinfo is
-- Subtype_Mark (Node4)
-- Private_Present (Flag15)
-- Abstract_Present (Flag4)
+ -- Interface_List (List2) (set to No_List if none)
---------------------------------------------
-- 12.5.2 Formal Discrete Type Definition --
@@ -5690,6 +5715,12 @@ package Sinfo is
-- FORMAL_ACCESS_TYPE_DEFINITION ::= ACCESS_TYPE_DEFINITION
+ ----------------------------------------------
+ -- 12.5.5 Formal Interface Type Definition --
+ ----------------------------------------------
+
+ -- FORMAL_INTERFACE_TYPE_DEFINITION ::= INTERFACE_TYPE_DEFINITION
+
-----------------------------------------
-- 12.6 Formal Subprogram Declaration --
-----------------------------------------
@@ -6503,6 +6534,7 @@ package Sinfo is
N_Unused_At_Start,
-- N_Representation_Clause
+
N_At_Clause,
N_Component_Clause,
N_Enumeration_Representation_Clause,
@@ -6510,35 +6542,43 @@ package Sinfo is
N_Record_Representation_Clause,
-- N_Representation_Clause, N_Has_Chars
+
N_Attribute_Definition_Clause,
-- N_Has_Chars
+
N_Empty,
N_Pragma,
N_Pragma_Argument_Association,
-- N_Has_Etype
+
N_Error,
-- N_Entity, N_Has_Etype, N_Has_Chars
+
N_Defining_Character_Literal,
N_Defining_Identifier,
N_Defining_Operator_Symbol,
-- N_Subexpr, N_Has_Etype, N_Has_Chars, N_Has_Entity
+
N_Expanded_Name,
-- N_Direct_Name, N_Subexpr, N_Has_Etype,
-- N_Has_Chars, N_Has_Entity
+
N_Identifier,
N_Operator_Symbol,
-- N_Direct_Name, N_Subexpr, N_Has_Etype,
-- N_Has_Chars, N_Has_Entity
+
N_Character_Literal,
-- N_Binary_Op, N_Op, N_Subexpr,
-- N_Has_Etype, N_Has_Chars, N_Has_Entity
+
N_Op_Add,
N_Op_Concat,
N_Op_Expon,
@@ -6554,11 +6594,12 @@ package Sinfo is
-- N_Binary_Op, N_Op, N_Subexpr, N_Has_Etype
-- N_Has_Entity, N_Has_Chars, N_Op_Boolean
+
N_Op_And,
-- N_Binary_Op, N_Op, N_Subexpr, N_Has_Etype
- -- N_Has_Entity, N_Has_Chars, N_Op_Boolean,
- -- N_Op_Compare
+ -- N_Has_Entity, N_Has_Chars, N_Op_Boolean, N_Op_Compare
+
N_Op_Eq,
N_Op_Ge,
N_Op_Gt,
@@ -6568,11 +6609,13 @@ package Sinfo is
-- N_Binary_Op, N_Op, N_Subexpr, N_Has_Etype
-- N_Has_Entity, N_Has_Chars, N_Op_Boolean
+
N_Op_Or,
N_Op_Xor,
-- N_Binary_Op, N_Op, N_Subexpr, N_Has_Etype,
-- N_Op_Shift, N_Has_Chars, N_Has_Entity
+
N_Op_Rotate_Left,
N_Op_Rotate_Right,
N_Op_Shift_Left,
@@ -6581,15 +6624,18 @@ package Sinfo is
-- N_Unary_Op, N_Op, N_Subexpr, N_Has_Etype,
-- N_Has_Chars, N_Has_Entity
+
N_Op_Abs,
N_Op_Minus,
N_Op_Not,
N_Op_Plus,
-- N_Subexpr, N_Has_Etype, N_Has_Entity
+
N_Attribute_Reference,
-- N_Subexpr, N_Has_Etype
+
N_And_Then,
N_Conditional_Expression,
N_Explicit_Dereference,
@@ -6626,9 +6672,11 @@ package Sinfo is
N_Unchecked_Type_Conversion,
-- N_Has_Etype
+
N_Subtype_Indication,
-- N_Declaration
+
N_Component_Declaration,
N_Entry_Declaration,
N_Formal_Object_Declaration,
@@ -6643,40 +6691,44 @@ package Sinfo is
N_Subtype_Declaration,
-- N_Subprogram_Specification, N_Declaration
+
N_Function_Specification,
N_Procedure_Specification,
- -- (nothing special)
- N_Entry_Index_Specification,
- N_Freeze_Entity,
-
-- N_Access_To_Subprogram_Definition
+
N_Access_Function_Definition,
N_Access_Procedure_Definition,
- -- N_Later_Decl_Item,
+ -- N_Later_Decl_Item
+
N_Task_Type_Declaration,
-- N_Body_Stub, N_Later_Decl_Item
+
N_Package_Body_Stub,
N_Protected_Body_Stub,
N_Subprogram_Body_Stub,
N_Task_Body_Stub,
-- N_Generic_Instantiation, N_Later_Decl_Item
+
N_Function_Instantiation,
N_Package_Instantiation,
N_Procedure_Instantiation,
-- N_Unit_Body, N_Later_Decl_Item, N_Proper_Body
+
N_Package_Body,
N_Subprogram_Body,
-- N_Later_Decl_Item, N_Proper_Body
+
N_Protected_Body,
N_Task_Body,
-- N_Later_Decl_Item
+
N_Implicit_Label_Declaration,
N_Package_Declaration,
N_Single_Task_Declaration,
@@ -6684,25 +6736,30 @@ package Sinfo is
N_Use_Package_Clause,
-- N_Generic_Declaration, N_Later_Decl_Item
+
N_Generic_Package_Declaration,
N_Generic_Subprogram_Declaration,
-- N_Array_Type_Definition
+
N_Constrained_Array_Definition,
N_Unconstrained_Array_Definition,
-- N_Renaming_Declaration
+
N_Exception_Renaming_Declaration,
N_Object_Renaming_Declaration,
N_Package_Renaming_Declaration,
N_Subprogram_Renaming_Declaration,
-- N_Generic_Renaming_Declarations, N_Renaming_Declaration
+
N_Generic_Function_Renaming_Declaration,
N_Generic_Package_Renaming_Declaration,
N_Generic_Procedure_Renaming_Declaration,
-- N_Statement_Other_Than_Procedure_Call
+
N_Abort_Statement,
N_Accept_Statement,
N_Assignment_Statement,
@@ -6725,10 +6782,12 @@ package Sinfo is
N_Timed_Entry_Call,
-- N_Statement_Other_Than_Procedure_Call, N_Has_Condition
+
N_Exit_Statement,
N_If_Statement,
-- N_Has_Condition
+
N_Accept_Alternative,
N_Delay_Alternative,
N_Elsif_Part,
@@ -6736,7 +6795,13 @@ package Sinfo is
N_Iteration_Scheme,
N_Terminate_Alternative,
+ -- N_Formal_Subprogram_Declaration
+
+ N_Formal_Abstract_Subprogram_Declaration,
+ N_Formal_Concrete_Subprogram_Declaration,
+
-- Other nodes (not part of any subtype class)
+
N_Abortable_Part,
N_Abstract_Subprogram_Declaration,
N_Access_Definition,
@@ -6758,11 +6823,10 @@ package Sinfo is
N_Enumeration_Type_Definition,
N_Entry_Body,
N_Entry_Call_Alternative,
+ N_Entry_Index_Specification,
N_Exception_Declaration,
N_Exception_Handler,
N_Floating_Point_Definition,
- N_Formal_Abstract_Subprogram_Declaration,
- N_Formal_Concrete_Subprogram_Declaration,
N_Formal_Decimal_Fixed_Point_Definition,
N_Formal_Derived_Type_Definition,
N_Formal_Discrete_Type_Definition,
@@ -6772,6 +6836,7 @@ package Sinfo is
N_Formal_Package_Declaration,
N_Formal_Private_Type_Definition,
N_Formal_Signed_Integer_Type_Definition,
+ N_Freeze_Entity,
N_Generic_Association,
N_Handled_Sequence_Of_Statements,
N_Index_Or_Discriminant_Constraint,
@@ -7276,7 +7341,7 @@ package Sinfo is
(N : Node_Id) return List_Id; -- List5
function Exception_Junk
- (N : Node_Id) return Boolean; -- Flag11
+ (N : Node_Id) return Boolean; -- Flag7
function Explicit_Actual_Parameter
(N : Node_Id) return Node_Id; -- Node3
@@ -7383,6 +7448,12 @@ package Sinfo is
function Identifier
(N : Node_Id) return Node_Id; -- Node1
+ function Interface_List
+ (N : Node_Id) return List_Id; -- List2
+
+ function Interface_Present
+ (N : Node_Id) return Boolean; -- Flag16
+
function Implicit_With
(N : Node_Id) return Boolean; -- Flag16
@@ -7531,7 +7602,7 @@ package Sinfo is
(N : Node_Id) return Boolean; -- Flag13
function Null_Exclusion_Present
- (N : Node_Id) return Boolean; -- Flag9
+ (N : Node_Id) return Boolean; -- Flag11
function Null_Record_Present
(N : Node_Id) return Boolean; -- Flag17
@@ -7539,9 +7610,6 @@ package Sinfo is
function Object_Definition
(N : Node_Id) return Node_Id; -- Node4
- function OK_For_Stream
- (N : Node_Id) return Boolean; -- Flag4
-
function Original_Discriminant
(N : Node_Id) return Node_Id; -- Node2
@@ -7609,7 +7677,7 @@ package Sinfo is
(N : Node_Id) return Node_Id; -- Node3
function Protected_Present
- (N : Node_Id) return Boolean; -- Flag15
+ (N : Node_Id) return Boolean; -- Flag6
function Raises_Constraint_Error
(N : Node_Id) return Boolean; -- Flag7
@@ -7689,18 +7757,21 @@ package Sinfo is
function Subtype_Marks
(N : Node_Id) return List_Id; -- List2
+ function Synchronized_Present
+ (N : Node_Id) return Boolean; -- Flag7
+
function Tagged_Present
(N : Node_Id) return Boolean; -- Flag15
function Target_Type
(N : Node_Id) return Entity_Id; -- Node2
- function Task_Body_Procedure
- (N : Node_Id) return Entity_Id; -- Node2
-
function Task_Definition
(N : Node_Id) return Node_Id; -- Node3
+ function Task_Present
+ (N : Node_Id) return Boolean; -- Flag5
+
function Then_Actions
(N : Node_Id) return List_Id; -- List2
@@ -8071,7 +8142,7 @@ package Sinfo is
(N : Node_Id; Val : List_Id); -- List5
procedure Set_Exception_Junk
- (N : Node_Id; Val : Boolean := True); -- Flag11
+ (N : Node_Id; Val : Boolean := True); -- Flag7
procedure Set_Expansion_Delayed
(N : Node_Id; Val : Boolean := True); -- Flag11
@@ -8178,6 +8249,12 @@ package Sinfo is
procedure Set_Identifier
(N : Node_Id; Val : Node_Id); -- Node1
+ procedure Set_Interface_List
+ (N : Node_Id; Val : List_Id); -- List2
+
+ procedure Set_Interface_Present
+ (N : Node_Id; Val : Boolean := True); -- Flag16
+
procedure Set_Implicit_With
(N : Node_Id; Val : Boolean := True); -- Flag16
@@ -8326,7 +8403,7 @@ package Sinfo is
(N : Node_Id; Val : Boolean := True); -- Flag13
procedure Set_Null_Exclusion_Present
- (N : Node_Id; Val : Boolean := True); -- Flag9
+ (N : Node_Id; Val : Boolean := True); -- Flag11
procedure Set_Null_Record_Present
(N : Node_Id; Val : Boolean := True); -- Flag17
@@ -8334,9 +8411,6 @@ package Sinfo is
procedure Set_Object_Definition
(N : Node_Id; Val : Node_Id); -- Node4
- procedure Set_OK_For_Stream
- (N : Node_Id; Val : Boolean := True); -- Flag4
-
procedure Set_Original_Discriminant
(N : Node_Id; Val : Node_Id); -- Node2
@@ -8404,7 +8478,7 @@ package Sinfo is
(N : Node_Id; Val : Node_Id); -- Node3
procedure Set_Protected_Present
- (N : Node_Id; Val : Boolean := True); -- Flag15
+ (N : Node_Id; Val : Boolean := True); -- Flag6
procedure Set_Raises_Constraint_Error
(N : Node_Id; Val : Boolean := True); -- Flag7
@@ -8484,18 +8558,21 @@ package Sinfo is
procedure Set_Subtype_Marks
(N : Node_Id; Val : List_Id); -- List2
+ procedure Set_Synchronized_Present
+ (N : Node_Id; Val : Boolean := True); -- Flag7
+
procedure Set_Tagged_Present
(N : Node_Id; Val : Boolean := True); -- Flag15
procedure Set_Target_Type
(N : Node_Id; Val : Entity_Id); -- Node2
- procedure Set_Task_Body_Procedure
- (N : Node_Id; Val : Entity_Id); -- Node2
-
procedure Set_Task_Definition
(N : Node_Id; Val : Node_Id); -- Node3
+ procedure Set_Task_Present
+ (N : Node_Id; Val : Boolean := True); -- Flag5
+
procedure Set_Then_Actions
(N : Node_Id; Val : List_Id); -- List2
@@ -8713,6 +8790,8 @@ package Sinfo is
pragma Inline (High_Bound);
pragma Inline (Identifier);
pragma Inline (Implicit_With);
+ pragma Inline (Interface_List);
+ pragma Inline (Interface_Present);
pragma Inline (Includes_Infinities);
pragma Inline (In_Present);
pragma Inline (Instance_Spec);
@@ -8764,7 +8843,6 @@ package Sinfo is
pragma Inline (Null_Exclusion_Present);
pragma Inline (Null_Record_Present);
pragma Inline (Object_Definition);
- pragma Inline (OK_For_Stream);
pragma Inline (Original_Discriminant);
pragma Inline (Original_Entity);
pragma Inline (Others_Discrete_Choices);
@@ -8814,10 +8892,11 @@ package Sinfo is
pragma Inline (Subtype_Indication);
pragma Inline (Subtype_Mark);
pragma Inline (Subtype_Marks);
+ pragma Inline (Synchronized_Present);
pragma Inline (Tagged_Present);
pragma Inline (Target_Type);
- pragma Inline (Task_Body_Procedure);
pragma Inline (Task_Definition);
+ pragma Inline (Task_Present);
pragma Inline (Then_Actions);
pragma Inline (Then_Statements);
pragma Inline (Triggering_Alternative);
@@ -8976,6 +9055,8 @@ package Sinfo is
pragma Inline (Set_Identifier);
pragma Inline (Set_Implicit_With);
pragma Inline (Set_Includes_Infinities);
+ pragma Inline (Set_Interface_List);
+ pragma Inline (Set_Interface_Present);
pragma Inline (Set_In_Present);
pragma Inline (Set_Instance_Spec);
pragma Inline (Set_Intval);
@@ -9025,7 +9106,6 @@ package Sinfo is
pragma Inline (Set_Null_Exclusion_Present);
pragma Inline (Set_Null_Record_Present);
pragma Inline (Set_Object_Definition);
- pragma Inline (Set_OK_For_Stream);
pragma Inline (Set_Original_Discriminant);
pragma Inline (Set_Original_Entity);
pragma Inline (Set_Others_Discrete_Choices);
@@ -9075,10 +9155,11 @@ package Sinfo is
pragma Inline (Set_Subtype_Indication);
pragma Inline (Set_Subtype_Mark);
pragma Inline (Set_Subtype_Marks);
+ pragma Inline (Set_Synchronized_Present);
pragma Inline (Set_Tagged_Present);
pragma Inline (Set_Target_Type);
- pragma Inline (Set_Task_Body_Procedure);
pragma Inline (Set_Task_Definition);
+ pragma Inline (Set_Task_Present);
pragma Inline (Set_Then_Actions);
pragma Inline (Set_Then_Statements);
pragma Inline (Set_Triggering_Alternative);