diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-03-15 15:54:14 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-03-15 15:54:14 +0000 |
commit | 4660e715aa628a0071e76853fda39cf8057c2c4e (patch) | |
tree | 826fcec0a5407caae82fabd04cb7e41ec79589fa /gcc/ada/sinfo.ads | |
parent | 90fd25c58b1661a5ad762daba6800b86eb95485e (diff) | |
download | gcc-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.ads | 245 |
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); |