Commit e85f4337 by Hristian Kirtchev Committed by Arnaud Charlet

sem_ch3.adb (Analyze_Declarations): Explain why the bodies of the default…

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
parent 135da41f
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> 2014-08-04 Robert Dewar <dewar@adacore.com>
* exp_ch6.adb, sem_util.adb: Minor reformatting. * exp_ch6.adb, sem_util.adb: Minor reformatting.
......
...@@ -2388,12 +2388,18 @@ package body Sem_Ch3 is ...@@ -2388,12 +2388,18 @@ package body Sem_Ch3 is
-- When a package has private declarations, its contract must be -- When a package has private declarations, its contract must be
-- analyzed at the end of the said declarations. This way both the -- analyzed at the end of the said declarations. This way both the
-- analysis and freeze actions are properly synchronized in case -- analysis and freeze actions are properly synchronized in case
-- of private type use within the contract. Build the bodies of -- of private type use within the contract.
-- the default initial condition procedures for all types subject
-- to pragma Default_Initial_Condition.
if L = Private_Declarations (Context) then if L = Private_Declarations (Context) then
Analyze_Package_Contract (Defining_Entity (Context)); 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); Build_Default_Init_Cond_Procedure_Bodies (L);
-- Otherwise the contract is analyzed at the end of the visible -- Otherwise the contract is analyzed at the end of the visible
......
...@@ -1298,7 +1298,7 @@ package body Sem_Util is ...@@ -1298,7 +1298,7 @@ package body Sem_Util is
Expr : Node_Id; Expr : Node_Id;
Stmt : 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 begin
-- The procedure should be generated only for [sub]types subject to -- The procedure should be generated only for [sub]types subject to
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment