sem_ch3.adb (Analyze_Declarations): Explain why the bodies of the default initial condition procedures are build here.

2014-08-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch3.adb (Analyze_Declarations): Explain why the bodies of
	the default initial condition procedures are build here.
	* sem_util.adb (Build_Default_Init_Cond_Procedure): Wrap the
	analyzed argument of pragma Default_Initial_Condition in some
	dummy code as GNATprove mode disables assertions, but still
	needs to see the argument.

From-SVN: r213582
This commit is contained in:
Hristian Kirtchev 2014-08-04 12:55:46 +00:00 committed by Arnaud Charlet
parent 135da41f0d
commit e85f4337c3
3 changed files with 19 additions and 4 deletions

View File

@ -1,3 +1,12 @@
2014-08-04 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch3.adb (Analyze_Declarations): Explain why the bodies of
the default initial condition procedures are build here.
* sem_util.adb (Build_Default_Init_Cond_Procedure): Wrap the
analyzed argument of pragma Default_Initial_Condition in some
dummy code as GNATprove mode disables assertions, but still
needs to see the argument.
2014-08-04 Robert Dewar <dewar@adacore.com>
* exp_ch6.adb, sem_util.adb: Minor reformatting.

View File

@ -2388,12 +2388,18 @@ package body Sem_Ch3 is
-- When a package has private declarations, its contract must be
-- analyzed at the end of the said declarations. This way both the
-- analysis and freeze actions are properly synchronized in case
-- of private type use within the contract. Build the bodies of
-- the default initial condition procedures for all types subject
-- to pragma Default_Initial_Condition.
-- of private type use within the contract.
if L = Private_Declarations (Context) then
Analyze_Package_Contract (Defining_Entity (Context));
-- Build the bodies of the default initial condition procedures
-- for all types subject to pragma Default_Initial_Condition.
-- From a purely Ada stand point, this is a freezing activity,
-- however freezing is not available under GNATprove_Mode. To
-- accomodate both scenarios, the bodies are build at the end
-- of private declaration analysis.
Build_Default_Init_Cond_Procedure_Bodies (L);
-- Otherwise the contract is analyzed at the end of the visible

View File

@ -1298,7 +1298,7 @@ package body Sem_Util is
Expr : Node_Id;
Stmt : Node_Id;
-- Start of processing for Build_Default_Init_Cond_Procedure
-- Start of processing for Build_Default_Init_Cond_Procedure_Body
begin
-- The procedure should be generated only for [sub]types subject to