mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-17 09:30:30 +08:00
exp_ch6.adb, [...]: Use Make_Temporary
2010-06-17 Robert Dewar <dewar@adacore.com> * exp_ch6.adb, exp_ch7.adb, exp_ch5.adb: Use Make_Temporary * tbuild.ads (Make_Temporary): More comment updates * tbuild.adb: Minor reformatting From-SVN: r160894
This commit is contained in:
parent
191fcb3a9f
commit
c12beea07b
@ -1,3 +1,9 @@
|
||||
2010-06-17 Robert Dewar <dewar@adacore.com>
|
||||
|
||||
* exp_ch6.adb, exp_ch7.adb, exp_ch5.adb: Use Make_Temporary
|
||||
* tbuild.ads (Make_Temporary): More comment updates
|
||||
* tbuild.adb: Minor reformatting
|
||||
|
||||
2010-06-17 Robert Dewar <dewar@adacore.com>
|
||||
|
||||
* checks.adb, exp_aggr.adb, exp_atag.adb, exp_attr.adb, exp_ch11.adb,
|
||||
|
@ -516,8 +516,7 @@ package body Exp_Ch5 is
|
||||
|
||||
if Nkind (Rhs) = N_String_Literal then
|
||||
declare
|
||||
Temp : constant Entity_Id :=
|
||||
Make_Defining_Identifier (Loc, New_Internal_Name ('T'));
|
||||
Temp : constant Entity_Id := Make_Temporary (Loc, 'T', Rhs);
|
||||
Decl : Node_Id;
|
||||
|
||||
begin
|
||||
@ -1028,13 +1027,8 @@ package body Exp_Ch5 is
|
||||
R_Index := First_Index (R_Type);
|
||||
|
||||
for J in 1 .. Ndim loop
|
||||
Lnn (J) :=
|
||||
Make_Defining_Identifier (Loc,
|
||||
Chars => New_Internal_Name ('L'));
|
||||
|
||||
Rnn (J) :=
|
||||
Make_Defining_Identifier (Loc,
|
||||
Chars => New_Internal_Name ('R'));
|
||||
Lnn (J) := Make_Temporary (Loc, 'L');
|
||||
Rnn (J) := Make_Temporary (Loc, 'R');
|
||||
|
||||
L_Index_Type (J) := Etype (L_Index);
|
||||
R_Index_Type (J) := Etype (R_Index);
|
||||
@ -1624,8 +1618,7 @@ package body Exp_Ch5 is
|
||||
BPAR_Expr : constant Node_Id := Relocate_Node (Prefix (Lhs));
|
||||
BPAR_Typ : constant Entity_Id := Etype (BPAR_Expr);
|
||||
Tnn : constant Entity_Id :=
|
||||
Make_Defining_Identifier (Loc,
|
||||
Chars => New_Internal_Name ('T'));
|
||||
Make_Temporary (Loc, 'T', BPAR_Expr);
|
||||
|
||||
begin
|
||||
-- Insert the post assignment first, because we want to copy the
|
||||
@ -2848,8 +2841,7 @@ package body Exp_Ch5 is
|
||||
-- Create an access type designating the function's
|
||||
-- result subtype.
|
||||
|
||||
Ref_Type :=
|
||||
Make_Defining_Identifier (Loc, New_Internal_Name ('A'));
|
||||
Ref_Type := Make_Temporary (Loc, 'A');
|
||||
|
||||
Ptr_Type_Decl :=
|
||||
Make_Full_Type_Declaration (Loc,
|
||||
@ -2867,9 +2859,7 @@ package body Exp_Ch5 is
|
||||
-- from an implicit access value passed in by the caller
|
||||
-- or from the result of an allocator.
|
||||
|
||||
Alloc_Obj_Id :=
|
||||
Make_Defining_Identifier (Loc,
|
||||
Chars => New_Internal_Name ('R'));
|
||||
Alloc_Obj_Id := Make_Temporary (Loc, 'R');
|
||||
Set_Etype (Alloc_Obj_Id, Ref_Type);
|
||||
|
||||
Alloc_Obj_Decl :=
|
||||
@ -3854,8 +3844,7 @@ package body Exp_Ch5 is
|
||||
then
|
||||
declare
|
||||
Return_Object_Entity : constant Entity_Id :=
|
||||
Make_Defining_Identifier (Loc,
|
||||
New_Internal_Name ('R'));
|
||||
Make_Temporary (Loc, 'R', Exp);
|
||||
Obj_Decl : constant Node_Id :=
|
||||
Make_Object_Declaration (Loc,
|
||||
Defining_Identifier => Return_Object_Entity,
|
||||
@ -4009,13 +3998,9 @@ package body Exp_Ch5 is
|
||||
elsif CW_Or_Has_Controlled_Part (Utyp) then
|
||||
declare
|
||||
Loc : constant Source_Ptr := Sloc (N);
|
||||
Temp : constant Entity_Id :=
|
||||
Make_Defining_Identifier (Loc,
|
||||
Chars => New_Internal_Name ('R'));
|
||||
Acc_Typ : constant Entity_Id :=
|
||||
Make_Defining_Identifier (Loc,
|
||||
Chars => New_Internal_Name ('A'));
|
||||
Acc_Typ : constant Entity_Id := Make_Temporary (Loc, 'A');
|
||||
Alloc_Node : Node_Id;
|
||||
Temp : Entity_Id;
|
||||
|
||||
begin
|
||||
Set_Ekind (Acc_Typ, E_Access_Type);
|
||||
@ -4031,13 +4016,15 @@ package body Exp_Ch5 is
|
||||
Expression =>
|
||||
Make_Qualified_Expression (Loc,
|
||||
Subtype_Mark => New_Reference_To (Etype (Exp), Loc),
|
||||
Expression => Relocate_Node (Exp)));
|
||||
Expression => Relocate_Node (Exp)));
|
||||
|
||||
-- We do not want discriminant checks on the declaration,
|
||||
-- given that it gets its value from the allocator.
|
||||
|
||||
Set_No_Initialization (Alloc_Node);
|
||||
|
||||
Temp := Make_Temporary (Loc, 'R', Alloc_Node);
|
||||
|
||||
Insert_List_Before_And_Analyze (N, New_List (
|
||||
Make_Full_Type_Declaration (Loc,
|
||||
Defining_Identifier => Acc_Typ,
|
||||
@ -4118,18 +4105,18 @@ package body Exp_Ch5 is
|
||||
|
||||
else
|
||||
declare
|
||||
ExpR : constant Node_Id := Relocate_Node (Exp);
|
||||
Result_Id : constant Entity_Id :=
|
||||
Make_Defining_Identifier (Loc,
|
||||
Chars => New_Internal_Name ('R'));
|
||||
Result_Exp : constant Node_Id :=
|
||||
Make_Temporary (Loc, 'R', ExpR);
|
||||
Result_Exp : constant Node_Id :=
|
||||
New_Reference_To (Result_Id, Loc);
|
||||
Result_Obj : constant Node_Id :=
|
||||
Result_Obj : constant Node_Id :=
|
||||
Make_Object_Declaration (Loc,
|
||||
Defining_Identifier => Result_Id,
|
||||
Object_Definition =>
|
||||
New_Reference_To (R_Type, Loc),
|
||||
Constant_Present => True,
|
||||
Expression => Relocate_Node (Exp));
|
||||
Expression => ExpR);
|
||||
|
||||
begin
|
||||
Set_Assignment_OK (Result_Obj);
|
||||
@ -4213,16 +4200,16 @@ package body Exp_Ch5 is
|
||||
or else Is_Possibly_Unaligned_Object (Exp)
|
||||
then
|
||||
declare
|
||||
Tnn : constant Entity_Id :=
|
||||
Make_Defining_Identifier (Loc, New_Internal_Name ('T'));
|
||||
ExpR : constant Node_Id := Relocate_Node (Exp);
|
||||
Tnn : constant Entity_Id := Make_Temporary (Loc, 'T', ExpR);
|
||||
begin
|
||||
Insert_Action (Exp,
|
||||
Make_Object_Declaration (Loc,
|
||||
Defining_Identifier => Tnn,
|
||||
Constant_Present => True,
|
||||
Object_Definition => New_Occurrence_Of (R_Type, Loc),
|
||||
Expression => Relocate_Node (Exp)),
|
||||
Suppress => All_Checks);
|
||||
Expression => ExpR),
|
||||
Suppress => All_Checks);
|
||||
Rewrite (Exp, New_Occurrence_Of (Tnn, Loc));
|
||||
end;
|
||||
end if;
|
||||
@ -4255,8 +4242,8 @@ package body Exp_Ch5 is
|
||||
|
||||
else
|
||||
declare
|
||||
Tnn : constant Entity_Id :=
|
||||
Make_Defining_Identifier (Loc, New_Internal_Name ('T'));
|
||||
ExpR : constant Node_Id := Relocate_Node (Exp);
|
||||
Tnn : constant Entity_Id := Make_Temporary (Loc, 'T', ExpR);
|
||||
|
||||
begin
|
||||
-- For a complex expression of an elementary type, capture
|
||||
@ -4268,7 +4255,7 @@ package body Exp_Ch5 is
|
||||
Defining_Identifier => Tnn,
|
||||
Constant_Present => True,
|
||||
Object_Definition => New_Occurrence_Of (R_Type, Loc),
|
||||
Expression => Relocate_Node (Exp)),
|
||||
Expression => ExpR),
|
||||
Suppress => All_Checks);
|
||||
|
||||
Rewrite (Exp, New_Occurrence_Of (Tnn, Loc));
|
||||
@ -4281,7 +4268,7 @@ package body Exp_Ch5 is
|
||||
Make_Object_Renaming_Declaration (Loc,
|
||||
Defining_Identifier => Tnn,
|
||||
Subtype_Mark => New_Occurrence_Of (R_Type, Loc),
|
||||
Name => Relocate_Node (Exp)),
|
||||
Name => ExpR),
|
||||
Suppress => All_Checks);
|
||||
|
||||
Rewrite (Exp, New_Occurrence_Of (Tnn, Loc));
|
||||
@ -4421,8 +4408,7 @@ package body Exp_Ch5 is
|
||||
-- Save the Tag in a local variable Tag_Tmp
|
||||
|
||||
if Save_Tag then
|
||||
Tag_Tmp :=
|
||||
Make_Defining_Identifier (Loc, New_Internal_Name ('A'));
|
||||
Tag_Tmp := Make_Temporary (Loc, 'A');
|
||||
|
||||
Append_To (Res,
|
||||
Make_Object_Declaration (Loc,
|
||||
@ -4461,8 +4447,7 @@ package body Exp_Ch5 is
|
||||
New_Reference_To (Controller_Component (T), Loc));
|
||||
end if;
|
||||
|
||||
Prev_Tmp :=
|
||||
Make_Defining_Identifier (Loc, New_Internal_Name ('B'));
|
||||
Prev_Tmp := Make_Temporary (Loc, 'B');
|
||||
|
||||
Append_To (Res,
|
||||
Make_Object_Declaration (Loc,
|
||||
@ -4477,9 +4462,7 @@ package body Exp_Ch5 is
|
||||
Unchecked_Convert_To (RTE (RE_Finalizable), Ctrl_Ref),
|
||||
Selector_Name => Make_Identifier (Loc, Name_Prev))));
|
||||
|
||||
Next_Tmp :=
|
||||
Make_Defining_Identifier (Loc,
|
||||
Chars => New_Internal_Name ('C'));
|
||||
Next_Tmp := Make_Temporary (Loc, 'C');
|
||||
|
||||
Append_To (Res,
|
||||
Make_Object_Declaration (Loc,
|
||||
@ -4638,9 +4621,7 @@ package body Exp_Ch5 is
|
||||
Make_Integer_Literal (Loc,
|
||||
Intval => System_Storage_Unit));
|
||||
|
||||
Range_Type :=
|
||||
Make_Defining_Identifier (Loc,
|
||||
New_Internal_Name ('G'));
|
||||
Range_Type := Make_Temporary (Loc, 'G');
|
||||
|
||||
Append_To (Res,
|
||||
Make_Subtype_Declaration (Loc,
|
||||
@ -4659,9 +4640,7 @@ package body Exp_Ch5 is
|
||||
|
||||
Append_To (Res,
|
||||
Make_Subtype_Declaration (Loc,
|
||||
Defining_Identifier =>
|
||||
Make_Defining_Identifier (Loc,
|
||||
New_Internal_Name ('S')),
|
||||
Defining_Identifier => Make_Temporary (Loc, 'S'),
|
||||
Subtype_Indication =>
|
||||
Make_Subtype_Indication (Loc,
|
||||
Subtype_Mark =>
|
||||
@ -4673,9 +4652,7 @@ package body Exp_Ch5 is
|
||||
|
||||
-- type A is access S
|
||||
|
||||
Opaque_Type :=
|
||||
Make_Defining_Identifier (Loc,
|
||||
Chars => New_Internal_Name ('A'));
|
||||
Opaque_Type := Make_Temporary (Loc, 'A');
|
||||
|
||||
Append_To (Res,
|
||||
Make_Full_Type_Declaration (Loc,
|
||||
@ -4721,9 +4698,7 @@ package body Exp_Ch5 is
|
||||
-- Last index before hole: determined by position of the
|
||||
-- _Controller.Prev component.
|
||||
|
||||
Last_Before_Hole :=
|
||||
Make_Defining_Identifier (Loc,
|
||||
New_Internal_Name ('L'));
|
||||
Last_Before_Hole := Make_Temporary (Loc, 'L');
|
||||
|
||||
Append_To (Res,
|
||||
Make_Object_Declaration (Loc,
|
||||
@ -4731,7 +4706,8 @@ package body Exp_Ch5 is
|
||||
Object_Definition => New_Occurrence_Of (
|
||||
RTE (RE_Storage_Offset), Loc),
|
||||
Constant_Present => True,
|
||||
Expression => Make_Op_Add (Loc,
|
||||
Expression =>
|
||||
Make_Op_Add (Loc,
|
||||
Make_Attribute_Reference (Loc,
|
||||
Prefix => Prev_Ref,
|
||||
Attribute_Name => Name_Position),
|
||||
@ -4756,9 +4732,7 @@ package body Exp_Ch5 is
|
||||
|
||||
-- First index after hole
|
||||
|
||||
First_After_Hole :=
|
||||
Make_Defining_Identifier (Loc,
|
||||
New_Internal_Name ('F'));
|
||||
First_After_Hole := Make_Temporary (Loc, 'F');
|
||||
|
||||
Append_To (Res,
|
||||
Make_Object_Declaration (Loc,
|
||||
|
@ -808,9 +808,7 @@ package body Exp_Ch6 is
|
||||
Elm := First_Elmt (Var_List);
|
||||
while Present (Elm) loop
|
||||
Var := Node (Elm);
|
||||
Ent :=
|
||||
Make_Defining_Identifier (Loc,
|
||||
Chars => New_Internal_Name ('S'));
|
||||
Ent := Make_Temporary (Loc, 'S');
|
||||
Append_Elmt (Ent, Shad_List);
|
||||
|
||||
-- Insert a declaration for this temporary at the start of the
|
||||
@ -966,9 +964,7 @@ package body Exp_Ch6 is
|
||||
return;
|
||||
end if;
|
||||
|
||||
Temp :=
|
||||
Make_Defining_Identifier (Loc,
|
||||
Chars => New_Internal_Name ('T'));
|
||||
Temp := Make_Temporary (Loc, 'T');
|
||||
|
||||
-- Use formal type for temp, unless formal type is an unconstrained
|
||||
-- array, in which case we don't have to worry about bounds checks,
|
||||
@ -1220,9 +1216,7 @@ package body Exp_Ch6 is
|
||||
|
||||
Reset_Packed_Prefix;
|
||||
|
||||
Temp :=
|
||||
Make_Defining_Identifier (Loc,
|
||||
Chars => New_Internal_Name ('T'));
|
||||
Temp := Make_Temporary (Loc, 'T');
|
||||
Incod := Relocate_Node (Actual);
|
||||
Outcod := New_Copy_Tree (Incod);
|
||||
|
||||
@ -1387,9 +1381,7 @@ package body Exp_Ch6 is
|
||||
return Entity (Actual);
|
||||
|
||||
else
|
||||
Var :=
|
||||
Make_Defining_Identifier (Loc,
|
||||
Chars => New_Internal_Name ('T'));
|
||||
Var := Make_Temporary (Loc, 'T');
|
||||
|
||||
N_Node :=
|
||||
Make_Object_Renaming_Declaration (Loc,
|
||||
@ -3312,8 +3304,8 @@ package body Exp_Ch6 is
|
||||
|
||||
procedure Make_Exit_Label;
|
||||
-- Build declaration for exit label to be used in Return statements,
|
||||
-- sets Exit_Lab (the label node) and Lab_Decl (corresponding implcit
|
||||
-- declaration).
|
||||
-- sets Exit_Lab (the label node) and Lab_Decl (corresponding implicit
|
||||
-- declaration). Does nothing if Exit_Lab already set.
|
||||
|
||||
function Process_Formals (N : Node_Id) return Traverse_Result;
|
||||
-- Replace occurrence of a formal with the corresponding actual, or the
|
||||
@ -3343,20 +3335,15 @@ package body Exp_Ch6 is
|
||||
---------------------
|
||||
|
||||
procedure Make_Exit_Label is
|
||||
Lab_Ent : Entity_Id;
|
||||
begin
|
||||
-- Create exit label for subprogram if one does not exist yet
|
||||
|
||||
if No (Exit_Lab) then
|
||||
Lab_Id :=
|
||||
Make_Identifier (Loc,
|
||||
Chars => New_Internal_Name ('L'));
|
||||
Set_Entity (Lab_Id,
|
||||
Make_Defining_Identifier (Loc, Chars (Lab_Id)));
|
||||
Lab_Ent := Make_Temporary (Loc, 'L');
|
||||
Lab_Id := New_Reference_To (Lab_Ent, Loc);
|
||||
Exit_Lab := Make_Label (Loc, Lab_Id);
|
||||
|
||||
Lab_Decl :=
|
||||
Make_Implicit_Label_Declaration (Loc,
|
||||
Defining_Identifier => Entity (Lab_Id),
|
||||
Defining_Identifier => Lab_Ent,
|
||||
Label_Construct => Exit_Lab);
|
||||
end if;
|
||||
end Make_Exit_Label;
|
||||
@ -3793,9 +3780,7 @@ package body Exp_Ch6 is
|
||||
end if;
|
||||
|
||||
else
|
||||
Temp :=
|
||||
Make_Defining_Identifier (Loc,
|
||||
Chars => New_Internal_Name ('C'));
|
||||
Temp := Make_Temporary (Loc, 'C');
|
||||
|
||||
-- If the actual for an in/in-out parameter is a view conversion,
|
||||
-- make it into an unchecked conversion, given that an untagged
|
||||
@ -3883,8 +3868,7 @@ package body Exp_Ch6 is
|
||||
else
|
||||
-- Replace call with temporary and create its declaration
|
||||
|
||||
Temp :=
|
||||
Make_Defining_Identifier (Loc, New_Internal_Name ('C'));
|
||||
Temp := Make_Temporary (Loc, 'C');
|
||||
Set_Is_Internal (Temp);
|
||||
|
||||
-- For the unconstrained case, the generated temporary has the
|
||||
@ -4610,10 +4594,8 @@ package body Exp_Ch6 is
|
||||
-- define _object later on.
|
||||
|
||||
declare
|
||||
Decls : List_Id;
|
||||
Obj_Ptr : constant Entity_Id := Make_Defining_Identifier (Loc,
|
||||
Chars =>
|
||||
New_Internal_Name ('T'));
|
||||
Decls : List_Id;
|
||||
Obj_Ptr : constant Entity_Id := Make_Temporary (Loc, 'T');
|
||||
|
||||
begin
|
||||
Decls := New_List (
|
||||
@ -4623,7 +4605,7 @@ package body Exp_Ch6 is
|
||||
Make_Access_To_Object_Definition (Loc,
|
||||
Subtype_Indication =>
|
||||
New_Reference_To
|
||||
(Corresponding_Record_Type (Scop), Loc))));
|
||||
(Corresponding_Record_Type (Scop), Loc))));
|
||||
|
||||
Insert_Actions (N, Decls);
|
||||
Insert_Actions (N, Freeze_Entity (Obj_Ptr, Sloc (N)));
|
||||
@ -5117,8 +5099,7 @@ package body Exp_Ch6 is
|
||||
-- Create a new access object and initialize it to the result of the
|
||||
-- new uninitialized allocator.
|
||||
|
||||
Return_Obj_Access :=
|
||||
Make_Defining_Identifier (Loc, New_Internal_Name ('R'));
|
||||
Return_Obj_Access := Make_Temporary (Loc, 'R', Allocator);
|
||||
Set_Etype (Return_Obj_Access, Acc_Type);
|
||||
|
||||
Insert_Action (Allocator,
|
||||
@ -5251,9 +5232,7 @@ package body Exp_Ch6 is
|
||||
|
||||
-- Create a temporary object to hold the function result
|
||||
|
||||
Return_Obj_Id :=
|
||||
Make_Defining_Identifier (Loc,
|
||||
Chars => New_Internal_Name ('R'));
|
||||
Return_Obj_Id := Make_Temporary (Loc, 'R');
|
||||
Set_Etype (Return_Obj_Id, Result_Subt);
|
||||
|
||||
Return_Obj_Decl :=
|
||||
@ -5406,8 +5385,7 @@ package body Exp_Ch6 is
|
||||
|
||||
-- Create an access type designating the function's result subtype
|
||||
|
||||
Ptr_Typ :=
|
||||
Make_Defining_Identifier (Loc, New_Internal_Name ('A'));
|
||||
Ptr_Typ := Make_Temporary (Loc, 'A');
|
||||
|
||||
Ptr_Typ_Decl :=
|
||||
Make_Full_Type_Declaration (Loc,
|
||||
@ -5422,7 +5400,7 @@ package body Exp_Ch6 is
|
||||
-- Finally, create an access object initialized to a reference to the
|
||||
-- function call.
|
||||
|
||||
Obj_Id := Make_Defining_Identifier (Loc, New_Internal_Name ('R'));
|
||||
Obj_Id := Make_Temporary (Loc, 'R');
|
||||
Set_Etype (Obj_Id, Ptr_Typ);
|
||||
|
||||
Obj_Decl :=
|
||||
@ -5684,8 +5662,7 @@ package body Exp_Ch6 is
|
||||
|
||||
-- Create an access type designating the function's result subtype
|
||||
|
||||
Ref_Type :=
|
||||
Make_Defining_Identifier (Loc, New_Internal_Name ('A'));
|
||||
Ref_Type := Make_Temporary (Loc, 'A');
|
||||
|
||||
Ptr_Typ_Decl :=
|
||||
Make_Full_Type_Declaration (Loc,
|
||||
@ -5712,15 +5689,13 @@ package body Exp_Ch6 is
|
||||
-- Finally, create an access object initialized to a reference to the
|
||||
-- function call.
|
||||
|
||||
Def_Id :=
|
||||
Make_Defining_Identifier (Loc,
|
||||
Chars => New_Internal_Name ('R'));
|
||||
Set_Etype (Def_Id, Ref_Type);
|
||||
|
||||
New_Expr :=
|
||||
Make_Reference (Loc,
|
||||
Prefix => Relocate_Node (Func_Call));
|
||||
|
||||
Def_Id := Make_Temporary (Loc, 'R', New_Expr);
|
||||
Set_Etype (Def_Id, Ref_Type);
|
||||
|
||||
Insert_After_And_Analyze (Ptr_Typ_Decl,
|
||||
Make_Object_Declaration (Loc,
|
||||
Defining_Identifier => Def_Id,
|
||||
@ -5744,8 +5719,7 @@ package body Exp_Ch6 is
|
||||
|
||||
Rewrite (Object_Decl,
|
||||
Make_Object_Renaming_Declaration (Loc,
|
||||
Defining_Identifier => Make_Defining_Identifier (Loc,
|
||||
New_Internal_Name ('D')),
|
||||
Defining_Identifier => Make_Temporary (Loc, 'D'),
|
||||
Access_Definition => Empty,
|
||||
Subtype_Mark => New_Occurrence_Of (Result_Subt, Loc),
|
||||
Name => Call_Deref));
|
||||
|
@ -586,9 +586,7 @@ package body Exp_Ch7 is
|
||||
-- Here we generate the required loop
|
||||
|
||||
else
|
||||
Index :=
|
||||
Make_Defining_Identifier (Loc, New_Internal_Name ('J'));
|
||||
|
||||
Index := Make_Temporary (Loc, 'J');
|
||||
Append (New_Reference_To (Index, Loc), Index_List);
|
||||
|
||||
return New_List (
|
||||
@ -1162,7 +1160,7 @@ package body Exp_Ch7 is
|
||||
and then not Sec_Stack_Needed_For_Return (Current_Scope)
|
||||
and then VM_Target = No_VM
|
||||
then
|
||||
Mark := Make_Defining_Identifier (Loc, New_Internal_Name ('M'));
|
||||
Mark := Make_Temporary (Loc, 'M');
|
||||
Append_To (New_Decls,
|
||||
Make_Object_Declaration (Loc,
|
||||
Defining_Identifier => Mark,
|
||||
@ -1785,9 +1783,7 @@ package body Exp_Ch7 is
|
||||
end if;
|
||||
end if;
|
||||
|
||||
Id :=
|
||||
Make_Defining_Identifier (Flist_Loc,
|
||||
Chars => New_Internal_Name ('F'));
|
||||
Id := Make_Temporary (Flist_Loc, 'F');
|
||||
end;
|
||||
|
||||
Set_Finalization_Chain_Entity (S, Id);
|
||||
@ -3438,7 +3434,7 @@ package body Exp_Ch7 is
|
||||
-- Fxxx : Finalizable_Ptr renames Lxxx.F;
|
||||
|
||||
if Present (Finalization_Chain_Entity (S)) then
|
||||
LC := Make_Defining_Identifier (Loc, New_Internal_Name ('L'));
|
||||
LC := Make_Temporary (Loc, 'L');
|
||||
|
||||
-- Use the Sloc of the first declaration of N's containing list, to
|
||||
-- maintain monotonicity of source-line stepping during debugging.
|
||||
|
@ -686,7 +686,6 @@ package body Tbuild is
|
||||
Loc : Source_Ptr) return Node_Id
|
||||
is
|
||||
Occurrence : Node_Id;
|
||||
|
||||
begin
|
||||
Occurrence := New_Node (N_Identifier, Loc);
|
||||
Set_Chars (Occurrence, Chars (Def_Id));
|
||||
|
@ -180,15 +180,19 @@ package Tbuild is
|
||||
(Loc : Source_Ptr;
|
||||
Id : Character;
|
||||
Related_Node : Node_Id := Empty) return Entity_Id;
|
||||
-- This function should be used for all cases where a temporary is
|
||||
-- built with a name to be obtained by New_Internal_Name (here Id is
|
||||
-- the character passed as the argument to New_Internal_Name). Loc
|
||||
-- is the location for the Sloc value of the resulting Entity.
|
||||
-- This function should be used for all cases where a defining identifier
|
||||
-- is to be built with a name to be obtained by New_Internal_Name (here Id
|
||||
-- is the character passed as the argument to New_Internal_Name). Loc is
|
||||
-- the location for the Sloc value of the resulting Entity. Note that this
|
||||
-- can be used for all kinds of temporary defining identifiers used in
|
||||
-- expansion (objects, subtypes, functions etc).
|
||||
--
|
||||
-- Related_Node is used when the identifier is capturing the value of
|
||||
-- an expression (e.g. an aggregate). It should be set whenever possible
|
||||
-- to point to the expression that is being captured. This is provided
|
||||
-- to get better error messages, especially from CodePeer reports.
|
||||
-- Related_Node is used when the defining identifier is for an object that
|
||||
-- captures the value of an expression (e.g. an aggregate). It should be
|
||||
-- set whenever possible to point to the expression that is being captured.
|
||||
-- This is provided to get better error messages, e.g. from CodePeer.
|
||||
--
|
||||
-- Make_Temp_Id would probably be a better name for this function???
|
||||
|
||||
function Make_Unsuppress_Block
|
||||
(Loc : Source_Ptr;
|
||||
|
Loading…
x
Reference in New Issue
Block a user