aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/exp_ch6.ads
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/exp_ch6.ads')
-rw-r--r--gcc/ada/exp_ch6.ads20
1 files changed, 19 insertions, 1 deletions
diff --git a/gcc/ada/exp_ch6.ads b/gcc/ada/exp_ch6.ads
index 19d0bc3..66888c5 100644
--- a/gcc/ada/exp_ch6.ads
+++ b/gcc/ada/exp_ch6.ads
@@ -121,6 +121,18 @@ package Exp_Ch6 is
-- The returned node is the root of the procedure body which will replace
-- the original function body, which is not needed for the C program.
+ function Has_BIP_Extra_Formal
+ (E : Entity_Id;
+ Kind : BIP_Formal_Kind;
+ Must_Be_Frozen : Boolean := True) return Boolean;
+ -- Given a subprogram, subprogram type, entry or entry family, return True
+ -- if E has the BIP extra formal associated with Kind. In general this
+ -- subprogram must be invoked with a frozen entity or a subprogram type of
+ -- a dispatching call since we can only rely on the availability of extra
+ -- formals on these entities; this requirement can be relaxed using the
+ -- formal Must_Be_Frozen in scenarios where we know that the entity has
+ -- the extra formals.
+
procedure Install_Class_Preconditions_Check (Call_Node : Node_Id);
-- Install check of class-wide preconditions on the caller.
@@ -137,7 +149,8 @@ package Exp_Ch6 is
function Is_Build_In_Place_Function_Call (N : Node_Id) return Boolean;
-- Ada 2005 (AI-318-02): Returns True if N denotes a call to a function
-- that requires handling as a build-in-place call (possibly qualified or
- -- converted).
+ -- converted); that is, BIP function calls, and calls to functions with
+ -- inherited BIP formals.
function Is_Build_In_Place_Result_Type (Typ : Entity_Id) return Boolean;
-- Ada 2005 (AI-318-02): Returns True if functions returning the type use
@@ -265,6 +278,11 @@ package Exp_Ch6 is
-- to reference the secondary dispatch table of an interface; otherwise
-- return Empty.
+ procedure Validate_Subprogram_Calls (N : Node_Id);
+ -- Check that the number of actuals (including extra actuals) of calls in
+ -- the subtree N match their corresponding formals; check also that the
+ -- names of BIP extra actuals and formals match.
+
private
pragma Inline (Is_Build_In_Place_Return_Object);