mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			aspects.adb, [...]: Remove all entries for Refined_Pre from the various tables.
2013-10-17 Hristian Kirtchev <kirtchev@adacore.com> * aspects.adb, aspects.ads, sem_prag.ads: Remove all entries for Refined_Pre from the various tables. * par-prag.adb: Remove the entry for Refined_Pre from the list of pragmas not needing special processing by the parser. * sem_ch13.adb (Analyze_Aspect_Specifications): Remove the processing for aspect Refined_Pre. (Check_Aspect_At_Freeze_Point): Remove the entry for aspect Refined_Pre. * sem_prag.adb (Analyze_Pragma): Refined_Pre is no longer a valid assertion kind. Remove the analysis of pragma Refined_Pre. (Analyze_Refined_Pragma): Update the comment on usage. (Find_Related_Subprogram_Or_Body): Update the comment on usage. Pragma Refined_Pre is no longer processed by this routine. (Is_Valid_Assertion_Kind): Refined_Pre is no longer a valid assertion kind. * snames.ads-tmpl: Remove predefined name Refined_Pre. Remove the pragma id for Refined_Pre. From-SVN: r203765
This commit is contained in:
		
							parent
							
								
									275d8313ba
								
							
						
					
					
						commit
						8b58a06044
					
				|  | @ -1,3 +1,23 @@ | ||||||
|  | 2013-10-17  Hristian Kirtchev  <kirtchev@adacore.com> | ||||||
|  | 
 | ||||||
|  | 	* aspects.adb, aspects.ads, sem_prag.ads: Remove all entries | ||||||
|  | 	for Refined_Pre from the various tables. | ||||||
|  | 	* par-prag.adb: Remove the entry for Refined_Pre from the list | ||||||
|  | 	of pragmas not needing special processing by the parser. | ||||||
|  | 	* sem_ch13.adb (Analyze_Aspect_Specifications): | ||||||
|  | 	Remove the processing for aspect Refined_Pre. | ||||||
|  | 	(Check_Aspect_At_Freeze_Point): Remove the entry for aspect | ||||||
|  | 	Refined_Pre. | ||||||
|  | 	* sem_prag.adb (Analyze_Pragma): Refined_Pre is no longer a | ||||||
|  | 	valid assertion kind. Remove the analysis of pragma Refined_Pre. | ||||||
|  | 	(Analyze_Refined_Pragma): Update the comment on usage. | ||||||
|  | 	(Find_Related_Subprogram_Or_Body): Update the comment on | ||||||
|  | 	usage. Pragma Refined_Pre is no longer processed by this routine. | ||||||
|  | 	(Is_Valid_Assertion_Kind): Refined_Pre is no longer a valid | ||||||
|  | 	assertion kind. | ||||||
|  | 	* snames.ads-tmpl: Remove predefined name Refined_Pre. Remove | ||||||
|  | 	the pragma id for Refined_Pre. | ||||||
|  | 
 | ||||||
| 2013-10-17  Hristian Kirtchev  <kirtchev@adacore.com> | 2013-10-17  Hristian Kirtchev  <kirtchev@adacore.com> | ||||||
| 
 | 
 | ||||||
| 	* exp_util.adb, exp_util.ads (Entity_Of): Moved to Sem_Util. | 	* exp_util.adb, exp_util.ads (Entity_Of): Moved to Sem_Util. | ||||||
|  |  | ||||||
|  | @ -471,7 +471,6 @@ package body Aspects is | ||||||
|     Aspect_Refined_Depends              => Aspect_Refined_Depends, |     Aspect_Refined_Depends              => Aspect_Refined_Depends, | ||||||
|     Aspect_Refined_Global               => Aspect_Refined_Global, |     Aspect_Refined_Global               => Aspect_Refined_Global, | ||||||
|     Aspect_Refined_Post                 => Aspect_Refined_Post, |     Aspect_Refined_Post                 => Aspect_Refined_Post, | ||||||
|     Aspect_Refined_Pre                  => Aspect_Refined_Pre, |  | ||||||
|     Aspect_Refined_State                => Aspect_Refined_State, |     Aspect_Refined_State                => Aspect_Refined_State, | ||||||
|     Aspect_Remote_Access_Type           => Aspect_Remote_Access_Type, |     Aspect_Remote_Access_Type           => Aspect_Remote_Access_Type, | ||||||
|     Aspect_Remote_Call_Interface        => Aspect_Remote_Call_Interface, |     Aspect_Remote_Call_Interface        => Aspect_Remote_Call_Interface, | ||||||
|  |  | ||||||
|  | @ -116,7 +116,6 @@ package Aspects is | ||||||
|       Aspect_Refined_Depends,               -- GNAT |       Aspect_Refined_Depends,               -- GNAT | ||||||
|       Aspect_Refined_Global,                -- GNAT |       Aspect_Refined_Global,                -- GNAT | ||||||
|       Aspect_Refined_Post,                  -- GNAT |       Aspect_Refined_Post,                  -- GNAT | ||||||
|       Aspect_Refined_Pre,                   -- GNAT |  | ||||||
|       Aspect_Refined_State,                 -- GNAT |       Aspect_Refined_State,                 -- GNAT | ||||||
|       Aspect_Relative_Deadline, |       Aspect_Relative_Deadline, | ||||||
|       Aspect_Scalar_Storage_Order,          -- GNAT |       Aspect_Scalar_Storage_Order,          -- GNAT | ||||||
|  | @ -331,7 +330,6 @@ package Aspects is | ||||||
|       Aspect_Refined_Depends         => Expression, |       Aspect_Refined_Depends         => Expression, | ||||||
|       Aspect_Refined_Global          => Expression, |       Aspect_Refined_Global          => Expression, | ||||||
|       Aspect_Refined_Post            => Expression, |       Aspect_Refined_Post            => Expression, | ||||||
|       Aspect_Refined_Pre             => Expression, |  | ||||||
|       Aspect_Refined_State           => Expression, |       Aspect_Refined_State           => Expression, | ||||||
|       Aspect_Relative_Deadline       => Expression, |       Aspect_Relative_Deadline       => Expression, | ||||||
|       Aspect_Scalar_Storage_Order    => Expression, |       Aspect_Scalar_Storage_Order    => Expression, | ||||||
|  | @ -434,7 +432,6 @@ package Aspects is | ||||||
|       Aspect_Refined_Depends              => Name_Refined_Depends, |       Aspect_Refined_Depends              => Name_Refined_Depends, | ||||||
|       Aspect_Refined_Global               => Name_Refined_Global, |       Aspect_Refined_Global               => Name_Refined_Global, | ||||||
|       Aspect_Refined_Post                 => Name_Refined_Post, |       Aspect_Refined_Post                 => Name_Refined_Post, | ||||||
|       Aspect_Refined_Pre                  => Name_Refined_Pre, |  | ||||||
|       Aspect_Refined_State                => Name_Refined_State, |       Aspect_Refined_State                => Name_Refined_State, | ||||||
|       Aspect_Relative_Deadline            => Name_Relative_Deadline, |       Aspect_Relative_Deadline            => Name_Relative_Deadline, | ||||||
|       Aspect_Remote_Access_Type           => Name_Remote_Access_Type, |       Aspect_Remote_Access_Type           => Name_Remote_Access_Type, | ||||||
|  | @ -663,7 +660,6 @@ package Aspects is | ||||||
|       Aspect_Dimension                    => Never_Delay, |       Aspect_Dimension                    => Never_Delay, | ||||||
|       Aspect_Dimension_System             => Never_Delay, |       Aspect_Dimension_System             => Never_Delay, | ||||||
|       Aspect_Refined_Post                 => Never_Delay, |       Aspect_Refined_Post                 => Never_Delay, | ||||||
|       Aspect_Refined_Pre                  => Never_Delay, |  | ||||||
|       Aspect_SPARK_Mode                   => Never_Delay, |       Aspect_SPARK_Mode                   => Never_Delay, | ||||||
|       Aspect_Synchronization              => Never_Delay, |       Aspect_Synchronization              => Never_Delay, | ||||||
|       Aspect_Test_Case                    => Never_Delay, |       Aspect_Test_Case                    => Never_Delay, | ||||||
|  | @ -726,7 +722,6 @@ package Aspects is | ||||||
|      (Aspect_Refined_Depends              => True, |      (Aspect_Refined_Depends              => True, | ||||||
|       Aspect_Refined_Global               => True, |       Aspect_Refined_Global               => True, | ||||||
|       Aspect_Refined_Post                 => True, |       Aspect_Refined_Post                 => True, | ||||||
|       Aspect_Refined_Pre                  => True, |  | ||||||
|       Aspect_SPARK_Mode                   => True, |       Aspect_SPARK_Mode                   => True, | ||||||
|       Aspect_Warnings                     => True, |       Aspect_Warnings                     => True, | ||||||
|       others                              => False); |       others                              => False); | ||||||
|  |  | ||||||
|  | @ -1259,7 +1259,6 @@ begin | ||||||
|            Pragma_Refined_Depends                | |            Pragma_Refined_Depends                | | ||||||
|            Pragma_Refined_Global                 | |            Pragma_Refined_Global                 | | ||||||
|            Pragma_Refined_Post                   | |            Pragma_Refined_Post                   | | ||||||
|            Pragma_Refined_Pre                    | |  | ||||||
|            Pragma_Refined_State                  | |            Pragma_Refined_State                  | | ||||||
|            Pragma_Relative_Deadline              | |            Pragma_Relative_Deadline              | | ||||||
|            Pragma_Remote_Access_Type             | |            Pragma_Remote_Access_Type             | | ||||||
|  |  | ||||||
|  | @ -2184,15 +2184,6 @@ package body Sem_Ch13 is | ||||||
|                          Expression => Relocate_Node (Expr))), |                          Expression => Relocate_Node (Expr))), | ||||||
|                      Pragma_Name                  => Name_Refined_Post); |                      Pragma_Name                  => Name_Refined_Post); | ||||||
| 
 | 
 | ||||||
|                --  Refined_Pre |  | ||||||
| 
 |  | ||||||
|                --  Disable the support for aspect Refined_Pre as its static and |  | ||||||
|                --  runtime semantics are still under heavy design. |  | ||||||
| 
 |  | ||||||
|                when Aspect_Refined_Pre => |  | ||||||
|                   Error_Msg_NE ("aspect & is not supported", Aspect, Id); |  | ||||||
|                   goto Continue; |  | ||||||
| 
 |  | ||||||
|                --  Refined_State |                --  Refined_State | ||||||
| 
 | 
 | ||||||
|                when Aspect_Refined_State => Refined_State : declare |                when Aspect_Refined_State => Refined_State : declare | ||||||
|  | @ -7907,7 +7898,6 @@ package body Sem_Ch13 is | ||||||
|               Aspect_Refined_Depends      | |               Aspect_Refined_Depends      | | ||||||
|               Aspect_Refined_Global       | |               Aspect_Refined_Global       | | ||||||
|               Aspect_Refined_Post         | |               Aspect_Refined_Post         | | ||||||
|               Aspect_Refined_Pre          | |  | ||||||
|               Aspect_Refined_State        | |               Aspect_Refined_State        | | ||||||
|               Aspect_SPARK_Mode           | |               Aspect_SPARK_Mode           | | ||||||
|               Aspect_Test_Case            => |               Aspect_Test_Case            => | ||||||
|  |  | ||||||
|  | @ -236,17 +236,17 @@ package body Sem_Prag is | ||||||
|      (Prag      : Node_Id; |      (Prag      : Node_Id; | ||||||
|       Do_Checks : Boolean := False) return Node_Id; |       Do_Checks : Boolean := False) return Node_Id; | ||||||
|    --  Subsidiary to the analysis of pragmas Contract_Cases, Depends, Global, |    --  Subsidiary to the analysis of pragmas Contract_Cases, Depends, Global, | ||||||
|    --  Refined_Depends, Refined_Global, Refined_Post and Refined_Pre. Find the |    --  Refined_Depends, Refined_Global and Refined_Post. Find the declaration | ||||||
|    --  declaration of the related subprogram [body or stub] subject to pragma |    --  of the related subprogram [body or stub] subject to pragma Prag. If flag | ||||||
|    --  Prag. If flag Do_Checks is set, the routine reports duplicate pragmas |    --  Do_Checks is set, the routine reports duplicate pragmas and detects | ||||||
|    --  and detects improper use of refinement pragmas in stand alone expression |    --  improper use of refinement pragmas in stand alone expression functions. | ||||||
|    --  functions. The returned value depends on the related pragma as follows: |    --  The returned value depends on the related pragma as follows: | ||||||
|    --    1) Pragmas Contract_Cases, Depends and Global yield the corresponding |    --    1) Pragmas Contract_Cases, Depends and Global yield the corresponding | ||||||
|    --       N_Subprogram_Declaration node or if the pragma applies to a stand |    --       N_Subprogram_Declaration node or if the pragma applies to a stand | ||||||
|    --       alone body, the N_Subprogram_Body node or Empty if illegal. |    --       alone body, the N_Subprogram_Body node or Empty if illegal. | ||||||
|    --    2) Pragmas Refined_Depends, Refined_Global, Refined_Post and |    --    2) Pragmas Refined_Depends, Refined_Global and Refined_Post yield | ||||||
|    --       Refined_Pre yield N_Subprogram_Body or N_Subprogram_Body_Stub nodes |    --       N_Subprogram_Body or N_Subprogram_Body_Stub nodes or Empty if | ||||||
|    --       or Empty if illegal. |    --       illegal. | ||||||
| 
 | 
 | ||||||
|    function Get_Base_Subprogram (Def_Id : Entity_Id) return Entity_Id; |    function Get_Base_Subprogram (Def_Id : Entity_Id) return Entity_Id; | ||||||
|    --  If Def_Id refers to a renamed subprogram, then the base subprogram (the |    --  If Def_Id refers to a renamed subprogram, then the base subprogram (the | ||||||
|  | @ -2573,8 +2573,8 @@ package body Sem_Prag is | ||||||
|          Body_Id : out Entity_Id; |          Body_Id : out Entity_Id; | ||||||
|          Legal   : out Boolean); |          Legal   : out Boolean); | ||||||
|       --  Subsidiary routine to the analysis of body pragmas Refined_Depends, |       --  Subsidiary routine to the analysis of body pragmas Refined_Depends, | ||||||
|       --  Refined_Global, Refined_Post and Refined_Pre. Check the placement and |       --  Refined_Global and Refined_Post. Check the placement and related | ||||||
|       --  related context of the pragma. Spec_Id is the entity of the related |       --  context of the pragma. Spec_Id is the entity of the related | ||||||
|       --  subprogram. Body_Id is the entity of the subprogram body. Flag Legal |       --  subprogram. Body_Id is the entity of the subprogram body. Flag Legal | ||||||
|       --  is set when the pragma is properly placed. |       --  is set when the pragma is properly placed. | ||||||
| 
 | 
 | ||||||
|  | @ -9967,7 +9967,6 @@ package body Sem_Prag is | ||||||
|          --                        Precondition         | |          --                        Precondition         | | ||||||
|          --                        Predicate            | |          --                        Predicate            | | ||||||
|          --                        Refined_Post         | |          --                        Refined_Post         | | ||||||
|          --                        Refined_Pre          | |  | ||||||
|          --                        Statement_Assertions |          --                        Statement_Assertions | ||||||
| 
 | 
 | ||||||
|          --  Note: The RM_ASSERTION_KIND list is language-defined, and the |          --  Note: The RM_ASSERTION_KIND list is language-defined, and the | ||||||
|  | @ -17204,29 +17203,18 @@ package body Sem_Prag is | ||||||
|             end if; |             end if; | ||||||
|          end Refined_Depends_Global; |          end Refined_Depends_Global; | ||||||
| 
 | 
 | ||||||
|          ------------------------------ |          ------------------ | ||||||
|          -- Refined_Post/Refined_Pre -- |          -- Refined_Post -- | ||||||
|          ------------------------------ |          ------------------ | ||||||
| 
 | 
 | ||||||
|          --  pragma Refined_Post (boolean_EXPRESSION); |          --  pragma Refined_Post (boolean_EXPRESSION); | ||||||
|          --  pragma Refined_Pre  (boolean_EXPRESSION); |  | ||||||
| 
 | 
 | ||||||
|          when Pragma_Refined_Post | |          when Pragma_Refined_Post => Refined_Post : declare | ||||||
|               Pragma_Refined_Pre  => Refined_Pre_Post : |  | ||||||
|          declare |  | ||||||
|             Body_Id : Entity_Id; |             Body_Id : Entity_Id; | ||||||
|             Legal   : Boolean; |             Legal   : Boolean; | ||||||
|             Spec_Id : Entity_Id; |             Spec_Id : Entity_Id; | ||||||
| 
 | 
 | ||||||
|          begin |          begin | ||||||
|             --  Disable the support for pragma Refined_Pre as its static and |  | ||||||
|             --  runtime semantics are still under heavy design. The pragma is |  | ||||||
|             --  silently ignored. |  | ||||||
| 
 |  | ||||||
|             if Pname = Name_Refined_Pre then |  | ||||||
|                Set_Is_Ignored (N); |  | ||||||
|             end if; |  | ||||||
| 
 |  | ||||||
|             Analyze_Refined_Pragma (Spec_Id, Body_Id, Legal); |             Analyze_Refined_Pragma (Spec_Id, Body_Id, Legal); | ||||||
| 
 | 
 | ||||||
|             --  Analyze the boolean expression as a "spec expression" |             --  Analyze the boolean expression as a "spec expression" | ||||||
|  | @ -17234,7 +17222,7 @@ package body Sem_Prag is | ||||||
|             if Legal then |             if Legal then | ||||||
|                Analyze_Pre_Post_Condition_In_Decl_Part (N, Spec_Id); |                Analyze_Pre_Post_Condition_In_Decl_Part (N, Spec_Id); | ||||||
|             end if; |             end if; | ||||||
|          end Refined_Pre_Post; |          end Refined_Post; | ||||||
| 
 | 
 | ||||||
|          ------------------- |          ------------------- | ||||||
|          -- Refined_State -- |          -- Refined_State -- | ||||||
|  | @ -22448,8 +22436,7 @@ package body Sem_Prag is | ||||||
|       Look_For_Body : constant Boolean := |       Look_For_Body : constant Boolean := | ||||||
|                         Nam_In (Nam, Name_Refined_Depends, |                         Nam_In (Nam, Name_Refined_Depends, | ||||||
|                                      Name_Refined_Global, |                                      Name_Refined_Global, | ||||||
|                                      Name_Refined_Post, |                                      Name_Refined_Post); | ||||||
|                                      Name_Refined_Pre); |  | ||||||
|       --  Refinement pragmas must be associated with a subprogram body [stub] |       --  Refinement pragmas must be associated with a subprogram body [stub] | ||||||
| 
 | 
 | ||||||
|    begin |    begin | ||||||
|  | @ -22877,7 +22864,6 @@ package body Sem_Prag is | ||||||
|       Pragma_Refined_Depends                => -1, |       Pragma_Refined_Depends                => -1, | ||||||
|       Pragma_Refined_Global                 => -1, |       Pragma_Refined_Global                 => -1, | ||||||
|       Pragma_Refined_Post                   => -1, |       Pragma_Refined_Post                   => -1, | ||||||
|       Pragma_Refined_Pre                    => -1, |  | ||||||
|       Pragma_Refined_State                  => -1, |       Pragma_Refined_State                  => -1, | ||||||
|       Pragma_Relative_Deadline              => -1, |       Pragma_Relative_Deadline              => -1, | ||||||
|       Pragma_Remote_Access_Type             => -1, |       Pragma_Remote_Access_Type             => -1, | ||||||
|  | @ -23202,7 +23188,6 @@ package body Sem_Prag is | ||||||
|             Name_Precondition         | |             Name_Precondition         | | ||||||
|             Name_Predicate            | |             Name_Predicate            | | ||||||
|             Name_Refined_Post         | |             Name_Refined_Post         | | ||||||
|             Name_Refined_Pre          | |  | ||||||
|             Name_Statement_Assertions => return True; |             Name_Statement_Assertions => return True; | ||||||
| 
 | 
 | ||||||
|          when others                  => return False; |          when others                  => return False; | ||||||
|  |  | ||||||
|  | @ -41,7 +41,6 @@ package Sem_Prag is | ||||||
|      (Pragma_Refined_Depends => True, |      (Pragma_Refined_Depends => True, | ||||||
|       Pragma_Refined_Global  => True, |       Pragma_Refined_Global  => True, | ||||||
|       Pragma_Refined_Post    => True, |       Pragma_Refined_Post    => True, | ||||||
|       Pragma_Refined_Pre     => True, |  | ||||||
|       Pragma_SPARK_Mode      => True, |       Pragma_SPARK_Mode      => True, | ||||||
|       Pragma_Warnings        => True, |       Pragma_Warnings        => True, | ||||||
|       others                 => False); |       others                 => False); | ||||||
|  |  | ||||||
|  | @ -586,7 +586,6 @@ package Snames is | ||||||
|    Name_Refined_Depends                : constant Name_Id := N + $; -- GNAT |    Name_Refined_Depends                : constant Name_Id := N + $; -- GNAT | ||||||
|    Name_Refined_Global                 : constant Name_Id := N + $; -- GNAT |    Name_Refined_Global                 : constant Name_Id := N + $; -- GNAT | ||||||
|    Name_Refined_Post                   : constant Name_Id := N + $; -- GNAT |    Name_Refined_Post                   : constant Name_Id := N + $; -- GNAT | ||||||
|    Name_Refined_Pre                    : constant Name_Id := N + $; -- GNAT |  | ||||||
|    Name_Refined_State                  : constant Name_Id := N + $; -- GNAT |    Name_Refined_State                  : constant Name_Id := N + $; -- GNAT | ||||||
|    Name_Relative_Deadline              : constant Name_Id := N + $; -- Ada 05 |    Name_Relative_Deadline              : constant Name_Id := N + $; -- Ada 05 | ||||||
|    Name_Remote_Access_Type             : constant Name_Id := N + $; -- GNAT |    Name_Remote_Access_Type             : constant Name_Id := N + $; -- GNAT | ||||||
|  | @ -1882,7 +1881,6 @@ package Snames is | ||||||
|       Pragma_Refined_Depends, |       Pragma_Refined_Depends, | ||||||
|       Pragma_Refined_Global, |       Pragma_Refined_Global, | ||||||
|       Pragma_Refined_Post, |       Pragma_Refined_Post, | ||||||
|       Pragma_Refined_Pre, |  | ||||||
|       Pragma_Refined_State, |       Pragma_Refined_State, | ||||||
|       Pragma_Relative_Deadline, |       Pragma_Relative_Deadline, | ||||||
|       Pragma_Remote_Access_Type, |       Pragma_Remote_Access_Type, | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Hristian Kirtchev
						Hristian Kirtchev