https://gcc.gnu.org/g:4b5eeb74a20028e493b520887cc9fd97d6fc0f3d

commit r15-594-g4b5eeb74a20028e493b520887cc9fd97d6fc0f3d
Author: Piotr Trojanek <troja...@adacore.com>
Date:   Tue Mar 5 13:03:18 2024 +0100

    ada: Allow private items with unknown discriminants as Depends inputs
    
    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.

Diff:
---
 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 9dc22e3edc17..0302cdb00ba5 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;

Reply via email to