+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.
-- 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
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