-- 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.
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
-- 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);