Commit e5536c09 by Arnaud Charlet

Update comments.

From-SVN: r164188
parent c768e988
...@@ -5652,19 +5652,18 @@ package body Sem_Ch6 is ...@@ -5652,19 +5652,18 @@ package body Sem_Ch6 is
E, BIP_Formal_Suffix (BIP_Alloc_Form)); E, BIP_Formal_Suffix (BIP_Alloc_Form));
end if; end if;
-- In the case of functions whose result type has controlled -- For functions whose result type has controlled parts, we have
-- parts, we have an extra formal of type -- an extra formal of type System.Finalization_Implementation.
-- System.Finalization_Implementation.Finalizable_Ptr_Ptr. That -- Finalizable_Ptr_Ptr. That is, we are passing a pointer to a
-- is, we are passing a pointer to a finalization list (which is -- finalization list (which is itself a pointer). This extra
-- itself a pointer). This extra formal is then passed along to -- formal is then passed along to Move_Final_List in case of
-- Move_Final_List in case of successful completion of a return -- successful completion of a return statement. We cannot pass an
-- statement. We cannot pass an 'in out' parameter, because we -- 'in out' parameter, because we need to update the finalization
-- need to update the finalization list during an abort-deferred -- list during an abort-deferred region, rather than using
-- region, rather than using copy-back after the function -- copy-back after the function returns. This is true even if we
-- returns. This is true even if we are able to get away with -- are able to get away with having 'in out' parameters, which are
-- having 'in out' parameters, which are normally illegal for -- normally illegal for functions. This formal is also needed when
-- functions. This formal is also needed when the function has -- the function has a tagged result.
-- a tagged result.
if Needs_BIP_Final_List (E) then if Needs_BIP_Final_List (E) then
Discard := Discard :=
......
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