Commit e3da30b2 by Robert Dewar Committed by Arnaud Charlet

sinfo.ads, sinfo.adb (Set_Synchronized_Present, [...]): Add…

sinfo.ads, sinfo.adb (Set_Synchronized_Present, [...]): Add Formal_Derived_Type_Definition and Private_Extension_Declaration to the...

2006-10-31  Robert Dewar  <dewar@adacore.com>
	    Ed Schonberg  <schonberg@adacore.com>
	    Bob Duff  <duff@adacore.com>

	* 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.

From-SVN: r118313
parent 9b0986f8
......@@ -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;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment