[Ada] Use declared type for deciding on SPARK pointer rules
authorYannick Moy <moy@adacore.com>
Thu, 19 Sep 2019 08:14:13 +0000 (08:14 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Thu, 19 Sep 2019 08:14:13 +0000 (08:14 +0000)
A constant of pointer type is considered as mutable in SPARK, according
to SPARK RM 3.10, but this should be based on the declared type of the
constant instead of its underlying type.

There is no impact on compilation hence no test.

2019-09-19  Yannick Moy  <moy@adacore.com>

gcc/ada/

* sem_prag.adb (Analyze_Depends_In_Decl_Part): Simplify previous
test.

From-SVN: r275950

gcc/ada/ChangeLog
gcc/ada/sem_prag.adb

index e761f701fe7d7ee65aefc437c1e1b1b8d4aa3ebb..54e48af3b1dc3de6c065deee246c7f5d23b3a308 100644 (file)
@@ -1,3 +1,8 @@
+2019-09-19  Yannick Moy  <moy@adacore.com>
+
+       * sem_prag.adb (Analyze_Depends_In_Decl_Part): Simplify previous
+       test.
+
 2019-09-19  Ed Schonberg  <schonberg@adacore.com>
 
        * sem_ch7.adb (Install_Parent_Private_Declarations): If a
index 43673830c830bf89bca829b7afe689065204e552..b54604d5426a2be2a94d3442e1ee1b4d65ea8f99 100644 (file)
@@ -1272,13 +1272,7 @@ package body Sem_Prag is
             if Ekind_In (Item_Id, E_Constant,
                                   E_Generic_In_Parameter,
                                   E_In_Parameter)
-
-              --  If Item_Id is of a private type whose completion has not been
-              --  analyzed yet, its Underlying_Type is empty and we handle it
-              --  as a constant.
-
-              and then Present (Underlying_Type (Etype (Item_Id)))
-              and then Is_Access_Type (Underlying_Type (Etype (Item_Id)))
+              and then Is_Access_Type (Etype (Item_Id))
             then
                Adjusted_Kind := E_Variable;
             end if;