From: Piotr Trojanek <troja...@adacore.com>

Objects of private types with unknown discriminants are now allowed as
inputs in the Depends contracts.

gcc/ada/

        * sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Allow objects
        of private types with unknown discriminants.

Tested on x86_64-pc-linux-gnu, committed on master.

---
 gcc/ada/sem_prag.adb | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gcc/ada/sem_prag.adb b/gcc/ada/sem_prag.adb
index 9dc22e3edc1..0302cdb00ba 100644
--- a/gcc/ada/sem_prag.adb
+++ b/gcc/ada/sem_prag.adb
@@ -283,7 +283,8 @@ package body Sem_Prag is
    function Is_Unconstrained_Or_Tagged_Item (Item : Entity_Id) return Boolean;
    --  Subsidiary to Collect_Subprogram_Inputs_Outputs and the analysis of
    --  pragma Depends. Determine whether the type of dependency item Item is
-   --  tagged, unconstrained array or unconstrained record.
+   --  tagged, unconstrained array, unconstrained private or unconstrained
+   --  record.
 
    procedure Record_Possible_Body_Reference
      (State_Id : Entity_Id;
@@ -32977,7 +32978,8 @@ package body Sem_Prag is
          return Has_Discriminants (Typ) and then not Is_Constrained (Typ);
 
       elsif Is_Private_Type (Typ) then
-         return Has_Discriminants (Typ);
+         return Has_Discriminants (Typ)
+           or else Has_Unknown_Discriminants (Typ);
 
       else
          return False;
-- 
2.43.2

Reply via email to