[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Thu, 19 Jan 2017 13:02:30 +0000 (14:02 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Thu, 19 Jan 2017 13:02:30 +0000 (14:02 +0100)
2017-01-19  Hristian Kirtchev  <kirtchev@adacore.com>

* lib-xref-spark_specific.adb: Minor reformatting.
* exp_ch7.adb (Add_Parent_Invariants): Do not process array types.

2017-01-19  Tristan Gingold  <gingold@adacore.com>

* fe.h (Constant_Value): Export.

From-SVN: r244628

gcc/ada/ChangeLog
gcc/ada/exp_ch7.adb
gcc/ada/lib-xref-spark_specific.adb

index 375f02bf02bc10cc7492e438ae7899d72bce3f37..ba2c1207e28e2fe2255f6218478416b82bfcb299 100644 (file)
@@ -1,3 +1,12 @@
+2017-01-19  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * lib-xref-spark_specific.adb: Minor reformatting.
+       * exp_ch7.adb (Add_Parent_Invariants): Do not process array types.
+
+2017-01-19  Tristan Gingold  <gingold@adacore.com>
+
+       * fe.h (Constant_Value): Export.
+
 2017-01-19  Javier Miranda  <miranda@adacore.com>
 
        * exp_aggr.adb (Pass_Aggregate_To_Back_End): Renamed as
index c9b487083d6a97d545684967c48ab23c8740c50d..0c2180847bae3e0c856919b34f58f476284c028b 100644 (file)
@@ -3745,6 +3745,16 @@ package body Exp_Ch7 is
          --  The partial view of Par_Typ
 
       begin
+         --  Do not process array types because they cannot have true parent
+         --  types. This also prevents the generation of a duplicate invariant
+         --  check when the input type is an array base type because its Etype
+         --  denotes the first subtype, both of which share the same component
+         --  type.
+
+         if Is_Array_Type (T) then
+            return;
+         end if;
+
          --  Climb the parent type chain
 
          Curr_Typ := T;
index 14948d505791efa387a2e83da2d8c000e083a9b0..dfbe4dd34190c7277e3fd08a473e515940c4a717 100644 (file)
@@ -703,7 +703,7 @@ package body SPARK_Specific is
 
       declare
          Drefs_Table : Drefs.Table_Type
-           renames Drefs.Table (Drefs.First .. Drefs.Last);
+                         renames Drefs.Table (Drefs.First .. Drefs.Last);
       begin
          Xrefs.Append_All (Xrefs.Table_Type (Drefs_Table));
          Nrefs := Nrefs + Drefs_Table'Length;