summaryrefslogtreecommitdiff
path: root/gcc/ada/exp_disp.ads
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/exp_disp.ads')
-rw-r--r--gcc/ada/exp_disp.ads23
1 files changed, 23 insertions, 0 deletions
diff --git a/gcc/ada/exp_disp.ads b/gcc/ada/exp_disp.ads
index 18f751d978d..fab99c28de7 100644
--- a/gcc/ada/exp_disp.ads
+++ b/gcc/ada/exp_disp.ads
@@ -30,6 +30,17 @@ with Types; use Types;
package Exp_Disp is
+ -------------------------------
+ -- SCIL Node Type Definition --
+ -------------------------------
+
+ type Scil_Node_Kind is (
+ Unused,
+ IP_Tag_Init,
+ Dispatching_Call,
+ Dispatch_Table_Object_Init,
+ Dispatch_Table_Tag_Init);
+
-------------------------------------
-- Predefined primitive operations --
-------------------------------------
@@ -215,6 +226,9 @@ package Exp_Disp is
-- Otherwise they are set to the defining identifier and the subprogram
-- body of the generated thunk.
+ function Get_Scil_Node_Kind (Node : Node_Id) return Scil_Node_Kind;
+ -- Returns the kind of an SCIL node
+
function Is_Predefined_Dispatching_Operation (E : Entity_Id) return Boolean;
-- Ada 2005 (AI-251): Determines if E is a predefined primitive operation
@@ -309,6 +323,15 @@ package Exp_Disp is
-- tagged types this routine imports the forward declaration of the tag
-- entity, that will be declared and exported by Make_DT.
+ function New_Scil_Node
+ (Nkind : Scil_Node_Kind;
+ Related_Node : Node_Id;
+ Entity : Entity_Id := Empty;
+ Target_Prim : Entity_Id := Empty) return Node_Id;
+ -- Creates a new Scil node. Related_Node is the AST node associated with
+ -- this Scil node. Entity is the tagged type associated with the Scil node.
+ -- For Dispatching_Call nodes, Target_Prim is the dispatching primitive.
+
function Register_Primitive
(Loc : Source_Ptr;
Prim : Entity_Id) return List_Id;