]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ada: Allow private items with unknown discriminants as Depends inputs
authorPiotr Trojanek <trojanek@adacore.com>
Tue, 5 Mar 2024 12:03:18 +0000 (13:03 +0100)
committerMarc Poulhiès <poulhies@adacore.com>
Fri, 17 May 2024 08:21:00 +0000 (10:21 +0200)
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.

gcc/ada/sem_prag.adb

index 9dc22e3edc17d283c635473614a60ddb588438b8..0302cdb00ba59ae5084668b36dc0a4cd1f73af20 100644 (file)
@@ -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;