[Ada] Allow constants of access type in Global contracts
authorYannick Moy <moy@adacore.com>
Thu, 19 Sep 2019 08:13:58 +0000 (08:13 +0000)
committerPierre-Marie de Rodat <pmderodat@gcc.gnu.org>
Thu, 19 Sep 2019 08:13:58 +0000 (08:13 +0000)
commit09709b4781192f7724e2bb2977d3610ae727260f
treee59c2a3e5005c53d438b9fde16dce04994fe1584
parent7005758ce72896e478245ed2de0aa146427a2ec9
[Ada] Allow constants of access type in Global contracts

Now that SPARK supports access types, global constants of access type
may appear as outputs of a subprogram, with the meaning that the
underlying memory can be modified (see SPARK RM 3.10).

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

gcc/ada/

* sem_prag.adb (Analyze_Global_In_Decl_Part): Do not issue an
error when a constant of an access type is used as output in a
Global contract.
(Analyze_Depends_In_Decl_Part): Do not issue an error when a
constant of an access type is used as output in a Depends
contract.

gcc/testsuite/

* gnat.dg/global2.adb, gnat.dg/global2.ads: New testcase.

From-SVN: r275947
gcc/ada/ChangeLog
gcc/ada/sem_prag.adb
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/global2.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/global2.ads [new file with mode: 0644]