summaryrefslogtreecommitdiff
path: root/gcc/ada/exp_disp.ads
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2007-12-13 10:26:10 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2007-12-13 10:26:10 +0000
commitcdb1c38ff3ef6b2a570594be1bffd8f0b52a99e2 (patch)
treecf94041983da12af1b94e4372cefd1f4e01b503f /gcc/ada/exp_disp.ads
parent5809835dfd384177a9c74e929cca5f7fdc71c195 (diff)
downloadgcc-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.ads21
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