From fbdfb8b5e30bae7a1db92fae3b6b882c71e8915d Mon Sep 17 00:00:00 2001 From: charlet Date: Tue, 31 Oct 2006 18:10:46 +0000 Subject: [PATCH] 2006-10-31 Robert Dewar Ed Schonberg Bob Duff * sinfo.ads, sinfo.adb (Set_Synchronized_Present, Synchronized_Present): Add Formal_Derived_Type_Definition and Private_Extension_Declaration to the list of assertions. (Is_Entry_Barrier_Function): New flag (Has_Self_Reference): New flag on aggregates, to indicate that they contain a reference to the enclosing type, inserted through a default initialization. (Next_Rep_Item): Move from Node4 to Node5. (Entity): Add this field for N_Attribute_Definition_Clause. (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement (N_Return_Object_Declaration): Remove this node kind. We now use N_Object_Declaration instead. (Actual_Designated_Subtype): Move to a different place to make room in N_Extended_Return_Statement. (Procedure_To_Call): Move to a different place to make room in N_Extended_Return_Statement. (Return_Type): Removed this field to make room in return statements (both kinds). (Return_Statement_Entity): New field in return statements, in part to replace Return_Type, and in part to support the fact that return statements are now pushed on the scope stack during semantic analysis. (Return_Object_Declarations): New field to support extended return statements. (N_Extended_Return_Statement): New node for extended_return_statement nonterminal. (N_Return_Object_Declaration): New node for part of extended_return_statement nonterminal. Needed because all the necessary fields won't fit in N_Extended_Return_Statement. Generic_associations now carry the Box_Present flag, to indicate a default for an actual in a partially parametrized formal package. * snames.h, snames.ads, snames.adb: Add definition for Validity_Check (Preset_Names): Add entries for Priority_Specific_Dispatching pragma and for the new predefined dispatching policies: EDF_Across_Priorities, Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities. Introduce new name Stub_Type for implementation defined attribute. Add pragma Preelaborable_Initialization Add entry for Priority attribute. Add Pragma_Wide_Character_Encoding (Get_Convention_Name): Given a convention id, this function returns the corresponding name id from the names table. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@118313 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/sinfo.adb | 135 +++- gcc/ada/sinfo.ads | 1861 +++++++++++++++++++++++++++++++++++++++++++++++++--- gcc/ada/snames.adb | 36 +- gcc/ada/snames.ads | 1176 +++++++++++++++++---------------- gcc/ada/snames.h | 381 +++++------ 5 files changed, 2701 insertions(+), 888 deletions(-) diff --git a/gcc/ada/sinfo.adb b/gcc/ada/sinfo.adb index dc53ec0..c994631 100644 --- a/gcc/ada/sinfo.adb +++ b/gcc/ada/sinfo.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -122,6 +122,7 @@ package body Sinfo is begin pragma Assert (False or else NT (N).Nkind = N_Component_Definition + or else NT (N).Nkind = N_Formal_Object_Declaration or else NT (N).Nkind = N_Object_Renaming_Declaration); return Node3 (N); end Access_Definition; @@ -181,7 +182,7 @@ package body Sinfo is pragma Assert (False or else NT (N).Nkind = N_Explicit_Dereference or else NT (N).Nkind = N_Free_Statement); - return Node2 (N); + return Node4 (N); end Actual_Designated_Subtype; function Aggregate_Bounds @@ -325,7 +326,8 @@ package body Sinfo is or else NT (N).Nkind = N_Component_Association or else NT (N).Nkind = N_Formal_Abstract_Subprogram_Declaration or else NT (N).Nkind = N_Formal_Concrete_Subprogram_Declaration - or else NT (N).Nkind = N_Formal_Package_Declaration); + or else NT (N).Nkind = N_Formal_Package_Declaration + or else NT (N).Nkind = N_Generic_Association); return Flag15 (N); end Box_Present; @@ -333,6 +335,7 @@ package body Sinfo is (N : Node_Id) return Boolean is begin pragma Assert (False + or else NT (N).Nkind = N_Extended_Return_Statement or else NT (N).Nkind = N_Return_Statement); return Flag5 (N); end By_Ref; @@ -377,6 +380,14 @@ package body Sinfo is return List1 (N); end Choices; + function Comes_From_Extended_Return_Statement + (N : Node_Id) return Boolean is + begin + pragma Assert (False + or else NT (N).Nkind = N_Return_Statement); + return Flag18 (N); + end Comes_From_Extended_Return_Statement; + function Compile_Time_Known_Aggregate (N : Node_Id) return Boolean is begin @@ -630,6 +641,7 @@ package body Sinfo is (N : Node_Id) return Node_Id is begin pragma Assert (False + or else NT (N).Nkind = N_Formal_Object_Declaration or else NT (N).Nkind = N_Parameter_Specification); return Node5 (N); end Default_Expression; @@ -878,6 +890,7 @@ package body Sinfo is begin pragma Assert (False or else NT (N).Nkind = N_Assignment_Statement + or else NT (N).Nkind = N_Extended_Return_Statement or else NT (N).Nkind = N_Function_Call or else NT (N).Nkind = N_Procedure_Call_Statement or else NT (N).Nkind = N_Return_Statement @@ -989,7 +1002,8 @@ package body Sinfo is begin pragma Assert (False or else NT (N).Nkind in N_Has_Entity - or else NT (N).Nkind = N_Freeze_Entity); + or else NT (N).Nkind = N_Freeze_Entity + or else NT (N).Nkind = N_Attribute_Definition_Clause); return Node4 (N); end Entity; @@ -1128,7 +1142,6 @@ package body Sinfo is or else NT (N).Nkind = N_Discriminant_Association or else NT (N).Nkind = N_Discriminant_Specification or else NT (N).Nkind = N_Exception_Declaration - or else NT (N).Nkind = N_Formal_Object_Declaration or else NT (N).Nkind = N_Free_Statement or else NT (N).Nkind = N_Mod_Clause or else NT (N).Nkind = N_Modular_Type_Definition @@ -1292,6 +1305,7 @@ package body Sinfo is or else NT (N).Nkind = N_Accept_Statement or else NT (N).Nkind = N_Block_Statement or else NT (N).Nkind = N_Entry_Body + or else NT (N).Nkind = N_Extended_Return_Statement or else NT (N).Nkind = N_Package_Body or else NT (N).Nkind = N_Subprogram_Body or else NT (N).Nkind = N_Task_Body); @@ -1357,6 +1371,15 @@ package body Sinfo is return Flag11 (N); end Has_Private_View; + function Has_Self_Reference + (N : Node_Id) return Boolean is + begin + pragma Assert (False + or else NT (N).Nkind = N_Aggregate + or else NT (N).Nkind = N_Extension_Aggregate); + return Flag13 (N); + end Has_Self_Reference; + function Has_Storage_Size_Pragma (N : Node_Id) return Boolean is begin @@ -1523,6 +1546,14 @@ package body Sinfo is return Flag16 (N); end Is_Controlling_Actual; + function Is_Entry_Barrier_Function + (N : Node_Id) return Boolean is + begin + pragma Assert (False + or else NT (N).Nkind = N_Subprogram_Body); + return Flag8 (N); + end Is_Entry_Barrier_Function; + function Is_In_Discriminant_Check (N : Node_Id) return Boolean is begin @@ -1866,7 +1897,7 @@ package body Sinfo is or else NT (N).Nkind = N_Enumeration_Representation_Clause or else NT (N).Nkind = N_Pragma or else NT (N).Nkind = N_Record_Representation_Clause); - return Node4 (N); + return Node5 (N); end Next_Rep_Item; function Next_Use_Clause @@ -1942,8 +1973,10 @@ package body Sinfo is or else NT (N).Nkind = N_Component_Definition or else NT (N).Nkind = N_Derived_Type_Definition or else NT (N).Nkind = N_Discriminant_Specification + or else NT (N).Nkind = N_Formal_Object_Declaration or else NT (N).Nkind = N_Function_Specification or else NT (N).Nkind = N_Object_Declaration + or else NT (N).Nkind = N_Object_Renaming_Declaration or else NT (N).Nkind = N_Parameter_Specification or else NT (N).Nkind = N_Subtype_Declaration); return Flag11 (N); @@ -2167,9 +2200,10 @@ package body Sinfo is begin pragma Assert (False or else NT (N).Nkind = N_Allocator + or else NT (N).Nkind = N_Extended_Return_Statement or else NT (N).Nkind = N_Free_Statement or else NT (N).Nkind = N_Return_Statement); - return Node4 (N); + return Node2 (N); end Procedure_To_Call; function Proper_Body @@ -2280,13 +2314,22 @@ package body Sinfo is return Node4 (N); end Result_Definition; - function Return_Type - (N : Node_Id) return Node_Id is + function Return_Object_Declarations + (N : Node_Id) return List_Id is + begin + pragma Assert (False + or else NT (N).Nkind = N_Extended_Return_Statement); + return List3 (N); + end Return_Object_Declarations; + + function Return_Statement_Entity + (N : Node_Id) return Node_Id is begin pragma Assert (False + or else NT (N).Nkind = N_Extended_Return_Statement or else NT (N).Nkind = N_Return_Statement); - return Node2 (N); - end Return_Type; + return Node5 (N); + end Return_Statement_Entity; function Reverse_Present (N : Node_Id) return Boolean is @@ -2421,6 +2464,7 @@ package body Sinfo is begin pragma Assert (False or else NT (N).Nkind = N_Allocator + or else NT (N).Nkind = N_Extended_Return_Statement or else NT (N).Nkind = N_Free_Statement or else NT (N).Nkind = N_Return_Statement); return Node1 (N); @@ -2476,6 +2520,8 @@ package body Sinfo is begin pragma Assert (False or else NT (N).Nkind = N_Derived_Type_Definition + or else NT (N).Nkind = N_Formal_Derived_Type_Definition + or else NT (N).Nkind = N_Private_Extension_Declaration or else NT (N).Nkind = N_Record_Definition); return Flag7 (N); end Synchronized_Present; @@ -2718,6 +2764,7 @@ package body Sinfo is begin pragma Assert (False or else NT (N).Nkind = N_Component_Definition + or else NT (N).Nkind = N_Formal_Object_Declaration or else NT (N).Nkind = N_Object_Renaming_Declaration); Set_Node3_With_Parent (N, Val); end Set_Access_Definition; @@ -2777,7 +2824,7 @@ package body Sinfo is pragma Assert (False or else NT (N).Nkind = N_Explicit_Dereference or else NT (N).Nkind = N_Free_Statement); - Set_Node2 (N, Val); + Set_Node4 (N, Val); end Set_Actual_Designated_Subtype; procedure Set_Aggregate_Bounds @@ -2921,7 +2968,8 @@ package body Sinfo is or else NT (N).Nkind = N_Component_Association or else NT (N).Nkind = N_Formal_Abstract_Subprogram_Declaration or else NT (N).Nkind = N_Formal_Concrete_Subprogram_Declaration - or else NT (N).Nkind = N_Formal_Package_Declaration); + or else NT (N).Nkind = N_Formal_Package_Declaration + or else NT (N).Nkind = N_Generic_Association); Set_Flag15 (N, Val); end Set_Box_Present; @@ -2929,6 +2977,7 @@ package body Sinfo is (N : Node_Id; Val : Boolean := True) is begin pragma Assert (False + or else NT (N).Nkind = N_Extended_Return_Statement or else NT (N).Nkind = N_Return_Statement); Set_Flag5 (N, Val); end Set_By_Ref; @@ -2973,6 +3022,14 @@ package body Sinfo is Set_List1_With_Parent (N, Val); end Set_Choices; + procedure Set_Comes_From_Extended_Return_Statement + (N : Node_Id; Val : Boolean := True) is + begin + pragma Assert (False + or else NT (N).Nkind = N_Return_Statement); + Set_Flag18 (N, Val); + end Set_Comes_From_Extended_Return_Statement; + procedure Set_Compile_Time_Known_Aggregate (N : Node_Id; Val : Boolean := True) is begin @@ -3226,6 +3283,7 @@ package body Sinfo is (N : Node_Id; Val : Node_Id) is begin pragma Assert (False + or else NT (N).Nkind = N_Formal_Object_Declaration or else NT (N).Nkind = N_Parameter_Specification); Set_Node5 (N, Val); -- semantic field, no parent set end Set_Default_Expression; @@ -3474,6 +3532,7 @@ package body Sinfo is begin pragma Assert (False or else NT (N).Nkind = N_Assignment_Statement + or else NT (N).Nkind = N_Extended_Return_Statement or else NT (N).Nkind = N_Function_Call or else NT (N).Nkind = N_Procedure_Call_Statement or else NT (N).Nkind = N_Return_Statement @@ -3585,7 +3644,8 @@ package body Sinfo is begin pragma Assert (False or else NT (N).Nkind in N_Has_Entity - or else NT (N).Nkind = N_Freeze_Entity); + or else NT (N).Nkind = N_Freeze_Entity + or else NT (N).Nkind = N_Attribute_Definition_Clause); Set_Node4 (N, Val); -- semantic field, no parent set end Set_Entity; @@ -3715,7 +3775,6 @@ package body Sinfo is or else NT (N).Nkind = N_Discriminant_Association or else NT (N).Nkind = N_Discriminant_Specification or else NT (N).Nkind = N_Exception_Declaration - or else NT (N).Nkind = N_Formal_Object_Declaration or else NT (N).Nkind = N_Free_Statement or else NT (N).Nkind = N_Mod_Clause or else NT (N).Nkind = N_Modular_Type_Definition @@ -3879,6 +3938,7 @@ package body Sinfo is or else NT (N).Nkind = N_Accept_Statement or else NT (N).Nkind = N_Block_Statement or else NT (N).Nkind = N_Entry_Body + or else NT (N).Nkind = N_Extended_Return_Statement or else NT (N).Nkind = N_Package_Body or else NT (N).Nkind = N_Subprogram_Body or else NT (N).Nkind = N_Task_Body); @@ -3944,6 +4004,15 @@ package body Sinfo is Set_Flag11 (N, Val); end Set_Has_Private_View; + procedure Set_Has_Self_Reference + (N : Node_Id; Val : Boolean := True) is + begin + pragma Assert (False + or else NT (N).Nkind = N_Aggregate + or else NT (N).Nkind = N_Extension_Aggregate); + Set_Flag13 (N, Val); + end Set_Has_Self_Reference; + procedure Set_Has_Storage_Size_Pragma (N : Node_Id; Val : Boolean := True) is begin @@ -4110,6 +4179,14 @@ package body Sinfo is Set_Flag16 (N, Val); end Set_Is_Controlling_Actual; + procedure Set_Is_Entry_Barrier_Function + (N : Node_Id; Val : Boolean := True) is + begin + pragma Assert (False + or else NT (N).Nkind = N_Subprogram_Body); + Set_Flag8 (N, Val); + end Set_Is_Entry_Barrier_Function; + procedure Set_Is_In_Discriminant_Check (N : Node_Id; Val : Boolean := True) is begin @@ -4453,7 +4530,7 @@ package body Sinfo is or else NT (N).Nkind = N_Enumeration_Representation_Clause or else NT (N).Nkind = N_Pragma or else NT (N).Nkind = N_Record_Representation_Clause); - Set_Node4 (N, Val); -- semantic field, no parent set + Set_Node5 (N, Val); -- semantic field, no parent set end Set_Next_Rep_Item; procedure Set_Next_Use_Clause @@ -4529,8 +4606,10 @@ package body Sinfo is or else NT (N).Nkind = N_Component_Definition or else NT (N).Nkind = N_Derived_Type_Definition or else NT (N).Nkind = N_Discriminant_Specification + or else NT (N).Nkind = N_Formal_Object_Declaration or else NT (N).Nkind = N_Function_Specification or else NT (N).Nkind = N_Object_Declaration + or else NT (N).Nkind = N_Object_Renaming_Declaration or else NT (N).Nkind = N_Parameter_Specification or else NT (N).Nkind = N_Subtype_Declaration); Set_Flag11 (N, Val); @@ -4754,9 +4833,10 @@ package body Sinfo is begin pragma Assert (False or else NT (N).Nkind = N_Allocator + or else NT (N).Nkind = N_Extended_Return_Statement or else NT (N).Nkind = N_Free_Statement or else NT (N).Nkind = N_Return_Statement); - Set_Node4 (N, Val); -- semantic field, no parent set + Set_Node2 (N, Val); -- semantic field, no parent set end Set_Procedure_To_Call; procedure Set_Proper_Body @@ -4867,13 +4947,22 @@ package body Sinfo is Set_Node4_With_Parent (N, Val); end Set_Result_Definition; - procedure Set_Return_Type - (N : Node_Id; Val : Node_Id) is + procedure Set_Return_Object_Declarations + (N : Node_Id; Val : List_Id) is + begin + pragma Assert (False + or else NT (N).Nkind = N_Extended_Return_Statement); + Set_List3_With_Parent (N, Val); + end Set_Return_Object_Declarations; + + procedure Set_Return_Statement_Entity + (N : Node_Id; Val : Node_Id) is begin pragma Assert (False + or else NT (N).Nkind = N_Extended_Return_Statement or else NT (N).Nkind = N_Return_Statement); - Set_Node2 (N, Val); -- semantic field, no parent set - end Set_Return_Type; + Set_Node5 (N, Val); -- semantic field, no parent set + end Set_Return_Statement_Entity; procedure Set_Reverse_Present (N : Node_Id; Val : Boolean := True) is @@ -5008,6 +5097,7 @@ package body Sinfo is begin pragma Assert (False or else NT (N).Nkind = N_Allocator + or else NT (N).Nkind = N_Extended_Return_Statement or else NT (N).Nkind = N_Free_Statement or else NT (N).Nkind = N_Return_Statement); Set_Node1 (N, Val); -- semantic field, no parent set @@ -5063,6 +5153,8 @@ package body Sinfo is begin pragma Assert (False or else NT (N).Nkind = N_Derived_Type_Definition + or else NT (N).Nkind = N_Formal_Derived_Type_Definition + or else NT (N).Nkind = N_Private_Extension_Declaration or else NT (N).Nkind = N_Record_Definition); Set_Flag7 (N, Val); end Set_Synchronized_Present; @@ -5268,7 +5360,6 @@ package body Sinfo is function End_Location (N : Node_Id) return Source_Ptr is L : constant Uint := End_Span (N); - begin if L = No_Uint then return No_Location; diff --git a/gcc/ada/sinfo.ads b/gcc/ada/sinfo.ads index 2712ed0..13fe0fa 100644 --- a/gcc/ada/sinfo.ads +++ b/gcc/ada/sinfo.ads @@ -35,8 +35,7 @@ -- package provides a basic tree structure. Sinfo describes how this structure -- is used to represent the syntax of an Ada program. --- Note: the grammar used here is taken from Version 5.95 of the RM, dated --- November 1994. The grammar in the RM is followed very closely in the tree +-- The grammar in the RM is followed very closely in the tree -- design, and is repeated as part of this source file. -- The tree contains not only the full syntactic representation of the @@ -46,9 +45,8 @@ -- would normally be regarded as the symbol table information. In addition a -- number of the tree nodes contain semantic information. --- WARNING: There is a C version of this package. Any changes to this source --- file must be properly reflected in this C header file sinfo.h which is --- created automatically from sinfo.ads using xsinfo.adb. +-- WARNING: Several files are automatically generated from this package. +-- See below for details. with Types; use Types; with Uintp; use Uintp; @@ -77,7 +75,7 @@ package Sinfo is -- fields. -- In addition, if any of the standard expression fields is changed, then - -- the utiliy program which creates the Treeprs spec (in file treeprs.ads) + -- the utility program which creates the Treeprs spec (in file treeprs.ads) -- must be updated appropriately, since it special cases expression fields. -- If a new tree node is added, then the following changes are made @@ -104,8 +102,8 @@ package Sinfo is -- utility reads sinfo.ads and sinfo.adb and generates a report to -- standard output. - -- Run XSinfo to create a-sinfo.h, the corresponding C header. This - -- utility reads sinfo.ads and generates a-sinfo.h. Note that it does + -- Run XSinfo to create sinfo.h, the corresponding C header. This + -- utility reads sinfo.ads and generates sinfo.h. Note that it does -- not need to read sinfo.adb, since the contents of the body are -- algorithmically determinable from the spec. @@ -119,6 +117,9 @@ package Sinfo is -- spec of the Nmake package which contains functions for constructing -- nodes. + -- All of the above steps except CSinfo are done automatically by the + -- build scripts when you do a full bootstrap. + -- Note: sometime we could write a utility that actually generated the body -- of sinfo from the spec instead of simply checking it, since, as noted -- above, the contents of the body can be determined from the spec. @@ -539,7 +540,7 @@ package Sinfo is -- unit node at the library level for such a subprogram (see further -- description in spec of Lib package). - -- Actual_Designated_Subtype (Node2-Sem) + -- Actual_Designated_Subtype (Node4-Sem) -- Present in N_Free_Statement and N_Explicit_Dereference nodes. If gigi -- needs to known the dynamic constrained subtype of the designated -- object, this attribute is set to that type. This is done for @@ -626,10 +627,11 @@ package Sinfo is -- permitted (in Ada 83 or Ada 95). -- By_Ref (Flag5-Sem) - -- A flag present in the N_Return_Statement_Node. It is set when the - -- returned expression is already allocated on the secondary stack and - -- thus the result is passed by reference rather than copied another - -- time. + -- A flag present in N_Return_Statement and + -- N_Extended_Return_Statement. + -- It is set when the returned expression is already allocated on the + -- secondary stack and thus the result is passed by reference rather + -- than copied another time. -- Check_Address_Alignment (Flag11-Sem) -- A flag present in N_Attribute_Definition clause for a 'Address @@ -640,6 +642,11 @@ package Sinfo is -- attribute definition clause is given, rather than testing this at the -- freeze point. + -- Comes_From_Extended_Return_Statement (Flag18-Sem) + -- Present in N_Return_Statement nodes. True if this node was + -- constructed as part of the expansion of an + -- N_Extended_Return_Statement. + -- Compile_Time_Known_Aggregate (Flag18-Sem) -- Present in N_Aggregate nodes. Set for aggregates which can be fully -- evaluated at compile time without raising constraint error. Such @@ -686,11 +693,11 @@ package Sinfo is -- node for the body itself). -- Corresponding_Formal_Spec (Node3-Sem) - -- This field is set in subprogram renaming declarations, where it points - -- to the defining entity for a formal subprogram in the case where the - -- renaming corresponds to a generic formal subprogram association in an - -- instantiation. The field is Empty if the renaming does not correspond - -- to such a formal association. + -- This field is set in subprogram renaming declarations, where it points + -- to the defining entity for a formal subprogram in the case where the + -- renaming corresponds to a generic formal subprogram association in an + -- instantiation. The field is Empty if the renaming does not correspond + -- to such a formal association. -- Corresponding_Generic_Association (Node5-Sem) -- This field is defined for object declarations and object renaming @@ -838,7 +845,8 @@ package Sinfo is -- Do_Tag_Check (Flag13-Sem) -- This flag is set on an N_Assignment_Statement, N_Function_Call, - -- N_Procedure_Call_Statement, N_Type_Conversion or N_Return_Statememt + -- N_Procedure_Call_Statement, N_Type_Conversion, + -- N_Return_Statement, or N_Extended_Return_Statement -- node to indicate that the tag check can be suppressed. It is not -- yet decided how this flag is used (TBD ???). @@ -899,7 +907,13 @@ package Sinfo is -- which is used during generic processing (see Sem_Ch12 for details). -- Note also that in generic templates, this means that the Entity field -- does not always point to an Entity. Since the back end is expected to - -- ignore generic templates, this is harmless. + -- ignore generic templates, this is harmless. Note that this field also + -- appears in N_Attribute_Definition_Clause nodes. It is used only for + -- stream attributes definition clauses. In this case, it denotes a + -- (possibly dummy) subprogram entity that is conceptually declared at + -- the point of the clause. Thus the visibility of the attribute + -- definition clause (in the sense of 8.3(23) as amended by AI-195) can + -- be checked by testing the visibility of that subprogram. -- Entity_Or_Associated_Node (Node4-Sem) -- A synonym for both Entity and Associated_Node. Used by convention in @@ -1002,7 +1016,7 @@ package Sinfo is -- ali file. -- Generic_Parent (Node5-Sem) - -- Generic_parent is defined on declaration nodes that are instances. The + -- Generic_Parent is defined on declaration nodes that are instances. The -- value of Generic_Parent is the generic entity from which the instance -- is obtained. Generic_Parent is also defined for the renaming -- declarations and object declarations created for the actuals in an @@ -1048,6 +1062,12 @@ package Sinfo is -- declarations if the visibility at instantiation is different from the -- visibility at generic definition. + -- Has_Self_Reference (Flag13-Sem) + -- Present in N_Aggregate and N_Extension_Aggregate. Indicates that one + -- of the expressions contains an access attribute reference to the + -- enclosing type. Such a self-reference can only appear in default- + -- initialized aggregate for a record type. + -- Has_Storage_Size_Pragma (Flag5-Sem) -- A flag present in an N_Task_Definition node to flag the presence of a -- Storage_Size pragma. @@ -1107,6 +1127,11 @@ package Sinfo is -- a dispatching call. It is off in all other cases. See Sem_Disp for -- details of its use. + -- Is_Entry_Barrier_Function (Flag8-Sem) + -- This flag is set in an N_Subprogram_Body node which is the expansion + -- of an entry barrier from a protected entry body. It is used for the + -- circuitry checking for incorrect use of Current_Task. + -- Is_In_Discriminant_Check (Flag11-Sem) -- This flag is present in a selected component, and is used to indicate -- that the reference occurs within a discriminant check. The @@ -1270,7 +1295,7 @@ package Sinfo is -- points to the explicit actual parameter itself, not to the -- N_Parameter_Association node (its parent). - -- Next_Rep_Item (Node4-Sem) + -- Next_Rep_Item (Node5-Sem) -- Present in pragma nodes and attribute definition nodes. Used to link -- representation items that apply to an entity. See description of -- First_Rep_Item field in Einfo for full details. @@ -1389,11 +1414,12 @@ package Sinfo is -- legality or semantics of program, only on the displayed output. This -- is used to clarify output from the packed array cases. - -- Procedure_To_Call (Node4-Sem) - -- Present in N_Allocator, N_Free_Statement, and N_Return_Statement - -- nodes. References the entity for the declaration of the procedure to - -- be called to accomplish the required operation (i.e. for the Allocate - -- procedure in the case of N_Allocator and N_Return_Statement (for + -- Procedure_To_Call (Node2-Sem) + -- Present in N_Allocator, N_Free_Statement, N_Return_Statement, + -- and N_Extended_Return_Statement nodes. References the entity for the + -- declaration of the procedure to be called to accomplish the required + -- operation (i.e. for the Allocate procedure in the case of N_Allocator + -- and N_Return_Statement and N_Extended_Return_Statement (for -- allocating the return value), and for the Deallocate procedure in the -- case of N_Free_Statement. @@ -1415,10 +1441,16 @@ package Sinfo is -- to indicate that a use is redundant (and therefore need not be undone -- on scope exit). - -- Return_Type (Node2-Sem) - -- Present in N_Return_Statement node. For a procedure, this is set to - -- Standard_Void_Type. For a function it references the entity for the - -- returned type. + -- Return_Statement_Entity (Node5-Sem) + -- Present in N_Return_Statement and N_Extended_Return_Statement. + -- Points to an E_Return_Statement representing the return statement. + + -- Return_Object_Declarations (List3) + -- Present in N_Extended_Return_Statement. + -- Points to a list initially containing a single + -- N_Object_Declaration representing the return object. + -- We use a list (instead of just a pointer to the object decl) + -- because Analyze wants to insert extra actions on this list. -- Rounded_Result (Flag18-Sem) -- Present in N_Type_Conversion, N_Op_Divide and N_Op_Multiply nodes. @@ -1460,7 +1492,8 @@ package Sinfo is -- Static_Processing_OK flag set. -- Storage_Pool (Node1-Sem) - -- Present in N_Allocator, N_Free_Statement and N_Return_Statement nodes. + -- Present in N_Allocator, N_Free_Statement, N_Return_Statement, + -- and N_Extended_Return_Statement nodes. -- References the entity for the storage pool to be used for the allocate -- or free call or for the allocation of the returned value from a -- function. Empty indicates that the global default default pool is to @@ -1769,7 +1802,7 @@ package Sinfo is -- Chars (Name1) identifier name from pragma identifier -- Pragma_Argument_Associations (List2) (set to No_List if none) -- Debug_Statement (Node3) (set to Empty if not Debug, Assert) - -- Next_Rep_Item (Node4-Sem) + -- Next_Rep_Item (Node5-Sem) -- Note: we should have a section on what pragmas are passed on to -- the back end to be processed. This section should note that pragma @@ -2060,8 +2093,8 @@ package Sinfo is -- [abstract] [limited] new [NULL_EXCLUSION] parent_SUBTYPE_INDICATION -- [[and INTERFACE_LIST] RECORD_EXTENSION_PART] - -- Note: ABSTRACT, LIMITED and record extension part are not permitted - -- in Ada 83 mode + -- Note: ABSTRACT, LIMITED and record extension part are not permitted + -- in Ada 83 mode -- Note: a record extension part is required if ABSTRACT is present @@ -2078,9 +2111,9 @@ package Sinfo is -- Interface_List (List2) (set to No_List if none) -- Interface_Present (Flag16) set in abstract interfaces - -- Note: Task_Present, Protected_Present, Synchronized_Present, - -- Interface_List, and Interface_Present are used for abstract - -- interfaces (see comments for INTERFACE_TYPE_DEFINITION). + -- Note: Task_Present, Protected_Present, Synchronized_Present, + -- Interface_List, and Interface_Present are used for abstract + -- interfaces (see comments for INTERFACE_TYPE_DEFINITION). --------------------------- -- 3.5 Range Constraint -- @@ -2847,7 +2880,7 @@ package Sinfo is -- N_Explicit_Dereference -- Sloc points to ALL -- Prefix (Node3) - -- Actual_Designated_Subtype (Node2-Sem) + -- Actual_Designated_Subtype (Node4-Sem) -- plus fields for expression ------------------------------- @@ -3057,6 +3090,7 @@ package Sinfo is -- Static_Processing_OK (Flag4-Sem) -- Compile_Time_Known_Aggregate (Flag18-Sem) -- Expansion_Delayed (Flag11-Sem) + -- Has_Self_Reference (Flag13-Sem) -- plus fields for expression -- Note: this structure is used for both record and array aggregates @@ -3067,12 +3101,15 @@ package Sinfo is -- syntax. In particular, for a record aggregate, the expressions -- field will be set if there are positional associations. + -- Note: N_Aggregate is not used for all aggregates; in particular, + -- there is a separate node kind for extension aggregates. + -- Note: gigi/gcc can handle array aggregates correctly providing that -- they are entirely positional, and the array subtype involved has a -- known at compile time length and is not bit packed, or a convention -- Fortran array with more than one dimension. If these conditions -- are not met, then the front end must translate the aggregate into - -- an appropriate set of assignments into a temporary. + -- an appropriate set of assignments into a temporary. -- Note: for the record aggregate case, gigi/gcc can handle all cases -- of record aggregates, including those for packed, and rep-claused @@ -3143,6 +3180,7 @@ package Sinfo is -- Component_Associations (List2) (set to No_List if none) -- Null_Record_Present (Flag17) -- Expansion_Delayed (Flag11-Sem) + -- Has_Self_Reference (Flag13-Sem) -- plus fields for expression -------------------------- @@ -3563,7 +3601,7 @@ package Sinfo is -- Expression (Node3) subtype indication or qualified expression -- Null_Exclusion_Present (Flag11) -- Storage_Pool (Node1-Sem) - -- Procedure_To_Call (Node4-Sem) + -- Procedure_To_Call (Node2-Sem) -- No_Initialization (Flag13-Sem) -- Do_Storage_Check (Flag17-Sem) -- plus fields for expression @@ -3598,12 +3636,12 @@ package Sinfo is -- 5.1 Simple Statement -- --------------------------- - -- SIMPLE_STATEMENT ::= NULL_STATEMENT - -- | ASSIGNMENT_STATEMENT | EXIT_STATEMENT - -- | GOTO_STATEMENT | PROCEDURE_CALL_STATEMENT - -- | RETURN_STATEMENT | ENTRY_CALL_STATEMENT - -- | REQUEUE_STATEMENT | DELAY_STATEMENT - -- | ABORT_STATEMENT | RAISE_STATEMENT + -- SIMPLE_STATEMENT ::= NULL_STATEMENT + -- | ASSIGNMENT_STATEMENT | EXIT_STATEMENT + -- | GOTO_STATEMENT | PROCEDURE_CALL_STATEMENT + -- | SIMPLE_RETURN_STATEMENT | ENTRY_CALL_STATEMENT + -- | REQUEUE_STATEMENT | DELAY_STATEMENT + -- | ABORT_STATEMENT | RAISE_STATEMENT -- | CODE_STATEMENT ----------------------------- @@ -3611,9 +3649,10 @@ package Sinfo is ----------------------------- -- COMPOUND_STATEMENT ::= - -- IF_STATEMENT | CASE_STATEMENT - -- | LOOP_STATEMENT | BLOCK_STATEMENT - -- | ACCEPT_STATEMENT | SELECT_STATEMENT + -- IF_STATEMENT | CASE_STATEMENT + -- | LOOP_STATEMENT | BLOCK_STATEMENT + -- | EXTENDED_RETURN_STATEMENT + -- | ACCEPT_STATEMENT | SELECT_STATEMENT ------------------------- -- 5.1 Null Statement -- @@ -4129,6 +4168,7 @@ package Sinfo is -- Do_Storage_Check (Flag17-Sem) -- Has_Priority_Pragma (Flag6-Sem) -- Is_Protected_Subprogram_Body (Flag7-Sem) + -- Is_Entry_Barrier_Function (Flag8-Sem) -- Is_Task_Master (Flag5-Sem) -- Was_Originally_Stub (Flag13-Sem) @@ -4210,8 +4250,7 @@ package Sinfo is -- N_Parameter_Association -- Sloc points to formal parameter - -- Selector_Name (Node2) (always non-Empty, since this node is - -- only used if a formal parameter selector name is present) + -- Selector_Name (Node2) (always non-Empty) -- Explicit_Actual_Parameter (Node3) -- Next_Named_Actual (Node4-Sem) @@ -4225,19 +4264,65 @@ package Sinfo is -- 6.5 Return Statement -- --------------------------- - -- RETURN_STATEMENT ::= return [EXPRESSION]; + -- RETURN_STATEMENT ::= return [EXPRESSION]; -- Ada 95 + + -- In Ada 2005, we have: + + -- SIMPLE_RETURN_STATEMENT ::= return [EXPRESSION]; + + -- EXTENDED_RETURN_STATEMENT ::= + -- return DEFINING_IDENTIFIER : [aliased] RETURN_SUBTYPE_INDICATION + -- [:= EXPRESSION] [do + -- HANDLED_SEQUENCE_OF_STATEMENTS + -- end return]; + + -- RETURN_SUBTYPE_INDICATION ::= SUBTYPE_INDICATION | ACCESS_DEFINITION + + -- So in Ada 2005, RETURN_STATEMENT is no longer a nonterminal -- N_Return_Statement -- Sloc points to RETURN + -- Return_Statement_Entity (Node5-Sem) -- Expression (Node3) (set to Empty if no expression present) -- Storage_Pool (Node1-Sem) - -- Procedure_To_Call (Node4-Sem) + -- Procedure_To_Call (Node2-Sem) + -- Do_Tag_Check (Flag13-Sem) + -- By_Ref (Flag5-Sem) + -- Comes_From_Extended_Return_Statement (Flag18-Sem) + + -- ???N_Return_Statement represents a simple_return_statement, + -- and should be renamed to N_Simple_Return_Statement. + + -- Note: Return_Statement_Entity points to an E_Return_Statement + + -- If a range check is required, then Do_Range_Check is set on the + -- Expression. The check is against the return subtype of the function. + + -- N_Extended_Return_Statement + -- Sloc points to RETURN + -- Return_Statement_Entity (Node5-Sem) + -- Return_Object_Declarations (List3) + -- Handled_Statement_Sequence (Node4) (set to Empty if not present) + -- Storage_Pool (Node1-Sem) + -- Procedure_To_Call (Node2-Sem) -- Do_Tag_Check (Flag13-Sem) - -- Return_Type (Node2-Sem) -- By_Ref (Flag5-Sem) - -- Note: if a range check is required, then Do_Range_Check is set - -- on the Expression. The range check is against Return_Type. + -- Note: Return_Statement_Entity points to an E_Return_Statement. + -- Note that Return_Object_Declarations is a list containing the + -- N_Object_Declaration -- see comment on this field above. + -- The declared object will have Is_Return_Object = True. + -- There is no such syntactic category as return_object_declaration + -- in the RM. Return_Object_Declarations represents this portion of + -- the syntax for EXTENDED_RETURN_STATEMENT: + -- DEFINING_IDENTIFIER : [aliased] RETURN_SUBTYPE_INDICATION + -- [:= EXPRESSION] + + -- There are two entities associated with an extended_return_statement: + -- the Return_Statement_Entity represents the statement itself, and the + -- Defining_Identifier of the Object_Declaration in + -- Return_Object_Declarations represents the object being + -- returned. N_Return_Statement has only the former. ------------------------------ -- 7.1 Package Declaration -- @@ -4327,11 +4412,12 @@ package Sinfo is -- PRIVATE_EXTENSION_DECLARATION ::= -- type DEFINING_IDENTIFIER [DISCRIMINANT_PART] is - -- [abstract] [limited] new ancestor_SUBTYPE_INDICATION - -- [and INTERFACE_LIST] with private; + -- [abstract] [limited | synchronized] + -- new ancestor_SUBTYPE_INDICATION [and INTERFACE_LIST] + -- with private; - -- Note: LIMITED, and private extension declarations are not allowed - -- in Ada 83 mode. + -- Note: LIMITED, and private extension declarations are not allowed + -- in Ada 83 mode. -- N_Private_Extension_Declaration -- Sloc points to TYPE @@ -4341,6 +4427,7 @@ package Sinfo is -- Unknown_Discriminants_Present (Flag13) set if (<>) discriminant -- Abstract_Present (Flag4) -- Limited_Present (Flag17) + -- Synchronized_Present (Flag7) -- Subtype_Indication (Node5) -- Interface_List (List2) (set to No_List if none) @@ -4392,8 +4479,10 @@ package Sinfo is -------------------------------------- -- OBJECT_RENAMING_DECLARATION ::= - -- DEFINING_IDENTIFIER : SUBTYPE_MARK renames object_NAME; - -- | DEFINING_IDENTIFIER : ACCESS_DEFINITION renames object_NAME; + -- DEFINING_IDENTIFIER : + -- [NULL_EXCLUSION] SUBTYPE_MARK renames object_NAME; + -- | DEFINING_IDENTIFIER : + -- ACCESS_DEFINITION renames object_NAME; -- Note: Access_Definition is an optional field that gives support to -- Ada 2005 (AI-230). The parser generates nodes that have either the @@ -4402,6 +4491,7 @@ package Sinfo is -- N_Object_Renaming_Declaration -- Sloc points to first identifier -- Defining_Identifier (Node1) + -- Null_Exclusion_Present (Flag11) (set to False if not present) -- Subtype_Mark (Node4) (set to Empty if not present) -- Access_Definition (Node3) (set to Empty if not present) -- Name (Node2) @@ -5589,18 +5679,23 @@ package Sinfo is -- GENERIC_ASSOCIATION ::= -- [generic_formal_parameter_SELECTOR_NAME =>] - -- EXPLICIT_GENERIC_ACTUAL_PARAMETER -- Note: unlike the procedure call case, a generic association node -- is generated for every association, even if no formal is present. -- In this case the parser will leave the Selector_Name field set -- to Empty, to be filled in later by the semantic pass. + -- In Ada 2005, a formal may be associated with a box, if the + -- association is part of the list of actuals for a formal package. + -- If the association is given by OTHERS => <>, the association is + -- an N_Others_Choice. + -- N_Generic_Association -- Sloc points to first token of generic association -- Selector_Name (Node2) (set to Empty if no formal -- parameter selector name) - -- Explicit_Generic_Actual_Parameter (Node1) + -- Explicit_Generic_Actual_Parameter (Node1) (Empty if box present) + -- Box_Present (Flag15) (for formal_package associations with a box) --------------------------------------------- -- 12.3 Explicit Generic Actual Parameter -- @@ -5616,7 +5711,9 @@ package Sinfo is -- FORMAL_OBJECT_DECLARATION ::= -- DEFINING_IDENTIFIER_LIST : - -- MODE SUBTYPE_MARK [:= DEFAULT_EXPRESSION]; + -- MODE [NULL_EXCLUSION] SUBTYPE_MARK [:= DEFAULT_EXPRESSION]; + -- | DEFINING_IDENTIFIER_LIST : + -- MODE ACCESS_DEFINITION [:= DEFAULT_EXPRESSION]; -- Although the syntax allows multiple identifiers in the list, the -- semantics is as though successive declarations were given with @@ -5631,8 +5728,10 @@ package Sinfo is -- Defining_Identifier (Node1) -- In_Present (Flag15) -- Out_Present (Flag17) - -- Subtype_Mark (Node4) - -- Expression (Node3) (set to Empty if no default expression) + -- Null_Exclusion_Present (Flag11) (set to False if not present) + -- Subtype_Mark (Node4) (set to Empty if not present) + -- Access_Definition (Node3) (set to Empty if not present) + -- Default_Expression (Node5) (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) @@ -5689,7 +5788,7 @@ package Sinfo is -------------------------------------------- -- FORMAL_DERIVED_TYPE_DEFINITION ::= - -- [abstract] [limited] + -- [abstract] [limited | synchronized] -- new SUBTYPE_MARK [[and INTERFACE_LIST] with private] -- Note: this construct is not allowed in Ada 83 mode @@ -5699,6 +5798,7 @@ package Sinfo is -- Private_Present (Flag15) -- Abstract_Present (Flag4) -- Limited_Present (Flag17) + -- Synchronized_Present (Flag7) -- Interface_List (List2) (set to No_List if none) --------------------------------------------- @@ -5857,11 +5957,21 @@ package Sinfo is -------------------------------------- -- FORMAL_PACKAGE_ACTUAL_PART ::= - -- (<>) | [GENERIC_ACTUAL_PART] + -- ([OTHERS] => <>) + -- | [GENERIC_ACTUAL_PART] + -- (FORMAL_PACKAGE_ASSOCIATION {. FORMAL_PACKAGE_ASSOCIATION} + + -- FORMAL_PACKAGE_ASSOCIATION ::= + -- GENERIC_ASSOCIATION + -- | GENERIC_FORMAL_PARAMETER_SELECTOR_NAME => <> + + -- There is no explicit node in the tree for a formal package actual + -- part. Instead the information appears in the parent node (i.e. the + -- formal package declaration node itself). - -- There is no explicit node in the tree for a formal package - -- actual part. Instead the information appears in the parent node - -- (i.e. the formal package declaration node itself). + -- There is no explicit node for a formal package association. All of + -- them are represented either by a generic association, possibly with + -- Box_Present, or by an N_Others_Choice. --------------------------------- -- 13.1 Representation clause -- @@ -5924,7 +6034,8 @@ package Sinfo is -- Name (Node2) the local name -- Chars (Name1) the identifier name from the attribute designator -- Expression (Node3) the expression or name - -- Next_Rep_Item (Node4-Sem) + -- Entity (Node4-Sem) + -- Next_Rep_Item (Node5-Sem) -- From_At_Mod (Flag4-Sem) -- Check_Address_Alignment (Flag11-Sem) @@ -5941,7 +6052,7 @@ package Sinfo is -- Sloc points to FOR -- Identifier (Node1) direct name -- Array_Aggregate (Node3) - -- Next_Rep_Item (Node4-Sem) + -- Next_Rep_Item (Node5-Sem) --------------------------------- -- 13.4 Enumeration aggregate -- @@ -5969,7 +6080,7 @@ package Sinfo is -- Identifier (Node1) direct name -- Mod_Clause (Node2) (set to Empty if no mod clause present) -- Component_Clauses (List3) - -- Next_Rep_Item (Node4-Sem) + -- Next_Rep_Item (Node5-Sem) ------------------------------ -- 13.5.1 Component clause -- @@ -6014,15 +6125,11 @@ package Sinfo is -- Asm_Insn'(Asm (...)); - -- or - - -- Asm_Insn'(Asm_Volatile (...)) - - -- See package System.Machine_Code in file s-maccod.ads for details - -- on the allowed parameters to Asm[_Volatile]. There are two ways - -- this node can arise, as a code statement, in which case the - -- expression is the qualified expression, or as a result of the - -- expansion of an intrinsic call to the Asm or Asm_Input procedure. + -- See package System.Machine_Code in file s-maccod.ads for details on + -- the allowed parameters to Asm. There are two ways this node can + -- arise, as a code statement, in which case the expression is the + -- qualified expression, or as a result of the expansion of an intrinsic + -- call to the Asm or Asm_Input procedure. -- N_Code_Statement -- Sloc points to first token of the expression @@ -6241,8 +6348,8 @@ package Sinfo is -- Sloc is copied from the unchecked deallocation call -- Expression (Node3) argument to unchecked deallocation call -- Storage_Pool (Node1-Sem) - -- Procedure_To_Call (Node4-Sem) - -- Actual_Designated_Subtype (Node2-Sem) + -- Procedure_To_Call (Node2-Sem) + -- Actual_Designated_Subtype (Node4-Sem) -- Note: in the case where a debug source file is generated, the Sloc -- for this node points to the FREE keyword in the Sprint file output. @@ -6640,7 +6747,7 @@ package Sinfo is N_Op_Subtract, -- N_Binary_Op, N_Op, N_Subexpr, N_Has_Treat_Fixed_As_Integer - -- N_Has_Etype, N_Has_Chars, N_Has_Entity + -- N_Has_Etype, N_Has_Chars, N_Has_Entity, N_Multiplying_Operator N_Op_Divide, N_Op_Mod, @@ -6689,16 +6796,21 @@ package Sinfo is N_Attribute_Reference, + -- N_Subexpr, N_Has_Etype, N_Membership_Test + + N_In, + N_Not_In, + -- N_Subexpr, N_Has_Etype N_And_Then, N_Conditional_Expression, N_Explicit_Dereference, N_Function_Call, - N_In, + N_Indexed_Component, N_Integer_Literal, - N_Not_In, + N_Null, N_Or_Else, N_Procedure_Call_Statement, @@ -6843,6 +6955,7 @@ package Sinfo is N_Raise_Statement, N_Requeue_Statement, N_Return_Statement, + N_Extended_Return_Statement, N_Selective_Accept, N_Timed_Entry_Call, @@ -7006,6 +7119,10 @@ package Sinfo is N_Op_Divide .. N_Op_Rem; + subtype N_Multiplying_Operator is Node_Kind range + N_Op_Divide .. + N_Op_Rem; + subtype N_Later_Decl_Item is Node_Kind range N_Task_Type_Declaration .. N_Generic_Subprogram_Declaration; @@ -7018,6 +7135,10 @@ package Sinfo is -- N_Protected_Body, which is a bit peculiar, but harmless since -- this cannot appear in Ada 83 mode anyway. + subtype N_Membership_Test is Node_Kind range + N_In .. + N_Not_In; + subtype N_Op is Node_Kind range N_Op_Add .. N_Op_Plus; @@ -7135,7 +7256,7 @@ package Sinfo is (N : Node_Id) return Boolean; -- Flag4 function Actual_Designated_Subtype - (N : Node_Id) return Node_Id; -- Node2 + (N : Node_Id) return Node_Id; -- Node4 function Aggregate_Bounds (N : Node_Id) return Node_Id; -- Node3 @@ -7206,6 +7327,9 @@ package Sinfo is function Choices (N : Node_Id) return List_Id; -- List1 + function Comes_From_Extended_Return_Statement + (N : Node_Id) return Boolean; -- Flag18 + function Compile_Time_Known_Aggregate (N : Node_Id) return Boolean; -- Flag18 @@ -7509,6 +7633,9 @@ package Sinfo is function Has_Private_View (N : Node_Id) return Boolean; -- Flag11 + function Has_Self_Reference + (N : Node_Id) return Boolean; -- Flag13 + function Has_Storage_Size_Pragma (N : Node_Id) return Boolean; -- Flag5 @@ -7563,6 +7690,9 @@ package Sinfo is function Is_Controlling_Actual (N : Node_Id) return Boolean; -- Flag16 + function Is_Entry_Barrier_Function + (N : Node_Id) return Boolean; -- Flag8 + function Is_In_Discriminant_Check (N : Node_Id) return Boolean; -- Flag11 @@ -7666,7 +7796,7 @@ package Sinfo is (N : Node_Id) return Node_Id; -- Node4 function Next_Rep_Item - (N : Node_Id) return Node_Id; -- Node4 + (N : Node_Id) return Node_Id; -- Node5 function Next_Use_Clause (N : Node_Id) return Node_Id; -- Node3 @@ -7756,7 +7886,7 @@ package Sinfo is (N : Node_Id) return Boolean; -- Flag15 function Procedure_To_Call - (N : Node_Id) return Node_Id; -- Node4 + (N : Node_Id) return Node_Id; -- Node2 function Proper_Body (N : Node_Id) return Node_Id; -- Node1 @@ -7794,8 +7924,11 @@ package Sinfo is function Result_Definition (N : Node_Id) return Node_Id; -- Node4 - function Return_Type - (N : Node_Id) return Node_Id; -- Node2 + function Return_Object_Declarations + (N : Node_Id) return List_Id; -- List3 + + function Return_Statement_Entity + (N : Node_Id) return Node_Id; -- Node5 function Reverse_Present (N : Node_Id) return Boolean; -- Flag15 @@ -7957,7 +8090,7 @@ package Sinfo is (N : Node_Id; Val : Boolean := True); -- Flag4 procedure Set_Actual_Designated_Subtype - (N : Node_Id; Val : Node_Id); -- Node2 + (N : Node_Id; Val : Node_Id); -- Node4 procedure Set_Aggregate_Bounds (N : Node_Id; Val : Node_Id); -- Node3 @@ -8028,6 +8161,9 @@ package Sinfo is procedure Set_Choices (N : Node_Id; Val : List_Id); -- List1 + procedure Set_Comes_From_Extended_Return_Statement + (N : Node_Id; Val : Boolean := True); -- Flag18 + procedure Set_Compile_Time_Known_Aggregate (N : Node_Id; Val : Boolean := True); -- Flag18 @@ -8328,6 +8464,9 @@ package Sinfo is procedure Set_Has_Private_View (N : Node_Id; Val : Boolean := True); -- Flag11 + procedure Set_Has_Self_Reference + (N : Node_Id; Val : Boolean := True); -- Flag13 + procedure Set_Has_Storage_Size_Pragma (N : Node_Id; Val : Boolean := True); -- Flag5 @@ -8382,6 +8521,9 @@ package Sinfo is procedure Set_Is_Controlling_Actual (N : Node_Id; Val : Boolean := True); -- Flag16 + procedure Set_Is_Entry_Barrier_Function + (N : Node_Id; Val : Boolean := True); -- Flag8 + procedure Set_Is_In_Discriminant_Check (N : Node_Id; Val : Boolean := True); -- Flag11 @@ -8485,7 +8627,7 @@ package Sinfo is (N : Node_Id; Val : Node_Id); -- Node4 procedure Set_Next_Rep_Item - (N : Node_Id; Val : Node_Id); -- Node4 + (N : Node_Id; Val : Node_Id); -- Node5 procedure Set_Next_Use_Clause (N : Node_Id; Val : Node_Id); -- Node3 @@ -8575,7 +8717,7 @@ package Sinfo is (N : Node_Id; Val : Boolean := True); -- Flag15 procedure Set_Procedure_To_Call - (N : Node_Id; Val : Node_Id); -- Node4 + (N : Node_Id; Val : Node_Id); -- Node2 procedure Set_Proper_Body (N : Node_Id; Val : Node_Id); -- Node1 @@ -8613,8 +8755,11 @@ package Sinfo is procedure Set_Result_Definition (N : Node_Id; Val : Node_Id); -- Node4 - procedure Set_Return_Type - (N : Node_Id; Val : Node_Id); -- Node2 + procedure Set_Return_Object_Declarations + (N : Node_Id; Val : List_Id); -- List3 + + procedure Set_Return_Statement_Entity + (N : Node_Id; Val : Node_Id); -- Node5 procedure Set_Reverse_Present (N : Node_Id; Val : Boolean := True); -- Flag15 @@ -8753,6 +8898,1511 @@ package Sinfo is -- other words, End_Span is set to the difference between S and -- Sloc (N), the starting location. + ----------------------------- + -- Syntactic Parent Tables -- + ----------------------------- + + -- These tables show for each node, and for each of the five fields, + -- whether the corresponding field is syntactic (True) or semantic (False). + -- Unused entries are also set to False. + + subtype Field_Num is Natural range 1 .. 5; + + Is_Syntactic_Field : constant array (Node_Kind, Field_Num) of Boolean := ( + + -- Following entries can be built automatically from the sinfo sources + -- using the makeisf utility (currently this program is in spitbol). + + N_Identifier => + (1 => True, -- Chars (Name1) + 2 => False, -- Original_Discriminant (Node2-Sem) + 3 => False, -- unused + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Integer_Literal => + (1 => False, -- unused + 2 => False, -- Original_Entity (Node2-Sem) + 3 => True, -- Intval (Uint3) + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_Real_Literal => + (1 => False, -- unused + 2 => False, -- Original_Entity (Node2-Sem) + 3 => True, -- Realval (Ureal3) + 4 => False, -- Corresponding_Integer_Value (Uint4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Character_Literal => + (1 => True, -- Chars (Name1) + 2 => True, -- Char_Literal_Value (Uint2) + 3 => False, -- unused + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_String_Literal => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Strval (Str3) + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_Pragma => + (1 => True, -- Chars (Name1) + 2 => True, -- Pragma_Argument_Associations (List2) + 3 => True, -- Debug_Statement (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Next_Rep_Item (Node5-Sem) + + N_Pragma_Argument_Association => + (1 => True, -- Chars (Name1) + 2 => False, -- unused + 3 => True, -- Expression (Node3) + 4 => False, -- unused + 5 => False), -- unused + + N_Defining_Identifier => + (1 => True, -- Chars (Name1) + 2 => False, -- Next_Entity (Node2-Sem) + 3 => False, -- Scope (Node3-Sem) + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_Full_Type_Declaration => + (1 => True, -- Defining_Identifier (Node1) + 2 => False, -- unused + 3 => True, -- Type_Definition (Node3) + 4 => True, -- Discriminant_Specifications (List4) + 5 => False), -- unused + + N_Subtype_Declaration => + (1 => True, -- Defining_Identifier (Node1) + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- Generic_Parent_Type (Node4-Sem) + 5 => True), -- Subtype_Indication (Node5) + + N_Subtype_Indication => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Constraint (Node3) + 4 => True, -- Subtype_Mark (Node4) + 5 => False), -- Etype (Node5-Sem) + + N_Object_Declaration => + (1 => True, -- Defining_Identifier (Node1) + 2 => False, -- Handler_List_Entry (Node2-Sem) + 3 => True, -- Expression (Node3) + 4 => True, -- Object_Definition (Node4) + 5 => False), -- Corresponding_Generic_Association (Node5-Sem) + + N_Number_Declaration => + (1 => True, -- Defining_Identifier (Node1) + 2 => False, -- unused + 3 => True, -- Expression (Node3) + 4 => False, -- unused + 5 => False), -- unused + + N_Derived_Type_Definition => + (1 => False, -- unused + 2 => True, -- Interface_List (List2) + 3 => True, -- Record_Extension_Part (Node3) + 4 => False, -- unused + 5 => True), -- Subtype_Indication (Node5) + + N_Range_Constraint => + (1 => False, -- unused + 2 => False, -- unused + 3 => False, -- unused + 4 => True, -- Range_Expression (Node4) + 5 => False), -- unused + + N_Range => + (1 => True, -- Low_Bound (Node1) + 2 => True, -- High_Bound (Node2) + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_Enumeration_Type_Definition => + (1 => True, -- Literals (List1) + 2 => False, -- unused + 3 => False, -- unused + 4 => True, -- End_Label (Node4) + 5 => False), -- unused + + N_Defining_Character_Literal => + (1 => True, -- Chars (Name1) + 2 => False, -- Next_Entity (Node2-Sem) + 3 => False, -- Scope (Node3-Sem) + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_Signed_Integer_Type_Definition => + (1 => True, -- Low_Bound (Node1) + 2 => True, -- High_Bound (Node2) + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Modular_Type_Definition => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Expression (Node3) + 4 => False, -- unused + 5 => False), -- unused + + N_Floating_Point_Definition => + (1 => False, -- unused + 2 => True, -- Digits_Expression (Node2) + 3 => False, -- unused + 4 => True, -- Real_Range_Specification (Node4) + 5 => False), -- unused + + N_Real_Range_Specification => + (1 => True, -- Low_Bound (Node1) + 2 => True, -- High_Bound (Node2) + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Ordinary_Fixed_Point_Definition => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Delta_Expression (Node3) + 4 => True, -- Real_Range_Specification (Node4) + 5 => False), -- unused + + N_Decimal_Fixed_Point_Definition => + (1 => False, -- unused + 2 => True, -- Digits_Expression (Node2) + 3 => True, -- Delta_Expression (Node3) + 4 => True, -- Real_Range_Specification (Node4) + 5 => False), -- unused + + N_Digits_Constraint => + (1 => False, -- unused + 2 => True, -- Digits_Expression (Node2) + 3 => False, -- unused + 4 => True, -- Range_Constraint (Node4) + 5 => False), -- unused + + N_Unconstrained_Array_Definition => + (1 => False, -- unused + 2 => True, -- Subtype_Marks (List2) + 3 => False, -- unused + 4 => True, -- Component_Definition (Node4) + 5 => False), -- unused + + N_Constrained_Array_Definition => + (1 => False, -- unused + 2 => True, -- Discrete_Subtype_Definitions (List2) + 3 => False, -- unused + 4 => True, -- Component_Definition (Node4) + 5 => False), -- unused + + N_Component_Definition => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Access_Definition (Node3) + 4 => False, -- unused + 5 => True), -- Subtype_Indication (Node5) + + N_Discriminant_Specification => + (1 => True, -- Defining_Identifier (Node1) + 2 => False, -- unused + 3 => True, -- Expression (Node3) + 4 => False, -- unused + 5 => True), -- Discriminant_Type (Node5) + + N_Index_Or_Discriminant_Constraint => + (1 => True, -- Constraints (List1) + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Discriminant_Association => + (1 => True, -- Selector_Names (List1) + 2 => False, -- unused + 3 => True, -- Expression (Node3) + 4 => False, -- unused + 5 => False), -- unused + + N_Record_Definition => + (1 => True, -- Component_List (Node1) + 2 => True, -- Interface_List (List2) + 3 => False, -- unused + 4 => True, -- End_Label (Node4) + 5 => False), -- unused + + N_Component_List => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Component_Items (List3) + 4 => True, -- Variant_Part (Node4) + 5 => False), -- unused + + N_Component_Declaration => + (1 => True, -- Defining_Identifier (Node1) + 2 => False, -- unused + 3 => True, -- Expression (Node3) + 4 => True, -- Component_Definition (Node4) + 5 => False), -- unused + + N_Variant_Part => + (1 => True, -- Variants (List1) + 2 => True, -- Name (Node2) + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Variant => + (1 => True, -- Component_List (Node1) + 2 => False, -- Enclosing_Variant (Node2-Sem) + 3 => False, -- Present_Expr (Uint3-Sem) + 4 => True, -- Discrete_Choices (List4) + 5 => False), -- Dcheck_Function (Node5-Sem) + + N_Others_Choice => + (1 => False, -- Others_Discrete_Choices (List1-Sem) + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Access_To_Object_Definition => + (1 => False, -- unused + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- unused + 5 => True), -- Subtype_Indication (Node5) + + N_Access_Function_Definition => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Parameter_Specifications (List3) + 4 => True, -- Result_Definition (Node4) + 5 => False), -- unused + + N_Access_Procedure_Definition => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Parameter_Specifications (List3) + 4 => False, -- unused + 5 => False), -- unused + + N_Access_Definition => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Access_To_Subprogram_Definition (Node3) + 4 => True, -- Subtype_Mark (Node4) + 5 => False), -- unused + + N_Incomplete_Type_Declaration => + (1 => True, -- Defining_Identifier (Node1) + 2 => False, -- unused + 3 => False, -- unused + 4 => True, -- Discriminant_Specifications (List4) + 5 => False), -- unused + + N_Explicit_Dereference => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Prefix (Node3) + 4 => False, -- Actual_Designated_Subtype (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Indexed_Component => + (1 => True, -- Expressions (List1) + 2 => False, -- unused + 3 => True, -- Prefix (Node3) + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_Slice => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Prefix (Node3) + 4 => True, -- Discrete_Range (Node4) + 5 => False), -- Etype (Node5-Sem) + + N_Selected_Component => + (1 => False, -- unused + 2 => True, -- Selector_Name (Node2) + 3 => True, -- Prefix (Node3) + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_Attribute_Reference => + (1 => True, -- Expressions (List1) + 2 => True, -- Attribute_Name (Name2) + 3 => True, -- Prefix (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Aggregate => + (1 => True, -- Expressions (List1) + 2 => True, -- Component_Associations (List2) + 3 => False, -- Aggregate_Bounds (Node3-Sem) + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_Component_Association => + (1 => True, -- Choices (List1) + 2 => False, -- Loop_Actions (List2-Sem) + 3 => True, -- Expression (Node3) + 4 => False, -- unused + 5 => False), -- unused + + N_Extension_Aggregate => + (1 => True, -- Expressions (List1) + 2 => True, -- Component_Associations (List2) + 3 => True, -- Ancestor_Part (Node3) + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_Null => + (1 => False, -- unused + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_And_Then => + (1 => False, -- Actions (List1-Sem) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_Or_Else => + (1 => False, -- Actions (List1-Sem) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_In => + (1 => False, -- unused + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_Not_In => + (1 => False, -- unused + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_Op_And => + (1 => True, -- Chars (Name1) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Or => + (1 => True, -- Chars (Name1) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Xor => + (1 => True, -- Chars (Name1) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Eq => + (1 => True, -- Chars (Name1) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Ne => + (1 => True, -- Chars (Name1) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Lt => + (1 => True, -- Chars (Name1) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Le => + (1 => True, -- Chars (Name1) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Gt => + (1 => True, -- Chars (Name1) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Ge => + (1 => True, -- Chars (Name1) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Add => + (1 => True, -- Chars (Name1) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Subtract => + (1 => True, -- Chars (Name1) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Concat => + (1 => True, -- Chars (Name1) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Multiply => + (1 => True, -- Chars (Name1) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Divide => + (1 => True, -- Chars (Name1) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Mod => + (1 => True, -- Chars (Name1) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Rem => + (1 => True, -- Chars (Name1) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Expon => + (1 => True, -- Chars (Name1) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Plus => + (1 => True, -- Chars (Name1) + 2 => False, -- unused + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Minus => + (1 => True, -- Chars (Name1) + 2 => False, -- unused + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Abs => + (1 => True, -- Chars (Name1) + 2 => False, -- unused + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Not => + (1 => True, -- Chars (Name1) + 2 => False, -- unused + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Type_Conversion => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Expression (Node3) + 4 => True, -- Subtype_Mark (Node4) + 5 => False), -- Etype (Node5-Sem) + + N_Qualified_Expression => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Expression (Node3) + 4 => True, -- Subtype_Mark (Node4) + 5 => False), -- Etype (Node5-Sem) + + N_Allocator => + (1 => False, -- Storage_Pool (Node1-Sem) + 2 => False, -- Procedure_To_Call (Node2-Sem) + 3 => True, -- Expression (Node3) + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_Null_Statement => + (1 => False, -- unused + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Label => + (1 => True, -- Identifier (Node1) + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Assignment_Statement => + (1 => False, -- unused + 2 => True, -- Name (Node2) + 3 => True, -- Expression (Node3) + 4 => False, -- unused + 5 => False), -- unused + + N_If_Statement => + (1 => True, -- Condition (Node1) + 2 => True, -- Then_Statements (List2) + 3 => True, -- Elsif_Parts (List3) + 4 => True, -- Else_Statements (List4) + 5 => True), -- End_Span (Uint5) + + N_Elsif_Part => + (1 => True, -- Condition (Node1) + 2 => True, -- Then_Statements (List2) + 3 => False, -- Condition_Actions (List3-Sem) + 4 => False, -- unused + 5 => False), -- unused + + N_Case_Statement => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Expression (Node3) + 4 => True, -- Alternatives (List4) + 5 => True), -- End_Span (Uint5) + + N_Case_Statement_Alternative => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Statements (List3) + 4 => True, -- Discrete_Choices (List4) + 5 => False), -- unused + + N_Loop_Statement => + (1 => True, -- Identifier (Node1) + 2 => True, -- Iteration_Scheme (Node2) + 3 => True, -- Statements (List3) + 4 => True, -- End_Label (Node4) + 5 => False), -- unused + + N_Iteration_Scheme => + (1 => True, -- Condition (Node1) + 2 => False, -- unused + 3 => False, -- Condition_Actions (List3-Sem) + 4 => True, -- Loop_Parameter_Specification (Node4) + 5 => False), -- unused + + N_Loop_Parameter_Specification => + (1 => True, -- Defining_Identifier (Node1) + 2 => False, -- unused + 3 => False, -- unused + 4 => True, -- Discrete_Subtype_Definition (Node4) + 5 => False), -- unused + + N_Block_Statement => + (1 => True, -- Identifier (Node1) + 2 => True, -- Declarations (List2) + 3 => False, -- Activation_Chain_Entity (Node3-Sem) + 4 => True, -- Handled_Statement_Sequence (Node4) + 5 => False), -- unused + + N_Exit_Statement => + (1 => True, -- Condition (Node1) + 2 => True, -- Name (Node2) + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Goto_Statement => + (1 => False, -- unused + 2 => True, -- Name (Node2) + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Subprogram_Declaration => + (1 => True, -- Specification (Node1) + 2 => False, -- unused + 3 => False, -- Body_To_Inline (Node3-Sem) + 4 => False, -- Parent_Spec (Node4-Sem) + 5 => False), -- Corresponding_Body (Node5-Sem) + + N_Abstract_Subprogram_Declaration => + (1 => True, -- Specification (Node1) + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Function_Specification => + (1 => True, -- Defining_Unit_Name (Node1) + 2 => False, -- Elaboration_Boolean (Node2-Sem) + 3 => True, -- Parameter_Specifications (List3) + 4 => True, -- Result_Definition (Node4) + 5 => False), -- Generic_Parent (Node5-Sem) + + N_Procedure_Specification => + (1 => True, -- Defining_Unit_Name (Node1) + 2 => False, -- Elaboration_Boolean (Node2-Sem) + 3 => True, -- Parameter_Specifications (List3) + 4 => False, -- unused + 5 => False), -- Generic_Parent (Node5-Sem) + + N_Designator => + (1 => True, -- Identifier (Node1) + 2 => True, -- Name (Node2) + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Defining_Program_Unit_Name => + (1 => True, -- Defining_Identifier (Node1) + 2 => True, -- Name (Node2) + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Operator_Symbol => + (1 => True, -- Chars (Name1) + 2 => False, -- unused + 3 => True, -- Strval (Str3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Defining_Operator_Symbol => + (1 => True, -- Chars (Name1) + 2 => False, -- Next_Entity (Node2-Sem) + 3 => False, -- Scope (Node3-Sem) + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_Parameter_Specification => + (1 => True, -- Defining_Identifier (Node1) + 2 => True, -- Parameter_Type (Node2) + 3 => True, -- Expression (Node3) + 4 => False, -- unused + 5 => False), -- Default_Expression (Node5-Sem) + + N_Subprogram_Body => + (1 => True, -- Specification (Node1) + 2 => True, -- Declarations (List2) + 3 => False, -- Activation_Chain_Entity (Node3-Sem) + 4 => True, -- Handled_Statement_Sequence (Node4) + 5 => False), -- Corresponding_Spec (Node5-Sem) + + N_Procedure_Call_Statement => + (1 => False, -- Controlling_Argument (Node1-Sem) + 2 => True, -- Name (Node2) + 3 => True, -- Parameter_Associations (List3) + 4 => False, -- First_Named_Actual (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Function_Call => + (1 => False, -- Controlling_Argument (Node1-Sem) + 2 => True, -- Name (Node2) + 3 => True, -- Parameter_Associations (List3) + 4 => False, -- First_Named_Actual (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Parameter_Association => + (1 => False, -- unused + 2 => True, -- Selector_Name (Node2) + 3 => True, -- Explicit_Actual_Parameter (Node3) + 4 => False, -- Next_Named_Actual (Node4-Sem) + 5 => False), -- unused + + N_Return_Statement => + (1 => False, -- Storage_Pool (Node1-Sem) + 2 => False, -- Procedure_To_Call (Node2-Sem) + 3 => True, -- Expression (Node3) + 4 => False, -- unused + 5 => False), -- Return_Statement_Entity (Node5-Sem) + + N_Extended_Return_Statement => + (1 => False, -- Storage_Pool (Node1-Sem) + 2 => False, -- Procedure_To_Call (Node2-Sem) + 3 => True, -- Return_Object_Declarations (List3) + 4 => True, -- Handled_Statement_Sequence (Node4) + 5 => False), -- Return_Statement_Entity (Node5-Sem) + + N_Package_Declaration => + (1 => True, -- Specification (Node1) + 2 => False, -- unused + 3 => False, -- Activation_Chain_Entity (Node3-Sem) + 4 => False, -- Parent_Spec (Node4-Sem) + 5 => False), -- Corresponding_Body (Node5-Sem) + + N_Package_Specification => + (1 => True, -- Defining_Unit_Name (Node1) + 2 => True, -- Visible_Declarations (List2) + 3 => True, -- Private_Declarations (List3) + 4 => True, -- End_Label (Node4) + 5 => False), -- Generic_Parent (Node5-Sem) + + N_Package_Body => + (1 => True, -- Defining_Unit_Name (Node1) + 2 => True, -- Declarations (List2) + 3 => False, -- unused + 4 => True, -- Handled_Statement_Sequence (Node4) + 5 => False), -- Corresponding_Spec (Node5-Sem) + + N_Private_Type_Declaration => + (1 => True, -- Defining_Identifier (Node1) + 2 => False, -- unused + 3 => False, -- unused + 4 => True, -- Discriminant_Specifications (List4) + 5 => False), -- unused + + N_Private_Extension_Declaration => + (1 => True, -- Defining_Identifier (Node1) + 2 => True, -- Interface_List (List2) + 3 => False, -- unused + 4 => True, -- Discriminant_Specifications (List4) + 5 => True), -- Subtype_Indication (Node5) + + N_Use_Package_Clause => + (1 => False, -- unused + 2 => True, -- Names (List2) + 3 => False, -- Next_Use_Clause (Node3-Sem) + 4 => False, -- Hidden_By_Use_Clause (Elist4-Sem) + 5 => False), -- unused + + N_Use_Type_Clause => + (1 => False, -- unused + 2 => True, -- Subtype_Marks (List2) + 3 => False, -- Next_Use_Clause (Node3-Sem) + 4 => False, -- Hidden_By_Use_Clause (Elist4-Sem) + 5 => False), -- unused + + N_Object_Renaming_Declaration => + (1 => True, -- Defining_Identifier (Node1) + 2 => True, -- Name (Node2) + 3 => True, -- Access_Definition (Node3) + 4 => True, -- Subtype_Mark (Node4) + 5 => False), -- Corresponding_Generic_Association (Node5-Sem) + + N_Exception_Renaming_Declaration => + (1 => True, -- Defining_Identifier (Node1) + 2 => True, -- Name (Node2) + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Package_Renaming_Declaration => + (1 => True, -- Defining_Unit_Name (Node1) + 2 => True, -- Name (Node2) + 3 => False, -- unused + 4 => False, -- Parent_Spec (Node4-Sem) + 5 => False), -- unused + + N_Subprogram_Renaming_Declaration => + (1 => True, -- Specification (Node1) + 2 => True, -- Name (Node2) + 3 => False, -- Corresponding_Formal_Spec (Node3-Sem) + 4 => False, -- Parent_Spec (Node4-Sem) + 5 => False), -- Corresponding_Spec (Node5-Sem) + + N_Generic_Package_Renaming_Declaration => + (1 => True, -- Defining_Unit_Name (Node1) + 2 => True, -- Name (Node2) + 3 => False, -- unused + 4 => False, -- Parent_Spec (Node4-Sem) + 5 => False), -- unused + + N_Generic_Procedure_Renaming_Declaration => + (1 => True, -- Defining_Unit_Name (Node1) + 2 => True, -- Name (Node2) + 3 => False, -- unused + 4 => False, -- Parent_Spec (Node4-Sem) + 5 => False), -- unused + + N_Generic_Function_Renaming_Declaration => + (1 => True, -- Defining_Unit_Name (Node1) + 2 => True, -- Name (Node2) + 3 => False, -- unused + 4 => False, -- Parent_Spec (Node4-Sem) + 5 => False), -- unused + + N_Task_Type_Declaration => + (1 => True, -- Defining_Identifier (Node1) + 2 => True, -- Interface_List (List2) + 3 => True, -- Task_Definition (Node3) + 4 => True, -- Discriminant_Specifications (List4) + 5 => False), -- Corresponding_Body (Node5-Sem) + + N_Single_Task_Declaration => + (1 => True, -- Defining_Identifier (Node1) + 2 => True, -- Interface_List (List2) + 3 => True, -- Task_Definition (Node3) + 4 => False, -- unused + 5 => False), -- unused + + N_Task_Definition => + (1 => False, -- unused + 2 => True, -- Visible_Declarations (List2) + 3 => True, -- Private_Declarations (List3) + 4 => True, -- End_Label (Node4) + 5 => False), -- unused + + N_Task_Body => + (1 => True, -- Defining_Identifier (Node1) + 2 => True, -- Declarations (List2) + 3 => False, -- Activation_Chain_Entity (Node3-Sem) + 4 => True, -- Handled_Statement_Sequence (Node4) + 5 => False), -- Corresponding_Spec (Node5-Sem) + + N_Protected_Type_Declaration => + (1 => True, -- Defining_Identifier (Node1) + 2 => True, -- Interface_List (List2) + 3 => True, -- Protected_Definition (Node3) + 4 => True, -- Discriminant_Specifications (List4) + 5 => False), -- Corresponding_Body (Node5-Sem) + + N_Single_Protected_Declaration => + (1 => True, -- Defining_Identifier (Node1) + 2 => True, -- Interface_List (List2) + 3 => True, -- Protected_Definition (Node3) + 4 => False, -- unused + 5 => False), -- unused + + N_Protected_Definition => + (1 => False, -- unused + 2 => True, -- Visible_Declarations (List2) + 3 => True, -- Private_Declarations (List3) + 4 => True, -- End_Label (Node4) + 5 => False), -- unused + + N_Protected_Body => + (1 => True, -- Defining_Identifier (Node1) + 2 => True, -- Declarations (List2) + 3 => False, -- unused + 4 => True, -- End_Label (Node4) + 5 => False), -- Corresponding_Spec (Node5-Sem) + + N_Entry_Declaration => + (1 => True, -- Defining_Identifier (Node1) + 2 => False, -- unused + 3 => True, -- Parameter_Specifications (List3) + 4 => True, -- Discrete_Subtype_Definition (Node4) + 5 => False), -- Corresponding_Body (Node5-Sem) + + N_Accept_Statement => + (1 => True, -- Entry_Direct_Name (Node1) + 2 => True, -- Declarations (List2) + 3 => True, -- Parameter_Specifications (List3) + 4 => True, -- Handled_Statement_Sequence (Node4) + 5 => True), -- Entry_Index (Node5) + + N_Entry_Body => + (1 => True, -- Defining_Identifier (Node1) + 2 => True, -- Declarations (List2) + 3 => False, -- Activation_Chain_Entity (Node3-Sem) + 4 => True, -- Handled_Statement_Sequence (Node4) + 5 => True), -- Entry_Body_Formal_Part (Node5) + + N_Entry_Body_Formal_Part => + (1 => True, -- Condition (Node1) + 2 => False, -- unused + 3 => True, -- Parameter_Specifications (List3) + 4 => True, -- Entry_Index_Specification (Node4) + 5 => False), -- unused + + N_Entry_Index_Specification => + (1 => True, -- Defining_Identifier (Node1) + 2 => False, -- unused + 3 => False, -- unused + 4 => True, -- Discrete_Subtype_Definition (Node4) + 5 => False), -- unused + + N_Entry_Call_Statement => + (1 => False, -- unused + 2 => True, -- Name (Node2) + 3 => True, -- Parameter_Associations (List3) + 4 => False, -- First_Named_Actual (Node4-Sem) + 5 => False), -- unused + + N_Requeue_Statement => + (1 => False, -- unused + 2 => True, -- Name (Node2) + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Delay_Until_Statement => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Expression (Node3) + 4 => False, -- unused + 5 => False), -- unused + + N_Delay_Relative_Statement => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Expression (Node3) + 4 => False, -- unused + 5 => False), -- unused + + N_Selective_Accept => + (1 => True, -- Select_Alternatives (List1) + 2 => False, -- unused + 3 => False, -- unused + 4 => True, -- Else_Statements (List4) + 5 => False), -- unused + + N_Accept_Alternative => + (1 => True, -- Condition (Node1) + 2 => True, -- Accept_Statement (Node2) + 3 => True, -- Statements (List3) + 4 => True, -- Pragmas_Before (List4) + 5 => False), -- Accept_Handler_Records (List5-Sem) + + N_Delay_Alternative => + (1 => True, -- Condition (Node1) + 2 => True, -- Delay_Statement (Node2) + 3 => True, -- Statements (List3) + 4 => True, -- Pragmas_Before (List4) + 5 => False), -- unused + + N_Terminate_Alternative => + (1 => True, -- Condition (Node1) + 2 => False, -- unused + 3 => False, -- unused + 4 => True, -- Pragmas_Before (List4) + 5 => True), -- Pragmas_After (List5) + + N_Timed_Entry_Call => + (1 => True, -- Entry_Call_Alternative (Node1) + 2 => False, -- unused + 3 => False, -- unused + 4 => True, -- Delay_Alternative (Node4) + 5 => False), -- unused + + N_Entry_Call_Alternative => + (1 => True, -- Entry_Call_Statement (Node1) + 2 => False, -- unused + 3 => True, -- Statements (List3) + 4 => True, -- Pragmas_Before (List4) + 5 => False), -- unused + + N_Conditional_Entry_Call => + (1 => True, -- Entry_Call_Alternative (Node1) + 2 => False, -- unused + 3 => False, -- unused + 4 => True, -- Else_Statements (List4) + 5 => False), -- unused + + N_Asynchronous_Select => + (1 => True, -- Triggering_Alternative (Node1) + 2 => True, -- Abortable_Part (Node2) + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Triggering_Alternative => + (1 => True, -- Triggering_Statement (Node1) + 2 => False, -- unused + 3 => True, -- Statements (List3) + 4 => True, -- Pragmas_Before (List4) + 5 => False), -- unused + + N_Abortable_Part => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Statements (List3) + 4 => False, -- unused + 5 => False), -- unused + + N_Abort_Statement => + (1 => False, -- unused + 2 => True, -- Names (List2) + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Compilation_Unit => + (1 => True, -- Context_Items (List1) + 2 => True, -- Unit (Node2) + 3 => False, -- First_Inlined_Subprogram (Node3-Sem) + 4 => False, -- Library_Unit (Node4-Sem) + 5 => True), -- Aux_Decls_Node (Node5) + + N_Compilation_Unit_Aux => + (1 => True, -- Actions (List1) + 2 => True, -- Declarations (List2) + 3 => False, -- unused + 4 => True, -- Config_Pragmas (List4) + 5 => True), -- Pragmas_After (List5) + + N_With_Clause => + (1 => False, -- unused + 2 => True, -- Name (Node2) + 3 => False, -- unused + 4 => False, -- Library_Unit (Node4-Sem) + 5 => False), -- Corresponding_Spec (Node5-Sem) + + N_With_Type_Clause => + (1 => False, -- unused + 2 => True, -- Name (Node2) + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Subprogram_Body_Stub => + (1 => True, -- Specification (Node1) + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- Library_Unit (Node4-Sem) + 5 => False), -- Corresponding_Body (Node5-Sem) + + N_Package_Body_Stub => + (1 => True, -- Defining_Identifier (Node1) + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- Library_Unit (Node4-Sem) + 5 => False), -- Corresponding_Body (Node5-Sem) + + N_Task_Body_Stub => + (1 => True, -- Defining_Identifier (Node1) + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- Library_Unit (Node4-Sem) + 5 => False), -- Corresponding_Body (Node5-Sem) + + N_Protected_Body_Stub => + (1 => True, -- Defining_Identifier (Node1) + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- Library_Unit (Node4-Sem) + 5 => False), -- Corresponding_Body (Node5-Sem) + + N_Subunit => + (1 => True, -- Proper_Body (Node1) + 2 => True, -- Name (Node2) + 3 => False, -- Corresponding_Stub (Node3-Sem) + 4 => False, -- unused + 5 => False), -- unused + + N_Exception_Declaration => + (1 => True, -- Defining_Identifier (Node1) + 2 => False, -- unused + 3 => False, -- Expression (Node3-Sem) + 4 => False, -- unused + 5 => False), -- unused + + N_Handled_Sequence_Of_Statements => + (1 => True, -- At_End_Proc (Node1) + 2 => False, -- First_Real_Statement (Node2-Sem) + 3 => True, -- Statements (List3) + 4 => True, -- End_Label (Node4) + 5 => True), -- Exception_Handlers (List5) + + N_Exception_Handler => + (1 => False, -- unused + 2 => True, -- Choice_Parameter (Node2) + 3 => True, -- Statements (List3) + 4 => True, -- Exception_Choices (List4) + 5 => False), -- unused + + N_Raise_Statement => + (1 => False, -- unused + 2 => True, -- Name (Node2) + 3 => True, -- Expression (Node3) + 4 => False, -- unused + 5 => False), -- unused + + N_Generic_Subprogram_Declaration => + (1 => True, -- Specification (Node1) + 2 => True, -- Generic_Formal_Declarations (List2) + 3 => False, -- unused + 4 => False, -- Parent_Spec (Node4-Sem) + 5 => False), -- Corresponding_Body (Node5-Sem) + + N_Generic_Package_Declaration => + (1 => True, -- Specification (Node1) + 2 => True, -- Generic_Formal_Declarations (List2) + 3 => False, -- Activation_Chain_Entity (Node3-Sem) + 4 => False, -- Parent_Spec (Node4-Sem) + 5 => False), -- Corresponding_Body (Node5-Sem) + + N_Package_Instantiation => + (1 => True, -- Defining_Unit_Name (Node1) + 2 => True, -- Name (Node2) + 3 => True, -- Generic_Associations (List3) + 4 => False, -- Parent_Spec (Node4-Sem) + 5 => False), -- Instance_Spec (Node5-Sem) + + N_Procedure_Instantiation => + (1 => True, -- Defining_Unit_Name (Node1) + 2 => True, -- Name (Node2) + 3 => True, -- Generic_Associations (List3) + 4 => False, -- Parent_Spec (Node4-Sem) + 5 => False), -- Instance_Spec (Node5-Sem) + + N_Function_Instantiation => + (1 => True, -- Defining_Unit_Name (Node1) + 2 => True, -- Name (Node2) + 3 => True, -- Generic_Associations (List3) + 4 => False, -- Parent_Spec (Node4-Sem) + 5 => False), -- Instance_Spec (Node5-Sem) + + N_Generic_Association => + (1 => True, -- Explicit_Generic_Actual_Parameter (Node1) + 2 => True, -- Selector_Name (Node2) + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Formal_Object_Declaration => + (1 => True, -- Defining_Identifier (Node1) + 2 => False, -- unused + 3 => True, -- Access_Definition (Node3) + 4 => True, -- Subtype_Mark (Node4) + 5 => True), -- Default_Expression (Node5) + + N_Formal_Type_Declaration => + (1 => True, -- Defining_Identifier (Node1) + 2 => False, -- unused + 3 => True, -- Formal_Type_Definition (Node3) + 4 => True, -- Discriminant_Specifications (List4) + 5 => False), -- unused + + N_Formal_Private_Type_Definition => + (1 => False, -- unused + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Formal_Derived_Type_Definition => + (1 => False, -- unused + 2 => True, -- Interface_List (List2) + 3 => False, -- unused + 4 => True, -- Subtype_Mark (Node4) + 5 => False), -- unused + + N_Formal_Discrete_Type_Definition => + (1 => False, -- unused + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Formal_Signed_Integer_Type_Definition => + (1 => False, -- unused + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Formal_Modular_Type_Definition => + (1 => False, -- unused + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Formal_Floating_Point_Definition => + (1 => False, -- unused + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Formal_Ordinary_Fixed_Point_Definition => + (1 => False, -- unused + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Formal_Decimal_Fixed_Point_Definition => + (1 => False, -- unused + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Formal_Concrete_Subprogram_Declaration => + (1 => True, -- Specification (Node1) + 2 => True, -- Default_Name (Node2) + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Formal_Abstract_Subprogram_Declaration => + (1 => True, -- Specification (Node1) + 2 => True, -- Default_Name (Node2) + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Formal_Package_Declaration => + (1 => True, -- Defining_Identifier (Node1) + 2 => True, -- Name (Node2) + 3 => True, -- Generic_Associations (List3) + 4 => False, -- unused + 5 => False), -- Instance_Spec (Node5-Sem) + + N_Attribute_Definition_Clause => + (1 => True, -- Chars (Name1) + 2 => True, -- Name (Node2) + 3 => True, -- Expression (Node3) + 4 => False, -- unused + 5 => False), -- Next_Rep_Item (Node5-Sem) + + N_Enumeration_Representation_Clause => + (1 => True, -- Identifier (Node1) + 2 => False, -- unused + 3 => True, -- Array_Aggregate (Node3) + 4 => False, -- unused + 5 => False), -- Next_Rep_Item (Node5-Sem) + + N_Record_Representation_Clause => + (1 => True, -- Identifier (Node1) + 2 => True, -- Mod_Clause (Node2) + 3 => True, -- Component_Clauses (List3) + 4 => False, -- unused + 5 => False), -- Next_Rep_Item (Node5-Sem) + + N_Component_Clause => + (1 => True, -- Component_Name (Node1) + 2 => True, -- Position (Node2) + 3 => True, -- First_Bit (Node3) + 4 => True, -- Last_Bit (Node4) + 5 => False), -- unused + + N_Code_Statement => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Expression (Node3) + 4 => False, -- unused + 5 => False), -- unused + + N_Op_Rotate_Left => + (1 => True, -- Chars (Name1) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Rotate_Right => + (1 => True, -- Chars (Name1) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Shift_Left => + (1 => True, -- Chars (Name1) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Shift_Right_Arithmetic => + (1 => True, -- Chars (Name1) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Op_Shift_Right => + (1 => True, -- Chars (Name1) + 2 => True, -- Left_Opnd (Node2) + 3 => True, -- Right_Opnd (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Delta_Constraint => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Delta_Expression (Node3) + 4 => True, -- Range_Constraint (Node4) + 5 => False), -- unused + + N_At_Clause => + (1 => True, -- Identifier (Node1) + 2 => False, -- unused + 3 => True, -- Expression (Node3) + 4 => False, -- unused + 5 => False), -- unused + + N_Mod_Clause => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Expression (Node3) + 4 => True, -- Pragmas_Before (List4) + 5 => False), -- unused + + N_Conditional_Expression => + (1 => True, -- Expressions (List1) + 2 => False, -- Then_Actions (List2-Sem) + 3 => False, -- Else_Actions (List3-Sem) + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_Expanded_Name => + (1 => True, -- Chars (Name1) + 2 => True, -- Selector_Name (Node2) + 3 => True, -- Prefix (Node3) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- Etype (Node5-Sem) + + N_Free_Statement => + (1 => False, -- Storage_Pool (Node1-Sem) + 2 => False, -- Procedure_To_Call (Node2-Sem) + 3 => True, -- Expression (Node3) + 4 => False, -- Actual_Designated_Subtype (Node4-Sem) + 5 => False), -- unused + + N_Freeze_Entity => + (1 => True, -- Actions (List1) + 2 => False, -- Access_Types_To_Process (Elist2-Sem) + 3 => False, -- TSS_Elist (Elist3-Sem) + 4 => False, -- Entity (Node4-Sem) + 5 => False), -- First_Subtype_Link (Node5-Sem) + + N_Implicit_Label_Declaration => + (1 => True, -- Defining_Identifier (Node1) + 2 => False, -- Label_Construct (Node2-Sem) + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Itype_Reference => + (1 => False, -- Itype (Node1-Sem) + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Raise_Constraint_Error => + (1 => True, -- Condition (Node1) + 2 => False, -- unused + 3 => True, -- Reason (Uint3) + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_Raise_Program_Error => + (1 => True, -- Condition (Node1) + 2 => False, -- unused + 3 => True, -- Reason (Uint3) + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_Raise_Storage_Error => + (1 => True, -- Condition (Node1) + 2 => False, -- unused + 3 => True, -- Reason (Uint3) + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_Reference => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Prefix (Node3) + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_Subprogram_Info => + (1 => True, -- Identifier (Node1) + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_Unchecked_Expression => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Expression (Node3) + 4 => False, -- unused + 5 => False), -- Etype (Node5-Sem) + + N_Unchecked_Type_Conversion => + (1 => False, -- unused + 2 => False, -- unused + 3 => True, -- Expression (Node3) + 4 => True, -- Subtype_Mark (Node4) + 5 => False), -- Etype (Node5-Sem) + + N_Validate_Unchecked_Conversion => + (1 => False, -- Source_Type (Node1-Sem) + 2 => False, -- Target_Type (Node2-Sem) + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + -- End of inserted output from makeisf program + + -- Entries for Empty, Error and Unused. Even thought these have a Chars + -- field for debugging purposes, they are not really syntactic fields, so + -- we mark all fields as unused. + + N_Empty => + (1 => False, -- unused + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Error => + (1 => False, -- unused + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Unused_At_Start => + (1 => False, -- unused + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- unused + 5 => False), -- unused + + N_Unused_At_End => + (1 => False, -- unused + 2 => False, -- unused + 3 => False, -- unused + 4 => False, -- unused + 5 => False)); -- unused + -------------------- -- Inline Pragmas -- -------------------- @@ -8793,6 +10443,7 @@ package Sinfo is pragma Inline (Check_Address_Alignment); pragma Inline (Choice_Parameter); pragma Inline (Choices); + pragma Inline (Comes_From_Extended_Return_Statement); pragma Inline (Compile_Time_Known_Aggregate); pragma Inline (Component_Associations); pragma Inline (Component_Clauses); @@ -8912,12 +10563,14 @@ package Sinfo is pragma Inline (Is_Component_Left_Opnd); pragma Inline (Is_Component_Right_Opnd); pragma Inline (Is_Controlling_Actual); + pragma Inline (Is_Entry_Barrier_Function); pragma Inline (Is_In_Discriminant_Check); pragma Inline (Is_Machine_Number); pragma Inline (Is_Null_Loop); pragma Inline (Is_Overloaded); pragma Inline (Is_Power_Of_2_For_Shift); pragma Inline (Is_Protected_Subprogram_Body); + pragma Inline (Has_Self_Reference); pragma Inline (Is_Static_Expression); pragma Inline (Is_Subprogram_Descriptor); pragma Inline (Is_Task_Allocation_Block); @@ -8989,7 +10642,8 @@ package Sinfo is pragma Inline (Record_Extension_Part); pragma Inline (Redundant_Use); pragma Inline (Result_Definition); - pragma Inline (Return_Type); + pragma Inline (Return_Object_Declarations); + pragma Inline (Return_Statement_Entity); pragma Inline (Reverse_Present); pragma Inline (Right_Opnd); pragma Inline (Rounded_Result); @@ -9064,6 +10718,7 @@ package Sinfo is pragma Inline (Set_Check_Address_Alignment); pragma Inline (Set_Choice_Parameter); pragma Inline (Set_Choices); + pragma Inline (Set_Comes_From_Extended_Return_Statement); pragma Inline (Set_Compile_Time_Known_Aggregate); pragma Inline (Set_Component_Associations); pragma Inline (Set_Component_Clauses); @@ -9182,12 +10837,14 @@ package Sinfo is pragma Inline (Set_Is_Component_Left_Opnd); pragma Inline (Set_Is_Component_Right_Opnd); pragma Inline (Set_Is_Controlling_Actual); + pragma Inline (Set_Is_Entry_Barrier_Function); pragma Inline (Set_Is_In_Discriminant_Check); pragma Inline (Set_Is_Machine_Number); pragma Inline (Set_Is_Null_Loop); pragma Inline (Set_Is_Overloaded); pragma Inline (Set_Is_Power_Of_2_For_Shift); pragma Inline (Set_Is_Protected_Subprogram_Body); + pragma Inline (Set_Has_Self_Reference); pragma Inline (Set_Is_Static_Expression); pragma Inline (Set_Is_Subprogram_Descriptor); pragma Inline (Set_Is_Task_Allocation_Block); @@ -9258,7 +10915,7 @@ package Sinfo is pragma Inline (Set_Record_Extension_Part); pragma Inline (Set_Redundant_Use); pragma Inline (Set_Result_Definition); - pragma Inline (Set_Return_Type); + pragma Inline (Set_Return_Object_Declarations); pragma Inline (Set_Reverse_Present); pragma Inline (Set_Right_Opnd); pragma Inline (Set_Rounded_Result); diff --git a/gcc/ada/snames.adb b/gcc/ada/snames.adb index 7af4329..96ae94a 100644 --- a/gcc/ada/snames.adb +++ b/gcc/ada/snames.adb @@ -201,6 +201,7 @@ package body Snames is "normalize_scalars#" & "polling#" & "persistent_bss#" & + "priority_specific_dispatching#" & "profile#" & "profile_warnings#" & "propagate_exceptions#" & @@ -221,6 +222,7 @@ package body Snames is "use_vads_size#" & "validity_checks#" & "warnings#" & + "wide_character_encoding#" & "abort_defer#" & "all_calls_remote#" & "annotate#" & @@ -287,9 +289,9 @@ package body Snames is "pack#" & "page#" & "passive#" & + "preelaborable_initialization#" & "preelaborate#" & "preelaborate_05#" & - "priority#" & "psect_object#" & "pure#" & "pure_05#" & @@ -482,6 +484,7 @@ package body Snames is "pool_address#" & "pos#" & "position#" & + "priority#" & "range#" & "range_length#" & "round#" & @@ -548,13 +551,18 @@ package body Snames is "storage_pool#" & "base#" & "class#" & + "stub_type#" & "ceiling_locking#" & "inheritance_locking#" & "fifo_queuing#" & "priority_queuing#" & + "edf_across_priorities#" & "fifo_within_priorities#" & + "non_preemptive_within_priorities#" & + "round_robin_within_priorities#" & "access_check#" & "accessibility_check#" & + "alignment_check#" & "discriminant_check#" & "division_check#" & "elaboration_check#" & @@ -564,6 +572,7 @@ package body Snames is "range_check#" & "storage_check#" & "tag_check#" & + "validity_check#" & "all_checks#" & "abort#" & "abs#" & @@ -852,6 +861,28 @@ package body Snames is end case; end Get_Convention_Id; + ------------------------- + -- Get_Convention_Name -- + ------------------------- + + function Get_Convention_Name (C : Convention_Id) return Name_Id is + begin + case C is + when Convention_Ada => return Name_Ada; + when Convention_Assembler => return Name_Assembler; + when Convention_C => return Name_C; + when Convention_COBOL => return Name_COBOL; + when Convention_CPP => return Name_CPP; + when Convention_Entry => return Name_Entry; + when Convention_Fortran => return Name_Fortran; + when Convention_Intrinsic => return Name_Intrinsic; + when Convention_Java => return Name_Java; + when Convention_Protected => return Name_Protected; + when Convention_Stdcall => return Name_Stdcall; + when Convention_Stubbed => return Name_Stubbed; + end case; + end Get_Convention_Name; + --------------------------- -- Get_Locking_Policy_Id -- --------------------------- @@ -871,6 +902,8 @@ package body Snames is return Pragma_AST_Entry; elsif N = Name_Interface then return Pragma_Interface; + elsif N = Name_Priority then + return Pragma_Priority; elsif N = Name_Storage_Size then return Pragma_Storage_Size; elsif N = Name_Storage_Unit then @@ -1057,6 +1090,7 @@ package body Snames is return N in First_Pragma_Name .. Last_Pragma_Name or else N = Name_AST_Entry or else N = Name_Interface + or else N = Name_Priority or else N = Name_Storage_Size or else N = Name_Storage_Unit; end Is_Pragma_Name; diff --git a/gcc/ada/snames.ads b/gcc/ada/snames.ads index 82134b2..0c6af6e 100644 --- a/gcc/ada/snames.ads +++ b/gcc/ada/snames.ads @@ -362,115 +362,124 @@ package Snames is Name_Normalize_Scalars : constant Name_Id := N + 140; Name_Polling : constant Name_Id := N + 141; -- GNAT Name_Persistent_BSS : constant Name_Id := N + 142; -- GNAT - Name_Profile : constant Name_Id := N + 143; -- Ada 05 - Name_Profile_Warnings : constant Name_Id := N + 144; -- GNAT - Name_Propagate_Exceptions : constant Name_Id := N + 145; -- GNAT - Name_Queuing_Policy : constant Name_Id := N + 146; - Name_Ravenscar : constant Name_Id := N + 147; -- Ada 05 - Name_Restricted_Run_Time : constant Name_Id := N + 148; -- GNAT - Name_Restrictions : constant Name_Id := N + 149; - Name_Restriction_Warnings : constant Name_Id := N + 150; -- GNAT - Name_Reviewable : constant Name_Id := N + 151; - Name_Source_File_Name : constant Name_Id := N + 152; -- GNAT - Name_Source_File_Name_Project : constant Name_Id := N + 153; -- GNAT - Name_Style_Checks : constant Name_Id := N + 154; -- GNAT - Name_Suppress : constant Name_Id := N + 155; - Name_Suppress_Exception_Locations : constant Name_Id := N + 156; -- GNAT - Name_Task_Dispatching_Policy : constant Name_Id := N + 157; - Name_Universal_Data : constant Name_Id := N + 158; -- AAMP - Name_Unsuppress : constant Name_Id := N + 159; -- GNAT - Name_Use_VADS_Size : constant Name_Id := N + 160; -- GNAT - Name_Validity_Checks : constant Name_Id := N + 161; -- GNAT - Name_Warnings : constant Name_Id := N + 162; -- GNAT - Last_Configuration_Pragma_Name : constant Name_Id := N + 162; + Name_Priority_Specific_Dispatching : constant Name_Id := N + 143; -- Ada 05 + Name_Profile : constant Name_Id := N + 144; -- Ada 05 + Name_Profile_Warnings : constant Name_Id := N + 145; -- GNAT + Name_Propagate_Exceptions : constant Name_Id := N + 146; -- GNAT + Name_Queuing_Policy : constant Name_Id := N + 147; + Name_Ravenscar : constant Name_Id := N + 148; -- Ada 05 + Name_Restricted_Run_Time : constant Name_Id := N + 149; -- GNAT + Name_Restrictions : constant Name_Id := N + 150; + Name_Restriction_Warnings : constant Name_Id := N + 151; -- GNAT + Name_Reviewable : constant Name_Id := N + 152; + Name_Source_File_Name : constant Name_Id := N + 153; -- GNAT + Name_Source_File_Name_Project : constant Name_Id := N + 154; -- GNAT + Name_Style_Checks : constant Name_Id := N + 155; -- GNAT + Name_Suppress : constant Name_Id := N + 156; + Name_Suppress_Exception_Locations : constant Name_Id := N + 157; -- GNAT + Name_Task_Dispatching_Policy : constant Name_Id := N + 158; + Name_Universal_Data : constant Name_Id := N + 159; -- AAMP + Name_Unsuppress : constant Name_Id := N + 160; -- GNAT + Name_Use_VADS_Size : constant Name_Id := N + 161; -- GNAT + Name_Validity_Checks : constant Name_Id := N + 162; -- GNAT + Name_Warnings : constant Name_Id := N + 163; -- GNAT + Name_Wide_Character_Encoding : constant Name_Id := N + 164; -- GNAT + Last_Configuration_Pragma_Name : constant Name_Id := N + 164; -- Remaining pragma names - Name_Abort_Defer : constant Name_Id := N + 163; -- GNAT - Name_All_Calls_Remote : constant Name_Id := N + 164; - Name_Annotate : constant Name_Id := N + 165; -- GNAT + Name_Abort_Defer : constant Name_Id := N + 165; -- GNAT + Name_All_Calls_Remote : constant Name_Id := N + 166; + Name_Annotate : constant Name_Id := N + 167; -- GNAT -- Note: AST_Entry is not in this list because its name matches the -- name of the corresponding attribute. However, it is included in the - -- definition of the type Attribute_Id, and the functions Get_Pragma_Id + -- definition of the type Pragma_Id, and the functions Get_Pragma_Id -- and Check_Pragma_Id correctly recognize and process Name_AST_Entry. -- AST_Entry is a VMS specific pragma. - Name_Assert : constant Name_Id := N + 166; -- Ada 05 - Name_Asynchronous : constant Name_Id := N + 167; - Name_Atomic : constant Name_Id := N + 168; - Name_Atomic_Components : constant Name_Id := N + 169; - Name_Attach_Handler : constant Name_Id := N + 170; - Name_Comment : constant Name_Id := N + 171; -- GNAT - Name_Common_Object : constant Name_Id := N + 172; -- GNAT - Name_Complete_Representation : constant Name_Id := N + 173; -- GNAT - Name_Complex_Representation : constant Name_Id := N + 174; -- GNAT - Name_Controlled : constant Name_Id := N + 175; - Name_Convention : constant Name_Id := N + 176; - Name_CPP_Class : constant Name_Id := N + 177; -- GNAT - Name_CPP_Constructor : constant Name_Id := N + 178; -- GNAT - Name_CPP_Virtual : constant Name_Id := N + 179; -- GNAT - Name_CPP_Vtable : constant Name_Id := N + 180; -- GNAT - Name_Debug : constant Name_Id := N + 181; -- GNAT - Name_Elaborate : constant Name_Id := N + 182; -- Ada 83 - Name_Elaborate_All : constant Name_Id := N + 183; - Name_Elaborate_Body : constant Name_Id := N + 184; - Name_Export : constant Name_Id := N + 185; - Name_Export_Exception : constant Name_Id := N + 186; -- VMS - Name_Export_Function : constant Name_Id := N + 187; -- GNAT - Name_Export_Object : constant Name_Id := N + 188; -- GNAT - Name_Export_Procedure : constant Name_Id := N + 189; -- GNAT - Name_Export_Value : constant Name_Id := N + 190; -- GNAT - Name_Export_Valued_Procedure : constant Name_Id := N + 191; -- GNAT - Name_External : constant Name_Id := N + 192; -- GNAT - Name_Finalize_Storage_Only : constant Name_Id := N + 193; -- GNAT - Name_Ident : constant Name_Id := N + 194; -- VMS - Name_Import : constant Name_Id := N + 195; - Name_Import_Exception : constant Name_Id := N + 196; -- VMS - Name_Import_Function : constant Name_Id := N + 197; -- GNAT - Name_Import_Object : constant Name_Id := N + 198; -- GNAT - Name_Import_Procedure : constant Name_Id := N + 199; -- GNAT - Name_Import_Valued_Procedure : constant Name_Id := N + 200; -- GNAT - Name_Inline : constant Name_Id := N + 201; - Name_Inline_Always : constant Name_Id := N + 202; -- GNAT - Name_Inline_Generic : constant Name_Id := N + 203; -- GNAT - Name_Inspection_Point : constant Name_Id := N + 204; - Name_Interface_Name : constant Name_Id := N + 205; -- GNAT - Name_Interrupt_Handler : constant Name_Id := N + 206; - Name_Interrupt_Priority : constant Name_Id := N + 207; - Name_Java_Constructor : constant Name_Id := N + 208; -- GNAT - Name_Java_Interface : constant Name_Id := N + 209; -- GNAT - Name_Keep_Names : constant Name_Id := N + 210; -- GNAT - Name_Link_With : constant Name_Id := N + 211; -- GNAT - Name_Linker_Alias : constant Name_Id := N + 212; -- GNAT - Name_Linker_Constructor : constant Name_Id := N + 213; -- GNAT - Name_Linker_Destructor : constant Name_Id := N + 214; -- GNAT - Name_Linker_Options : constant Name_Id := N + 215; - Name_Linker_Section : constant Name_Id := N + 216; -- GNAT - Name_List : constant Name_Id := N + 217; - Name_Machine_Attribute : constant Name_Id := N + 218; -- GNAT - Name_Main : constant Name_Id := N + 219; -- GNAT - Name_Main_Storage : constant Name_Id := N + 220; -- GNAT - Name_Memory_Size : constant Name_Id := N + 221; -- Ada 83 - Name_No_Return : constant Name_Id := N + 222; -- GNAT - Name_Obsolescent : constant Name_Id := N + 223; -- GNAT - Name_Optimize : constant Name_Id := N + 224; - Name_Optional_Overriding : constant Name_Id := N + 225; -- Ada 05 - Name_Pack : constant Name_Id := N + 226; - Name_Page : constant Name_Id := N + 227; - Name_Passive : constant Name_Id := N + 228; -- GNAT - Name_Preelaborate : constant Name_Id := N + 229; - Name_Preelaborate_05 : constant Name_Id := N + 230; -- GNAT - Name_Priority : constant Name_Id := N + 231; - Name_Psect_Object : constant Name_Id := N + 232; -- VMS - Name_Pure : constant Name_Id := N + 233; - Name_Pure_05 : constant Name_Id := N + 234; -- GNAT - Name_Pure_Function : constant Name_Id := N + 235; -- GNAT - Name_Remote_Call_Interface : constant Name_Id := N + 236; - Name_Remote_Types : constant Name_Id := N + 237; - Name_Share_Generic : constant Name_Id := N + 238; -- GNAT - Name_Shared : constant Name_Id := N + 239; -- Ada 83 - Name_Shared_Passive : constant Name_Id := N + 240; + Name_Assert : constant Name_Id := N + 168; -- Ada 05 + Name_Asynchronous : constant Name_Id := N + 169; + Name_Atomic : constant Name_Id := N + 170; + Name_Atomic_Components : constant Name_Id := N + 171; + Name_Attach_Handler : constant Name_Id := N + 172; + Name_Comment : constant Name_Id := N + 173; -- GNAT + Name_Common_Object : constant Name_Id := N + 174; -- GNAT + Name_Complete_Representation : constant Name_Id := N + 175; -- GNAT + Name_Complex_Representation : constant Name_Id := N + 176; -- GNAT + Name_Controlled : constant Name_Id := N + 177; + Name_Convention : constant Name_Id := N + 178; + Name_CPP_Class : constant Name_Id := N + 179; -- GNAT + Name_CPP_Constructor : constant Name_Id := N + 180; -- GNAT + Name_CPP_Virtual : constant Name_Id := N + 181; -- GNAT + Name_CPP_Vtable : constant Name_Id := N + 182; -- GNAT + Name_Debug : constant Name_Id := N + 183; -- GNAT + Name_Elaborate : constant Name_Id := N + 184; -- Ada 83 + Name_Elaborate_All : constant Name_Id := N + 185; + Name_Elaborate_Body : constant Name_Id := N + 186; + Name_Export : constant Name_Id := N + 187; + Name_Export_Exception : constant Name_Id := N + 188; -- VMS + Name_Export_Function : constant Name_Id := N + 189; -- GNAT + Name_Export_Object : constant Name_Id := N + 190; -- GNAT + Name_Export_Procedure : constant Name_Id := N + 191; -- GNAT + Name_Export_Value : constant Name_Id := N + 192; -- GNAT + Name_Export_Valued_Procedure : constant Name_Id := N + 193; -- GNAT + Name_External : constant Name_Id := N + 194; -- GNAT + Name_Finalize_Storage_Only : constant Name_Id := N + 195; -- GNAT + Name_Ident : constant Name_Id := N + 196; -- VMS + Name_Import : constant Name_Id := N + 197; + Name_Import_Exception : constant Name_Id := N + 198; -- VMS + Name_Import_Function : constant Name_Id := N + 199; -- GNAT + Name_Import_Object : constant Name_Id := N + 200; -- GNAT + Name_Import_Procedure : constant Name_Id := N + 201; -- GNAT + Name_Import_Valued_Procedure : constant Name_Id := N + 202; -- GNAT + Name_Inline : constant Name_Id := N + 203; + Name_Inline_Always : constant Name_Id := N + 204; -- GNAT + Name_Inline_Generic : constant Name_Id := N + 205; -- GNAT + Name_Inspection_Point : constant Name_Id := N + 206; + Name_Interface_Name : constant Name_Id := N + 207; -- GNAT + Name_Interrupt_Handler : constant Name_Id := N + 208; + Name_Interrupt_Priority : constant Name_Id := N + 209; + Name_Java_Constructor : constant Name_Id := N + 210; -- GNAT + Name_Java_Interface : constant Name_Id := N + 211; -- GNAT + Name_Keep_Names : constant Name_Id := N + 212; -- GNAT + Name_Link_With : constant Name_Id := N + 213; -- GNAT + Name_Linker_Alias : constant Name_Id := N + 214; -- GNAT + Name_Linker_Constructor : constant Name_Id := N + 215; -- GNAT + Name_Linker_Destructor : constant Name_Id := N + 216; -- GNAT + Name_Linker_Options : constant Name_Id := N + 217; + Name_Linker_Section : constant Name_Id := N + 218; -- GNAT + Name_List : constant Name_Id := N + 219; + Name_Machine_Attribute : constant Name_Id := N + 220; -- GNAT + Name_Main : constant Name_Id := N + 221; -- GNAT + Name_Main_Storage : constant Name_Id := N + 222; -- GNAT + Name_Memory_Size : constant Name_Id := N + 223; -- Ada 83 + Name_No_Return : constant Name_Id := N + 224; -- GNAT + Name_Obsolescent : constant Name_Id := N + 225; -- GNAT + Name_Optimize : constant Name_Id := N + 226; + Name_Optional_Overriding : constant Name_Id := N + 227; -- Ada 05 + Name_Pack : constant Name_Id := N + 228; + Name_Page : constant Name_Id := N + 229; + Name_Passive : constant Name_Id := N + 230; -- GNAT + Name_Preelaborable_Initialization : constant Name_Id := N + 231; -- Ada 05 + Name_Preelaborate : constant Name_Id := N + 232; + Name_Preelaborate_05 : constant Name_Id := N + 233; -- GNAT + + -- Note: Priority is not in this list because its name matches the + -- name of the corresponding attribute. However, it is included in the + -- definition of the type Pragma_Id, and the functions Get_Pragma_Id + -- and Check_Pragma_Id correctly recognize and process Priority. + -- Priority is a standard Ada 95 pragma. + + Name_Psect_Object : constant Name_Id := N + 234; -- VMS + Name_Pure : constant Name_Id := N + 235; + Name_Pure_05 : constant Name_Id := N + 236; -- GNAT + Name_Pure_Function : constant Name_Id := N + 237; -- GNAT + Name_Remote_Call_Interface : constant Name_Id := N + 238; + Name_Remote_Types : constant Name_Id := N + 239; + Name_Share_Generic : constant Name_Id := N + 240; -- GNAT + Name_Shared : constant Name_Id := N + 241; -- Ada 83 + Name_Shared_Passive : constant Name_Id := N + 242; -- Note: Storage_Size is not in this list because its name matches the -- name of the corresponding attribute. However, it is included in the @@ -480,27 +489,27 @@ package Snames is -- Note: Storage_Unit is also omitted from the list because of a clash -- with an attribute name, and is treated similarly. - Name_Source_Reference : constant Name_Id := N + 241; -- GNAT - Name_Stream_Convert : constant Name_Id := N + 242; -- GNAT - Name_Subtitle : constant Name_Id := N + 243; -- GNAT - Name_Suppress_All : constant Name_Id := N + 244; -- GNAT - Name_Suppress_Debug_Info : constant Name_Id := N + 245; -- GNAT - Name_Suppress_Initialization : constant Name_Id := N + 246; -- GNAT - Name_System_Name : constant Name_Id := N + 247; -- Ada 83 - Name_Task_Info : constant Name_Id := N + 248; -- GNAT - Name_Task_Name : constant Name_Id := N + 249; -- GNAT - Name_Task_Storage : constant Name_Id := N + 250; -- VMS - Name_Thread_Body : constant Name_Id := N + 251; -- GNAT - Name_Time_Slice : constant Name_Id := N + 252; -- GNAT - Name_Title : constant Name_Id := N + 253; -- GNAT - Name_Unchecked_Union : constant Name_Id := N + 254; -- GNAT - Name_Unimplemented_Unit : constant Name_Id := N + 255; -- GNAT - Name_Unreferenced : constant Name_Id := N + 256; -- GNAT - Name_Unreserve_All_Interrupts : constant Name_Id := N + 257; -- GNAT - Name_Volatile : constant Name_Id := N + 258; - Name_Volatile_Components : constant Name_Id := N + 259; - Name_Weak_External : constant Name_Id := N + 260; -- GNAT - Last_Pragma_Name : constant Name_Id := N + 260; + Name_Source_Reference : constant Name_Id := N + 243; -- GNAT + Name_Stream_Convert : constant Name_Id := N + 244; -- GNAT + Name_Subtitle : constant Name_Id := N + 245; -- GNAT + Name_Suppress_All : constant Name_Id := N + 246; -- GNAT + Name_Suppress_Debug_Info : constant Name_Id := N + 247; -- GNAT + Name_Suppress_Initialization : constant Name_Id := N + 248; -- GNAT + Name_System_Name : constant Name_Id := N + 249; -- Ada 83 + Name_Task_Info : constant Name_Id := N + 250; -- GNAT + Name_Task_Name : constant Name_Id := N + 251; -- GNAT + Name_Task_Storage : constant Name_Id := N + 252; -- VMS + Name_Thread_Body : constant Name_Id := N + 253; -- GNAT + Name_Time_Slice : constant Name_Id := N + 254; -- GNAT + Name_Title : constant Name_Id := N + 255; -- GNAT + Name_Unchecked_Union : constant Name_Id := N + 256; -- GNAT + Name_Unimplemented_Unit : constant Name_Id := N + 257; -- GNAT + Name_Unreferenced : constant Name_Id := N + 258; -- GNAT + Name_Unreserve_All_Interrupts : constant Name_Id := N + 259; -- GNAT + Name_Volatile : constant Name_Id := N + 260; + Name_Volatile_Components : constant Name_Id := N + 261; + Name_Weak_External : constant Name_Id := N + 262; -- GNAT + Last_Pragma_Name : constant Name_Id := N + 262; -- Language convention names for pragma Convention/Export/Import/Interface -- Note that Name_C is not included in this list, since it was already @@ -511,114 +520,114 @@ package Snames is -- Entry and Protected, this is because these conventions cannot be -- specified by a pragma. - First_Convention_Name : constant Name_Id := N + 261; - Name_Ada : constant Name_Id := N + 261; - Name_Assembler : constant Name_Id := N + 262; - Name_COBOL : constant Name_Id := N + 263; - Name_CPP : constant Name_Id := N + 264; - Name_Fortran : constant Name_Id := N + 265; - Name_Intrinsic : constant Name_Id := N + 266; - Name_Java : constant Name_Id := N + 267; - Name_Stdcall : constant Name_Id := N + 268; - Name_Stubbed : constant Name_Id := N + 269; - Last_Convention_Name : constant Name_Id := N + 269; + First_Convention_Name : constant Name_Id := N + 263; + Name_Ada : constant Name_Id := N + 263; + Name_Assembler : constant Name_Id := N + 264; + Name_COBOL : constant Name_Id := N + 265; + Name_CPP : constant Name_Id := N + 266; + Name_Fortran : constant Name_Id := N + 267; + Name_Intrinsic : constant Name_Id := N + 268; + Name_Java : constant Name_Id := N + 269; + Name_Stdcall : constant Name_Id := N + 270; + Name_Stubbed : constant Name_Id := N + 271; + Last_Convention_Name : constant Name_Id := N + 271; -- The following names are preset as synonyms for Assembler - Name_Asm : constant Name_Id := N + 270; - Name_Assembly : constant Name_Id := N + 271; + Name_Asm : constant Name_Id := N + 272; + Name_Assembly : constant Name_Id := N + 273; -- The following names are preset as synonyms for C - Name_Default : constant Name_Id := N + 272; + Name_Default : constant Name_Id := N + 274; -- Name_Exernal (previously defined as pragma) -- The following names are present as synonyms for Stdcall - Name_DLL : constant Name_Id := N + 273; - Name_Win32 : constant Name_Id := N + 274; + Name_DLL : constant Name_Id := N + 275; + Name_Win32 : constant Name_Id := N + 276; -- Other special names used in processing pragmas - Name_As_Is : constant Name_Id := N + 275; - Name_Attribute_Name : constant Name_Id := N + 276; - Name_Body_File_Name : constant Name_Id := N + 277; - Name_Boolean_Entry_Barriers : constant Name_Id := N + 278; - Name_Check : constant Name_Id := N + 279; - Name_Casing : constant Name_Id := N + 280; - Name_Code : constant Name_Id := N + 281; - Name_Component : constant Name_Id := N + 282; - Name_Component_Size_4 : constant Name_Id := N + 283; - Name_Copy : constant Name_Id := N + 284; - Name_D_Float : constant Name_Id := N + 285; - Name_Descriptor : constant Name_Id := N + 286; - Name_Dot_Replacement : constant Name_Id := N + 287; - Name_Dynamic : constant Name_Id := N + 288; - Name_Entity : constant Name_Id := N + 289; - Name_Entry_Count : constant Name_Id := N + 290; - Name_External_Name : constant Name_Id := N + 291; - Name_First_Optional_Parameter : constant Name_Id := N + 292; - Name_Form : constant Name_Id := N + 293; - Name_G_Float : constant Name_Id := N + 294; - Name_Gcc : constant Name_Id := N + 295; - Name_Gnat : constant Name_Id := N + 296; - Name_GPL : constant Name_Id := N + 297; - Name_IEEE_Float : constant Name_Id := N + 298; - Name_Ignore : constant Name_Id := N + 299; - Name_Info : constant Name_Id := N + 300; - Name_Internal : constant Name_Id := N + 301; - Name_Link_Name : constant Name_Id := N + 302; - Name_Lowercase : constant Name_Id := N + 303; - Name_Max_Entry_Queue_Depth : constant Name_Id := N + 304; - Name_Max_Entry_Queue_Length : constant Name_Id := N + 305; - Name_Max_Size : constant Name_Id := N + 306; - Name_Mechanism : constant Name_Id := N + 307; - Name_Message : constant Name_Id := N + 308; - Name_Mixedcase : constant Name_Id := N + 309; - Name_Modified_GPL : constant Name_Id := N + 310; - Name_Name : constant Name_Id := N + 311; - Name_NCA : constant Name_Id := N + 312; - Name_No : constant Name_Id := N + 313; - Name_No_Dependence : constant Name_Id := N + 314; - Name_No_Dynamic_Attachment : constant Name_Id := N + 315; - Name_No_Dynamic_Interrupts : constant Name_Id := N + 316; - Name_No_Requeue : constant Name_Id := N + 317; - Name_No_Requeue_Statements : constant Name_Id := N + 318; - Name_No_Task_Attributes : constant Name_Id := N + 319; - Name_No_Task_Attributes_Package : constant Name_Id := N + 320; - Name_On : constant Name_Id := N + 321; - Name_Parameter_Types : constant Name_Id := N + 322; - Name_Reference : constant Name_Id := N + 323; - Name_Restricted : constant Name_Id := N + 324; - Name_Result_Mechanism : constant Name_Id := N + 325; - Name_Result_Type : constant Name_Id := N + 326; - Name_Runtime : constant Name_Id := N + 327; - Name_SB : constant Name_Id := N + 328; - Name_Secondary_Stack_Size : constant Name_Id := N + 329; - Name_Section : constant Name_Id := N + 330; - Name_Semaphore : constant Name_Id := N + 331; - Name_Simple_Barriers : constant Name_Id := N + 332; - Name_Spec_File_Name : constant Name_Id := N + 333; - Name_State : constant Name_Id := N + 334; - Name_Static : constant Name_Id := N + 335; - Name_Stack_Size : constant Name_Id := N + 336; - Name_Subunit_File_Name : constant Name_Id := N + 337; - Name_Task_Stack_Size_Default : constant Name_Id := N + 338; - Name_Task_Type : constant Name_Id := N + 339; - Name_Time_Slicing_Enabled : constant Name_Id := N + 340; - Name_Top_Guard : constant Name_Id := N + 341; - Name_UBA : constant Name_Id := N + 342; - Name_UBS : constant Name_Id := N + 343; - Name_UBSB : constant Name_Id := N + 344; - Name_Unit_Name : constant Name_Id := N + 345; - Name_Unknown : constant Name_Id := N + 346; - Name_Unrestricted : constant Name_Id := N + 347; - Name_Uppercase : constant Name_Id := N + 348; - Name_User : constant Name_Id := N + 349; - Name_VAX_Float : constant Name_Id := N + 350; - Name_VMS : constant Name_Id := N + 351; - Name_Vtable_Ptr : constant Name_Id := N + 352; - Name_Working_Storage : constant Name_Id := N + 353; + Name_As_Is : constant Name_Id := N + 277; + Name_Attribute_Name : constant Name_Id := N + 278; + Name_Body_File_Name : constant Name_Id := N + 279; + Name_Boolean_Entry_Barriers : constant Name_Id := N + 280; + Name_Check : constant Name_Id := N + 281; + Name_Casing : constant Name_Id := N + 282; + Name_Code : constant Name_Id := N + 283; + Name_Component : constant Name_Id := N + 284; + Name_Component_Size_4 : constant Name_Id := N + 285; + Name_Copy : constant Name_Id := N + 286; + Name_D_Float : constant Name_Id := N + 287; + Name_Descriptor : constant Name_Id := N + 288; + Name_Dot_Replacement : constant Name_Id := N + 289; + Name_Dynamic : constant Name_Id := N + 290; + Name_Entity : constant Name_Id := N + 291; + Name_Entry_Count : constant Name_Id := N + 292; + Name_External_Name : constant Name_Id := N + 293; + Name_First_Optional_Parameter : constant Name_Id := N + 294; + Name_Form : constant Name_Id := N + 295; + Name_G_Float : constant Name_Id := N + 296; + Name_Gcc : constant Name_Id := N + 297; + Name_Gnat : constant Name_Id := N + 298; + Name_GPL : constant Name_Id := N + 299; + Name_IEEE_Float : constant Name_Id := N + 300; + Name_Ignore : constant Name_Id := N + 301; + Name_Info : constant Name_Id := N + 302; + Name_Internal : constant Name_Id := N + 303; + Name_Link_Name : constant Name_Id := N + 304; + Name_Lowercase : constant Name_Id := N + 305; + Name_Max_Entry_Queue_Depth : constant Name_Id := N + 306; + Name_Max_Entry_Queue_Length : constant Name_Id := N + 307; + Name_Max_Size : constant Name_Id := N + 308; + Name_Mechanism : constant Name_Id := N + 309; + Name_Message : constant Name_Id := N + 310; + Name_Mixedcase : constant Name_Id := N + 311; + Name_Modified_GPL : constant Name_Id := N + 312; + Name_Name : constant Name_Id := N + 313; + Name_NCA : constant Name_Id := N + 314; + Name_No : constant Name_Id := N + 315; + Name_No_Dependence : constant Name_Id := N + 316; + Name_No_Dynamic_Attachment : constant Name_Id := N + 317; + Name_No_Dynamic_Interrupts : constant Name_Id := N + 318; + Name_No_Requeue : constant Name_Id := N + 319; + Name_No_Requeue_Statements : constant Name_Id := N + 320; + Name_No_Task_Attributes : constant Name_Id := N + 321; + Name_No_Task_Attributes_Package : constant Name_Id := N + 322; + Name_On : constant Name_Id := N + 323; + Name_Parameter_Types : constant Name_Id := N + 324; + Name_Reference : constant Name_Id := N + 325; + Name_Restricted : constant Name_Id := N + 326; + Name_Result_Mechanism : constant Name_Id := N + 327; + Name_Result_Type : constant Name_Id := N + 328; + Name_Runtime : constant Name_Id := N + 329; + Name_SB : constant Name_Id := N + 330; + Name_Secondary_Stack_Size : constant Name_Id := N + 331; + Name_Section : constant Name_Id := N + 332; + Name_Semaphore : constant Name_Id := N + 333; + Name_Simple_Barriers : constant Name_Id := N + 334; + Name_Spec_File_Name : constant Name_Id := N + 335; + Name_State : constant Name_Id := N + 336; + Name_Static : constant Name_Id := N + 337; + Name_Stack_Size : constant Name_Id := N + 338; + Name_Subunit_File_Name : constant Name_Id := N + 339; + Name_Task_Stack_Size_Default : constant Name_Id := N + 340; + Name_Task_Type : constant Name_Id := N + 341; + Name_Time_Slicing_Enabled : constant Name_Id := N + 342; + Name_Top_Guard : constant Name_Id := N + 343; + Name_UBA : constant Name_Id := N + 344; + Name_UBS : constant Name_Id := N + 345; + Name_UBSB : constant Name_Id := N + 346; + Name_Unit_Name : constant Name_Id := N + 347; + Name_Unknown : constant Name_Id := N + 348; + Name_Unrestricted : constant Name_Id := N + 349; + Name_Uppercase : constant Name_Id := N + 350; + Name_User : constant Name_Id := N + 351; + Name_VAX_Float : constant Name_Id := N + 352; + Name_VMS : constant Name_Id := N + 353; + Name_Vtable_Ptr : constant Name_Id := N + 354; + Name_Working_Storage : constant Name_Id := N + 355; -- Names of recognized attributes. The entries with the comment "Ada 83" -- are attributes that are defined in Ada 83, but not in Ada 95. These @@ -632,166 +641,168 @@ package Snames is -- The entries marked VMS are recognized only in OpenVMS implementations -- of GNAT, and are treated as illegal in all other contexts. - First_Attribute_Name : constant Name_Id := N + 354; - Name_Abort_Signal : constant Name_Id := N + 354; -- GNAT - Name_Access : constant Name_Id := N + 355; - Name_Address : constant Name_Id := N + 356; - Name_Address_Size : constant Name_Id := N + 357; -- GNAT - Name_Aft : constant Name_Id := N + 358; - Name_Alignment : constant Name_Id := N + 359; - Name_Asm_Input : constant Name_Id := N + 360; -- GNAT - Name_Asm_Output : constant Name_Id := N + 361; -- GNAT - Name_AST_Entry : constant Name_Id := N + 362; -- VMS - Name_Bit : constant Name_Id := N + 363; -- GNAT - Name_Bit_Order : constant Name_Id := N + 364; - Name_Bit_Position : constant Name_Id := N + 365; -- GNAT - Name_Body_Version : constant Name_Id := N + 366; - Name_Callable : constant Name_Id := N + 367; - Name_Caller : constant Name_Id := N + 368; - Name_Code_Address : constant Name_Id := N + 369; -- GNAT - Name_Component_Size : constant Name_Id := N + 370; - Name_Compose : constant Name_Id := N + 371; - Name_Constrained : constant Name_Id := N + 372; - Name_Count : constant Name_Id := N + 373; - Name_Default_Bit_Order : constant Name_Id := N + 374; -- GNAT - Name_Definite : constant Name_Id := N + 375; - Name_Delta : constant Name_Id := N + 376; - Name_Denorm : constant Name_Id := N + 377; - Name_Digits : constant Name_Id := N + 378; - Name_Elaborated : constant Name_Id := N + 379; -- GNAT - Name_Emax : constant Name_Id := N + 380; -- Ada 83 - Name_Enum_Rep : constant Name_Id := N + 381; -- GNAT - Name_Epsilon : constant Name_Id := N + 382; -- Ada 83 - Name_Exponent : constant Name_Id := N + 383; - Name_External_Tag : constant Name_Id := N + 384; - Name_First : constant Name_Id := N + 385; - Name_First_Bit : constant Name_Id := N + 386; - Name_Fixed_Value : constant Name_Id := N + 387; -- GNAT - Name_Fore : constant Name_Id := N + 388; - Name_Has_Access_Values : constant Name_Id := N + 389; -- GNAT - Name_Has_Discriminants : constant Name_Id := N + 390; -- GNAT - Name_Identity : constant Name_Id := N + 391; - Name_Img : constant Name_Id := N + 392; -- GNAT - Name_Integer_Value : constant Name_Id := N + 393; -- GNAT - Name_Large : constant Name_Id := N + 394; -- Ada 83 - Name_Last : constant Name_Id := N + 395; - Name_Last_Bit : constant Name_Id := N + 396; - Name_Leading_Part : constant Name_Id := N + 397; - Name_Length : constant Name_Id := N + 398; - Name_Machine_Emax : constant Name_Id := N + 399; - Name_Machine_Emin : constant Name_Id := N + 400; - Name_Machine_Mantissa : constant Name_Id := N + 401; - Name_Machine_Overflows : constant Name_Id := N + 402; - Name_Machine_Radix : constant Name_Id := N + 403; - Name_Machine_Rounding : constant Name_Id := N + 404; -- Ada 05 - Name_Machine_Rounds : constant Name_Id := N + 405; - Name_Machine_Size : constant Name_Id := N + 406; -- GNAT - Name_Mantissa : constant Name_Id := N + 407; -- Ada 83 - Name_Max_Size_In_Storage_Elements : constant Name_Id := N + 408; - Name_Maximum_Alignment : constant Name_Id := N + 409; -- GNAT - Name_Mechanism_Code : constant Name_Id := N + 410; -- GNAT - Name_Mod : constant Name_Id := N + 411; - Name_Model_Emin : constant Name_Id := N + 412; - Name_Model_Epsilon : constant Name_Id := N + 413; - Name_Model_Mantissa : constant Name_Id := N + 414; - Name_Model_Small : constant Name_Id := N + 415; - Name_Modulus : constant Name_Id := N + 416; - Name_Null_Parameter : constant Name_Id := N + 417; -- GNAT - Name_Object_Size : constant Name_Id := N + 418; -- GNAT - Name_Partition_ID : constant Name_Id := N + 419; - Name_Passed_By_Reference : constant Name_Id := N + 420; -- GNAT - Name_Pool_Address : constant Name_Id := N + 421; - Name_Pos : constant Name_Id := N + 422; - Name_Position : constant Name_Id := N + 423; - Name_Range : constant Name_Id := N + 424; - Name_Range_Length : constant Name_Id := N + 425; -- GNAT - Name_Round : constant Name_Id := N + 426; - Name_Safe_Emax : constant Name_Id := N + 427; -- Ada 83 - Name_Safe_First : constant Name_Id := N + 428; - Name_Safe_Large : constant Name_Id := N + 429; -- Ada 83 - Name_Safe_Last : constant Name_Id := N + 430; - Name_Safe_Small : constant Name_Id := N + 431; -- Ada 83 - Name_Scale : constant Name_Id := N + 432; - Name_Scaling : constant Name_Id := N + 433; - Name_Signed_Zeros : constant Name_Id := N + 434; - Name_Size : constant Name_Id := N + 435; - Name_Small : constant Name_Id := N + 436; - Name_Storage_Size : constant Name_Id := N + 437; - Name_Storage_Unit : constant Name_Id := N + 438; -- GNAT - Name_Stream_Size : constant Name_Id := N + 439; -- Ada 05 - Name_Tag : constant Name_Id := N + 440; - Name_Target_Name : constant Name_Id := N + 441; -- GNAT - Name_Terminated : constant Name_Id := N + 442; - Name_To_Address : constant Name_Id := N + 443; -- GNAT - Name_Type_Class : constant Name_Id := N + 444; -- GNAT - Name_UET_Address : constant Name_Id := N + 445; -- GNAT - Name_Unbiased_Rounding : constant Name_Id := N + 446; - Name_Unchecked_Access : constant Name_Id := N + 447; - Name_Unconstrained_Array : constant Name_Id := N + 448; - Name_Universal_Literal_String : constant Name_Id := N + 449; -- GNAT - Name_Unrestricted_Access : constant Name_Id := N + 450; -- GNAT - Name_VADS_Size : constant Name_Id := N + 451; -- GNAT - Name_Val : constant Name_Id := N + 452; - Name_Valid : constant Name_Id := N + 453; - Name_Value_Size : constant Name_Id := N + 454; -- GNAT - Name_Version : constant Name_Id := N + 455; - Name_Wchar_T_Size : constant Name_Id := N + 456; -- GNAT - Name_Wide_Wide_Width : constant Name_Id := N + 457; -- Ada 05 - Name_Wide_Width : constant Name_Id := N + 458; - Name_Width : constant Name_Id := N + 459; - Name_Word_Size : constant Name_Id := N + 460; -- GNAT + First_Attribute_Name : constant Name_Id := N + 356; + Name_Abort_Signal : constant Name_Id := N + 356; -- GNAT + Name_Access : constant Name_Id := N + 357; + Name_Address : constant Name_Id := N + 358; + Name_Address_Size : constant Name_Id := N + 359; -- GNAT + Name_Aft : constant Name_Id := N + 360; + Name_Alignment : constant Name_Id := N + 361; + Name_Asm_Input : constant Name_Id := N + 362; -- GNAT + Name_Asm_Output : constant Name_Id := N + 363; -- GNAT + Name_AST_Entry : constant Name_Id := N + 364; -- VMS + Name_Bit : constant Name_Id := N + 365; -- GNAT + Name_Bit_Order : constant Name_Id := N + 366; + Name_Bit_Position : constant Name_Id := N + 367; -- GNAT + Name_Body_Version : constant Name_Id := N + 368; + Name_Callable : constant Name_Id := N + 369; + Name_Caller : constant Name_Id := N + 370; + Name_Code_Address : constant Name_Id := N + 371; -- GNAT + Name_Component_Size : constant Name_Id := N + 372; + Name_Compose : constant Name_Id := N + 373; + Name_Constrained : constant Name_Id := N + 374; + Name_Count : constant Name_Id := N + 375; + Name_Default_Bit_Order : constant Name_Id := N + 376; -- GNAT + Name_Definite : constant Name_Id := N + 377; + Name_Delta : constant Name_Id := N + 378; + Name_Denorm : constant Name_Id := N + 379; + Name_Digits : constant Name_Id := N + 380; + Name_Elaborated : constant Name_Id := N + 381; -- GNAT + Name_Emax : constant Name_Id := N + 382; -- Ada 83 + Name_Enum_Rep : constant Name_Id := N + 383; -- GNAT + Name_Epsilon : constant Name_Id := N + 384; -- Ada 83 + Name_Exponent : constant Name_Id := N + 385; + Name_External_Tag : constant Name_Id := N + 386; + Name_First : constant Name_Id := N + 387; + Name_First_Bit : constant Name_Id := N + 388; + Name_Fixed_Value : constant Name_Id := N + 389; -- GNAT + Name_Fore : constant Name_Id := N + 390; + Name_Has_Access_Values : constant Name_Id := N + 391; -- GNAT + Name_Has_Discriminants : constant Name_Id := N + 392; -- GNAT + Name_Identity : constant Name_Id := N + 393; + Name_Img : constant Name_Id := N + 394; -- GNAT + Name_Integer_Value : constant Name_Id := N + 395; -- GNAT + Name_Large : constant Name_Id := N + 396; -- Ada 83 + Name_Last : constant Name_Id := N + 397; + Name_Last_Bit : constant Name_Id := N + 398; + Name_Leading_Part : constant Name_Id := N + 399; + Name_Length : constant Name_Id := N + 400; + Name_Machine_Emax : constant Name_Id := N + 401; + Name_Machine_Emin : constant Name_Id := N + 402; + Name_Machine_Mantissa : constant Name_Id := N + 403; + Name_Machine_Overflows : constant Name_Id := N + 404; + Name_Machine_Radix : constant Name_Id := N + 405; + Name_Machine_Rounding : constant Name_Id := N + 406; -- Ada 05 + Name_Machine_Rounds : constant Name_Id := N + 407; + Name_Machine_Size : constant Name_Id := N + 408; -- GNAT + Name_Mantissa : constant Name_Id := N + 409; -- Ada 83 + Name_Max_Size_In_Storage_Elements : constant Name_Id := N + 410; + Name_Maximum_Alignment : constant Name_Id := N + 411; -- GNAT + Name_Mechanism_Code : constant Name_Id := N + 412; -- GNAT + Name_Mod : constant Name_Id := N + 413; + Name_Model_Emin : constant Name_Id := N + 414; + Name_Model_Epsilon : constant Name_Id := N + 415; + Name_Model_Mantissa : constant Name_Id := N + 416; + Name_Model_Small : constant Name_Id := N + 417; + Name_Modulus : constant Name_Id := N + 418; + Name_Null_Parameter : constant Name_Id := N + 419; -- GNAT + Name_Object_Size : constant Name_Id := N + 420; -- GNAT + Name_Partition_ID : constant Name_Id := N + 421; + Name_Passed_By_Reference : constant Name_Id := N + 422; -- GNAT + Name_Pool_Address : constant Name_Id := N + 423; + Name_Pos : constant Name_Id := N + 424; + Name_Position : constant Name_Id := N + 425; + Name_Priority : constant Name_Id := N + 426; -- Ada 05 + Name_Range : constant Name_Id := N + 427; + Name_Range_Length : constant Name_Id := N + 428; -- GNAT + Name_Round : constant Name_Id := N + 429; + Name_Safe_Emax : constant Name_Id := N + 430; -- Ada 83 + Name_Safe_First : constant Name_Id := N + 431; + Name_Safe_Large : constant Name_Id := N + 432; -- Ada 83 + Name_Safe_Last : constant Name_Id := N + 433; + Name_Safe_Small : constant Name_Id := N + 434; -- Ada 83 + Name_Scale : constant Name_Id := N + 435; + Name_Scaling : constant Name_Id := N + 436; + Name_Signed_Zeros : constant Name_Id := N + 437; + Name_Size : constant Name_Id := N + 438; + Name_Small : constant Name_Id := N + 439; + Name_Storage_Size : constant Name_Id := N + 440; + Name_Storage_Unit : constant Name_Id := N + 441; -- GNAT + Name_Stream_Size : constant Name_Id := N + 442; -- Ada 05 + Name_Tag : constant Name_Id := N + 443; + Name_Target_Name : constant Name_Id := N + 444; -- GNAT + Name_Terminated : constant Name_Id := N + 445; + Name_To_Address : constant Name_Id := N + 446; -- GNAT + Name_Type_Class : constant Name_Id := N + 447; -- GNAT + Name_UET_Address : constant Name_Id := N + 448; -- GNAT + Name_Unbiased_Rounding : constant Name_Id := N + 449; + Name_Unchecked_Access : constant Name_Id := N + 450; + Name_Unconstrained_Array : constant Name_Id := N + 451; + Name_Universal_Literal_String : constant Name_Id := N + 452; -- GNAT + Name_Unrestricted_Access : constant Name_Id := N + 453; -- GNAT + Name_VADS_Size : constant Name_Id := N + 454; -- GNAT + Name_Val : constant Name_Id := N + 455; + Name_Valid : constant Name_Id := N + 456; + Name_Value_Size : constant Name_Id := N + 457; -- GNAT + Name_Version : constant Name_Id := N + 458; + Name_Wchar_T_Size : constant Name_Id := N + 459; -- GNAT + Name_Wide_Wide_Width : constant Name_Id := N + 460; -- Ada 05 + Name_Wide_Width : constant Name_Id := N + 461; + Name_Width : constant Name_Id := N + 462; + Name_Word_Size : constant Name_Id := N + 463; -- GNAT -- Attributes that designate attributes returning renamable functions, -- i.e. functions that return other than a universal value and that -- have non-universal arguments. - First_Renamable_Function_Attribute : constant Name_Id := N + 461; - Name_Adjacent : constant Name_Id := N + 461; - Name_Ceiling : constant Name_Id := N + 462; - Name_Copy_Sign : constant Name_Id := N + 463; - Name_Floor : constant Name_Id := N + 464; - Name_Fraction : constant Name_Id := N + 465; - Name_Image : constant Name_Id := N + 466; - Name_Input : constant Name_Id := N + 467; - Name_Machine : constant Name_Id := N + 468; - Name_Max : constant Name_Id := N + 469; - Name_Min : constant Name_Id := N + 470; - Name_Model : constant Name_Id := N + 471; - Name_Pred : constant Name_Id := N + 472; - Name_Remainder : constant Name_Id := N + 473; - Name_Rounding : constant Name_Id := N + 474; - Name_Succ : constant Name_Id := N + 475; - Name_Truncation : constant Name_Id := N + 476; - Name_Value : constant Name_Id := N + 477; - Name_Wide_Image : constant Name_Id := N + 478; - Name_Wide_Wide_Image : constant Name_Id := N + 479; - Name_Wide_Value : constant Name_Id := N + 480; - Name_Wide_Wide_Value : constant Name_Id := N + 481; - Last_Renamable_Function_Attribute : constant Name_Id := N + 481; + First_Renamable_Function_Attribute : constant Name_Id := N + 464; + Name_Adjacent : constant Name_Id := N + 464; + Name_Ceiling : constant Name_Id := N + 465; + Name_Copy_Sign : constant Name_Id := N + 466; + Name_Floor : constant Name_Id := N + 467; + Name_Fraction : constant Name_Id := N + 468; + Name_Image : constant Name_Id := N + 469; + Name_Input : constant Name_Id := N + 470; + Name_Machine : constant Name_Id := N + 471; + Name_Max : constant Name_Id := N + 472; + Name_Min : constant Name_Id := N + 473; + Name_Model : constant Name_Id := N + 474; + Name_Pred : constant Name_Id := N + 475; + Name_Remainder : constant Name_Id := N + 476; + Name_Rounding : constant Name_Id := N + 477; + Name_Succ : constant Name_Id := N + 478; + Name_Truncation : constant Name_Id := N + 479; + Name_Value : constant Name_Id := N + 480; + Name_Wide_Image : constant Name_Id := N + 481; + Name_Wide_Wide_Image : constant Name_Id := N + 482; + Name_Wide_Value : constant Name_Id := N + 483; + Name_Wide_Wide_Value : constant Name_Id := N + 484; + Last_Renamable_Function_Attribute : constant Name_Id := N + 484; -- Attributes that designate procedures - First_Procedure_Attribute : constant Name_Id := N + 482; - Name_Output : constant Name_Id := N + 482; - Name_Read : constant Name_Id := N + 483; - Name_Write : constant Name_Id := N + 484; - Last_Procedure_Attribute : constant Name_Id := N + 484; + First_Procedure_Attribute : constant Name_Id := N + 485; + Name_Output : constant Name_Id := N + 485; + Name_Read : constant Name_Id := N + 486; + Name_Write : constant Name_Id := N + 487; + Last_Procedure_Attribute : constant Name_Id := N + 487; -- Remaining attributes are ones that return entities - First_Entity_Attribute_Name : constant Name_Id := N + 485; - Name_Elab_Body : constant Name_Id := N + 485; -- GNAT - Name_Elab_Spec : constant Name_Id := N + 486; -- GNAT - Name_Storage_Pool : constant Name_Id := N + 487; + First_Entity_Attribute_Name : constant Name_Id := N + 488; + Name_Elab_Body : constant Name_Id := N + 488; -- GNAT + Name_Elab_Spec : constant Name_Id := N + 489; -- GNAT + Name_Storage_Pool : constant Name_Id := N + 490; -- These attributes are the ones that return types - First_Type_Attribute_Name : constant Name_Id := N + 488; - Name_Base : constant Name_Id := N + 488; - Name_Class : constant Name_Id := N + 489; - Last_Type_Attribute_Name : constant Name_Id := N + 489; - Last_Entity_Attribute_Name : constant Name_Id := N + 489; - Last_Attribute_Name : constant Name_Id := N + 489; + First_Type_Attribute_Name : constant Name_Id := N + 491; + Name_Base : constant Name_Id := N + 491; + Name_Class : constant Name_Id := N + 492; + Name_Stub_Type : constant Name_Id := N + 493; + Last_Type_Attribute_Name : constant Name_Id := N + 493; + Last_Entity_Attribute_Name : constant Name_Id := N + 493; + Last_Attribute_Name : constant Name_Id := N + 493; -- Names of recognized locking policy identifiers @@ -799,10 +810,10 @@ package Snames is -- name (e.g. C for Ceiling_Locking). If new policy names are added, -- the first character must be distinct. - First_Locking_Policy_Name : constant Name_Id := N + 490; - Name_Ceiling_Locking : constant Name_Id := N + 490; - Name_Inheritance_Locking : constant Name_Id := N + 491; - Last_Locking_Policy_Name : constant Name_Id := N + 491; + First_Locking_Policy_Name : constant Name_Id := N + 494; + Name_Ceiling_Locking : constant Name_Id := N + 494; + Name_Inheritance_Locking : constant Name_Id := N + 495; + Last_Locking_Policy_Name : constant Name_Id := N + 495; -- Names of recognized queuing policy identifiers @@ -810,255 +821,260 @@ package Snames is -- name (e.g. F for FIFO_Queuing). If new policy names are added, -- the first character must be distinct. - First_Queuing_Policy_Name : constant Name_Id := N + 492; - Name_FIFO_Queuing : constant Name_Id := N + 492; - Name_Priority_Queuing : constant Name_Id := N + 493; - Last_Queuing_Policy_Name : constant Name_Id := N + 493; + First_Queuing_Policy_Name : constant Name_Id := N + 496; + Name_FIFO_Queuing : constant Name_Id := N + 496; + Name_Priority_Queuing : constant Name_Id := N + 497; + Last_Queuing_Policy_Name : constant Name_Id := N + 497; -- Names of recognized task dispatching policy identifiers -- Note: policies are identified by the first character of the - -- name (e.g. F for FIFO_WIthinn_Priorities). If new policy names + -- name (e.g. F for FIFO_Within_Priorities). If new policy names -- are added, the first character must be distinct. - First_Task_Dispatching_Policy_Name : constant Name_Id := N + 494; - Name_FIFO_Within_Priorities : constant Name_Id := N + 494; - Last_Task_Dispatching_Policy_Name : constant Name_Id := N + 494; + First_Task_Dispatching_Policy_Name : constant Name_Id := N + 498; + Name_EDF_Across_Priorities : constant Name_Id := N + 498; + Name_FIFO_Within_Priorities : constant Name_Id := N + 499; + Name_Non_Preemptive_Within_Priorities : constant Name_Id := N + 500; + Name_Round_Robin_Within_Priorities : constant Name_Id := N + 501; + Last_Task_Dispatching_Policy_Name : constant Name_Id := N + 501; -- Names of recognized checks for pragma Suppress - First_Check_Name : constant Name_Id := N + 495; - Name_Access_Check : constant Name_Id := N + 495; - Name_Accessibility_Check : constant Name_Id := N + 496; - Name_Discriminant_Check : constant Name_Id := N + 497; - Name_Division_Check : constant Name_Id := N + 498; - Name_Elaboration_Check : constant Name_Id := N + 499; - Name_Index_Check : constant Name_Id := N + 500; - Name_Length_Check : constant Name_Id := N + 501; - Name_Overflow_Check : constant Name_Id := N + 502; - Name_Range_Check : constant Name_Id := N + 503; - Name_Storage_Check : constant Name_Id := N + 504; - Name_Tag_Check : constant Name_Id := N + 505; - Name_All_Checks : constant Name_Id := N + 506; - Last_Check_Name : constant Name_Id := N + 506; + First_Check_Name : constant Name_Id := N + 502; + Name_Access_Check : constant Name_Id := N + 502; + Name_Accessibility_Check : constant Name_Id := N + 503; + Name_Alignment_Check : constant Name_Id := N + 504; + Name_Discriminant_Check : constant Name_Id := N + 505; + Name_Division_Check : constant Name_Id := N + 506; + Name_Elaboration_Check : constant Name_Id := N + 507; + Name_Index_Check : constant Name_Id := N + 508; + Name_Length_Check : constant Name_Id := N + 509; + Name_Overflow_Check : constant Name_Id := N + 510; + Name_Range_Check : constant Name_Id := N + 511; + Name_Storage_Check : constant Name_Id := N + 512; + Name_Tag_Check : constant Name_Id := N + 513; + Name_Validity_Check : constant Name_Id := N + 514; + Name_All_Checks : constant Name_Id := N + 515; + Last_Check_Name : constant Name_Id := N + 515; -- Names corresponding to reserved keywords, excluding those already -- declared in the attribute list (Access, Delta, Digits, Mod, Range). - Name_Abort : constant Name_Id := N + 507; - Name_Abs : constant Name_Id := N + 508; - Name_Accept : constant Name_Id := N + 509; - Name_And : constant Name_Id := N + 510; - Name_All : constant Name_Id := N + 511; - Name_Array : constant Name_Id := N + 512; - Name_At : constant Name_Id := N + 513; - Name_Begin : constant Name_Id := N + 514; - Name_Body : constant Name_Id := N + 515; - Name_Case : constant Name_Id := N + 516; - Name_Constant : constant Name_Id := N + 517; - Name_Declare : constant Name_Id := N + 518; - Name_Delay : constant Name_Id := N + 519; - Name_Do : constant Name_Id := N + 520; - Name_Else : constant Name_Id := N + 521; - Name_Elsif : constant Name_Id := N + 522; - Name_End : constant Name_Id := N + 523; - Name_Entry : constant Name_Id := N + 524; - Name_Exception : constant Name_Id := N + 525; - Name_Exit : constant Name_Id := N + 526; - Name_For : constant Name_Id := N + 527; - Name_Function : constant Name_Id := N + 528; - Name_Generic : constant Name_Id := N + 529; - Name_Goto : constant Name_Id := N + 530; - Name_If : constant Name_Id := N + 531; - Name_In : constant Name_Id := N + 532; - Name_Is : constant Name_Id := N + 533; - Name_Limited : constant Name_Id := N + 534; - Name_Loop : constant Name_Id := N + 535; - Name_New : constant Name_Id := N + 536; - Name_Not : constant Name_Id := N + 537; - Name_Null : constant Name_Id := N + 538; - Name_Of : constant Name_Id := N + 539; - Name_Or : constant Name_Id := N + 540; - Name_Others : constant Name_Id := N + 541; - Name_Out : constant Name_Id := N + 542; - Name_Package : constant Name_Id := N + 543; - Name_Pragma : constant Name_Id := N + 544; - Name_Private : constant Name_Id := N + 545; - Name_Procedure : constant Name_Id := N + 546; - Name_Raise : constant Name_Id := N + 547; - Name_Record : constant Name_Id := N + 548; - Name_Rem : constant Name_Id := N + 549; - Name_Renames : constant Name_Id := N + 550; - Name_Return : constant Name_Id := N + 551; - Name_Reverse : constant Name_Id := N + 552; - Name_Select : constant Name_Id := N + 553; - Name_Separate : constant Name_Id := N + 554; - Name_Subtype : constant Name_Id := N + 555; - Name_Task : constant Name_Id := N + 556; - Name_Terminate : constant Name_Id := N + 557; - Name_Then : constant Name_Id := N + 558; - Name_Type : constant Name_Id := N + 559; - Name_Use : constant Name_Id := N + 560; - Name_When : constant Name_Id := N + 561; - Name_While : constant Name_Id := N + 562; - Name_With : constant Name_Id := N + 563; - Name_Xor : constant Name_Id := N + 564; + Name_Abort : constant Name_Id := N + 516; + Name_Abs : constant Name_Id := N + 517; + Name_Accept : constant Name_Id := N + 518; + Name_And : constant Name_Id := N + 519; + Name_All : constant Name_Id := N + 520; + Name_Array : constant Name_Id := N + 521; + Name_At : constant Name_Id := N + 522; + Name_Begin : constant Name_Id := N + 523; + Name_Body : constant Name_Id := N + 524; + Name_Case : constant Name_Id := N + 525; + Name_Constant : constant Name_Id := N + 526; + Name_Declare : constant Name_Id := N + 527; + Name_Delay : constant Name_Id := N + 528; + Name_Do : constant Name_Id := N + 529; + Name_Else : constant Name_Id := N + 530; + Name_Elsif : constant Name_Id := N + 531; + Name_End : constant Name_Id := N + 532; + Name_Entry : constant Name_Id := N + 533; + Name_Exception : constant Name_Id := N + 534; + Name_Exit : constant Name_Id := N + 535; + Name_For : constant Name_Id := N + 536; + Name_Function : constant Name_Id := N + 537; + Name_Generic : constant Name_Id := N + 538; + Name_Goto : constant Name_Id := N + 539; + Name_If : constant Name_Id := N + 540; + Name_In : constant Name_Id := N + 541; + Name_Is : constant Name_Id := N + 542; + Name_Limited : constant Name_Id := N + 543; + Name_Loop : constant Name_Id := N + 544; + Name_New : constant Name_Id := N + 545; + Name_Not : constant Name_Id := N + 546; + Name_Null : constant Name_Id := N + 547; + Name_Of : constant Name_Id := N + 548; + Name_Or : constant Name_Id := N + 549; + Name_Others : constant Name_Id := N + 550; + Name_Out : constant Name_Id := N + 551; + Name_Package : constant Name_Id := N + 552; + Name_Pragma : constant Name_Id := N + 553; + Name_Private : constant Name_Id := N + 554; + Name_Procedure : constant Name_Id := N + 555; + Name_Raise : constant Name_Id := N + 556; + Name_Record : constant Name_Id := N + 557; + Name_Rem : constant Name_Id := N + 558; + Name_Renames : constant Name_Id := N + 559; + Name_Return : constant Name_Id := N + 560; + Name_Reverse : constant Name_Id := N + 561; + Name_Select : constant Name_Id := N + 562; + Name_Separate : constant Name_Id := N + 563; + Name_Subtype : constant Name_Id := N + 564; + Name_Task : constant Name_Id := N + 565; + Name_Terminate : constant Name_Id := N + 566; + Name_Then : constant Name_Id := N + 567; + Name_Type : constant Name_Id := N + 568; + Name_Use : constant Name_Id := N + 569; + Name_When : constant Name_Id := N + 570; + Name_While : constant Name_Id := N + 571; + Name_With : constant Name_Id := N + 572; + Name_Xor : constant Name_Id := N + 573; -- Names of intrinsic subprograms -- Note: Asm is missing from this list, since Asm is a legitimate -- convention name. So is To_Adress, which is a GNAT attribute. - First_Intrinsic_Name : constant Name_Id := N + 565; - Name_Divide : constant Name_Id := N + 565; - Name_Enclosing_Entity : constant Name_Id := N + 566; - Name_Exception_Information : constant Name_Id := N + 567; - Name_Exception_Message : constant Name_Id := N + 568; - Name_Exception_Name : constant Name_Id := N + 569; - Name_File : constant Name_Id := N + 570; - Name_Generic_Dispatching_Constructor : constant Name_Id := N + 571; - Name_Import_Address : constant Name_Id := N + 572; - Name_Import_Largest_Value : constant Name_Id := N + 573; - Name_Import_Value : constant Name_Id := N + 574; - Name_Is_Negative : constant Name_Id := N + 575; - Name_Line : constant Name_Id := N + 576; - Name_Rotate_Left : constant Name_Id := N + 577; - Name_Rotate_Right : constant Name_Id := N + 578; - Name_Shift_Left : constant Name_Id := N + 579; - Name_Shift_Right : constant Name_Id := N + 580; - Name_Shift_Right_Arithmetic : constant Name_Id := N + 581; - Name_Source_Location : constant Name_Id := N + 582; - Name_Unchecked_Conversion : constant Name_Id := N + 583; - Name_Unchecked_Deallocation : constant Name_Id := N + 584; - Name_To_Pointer : constant Name_Id := N + 585; - Last_Intrinsic_Name : constant Name_Id := N + 585; + First_Intrinsic_Name : constant Name_Id := N + 574; + Name_Divide : constant Name_Id := N + 574; + Name_Enclosing_Entity : constant Name_Id := N + 575; + Name_Exception_Information : constant Name_Id := N + 576; + Name_Exception_Message : constant Name_Id := N + 577; + Name_Exception_Name : constant Name_Id := N + 578; + Name_File : constant Name_Id := N + 579; + Name_Generic_Dispatching_Constructor : constant Name_Id := N + 580; + Name_Import_Address : constant Name_Id := N + 581; + Name_Import_Largest_Value : constant Name_Id := N + 582; + Name_Import_Value : constant Name_Id := N + 583; + Name_Is_Negative : constant Name_Id := N + 584; + Name_Line : constant Name_Id := N + 585; + Name_Rotate_Left : constant Name_Id := N + 586; + Name_Rotate_Right : constant Name_Id := N + 587; + Name_Shift_Left : constant Name_Id := N + 588; + Name_Shift_Right : constant Name_Id := N + 589; + Name_Shift_Right_Arithmetic : constant Name_Id := N + 590; + Name_Source_Location : constant Name_Id := N + 591; + Name_Unchecked_Conversion : constant Name_Id := N + 592; + Name_Unchecked_Deallocation : constant Name_Id := N + 593; + Name_To_Pointer : constant Name_Id := N + 594; + Last_Intrinsic_Name : constant Name_Id := N + 594; -- Names used in processing intrinsic calls - Name_Free : constant Name_Id := N + 586; + Name_Free : constant Name_Id := N + 595; -- Reserved words used only in Ada 95 - First_95_Reserved_Word : constant Name_Id := N + 587; - Name_Abstract : constant Name_Id := N + 587; - Name_Aliased : constant Name_Id := N + 588; - Name_Protected : constant Name_Id := N + 589; - Name_Until : constant Name_Id := N + 590; - Name_Requeue : constant Name_Id := N + 591; - Name_Tagged : constant Name_Id := N + 592; - Last_95_Reserved_Word : constant Name_Id := N + 592; + First_95_Reserved_Word : constant Name_Id := N + 596; + Name_Abstract : constant Name_Id := N + 596; + Name_Aliased : constant Name_Id := N + 597; + Name_Protected : constant Name_Id := N + 598; + Name_Until : constant Name_Id := N + 599; + Name_Requeue : constant Name_Id := N + 600; + Name_Tagged : constant Name_Id := N + 601; + Last_95_Reserved_Word : constant Name_Id := N + 601; subtype Ada_95_Reserved_Words is Name_Id range First_95_Reserved_Word .. Last_95_Reserved_Word; -- Miscellaneous names used in semantic checking - Name_Raise_Exception : constant Name_Id := N + 593; + Name_Raise_Exception : constant Name_Id := N + 602; -- Additional reserved words and identifiers used in GNAT Project Files -- Note that Name_External is already previously declared - Name_Ada_Roots : constant Name_Id := N + 594; - Name_Archive_Builder : constant Name_Id := N + 595; - Name_Archive_Indexer : constant Name_Id := N + 596; - Name_Binder : constant Name_Id := N + 597; - Name_Binder_Driver : constant Name_Id := N + 598; - Name_Body_Suffix : constant Name_Id := N + 599; - Name_Builder : constant Name_Id := N + 600; - Name_Compiler : constant Name_Id := N + 601; - Name_Compiler_Driver : constant Name_Id := N + 602; - Name_Compiler_Kind : constant Name_Id := N + 603; - Name_Compiler_Pic_Option : constant Name_Id := N + 604; - Name_Compute_Dependency : constant Name_Id := N + 605; - Name_Config_Body_File_Name : constant Name_Id := N + 606; - Name_Config_Body_File_Name_Pattern : constant Name_Id := N + 607; - Name_Config_File_Switches : constant Name_Id := N + 608; - Name_Config_File_Unique : constant Name_Id := N + 609; - Name_Config_Spec_File_Name : constant Name_Id := N + 610; - Name_Config_Spec_File_Name_Pattern : constant Name_Id := N + 611; - Name_Cross_Reference : constant Name_Id := N + 612; - Name_Default_Builder_Switches : constant Name_Id := N + 613; - Name_Default_Global_Compiler_Switches : constant Name_Id := N + 614; - Name_Default_Language : constant Name_Id := N + 615; - Name_Default_Linker : constant Name_Id := N + 616; - Name_Default_Switches : constant Name_Id := N + 617; - Name_Dependency_File_Kind : constant Name_Id := N + 618; - Name_Dependency_Option : constant Name_Id := N + 619; - Name_Exec_Dir : constant Name_Id := N + 620; - Name_Executable : constant Name_Id := N + 621; - Name_Executable_Suffix : constant Name_Id := N + 622; - Name_Extends : constant Name_Id := N + 623; - Name_Externally_Built : constant Name_Id := N + 624; - Name_Finder : constant Name_Id := N + 625; - Name_Global_Compiler_Switches : constant Name_Id := N + 626; - Name_Global_Configuration_Pragmas : constant Name_Id := N + 627; - Name_Gnatls : constant Name_Id := N + 628; - Name_Gnatstub : constant Name_Id := N + 629; - Name_Implementation : constant Name_Id := N + 630; - Name_Implementation_Exceptions : constant Name_Id := N + 631; - Name_Implementation_Suffix : constant Name_Id := N + 632; - Name_Include_Option : constant Name_Id := N + 633; - Name_Include_Path : constant Name_Id := N + 634; - Name_Include_Path_File : constant Name_Id := N + 635; - Name_Language_Kind : constant Name_Id := N + 636; - Name_Language_Processing : constant Name_Id := N + 637; - Name_Languages : constant Name_Id := N + 638; - Name_Library_Ali_Dir : constant Name_Id := N + 639; - Name_Library_Dir : constant Name_Id := N + 640; - Name_Library_Auto_Init : constant Name_Id := N + 641; - Name_Library_GCC : constant Name_Id := N + 642; - Name_Library_Interface : constant Name_Id := N + 643; - Name_Library_Kind : constant Name_Id := N + 644; - Name_Library_Name : constant Name_Id := N + 645; - Name_Library_Options : constant Name_Id := N + 646; - Name_Library_Reference_Symbol_File : constant Name_Id := N + 647; - Name_Library_Src_Dir : constant Name_Id := N + 648; - Name_Library_Symbol_File : constant Name_Id := N + 649; - Name_Library_Symbol_Policy : constant Name_Id := N + 650; - Name_Library_Version : constant Name_Id := N + 651; - Name_Linker : constant Name_Id := N + 652; - Name_Linker_Executable_Option : constant Name_Id := N + 653; - Name_Linker_Lib_Dir_Option : constant Name_Id := N + 654; - Name_Linker_Lib_Name_Option : constant Name_Id := N + 655; - Name_Local_Configuration_Pragmas : constant Name_Id := N + 656; - Name_Locally_Removed_Files : constant Name_Id := N + 657; - Name_Mapping_File_Switches : constant Name_Id := N + 658; - Name_Metrics : constant Name_Id := N + 659; - Name_Naming : constant Name_Id := N + 660; - Name_Object_Dir : constant Name_Id := N + 661; - Name_Pretty_Printer : constant Name_Id := N + 662; - Name_Project : constant Name_Id := N + 663; - Name_Roots : constant Name_Id := N + 664; - Name_Runtime_Project : constant Name_Id := N + 665; - Name_Separate_Suffix : constant Name_Id := N + 666; - Name_Source_Dirs : constant Name_Id := N + 667; - Name_Source_Files : constant Name_Id := N + 668; - Name_Source_List_File : constant Name_Id := N + 669; - Name_Spec : constant Name_Id := N + 670; - Name_Spec_Suffix : constant Name_Id := N + 671; - Name_Specification : constant Name_Id := N + 672; - Name_Specification_Exceptions : constant Name_Id := N + 673; - Name_Specification_Suffix : constant Name_Id := N + 674; - Name_Switches : constant Name_Id := N + 675; + Name_Ada_Roots : constant Name_Id := N + 603; + Name_Archive_Builder : constant Name_Id := N + 604; + Name_Archive_Indexer : constant Name_Id := N + 605; + Name_Binder : constant Name_Id := N + 606; + Name_Binder_Driver : constant Name_Id := N + 607; + Name_Body_Suffix : constant Name_Id := N + 608; + Name_Builder : constant Name_Id := N + 609; + Name_Compiler : constant Name_Id := N + 610; + Name_Compiler_Driver : constant Name_Id := N + 611; + Name_Compiler_Kind : constant Name_Id := N + 612; + Name_Compiler_Pic_Option : constant Name_Id := N + 613; + Name_Compute_Dependency : constant Name_Id := N + 614; + Name_Config_Body_File_Name : constant Name_Id := N + 615; + Name_Config_Body_File_Name_Pattern : constant Name_Id := N + 616; + Name_Config_File_Switches : constant Name_Id := N + 617; + Name_Config_File_Unique : constant Name_Id := N + 618; + Name_Config_Spec_File_Name : constant Name_Id := N + 619; + Name_Config_Spec_File_Name_Pattern : constant Name_Id := N + 620; + Name_Cross_Reference : constant Name_Id := N + 621; + Name_Default_Builder_Switches : constant Name_Id := N + 622; + Name_Default_Global_Compiler_Switches : constant Name_Id := N + 623; + Name_Default_Language : constant Name_Id := N + 624; + Name_Default_Linker : constant Name_Id := N + 625; + Name_Default_Switches : constant Name_Id := N + 626; + Name_Dependency_File_Kind : constant Name_Id := N + 627; + Name_Dependency_Option : constant Name_Id := N + 628; + Name_Exec_Dir : constant Name_Id := N + 629; + Name_Executable : constant Name_Id := N + 630; + Name_Executable_Suffix : constant Name_Id := N + 631; + Name_Extends : constant Name_Id := N + 632; + Name_Externally_Built : constant Name_Id := N + 633; + Name_Finder : constant Name_Id := N + 634; + Name_Global_Compiler_Switches : constant Name_Id := N + 635; + Name_Global_Configuration_Pragmas : constant Name_Id := N + 636; + Name_Gnatls : constant Name_Id := N + 637; + Name_Gnatstub : constant Name_Id := N + 638; + Name_Implementation : constant Name_Id := N + 639; + Name_Implementation_Exceptions : constant Name_Id := N + 640; + Name_Implementation_Suffix : constant Name_Id := N + 641; + Name_Include_Option : constant Name_Id := N + 642; + Name_Include_Path : constant Name_Id := N + 643; + Name_Include_Path_File : constant Name_Id := N + 644; + Name_Language_Kind : constant Name_Id := N + 645; + Name_Language_Processing : constant Name_Id := N + 646; + Name_Languages : constant Name_Id := N + 647; + Name_Library_Ali_Dir : constant Name_Id := N + 648; + Name_Library_Dir : constant Name_Id := N + 649; + Name_Library_Auto_Init : constant Name_Id := N + 650; + Name_Library_GCC : constant Name_Id := N + 651; + Name_Library_Interface : constant Name_Id := N + 652; + Name_Library_Kind : constant Name_Id := N + 653; + Name_Library_Name : constant Name_Id := N + 654; + Name_Library_Options : constant Name_Id := N + 655; + Name_Library_Reference_Symbol_File : constant Name_Id := N + 656; + Name_Library_Src_Dir : constant Name_Id := N + 657; + Name_Library_Symbol_File : constant Name_Id := N + 658; + Name_Library_Symbol_Policy : constant Name_Id := N + 659; + Name_Library_Version : constant Name_Id := N + 660; + Name_Linker : constant Name_Id := N + 661; + Name_Linker_Executable_Option : constant Name_Id := N + 662; + Name_Linker_Lib_Dir_Option : constant Name_Id := N + 663; + Name_Linker_Lib_Name_Option : constant Name_Id := N + 664; + Name_Local_Configuration_Pragmas : constant Name_Id := N + 665; + Name_Locally_Removed_Files : constant Name_Id := N + 666; + Name_Mapping_File_Switches : constant Name_Id := N + 667; + Name_Metrics : constant Name_Id := N + 668; + Name_Naming : constant Name_Id := N + 669; + Name_Object_Dir : constant Name_Id := N + 670; + Name_Pretty_Printer : constant Name_Id := N + 671; + Name_Project : constant Name_Id := N + 672; + Name_Roots : constant Name_Id := N + 673; + Name_Runtime_Project : constant Name_Id := N + 674; + Name_Separate_Suffix : constant Name_Id := N + 675; + Name_Source_Dirs : constant Name_Id := N + 676; + Name_Source_Files : constant Name_Id := N + 677; + Name_Source_List_File : constant Name_Id := N + 678; + Name_Spec : constant Name_Id := N + 679; + Name_Spec_Suffix : constant Name_Id := N + 680; + Name_Specification : constant Name_Id := N + 681; + Name_Specification_Exceptions : constant Name_Id := N + 682; + Name_Specification_Suffix : constant Name_Id := N + 683; + Name_Switches : constant Name_Id := N + 684; -- Other miscellaneous names used in front end - Name_Unaligned_Valid : constant Name_Id := N + 676; + Name_Unaligned_Valid : constant Name_Id := N + 685; -- Ada 2005 reserved words - First_2005_Reserved_Word : constant Name_Id := N + 677; - Name_Interface : constant Name_Id := N + 677; - Name_Overriding : constant Name_Id := N + 678; - Name_Synchronized : constant Name_Id := N + 679; - Last_2005_Reserved_Word : constant Name_Id := N + 679; + First_2005_Reserved_Word : constant Name_Id := N + 686; + Name_Interface : constant Name_Id := N + 686; + Name_Overriding : constant Name_Id := N + 687; + Name_Synchronized : constant Name_Id := N + 688; + Last_2005_Reserved_Word : constant Name_Id := N + 688; subtype Ada_2005_Reserved_Words is Name_Id range First_2005_Reserved_Word .. Last_2005_Reserved_Word; -- Mark last defined name for consistency check in Snames body - Last_Predefined_Name : constant Name_Id := N + 679; + Last_Predefined_Name : constant Name_Id := N + 688; --------------------------------------- -- Subtypes Defining Name Categories -- @@ -1145,6 +1161,7 @@ package Snames is Attribute_Pool_Address, Attribute_Pos, Attribute_Position, + Attribute_Priority, Attribute_Range, Attribute_Range_Length, Attribute_Round, @@ -1222,7 +1239,8 @@ package Snames is -- Type attributes Attribute_Base, - Attribute_Class); + Attribute_Class, + Attribute_Stub_Type); ------------------------------------ -- Convention Name ID Definitions -- @@ -1304,6 +1322,7 @@ package Snames is Pragma_Normalize_Scalars, Pragma_Polling, Pragma_Persistent_BSS, + Pragma_Priority_Specific_Dispatching, Pragma_Profile, Pragma_Profile_Warnings, Pragma_Propagate_Exceptions, @@ -1324,6 +1343,7 @@ package Snames is Pragma_Use_VADS_Size, Pragma_Validity_Checks, Pragma_Warnings, + Pragma_Wide_Character_Encoding, -- Remaining (non-configuration) pragmas @@ -1393,9 +1413,9 @@ package Snames is Pragma_Pack, Pragma_Page, Pragma_Passive, + Pragma_Preelaborable_Initialization, Pragma_Preelaborate, Pragma_Preelaborate_05, - Pragma_Priority, Pragma_Psect_Object, Pragma_Pure, Pragma_Pure_05, @@ -1432,6 +1452,7 @@ package Snames is Pragma_AST_Entry, Pragma_Interface, + Pragma_Priority, Pragma_Storage_Size, Pragma_Storage_Unit, @@ -1510,9 +1531,9 @@ package Snames is function Is_Pragma_Name (N : Name_Id) return Boolean; -- Test to see if the name N is the name of a recognized pragma. Note - -- that pragmas AST_Entry, Storage_Size, and Storage_Unit are recognized - -- as pragmas by this function even though their names are separate from - -- the other pragma names. + -- that pragmas AST_Entry, Priority, Storage_Size, and Storage_Unit are + -- recognized as pragmas by this function even though their names are + -- separate from the other pragma names. function Is_Queuing_Policy_Name (N : Name_Id) return Boolean; -- Test to see if the name N is the name of a recognized queuing policy @@ -1530,6 +1551,10 @@ package Snames is -- to call this function with a name that is not the name of a convention, -- or one previously given in a call to Record_Convention_Identifier. + function Get_Convention_Name (C : Convention_Id) return Name_Id; + -- Returns the name of language convention correspoding to given + -- convention id. + function Get_Check_Id (N : Name_Id) return Check_Id; -- Returns Id of suppress check corresponding to given name. It is an error -- to call this function with a name that is not the name of a check. @@ -1542,8 +1567,9 @@ package Snames is -- Returns Id of pragma corresponding to given name. Returns Unknown_Pragma -- if N is not a name of a known (Ada defined or GNAT-specific) pragma. -- Note that the function also works correctly for names of pragmas that - -- are not in the main list of pragma Names (AST_Entry, Storage_Size, and - -- Storage_Unit (e.g. Name_Storage_Size returns Pragma_Storage_Size). + -- are not included in the main list of pragma Names (AST_Entry, Priority, + -- Storage_Size, and Storage_Unit (e.g. Name_Storage_Size returns + -- Pragma_Storage_Size). function Get_Queuing_Policy_Id (N : Name_Id) return Queuing_Policy_Id; -- Returns Id of queuing policy corresponding to given name. It is an error diff --git a/gcc/ada/snames.h b/gcc/ada/snames.h index 1064730..bfe35b6 100644 --- a/gcc/ada/snames.h +++ b/gcc/ada/snames.h @@ -115,72 +115,74 @@ extern unsigned char Get_Attribute_Id (int); #define Attr_Pool_Address 67 #define Attr_Pos 68 #define Attr_Position 69 -#define Attr_Range 70 -#define Attr_Range_Length 71 -#define Attr_Round 72 -#define Attr_Safe_Emax 73 -#define Attr_Safe_First 74 -#define Attr_Safe_Large 75 -#define Attr_Safe_Last 76 -#define Attr_Safe_Small 77 -#define Attr_Scale 78 -#define Attr_Scaling 79 -#define Attr_Signed_Zeros 80 -#define Attr_Size 81 -#define Attr_Small 82 -#define Attr_Storage_Size 83 -#define Attr_Storage_Unit 84 -#define Attr_Stream_Size 85 -#define Attr_Tag 86 -#define Attr_Target_Name 87 -#define Attr_Terminated 88 -#define Attr_To_Address 89 -#define Attr_Type_Class 90 -#define Attr_UET_Address 91 -#define Attr_Unbiased_Rounding 92 -#define Attr_Unchecked_Access 93 -#define Attr_Unconstrained_Array 94 -#define Attr_Universal_Literal_String 95 -#define Attr_Unrestricted_Access 96 -#define Attr_VADS_Size 97 -#define Attr_Val 98 -#define Attr_Valid 99 -#define Attr_Value_Size 100 -#define Attr_Version 101 -#define Attr_Wchar_T_Size 102 -#define Attr_Wide_Wide_Width 103 -#define Attr_Wide_Width 104 -#define Attr_Width 105 -#define Attr_Word_Size 106 -#define Attr_Adjacent 107 -#define Attr_Ceiling 108 -#define Attr_Copy_Sign 109 -#define Attr_Floor 110 -#define Attr_Fraction 111 -#define Attr_Image 112 -#define Attr_Input 113 -#define Attr_Machine 114 -#define Attr_Max 115 -#define Attr_Min 116 -#define Attr_Model 117 -#define Attr_Pred 118 -#define Attr_Remainder 119 -#define Attr_Rounding 120 -#define Attr_Succ 121 -#define Attr_Truncation 122 -#define Attr_Value 123 -#define Attr_Wide_Image 124 -#define Attr_Wide_Wide_Image 125 -#define Attr_Wide_Value 126 -#define Attr_Wide_Wide_Value 127 -#define Attr_Output 128 -#define Attr_Read 129 -#define Attr_Write 130 -#define Attr_Elab_Body 131 -#define Attr_Elab_Spec 132 -#define Attr_Storage_Pool 133 -#define Attr_Base 134 -#define Attr_Class 135 +#define Attr_Priority 70 +#define Attr_Range 71 +#define Attr_Range_Length 72 +#define Attr_Round 73 +#define Attr_Safe_Emax 74 +#define Attr_Safe_First 75 +#define Attr_Safe_Large 76 +#define Attr_Safe_Last 77 +#define Attr_Safe_Small 78 +#define Attr_Scale 79 +#define Attr_Scaling 80 +#define Attr_Signed_Zeros 81 +#define Attr_Size 82 +#define Attr_Small 83 +#define Attr_Storage_Size 84 +#define Attr_Storage_Unit 85 +#define Attr_Stream_Size 86 +#define Attr_Tag 87 +#define Attr_Target_Name 88 +#define Attr_Terminated 89 +#define Attr_To_Address 90 +#define Attr_Type_Class 91 +#define Attr_UET_Address 92 +#define Attr_Unbiased_Rounding 93 +#define Attr_Unchecked_Access 94 +#define Attr_Unconstrained_Array 95 +#define Attr_Universal_Literal_String 96 +#define Attr_Unrestricted_Access 97 +#define Attr_VADS_Size 98 +#define Attr_Val 99 +#define Attr_Valid 100 +#define Attr_Value_Size 101 +#define Attr_Version 102 +#define Attr_Wchar_T_Size 103 +#define Attr_Wide_Wide_Width 104 +#define Attr_Wide_Width 105 +#define Attr_Width 106 +#define Attr_Word_Size 107 +#define Attr_Adjacent 108 +#define Attr_Ceiling 109 +#define Attr_Copy_Sign 110 +#define Attr_Floor 111 +#define Attr_Fraction 112 +#define Attr_Image 113 +#define Attr_Input 114 +#define Attr_Machine 115 +#define Attr_Max 116 +#define Attr_Min 117 +#define Attr_Model 118 +#define Attr_Pred 119 +#define Attr_Remainder 120 +#define Attr_Rounding 121 +#define Attr_Succ 122 +#define Attr_Truncation 123 +#define Attr_Value 124 +#define Attr_Wide_Image 125 +#define Attr_Wide_Wide_Image 126 +#define Attr_Wide_Value 127 +#define Attr_Wide_Wide_Value 128 +#define Attr_Output 129 +#define Attr_Read 130 +#define Attr_Write 131 +#define Attr_Elab_Body 132 +#define Attr_Elab_Spec 133 +#define Attr_Storage_Pool 134 +#define Attr_Base 135 +#define Attr_Class 136 +#define Attr_Stub_Type 137 /* Define the numeric values for the conventions. */ @@ -241,127 +243,130 @@ extern unsigned char Get_Pragma_Id (int); #define Pragma_Normalize_Scalars 26 #define Pragma_Polling 27 #define Pragma_Persistent_BSS 28 -#define Pragma_Profile 29 -#define Pragma_Profile_Warnings 30 -#define Pragma_Propagate_Exceptions 31 -#define Pragma_Queuing_Policy 32 -#define Pragma_Ravenscar 33 -#define Pragma_Restricted_Run_Time 34 -#define Pragma_Restrictions 35 -#define Pragma_Restriction_Warnings 36 -#define Pragma_Reviewable 37 -#define Pragma_Source_File_Name 38 -#define Pragma_Source_File_Name_Project 39 -#define Pragma_Style_Checks 40 -#define Pragma_Suppress 41 -#define Pragma_Suppress_Exception_Locations 42 -#define Pragma_Task_Dispatching_Policy 43 -#define Pragma_Universal_Data 44 -#define Pragma_Unsuppress 45 -#define Pragma_Use_VADS_Size 46 -#define Pragma_Validity_Checks 47 -#define Pragma_Warnings 48 -#define Pragma_Abort_Defer 49 -#define Pragma_All_Calls_Remote 50 -#define Pragma_Annotate 51 -#define Pragma_Assert 52 -#define Pragma_Asynchronous 53 -#define Pragma_Atomic 54 -#define Pragma_Atomic_Components 55 -#define Pragma_Attach_Handler 56 -#define Pragma_Comment 57 -#define Pragma_Common_Object 58 -#define Pragma_Complete_Representation 59 -#define Pragma_Complex_Representation 60 -#define Pragma_Controlled 61 -#define Pragma_Convention 62 -#define Pragma_CPP_Class 63 -#define Pragma_CPP_Constructor 64 -#define Pragma_CPP_Virtual 65 -#define Pragma_CPP_Vtable 66 -#define Pragma_Debug 67 -#define Pragma_Elaborate 68 -#define Pragma_Elaborate_All 69 -#define Pragma_Elaborate_Body 70 -#define Pragma_Export 71 -#define Pragma_Export_Exception 72 -#define Pragma_Export_Function 73 -#define Pragma_Export_Object 74 -#define Pragma_Export_Procedure 75 -#define Pragma_Export_Value 76 -#define Pragma_Export_Valued_Procedure 77 -#define Pragma_External 78 -#define Pragma_Finalize_Storage_Only 79 -#define Pragma_Ident 80 -#define Pragma_Import 81 -#define Pragma_Import_Exception 82 -#define Pragma_Import_Function 83 -#define Pragma_Import_Object 84 -#define Pragma_Import_Procedure 85 -#define Pragma_Import_Valued_Procedure 86 -#define Pragma_Inline 87 -#define Pragma_Inline_Always 88 -#define Pragma_Inline_Generic 89 -#define Pragma_Inspection_Point 90 -#define Pragma_Interface_Name 91 -#define Pragma_Interrupt_Handler 92 -#define Pragma_Interrupt_Priority 93 -#define Pragma_Java_Constructor 94 -#define Pragma_Java_Interface 95 -#define Pragma_Keep_Names 96 -#define Pragma_Link_With 97 -#define Pragma_Linker_Alias 98 -#define Pragma_Linker_Constructor 99 -#define Pragma_Linker_Destructor 100 -#define Pragma_Linker_Options 101 -#define Pragma_Linker_Section 102 -#define Pragma_List 103 -#define Pragma_Machine_Attribute 104 -#define Pragma_Main 105 -#define Pragma_Main_Storage 106 -#define Pragma_Memory_Size 107 -#define Pragma_No_Return 108 -#define Pragma_Obsolescent 109 -#define Pragma_Optimize 110 -#define Pragma_Optional_Overriding 111 -#define Pragma_Pack 112 -#define Pragma_Page 113 -#define Pragma_Passive 114 -#define Pragma_Preelaborate 115 -#define Pragma_Preelaborate_05 116 -#define Pragma_Priority 117 -#define Pragma_Psect_Object 118 -#define Pragma_Pure 119 -#define Pragma_Pure_05 120 -#define Pragma_Pure_Function 121 -#define Pragma_Remote_Call_Interface 122 -#define Pragma_Remote_Types 123 -#define Pragma_Share_Generic 124 -#define Pragma_Shared 125 -#define Pragma_Shared_Passive 126 -#define Pragma_Source_Reference 127 -#define Pragma_Stream_Convert 128 -#define Pragma_Subtitle 129 -#define Pragma_Suppress_All 130 -#define Pragma_Suppress_Debug_Info 131 -#define Pragma_Suppress_Initialization 132 -#define Pragma_System_Name 133 -#define Pragma_Task_Info 134 -#define Pragma_Task_Name 135 -#define Pragma_Task_Storage 136 -#define Pragma_Thread_Body 137 -#define Pragma_Time_Slice 138 -#define Pragma_Title 139 -#define Pragma_Unchecked_Union 140 -#define Pragma_Unimplemented_Unit 141 -#define Pragma_Unreferenced 142 -#define Pragma_Unreserve_All_Interrupts 143 -#define Pragma_Volatile 144 -#define Pragma_Volatile_Components 145 -#define Pragma_Weak_External 146 -#define Pragma_AST_Entry 147 -#define Pragma_Interface 148 -#define Pragma_Storage_Size 149 -#define Pragma_Storage_Unit 150 +#define Pragma_Priority_Specific_Dispatching 29 +#define Pragma_Profile 30 +#define Pragma_Profile_Warnings 31 +#define Pragma_Propagate_Exceptions 32 +#define Pragma_Queuing_Policy 33 +#define Pragma_Ravenscar 34 +#define Pragma_Restricted_Run_Time 35 +#define Pragma_Restrictions 36 +#define Pragma_Restriction_Warnings 37 +#define Pragma_Reviewable 38 +#define Pragma_Source_File_Name 39 +#define Pragma_Source_File_Name_Project 40 +#define Pragma_Style_Checks 41 +#define Pragma_Suppress 42 +#define Pragma_Suppress_Exception_Locations 43 +#define Pragma_Task_Dispatching_Policy 44 +#define Pragma_Universal_Data 45 +#define Pragma_Unsuppress 46 +#define Pragma_Use_VADS_Size 47 +#define Pragma_Validity_Checks 48 +#define Pragma_Warnings 49 +#define Pragma_Wide_Character_Encoding 50 +#define Pragma_Abort_Defer 51 +#define Pragma_All_Calls_Remote 52 +#define Pragma_Annotate 53 +#define Pragma_Assert 54 +#define Pragma_Asynchronous 55 +#define Pragma_Atomic 56 +#define Pragma_Atomic_Components 57 +#define Pragma_Attach_Handler 58 +#define Pragma_Comment 59 +#define Pragma_Common_Object 60 +#define Pragma_Complete_Representation 61 +#define Pragma_Complex_Representation 62 +#define Pragma_Controlled 63 +#define Pragma_Convention 64 +#define Pragma_CPP_Class 65 +#define Pragma_CPP_Constructor 66 +#define Pragma_CPP_Virtual 67 +#define Pragma_CPP_Vtable 68 +#define Pragma_Debug 69 +#define Pragma_Elaborate 70 +#define Pragma_Elaborate_All 71 +#define Pragma_Elaborate_Body 72 +#define Pragma_Export 73 +#define Pragma_Export_Exception 74 +#define Pragma_Export_Function 75 +#define Pragma_Export_Object 76 +#define Pragma_Export_Procedure 77 +#define Pragma_Export_Value 78 +#define Pragma_Export_Valued_Procedure 79 +#define Pragma_External 80 +#define Pragma_Finalize_Storage_Only 81 +#define Pragma_Ident 82 +#define Pragma_Import 83 +#define Pragma_Import_Exception 84 +#define Pragma_Import_Function 85 +#define Pragma_Import_Object 86 +#define Pragma_Import_Procedure 87 +#define Pragma_Import_Valued_Procedure 88 +#define Pragma_Inline 89 +#define Pragma_Inline_Always 90 +#define Pragma_Inline_Generic 91 +#define Pragma_Inspection_Point 92 +#define Pragma_Interface_Name 93 +#define Pragma_Interrupt_Handler 94 +#define Pragma_Interrupt_Priority 95 +#define Pragma_Java_Constructor 96 +#define Pragma_Java_Interface 97 +#define Pragma_Keep_Names 98 +#define Pragma_Link_With 99 +#define Pragma_Linker_Alias 100 +#define Pragma_Linker_Constructor 101 +#define Pragma_Linker_Destructor 102 +#define Pragma_Linker_Options 103 +#define Pragma_Linker_Section 104 +#define Pragma_List 105 +#define Pragma_Machine_Attribute 106 +#define Pragma_Main 107 +#define Pragma_Main_Storage 108 +#define Pragma_Memory_Size 109 +#define Pragma_No_Return 110 +#define Pragma_Obsolescent 111 +#define Pragma_Optimize 112 +#define Pragma_Optional_Overriding 113 +#define Pragma_Pack 114 +#define Pragma_Page 115 +#define Pragma_Passive 116 +#define Pragma_Preelaborable_Initialization 117 +#define Pragma_Preelaborate 118 +#define Pragma_Preelaborate_05 119 +#define Pragma_Psect_Object 120 +#define Pragma_Pure 121 +#define Pragma_Pure_05 122 +#define Pragma_Pure_Function 123 +#define Pragma_Remote_Call_Interface 124 +#define Pragma_Remote_Types 125 +#define Pragma_Share_Generic 126 +#define Pragma_Shared 127 +#define Pragma_Shared_Passive 128 +#define Pragma_Source_Reference 129 +#define Pragma_Stream_Convert 130 +#define Pragma_Subtitle 131 +#define Pragma_Suppress_All 132 +#define Pragma_Suppress_Debug_Info 133 +#define Pragma_Suppress_Initialization 134 +#define Pragma_System_Name 135 +#define Pragma_Task_Info 136 +#define Pragma_Task_Name 137 +#define Pragma_Task_Storage 138 +#define Pragma_Thread_Body 139 +#define Pragma_Time_Slice 140 +#define Pragma_Title 141 +#define Pragma_Unchecked_Union 142 +#define Pragma_Unimplemented_Unit 143 +#define Pragma_Unreferenced 144 +#define Pragma_Unreserve_All_Interrupts 145 +#define Pragma_Volatile 146 +#define Pragma_Volatile_Components 147 +#define Pragma_Weak_External 148 +#define Pragma_AST_Entry 149 +#define Pragma_Interface 150 +#define Pragma_Priority 151 +#define Pragma_Storage_Size 152 +#define Pragma_Storage_Unit 153 /* End of snames.h (C version of Snames package spec) */ -- 2.7.4