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 ...@@ -201,6 +201,7 @@ package body Snames is
"normalize_scalars#" & "normalize_scalars#" &
"polling#" & "polling#" &
"persistent_bss#" & "persistent_bss#" &
"priority_specific_dispatching#" &
"profile#" & "profile#" &
"profile_warnings#" & "profile_warnings#" &
"propagate_exceptions#" & "propagate_exceptions#" &
...@@ -221,6 +222,7 @@ package body Snames is ...@@ -221,6 +222,7 @@ package body Snames is
"use_vads_size#" & "use_vads_size#" &
"validity_checks#" & "validity_checks#" &
"warnings#" & "warnings#" &
"wide_character_encoding#" &
"abort_defer#" & "abort_defer#" &
"all_calls_remote#" & "all_calls_remote#" &
"annotate#" & "annotate#" &
...@@ -287,9 +289,9 @@ package body Snames is ...@@ -287,9 +289,9 @@ package body Snames is
"pack#" & "pack#" &
"page#" & "page#" &
"passive#" & "passive#" &
"preelaborable_initialization#" &
"preelaborate#" & "preelaborate#" &
"preelaborate_05#" & "preelaborate_05#" &
"priority#" &
"psect_object#" & "psect_object#" &
"pure#" & "pure#" &
"pure_05#" & "pure_05#" &
...@@ -482,6 +484,7 @@ package body Snames is ...@@ -482,6 +484,7 @@ package body Snames is
"pool_address#" & "pool_address#" &
"pos#" & "pos#" &
"position#" & "position#" &
"priority#" &
"range#" & "range#" &
"range_length#" & "range_length#" &
"round#" & "round#" &
...@@ -548,13 +551,18 @@ package body Snames is ...@@ -548,13 +551,18 @@ package body Snames is
"storage_pool#" & "storage_pool#" &
"base#" & "base#" &
"class#" & "class#" &
"stub_type#" &
"ceiling_locking#" & "ceiling_locking#" &
"inheritance_locking#" & "inheritance_locking#" &
"fifo_queuing#" & "fifo_queuing#" &
"priority_queuing#" & "priority_queuing#" &
"edf_across_priorities#" &
"fifo_within_priorities#" & "fifo_within_priorities#" &
"non_preemptive_within_priorities#" &
"round_robin_within_priorities#" &
"access_check#" & "access_check#" &
"accessibility_check#" & "accessibility_check#" &
"alignment_check#" &
"discriminant_check#" & "discriminant_check#" &
"division_check#" & "division_check#" &
"elaboration_check#" & "elaboration_check#" &
...@@ -564,6 +572,7 @@ package body Snames is ...@@ -564,6 +572,7 @@ package body Snames is
"range_check#" & "range_check#" &
"storage_check#" & "storage_check#" &
"tag_check#" & "tag_check#" &
"validity_check#" &
"all_checks#" & "all_checks#" &
"abort#" & "abort#" &
"abs#" & "abs#" &
...@@ -852,6 +861,28 @@ package body Snames is ...@@ -852,6 +861,28 @@ package body Snames is
end case; end case;
end Get_Convention_Id; 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 -- -- Get_Locking_Policy_Id --
--------------------------- ---------------------------
...@@ -871,6 +902,8 @@ package body Snames is ...@@ -871,6 +902,8 @@ package body Snames is
return Pragma_AST_Entry; return Pragma_AST_Entry;
elsif N = Name_Interface then elsif N = Name_Interface then
return Pragma_Interface; return Pragma_Interface;
elsif N = Name_Priority then
return Pragma_Priority;
elsif N = Name_Storage_Size then elsif N = Name_Storage_Size then
return Pragma_Storage_Size; return Pragma_Storage_Size;
elsif N = Name_Storage_Unit then elsif N = Name_Storage_Unit then
...@@ -1057,6 +1090,7 @@ package body Snames is ...@@ -1057,6 +1090,7 @@ package body Snames is
return N in First_Pragma_Name .. Last_Pragma_Name return N in First_Pragma_Name .. Last_Pragma_Name
or else N = Name_AST_Entry or else N = Name_AST_Entry
or else N = Name_Interface or else N = Name_Interface
or else N = Name_Priority
or else N = Name_Storage_Size or else N = Name_Storage_Size
or else N = Name_Storage_Unit; or else N = Name_Storage_Unit;
end Is_Pragma_Name; 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