Commit 8b58a060 by Hristian Kirtchev Committed by Arnaud Charlet

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
parent 275d8313
2013-10-17 Hristian Kirtchev <kirtchev@adacore.com> 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>
* exp_util.adb, exp_util.ads (Entity_Of): Moved to Sem_Util. * exp_util.adb, exp_util.ads (Entity_Of): Moved to Sem_Util.
* sem_prag.adb (Analyze_Global_In_Decl_List): Mark a null * sem_prag.adb (Analyze_Global_In_Decl_List): Mark a null
item list as being analyzed. item list as being analyzed.
......
...@@ -471,7 +471,6 @@ package body Aspects is ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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,
......
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