diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-04-06 09:17:34 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-04-06 09:17:34 +0000 |
commit | a0c5023532dafbf2e781d8cabc4c6dcad9158312 (patch) | |
tree | c6d990134c0a3e32e79bb1e35a41a5c158d69b15 /gcc/ada/exp_ch3.ads | |
parent | e40f01f211790d083986288703cb06636014163f (diff) | |
download | gcc-a0c5023532dafbf2e781d8cabc4c6dcad9158312.tar.gz |
2007-04-06 Ed Schonberg <schonberg@adacore.com>
Javier Miranda <miranda@adacore.com>
* exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
anonymous access component, do not create a master_id if type already
has one, as may happen if the type is a subcomponent of a packed array
type.
(Build_Init_Procedure, Component_Needs_Simple_Initialization,
Initialize_Tag): Remove code associated with the old CPP pragmas.
CPP_Virtual and CPP_Vtable are no longer supported.
(Build_Offset_To_Top_Internal): Add support for concurrent record types
(Build_Offset_To_Top_Functions): Add support for concurrent record types
(Freeze_Record_Type): Remove call to
Init_Predefined_Interface_Primitives.
(Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
code required to initialize the tags of the secondary dispatch tables.
This leaves the algoritm more clear.
(Init_Secondary_Tags): Add support for concurrent record types
(Make_Predefined_Primitive_Specs): Code cleanup.
(Predefined_Primitive_Bodies): Code cleanup.
(Build_Master_Renaming): New local subprogram.
(Expand_N_Full_Type_Declaration): Build the master_id associated with
anonymous access to task type components.
(Expand_N_Subtype_Indication): The bounds of a range constraint in a
subtype indication are resolved during analysis, and must not be done
here.
(Stream_Operation_OK): Check Restriction_Active before RTE_Available.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123551 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/exp_ch3.ads')
-rw-r--r-- | gcc/ada/exp_ch3.ads | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/gcc/ada/exp_ch3.ads b/gcc/ada/exp_ch3.ads index 8260ce01236..20136be6ed1 100644 --- a/gcc/ada/exp_ch3.ads +++ b/gcc/ada/exp_ch3.ads @@ -69,17 +69,16 @@ package Exp_Ch3 is Enclos_Type : Entity_Id := Empty; Discr_Map : Elist_Id := New_Elmt_List; With_Default_Init : Boolean := False) return List_Id; - -- Builds a call to the initialization procedure of the Id entity. Id_Ref - -- is either a new reference to Id (for record fields), or an indexed - -- component (for array elements). Loc is the source location for the - -- constructed tree, and Typ is the type of the entity (the initialization - -- procedure of the base type is the procedure that actually gets called). - -- In_Init_Proc has to be set to True when the call is itself in an init - -- proc in order to enable the use of discriminals. Enclos_type is the type - -- of the init proc and it is used for various expansion cases including - -- the case where Typ is a task type which is a array component, the - -- indices of the enclosing type are used to build the string that - -- identifies each task at runtime. + -- Builds a call to the initialization procedure for the base type of Typ, + -- passing it the object denoted by Id_Ref, plus additional parameters as + -- appropriate for the type (the _Master, for task types, for example). + -- Loc is the source location for the constructed tree. In_Init_Proc has + -- to be set to True when the call is itself in an init proc in order to + -- enable the use of discriminals. Enclos_Type is the enclosing type when + -- initializing a component in an outer init proc, and it is used for + -- various expansion cases including the case where Typ is a task type + -- which is an array component, the indices of the enclosing type are + -- used to build the string that identifies each task at runtime. -- -- Discr_Map is used to replace discriminants by their discriminals in -- expressions used to constrain record components. In the presence of |