[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Tue, 12 Sep 2017 10:15:46 +0000 (12:15 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Tue, 12 Sep 2017 10:15:46 +0000 (12:15 +0200)
2017-09-12  Bob Duff  <duff@adacore.com>

* sem_warn.adb: Minor comment.

2017-09-12  Bob Duff  <duff@adacore.com>

* libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb,
libgnat/a-cbmutr.adb, libgnat/a-cborma.adb: Rename New_Item to
be Default_Initialized_Item, and apply pragma Unmodified to it,
to suppress the warning.

2017-09-12  Eric Botcazou  <ebotcazou@adacore.com>

* exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Add early return
for access types.

2017-09-12  Yannick Moy  <moy@adacore.com>

* gnat1drv.adb (Adjust_Global_Switches): Consider Refined_Global
together with Global when ignoring one in CodePeer mode.

2017-09-12  Javier Miranda  <miranda@adacore.com>

* sem_ch3.adb (Analyze_Declarations): In nested
package declarations that have a private part enable missing check
of the RM rule 13.1.1(11/3): usage names in aspect definitions are
resolved at the end of the immediately enclosing declaration list.

From-SVN: r252001

gcc/ada/ChangeLog
gcc/ada/gnat1drv.adb
gcc/ada/libgnat/a-cbdlli.adb
gcc/ada/libgnat/a-cbhama.adb
gcc/ada/libgnat/a-cbmutr.adb
gcc/ada/libgnat/a-cborma.adb
gcc/ada/sem_ch3.adb
gcc/ada/sem_warn.adb

index 988f2ef55dcdbb5311b35400d9b15d27f23c5f21..afa7b1b3f9b3565deb9ce3aca5bd35f7a0ba6794 100644 (file)
@@ -1,3 +1,31 @@
+2017-09-12  Bob Duff  <duff@adacore.com>
+
+       * sem_warn.adb: Minor comment.
+
+2017-09-12  Bob Duff  <duff@adacore.com>
+
+       * libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb,
+       libgnat/a-cbmutr.adb, libgnat/a-cborma.adb: Rename New_Item to
+       be Default_Initialized_Item, and apply pragma Unmodified to it,
+       to suppress the warning.
+
+2017-09-12  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Add early return
+       for access types.
+
+2017-09-12  Yannick Moy  <moy@adacore.com>
+
+       * gnat1drv.adb (Adjust_Global_Switches): Consider Refined_Global
+       together with Global when ignoring one in CodePeer mode.
+
+2017-09-12  Javier Miranda  <miranda@adacore.com>
+
+       * sem_ch3.adb (Analyze_Declarations): In nested
+       package declarations that have a private part enable missing check
+       of the RM rule 13.1.1(11/3): usage names in aspect definitions are
+       resolved at the end of the immediately enclosing declaration list.
+
 2017-09-12  Bob Duff  <duff@adacore.com>
 
        * sem_ch6.adb (Analyze_Expression_Function): Initialize Def_Id to
index 197c6053d78166999a1f723eddee1d1a1905964a..b493d53115adbcb2e02fff2d6535caa8611e41d0 100644 (file)
@@ -66,7 +66,7 @@ with Sem_Type;
 with Set_Targ;
 with Sinfo;    use Sinfo;
 with Sinput.L; use Sinput.L;
-with Snames;
+with Snames;   use Snames;
 with Sprint;   use Sprint;
 with Stringt;
 with Stylesw;  use Stylesw;
@@ -272,9 +272,13 @@ procedure Gnat1drv is
          Restrict.Restrictions.Set   (Max_Asynchronous_Select_Nesting) := True;
          Restrict.Restrictions.Value (Max_Asynchronous_Select_Nesting) := 0;
 
-         --  Enable pragma Ignore_Pragma (Global) to support legacy code
+         --  Enable pragma Ignore_Pragma (Global) to support legacy code. As a
+         --  consequence, Refined_Global pragma should be ignored as well, as
+         --  it is only allowed on a body when pragma Global is given for the
+         --  spec.
 
-         Set_Name_Table_Boolean3 (Name_Id'(Name_Find ("global")), True);
+         Set_Name_Table_Boolean3 (Name_Global, True);
+         Set_Name_Table_Boolean3 (Name_Refined_Global, True);
 
          --  Suppress division by zero checks since they are handled
          --  implicitly by CodePeer.
index 8f7b5374901ea2aa2ff6de3e5085201c7d0de1c1..3dc22e3fb897cbf073167ff3cddf452b9cdfdb98 100644 (file)
@@ -1016,9 +1016,13 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
       Count     : Count_Type := 1)
    is
       pragma Warnings (Off);
-      New_Item : Element_Type;
+      Default_Initialized_Item : Element_Type;
+      pragma Unmodified (Default_Initialized_Item);
       --  OK to reference, see below. Note that we need to suppress both the
-      --  front end warning and the back end warning.
+      --  front end warning and the back end warning. In addition, pragma
+      --  Unmodified is needed to suppress the warning ``actual type for
+      --  "Element_Type" should be fully initialized type'' on certain
+      --  instantiations.
 
    begin
       --  There is no explicit element provided, but in an instance the element
@@ -1027,7 +1031,7 @@ package body Ada.Containers.Bounded_Doubly_Linked_Lists is
       --  initialization, so insert the specified number of possibly
       --  initialized elements at the given position.
 
-      Insert (Container, Before, New_Item, Position, Count);
+      Insert (Container, Before, Default_Initialized_Item, Position, Count);
       pragma Warnings (On);
    end Insert;
 
index 57948d23b3bf4fcea6f8c9e0578eef2d969cf90f..825babe3e2c70fd95d5d39c5fb21d3c781d5f718 100644 (file)
@@ -578,8 +578,9 @@ package body Ada.Containers.Bounded_Hashed_Maps is
       -----------------
 
       procedure Assign_Key (Node : in out Node_Type) is
-         New_Item : Element_Type;
-         pragma Unmodified (New_Item);
+         pragma Warnings (Off);
+         Default_Initialized_Item : Element_Type;
+         pragma Unmodified (Default_Initialized_Item);
          --  Default-initialized element (ok to reference, see below)
 
       begin
@@ -591,7 +592,8 @@ package body Ada.Containers.Bounded_Hashed_Maps is
          --  default initialization, so insert a possibly initialized element
          --  under the given key.
 
-         Node.Element := New_Item;
+         Node.Element := Default_Initialized_Item;
+         pragma Warnings (On);
       end Assign_Key;
 
       --------------
index f1145de89bbf212e39dfb33008ced2065199bdd1..00e394c210000cc6aebad0f21e0dc1c47a87d25f 100644 (file)
@@ -1581,8 +1581,9 @@ package body Ada.Containers.Bounded_Multiway_Trees is
       First : Count_Type;
       Last  : Count_Type;
 
-      New_Item : Element_Type;
-      pragma Unmodified (New_Item);
+      pragma Warnings (Off);
+      Default_Initialized_Item : Element_Type;
+      pragma Unmodified (Default_Initialized_Item);
       --  OK to reference, see below
 
    begin
@@ -1629,12 +1630,13 @@ package body Ada.Containers.Bounded_Multiway_Trees is
       --  initialization, so insert the specified number of possibly
       --  initialized elements at the given position.
 
-      Allocate_Node (Container, New_Item, First);
+      Allocate_Node (Container, Default_Initialized_Item, First);
       Nodes (First).Parent := Parent.Node;
 
       Last := First;
       for J in Count_Type'(2) .. Count loop
-         Allocate_Node (Container, New_Item, Nodes (Last).Next);
+         Allocate_Node
+           (Container, Default_Initialized_Item, Nodes (Last).Next);
          Nodes (Nodes (Last).Next).Parent := Parent.Node;
          Nodes (Nodes (Last).Next).Prev := Last;
 
@@ -1651,6 +1653,7 @@ package body Ada.Containers.Bounded_Multiway_Trees is
       Container.Count := Container.Count + Count;
 
       Position := Cursor'(Parent.Container, First);
+      pragma Warnings (On);
    end Insert_Child;
 
    -------------------------
index 7dca13b3aee11165ae683ba977c377e9c9dd87d4..1bff46d9cc32b2da46a6d14698faf648252f6dc2 100644 (file)
@@ -851,8 +851,9 @@ package body Ada.Containers.Bounded_Ordered_Maps is
       ------------
 
       procedure Assign (Node : in out Node_Type) is
-         New_Item : Element_Type;
-         pragma Unmodified (New_Item);
+         pragma Warnings (Off);
+         Default_Initialized_Item : Element_Type;
+         pragma Unmodified (Default_Initialized_Item);
          --  Default-initialized element (ok to reference, see below)
 
       begin
@@ -863,7 +864,8 @@ package body Ada.Containers.Bounded_Ordered_Maps is
       --  with such a scalar component or with defaulted components, so insert
       --  possibly initialized elements at the given position.
 
-         Node.Element := New_Item;
+         Node.Element := Default_Initialized_Item;
+         pragma Warnings (On);
       end Assign;
 
       --------------
index a1d8f8b8714d89eca5c9331c9ca232ea8f6c0285..46d83494883c46b535decf7d9e867619f48dad6e 100644 (file)
@@ -2676,14 +2676,11 @@ package body Sem_Ch3 is
               and then not Is_Child_Unit (Current_Scope)
               and then No (Generic_Parent (Parent (L)))
             then
-               --  This is needed in all cases to catch visibility errors in
-               --  aspect expressions, but several large user tests are now
-               --  rejected. Pending notification we restrict this call to
-               --  ASIS mode.
+               --  ARM rule 13.1.1(11/3): usage names in aspect definitions are
+               --  resolved at the end of the immediately enclosing declaration
+               --  list (AI05-0183-1).
 
-               if ASIS_Mode then
-                  Resolve_Aspects;
-               end if;
+               Resolve_Aspects;
 
             elsif L /= Visible_Declarations (Parent (L))
               or else No (Private_Declarations (Parent (L)))
index f6adb7c7bfa1907fd221c846cef15de35e5b9694..278d6b6bd214b1c1571fa782b420648b5e38088c 100644 (file)
@@ -2798,6 +2798,7 @@ package body Sem_Warn is
 
          --  Note: use of OR instead of OR ELSE here is deliberate, we want
          --  to mess with Unmodified flags on both body and spec entities.
+         --  Has_Unmodified has side effects!
 
          return Has_Unmodified (E)
                   or