diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-12-13 10:26:10 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-12-13 10:26:10 +0000 |
commit | cdb1c38ff3ef6b2a570594be1bffd8f0b52a99e2 (patch) | |
tree | cf94041983da12af1b94e4372cefd1f4e01b503f /gcc/ada/exp_disp.ads | |
parent | 5809835dfd384177a9c74e929cca5f7fdc71c195 (diff) | |
download | gcc-cdb1c38ff3ef6b2a570594be1bffd8f0b52a99e2.tar.gz |
2007-12-06 Hristian Kirtchev <kirtchev@adacore.com>
Javier Miranda <miranda@adacore.com>
* exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
_Disp_Requeue occupies dispatch table slot number 15. Move
_Disp_Timed_Select to slot 16.
(Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
generate the spec and body of _Disp_Reqeueue.
(Make_DT): Build and initialize the second dispatch table.
Handle initialization of RC_Offset when the parent
is a private type with variable size components.
(Make_Secondary_DT): Complete documentation. Add support to
initialize the second dispatch table.
(Make_Tags): Generate the tag of the second dispatch table.
(Register_Primitive): Add support to register primitives in the
second dispatch table.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130835 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/exp_disp.ads')
-rw-r--r-- | gcc/ada/exp_disp.ads | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/gcc/ada/exp_disp.ads b/gcc/ada/exp_disp.ads index ee78c81b05a..5bf2b6c30a4 100644 --- a/gcc/ada/exp_disp.ads +++ b/gcc/ada/exp_disp.ads @@ -104,7 +104,13 @@ package Exp_Disp is -- of the cases. See Expand_N_Attribute_Reference in Exp_Attr and -- Expand_N_Abort_Statement in Exp_Ch9 for more information. - -- _Disp_Timed_Select (15) - used in the expansion of timed selects + -- _Disp_Requeue (15) - used in the expansion of dispatching requeue + -- statements. Null implementation is provided for protected, task + -- and synchronized interfaces. Protected and task types implementing + -- concurrent interfaces receive full bodies. See Expand_N_Requeue_ + -- Statement in Exp_Ch9 for more information. + + -- _Disp_Timed_Select (16) - used in the expansion of timed selects -- with dispatching triggers. Null implementation for limited -- interfaces, full body generation for types that implement limited -- interfaces, not generated for the rest of the cases. See Expand_N_ @@ -258,10 +264,21 @@ package Exp_Disp is -- of type Typ used for retrieving the _task_id field of a task interface -- class-wide type. + function Make_Disp_Requeue_Body + (Typ : Entity_Id) return Node_Id; + -- Ada 2005 (AI05-0030): Generate the body of the primitive operation of + -- type Typ used for dispatching on requeue statements. Generate a body + -- containing a single null-statement if Typ is an interface type. + + function Make_Disp_Requeue_Spec + (Typ : Entity_Id) return Node_Id; + -- Ada 2005 (AI05-0030): Generate the specification of the primitive + -- operation of type Typ used for dispatching requeue statements. + function Make_Disp_Timed_Select_Body (Typ : Entity_Id) return Node_Id; -- Ada 2005 (AI-345): Generate the body of the primitive operation of type - -- Typ used for dispatching in timed selects. Generates a body containing + -- Typ used for dispatching in timed selects. Generate a body containing -- a single null-statement if Typ is an interface type. function Make_Disp_Timed_Select_Spec |