-- Status_Flag_Or_Transient_Decl
-- Defined in constant, loop, and variable entities. Applies to objects
-- that require special treatment by the finalization machinery, such as
--- extended return results, IF and CASE expression results, and objects
+-- extended return objects, conditional expression results, and objects
-- inside N_Expression_With_Actions nodes. The attribute contains the
--- entity of a flag which specifies particular behavior over a region of
--- code or the declaration of a "hook" object.
--- In which case is it a flag, or a hook object???
+-- entity of a flag which specifies a particular behavior over a region
+-- of the extended return for the return objects, or the declaration of a
+-- hook object for conditional expressions and N_Expression_With_Actions.
-- Storage_Size_Variable [implementation base type only]
-- Defined in access types and task type entities. This flag is set
-- with the scope finalizer. There is one flag per each return object
-- in case of multiple returns.
- if Is_BIP_Func and then Needs_Finalization (Etype (Ret_Obj_Id)) then
+ if Needs_Finalization (Etype (Ret_Obj_Id)) then
declare
Flag_Decl : Node_Id;
Flag_Id : Entity_Id;
-- Update the state of the function right before the object is
-- returned.
- if Is_BIP_Func and then Needs_Finalization (Etype (Ret_Obj_Id)) then
+ if Needs_Finalization (Etype (Ret_Obj_Id)) then
declare
Flag_Id : constant Entity_Id :=
Status_Flag_Or_Transient_Decl (Ret_Obj_Id);
elsif Is_Ignored_Ghost_Entity (Obj_Id) then
null;
- -- Return object of a build-in-place function. This case is
- -- recognized and marked by the expansion of an extended return
- -- statement (see Expand_N_Extended_Return_Statement).
+ -- Return object of extended return statements. This case is
+ -- recognized and marked by the expansion of extended return
+ -- statements (see Expand_N_Extended_Return_Statement).
elsif Needs_Finalization (Obj_Typ)
and then Is_Return_Object (Obj_Id)
elsif Is_Ignored_Ghost_Entity (Obj_Id) then
null;
- -- Return object of a build-in-place function. This case is
- -- recognized and marked by the expansion of an extended return
- -- statement (see Expand_N_Extended_Return_Statement).
+ -- Return object of extended return statements. This case is
+ -- recognized and marked by the expansion of extended return
+ -- statements (see Expand_N_Extended_Return_Statement).
elsif Needs_Finalization (Obj_Typ)
and then Is_Return_Object (Obj_Id)