[Ada] ACATS 4.1H - BA12018 - Missed errors for private with
authorArnaud Charlet <charlet@adacore.com>
Sun, 19 Apr 2020 09:44:10 +0000 (05:44 -0400)
committerPierre-Marie de Rodat <derodat@adacore.com>
Wed, 17 Jun 2020 08:14:23 +0000 (04:14 -0400)
2020-06-17  Arnaud Charlet  <charlet@adacore.com>

gcc/ada/

* sem_ch10.adb (Expand_With_Clause): Add missing handling of
N_Generic_Subprogram_Declaration, N_Subprogram_Declaration,
N_Subprogram_Body.

gcc/ada/sem_ch10.adb

index 28f4674ceebea3ab2c724decdda1d96a84333e86..f439382fdec36de92bfac34e99a748835ba6b1f5 100644 (file)
@@ -3197,12 +3197,16 @@ package body Sem_Ch10 is
       Set_Library_Unit       (Withn, Parent (Unit_Declaration_Node (Ent)));
       Set_Parent_With        (Withn);
 
-      --  If the unit is a package or generic package declaration, a private_
-      --  with_clause on a child unit implies that the implicit with on the
-      --  parent is also private.
+      --  If the unit is a [generic] package or subprogram declaration
+      --  (including a subprogram body acting as spec), a private_with_clause
+      --  on a child unit implies that the implicit with on the parent is also
+      --  private.
 
       if Nkind_In (Unit (N), N_Generic_Package_Declaration,
-                             N_Package_Declaration)
+                             N_Package_Declaration,
+                             N_Generic_Subprogram_Declaration,
+                             N_Subprogram_Declaration,
+                             N_Subprogram_Body)
       then
          Set_Private_Present (Withn, Private_Present (Item));
       end if;