[Ada] Bad "already use-visible" warning re: use in private part
authorBob Duff <duff@adacore.com>
Wed, 18 Dec 2019 07:14:07 +0000 (07:14 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Wed, 18 Dec 2019 07:14:07 +0000 (07:14 +0000)
2019-12-18  Bob Duff  <duff@adacore.com>

gcc/ada/

* sem_ch8.adb (Note_Redundant_Use): It was already checking for
a use clause in the visible part of the child. Add an additional
check for a use clause in the context clause of the child.

From-SVN: r279504

gcc/ada/ChangeLog
gcc/ada/sem_ch8.adb

index 5b1b98c639f739d67eb23c4ea94eae064dfa0c5a..36e5d00b2e83f1caced41a1336fc5b4d67f3befa 100644 (file)
@@ -1,3 +1,9 @@
+2019-12-18  Bob Duff  <duff@adacore.com>
+
+       * sem_ch8.adb (Note_Redundant_Use): It was already checking for
+       a use clause in the visible part of the child. Add an additional
+       check for a use clause in the context clause of the child.
+
 2019-12-16  Bob Duff  <duff@adacore.com>
 
        * errout.adb (Handle_Serious_Error): Disable the above-mentioned
index a1a5274d078c19e2043203622f2c1ebc986a22c4..f083f7c16e76330fee7d48c40551bd4ea39f550b 100644 (file)
@@ -9607,15 +9607,16 @@ package body Sem_Ch8 is
                   Par : constant Entity_Id := Defining_Entity (Parent (Decl));
                   Spec : constant Node_Id  :=
                            Specification (Unit (Cunit (Current_Sem_Unit)));
-
+                  Cur_List : constant List_Id := List_Containing (Cur_Use);
                begin
                   if Is_Compilation_Unit (Par)
                     and then Par /= Cunit_Entity (Current_Sem_Unit)
-                    and then Parent (Cur_Use) = Spec
-                    and then List_Containing (Cur_Use) =
-                               Visible_Declarations (Spec)
                   then
-                     return;
+                     if Cur_List = Context_Items (Cunit (Current_Sem_Unit))
+                       or else Cur_List = Visible_Declarations (Spec)
+                     then
+                        return;
+                     end if;
                   end if;
                end;
             end if;
@@ -9629,7 +9630,6 @@ package body Sem_Ch8 is
          then
             Redundant := Clause;
             Prev_Use  := Cur_Use;
-
          end if;
 
          if Present (Redundant) and then Parent (Redundant) /= Prev_Use then