]> gcc.gnu.org Git - gcc.git/blobdiff - gcc/ada/exp_ch6.ads
ada: Enforce matching of extra formals
[gcc.git] / gcc / ada / exp_ch6.ads
index 19d0bc3ff694fb829c9773189d80561fa42abd8d..66888c51a075020688719cf227ba26a58af2ccd7 100644 (file)
@@ -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);
 
This page took 0.028037 seconds and 5 git commands to generate.