Commit 92a7cd46 by Robert Dewar Committed by Arnaud Charlet

sinfo.adb, [...]: Get rid of internal use of N_Return_Statement.

2012-10-02  Robert Dewar  <dewar@adacore.com>

	* sinfo.adb, sinfo.ads, sem_util.adb, sem_util.ads, types.h,
	exp_ch4.adb, exp_ch6.adb: Get rid of internal use of N_Return_Statement.

From-SVN: r191974
parent c9a6b38f
2012-10-02 Robert Dewar <dewar@adacore.com>
* sinfo.adb, sinfo.ads, sem_util.adb, sem_util.ads, types.h,
exp_ch4.adb, exp_ch6.adb: Get rid of internal use of N_Return_Statement.
2012-10-02 Eric Botcazou <ebotcazou@adacore.com> 2012-10-02 Eric Botcazou <ebotcazou@adacore.com>
* types.h: Minor cosmetic fix. * types.h: Minor cosmetic fix.
......
...@@ -10006,7 +10006,7 @@ package body Exp_Ch4 is ...@@ -10006,7 +10006,7 @@ package body Exp_Ch4 is
-- of the object designated by the result value identifies T. -- of the object designated by the result value identifies T.
-- Constraint_Error is raised if this check fails. -- Constraint_Error is raised if this check fails.
if Nkind (Parent (N)) = Sinfo.N_Return_Statement then if Nkind (Parent (N)) = N_Simple_Return_Statement then
declare declare
Func : Entity_Id; Func : Entity_Id;
Func_Typ : Entity_Id; Func_Typ : Entity_Id;
......
...@@ -4781,31 +4781,31 @@ package body Exp_Ch6 is ...@@ -4781,31 +4781,31 @@ package body Exp_Ch6 is
else else
pragma Assert pragma Assert
(Nkind (Nkind
(First (First
(Statements (Handled_Statement_Sequence (Orig_Bod)))) (Statements (Handled_Statement_Sequence (Orig_Bod))))
= N_Block_Statement); = N_Block_Statement);
declare declare
Blk_Stmt : constant Node_Id := Blk_Stmt : constant Node_Id :=
First First
(Statements (Statements
(Handled_Statement_Sequence (Orig_Bod))); (Handled_Statement_Sequence (Orig_Bod)));
First_Stmt : constant Node_Id := First_Stmt : constant Node_Id :=
First First
(Statements (Statements
(Handled_Statement_Sequence (Blk_Stmt))); (Handled_Statement_Sequence (Blk_Stmt)));
Second_Stmt : constant Node_Id := Next (First_Stmt); Second_Stmt : constant Node_Id := Next (First_Stmt);
begin begin
pragma Assert pragma Assert
(Nkind (First_Stmt) = N_Procedure_Call_Statement (Nkind (First_Stmt) = N_Procedure_Call_Statement
and then Nkind (Second_Stmt) = Sinfo.N_Return_Statement and then Nkind (Second_Stmt) = N_Simple_Return_Statement
and then No (Next (Second_Stmt))); and then No (Next (Second_Stmt)));
Bod := Bod :=
Copy_Generic_Node Copy_Generic_Node
(First (First
(Statements (Handled_Statement_Sequence (Orig_Bod))), (Statements (Handled_Statement_Sequence (Orig_Bod))),
Empty, Instantiating => True); Empty, Instantiating => True);
Blk := Bod; Blk := Bod;
...@@ -5129,8 +5129,8 @@ package body Exp_Ch6 is ...@@ -5129,8 +5129,8 @@ package body Exp_Ch6 is
-- Remove the return statement -- Remove the return statement
pragma Assert pragma Assert
(Nkind (Last (Statements (Handled_Statement_Sequence (Blk)))) (Nkind (Last (Statements (Handled_Statement_Sequence (Blk)))) =
= Sinfo.N_Return_Statement); N_Simple_Return_Statement);
Remove (Last (Statements (Handled_Statement_Sequence (Blk)))); Remove (Last (Statements (Handled_Statement_Sequence (Blk))));
end if; end if;
......
...@@ -37,6 +37,7 @@ with Freeze; use Freeze; ...@@ -37,6 +37,7 @@ with Freeze; use Freeze;
with Lib; use Lib; with Lib; use Lib;
with Lib.Xref; use Lib.Xref; with Lib.Xref; use Lib.Xref;
with Nlists; use Nlists; with Nlists; use Nlists;
with Nmake; use Nmake;
with Output; use Output; with Output; use Output;
with Opt; use Opt; with Opt; use Opt;
with Restrict; use Restrict; with Restrict; use Restrict;
......
...@@ -28,7 +28,6 @@ ...@@ -28,7 +28,6 @@
with Einfo; use Einfo; with Einfo; use Einfo;
with Exp_Tss; use Exp_Tss; with Exp_Tss; use Exp_Tss;
with Namet; use Namet; with Namet; use Namet;
with Nmake; use Nmake;
with Snames; use Snames; with Snames; use Snames;
with Types; use Types; with Types; use Types;
with Uintp; use Uintp; with Uintp; use Uintp;
...@@ -1093,13 +1092,6 @@ package Sem_Util is ...@@ -1093,13 +1092,6 @@ package Sem_Util is
-- statement in Statements (HSS) that has Comes_From_Source set. If no -- statement in Statements (HSS) that has Comes_From_Source set. If no
-- such statement exists, Empty is returned. -- such statement exists, Empty is returned.
function Make_Simple_Return_Statement
(Sloc : Source_Ptr;
Expression : Node_Id := Empty) return Node_Id
renames Make_Return_Statement;
-- See Sinfo. We rename Make_Return_Statement to the correct Ada 2005
-- terminology here. Clients should use Make_Simple_Return_Statement.
function Matching_Static_Array_Bounds function Matching_Static_Array_Bounds
(L_Typ : Node_Id; (L_Typ : Node_Id;
R_Typ : Node_Id) return Boolean; R_Typ : Node_Id) return Boolean;
...@@ -1107,15 +1099,6 @@ package Sem_Util is ...@@ -1107,15 +1099,6 @@ package Sem_Util is
-- same number of dimensions, and the same static bounds for each index -- same number of dimensions, and the same static bounds for each index
-- position. -- position.
Make_Return_Statement : constant := -2 ** 33;
-- Attempt to prevent accidental uses of Make_Return_Statement. If this
-- and the one in Nmake are both potentially use-visible, it will cause
-- a compilation error. Note that type and value are irrelevant.
N_Return_Statement : constant := -2 ** 33;
-- Attempt to prevent accidental uses of N_Return_Statement; similar to
-- Make_Return_Statement above.
procedure Mark_Coextensions (Context_Nod : Node_Id; Root_Nod : Node_Id); procedure Mark_Coextensions (Context_Nod : Node_Id; Root_Nod : Node_Id);
-- Given a node which designates the context of analysis and an origin in -- Given a node which designates the context of analysis and an origin in
-- the tree, traverse from Root_Nod and mark all allocators as either -- the tree, traverse from Root_Nod and mark all allocators as either
......
...@@ -370,7 +370,7 @@ package body Sinfo is ...@@ -370,7 +370,7 @@ package body Sinfo is
begin begin
pragma Assert (False pragma Assert (False
or else NT (N).Nkind = N_Extended_Return_Statement or else NT (N).Nkind = N_Extended_Return_Statement
or else NT (N).Nkind = N_Return_Statement); or else NT (N).Nkind = N_Simple_Return_Statement);
return Flag5 (N); return Flag5 (N);
end By_Ref; end By_Ref;
...@@ -427,7 +427,7 @@ package body Sinfo is ...@@ -427,7 +427,7 @@ package body Sinfo is
(N : Node_Id) return Boolean is (N : Node_Id) return Boolean is
begin begin
pragma Assert (False pragma Assert (False
or else NT (N).Nkind = N_Return_Statement); or else NT (N).Nkind = N_Simple_Return_Statement);
return Flag18 (N); return Flag18 (N);
end Comes_From_Extended_Return_Statement; end Comes_From_Extended_Return_Statement;
...@@ -958,7 +958,7 @@ package body Sinfo is ...@@ -958,7 +958,7 @@ package body Sinfo is
or else NT (N).Nkind = N_Extended_Return_Statement or else NT (N).Nkind = N_Extended_Return_Statement
or else NT (N).Nkind = N_Function_Call or else NT (N).Nkind = N_Function_Call
or else NT (N).Nkind = N_Procedure_Call_Statement or else NT (N).Nkind = N_Procedure_Call_Statement
or else NT (N).Nkind = N_Return_Statement or else NT (N).Nkind = N_Simple_Return_Statement
or else NT (N).Nkind = N_Type_Conversion); or else NT (N).Nkind = N_Type_Conversion);
return Flag13 (N); return Flag13 (N);
end Do_Tag_Check; end Do_Tag_Check;
...@@ -1234,7 +1234,7 @@ package body Sinfo is ...@@ -1234,7 +1234,7 @@ package body Sinfo is
or else NT (N).Nkind = N_Pragma_Argument_Association or else NT (N).Nkind = N_Pragma_Argument_Association
or else NT (N).Nkind = N_Qualified_Expression or else NT (N).Nkind = N_Qualified_Expression
or else NT (N).Nkind = N_Raise_Statement or else NT (N).Nkind = N_Raise_Statement
or else NT (N).Nkind = N_Return_Statement or else NT (N).Nkind = N_Simple_Return_Statement
or else NT (N).Nkind = N_Type_Conversion or else NT (N).Nkind = N_Type_Conversion
or else NT (N).Nkind = N_Unchecked_Expression or else NT (N).Nkind = N_Unchecked_Expression
or else NT (N).Nkind = N_Unchecked_Type_Conversion); or else NT (N).Nkind = N_Unchecked_Type_Conversion);
...@@ -2537,7 +2537,7 @@ package body Sinfo is ...@@ -2537,7 +2537,7 @@ package body Sinfo is
or else NT (N).Nkind = N_Allocator or else NT (N).Nkind = N_Allocator
or else NT (N).Nkind = N_Extended_Return_Statement or else NT (N).Nkind = N_Extended_Return_Statement
or else NT (N).Nkind = N_Free_Statement or else NT (N).Nkind = N_Free_Statement
or else NT (N).Nkind = N_Return_Statement); or else NT (N).Nkind = N_Simple_Return_Statement);
return Node2 (N); return Node2 (N);
end Procedure_To_Call; end Procedure_To_Call;
...@@ -2670,7 +2670,7 @@ package body Sinfo is ...@@ -2670,7 +2670,7 @@ package body Sinfo is
begin begin
pragma Assert (False pragma Assert (False
or else NT (N).Nkind = N_Extended_Return_Statement or else NT (N).Nkind = N_Extended_Return_Statement
or else NT (N).Nkind = N_Return_Statement); or else NT (N).Nkind = N_Simple_Return_Statement);
return Node5 (N); return Node5 (N);
end Return_Statement_Entity; end Return_Statement_Entity;
...@@ -2862,7 +2862,7 @@ package body Sinfo is ...@@ -2862,7 +2862,7 @@ package body Sinfo is
or else NT (N).Nkind = N_Allocator or else NT (N).Nkind = N_Allocator
or else NT (N).Nkind = N_Extended_Return_Statement or else NT (N).Nkind = N_Extended_Return_Statement
or else NT (N).Nkind = N_Free_Statement or else NT (N).Nkind = N_Free_Statement
or else NT (N).Nkind = N_Return_Statement); or else NT (N).Nkind = N_Simple_Return_Statement);
return Node1 (N); return Node1 (N);
end Storage_Pool; end Storage_Pool;
...@@ -3443,7 +3443,7 @@ package body Sinfo is ...@@ -3443,7 +3443,7 @@ package body Sinfo is
begin begin
pragma Assert (False pragma Assert (False
or else NT (N).Nkind = N_Extended_Return_Statement or else NT (N).Nkind = N_Extended_Return_Statement
or else NT (N).Nkind = N_Return_Statement); or else NT (N).Nkind = N_Simple_Return_Statement);
Set_Flag5 (N, Val); Set_Flag5 (N, Val);
end Set_By_Ref; end Set_By_Ref;
...@@ -3500,7 +3500,7 @@ package body Sinfo is ...@@ -3500,7 +3500,7 @@ package body Sinfo is
(N : Node_Id; Val : Boolean := True) is (N : Node_Id; Val : Boolean := True) is
begin begin
pragma Assert (False pragma Assert (False
or else NT (N).Nkind = N_Return_Statement); or else NT (N).Nkind = N_Simple_Return_Statement);
Set_Flag18 (N, Val); Set_Flag18 (N, Val);
end Set_Comes_From_Extended_Return_Statement; end Set_Comes_From_Extended_Return_Statement;
...@@ -4031,7 +4031,7 @@ package body Sinfo is ...@@ -4031,7 +4031,7 @@ package body Sinfo is
or else NT (N).Nkind = N_Extended_Return_Statement or else NT (N).Nkind = N_Extended_Return_Statement
or else NT (N).Nkind = N_Function_Call or else NT (N).Nkind = N_Function_Call
or else NT (N).Nkind = N_Procedure_Call_Statement or else NT (N).Nkind = N_Procedure_Call_Statement
or else NT (N).Nkind = N_Return_Statement or else NT (N).Nkind = N_Simple_Return_Statement
or else NT (N).Nkind = N_Type_Conversion); or else NT (N).Nkind = N_Type_Conversion);
Set_Flag13 (N, Val); Set_Flag13 (N, Val);
end Set_Do_Tag_Check; end Set_Do_Tag_Check;
...@@ -4298,7 +4298,7 @@ package body Sinfo is ...@@ -4298,7 +4298,7 @@ package body Sinfo is
or else NT (N).Nkind = N_Pragma_Argument_Association or else NT (N).Nkind = N_Pragma_Argument_Association
or else NT (N).Nkind = N_Qualified_Expression or else NT (N).Nkind = N_Qualified_Expression
or else NT (N).Nkind = N_Raise_Statement or else NT (N).Nkind = N_Raise_Statement
or else NT (N).Nkind = N_Return_Statement or else NT (N).Nkind = N_Simple_Return_Statement
or else NT (N).Nkind = N_Type_Conversion or else NT (N).Nkind = N_Type_Conversion
or else NT (N).Nkind = N_Unchecked_Expression or else NT (N).Nkind = N_Unchecked_Expression
or else NT (N).Nkind = N_Unchecked_Type_Conversion); or else NT (N).Nkind = N_Unchecked_Type_Conversion);
...@@ -5601,7 +5601,7 @@ package body Sinfo is ...@@ -5601,7 +5601,7 @@ package body Sinfo is
or else NT (N).Nkind = N_Allocator or else NT (N).Nkind = N_Allocator
or else NT (N).Nkind = N_Extended_Return_Statement or else NT (N).Nkind = N_Extended_Return_Statement
or else NT (N).Nkind = N_Free_Statement or else NT (N).Nkind = N_Free_Statement
or else NT (N).Nkind = N_Return_Statement); or else NT (N).Nkind = N_Simple_Return_Statement);
Set_Node2 (N, Val); -- semantic field, no parent set Set_Node2 (N, Val); -- semantic field, no parent set
end Set_Procedure_To_Call; end Set_Procedure_To_Call;
...@@ -5734,7 +5734,7 @@ package body Sinfo is ...@@ -5734,7 +5734,7 @@ package body Sinfo is
begin begin
pragma Assert (False pragma Assert (False
or else NT (N).Nkind = N_Extended_Return_Statement or else NT (N).Nkind = N_Extended_Return_Statement
or else NT (N).Nkind = N_Return_Statement); or else NT (N).Nkind = N_Simple_Return_Statement);
Set_Node5 (N, Val); -- semantic field, no parent set Set_Node5 (N, Val); -- semantic field, no parent set
end Set_Return_Statement_Entity; end Set_Return_Statement_Entity;
...@@ -5926,7 +5926,7 @@ package body Sinfo is ...@@ -5926,7 +5926,7 @@ package body Sinfo is
or else NT (N).Nkind = N_Allocator or else NT (N).Nkind = N_Allocator
or else NT (N).Nkind = N_Extended_Return_Statement or else NT (N).Nkind = N_Extended_Return_Statement
or else NT (N).Nkind = N_Free_Statement or else NT (N).Nkind = N_Free_Statement
or else NT (N).Nkind = N_Return_Statement); or else NT (N).Nkind = N_Simple_Return_Statement);
Set_Node1 (N, Val); -- semantic field, no parent set Set_Node1 (N, Val); -- semantic field, no parent set
end Set_Storage_Pool; end Set_Storage_Pool;
......
...@@ -4799,10 +4799,6 @@ package Sinfo is ...@@ -4799,10 +4799,6 @@ package Sinfo is
-- 6.5 Return Statement -- -- 6.5 Return Statement --
--------------------------- ---------------------------
-- RETURN_STATEMENT ::= return [EXPRESSION]; -- Ada 95
-- In Ada 2005, we have:
-- SIMPLE_RETURN_STATEMENT ::= return [EXPRESSION]; -- SIMPLE_RETURN_STATEMENT ::= return [EXPRESSION];
-- EXTENDED_RETURN_STATEMENT ::= -- EXTENDED_RETURN_STATEMENT ::=
...@@ -4813,11 +4809,12 @@ package Sinfo is ...@@ -4813,11 +4809,12 @@ package Sinfo is
-- RETURN_SUBTYPE_INDICATION ::= SUBTYPE_INDICATION | ACCESS_DEFINITION -- RETURN_SUBTYPE_INDICATION ::= SUBTYPE_INDICATION | ACCESS_DEFINITION
-- So in Ada 2005, RETURN_STATEMENT is no longer a nonterminal, but -- The term "return statement" is defined in 6.5 to mean either a
-- "return statement" is defined in 6.5 to mean a -- SIMPLE_RETURN_STATEMENT or an EXTENDED_RETURN_STATEMENT. We avoid
-- SIMPLE_RETURN_STATEMENT or an EXTENDED_RETURN_STATEMENT. -- the use of this term, since it used to mean someting else in earlier
-- versions of Ada.
-- N_Return_Statement -- N_Simple_Return_Statement
-- Sloc points to RETURN -- Sloc points to RETURN
-- Return_Statement_Entity (Node5-Sem) -- Return_Statement_Entity (Node5-Sem)
-- Expression (Node3) (set to Empty if no expression present) -- Expression (Node3) (set to Empty if no expression present)
...@@ -4827,12 +4824,6 @@ package Sinfo is ...@@ -4827,12 +4824,6 @@ package Sinfo is
-- By_Ref (Flag5-Sem) -- By_Ref (Flag5-Sem)
-- Comes_From_Extended_Return_Statement (Flag18-Sem) -- Comes_From_Extended_Return_Statement (Flag18-Sem)
-- N_Return_Statement represents a simple_return_statement, and is
-- renamed to be N_Simple_Return_Statement below. Clients should refer
-- to N_Simple_Return_Statement. We retain N_Return_Statement because
-- that's how gigi knows it. See also renaming of Make_Return_Statement
-- as Make_Simple_Return_Statement in Sem_Util.
-- Note: Return_Statement_Entity points to an E_Return_Statement -- Note: Return_Statement_Entity points to an E_Return_Statement
-- If a range check is required, then Do_Range_Check is set on the -- If a range check is required, then Do_Range_Check is set on the
...@@ -7785,7 +7776,7 @@ package Sinfo is ...@@ -7785,7 +7776,7 @@ package Sinfo is
N_Null_Statement, N_Null_Statement,
N_Raise_Statement, N_Raise_Statement,
N_Requeue_Statement, N_Requeue_Statement,
N_Return_Statement, -- renamed as N_Simple_Return_Statement below N_Simple_Return_Statement,
N_Extended_Return_Statement, N_Extended_Return_Statement,
N_Selective_Accept, N_Selective_Accept,
N_Timed_Entry_Call, N_Timed_Entry_Call,
...@@ -10942,7 +10933,7 @@ package Sinfo is ...@@ -10942,7 +10933,7 @@ package Sinfo is
4 => False, -- Next_Named_Actual (Node4-Sem) 4 => False, -- Next_Named_Actual (Node4-Sem)
5 => False), -- unused 5 => False), -- unused
N_Return_Statement => N_Simple_Return_Statement =>
(1 => False, -- Storage_Pool (Node1-Sem) (1 => False, -- Storage_Pool (Node1-Sem)
2 => False, -- Procedure_To_Call (Node2-Sem) 2 => False, -- Procedure_To_Call (Node2-Sem)
3 => True, -- Expression (Node3) 3 => True, -- Expression (Node3)
...@@ -12435,8 +12426,8 @@ package Sinfo is ...@@ -12435,8 +12426,8 @@ package Sinfo is
-- These synonyms are to aid in transition, they should eventually be -- These synonyms are to aid in transition, they should eventually be
-- removed when all remaining references to the obsolete name are gone. -- removed when all remaining references to the obsolete name are gone.
N_Simple_Return_Statement : constant Node_Kind := N_Return_Statement; N_Return_Statement : constant Node_Kind := N_Simple_Return_Statement;
-- Rename N_Return_Statement to be N_Simple_Return_Statement. Clients -- Rename N_Simple_Return_Statement to be N_Return_Statement. Clients
-- should refer to N_Simple_Return_Statement. -- should refer to N_Simple_Return_Statement.
end Sinfo; end Sinfo;
...@@ -384,3 +384,6 @@ typedef Int Mechanism_Type; ...@@ -384,3 +384,6 @@ typedef Int Mechanism_Type;
#define SE_Object_Too_Large 34 #define SE_Object_Too_Large 34
#define LAST_REASON_CODE 34 #define LAST_REASON_CODE 34
#define N_Return_Statement N_Simple_Return_Statement
/* temporary synonym for transition */
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