contracts.adb (Analyze_Object_Contract): Set and restore the SPARK_Mode for both...
authorHristian Kirtchev <kirtchev@adacore.com>
Mon, 26 Oct 2015 15:40:10 +0000 (15:40 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Mon, 26 Oct 2015 15:40:10 +0000 (16:40 +0100)
commit58996b09cafcb656b74a6df85b2c632f6500d2ab
tree9e5112a192e9b07ac50732ae3a8af868df7dd3e7
parentc67e5194634c5c3dfd16580e862fb9d4a4552bc9
contracts.adb (Analyze_Object_Contract): Set and restore the SPARK_Mode for both constants and objects.

2015-10-26  Hristian Kirtchev  <kirtchev@adacore.com>

* contracts.adb (Analyze_Object_Contract): Set and restore
the SPARK_Mode for both constants and objects. Factor out the
semantic checks concerning Ghost objects.
* freeze.adb (Freeze_Array_Type): A Ghost array type cannot have a
concurrent component type.
(Freeze_Entity): A Ghost type cannot also be concurrent.
(Freeze_Record_Type): A Ghost record type cannot have a concurrent
component.
* sem_prag.adb (Analyze_Abstract_State): A Ghost abstract
state cannot also be synchronized.
(Check_Ghost_Synchronous): New routine.
* sem_util.adb (Yields_Synchronized_Object): Correct the case
of record components to account for the case where the type has
no component list.

2015-10-26  Hristian Kirtchev  <kirtchev@adacore.com>

* expander.adb (Expand): Expand a single protected declaration.
* exp_ch9.ads, exp_ch9.adb (Expand_N_Single_Protected_Declaration): New
routine.

2015-10-26  Hristian Kirtchev  <kirtchev@adacore.com>

* sem_res.adb (Is_OK_Volatile_Context): A volatile object may appear
in an object declaration as long as it denotes the name.

From-SVN: r229376
gcc/ada/ChangeLog
gcc/ada/contracts.adb
gcc/ada/exp_ch9.adb
gcc/ada/exp_ch9.ads
gcc/ada/expander.adb
gcc/ada/freeze.adb
gcc/ada/sem_prag.adb
gcc/ada/sem_res.adb
gcc/ada/sem_util.adb