sem_ch3.adb (Analyze_Declarations): Explain why the bodies of the default initial...
authorHristian Kirtchev <kirtchev@adacore.com>
Mon, 4 Aug 2014 12:55:46 +0000 (12:55 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Mon, 4 Aug 2014 12:55:46 +0000 (14:55 +0200)
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

gcc/ada/ChangeLog
gcc/ada/sem_ch3.adb
gcc/ada/sem_util.adb

index 3f10d88..d210982 100644 (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.
index 5b16aa2..351ae87 100644 (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
index 6759903..01c1624 100644 (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